Repository: libguestfs/virt-v2v Branch: master Commit: 6a4c8d827d46 Files: 463 Total size: 14.4 MB Directory structure: gitextract_gtcdlbtn/ ├── .github/ │ └── workflows/ │ └── main.yml ├── .gitignore ├── .gitmodules ├── COPYING ├── Makefile.am ├── README ├── TODO ├── bash/ │ ├── Makefile.am │ ├── README │ ├── test-complete-in-script.sh │ └── virt-v2v ├── bugs-in-changelog.sh ├── check-mli.sh ├── common-rules.mk ├── config.sh.in ├── configure.ac ├── contrib/ │ └── remove-guestor.reg ├── convert/ │ ├── Makefile.am │ ├── choose_root.ml │ ├── choose_root.mli │ ├── convert.ml │ ├── convert.mli │ ├── convert_linux.ml │ ├── convert_linux.mli │ ├── convert_types.ml │ ├── convert_types.mli │ ├── convert_windows.ml │ ├── convert_windows.mli │ ├── dummy.c │ ├── mount_filesystems.ml │ ├── mount_filesystems.mli │ ├── target_bus_assignment.ml │ └── target_bus_assignment.mli ├── docs/ │ ├── Makefile.am │ ├── test-docs.sh │ ├── virt-v2v-hacking.pod │ ├── virt-v2v-input-vmware.pod │ ├── virt-v2v-input-xen.pod │ ├── virt-v2v-output-local.pod │ ├── virt-v2v-output-openstack.pod │ ├── virt-v2v-output-ovirt.pod │ ├── virt-v2v-release-notes-1.42.pod │ ├── virt-v2v-release-notes-2.0.pod │ ├── virt-v2v-release-notes-2.10.pod │ ├── virt-v2v-release-notes-2.2.pod │ ├── virt-v2v-release-notes-2.4.pod │ ├── virt-v2v-release-notes-2.6.pod │ ├── virt-v2v-release-notes-2.8.pod │ ├── virt-v2v-support.pod │ ├── virt-v2v.pod │ └── vm-generation-id-across-hypervisors.txt ├── gnulib/ │ └── lib/ │ ├── Makefile.am │ ├── bitrotate.h │ ├── c-ctype.h │ ├── getprogname.h │ ├── hash.c │ ├── hash.h │ ├── ignore-value.h │ ├── xalloc-oversized.h │ ├── xstrtol.c │ ├── xstrtol.h │ ├── xstrtoll.c │ ├── xstrtoul.c │ ├── xstrtoull.c │ └── xstrtoumax.c ├── in-place/ │ ├── Makefile.am │ ├── dummy.c │ ├── in_place.ml │ ├── in_place.mli │ ├── test-docs.sh │ └── virt-v2v-in-place.pod ├── input/ │ ├── Makefile.am │ ├── OVA.ml │ ├── OVA.mli │ ├── OVF.ml │ ├── OVF.mli │ ├── VMX.ml │ ├── VMX.mli │ ├── dummy.c │ ├── input.ml │ ├── input.mli │ ├── input_disk.ml │ ├── input_disk.mli │ ├── input_libvirt.ml │ ├── input_libvirt.mli │ ├── input_ova.ml │ ├── input_ova.mli │ ├── input_vcenter_https.ml │ ├── input_vcenter_https.mli │ ├── input_vddk.ml │ ├── input_vddk.mli │ ├── input_vmx.ml │ ├── input_vmx.mli │ ├── input_xen_ssh.ml │ ├── input_xen_ssh.mli │ ├── nbdkit_curl.ml │ ├── nbdkit_curl.mli │ ├── nbdkit_ssh.ml │ ├── nbdkit_ssh.mli │ ├── parse_domain_from_vmx.ml │ ├── parse_domain_from_vmx.mli │ ├── parse_libvirt_xml.ml │ ├── parse_libvirt_xml.mli │ ├── select_input.ml │ ├── select_input.mli │ ├── ssh.ml │ ├── ssh.mli │ ├── vCenter.ml │ └── vCenter.mli ├── inspector/ │ ├── Makefile.am │ ├── create_inspector_xml.ml │ ├── create_inspector_xml.mli │ ├── dummy.c │ ├── inspector.ml │ ├── inspector.mli │ ├── test-docs.sh │ └── virt-v2v-inspector.pod ├── installcheck.sh.in ├── lib/ │ ├── Makefile.am │ ├── NBD_URI.ml │ ├── NBD_URI.mli │ ├── YAML.ml │ ├── YAML.mli │ ├── config.ml.in │ ├── config.mli │ ├── create_ovf.ml │ ├── create_ovf.mli │ ├── dummy.c │ ├── guestfs-internal-all.h │ ├── libvirt_utils.ml │ ├── libvirt_utils.mli │ ├── nbdkit.ml │ ├── nbdkit.mli │ ├── networks.ml │ ├── networks.mli │ ├── qemuNBD.ml │ ├── qemuNBD.mli │ ├── types.ml │ ├── types.mli │ ├── utils.ml │ └── utils.mli ├── m4/ │ ├── guestfs-bash-completion.m4 │ ├── guestfs-c.m4 │ ├── guestfs-libraries.m4 │ ├── guestfs-ocaml-gettext.m4 │ ├── guestfs-ocaml.m4 │ ├── guestfs-perl.m4 │ ├── guestfs-progs.m4 │ └── ocaml.m4 ├── ocaml-dep.sh.in ├── ocaml-link.sh.in ├── open/ │ ├── Makefile.am │ ├── dummy.c │ ├── open.ml │ ├── open.mli │ ├── test-docs.sh │ └── virt-v2v-open.pod ├── output/ │ ├── Makefile.am │ ├── changeuid.ml │ ├── changeuid.mli │ ├── create_kubevirt_yaml.ml │ ├── create_kubevirt_yaml.mli │ ├── create_libvirt_xml.ml │ ├── create_libvirt_xml.mli │ ├── embed.sh │ ├── openstack_image_properties.ml │ ├── openstack_image_properties.mli │ ├── output.ml │ ├── output.mli │ ├── output_disk.ml │ ├── output_disk.mli │ ├── output_glance.ml │ ├── output_glance.mli │ ├── output_kubevirt.ml │ ├── output_kubevirt.mli │ ├── output_libvirt.ml │ ├── output_libvirt.mli │ ├── output_null.ml │ ├── output_null.mli │ ├── output_openstack.ml │ ├── output_openstack.mli │ ├── output_ovirt.ml │ ├── output_ovirt.mli │ ├── output_ovirt_upload.ml │ ├── output_ovirt_upload.mli │ ├── output_ovirt_upload_cancel_source.mli │ ├── output_ovirt_upload_createvm_source.mli │ ├── output_ovirt_upload_finalize_source.mli │ ├── output_ovirt_upload_plugin_source.mli │ ├── output_ovirt_upload_precheck_source.mli │ ├── output_ovirt_upload_transfer_source.mli │ ├── output_ovirt_upload_vmcheck_source.mli │ ├── output_qemu.ml │ ├── output_qemu.mli │ ├── output_vdsm.ml │ ├── output_vdsm.mli │ ├── ovirt-upload-cancel.py │ ├── ovirt-upload-createvm.py │ ├── ovirt-upload-finalize.py │ ├── ovirt-upload-plugin.py │ ├── ovirt-upload-precheck.py │ ├── ovirt-upload-transfer.py │ ├── ovirt-upload-vmcheck.py │ ├── python_script.ml │ ├── python_script.mli │ ├── qemuopts-c.c │ ├── qemuopts.ml │ ├── qemuopts.mli │ ├── select_output.ml │ ├── select_output.mli │ └── test-python-syntax.sh ├── po/ │ ├── LINGUAS │ ├── Makefile.am │ ├── POTFILES │ ├── POTFILES-ml │ ├── cs.po │ ├── de.po │ ├── en_GB.po │ ├── es.po │ ├── eu.po │ ├── fi.po │ ├── fr.po │ ├── gu.po │ ├── hi.po │ ├── id.po │ ├── it.po │ ├── ja.po │ ├── ka.po │ ├── kn.po │ ├── ml.po │ ├── mr.po │ ├── nl.po │ ├── or.po │ ├── pa.po │ ├── pl.po │ ├── pt_BR.po │ ├── ru.po │ ├── si.po │ ├── ta.po │ ├── te.po │ ├── tg.po │ ├── uk.po │ ├── virt-v2v.pot │ └── zh_CN.po ├── po-docs/ │ ├── LINGUAS │ ├── Makefile.am │ ├── cs.po │ ├── de.po │ ├── en_GB.po │ ├── es.po │ ├── eu.po │ ├── fi.po │ ├── fr.po │ ├── gu.po │ ├── hi.po │ ├── id.po │ ├── it.po │ ├── ja/ │ │ └── Makefile.am │ ├── ja.po │ ├── ka.po │ ├── kn.po │ ├── language.mk │ ├── ml.po │ ├── mr.po │ ├── nl.po │ ├── or.po │ ├── pa.po │ ├── pl.po │ ├── podfiles │ ├── pt_BR.po │ ├── ru.po │ ├── si.po │ ├── ta.po │ ├── te.po │ ├── tg.po │ ├── uk/ │ │ └── Makefile.am │ ├── uk.po │ ├── virt-v2v-docs.pot │ └── zh_CN.po ├── podcheck.pl ├── podwrapper.pl.in ├── run.in ├── scripts/ │ └── git.orderfile ├── subdir-rules.mk ├── test-data/ │ ├── Makefile.am │ ├── binaries/ │ │ ├── Makefile.am │ │ ├── README │ │ └── bin-x86_64-dynamic │ ├── fake-virt-tools/ │ │ └── Makefile.am │ ├── fake-virtio-win/ │ │ ├── Makefile.am │ │ ├── virtio-win-drivers-list.txt │ │ └── virtio-win-iso-list.txt │ └── phony-guests/ │ ├── Makefile.am │ ├── archlinux-package │ ├── debian-packages │ ├── debian-syslog │ ├── fedora-db.sql.xz │ ├── fedora-journal.tar.xz │ ├── fedora.c │ ├── guests.xml.in │ ├── make-archlinux-img.sh │ ├── make-coreos-img.sh │ ├── make-debian-img.sh │ ├── make-fedora-img.pl │ ├── make-guests-all-good.pl │ ├── make-ubuntu-img.sh │ ├── make-windows-img.sh │ ├── minimal-hive │ ├── win10-software.reg │ ├── win11-software.reg │ ├── win2k22-software.reg │ ├── win2k25-software.reg │ ├── win7-32-software.reg │ ├── windows-bcd.reg │ ├── windows-software-all.reg │ ├── windows-system.reg │ └── winxp-32-software.reg ├── tests/ │ ├── Makefile.am │ ├── functions.sh.in │ ├── libvirt-is-version.c │ ├── test-bad-networks-and-bridges.sh │ ├── test-block-driver.sh │ ├── test-cdrom.expected │ ├── test-cdrom.sh │ ├── test-cdrom.xml.in │ ├── test-checksum-bad.sh │ ├── test-checksum-good-qcow2.sh │ ├── test-checksum-good.sh │ ├── test-checksum-print.sh │ ├── test-conversion-of.sh │ ├── test-customize.sh │ ├── test-fedora-btrfs-conversion.sh │ ├── test-fedora-conversion.sh │ ├── test-fedora-luks-on-lvm-conversion.sh │ ├── test-fedora-lvm-on-luks-conversion.sh │ ├── test-fedora-md-conversion.sh │ ├── test-floppy.expected │ ├── test-floppy.sh │ ├── test-floppy.xml.in │ ├── test-i-disk-nbd.sh │ ├── test-i-disk-parallel.sh │ ├── test-i-disk.sh │ ├── test-i-ova-as-root.ovf │ ├── test-i-ova-as-root.sh │ ├── test-i-ova-bad-sha1.sh │ ├── test-i-ova-bad-sha256.sh │ ├── test-i-ova-checksums.ovf │ ├── test-i-ova-directory.sh │ ├── test-i-ova-formats.expected │ ├── test-i-ova-formats.ovf │ ├── test-i-ova-formats.sh │ ├── test-i-ova-good-checksums.sh │ ├── test-i-ova-gz.expected │ ├── test-i-ova-gz.ovf │ ├── test-i-ova-gz.sh │ ├── test-i-ova-invalid-manifest1.sh │ ├── test-i-ova-invalid-manifest2.sh │ ├── test-i-ova-snapshots.expected │ ├── test-i-ova-snapshots.expected2 │ ├── test-i-ova-snapshots.ovf │ ├── test-i-ova-snapshots.sh │ ├── test-i-ova-subfolders.expected │ ├── test-i-ova-subfolders.expected2 │ ├── test-i-ova-subfolders.ovf │ ├── test-i-ova-subfolders.sh │ ├── test-i-ova-tar.expected │ ├── test-i-ova-tar.expected2 │ ├── test-i-ova-tar.ovf │ ├── test-i-ova-tar.sh │ ├── test-i-ova-two-disks.expected │ ├── test-i-ova-two-disks.expected2 │ ├── test-i-ova-two-disks.ovf │ ├── test-i-ova-two-disks.sh │ ├── test-i-ova.ovf │ ├── test-i-ova.sh │ ├── test-i-ova.xml │ ├── test-i-vmx-1.expected │ ├── test-i-vmx-1.vmx │ ├── test-i-vmx-2.expected │ ├── test-i-vmx-2.vmx │ ├── test-i-vmx-3.expected │ ├── test-i-vmx-3.vmx │ ├── test-i-vmx-4.expected │ ├── test-i-vmx-4.vmx │ ├── test-i-vmx-5.expected │ ├── test-i-vmx-5.vmx │ ├── test-i-vmx-6.expected │ ├── test-i-vmx-6.vmx │ ├── test-i-vmx-7.expected │ ├── test-i-vmx-7.vmx │ ├── test-i-vmx.sh │ ├── test-in-place-xml.sh │ ├── test-in-place.sh │ ├── test-inspector.sh │ ├── test-it-vddk-io-query.sh │ ├── test-mac-expected.xml │ ├── test-mac.sh │ ├── test-mac.xml.in │ ├── test-machine-readable.sh │ ├── test-networks-and-bridges-expected.xml │ ├── test-networks-and-bridges.sh │ ├── test-networks-and-bridges.xml.in │ ├── test-no-fstrim.sh │ ├── test-o-glance.sh │ ├── test-o-kubevirt-fedora.sh │ ├── test-o-kubevirt-fedora.yaml.expected │ ├── test-o-kubevirt-oo-disk.sh │ ├── test-o-kubevirt-windows.sh │ ├── test-o-kubevirt-windows.yaml.expected │ ├── test-o-libvirt.sh │ ├── test-o-local-qcow2-compressed.sh │ ├── test-o-null.sh │ ├── test-o-openstack.sh │ ├── test-o-ovirt-upload-module/ │ │ ├── imageio.py │ │ └── ovirtsdk4/ │ │ ├── __init__.py │ │ └── types.py │ ├── test-o-ovirt-upload-oo-query.sh │ ├── test-o-ovirt-upload.sh │ ├── test-o-ovirt.ovf.expected │ ├── test-o-ovirt.sh │ ├── test-o-qemu.sh │ ├── test-o-vdsm-oo-query.sh │ ├── test-o-vdsm-options.ovf.expected │ ├── test-o-vdsm-options.sh │ ├── test-oa-option-qcow2.sh │ ├── test-oa-option-raw.sh │ ├── test-of-option.sh │ ├── test-on-option.sh │ ├── test-open-encrypted.sh │ ├── test-open.sh │ ├── test-phony-win10-ls.txt │ ├── test-phony-win11-ls.txt │ ├── test-phony-win2k22-ls.txt │ ├── test-phony-win2k25-ls.txt │ ├── test-phony-win7-32-ls.txt │ ├── test-phony-winxp-32-ls.txt │ ├── test-print-source.expected │ ├── test-print-source.sh │ ├── test-print-source.xml.in │ ├── test-reject-blank-disk.sh │ ├── test-rhbz1232192.sh │ ├── test-rhbz1232192.xml.in │ ├── test-sound.sh │ ├── test-sound.xml.in │ ├── test-trim.sh │ ├── test-virtio-win-iso.sh │ ├── test-windows-conversion-ls.txt │ ├── test-windows-conversion.sh │ ├── test-windows-phony.sh │ └── test-windows-uefi-conversion.sh ├── tmp/ │ └── .gitignore ├── v2v/ │ ├── Makefile.am │ ├── dummy.c │ ├── v2v.ml │ ├── v2v.mli │ └── v2v_unit_tests.ml ├── valgrind-suppressions └── website/ ├── easytoread.css ├── feed.css ├── index.css ├── index.html.in ├── pod.css └── standard.css ================================================ FILE CONTENTS ================================================ ================================================ FILE: .github/workflows/main.yml ================================================ # Run the jobs below on every push to master branch and pull request. on: push: branches: - master - 'ci/**' # Allow automatic CI testing on ci/* branches pull_request: branches: - master workflow_dispatch: # Allow manual triggering on any branch # Runs basic configure, make and make check. jobs: # ubuntu: # name: Ubuntu # runs-on: ubuntu-${{ matrix.release }} # continue-on-error: true # strategy: # fail-fast: false # matrix: # release: # - 24.04 # steps: # - name: Identify the system # run: | # cat /etc/os-release # - name: Enable source repositories # run: | # sudo sed -i 's/Types: deb$/Types: deb deb-src/g' \ # /etc/apt/sources.list.d/ubuntu.sources # - name: Install build dependencies # run: | # sudo apt-get update # sudo apt-get -y build-dep virt-v2v # - name: Install extra dependencies # run: | # # Git is needed to run git submodule command. # sudo apt-get -y install git # - name: Fix broken Ubuntu kernel permissions # run: | # # https://bugs.launchpad.net/ubuntu/+source/linux/+bug/759725 # sudo chmod 0644 /boot/vmlinuz* # - name: Enable KVM # run: | # sudo chmod 0666 /dev/kvm # - name: Checkout sources # uses: actions/checkout@v5 # - name: Checkout submodule # run: | # git submodule update --init # - name: Compile the code # run: | # autoreconf -fiv # ./configure --enable-werror # make -j # - name: Run the full tests # run: | # if ! make check; then # find -name test-suite.log -exec cat {} \; # exit 1 # fi fedora: name: Fedora runs-on: ubuntu-latest # VM where the container runs strategy: fail-fast: false matrix: release: - 43 container: image: quay.io/fedora/fedora:${{ matrix.release }} options: --privileged steps: - name: Identify the system run: | cat /etc/os-release - name: Install build dependencies run: | dnf builddep -y virt-v2v libguestfs # Install a bunch of bits to enable more tests dnf install -y \ git kernel sqlite perl-hivex \ mingw-srvany-redistributable nbdkit-\* virt-v2v \ guestfs-tools\* # Hides 'multiple definition' warnings dnf remove -y ocaml-libguestfs\* - name: Checkout sources uses: actions/checkout@v5 - name: Checkout and build libguestfs run: | git clone --depth=1 https://github.com/libguestfs/libguestfs cd libguestfs git submodule update --init autoreconf -fiv ./configure CFLAGS="-fPIC -g -O2" --enable-werror make -j cd .. - name: Compile the code run: | git config --global --add safe.directory $PWD git submodule update --init autoreconf -fiv ./libguestfs/run ./configure CFLAGS="-fPIC -g -O2" --enable-werror ./libguestfs/run make -j # feb2026: tests mostly run but random bits fail with # part_to_partnum_stub: /dev/sda2: No such file or directory # Possibly this is systemd udev issue which is fixed in v260. # Let's try enabling again when fedora-44 is out # Some discussion: https://github.com/libguestfs/virt-v2v/pull/135 # # - name: Run the full tests # run: | # ./libguestfs/run libguestfs-test-tool # # # Busted on root: # # 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") # export SKIP_TEST_O_OVIRT_SH=1 # # if ! ./libguestfs/run make check; then # find -name test-suite.log -exec cat {} \; # exit 1 # fi ================================================ FILE: .gitignore ================================================ *~ *.a *.annot *.bak *.class *.cma *.cmi *.cmo *.cmx *.cmxa *.diff *.eml *.hi *.jar *.la *.lo *.log *.o *.orig *.pyc *.rej *.swp *.trs .deps .dirstamp dll*.so .gdb_history .libs Makefile Makefile.in /aclocal.m4 /autom4te.cache/ /build-aux/ /compile /config.cache /config.guess /config.h /config.h.in /config.log /config.sh /config.status /config.sub /configure /convert/.depend /depcomp /docs/stamp-virt-v2v*.pod /docs/virt-v2v.1 /docs/virt-v2v-hacking.1 /docs/virt-v2v-input-vmware.1 /docs/virt-v2v-input-xen.1 /docs/virt-v2v-output-local.1 /docs/virt-v2v-output-openstack.1 /docs/virt-v2v-output-ovirt.1 /docs/virt-v2v-release-notes-1.42.1 /docs/virt-v2v-release-notes-2.*.1 /docs/virt-v2v-support.1 /.gitattributes /.git-module-status /in-place/.depend /in-place/stamp-virt-v2v-in-place.pod /in-place/virt-v2v-in-place /in-place/virt-v2v-in-place.1 /input/.depend /inspector/.depend /inspector/stamp-virt-v2v-inspector.pod /inspector/virt-v2v-inspector /inspector/virt-v2v-inspector.1 /installcheck.sh /install-sh /libtool /lib/.depend /lib/config.ml /local* /ltmain.sh /m4/libtool.m4 /m4/lt~obsolete.m4 /m4/ltoptions.m4 /m4/ltsugar.m4 /m4/ltversion.m4 /maint.mk /missing /ocaml-dep.sh /ocaml-link.sh /open/.depend /open/stamp-virt-v2v-open.pod /open/virt-v2v-open /open/virt-v2v-open.1 /output/.depend /output/output_ovirt_upload_*_source.ml /output/var_expander_tests /po-docs/*/*.1 /po-docs/*/*.3 /po-docs/*/*.5 /po-docs/*/*.8 /po-docs/*/*.pod /podwrapper.1 /podwrapper.pl /po/*.gmo /run /stamp-h1 /test-data/fake-virtio-win/cd /test-data/fake-virtio-win/drivers /test-data/fake-virtio-win/fake-virtio-win.iso /test-data/phony-guests/archlinux.img /test-data/phony-guests/blank-*.img /test-data/phony-guests/coreos.img /test-data/phony-guests/debian.img /test-data/phony-guests/fedora.img /test-data/phony-guests/fedora-btrfs.img /test-data/phony-guests/fedora-luks-on-lvm.img /test-data/phony-guests/fedora-lvm-on-luks.img /test-data/phony-guests/fedora-md1.img /test-data/phony-guests/fedora-md2.img /test-data/phony-guests/fedora-static-bin /test-data/phony-guests/fedora.db /test-data/phony-guests/guests.xml /test-data/phony-guests/guests-all-good.xml /test-data/phony-guests/stamp-fedora-md.img /test-data/phony-guests/ubuntu.img /test-data/phony-guests/win*.img /test-data/phony-guests/*.reg.bin /tests/functions.sh /tests/libvirt-is-version /tests/test-cdrom.xml /tests/test-conversion-of-*.sh /tests/test-floppy.xml /tests/test-mac.xml /tests/test-networks-and-bridges.xml /tests/test-phony-win*.sh /tests/test-print-source.xml /tests/test-rhbz1232192.xml /tests/test-sound.xml /tests/windows.vmdk /v2v/.depend /v2v/real-*.d/ /v2v/real-*.img /v2v/real-*.xml /v2v/v2v_unit_tests /v2v/virt-v2v /virt-v2v-*.tar.gz /virt-v2v-*.tar.gz.sig /website/*.html /website/README.txt /website/TODO.txt ================================================ FILE: .gitmodules ================================================ [submodule "common"] path = common url = https://github.com/libguestfs/libguestfs-common ================================================ FILE: COPYING ================================================ GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Lesser General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. ================================================ FILE: Makefile.am ================================================ # libguestfs # Copyright (C) 2009-2025 Red Hat Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. include $(top_srcdir)/common-rules.mk ACLOCAL_AMFLAGS = -I m4 SUBDIRS = common/mlstdutils # Files and other test data used by the tests. Must be before any # tests run, except tests/qemu. SUBDIRS += test-data SUBDIRS += gnulib/lib SUBDIRS += common/qemuopts SUBDIRS += common/utils SUBDIRS += common/mlutils SUBDIRS += common/mlpcre SUBDIRS += common/options SUBDIRS += common/mlgettext SUBDIRS += common/mlxml SUBDIRS += common/mltools SUBDIRS += common/mlcustomize SUBDIRS += common/mldrivers SUBDIRS += lib SUBDIRS += input SUBDIRS += output SUBDIRS += convert SUBDIRS += v2v SUBDIRS += inspector SUBDIRS += in-place SUBDIRS += open SUBDIRS += tests # bash-completion SUBDIRS += bash # Documentation SUBDIRS += docs # After all source files were used we can generate the translation strings SUBDIRS += po # po-docs must come after tools, inspector. if HAVE_PO4A SUBDIRS += po-docs endif EXTRA_DIST = \ .github/workflows/main.yml \ .gitignore \ bugs-in-changelog.sh \ check-mli.sh \ common/.gitignore \ common/README \ common/update-submodule.sh \ contrib/remove-guestor.reg \ COPYING \ ocaml-link.sh \ podcheck.pl \ scripts/git.orderfile \ tmp/.gitignore \ valgrind-suppressions \ website/bugs.png \ website/communicate.png \ website/documentation.png \ website/download.png \ website/draft.png \ website/draft.svg \ website/easytoread.css \ website/feed.css \ website/fish-5yrs.svg \ website/fish.png \ website/git.png \ website/index.css \ website/index.html.in \ website/pod.css \ website/standard.css \ $(NULL) # When doing 'make dist' update a few files automatically. # # po/POTFILES - files with ordinary extensions, but not OCaml files # po/POTFILES-ml - OCaml files, which need a special tool to translate # po-docs/virt-v2v-docs.pot # - combined list of strings from documentation dist-hook: po/POTFILES po/POTFILES-ml rm -f po-docs/virt-v2v-docs.pot $(MAKE) -C po-docs virt-v2v-docs.pot # For more information about translations, see po/Makefile.am. po/POTFILES: configure.ac rm -f $@ $@-t cd $(srcdir); \ find $(DIST_SUBDIRS) -name '*.c' | \ grep -v -E '^(po-docs|tests|test-data)/' | \ grep -v -E '/(dummy\.c)$$' | \ grep -v -E '.*-(tests)\.c$$' | \ LC_ALL=C sort -u > $@-t mv $@-t $@ po/POTFILES-ml: configure.ac rm -f $@ $@-t cd $(srcdir); \ find common/ml* lib in-place input inspector open output v2v \ -name '*.ml' | \ grep -v '^common/mlprogress/' | \ grep -v '^common/mlvisit/' | \ grep -v '^lib/config.ml$$' | \ grep -v -E '.*_tests\.ml$$' | \ LC_ALL=C sort > $@-t mv $@-t $@ # NB. podwrapper is an internal tool, so the man page mustn't be installed. # It should be noinst_MANS but that doesn't work. noinst_DATA = podwrapper.1 podwrapper.1: podwrapper.pl $(AM_V_GEN) $(PODWRAPPER) \ --section 1 \ --man $@-t \ --license GPLv2+ \ --warning safe \ $< $(AM_V_at) mv $@-t $@ # Make clean. CLEANFILES += \ pod2htm?.tmp \ tmp/disk* \ tmp/run-* \ tmp/valgrind-*.log \ $(NULL) clean-local: -rm -rf tmp/libguestfs?????? -rm -rf tmp/guestfs.* -rm -rf tmp/.guestfs-* -rm -rf tmp/null.* -find tmp -type s -delete -find . -name '*~' -delete check-valgrind: build-test-guests @errors=0; \ for f in `grep -l '^$@:' $(SUBDIRS:%=%/Makefile.am)`; do \ echo $(MAKE) -C `dirname $$f` $@; \ $(MAKE) -C `dirname $$f` $@ || (( errors++ )); \ done; \ exit $$(( $$errors ? 1 : 0 )) check-slow: build-test-guests @errors=0; \ for f in `grep -l '^$@:' $(SUBDIRS:%=%/Makefile.am)`; do \ echo $(MAKE) -C `dirname $$f` $@; \ $(MAKE) -C `dirname $$f` $@ || (( errors++ )); \ done; \ exit $$(( $$errors ? 1 : 0 )) build-test-guests: $(MAKE) -C test-data/phony-guests check # Some tests which run at the top level. TESTS = check-mli.sh # Commit everything in current directory to HEAD, and set commit # message to current version (only for maintainer). maintainer-commit: git commit -a -m "Version $(VERSION)." # Tag HEAD with current version (only for maintainer). maintainer-tag: git tag -a "v$(VERSION)" -m "Version $(VERSION) ($(BRANCH_TYPE))" -f # Maintainer only: check no files are missing from EXTRA_DIST rules, # and that all generated files have been included in the tarball. # (Note you must have done 'make dist') maintainer-check-extra-dist: zcat $(PACKAGE_NAME)-$(VERSION).tar.gz | tar tf - | sort | \ sed 's,^$(PACKAGE_NAME)-$(VERSION)/,,' > tmp/tarfiles ( git ls-files ; \ cd common; git ls-files | sed 's,^,common/,' ) | \ grep -v '^common$$' | \ grep -v '^common/edit/' | \ grep -v '^common/errnostring/' | \ grep -v '^common/mlprogress/' | \ grep -v '^common/mlvisit/' | \ grep -v '^common/parallel/' | \ grep -v '^common/progress/' | \ grep -v '^common/protocol/' | \ grep -v '^common/structs/' | \ grep -v '^common/visit/' | \ grep -v '^common/windows/' | \ grep -v '^intltool-.*\.in' | \ grep -v '^\.gitmodules' | \ sort > tmp/gitfiles comm -13 tmp/tarfiles tmp/gitfiles > tmp/comm-out @echo Checking for differences between EXTRA_DIST and git ... cat tmp/comm-out [ ! -s tmp/comm-out ] rm tmp/tarfiles tmp/gitfiles tmp/comm-out @echo PASS: EXTRA_DIST tests ================================================ FILE: README ================================================ Virt-v2v is a program that converts a single guest from a foreign hypervisor to run on KVM. It can read Linux and Windows guests running on VMware, Xen, Hyper-V and some other hypervisors, and convert them to KVM managed by libvirt, OpenStack, oVirt or several other targets. It can modify the guest to make it bootable on KVM and install virtio drivers so it will run quickly. There is also a companion front-end called virt-p2v (https://github.com/libguestfs/virt-p2v) which comes as an ISO, CD or PXE image that can be booted on physical machines to virtualize those machines (physical to virtual, or p2v). Virt-v2v and virt-p2v have been in continuous development since 2007. For more information about virt-v2v and virt-p2v please read the respective manual pages. For virt-v2v, see the docs/ subdirectory in the source tree. BUILDING FROM SOURCE ====================================================================== To build from git: git submodule update --init autoreconf -i ./configure make To build from tarball: ./configure make You can run virt-v2v without installing it: ./run virt-v2v ... To run the tests: make check REQUIREMENTS ====================================================================== * libguestfs (https://libguestfs.org) * OCaml bindings for libguestfs * OCaml bindings for libvirt (https://gitlab.com/libvirt/libvirt-ocaml) * libnbd >= 1.14 (https://gitlab.com/nbdkit/libnbd) * The 'nbdinfo' and 'nbdcopy' programs from libnbd. * OCaml bindings for libnbd * nbdkit >= 1.45.11 (https://gitlab.com/nbdkit/nbdkit) * These nbdkit plugins and filters: + nbdkit-curl-plugin + nbdkit-file-plugin + nbdkit-nbd-plugin + nbdkit-null-plugin + nbdkit-python-plugin + nbdkit-ssh-plugin + nbdkit-vddk-plugin + nbdkit-blocksize-filter + nbdkit-count-filter + nbdkit-cow-filter + nbdkit-multi-conn-filter + nbdkit-rate-filter + nbdkit-retry-filter * qemu-nbd * qemu-img Optional, for enhancements to the basic program: * OCaml gettext * virtio-win (Windows virtio device drivers) Optional, used by the test suite: * guestfish ================================================ FILE: TODO ================================================ To-do list for virt-v2v ====================================================================== We open the input NBD endpoint up to 5 times per disk during a conversion (especially if --verbose mode is used): * Once for conversion * nbdinfo opens the connection twice (because we're using --content) * The output side opens the input connection just to get the virtual size of the disk, so it knows how large to create the output disk. (Could be avoided if conversion kept this information, but that's a layering violation.) * once for nbdcopy This has quite a lot of overhead for some inputs. For VDDK, opening a connection is very slow. In one conversion of a guest with 5 disks I measured 10% of the total run time of virt-v2v being spent simply opening VDDK connections (5 x 5 = 25 times in all). -- In virt-v2v -o openstack Use the metadata service to find the -oo server-id setting. It would no longer need to be specified on the command line. Note there are two variations of metadata service in OpenStack, either the config disk or link-local network address. We would need to support both, or the possibility that there is no metadata service. ================================================ FILE: bash/Makefile.am ================================================ # libguestfs # Copyright (C) 2013-2025 Red Hat Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. include $(top_srcdir)/subdir-rules.mk scripts = \ virt-v2v EXTRA_DIST = \ README \ $(scripts) \ $(TESTS) \ $(NULL) if HAVE_BASH_COMPLETION # Bash completion script. bashcompletiondir = $(BASH_COMPLETIONS_DIR) #bashcompletion_DATA = $(scripts) all-local: $(scripts) $(AM_V_at)test $(srcdir) = $(builddir) || { cd $(srcdir) && cp $(scripts) $(abs_builddir)/; } install-data-local: $(mkdir_p) $(DESTDIR)$(bashcompletiondir) cp -P $(scripts) $(DESTDIR)$(bashcompletiondir) clean-local: -test $(srcdir) != $(builddir) && rm -f $(scripts) endif # Tests. TESTS_ENVIRONMENT = \ scripts="$(scripts)" \ commands="$(scripts)" \ $(top_builddir)/run --test TESTS = \ test-complete-in-script.sh ================================================ FILE: bash/README ================================================ This directory contains the scripts for tab-completing commands in bash. Note these new-style demand-loaded scripts require 'bash-completion' >= 1.99. Tip: To test the bash completions without having to install them, simply start a new shell and 'source ./virt-foo'. ================================================ FILE: bash/test-complete-in-script.sh ================================================ #!/bin/bash - # libguestfs bash completion test script # Copyright (C) 2016 Red Hat Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. # Test that the correct 'complete' command is included in the script. # Mainly prevents symlinking errors and some omissions. source ../tests/functions.sh set -e set -x skip_if_skipped if [ -z "$commands" ]; then echo "$0: \$commands is not defined. Use 'make check' to run this test." exit 1 fi for cmd in $commands; do if [ ! -f $cmd ]; then echo "$0: script '$cmd' is missing" exit 1 fi if ! grep "^complete.*$cmd\$" $cmd; then echo "$0: script '$cmd' does not have" echo "a 'complete' rule for '$cmd'" exit 1 fi done ================================================ FILE: bash/virt-v2v ================================================ # virt-v2v bash completion script -*- shell-script -*- # Copyright (C) 2014 Red Hat Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. _virt_v2v () { local cur prev words cword split local shortopts longopts items _init_completion -s || return case "$prev" in -i) items="$(virt-v2v --machine-readable | awk -F':' '/input:/ {print $2;}')" COMPREPLY=( $( compgen -W "$items" -- "$cur") ) return ;; -o) items="$(virt-v2v --machine-readable | awk -F':' '/output:/ {print $2;}')" COMPREPLY=( $( compgen -W "$items" -- "$cur") ) return ;; -oa) COMPREPLY=( $( compgen -W "sparse preallocated" -- "$cur") ) return ;; esac case "$cur" in --*) # --options longopts="$(virt-v2v --long-options)" COMPREPLY=( $(compgen -W "$longopts" -- "$cur") ) return ;; -*) # -o and --options shortopts="$(virt-v2v --short-options)" longopts="$(virt-v2v --long-options)" COMPREPLY=( $(compgen -W "$shortopts $longopts" -- "$cur") ) return ;; *) COMPREPLY=( $(compgen "$cur") ) return ;; esac } && complete -o default -F _virt_v2v virt-v2v ================================================ FILE: bugs-in-changelog.sh ================================================ #!/bin/bash - # bugs-in-changelog.sh # Copyright (C) 2009-2025 Red Hat Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. # Used when preparing the release notes. This script looks at the # bugs noted in the git changelog since the last stable release (or # any release). To use it, the only parameter should be the git # commit range, eg: # # ./bugs-in-changelog.sh "1.0.89.." if [ -z "$1" ]; then echo "$0 git-commit-range" exit 1 fi # Comma-separated list of Bugzilla IDs. bugids=$( git log "$1" | grep -Eio 'RHBZ#[0-9]+|https?://bugzilla.redhat.com/[a-z\.\?/_=]*[0-9]+' | sed 's/^[^0-9]*//' | sort -u | tr '\n' ',' | sed 's/,$//' ) #echo bugids "$bugids" # Filter out any bugs which may still be in NEW or ASSIGNED. # # Ensure user is logged in, otherwise bugzilla will silently truncate # the number of responses. To log in, see "API KEYS" in bugzilla(1). bugzilla \ --ensure-logged-in \ query \ -b "$bugids" \ -s MODIFIED,POST,ON_QA,PASSES_QA,VERIFIED,RELEASE_PENDING,CLOSED \ --component virt-v2v \ --outputformat='%{bug_id} %{short_desc}' | sort -n -r | perl -pe ' s{([0-9]+)\s+(.*)}{ sprintf ("=item L\n\n%s\n", $1, $2) }xe' # We can't fetch Jira subjects or github issues, but we can at least # list them. jiraids=$( git log "$1" | grep -Eio '(RHEL|MTV)-[0-9]{3,}' | sort -u ) for id in $jiraids ; do echo "=item L" echo echo "XXX" echo done issues=$( git log "$1" | grep -Eio 'https?://github\.com/libguestfs/virt-v2v/issues/[0-9]+' | sort -u ) for issue in $issues ; do echo "=item L<$issue>" echo echo "XXX" echo done ================================================ FILE: check-mli.sh ================================================ #!/bin/bash - # Check every .ml file has a corresponding .mli file. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. # OCaml itself doesn't require it, but getting Makefile dependencies # correct is impossible when some .ml files don't have a corresponding # .mli file. exitcode=0 for f in $( find -name '*.ml' | grep -v builder/templates | grep -v contrib/ | grep -v ocaml/examples/ | grep -v ocaml/t/ | grep -v 'tests/automake2junit.ml$' | grep -v 'bindtests.ml$' | grep -v '_tests.ml$' | sort ); do if [ ! -f "${f}i" ]; then echo $f: missing ${f}i exitcode=1 fi done exit $exitcode ================================================ FILE: common-rules.mk ================================================ # libguestfs # Copyright (C) 2013 Red Hat Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. # 'common-rules.mk' should be included in every Makefile.am. # cf. 'subdir-rules.mk' -include $(top_builddir)/localenv # Convenient way to terminate lists in Makefiles, so that we avoid # problems with dangling backslashes. NULL = # Files that should universally be removed by 'make clean'. Note if # there is any case in any subdirectory where a file should not be # removed by 'make clean', it should not be listed here! # Editor backup files CLEANFILES = *~ *.bak # Patch original and reject files. CLEANFILES += *.orig *.rej # OCaml intermediate and generated files. CLEANFILES += *.cmi *.cmo *.cma *.cmx *.cmxa dll*.so *.a # OCaml -annot files (used for displaying types in some IDEs). CLEANFILES += *.annot # Manual pages - these are all generated from *.pod, so the # pages themselves should all be removed by 'make clean'. CLEANFILES += *.1 *.3 *.5 *.8 # Stamp files used when generating man pages. CLEANFILES += stamp-*.pod # Bindtests temporary files used in many language bindings. CLEANFILES += bindtests.tmp # Files that should be universally removed by 'make distclean'. DISTCLEANFILES = .depend stamp-* # Special suffixes used by OCaml. SUFFIXES = .cmo .cmi .cmx .ml .mli .mll .mly # Special suffixes used by PO files. SUFFIXES += .po .gmo ================================================ FILE: config.sh.in ================================================ #!/bin/bash - # (C) Copyright 2019 Red Hat Inc. # @configure_input@ # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. # This shell script contains the results of some configure checks, # mostly used in other shell scripts. export PYCODESTYLE="@PYCODESTYLE@" ================================================ FILE: configure.ac ================================================ # virt-v2v # Copyright (C) 2009-2026 Red Hat Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. # The major, minor, and release fields MUST be numbers. Packagers can # add extra information using --with-extra="..." which may be any # freeform string. m4_define([v2v_major], [2]) m4_define([v2v_minor], [11]) m4_define([v2v_release], [8]) AC_INIT([virt-v2v],v2v_major.v2v_minor.v2v_release) # Headings within the configure script output. term_bold="" term_red="" term_green="" term_restore="" AS_IF([test -t 1], [ AS_CASE(["$TERM"], [xterm*|vt220*], [ term_bold="$(printf "\e@<:@1m")" term_red="$(printf "\e@<:@22;31m")" term_green="$(printf "\e@<:@22;32m")" term_restore="$(printf "\e@<:@0m")" ]) ]) m4_define([HEADING], [AS_ECHO AS_ECHO(["${term_bold}$1${term_restore}"])]) HEADING([Checking for C compiler and basic build environment]) m4_include([m4/guestfs-c.m4]) AC_CONFIG_AUX_DIR([build-aux]) AC_USE_SYSTEM_EXTENSIONS dnl Initialize automake. AM_INIT_AUTOMAKE(foreign subdir-objects tar-pax) dnl NB: Do not [quote] this parameter. m4_ifndef([AM_SILENT_RULES], [m4_define([AM_SILENT_RULES],[])]) AM_SILENT_RULES([yes]) # make --enable-silent-rules the default. AC_CONFIG_MACRO_DIR([m4]) dnl Initialize libtool. LT_INIT HEADING([Checking for version and optional features]) dnl Stable or development version? BRANCH_NUMBER=v2v_major.v2v_minor AC_SUBST([BRANCH_NUMBER]) AC_MSG_CHECKING([if $BRANCH_NUMBER is a stable or development branch of virt-v2v]) AS_IF([test "$((v2v_minor % 2))" -eq 0 ],[ BRANCH_TYPE=stable AC_MSG_RESULT([$BRANCH_TYPE]) ],[ BRANCH_TYPE=development AC_MSG_RESULT([$BRANCH_TYPE]) ]) AC_SUBST([BRANCH_TYPE]) dnl Extra string, a freeform string defined by packagers. AC_ARG_WITH([extra], [AS_HELP_STRING([--with-extra], [extra version string (for use by packagers)])], [v2v_extra="$withval"], [v2v_extra=] ) AC_MSG_NOTICE([virt-v2v version v2v_major.v2v_minor.v2v_release$v2v_extra]) dnl Split up the version string. AC_DEFINE([PACKAGE_VERSION_MAJOR],[v2v_major],[Major version number.]) AC_DEFINE([PACKAGE_VERSION_MINOR],[v2v_minor],[Minor version number.]) AC_DEFINE([PACKAGE_VERSION_RELEASE],[v2v_release],[Release number.]) AC_DEFINE_UNQUOTED([PACKAGE_VERSION_EXTRA],["$v2v_extra"],[Extra version string.]) PACKAGE_VERSION_FULL="v2v_major.v2v_minor.v2v_release${v2v_extra}" AC_DEFINE_UNQUOTED([PACKAGE_VERSION_FULL],["$PACKAGE_VERSION_FULL"],[Full version string.]) AC_SUBST([PACKAGE_VERSION_FULL]) AC_ARG_ENABLE([block-driver], [AS_HELP_STRING([--disable-block-driver], [disable --block-driver feature])], [case $enableval in yes|no) ;; *) AC_MSG_ERROR([bad value $enableval for --enable-block-driver option]) ;; esac ENABLE_BLOCK_DRIVER=$enableval], [ENABLE_BLOCK_DRIVER=yes] ) AC_SUBST([ENABLE_BLOCK_DRIVER]) AM_CONDITIONAL([ENABLE_BLOCK_DRIVER], [test "x$ENABLE_BLOCK_DRIVER" = "xyes"]) dnl Allow some input modes to be disabled. AC_ARG_ENABLE([xen], [AS_HELP_STRING([--disable-xen], [disable Xen input mode])], [case $enableval in yes|no) ;; *) AC_MSG_ERROR([bad value $enableval for --enable-xen option]) ;; esac ENABLE_XEN=$enableval], [ENABLE_XEN=yes] ) AC_SUBST([ENABLE_XEN]) AM_CONDITIONAL([ENABLE_XEN], [test "x$ENABLE_XEN" = "xyes"]) dnl Allow some output modes to be disabled. AC_ARG_ENABLE([glance], [AS_HELP_STRING([--disable-glance], [disable -o glance output mode])], [case $enableval in yes|no) ;; *) AC_MSG_ERROR([bad value $enableval for --enable-glance option]) ;; esac ENABLE_GLANCE=$enableval], [ENABLE_GLANCE=yes] ) AC_SUBST([ENABLE_GLANCE]) AM_CONDITIONAL([ENABLE_GLANCE], [test "x$ENABLE_GLANCE" = "xyes"]) AC_ARG_ENABLE([ovirt], [AS_HELP_STRING([--disable-ovirt], [disable all oVirt output modes])], [case $enableval in yes|no) ;; *) AC_MSG_ERROR([bad value $enableval for --enable-ovirt option]) ;; esac ENABLE_OVIRT=$enableval], [ENABLE_OVIRT=yes] ) AC_SUBST([ENABLE_OVIRT]) AM_CONDITIONAL([ENABLE_OVIRT], [test "x$ENABLE_OVIRT" = "xyes"]) dnl Check for external programs required to either build or run dnl virt-v2v. HEADING([Checking for external programs]) m4_include([m4/guestfs-progs.m4]) dnl Any C libraries required by virt-v2v. HEADING([Checking for libraries used by virt-v2v]) m4_include([m4/guestfs-libraries.m4]) dnl OCaml. HEADING([Checking for OCaml]) m4_include([m4/guestfs-ocaml.m4]) dnl Perl, used for running mllibvirt generator, and man pages. HEADING([Checking for Perl]) m4_include([m4/guestfs-perl.m4]) dnl Bash completion. HEADING([Checking for bash completion]) m4_include([m4/guestfs-bash-completion.m4]) dnl This are required to get common/*/Makefile.am files to work. We dnl should further decouple these in future XXX AM_CONDITIONAL([HAVE_PYTHON],[false]) dnl Disables a test dnl Produce output files. HEADING([Generating output files]) AC_CONFIG_HEADERS([config.h]) AC_CONFIG_FILES([installcheck.sh], [chmod +x,-w installcheck.sh]) AC_CONFIG_FILES([ocaml-dep.sh], [chmod +x,-w ocaml-dep.sh]) AC_CONFIG_FILES([ocaml-link.sh], [chmod +x,-w ocaml-link.sh]) AC_CONFIG_FILES([podwrapper.pl], [chmod +x,-w podwrapper.pl]) AC_CONFIG_FILES([run], [chmod +x,-w run]) dnl NB: Remove common/mlstdutils/guestfs_config.ml in future XXX AC_CONFIG_FILES([Makefile bash/Makefile common/options/Makefile common/mlcustomize/Makefile common/mldrivers/Makefile common/mlgettext/Makefile common/mlpcre/Makefile common/mlstdutils/Makefile common/mlstdutils/guestfs_config.ml common/mltools/Makefile common/mlutils/Makefile common/mlxml/Makefile common/qemuopts/Makefile common/utils/Makefile config.sh convert/Makefile docs/Makefile gnulib/lib/Makefile in-place/Makefile input/Makefile inspector/Makefile lib/Makefile lib/config.ml open/Makefile output/Makefile po-docs/Makefile po-docs/ja/Makefile po-docs/uk/Makefile po/Makefile test-data/Makefile test-data/binaries/Makefile test-data/fake-virtio-win/Makefile test-data/fake-virt-tools/Makefile test-data/phony-guests/Makefile test-data/phony-guests/guests.xml tests/functions.sh tests/Makefile tests/test-cdrom.xml tests/test-floppy.xml tests/test-mac.xml tests/test-networks-and-bridges.xml tests/test-print-source.xml tests/test-rhbz1232192.xml tests/test-sound.xml v2v/Makefile]) AC_OUTPUT dnl Produce summary. echo echo echo "------------------------------------------------------------" HEADING([Thank you for downloading $PACKAGE_STRING]) echo echo "This is how we have configured the optional components for you today:" echo print () { printf ' %.40s %s\n' \ "$1 ........................................" "$2" } feature () { feat="$1" shift if "$@"; then printf "$term_green" print "$feat" "yes" else printf "$term_red" print "$feat" "no" fi printf "$term_restore" } feature "OCaml gettext (for translations)" \ test "x$HAVE_OCAML_PKG_GETTEXT_TRUE" = "x" feature "--block-driver feature" test "x$ENABLE_BLOCK_DRIVER" = "xyes" feature "Xen input mode" test "x$ENABLE_XEN" = "xyes" feature "-o glance output mode" test "x$ENABLE_GLANCE" = "xyes" feature "oVirt output modes" test "x$ENABLE_OVIRT" = "xyes" echo echo "Please report bugs back to the mailing list:" echo "https://lists.libguestfs.org" echo echo "Next you should type 'make' to build the package," echo "then 'make check' to run the tests." echo "------------------------------------------------------------" ================================================ FILE: contrib/remove-guestor.reg ================================================ ; Remove guestor registry entries ; See virt-v2v(1) and https://issues.redhat.com/browse/MTV-2256 [-HKEY_LOCAL_MACHINE\SYSTEM\DriverDatabase\DeviceIds\PCI\VEN_1AF4&DEV_1001&REV_00] [-HKEY_LOCAL_MACHINE\SYSTEM\DriverDatabase\DeviceIds\PCI\VEN_1AF4&DEV_1042&REV_01] [-HKEY_LOCAL_MACHINE\SYSTEM\DriverDatabase\DriverInfFiles\guestor.inf] [-HKEY_LOCAL_MACHINE\SYSTEM\DriverDatabase\DriverPackages\guestor.inf_tmp] ================================================ FILE: convert/Makefile.am ================================================ # helper-v2v-convert tool # Copyright (C) 2009-2025 Red Hat Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. include $(top_srcdir)/subdir-rules.mk EXTRA_DIST = \ $(SOURCES_MLI) \ $(SOURCES_ML) \ $(SOURCES_C) \ $(NULL) SOURCES_MLI = \ choose_root.mli \ convert.mli \ convert_linux.mli \ convert_types.mli \ convert_windows.mli \ mount_filesystems.mli \ target_bus_assignment.mli \ $(NULL) SOURCES_ML = \ convert_types.ml \ convert_linux.ml \ convert_windows.ml \ choose_root.ml \ mount_filesystems.ml \ target_bus_assignment.ml \ convert.ml \ $(NULL) SOURCES_C = dummy.c # We pretend that we're building a C library. automake handles the # compilation of the C sources for us. At the end we take the C # objects and OCaml objects and link them into the OCaml library. # This C library is never used. noinst_LIBRARIES = libmlconvert.a if !HAVE_OCAMLOPT MLCONVERT_CMA = mlconvert.cma else MLCONVERT_CMA = mlconvert.cmxa endif noinst_DATA = $(MLCONVERT_CMA) libmlconvert_a_SOURCES = $(SOURCES_C) libmlconvert_a_CPPFLAGS = \ -DCAML_NAME_SPACE \ -I. \ -I$(top_builddir) \ -I$(shell $(OCAMLC) -where) \ -I$(top_srcdir)/lib \ $(NULL) libmlconvert_a_CFLAGS = \ -pthread \ -fPIC \ $(WARN_CFLAGS) $(WERROR_CFLAGS) \ $(LIBGUESTFS_CFLAGS) \ $(NULL) BOBJECTS = $(SOURCES_ML:.ml=.cmo) XOBJECTS = $(BOBJECTS:.cmo=.cmx) OCAMLPACKAGES = \ -package str,unix,guestfs,nbd \ -I $(top_builddir)/common/utils/.libs \ -I $(top_builddir)/gnulib/lib/.libs \ -I $(top_builddir)/lib \ -I $(top_builddir)/common/mlcustomize \ -I $(top_builddir)/common/mlstdutils \ -I $(top_builddir)/common/mlutils \ -I $(top_builddir)/common/mlgettext \ -I $(top_builddir)/common/mlpcre \ -I $(top_builddir)/common/mltools \ -I $(top_builddir)/common/mldrivers \ -I $(top_builddir)/common/mlxml \ $(NULL) if HAVE_OCAML_PKG_GETTEXT OCAMLPACKAGES += -package gettext-stub endif OCAMLCLIBS = \ -pthread \ $(LIBGUESTFS_LIBS) \ $(LIBXML2_LIBS) \ $(LIBNBD_LIBS) \ -lgnu \ $(NULL) OCAMLFLAGS = $(OCAML_FLAGS) $(OCAML_WARN_ERROR) -ccopt '$(CFLAGS)' if !HAVE_OCAMLOPT OBJECTS = $(BOBJECTS) else OBJECTS = $(XOBJECTS) endif OCAMLLINKFLAGS = \ mlstdutils.$(MLARCHIVE) \ mlcutils.$(MLARCHIVE) \ mlgettext.$(MLARCHIVE) \ mlpcre.$(MLARCHIVE) \ mlxml.$(MLARCHIVE) \ mltools.$(MLARCHIVE) \ mlcustomize.$(MLARCHIVE) \ mldrivers.$(MLARCHIVE) \ mlv2vlib.$(MLARCHIVE) \ $(LINK_CUSTOM_OCAMLC_ONLY) \ $(NULL) libmlconvert_a_DEPENDENCIES = \ $(OBJECTS) $(MLCONVERT_CMA): $(OBJECTS) libmlconvert.a $(AM_V_GEN) $(OCAMLFIND) mklib $(OCAMLPACKAGES) \ $(OBJECTS) $(libmlconvert_a_OBJECTS) -o mlconvert # Dependencies. .depend: \ $(srcdir)/*.mli \ $(srcdir)/*.ml $(top_builddir)/ocaml-dep.sh $^ -include .depend ================================================ FILE: convert/choose_root.ml ================================================ (* virt-v2v * Copyright (C) 2009-2025 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) open Printf open Std_utils open Tools_utils open Common_gettext.Gettext module G = Guestfs open Types let choose_root root_choice g = let roots = g#inspect_os () in let roots = Array.to_list roots in match roots with | [] -> error (f_"inspection could not detect the source guest \ (or physical machine) operating system.\n\n\ Assuming that you are running virt-v2v/virt-p2v \ on a source which is supported (and not, for example, \ a blank disk), then this should not happen.\n\n\ No root device found in this operating system image."); | [root] -> root (* only one root, so return it *) | roots -> (* If there are multiple roots, use the [--root] option supplied * by the user to help us choose what we should do next. *) match root_choice with | AskRoot -> (* List out the roots and ask the user to choose. *) printf "\n***\n"; printf (f_"Dual- or multi-boot operating system detected. \ Choose the root filesystem\nthat contains the main \ operating system from the list below:\n"); printf "\n"; List.iteri ( fun i root -> let prod = g#inspect_get_product_name root in match prod with | "unknown" -> printf " [%d] %s\n" (i+1) root | prod -> printf " [%d] %s (%s)\n" (i+1) root prod ) roots; printf "\n"; let i = ref 0 in let n = List.length roots in while !i < 1 || !i > n do printf (f_"Enter a number between 1 and %d, or ‘exit’: ") n; let input = read_line () in if input = "exit" || input = "q" || input = "quit" then exit 1 else ( try i := int_of_string input with | End_of_file -> error (f_"connection closed") | Failure _ -> () ) done; List.nth roots (!i - 1) | SingleRoot -> error (f_"multi-boot operating systems are not supported by \ virt-v2v. Use the --root option to change how virt-v2v \ handles this.") | FirstRoot -> let root = List.hd roots in info (f_"Picked %s because '--root first' was used.") root; root | RootDev dev -> let root = if List.mem dev roots then dev else error (f_"root device %s not found. Roots found were: %s") dev (String.concat " " roots) in info (f_"Picked %s because '--root %s' was used.") root dev; root ================================================ FILE: convert/choose_root.mli ================================================ (* virt-v2v * Copyright (C) 2009-2025 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) (** Choose which root device to convert. This handles the [--root] command line option. *) val choose_root : Types.root_choice -> Guestfs.guestfs -> string (** Do libguestfs inspection on the guest. Before calling this, the disks must be added to the handle and the handle must be launched. Depending on the contents of [root_choice] (the [--root] command line option) choose which root device to convert. A single root device is returned. Note that this function may be interactive ([--root ask]). *) ================================================ FILE: convert/convert.ml ================================================ (* helper-v2v-convert * Copyright (C) 2009-2025 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) open Printf open Unix open Std_utils open Tools_utils open Unix_utils open Common_gettext.Gettext open Getopt.OptionName open Types open Utils module G = Guestfs type options = { block_driver : guestcaps_block_type; keep_serial_console : bool; ks : key_store; memsize : int option; network_map : Networks.t; root_choice : root_choice; smp : int option; static_ips : static_ip list; customize_ops : Customize_cmdline.ops; no_fstrim : bool; } (* Mountpoint stats, used for free space estimation. *) type mpstat = { mp_dev : string; (* Filesystem device (eg. /dev/sda1) *) mp_path : string; (* Guest mountpoint (eg. /boot) *) mp_statvfs : Guestfs.statvfs; (* Free space stats. *) mp_vfs : string; (* VFS type (eg. "ext4") *) } let rec convert input_disks options source = let target_nics = List.map (Networks.map options.network_map) source.s_nics in message (f_"Opening the source"); let g = open_guestfs ~identifier:"v2v" () in let memsize = match options.memsize with | None -> (* Default (if [--memsize] option is not used) is to calculate * some multiple of the libguestfs default memory size. *) g#get_memsize () * 2 | Some memsize -> memsize in g#set_memsize memsize; let smp = match options.smp with | None -> (* Default (if [--smp] option is not used) is to set the number * according to the number of physical CPUs available (on the * host or in the current cgroup). But limit it because each * vCPU consumes guest RAM. This is necessary to allow parallel * mkinitrd which greatly improves performance. *) min 8 (Cgroup.nr_cpus_available ()) | Some smp -> smp in g#set_smp smp; (* The network is used by the unconfigure_vmware () function, and the "--key * ID:clevis" command line options (if any). *) g#set_network true; List.iter ( fun uri -> (* NB: Old virt-v2v used copyonread here, when it was using a * qcow2 file as overlay. We MUST NOT use copyonread! It * doesn't do anything if there is no backing chain, but worse * than that I observed a huge (33x!) slow down. *) let socket, export = match uri with NBD_URI.Unix (socket, export) -> sprintf "unix:%s" socket, Option.value export ~default:"" in g#add_drive_opts export ~format:"raw" ~protocol:"nbd" ~server:[| socket |] ~cachemode:"unsafe" ~discard:"besteffort" ) input_disks; g#launch (); (* Decrypt the disks. *) inspect_decrypt g options.ks; (* Check (fsck) the filesystems before conversion. *) message (f_"Checking filesystem integrity before conversion"); do_fsck ~before:true g; (* Detect firmware. *) message (f_"Detecting if this guest uses BIOS or UEFI to boot"); let i_firmware = Firmware.detect_firmware g in (* Inspect the source, choose root and mount up the filesystems. *) message (f_"Inspecting the source"); let root = Choose_root.choose_root options.root_choice g in let inspect = Mount_filesystems.mount_filesystems g root in (* Detect boot device. *) message (f_"Detecting the boot device"); let target_boot_device = get_target_boot_device g inspect in let mpstats = get_mpstats g in check_guest_free_space inspect mpstats; (* Choose which conversion module we will use. *) let (module Conversion_module) = match inspect with | { i_type = "linux"; i_distro = ("fedora" | "rhel" | "centos" | "circle" | "scientificlinux" | "redhat-based" | "oraclelinux" | "rocky" | "sles" | "suse-based" | "opensuse" | "altlinux" | "debian" | "ubuntu" | "linuxmint" | "kalilinux" | "kylin" | "neokylin" | "anolis" ) } -> (module Convert_linux.Convert_linux : Convert_types.CONVERT) | { i_type = "windows" } -> (module Convert_windows.Convert_windows : Convert_types.CONVERT) | _ -> error (f_"virt-v2v is unable to convert this guest type (%s/%s)") inspect.i_type inspect.i_distro in debug "picked conversion module %s" Conversion_module.name; (* Conversion. *) let guestcaps = do_convert g source inspect i_firmware options.block_driver options.keep_serial_console options.static_ips Conversion_module.convert in (* Run virt-customize options. *) Customize_run.run g inspect.i_root options.customize_ops; g#umount_all (); (* Post-conversion steps that run with filesystems unmounted. *) Conversion_module.post_convert g inspect; (* Doing fstrim on all the filesystems reduces the transfer size * because unused blocks are marked in the overlay and thus do * not have to be copied. *) if not options.no_fstrim then ( message (f_"Mapping filesystem data to avoid copying unused and blank areas"); do_fstrim g inspect ) else ( message (f_"Skipping fstrim (--no-fstrim specified)") ); (* Check (fsck) the filesystems after conversion. *) g#umount_all (); message (f_"Checking filesystem integrity after conversion"); do_fsck g; message (f_"Closing the overlay"); g#umount_all (); g#shutdown (); g#close (); (* Prepare the target metadata. *) message (f_"Assigning disks to buses"); let target_buses = Target_bus_assignment.target_bus_assignment source.s_disks source.s_removables guestcaps in debug "%s" (string_of_target_buses target_buses); let target_firmware = get_target_firmware i_firmware guestcaps source output in (* Create target metadata file. *) let target_meta = { guestcaps; target_buses; target_nics; target_firmware; target_boot_device } in (* This is a good place to dump everything we know about the guest. *) if verbose () then debug_info source inspect target_meta mpstats; (* Return inspection data and target metadata. *) inspect, target_meta (* Collect statvfs information from the guest mountpoints. *) and get_mpstats g = let mpstats = List.map ( fun (dev, path) -> let statvfs = g#statvfs path in let vfs = g#vfs_type dev in { mp_dev = dev; mp_path = path; mp_statvfs = statvfs; mp_vfs = vfs } ) (g#mountpoints ()) in mpstats (* Conversion can fail if there is no space on the guest filesystems * (RHBZ#1139543). To avoid this situation, check there is some * headroom. Mainly we care about the root filesystem. * * Also make sure filesystems have available inodes. (RHBZ#1764569) *) and check_guest_free_space inspect mpstats = message (f_"Checking for sufficient free disk space in the guest"); (* Check whether /boot has its own mount point. *) let has_boot = List.exists (fun { mp_path } -> mp_path = "/boot") mpstats in let is_windows = inspect.i_distro = "windows" in let needed_megabytes_for_mp = function (* We usually regenerate the initramfs, which has a * typical size of 20-30MB. Hence: *) | "/boot" | "/" when not has_boot && not is_windows -> 50 (* Both Linux and Windows require installation of files, * device drivers and guest agents. * https://bugzilla.redhat.com/1949147 * https://bugzilla.redhat.com/1764569#c16 *) | "/" -> 100 (* For everything else, just make sure there is some free space. *) | _ -> 10 in (* Reasonable headroom for conversion operations. *) let needed_inodes = 100L in List.iter ( fun { mp_path; mp_statvfs = { G.bfree; bsize; files; ffree } } -> (* bfree = free blocks for root user *) let free_bytes = bfree *^ bsize in let needed_megabytes = needed_megabytes_for_mp mp_path in let needed_bytes = Int64.of_int needed_megabytes *^ 1024L *^ 1024L in if free_bytes < needed_bytes then ( let mb i = Int64.to_float i /. 1024. /. 1024. in error (f_"not enough free space for conversion on filesystem ‘%s’. \ %.1f MB free < %d MB needed") mp_path (mb free_bytes) needed_megabytes ); (* Not all the filesystems have inode counts. *) if files > 0L && ffree < needed_inodes then error (f_"not enough available inodes for conversion on \ filesystem ‘%s’. %Ld inodes available < %Ld inodes needed") mp_path ffree needed_inodes ) mpstats (* Perform the fstrim. *) and do_fstrim g inspect = (* Get all filesystems. *) let fses = g#list_filesystems () in let fses = List.filter_map ( function (_, ("unknown"|"swap")) -> None | (dev, _) -> Some dev ) fses in (* Trim the filesystems. *) List.iter ( fun dev -> g#umount_all (); let mounted = try g#mount_options "discard" dev "/"; true with G.Error _ -> false in if mounted then ( debug "info: trimming %s" dev; try g#fstrim "/" with G.Error msg -> warning (f_"fstrim on guest filesystem %s failed. Usually you \ can ignore this message. To find out more read \ \"Trimming\" in virt-v2v(1).\n\n\ Original message: %s") dev msg ) ) fses (* Perform fsck before and after conversion. * * If fsck returns an error then the conversion will fail. We do not * attempt to do any repairs. *) and do_fsck ?(before=false) g = let fses = g#list_filesystems () in List.iter (function | dev, _ when String.starts_with "btrfsvol:" dev -> (* Ignore btrfs volumes, since we should see the btrfs device * somewhere else in the list and checking that is sufficient. *) () | dev, "btrfs" -> (* btrfs-check would be the obvious thing, but the general * opinion seems to be that it's broken, and you should use * btrfs scrub instead. *) Fun.protect ~finally:g#umount_all ( fun () -> g#mount_ro dev "/"; g#btrfs_scrub_full "/" ~readonly:true; ); | dev, "ext4" -> if before then ( (* Replay and hence repair a dirty log (RHEL-97600) *) Fun.protect ~finally:g#umount_all (fun () -> g#mount_ro dev "/"); ); g#e2fsck ~forceno:true dev | dev, "xfs" -> if before then ( (* xfs_repair cannot replay the dirty log, only the kernel can, * so we must first mount then unmount the filesystem, and then * we can run xfs_repair. Unlike what is documented, xfs_repair * doesn't return 2 in this case. Mount r/o is fine as that * will still replay the log (RHEL-95365) *) Fun.protect ~finally:g#umount_all (fun () -> g#mount_ro dev "/"); ); (* Must specify the -n flag because we are not attempting to * fix the filesystem here. *) let nomodify = true (* xfs_repair runs out of memory in the low memory environment * of the appliance unless we disable prefetch. *) and noprefetch = true in if g#xfs_repair ~noprefetch ~nomodify dev <> 0 then error (f_"detected errors on the XFS filesystem on %s") dev | _, _ -> (* Ignore other filesystem types. *) () ) fses (* Conversion. *) and do_convert g source inspect i_firmware block_driver keep_serial_console interfaces convert = (* Create the "Converting..." message. Complicated! *) let () = let what_guest = match inspect.i_product_name, inspect.i_osinfo with | "unknown", "unknown" -> s_"the guest" | "unknown", osinfo -> sprintf (f_"%s guest") osinfo | prod, "unknown" -> prod | prod, osinfo -> sprintf "%s (%s)" prod osinfo in message (f_"Converting %s to run on KVM") what_guest in let guestcaps = convert g source inspect i_firmware block_driver keep_serial_console interfaces in debug "%s" (string_of_guestcaps guestcaps); (* Did we manage to install virtio drivers? *) if not (quiet ()) then ( match guestcaps.gcaps_block_bus with | Virtio_blk | Virtio_SCSI -> info (f_"This guest has virtio drivers installed.") | IDE -> info (f_"This guest does not have virtio drivers installed.") ); guestcaps (* Does the guest require UEFI on the target? *) and get_target_firmware i_firmware guestcaps source output = message (f_"Checking if the guest needs BIOS or UEFI to boot"); let target_firmware = match source.s_firmware with | BIOS -> TargetBIOS | UEFI -> TargetUEFI | UnknownFirmware -> match i_firmware with | I_BIOS -> TargetBIOS | I_UEFI _ -> TargetUEFI in (match target_firmware with | TargetBIOS -> () | TargetUEFI -> info (f_"This guest requires UEFI on the target to boot.")); target_firmware and get_target_boot_device g inspect = with_return (fun {return} -> (* We only do it for Linux, as most likely Windows never(?) boots * from any drive other than C:. We can revisit this decision * if someone reports a bug. *) if inspect.i_type <> "linux" then return None; (* Look for "GRUB" signature in the boot sector of each disk. * If we find it, choose that disk. *) let devices = g#list_devices () |> Array.to_list in let boot_device = List.find_opt (has_grub_signature g) devices in let boot_device = Option.map g#device_index boot_device in if boot_device <> None then return boot_device; (* If that fails, in sane cases, the Grub stage1/boot.img (ie. the boot * sector) is always on the same drive as /boot. So we can just find * out where /boot is mounted and use that. *) get_device_of_boot_filesystem g inspect ) and has_grub_signature g dev = let boot_sector = g#pread_device dev 512 0_L in let r = String.find boot_sector "GRUB" >= 0 in debug "has_grub_signature: \"GRUB\" signature on %s? %b" dev r; r and get_device_of_boot_filesystem g inspect = try let boot_mountpoint = List.assoc "/boot" inspect.i_mountpoints in let boot_device = g#part_to_dev boot_mountpoint in debug "get_device_of_boot_filesystem: found /boot filesystem on device %s" boot_device; let boot_device = g#device_index boot_device in Some boot_device with | Not_found -> None (* Returned by part_to_dev if the /boot mountpoint is not * a partition name. *) | G.Error msg when String.find msg "device name is not a partition" >= 0 -> None (* Returned by device_index if the /boot device is not * a normal drive name (eg. /dev/mdX). *) | G.Error msg when String.find msg "device not found" >= 0 -> None (* After conversion we dump as much information about the guest * as we can in one place. Note this is only called when verbose * is enabled. *) and debug_info source inspect { guestcaps; target_buses; target_nics; target_firmware; target_boot_device } mpstats = eprintf "info:\n"; eprintf "%s\n" (string_of_source source); eprintf "%s\n" (string_of_inspect inspect); eprintf "%s\n" (string_of_guestcaps guestcaps); eprintf "%s\n" (string_of_target_buses target_buses); eprintf "target firmware: %s\n" (string_of_target_firmware target_firmware); eprintf "target boot device: %s\n" (match target_boot_device with None -> "" | Some i -> string_of_int i); eprintf "target NICs:\n"; List.iter (fun nic -> eprintf "%s\n" (string_of_source_nic nic)) target_nics; eprintf "mountpoint stats:\n"; eprintf "%20s %-16s %-16s %-16s %s\n" "" "Size" "Used" "Available" "Use%"; List.iter debug_mpstat mpstats; flush Stdlib.stderr (* The calculations here are similar to virt-df df/output.c *) and debug_mpstat { mp_dev = dev; mp_path = path; mp_statvfs = { G.bsize; G.blocks; G.bfree; G.bavail }; mp_vfs = vfs } = let label = sprintf "%s %s (%s):" dev path vfs and size = blocks *^ bsize and used = (blocks -^ bfree) *^ bsize and avail = bavail *^ bsize and percent = if blocks <> 0_L then 100. -. 100. *. (Int64.to_float bfree /. Int64.to_float blocks) else 0. in if String.length label > 20 then eprintf "%s\n%20s " label "" else eprintf "%-20s " label; eprintf "%-16Ld %-16Ld %-16Ld\n" size used avail; eprintf "%20s %-16s %-16s %-16s %.1f%%\n" "" (human_size size) (human_size used) (human_size avail) percent ================================================ FILE: convert/convert.mli ================================================ (* virt-v2v * Copyright (C) 2009-2025 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) type options = { block_driver : Types.guestcaps_block_type; (** [--block-driver] option *) keep_serial_console : bool; ks : Tools_utils.key_store; (** [--key] option *) memsize : int option; (** [--memsize] option *) network_map : Networks.t; (** [-b] and [-n] options *) root_choice : Types.root_choice; (** [--root] option *) smp : int option; (** [--smp] option *) static_ips : Types.static_ip list; (** [--mac :ip:] option *) customize_ops : Customize_cmdline.ops; (** virt-customize options *) no_fstrim : bool; (** [--no-fstrim] option *) } (** Command line options that get passed through to the conversion code. *) val convert : NBD_URI.t list -> options -> Types.source -> Types.inspect * Types.target_meta (** The function that is called from virt-v2v to perform the actual conversion of a guest to run on KVM. The first parameter is the list of disks (as NBD URIs). As a side-effect of conversion we inspect the guest, so this function returns the inspection data, as well as the target metadata determined by the conversion process. *) ================================================ FILE: convert/convert_linux.ml ================================================ (* virt-v2v * Copyright (C) 2009-2025 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) (* Convert a Linux guest to run on KVM. *) (* < mdbooth> It's all in there for a reason :/ *) open Printf open C_utils open Std_utils open Tools_utils open Common_gettext.Gettext open Utils open Types open Linux_kernels module G = Guestfs (* The conversion function. *) let convert (g : G.guestfs) source inspect i_firmware _ keep_serial_console _ = (*----------------------------------------------------------------------*) (* Inspect the guest first. We already did some basic inspection in * the common v2v.ml code, but that has to deal with generic guests * (anything common to Linux and Windows). Here we do more detailed * inspection which can make the assumption that we are dealing with * a Linux guest using RPM or Debian packages. *) (* Basic inspection data available as local variables. *) assert (inspect.i_type = "linux"); let family = match inspect.i_distro with | "fedora" | "rhel" | "centos" | "circle" | "scientificlinux" | "redhat-based" | "oraclelinux" | "rocky" | "kylin" | "neokylin" | "anolis" -> `RHEL_family | "altlinux" -> `ALT_family | "sles" | "suse-based" | "opensuse" -> `SUSE_family | "debian" | "ubuntu" | "linuxmint" | "kalilinux" -> `Debian_family | _ -> assert false in (* map the OS family name to the qemu-guest-agent package name *) let qga_pkg_of_family = function | `RHEL_family | `ALT_family | `SUSE_family | `Debian_family -> Some "qemu-guest-agent" | _ -> None in let qga_svc_start_cmd family distro major = match family, distro, major with | `RHEL_family, ( "rhel" | "centos" | "circle" | "scientificlinux" | "redhat-based" | "oraclelinux" | "rocky" ), 6 -> (* https://bugzilla.redhat.com/show_bug.cgi?id=2028764#c52 *) Some "service qemu-ga start" | `RHEL_family, _, _ -> (* https://bugzilla.redhat.com/show_bug.cgi?id=2028764#c52 *) Some "systemctl start qemu-guest-agent" | `ALT_family, _, _ -> (* https://bugzilla.redhat.com/show_bug.cgi?id=2028764#c45 *) Some "systemctl start qemu-guest-agent" | `SUSE_family, _, _ -> (* https://bugzilla.redhat.com/show_bug.cgi?id=2028764#c51 *) None | `Debian_family, _, _ -> (* https://bugzilla.redhat.com/show_bug.cgi?id=2028764#c42 *) Some "service qemu-guest-agent start" | _ -> (* should never be called when "qga_pkg_of_family" returns None *) assert false in assert (inspect.i_package_format = "rpm" || inspect.i_package_format = "deb"); (* Fail early if i_apps is empty. Certain steps such as kernel * detection won't work without this. If the list is empty it * likely indicates that libguestfs inspection is broken for * this guest. See for example RHBZ#1965147. *) if inspect.i_apps = [] then error (f_"inspection of the package database failed for this Linux \ guest. Rerun virt-v2v with -v -x and see earlier errors. \ This is an internal error which probably means that this guest \ is not supported by libguestfs inspection. If the guest should \ work with virt-v2v (see virt-v2v docs) then a fix will be \ required in libguestfs."); (* We use Augeas for inspection and conversion, so initialize it early. *) let () = let aug_save_backup = 1 and aug_no_load = 32 in g#aug_init "/" (aug_save_backup + aug_no_load); (* Exclude some lense includes which are problematic on a case-by-case * basis. Note the double quotes are part of the incl, and the incl * must exactly match the definition in the Augeas lens file. * - "/etc/lvm/archive/*.vg" because of RHEL-113820 *) let removed_incls = [ {|"/etc/lvm/archive/*.vg"|} ] in List.iter ( fun incl -> let augpath = sprintf "/augeas/load//incl[%s]" incl in let n = g#aug_rm augpath in debug "convert_linux: removed %d incl(s) matching %s" n incl; ) removed_incls; g#aug_load (); (* Calling debug_augeas_errors will display any //error nodes in * debugging output if verbose (but otherwise it does nothing). *) debug_augeas_errors g in (* Clean RPM database. This must be done early to avoid RHBZ#1143866. *) Array.iter g#rm_f (g#glob_expand "/var/lib/rpm/__db.00?"); (* Detect the installed bootloader. *) let bootloader = Linux_bootloaders.detect_bootloader g inspect.i_root i_firmware in Linux.augeas_reload g; (* Detect which kernels are installed and offered by the bootloader. *) let bootloader_kernels = Linux_kernels.detect_kernels g inspect.i_root bootloader inspect.i_apps in (*----------------------------------------------------------------------*) (* Conversion step. *) let rec do_convert () = augeas_grub_configuration (); unconfigure_xen (); unconfigure_vbox (); unconfigure_vmware (); unconfigure_citrix (); unconfigure_kudzu (); unconfigure_prltools (); install_linux_tools (); let kernel = configure_kernel () in if keep_serial_console then ( configure_console (); bootloader#configure_console (); ) else ( remove_console (); bootloader#remove_console (); ); let block_type = if kernel.ki_supports_virtio_blk then Virtio_blk else IDE in let net_type = if kernel.ki_supports_virtio_net then Virtio_net else E1000 in configure_display_driver (); remap_block_devices block_type; configure_kernel_modules block_type net_type; rebuild_initrd kernel; let machine, virtio_1_0 = match inspect.i_arch with | ("i386"|"x86_64") -> (match Libosinfo_utils.get_os_by_short_id inspect.i_osinfo with | Some os -> let devices = os#get_devices () in debug "libosinfo devices for OS \"%s\":\n%s" inspect.i_osinfo (Libosinfo_utils.string_of_osinfo_device_list devices); ((if Libosinfo_utils.os_devices_supports_q35 devices then Q35 else I440FX), Libosinfo_utils.os_devices_supports_vio10 devices) | None -> (* Pivot on the year 2007. Any Linux distro from earlier than 2007 * should use i440fx, anything 2007 or newer should use q35. *) (match inspect.i_distro, inspect.i_major_version with | "fedora", _ -> Q35 | ("rhel"|"centos"|"circle"|"scientificlinux"|"redhat-based"| "oraclelinux"|"rocky"), major -> if major <= 4 then I440FX else Q35 | ("sles"|"suse-based"|"opensuse"), major -> if major < 10 then I440FX else Q35 | ("debian"|"ubuntu"|"linuxmint"|"kalilinux"), major -> if major < 4 then I440FX else Q35 (* reasonable default for all modern Linux kernels *) | _, _ -> Q35 ), true ) | _ -> Virt, true in (* RHEL >= 9.0 on x86_64 requires the processor to support the "x86-64-v2" * microarchitecture level, which the default QEMU VCPU model does not * satisfy. Refer to RHBZ#2076013 RHBZ#2166619. *) let arch_min_version = if family <> `RHEL_family || inspect.i_arch <> "x86_64" || inspect.i_major_version < 9 then 0 else 2 in (* Return guest capabilities from the convert () function. *) let guestcaps = { gcaps_block_bus = block_type; gcaps_net_bus = net_type; gcaps_virtio_rng = kernel.ki_supports_virtio_rng; gcaps_virtio_balloon = kernel.ki_supports_virtio_balloon; gcaps_isa_pvpanic = kernel.ki_supports_isa_pvpanic; gcaps_virtio_socket = kernel.ki_supports_virtio_socket; gcaps_machine = machine; gcaps_arch = Utils.kvm_arch inspect.i_arch; gcaps_arch_min_version = arch_min_version; gcaps_virtio_1_0 = virtio_1_0; gcaps_rtc_utc = true; (* almost all Linux expect RTC to be UTC *) } in guestcaps and augeas_grub_configuration () = if bootloader#set_augeas_configuration () then Linux.augeas_reload g and unconfigure_xen () = if family = `SUSE_family then ( (* Remove xen modules from INITRD_MODULES and DOMU_INITRD_MODULES. *) let variables = ["INITRD_MODULES"; "DOMU_INITRD_MODULES"] in let xen_modules = ["xennet"; "xen-vnif"; "xenblk"; "xen-vbd"] in let modified = ref false in List.iter ( fun var -> List.iter ( fun xen_mod -> let expr = sprintf "/file/etc/sysconfig/kernel/%s/value[. = '%s']" var xen_mod in let entries = g#aug_match expr in let entries = Array.to_list entries in if entries <> [] then ( List.iter (fun e -> ignore (g#aug_rm e)) entries; modified := true ) ) xen_modules ) variables; if !modified then g#aug_save () ); and unconfigure_vbox () = (* Uninstall VirtualBox Guest Additions. *) let package_name = "virtualbox-guest-additions" in let has_guest_additions = List.exists ( fun { G.app2_name = name } -> name = package_name ) inspect.i_apps in if has_guest_additions then uninstall_packages_nonfatal [package_name]; (* Guest Additions might have been installed from a tarball. The * above code won't detect this case. Look for the uninstall tool * and try running it. * * Note that it's important we do this early in the conversion * process, as this uninstallation script naively overwrites * configuration files with versions it cached prior to * installation. *) let vboxconfig = "/var/lib/VBoxGuestAdditions/config" in if g#is_file ~followsymlinks:true vboxconfig then ( let lines = g#read_lines vboxconfig in let lines = Array.to_list lines in let rex = PCRE.compile "^INSTALL_DIR=(.*)$" in let lines = List.filter_map ( fun line -> if PCRE.matches rex line then ( let path = PCRE.sub 1 in let path = shell_unquote path in if String.length path >= 1 && path.[0] = '/' then ( let vboxuninstall = path ^ "/uninstall.sh" in Some vboxuninstall ) else None ) else None ) lines in let lines = List.filter (g#is_file ~followsymlinks:true) lines in match lines with | [] -> () | vboxuninstall :: _ -> try ignore (g#command [| vboxuninstall |]); (* Reload Augeas to detect changes made by vbox tools uninst. *) Linux.augeas_reload g with G.Error msg -> warning (f_"VirtualBox Guest Additions were detected, but \ uninstallation failed. The error message was: %s \ (ignored)") msg ) and unconfigure_vmware () = (* Look for any configured VMware yum repos and disable them. *) let repos = g#aug_match "/files/etc/yum.repos.d/*/*[baseurl =~ \ regexp('https?://([^/]+\\.)?vmware\\.com/.*')]" in let repos = Array.to_list repos in List.iter ( fun repo -> g#aug_set (repo ^ "/enabled") "0"; g#aug_save () ) repos; (* Uninstall VMware Tools. *) let remove = ref [] and libraries = ref [] in (* On Ubuntu, the ubuntu-server metapackage depends on * open-vm-tools, and thus any attempt to remove it will cause * dependency issues. Hence, special case this situation, and * leave open-vm-tools installed in this case. *) let has_ubuntu_server = if family = `Debian_family then List.exists ( fun { G.app2_name = name } -> name = "ubuntu-server" ) inspect.i_apps else false in List.iter ( fun { G.app2_name = name } -> if String.starts_with "vmware-tools-libraries-" name then List.push_front name libraries else if String.starts_with "vmware-tools-" name then List.push_front name remove else if name = "VMwareTools" then List.push_front name remove else if String.starts_with "kmod-vmware-tools" name then List.push_front name remove else if String.starts_with "open-vm-tools-" name then List.push_front name remove else if name = "open-vm-tools" && not has_ubuntu_server then List.push_front name remove ) inspect.i_apps; let libraries = !libraries in (* VMware tools includes 'libraries' packages which provide custom * versions of core functionality. We need to install non-custom * versions of everything provided by these packages before * attempting to uninstall them, or we'll hit dependency * issues. *) if libraries <> [] then ( (* We only support removal of libraries on systems which use yum. *) if inspect.i_package_management = "yum" then ( List.iter ( fun library -> let provides = g#command_lines [| "rpm"; "-q"; "--provides"; library |] in let provides = Array.to_list provides in (* The packages provide themselves, filter this out. *) let provides = List.filter ( fun s -> not (library = s || String.starts_with (library ^ " = ") s) ) provides in (* If the package provides something other than itself, then * proceed installing the replacements; in the other case, * just mark the package for removal, as it means no other * package can depend on something provided. *) if provides <> [] then ( (* Trim whitespace. *) let provides = List.map String.trim provides in (* Install the dependencies with yum. Use yum explicitly * because we don't have package names and local install is * impractical. *) let cmd = ["yum"; "-q"; "resolvedep"] @ provides in let cmd = Array.of_list cmd in let replacements = g#command_lines cmd in let replacements = Array.to_list replacements in let cmd = [ "yum"; "install"; "-y" ] @ replacements in let cmd = Array.of_list cmd in (try ignore (g#command cmd); List.push_front library remove with G.Error msg -> eprintf "%s: could not install replacement for %s. Error \ was: %s. %s was not removed.\n" prog library msg library ); ) else ( List.push_front library remove; ); ) libraries ) ); uninstall_packages_nonfatal !remove; (* VMware Tools may have been installed from a tarball, so the * above code won't remove it. Look for the uninstall tool and run * if present. *) let uninstaller = "/usr/bin/vmware-uninstall-tools.pl" in if g#is_file ~followsymlinks:true uninstaller then ( try (* The VMware tools uninstaller will rebuild the ramdisk for * the kernels present either at installation time, or at * later time (when the tools are applied to newly * installed kernels). Since we do not want to potentially * rebuilt all the available kernels, trick the "database" * of the VMware tools installation to not do any ramdisk * restore. In any case, we will rebuilt the ramdisk of the * default kernel already. *) let locations = "/etc/vmware-tools/locations" in if g#is_file ~followsymlinks:true locations then ( g#write_append locations "remove_answer RESTORE_RAMDISK_CMD\n"; g#write_append locations "remove_answer RESTORE_RAMDISK_KERNELS\n"; g#write_append locations "remove_answer RESTORE_RAMDISK_ONECALL\n"; ); if family = `SUSE_family then ignore (g#command [| "/usr/bin/env"; "rootdev=" ^ inspect.i_root; uninstaller |]) else ignore (g#command [| uninstaller |]); (* Reload Augeas to detect changes made by vbox tools uninst. *) Linux.augeas_reload g with G.Error msg -> warning (f_"VMware tools was detected, but uninstallation failed. \ The error message was: %s (ignored)") msg ) and unconfigure_citrix () = let pkgs = List.filter ( fun { G.app2_name = name } -> String.starts_with "xe-guest-utilities" name ) inspect.i_apps in let pkgs = List.map (fun { G.app2_name = name } -> name) pkgs in if pkgs <> [] then ( uninstall_packages_nonfatal pkgs; (* Installing these guest utilities automatically unconfigures * ttys in /etc/inittab if the system uses it. We need to put * them back. *) let rex = PCRE.compile "^([1-6]):([2-5]+):respawn:(.*)" in let updated = ref false in let rec loop () = let comments = g#aug_match "/files/etc/inittab/#comment" in let comments = Array.to_list comments in match comments with | [] -> () | commentp :: _ -> let comment = g#aug_get commentp in if PCRE.matches rex comment then ( let name = PCRE.sub 1 and runlevels = PCRE.sub 2 and process = PCRE.sub 3 in if String.find process "getty" >= 0 then ( updated := true; (* Create a new entry immediately after the comment. *) g#aug_insert commentp name false; g#aug_set ("/files/etc/inittab/" ^ name ^ "/runlevels") runlevels; g#aug_set ("/files/etc/inittab/" ^ name ^ "/action") "respawn"; g#aug_set ("/files/etc/inittab/" ^ name ^ "/process") process; (* Delete the comment node. *) ignore (g#aug_rm commentp); (* As the aug_rm invalidates the output of aug_match, we * now have to restart the whole loop. *) loop () ) ) in loop (); if !updated then g#aug_save (); ) and unconfigure_kudzu () = (* Disable kudzu in the guest * Kudzu will detect the changed network hardware at boot time and * either: * - require manual intervention, or * - disable the network interface * Neither of these behaviours is desirable. *) if g#is_file ~followsymlinks:true "/etc/init.d/kudzu" && g#is_file ~followsymlinks:true "/sbin/chkconfig" then ( ignore (g#command [| "/sbin/chkconfig"; "kudzu"; "off" |]) ) and unconfigure_prltools () = let prltools_path = "/usr/lib/parallels-tools/install" in if g#is_file ~followsymlinks:true prltools_path then ( try ignore (g#command [| prltools_path; "-r" |]); (* Reload Augeas to detect changes made by prltools uninst. *) Linux.augeas_reload g with G.Error msg -> warning (f_"Parallels tools was detected, but uninstallation \ failed. The error message was: %s (ignored)") msg ) and install_linux_tools () = (* It is not fatal if we fail to install the QEMU guest agent. *) match qga_pkg_of_family family with | None -> warning (f_"The name of the package that provides the QEMU Guest \ Agent for this guest OS is unknown. The guest agent \ will not be installed. Please consider reporting a \ bug according to the BUGS section of the virt-v2v(1) \ manual.") | Some qga_pkg -> let has_qemu_guest_agent = List.exists ( fun { G.app2_name = name } -> name = qga_pkg ) inspect.i_apps in if not has_qemu_guest_agent then try let inst_cmd = Guest_packages.install_command [qga_pkg] inspect.i_package_management in (* Use only the portable filename character set in this. *) let selinux_enforcing = "/root/virt-v2v-fb-selinux-enforcing" and timeout = 30 in let fbs = Firstboot.add_firstboot_script g inspect.i_root in info (f_"The QEMU Guest Agent will be installed for this guest at \ first boot."); (* Wait for the network to come online in the guest (best effort). *) fbs "wait online" (sprintf {|#!/bin/sh if conn=$(nmcli networking connectivity); then tries=0 while test $tries -lt %d && test full != "$conn" do sleep 1 tries=$((tries + 1)) conn=$(nmcli networking connectivity) done elif systemctl -q is-active systemd-networkd; then /usr/lib/systemd/systemd-networkd-wait-online \ -q --timeout=%d fi |} timeout timeout); (* Disable SELinux temporarily around package installation. Refer to * and * . *) fbs "setenforce 0" (sprintf {|#!/bin/sh rm -f %s if command -v getenforce >/dev/null && test Enforcing = "$(getenforce)" then touch %s setenforce 0 fi |} selinux_enforcing selinux_enforcing); fbs "install qga" inst_cmd; fbs "setenforce restore" (sprintf {|#!/bin/sh if test -f %s; then setenforce 1 rm -f %s fi |} selinux_enforcing selinux_enforcing); (* On all the distro families covered by "qga_pkg_of_family" and * "qga_svc_start_cmd", the QEMU guest agent service is always * enabled by package installation for *subsequent* boots. Package * installation may or may not enable the service for the current * (i.e., first) boot, however, so try that here manually. *) match qga_svc_start_cmd family inspect.i_distro inspect.i_major_version with | None -> () | Some start_cmd -> fbs "start qga" (sprintf "#!/bin/sh\n\ %s\n" start_cmd) with | Guest_packages.Unknown_package_manager msg | Guest_packages.Unimplemented_package_manager msg -> warning (f_"The QEMU Guest Agent will not be installed. The \ install command for package ‘%s’ could not be created: \ %s.") qga_pkg msg and add_initramfs_option_to_crypttab () = (* For debian based distros that use update-initramfs, an initrd * rebuilt under libguestfs likely won't populate configure * boot time crypttab correctly. We work around it by adding * `initramfs` option to every /etc/crypttab entry. *) (* Get all crypttab entries *) let entries = g#aug_match "/files/etc/crypttab/*" in let entries = Array.to_list entries in let changed = ref false in List.iter ( fun entry_path -> (* Check if this entry already has the initramfs option *) let opts = g#aug_match (sprintf "%s/opt" entry_path) in let opts = Array.to_list opts in let has_initramfs = List.exists ( fun opt_path -> let opt_name = g#aug_get opt_path in opt_name = "initramfs" ) opts in if not has_initramfs then ( (* Add the initramfs option *) let new_opt_path = sprintf "%s/opt[last()+1]" entry_path in g#aug_set new_opt_path "initramfs"; changed := true; let target = g#aug_get (sprintf "%s/target" entry_path) in debug "convert_linux: added 'initramfs' option to crypttab entry '%s'" target ) ) entries; (* Save changes if any were made *) if !changed then ( g#aug_save (); Linux.augeas_reload g ) and configure_kernel () = (* Previously this function would try to install kernels, but we * don't do that any longer. *) (* Check a non-Xen kernel exists. *) let only_xen_kernels = List.for_all ( fun { ki_is_xen_pv_only_kernel = pv_only } -> pv_only ) bootloader_kernels in if only_xen_kernels then error (f_"only Xen kernels are installed in this guest.\n\n\ Read the %s(1) manual, section \"Xen paravirtualized \ guests\", to see what to do.") prog; (* Enable the best non-Xen kernel, where "best" means the one with * the highest version, preferring non-debug kernels which support * virtio. *) let best_kernel = let compare_best_kernels k1 k2 = let i = compare k1.ki_supports_virtio_net k2.ki_supports_virtio_net in if i <> 0 then i else ( let i = compare_app2_versions k1.ki_app k2.ki_app in if i <> 0 then i (* Favour non-debug kernels over debug kernels (RHBZ#1170073). *) else compare k2.ki_is_debug k1.ki_is_debug ) in let kernels = bootloader_kernels in let kernels = List.filter (fun { ki_is_xen_pv_only_kernel = pv_only } -> not pv_only) kernels in let kernels = List.sort compare_best_kernels kernels in let kernels = List.rev kernels (* so best is first *) in List.hd kernels in if verbose () then ( eprintf "info: best kernel for this guest:\n"; print_kernel_info stderr "\t" best_kernel; flush stderr ); if best_kernel <> List.hd bootloader_kernels then ( debug "best kernel is not the bootloader default, \ setting bootloader default ..."; bootloader#set_default_kernel best_kernel.ki_vmlinuz ); (* Update /etc/sysconfig/kernel DEFAULTKERNEL (RHBZ#1176801). *) if g#is_file ~followsymlinks:true "/etc/sysconfig/kernel" then ( let entries = g#aug_match "/files/etc/sysconfig/kernel/DEFAULTKERNEL/value" in let entries = Array.to_list entries in if entries <> [] then ( List.iter (fun path -> g#aug_set path best_kernel.ki_name) entries; g#aug_save () ) ); best_kernel (* Even though the kernel was already installed (this version of * virt-v2v does not install new kernels), it could have an * initrd that does not have support virtio. Therefore rebuild * the initrd. *) and rebuild_initrd kernel = match kernel.ki_initrd with | None -> () | Some initrd -> (* Enable the basic virtio modules in the kernel. * * Also forcibly include the "xts" module; see RHBZ#1658126. * * Include the BOCHS DRM paravirt video driver; see RHBZ#2131123. This * driver is known under two names -- "bochs-drm" and "bochs". *) let modules = let modules = (* The order of modules here is deliberately the same as the * order specified in the postinstall script of kmod-virtio in * RHEL3. The reason is that the probing order determines the * major number of vdX block devices. If we change it, RHEL 3 * KVM guests won't boot. *) List.filter (fun m -> List.mem m kernel.ki_modules) [ "virtio"; "virtio_ring"; "virtio_blk"; "virtio_scsi"; "virtio_net"; "virtio_pci"; "xts"; "bochs-drm"; "bochs" ] in if modules <> [] then modules else (* Fallback copied from old virt-v2v. XXX Why not "ide"? *) [ "sym53c8xx" ] in (* Move the old initrd file out of the way. Note that dracut/mkinitrd * will refuse to overwrite an old file so we have to do this. *) g#mv initrd (initrd ^ ".pre-v2v"); (* dracut and mkinitrd want what they call the "kernel version". What * they actually mean is the last element of the module path * (eg. /lib/modules/2.6.32-496.el6.x86_64 -> 2.6.32-496.el6.x86_64) * which might include the arch. Get that here. *) let mkinitrd_kv = let modpath = kernel.ki_modpath in match last_part_of modpath '/' with | Some x -> x | None -> invalid_arg (sprintf "invalid module path: %s" modpath) in let run_dracut_command dracut_path = (* Dracut. *) let args = dracut_path :: (if verbose () then [ "--verbose" ] else []) @ [ "--add-drivers"; String.concat " " modules; initrd; mkinitrd_kv ] in ignore (g#command (Array.of_list args)) in let run_update_initramfs_command () = let args = "/usr/sbin/update-initramfs" :: (if verbose () then [ "-v" ] else []) @ [ "-c"; "-k"; mkinitrd_kv ] in ignore (g#command (Array.of_list args)) in if g#is_file ~followsymlinks:true "/sbin/dracut" then run_dracut_command "/sbin/dracut" else if g#is_file ~followsymlinks:true "/usr/bin/dracut" then run_dracut_command "/usr/bin/dracut" else if family = `SUSE_family && g#is_file ~followsymlinks:true "/sbin/mkinitrd" then ( ignore ( g#command [| "/usr/bin/env"; "rootdev=" ^ inspect.i_root; "/sbin/mkinitrd"; "-m"; String.concat " " modules; "-i"; initrd; "-k"; kernel.ki_vmlinuz; "-d"; inspect.i_root |] ) ) else if family = `Debian_family then ( if not (g#is_file ~followsymlinks:true "/usr/sbin/update-initramfs") then error (f_"unable to rebuild initrd (%s) because update-initramfs \ was not found in the guest") initrd; if List.length modules > 0 then ( (* The modules to add to initrd are defined in: * /etc/initramfs-tools/modules * File format is same as modules(5). *) let path = "/files/etc/initramfs-tools/modules" in g#aug_transform "modules" "/etc/initramfs-tools/modules"; Linux.augeas_reload g; g#aug_set (sprintf "%s/#comment[last()+1]" path) "The following modules were added by virt-v2v"; List.iter ( fun m -> g#aug_clear (sprintf "%s/%s" path m) ) modules; g#aug_save (); ); (* Add initramfs option to crypttab entries *) add_initramfs_option_to_crypttab (); run_update_initramfs_command () ) else if g#is_file ~followsymlinks:true "/usr/sbin/make-initrd" then ( ignore ( g#command [| (* by default make-initrd running in vm add virtio and other * needed to boot modules *) "/usr/sbin/make-initrd"; "-k"; kernel.ki_version; |] ) ) else if g#is_file ~followsymlinks:true "/sbin/mkinitrd" then ( let module_args = List.map (sprintf "--with=%s") modules in let args = [ "/sbin/mkinitrd" ] @ module_args @ [ initrd; mkinitrd_kv ] in (* We explicitly modprobe ext2 here. This is required by * mkinitrd on RHEL 3, and shouldn't hurt on other OSs. We * don't care if this fails. *) (try g#modprobe "ext2" with G.Error _ -> ()); (* loop is a module in RHEL 5. Try to load it. Doesn't matter * for other OSs if it doesn't exist, but RHEL 5 will complain: * "All of your loopback devices are in use." *) (try g#modprobe "loop" with G.Error _ -> ()); (* RHEL 4 mkinitrd determines if the root filesystem is on LVM * by checking if the device name (after following symlinks) * starts with /dev/mapper. However, on recent kernels/udevs, * /dev/mapper/foo is just a symlink to /dev/dm-X. This means * that RHEL 4 mkinitrd running in the appliance fails to * detect root on LVM. We check ourselves if root is on LVM, * and frig RHEL 4's mkinitrd if it is by setting root_lvm=1 in * its environment. This overrides an internal variable in * mkinitrd, and is therefore extremely nasty and applicable * only to a particular version of mkinitrd. *) let env = if family = `RHEL_family && inspect.i_major_version = 4 then Some "root_lvm=1" else None in match env with | None -> ignore (g#command (Array.of_list args)) | Some env -> let cmd = sprintf "sh -c '%s %s'" env (String.concat " " args) in ignore (g#sh cmd) ) else ( error (f_"unable to rebuild initrd (%s) because mkinitrd or dracut \ was not found in the guest") initrd ) (* We configure a console on ttyS0. Make sure existing console * references use it. N.B. Note that the RHEL 6 xen guest kernel * presents a console device called /dev/hvc0, whereas previous xen * guest kernels presented /dev/xvc0. The regular kernel running * under KVM also presents a virtio console device called /dev/hvc0, * so ideally we would just leave it alone. However, RHEL 6 libvirt * doesn't yet support this device so we can't attach to it. We * therefore use /dev/ttyS0 for RHEL 6 anyway. *) and configure_console () = (* Look for gettys using xvc0 or hvc0. RHEL 6 doesn't use inittab * but this still works. *) let paths = g#aug_match "/files/etc/inittab/*/process" in let paths = Array.to_list paths in let rex = PCRE.compile "\\b([xh]vc0)\\b" in List.iter ( fun path -> let proc = g#aug_get path in let proc' = PCRE.replace ~global:true rex "ttyS0" proc in if proc <> proc' then g#aug_set path proc' ) paths; let paths = g#aug_match "/files/etc/securetty/*" in let paths = Array.to_list paths in List.iter ( fun path -> let tty = g#aug_get path in if tty = "xvc0" || tty = "hvc0" then g#aug_set path "ttyS0" ) paths; g#aug_save () (* If the target doesn't support a serial console, we want to remove * all references to it instead. *) and remove_console () = (* Look for gettys using xvc0 or hvc0. RHEL 6 doesn't use inittab * but this still works. *) let paths = g#aug_match "/files/etc/inittab/*/process" in let paths = Array.to_list paths in let rex = PCRE.compile "\\b([xh]vc0|ttyS0)\\b" in List.iter ( fun path -> let proc = g#aug_get path in if PCRE.matches rex proc then ignore (g#aug_rm (path ^ "/..")) ) paths; let paths = g#aug_match "/files/etc/securetty/*" in let paths = Array.to_list paths in List.iter ( fun path -> let tty = g#aug_get path in if tty = "xvc0" || tty = "hvc0" then ignore (g#aug_rm path) ) paths; g#aug_save () and configure_display_driver () = let video_driver = "modesetting" in let updated = ref false in let xorg_conf = if not (g#is_file ~followsymlinks:true "/etc/X11/xorg.conf") && g#is_file ~followsymlinks:true "/etc/X11/XF86Config" then ( g#aug_set "/augeas/load/Xorg/incl[last()+1]" "/etc/X11/XF86Config"; g#aug_load (); "/etc/X11/XF86Config" ) else "/etc/X11/xorg.conf" in let paths = g#aug_match ("/files" ^ xorg_conf ^ "/Device/Driver") in Array.iter ( fun path -> g#aug_set path video_driver; updated := true ) paths; (* Remove VendorName and BoardName if present. *) let paths = g#aug_match ("/files" ^ xorg_conf ^ "/Device/VendorName") in Array.iter (fun path -> ignore (g#aug_rm path)) paths; let paths = g#aug_match ("/files" ^ xorg_conf ^ "/Device/BoardName") in Array.iter (fun path -> ignore (g#aug_rm path)) paths; g#aug_save (); (* If we updated the X driver, check that X itself is installed, * and warn if not. Old virt-v2v used to attempt to install X here * but that way lies insanity and ruin. *) if !updated && not (g#is_file ~followsymlinks:true "/usr/bin/X") && not (g#is_file ~followsymlinks:true "/usr/bin/X11/X") then warning (f_"The display driver was updated to ‘%s’, but X11 does not \ seem to be installed in the guest. X may not function \ correctly.") video_driver and configure_kernel_modules block_type net_type = (* This function modifies modules.conf (and its various aliases). *) let augeas_modprobe query = (* Execute g#aug_match, but against every known location of modules.conf. *) let paths = [ "/files/etc/conf.modules/alias"; (* modules_conf.aug *) "/files/etc/modules.conf/alias"; "/files/etc/modprobe.conf/alias"; (* modprobe.aug *) "/files/etc/modprobe.conf.local/alias"; "/files/etc/modprobe.d/*/alias"; ] in let paths = List.map ( fun p -> let p = sprintf "%s[%s]" p query in Array.to_list (g#aug_match p) ) paths in List.flatten paths and discover_modpath () = (* Find what /etc/modprobe.conf is called today. *) if g#is_dir ~followsymlinks:true "/etc/modprobe.d" then ( (* Create a new file /etc/modprobe.d/virt-v2v-added.conf. *) "/etc/modprobe.d/virt-v2v-added.conf" ) else ( (* List of methods, in order of preference. *) let paths = [ "/etc/modprobe.conf.local"; "/etc/modprobe.conf"; "/etc/modules.conf"; "/etc/conf.modules" ] in try List.find (g#is_file ~followsymlinks:true) paths with Not_found -> error (f_"unable to find any valid modprobe configuration file such \ as /etc/modprobe.conf"); ) in (* Update 'alias eth0 ...'. *) let paths = augeas_modprobe ". =~ regexp('eth[0-9]+')" in let net_device = match net_type with | Virtio_net -> "virtio_net" | E1000 -> "e1000" | RTL8139 -> "rtl8139cp" in List.iter ( fun path -> g#aug_set (path ^ "/modulename") net_device ) paths; (* Update 'alias scsi_hostadapter ...' *) let paths = augeas_modprobe ". =~ regexp('scsi_hostadapter.*')" in (match block_type with | Virtio_blk | Virtio_SCSI -> let block_module = match block_type with | Virtio_blk -> "virtio_blk" | Virtio_SCSI -> "virtio_scsi" | IDE -> assert false in if paths <> [] then ( (* There's only 1 scsi controller in the converted guest. * Convert only the first scsi_hostadapter entry to virtio * and delete other scsi_hostadapter entries. *) let path, paths_to_delete = List.hd paths, List.tl paths in (* Note that we delete paths in reverse order. This means we don't * have to worry about alias indices being changed. *) List.iter (fun path -> ignore (g#aug_rm path)) (List.rev paths_to_delete); g#aug_set (path ^ "/modulename") block_module ) else ( (* We have to add a scsi_hostadapter. *) let modpath = discover_modpath () in g#aug_set (sprintf "/files%s/alias[last()+1]" modpath) "scsi_hostadapter"; g#aug_set (sprintf "/files%s/alias[last()]/modulename" modpath) block_module ) | IDE -> (* There is no scsi controller in an IDE guest. *) List.iter (fun path -> ignore (g#aug_rm path)) (List.rev paths) ); (* Display a warning about any leftover Xen modules which we * haven't converted. These are likely to cause an error when * we run mkinitrd. *) let xen_modules = [ "xennet"; "xen-vnif"; "xenblk"; "xen-vbd" ] in let query = "modulename =~ regexp('" ^ String.concat "|" xen_modules ^ "')" in let paths = augeas_modprobe query in List.iter ( fun path -> let device = g#aug_get path in let module_ = g#aug_get (path ^ "/modulename") in warning (f_"don’t know how to update %s which loads the %s module") device module_; ) paths; (* Update files. *) g#aug_save () and remap_block_devices block_type = (* This function's job is to iterate over boot configuration * files, replacing "hda" with "vda" or whatever is appropriate. * This is mostly applicable to old guests, since newer OSes use * LABEL or UUID where possible. * * The original Convert::Linux::_remap_block_devices function was * very complex indeed. This drops most of the complexity. In * particular it assumes all non-removable source disks will be * added to the target in the order they appear in the libvirt XML. *) let ide_block_prefix = match family, inspect.i_major_version with | `RHEL_family, v when v < 5 -> (* RHEL < 5 used old ide driver *) "hd" | `RHEL_family, 5 -> (* RHEL 5 uses libata, but udev still uses: *) "hd" | `SUSE_family, _ -> (* SUSE uses libata, but still presents IDE disks as: *) "hd" | _, _ -> (* All modern distros use libata: *) "sd" in let block_prefix_after_conversion = match block_type with | Virtio_blk -> "vd" | Virtio_SCSI -> "sd" | IDE -> ide_block_prefix in let map = List.mapi ( fun i { s_controller } -> let device_name_before_conversion i = match s_controller with | None (* If we don't have a controller, guess. Assumes the * source used IDE. *) | Some Source_IDE -> ide_block_prefix ^ drive_name i | Some (Source_virtio_SCSI | Source_SCSI | Source_SATA) -> "sd" ^ drive_name i | Some Source_virtio_blk -> "vd" ^ drive_name i (* For NVMe assume no one is using namespaces. *) | Some Source_NVME -> sprintf "nvme%dn1" i in let source_dev = device_name_before_conversion i in let target_dev = block_prefix_after_conversion ^ drive_name i in source_dev, target_dev ) source.s_disks in (* If a Xen guest has non-PV devices, Xen also simultaneously * presents these as xvd devices. i.e. hdX and xvdX both exist and * are the same device. * * This mapping is also useful for P2V conversion of Citrix * Xenserver guests done in HVM mode. Disks are detected as sdX, * although the guest uses xvdX natively. *) let map = map @ List.mapi ( fun i disk -> "xvd" ^ drive_name i, block_prefix_after_conversion ^ drive_name i ) source.s_disks in (* Check the first CD-ROM. If its controller is IDE, and the OS is RHEL<=5, * then translate the CD-ROM from "/dev/hd[SLOT]" to "/dev/cdrom". See * RHBZ#1637857 for details. *) let cdroms = List.filter (fun removable -> removable.s_removable_type = CDROM) source.s_removables in if List.length cdroms >= 2 then warning (f_"multiple CD-ROMs found; translation of CD-ROM references \ may be inexact"); let map = map @ (match cdroms with | { s_removable_controller = Some Source_IDE; s_removable_slot = Some slot } :: _ when family = `RHEL_family && inspect.i_major_version <= 5 -> [("hd" ^ drive_name slot, "cdrom")] | _ -> [] ) in if verbose () then ( eprintf "info: block device map:\n"; List.iter ( fun (source_dev, target_dev) -> eprintf "\t%s\t-> %s\n" source_dev target_dev ) (List.sort (fun (a,_) (b,_) -> compare a b) map); flush stderr ); (* Possible Augeas paths to search for device names. *) let paths = [ (* /etc/fstab *) "/files/etc/fstab/*/spec"; "/files/etc/crypttab/*/device"; ] in (* Bootloader config *) let paths = paths @ bootloader#augeas_device_patterns in (* Which of these paths actually exist? *) let paths = List.flatten (List.map Array.to_list (List.map g#aug_match paths)) in (* Map device names for each entry. *) let rex_resume = PCRE.compile "^resume=(/dev/[-a-z\\d/_]+)(.*)$" and rex_device_cciss = PCRE.compile "^/dev/(cciss/c\\d+d\\d+)(?:p(\\d+))?$" and rex_device_nvme = PCRE.compile "^/dev/(nvme\\d+n1)(?:p(\\d+))?$" and rex_device = PCRE.compile "^/dev/([a-z]+)(\\d*)?$" in let rec replace_if_device path value = let replace device = try List.assoc device map with Not_found -> if not (String.starts_with "md" device) && not (String.starts_with "fd" device) && not (String.starts_with "sr" device) && not (String.starts_with "scd" device) && device <> "cdrom" then warning (f_"%s references unknown device \"%s\". You may have to \ fix this entry manually after conversion.") path device; device in if PCRE.matches rex_device_cciss value || PCRE.matches rex_device_nvme value || PCRE.matches rex_device value then ( let device = PCRE.sub 1 and part = try PCRE.sub 2 with Not_found -> "" in let adjusted_dev = "/dev/" ^ replace device ^ part in (* On sles12sp5, the installer puts a non-stable path into /etc/crypttab, like /dev/sda2. If we replace it with eg. /dev/vda2, and then regenerate dracut initrd, systemd cryptab integration doesn't happen correctly, because it all expects /dev/vda2 to exist at initrd creation time.. We can avoid this by filling in a stable `UUID=` value. This depends on /dev/sdXX in the guest having the same /dev/sdXX name in the appliance. *) if String.starts_with "/files/etc/crypttab" path && String.starts_with "/dev/sd" value then ( try let uuid = g#vfs_uuid value in "UUID=" ^ uuid with ex -> warning (f_"failed to translate encrypted device name %s to a UUID \ in /etc/crypttab. This may prevent the guest from booting \ after conversion. You may have to manually change the file and \ reconvert. The original error was: %s") value (Printexc.to_string ex); adjusted_dev ) else adjusted_dev ) else (* doesn't look like a known device name *) value in let changed = ref false in List.iter ( fun path -> let value = g#aug_get path in let new_value = if String.find path "GRUB_CMDLINE" >= 0 then ( (* Handle grub2 resume= specially. *) let rec loop str = let index = String.find str "resume=" in if index >= 0 then ( let part = String.sub str index (String.length str - index) in if PCRE.matches rex_resume part then ( let start = String.sub str 0 (index + 7 (* "resume=" *)) and device = PCRE.sub 1 and end_ = PCRE.sub 2 in let device = replace_if_device path device in start ^ device ^ loop end_ ) else str ) else str in loop value ) else replace_if_device path value in if value <> new_value then ( g#aug_set path new_value; changed := true ) ) paths; if !changed then ( g#aug_save (); (* Make sure the bootloader is up-to-date. *) bootloader#update (); Linux.augeas_reload g ); (* Some linux uefi setups can't boot after conversion because of lost uefi boot entries. The uefi boot entries are stored in uefi NVRAM. The NVRAM content isn't a part of vm disk content and usually can't be converted alongside the vm. If a vm doesn't have uefi fallback path (/EFI/BOOT/BOOT.efi) the vm is unbootable after conversion. The following code tries to make an uefi fallback path for a uefi linux vm. *) (match i_firmware with | Firmware.I_BIOS -> () | I_UEFI _ -> (* Standard uefi fallback path *) let uefi_fallback_path = "/boot/efi/EFI/BOOT/" in let cant_fix_uefi () = info (f_"Can't fix UEFI bootloader. VM may not boot.") in match get_uefi_arch_suffix inspect.i_arch with | None -> cant_fix_uefi () | Some suffix -> ( let uefi_fallback_name = sprintf "%sBOOT%s.EFI" uefi_fallback_path suffix in let file_exists file = if g#exists file then true else ( info (f_"Can't find file: '%s' needed for UEFI fixing") file; false ) in let grub_config = bootloader#get_config_file () in let grub_path = String.sub grub_config 0 (String.rindex grub_config '/') in if g#exists uefi_fallback_name then (* don't do anything if uefi fallback exists *) () else ( info (f_"Fixing UEFI bootloader."); match inspect.i_distro, inspect.i_major_version with | "centos", 6 -> (* to make a bootable uefi centos 6 we need to * copy grub.efi and grub.conf to UEFI fallback path * and rename them to BOOT.efi and BOOT.conf * correspondingly *) let uefi_grub_name = String.concat "" [grub_path; "/grub.efi"] in let uefi_grub_conf = String.concat "" [ String.sub uefi_fallback_name 0 (String.rindex uefi_fallback_name '.'); ".conf" ] in if file_exists uefi_grub_name && file_exists grub_config then ( g#mkdir_p uefi_fallback_path; g#cp uefi_grub_name uefi_fallback_name; g#cp grub_config uefi_grub_conf; let fix_script = sprintf "#!/bin/bash\n\ efibootmgr -c -L \"CentOS 6\"\n\ rm -rf %s" uefi_fallback_path in Firstboot.add_firstboot_script g inspect.i_root "fix uefi boot" fix_script) else cant_fix_uefi () | ("ubuntu", 14) | ("debian", 12)-> (* to make a bootable uefi ubuntu 14 we need to * copy shim.efi to UEFI fallback path * and rename it to BOOT.efi, also we copy * grub.efi and grub.cfg to UEFI fallback path without renaming *) let arch_suffix = String.lowercase_ascii suffix in let distro = inspect.i_distro in let shim = String.concat "" [grub_path; "/shim"; arch_suffix; ".efi"] in let uefi_grub_name = String.concat "" [grub_path; "/grub"; arch_suffix; ".efi"] in if file_exists shim && file_exists uefi_grub_name && file_exists grub_config then ( g#mkdir_p uefi_fallback_path; g#cp shim uefi_fallback_name; g#cp uefi_grub_name uefi_fallback_path; g#cp grub_config uefi_fallback_path; (* if the shim is at the standard path, clean up uefi fixing * if not, then just don't clean up and leave the temp loader * at UEFI fallback path for simplicity *) if String.find shim (sprintf "/boot/efi/EFI/%s/shim" distro) >= 0 then let fix_script = sprintf "#!/bin/bash\n\ sudo efibootmgr -c -L %s \ -l \\\\EFI\\\\%s\\\\shim%s.efi\n\ rm -rf %s" distro distro arch_suffix uefi_fallback_path in Firstboot.add_firstboot_script g inspect.i_root "fix uefi boot" fix_script else () ) else cant_fix_uefi () | _, _ -> info (f_"No UEFI fix rule for %s %d") inspect.i_distro inspect.i_major_version; cant_fix_uefi () ) ) ); (* inspect.i_firmware == I_UEFI *) (* Delete blkid caches if they exist, since they will refer to the old * device names. blkid will rebuild these on demand. * * Delete the LVM cache since it will contain references to the * old devices (RHBZ#1164853, RHBZ#2112801). *) List.iter g#rm_f [ "/etc/blkid/blkid.tab"; "/etc/blkid.tab"; "/etc/lvm/cache/.cache"; "/etc/lvm/devices/system.devices" ]; (* This is a wrapper around Guestfs_packages.uninstall_command * which catches errors and turns them into warnings, since * uninstalling packages is best effort in virt-v2v. It also * reloads the Augeas configuration since removing packages might * change /etc files. *) and uninstall_packages_nonfatal pkgs = if pkgs <> [] then ( let cmd = try Guest_packages.uninstall_command pkgs inspect.i_package_management with | Guest_packages.Unknown_package_manager msg | Guest_packages.Unimplemented_package_manager msg -> error "%s" msg in (try ignore (g#sh cmd) with G.Error msg -> warning (f_"could not uninstall packages ‘%s’: %s (ignored)") (String.concat " " pkgs) msg ); (* Reload Augeas in case anything changed. *) Linux.augeas_reload g ) in do_convert () module Convert_linux = struct let name = "linux" let convert = convert let post_convert _ _ = () end ================================================ FILE: convert/convert_linux.mli ================================================ (* virt-v2v * Copyright (C) 2009-2025 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) (** Convert a Linux guest to run on KVM. This module converts certain Enterprise Linux guests to run on KVM. RHEL, SuSE, Fedora, CentOS, OracleLinux, ALT, Debian, Ubuntu, Mint and Kali are supported by this module. *) module Convert_linux : Convert_types.CONVERT ================================================ FILE: convert/convert_types.ml ================================================ (* helper-v2v-convert * Copyright (C) 2009-2025 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) module type CONVERT = sig val name : string val convert : Guestfs.guestfs -> Types.source -> Types.inspect -> Firmware.i_firmware -> Types.guestcaps_block_type -> bool -> Types.static_ip list -> Types.guestcaps val post_convert : Guestfs.guestfs -> Types.inspect -> unit end ================================================ FILE: convert/convert_types.mli ================================================ (* virt-v2v * Copyright (C) 2009-2025 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) module type CONVERT = sig val name : string (** Module name (only used in debugging). *) val convert : Guestfs.guestfs -> Types.source -> Types.inspect -> Firmware.i_firmware -> Types.guestcaps_block_type -> bool -> Types.static_ip list -> Types.guestcaps (** Perform the guest-specific conversion for Linux or Windows. This function is called with the guest disks mounted. *) val post_convert : Guestfs.guestfs -> Types.inspect -> unit (** Perform "post-conversion" operations. This is only used for Windows, where some operations must be done after the disks have been unmounted. For Linux it does nothing. *) end (** Conversion modules for Linux and Windows are provided separately. They both provide this interface. *) ================================================ FILE: convert/convert_windows.ml ================================================ (* virt-v2v * Copyright (C) 2009-2025 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) open Printf open Std_utils open Tools_utils open Common_gettext.Gettext open Utils open Types module G = Guestfs (* Convert Windows guests. * * This only does a "pre-conversion", the steps needed to get the * Windows guest to boot on KVM. Unlike the [Convert_linux] module, * this is not a full conversion. Instead it just installs the * [viostor] (Windows virtio block) driver, so that the Windows guest * will be able to boot on the target. A [RunOnce] script is also * added to the VM which does all the rest of the conversion the first * time the Windows VM is booted on KVM. *) let convert (g : G.guestfs) source inspect i_firmware block_driver _ static_ips = (*----------------------------------------------------------------------*) (* Inspect the Windows guest. *) (* Locate virtio-win ISO or directory using the [VIRTIO_WIN] * environment variable. *) let virtio_win = Inject_virtio_win.from_environment g inspect.i_root Config.datadir in (match block_driver with | Virtio_blk -> () (* the default, no need to do anything *) | Virtio_SCSI -> let drivers = Inject_virtio_win.get_block_driver_priority virtio_win in let drivers = "vioscsi" :: drivers in Inject_virtio_win.set_block_driver_priority virtio_win drivers | IDE -> assert false (* not possible - but maybe ...? *) ); (* If the Windows guest has AV installed. *) let has_antivirus = List.exists (fun { G.app2_class } -> app2_class = "antivirus") inspect.i_apps in (* Does the guest expect the RTC to be set to UTC or localtime? * See https://wiki.archlinux.org/title/System_time#UTC_in_Microsoft_Windows * Note this might be a QWORD on 64 bit Windows instances. *) let rtc_utc = Registry.with_hive_readonly g inspect.i_windows_system_hive (fun reg -> try let key_path = [ "Control"; "TimeZoneInformation" ] in let path = inspect.i_windows_current_control_set :: key_path in let node = match Registry.get_node reg path with | None -> raise Not_found | Some node -> node in let valueh = g#hivex_node_get_value node "RealTimeIsUniversal" in if valueh = 0L then raise Not_found; let t = g#hivex_value_type valueh in let data = g#hivex_value_value valueh in let is_utc = match t with | 0_L (* REG_NONE *) -> false (* localtime *) | 4_L (* REG_DWORD *) -> data = "\001\000\000\000" | 11_L (* REG_QWORD *) -> data = "\001\000\000\000\000\000\000\000" | _ (* who knows ... *) -> warning (f_"unknown CurrentControlSet\\Control\\\ TimeZoneInformation key RealTimeIsUniversal \ type 0x%Lx, assuming RTC set to UTC") t; true in is_utc with Not_found -> (* If the key is not found then by default we assume * that Windows is expecting the RTC to be set to localtime. *) false ) in (* Open the software hive (readonly) and find the Xen PV uninstaller, * if it exists. *) let xenpv_uninst = let xenpvreg = "Red Hat Paravirtualized Xen Drivers for Windows(R)" in Registry.with_hive_readonly g inspect.i_windows_software_hive (fun reg -> try let path = ["Microsoft"; "Windows"; "CurrentVersion"; "Uninstall"; xenpvreg] in let node = match Registry.get_node reg path with | None -> raise Not_found | Some node -> node in let uninstkey = "UninstallString" in let valueh = g#hivex_node_get_value node uninstkey in if valueh = 0L then ( warning (f_"cannot uninstall Xen PV drivers: registry key ‘HKLM\\\ SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\\ Uninstall\\%s’ does not contain an ‘%s’ key") xenpvreg uninstkey; raise Not_found ); let data = g#hivex_value_value valueh in let data = Registry.decode_utf16le data in (* The uninstall program will be uninst.exe. This is a wrapper * around _uninst.exe which prompts the user. As we don't want * the user to be prompted, we run _uninst.exe explicitly. *) let len = String.length data in let data = if len >= 8 && String.lowercase_ascii (String.sub data (len-8) 8) = "uninst.exe" then (String.sub data 0 (len-8)) ^ "_uninst.exe" else data in Some data with Not_found -> None ) in (* Locate and retrieve all the uninstallation commands for installed * applications. *) let uninstallation_commands pretty_name matchfn modfn extra_uninstall_params = let path = ["Microsoft"; "Windows"; "CurrentVersion"; "Uninstall"] in let uninstval = "UninstallString" in let ret = ref [] in Registry.with_hive_readonly g inspect.i_windows_software_hive ( fun reg -> match Registry.get_node reg path with | None -> () | Some node -> let uninstnodes = g#hivex_node_children node in Array.iter ( fun { G.hivex_node_h = uninstnode } -> let valueh = g#hivex_node_get_value uninstnode "DisplayName" in if valueh <> 0L then ( let dispname = g#hivex_value_string valueh in if matchfn dispname then ( let valueh = g#hivex_node_get_value uninstnode uninstval in if valueh <> 0L then ( let reg_cmd = g#hivex_value_string valueh in let reg_cmd = modfn reg_cmd in let cmd = sprintf "%s /quiet /norestart /l*v+ \"%%~dpn0.log\" \ REBOOT=ReallySuppress REMOVE=ALL %s" reg_cmd extra_uninstall_params in List.push_front cmd ret ) else let name = g#hivex_node_name uninstnode in warning (f_"cannot uninstall %s: registry key \ ‘HKLM\\SOFTWARE\\%s\\%s’ with DisplayName \ ‘%s’ doesn't contain value ‘%s’") pretty_name (String.concat "\\" path) name dispname uninstval ) ) ) uninstnodes ) (* with_hive_readonly *); !ret in (* Locate and retrieve all uninstallation commands for Parallels Tools. *) let prltools_uninsts = let matchfn s = String.find s "Parallels Tools" != -1 || String.find s "Virtuozzo Tools" != -1 in (* Without these custom Parallels-specific MSI properties the * uninstaller still shows a no-way-out reboot dialog. *) let extra_uninstall_params = "PREVENT_REBOOT=Yes LAUNCHED_BY_SETUP_EXE=Yes" in uninstallation_commands "Parallels Tools" matchfn Fun.id extra_uninstall_params in (* Locate and retrieve all uninstallation commands for VMware Tools. *) let vmwaretools_uninst = let matchfn s = String.find s "VMware Tools" != -1 in (* VMware Tools writes the install command (MsiExec /I) into the * UninstallString key in the registry, rather than the uninstall * command. Try to spot this and rewrite. (RHBZ#1917760). *) let re1 = PCRE.compile ~caseless:true "msiexec" in let re2 = PCRE.compile ~caseless:true "/i" in let msifn s = if PCRE.matches re1 s then PCRE.replace re2 "/x" s else s in uninstallation_commands "VMware Tools" matchfn msifn "" in (*----------------------------------------------------------------------*) (* Perform the conversion of the Windows guest. *) let rec do_convert () = (* Firstboot configuration. *) configure_firstboot (); (* Open the system hive for writes and update it. *) let { Inject_virtio_win.block_driver; net_driver} as virtio_win_installed = Registry.with_hive_write g inspect.i_windows_system_hive update_system_hive in (* Open the software hive for writes and update it. *) Registry.with_hive_write g inspect.i_windows_software_hive update_software_hive; configure_online_disks block_driver; configure_network_interfaces net_driver; fix_ntfs_heads (); fix_win_esp (); (* Warn if installation of virtio block drivers might conflict with * group policy or AV software causing a boot 0x7B error (RHBZ#1260689). *) if block_driver = Virtio_blk then ( if inspect.i_windows_group_policy then warning (f_"this guest has Windows Group Policy Objects (GPO) and a \ new virtio block device driver was installed. In some \ circumstances, Group Policy may prevent new drivers from \ working (resulting in a 7B boot error). If this happens, \ try disabling Group Policy before doing the conversion."); if has_antivirus then warning (f_"this guest has Anti-Virus (AV) software and a new virtio \ block device driver was installed. In some \ circumstances, AV may prevent new drivers from working \ (resulting in a 7B boot error). If this happens, try \ disabling AV before doing the conversion."); ); (* Return guest capabilities from the convert () function. *) let guestcaps = { gcaps_block_bus = of_virtio_win_block_type block_driver; gcaps_net_bus = of_virtio_win_net_type net_driver; gcaps_virtio_rng = virtio_win_installed.Inject_virtio_win.virtio_rng; gcaps_virtio_balloon = virtio_win_installed.Inject_virtio_win.virtio_balloon; gcaps_isa_pvpanic = virtio_win_installed.Inject_virtio_win.isa_pvpanic; gcaps_virtio_socket = virtio_win_installed.Inject_virtio_win.virtio_socket; gcaps_machine = of_virtio_win_machine_type virtio_win_installed.Inject_virtio_win.machine; gcaps_arch = Utils.kvm_arch inspect.i_arch; gcaps_arch_min_version = 0; gcaps_virtio_1_0 = virtio_win_installed.Inject_virtio_win.virtio_1_0; gcaps_rtc_utc = rtc_utc; } in guestcaps and of_virtio_win_block_type = function | Inject_virtio_win.Virtio_blk -> Virtio_blk | Virtio_SCSI -> Virtio_SCSI | IDE -> IDE and of_virtio_win_net_type = function | Inject_virtio_win.Virtio_net -> Virtio_net | E1000 -> E1000 | RTL8139 -> RTL8139 and of_virtio_win_machine_type = function | Inject_virtio_win.I440FX -> I440FX | Q35 -> Q35 | Virt -> Virt and configure_firstboot () = (* Run the firstboot script with pnputil.exe before the one with * pnp_wait.exe as the latter suppresses PnP for all following scripts. *) configure_pnputil_install (); let tool_path = virt_tools_data_dir () // "pnp_wait.exe" in if Sys.file_exists tool_path then configure_wait_pnp tool_path else debug (f_"%s is missing. Firstboot scripts may conflict with PnP.") tool_path; (* Install VMDP unconditionally, if available, but don't * warn about it if not. *) let tool_path = virt_tools_data_dir () // "vmdp.exe" in if Sys.file_exists tool_path then configure_vmdp tool_path; (* Install QEMU Guest Agent unconditionally and warn if missing *) if not (Inject_virtio_win.inject_qemu_ga virtio_win) then warning (f_"QEMU Guest Agent MSI not found on tools ISO/directory. You \ may want to install the guest agent manually after \ conversion."); (* Install Balloon Server unconditionally and warn if missing *) if not (Inject_virtio_win.inject_blnsvr virtio_win) then warning (f_"Balloon Server (blnsvr.exe) not found on tools \ ISO/directory. You may want to install this component \ manually after conversion."); unconfigure_xenpv (); unconfigure_prltools (); unconfigure_vmwaretools () (* [set_reg_val_dword_1 path name] creates a registry key * called [name = dword:1] in the registry [path]. * Intermediate nodes are created along the path if required. * * It returns the old value, if there was one, else [None]. *) and set_reg_val_dword_1 ((g, root) as reg) path name = let node = Registry.create_path reg path in let valueh = g#hivex_node_get_value node name in let value = match valueh with | 0L -> None | _ -> Some (int_of_le32 (g#hivex_value_value valueh)) in g#hivex_node_set_value node name 4_L (le32_of_int 1_L); value and reg_restore key name value = let strkey = String.concat "\\" key in match value with | Some value -> sprintf "reg add \"%s\" /v %s /t REG_DWORD /d %Ld /f" strkey name value | None -> sprintf "reg delete \"%s\" /v %s /f" strkey name and configure_pnputil_install () = let fb_script = {|@echo off setlocal EnableDelayedExpansion set inf_dir=%systemroot%\Drivers\Virtio\ echo Installing drivers from %inf_dir% set REBOOT_PENDING=0 reg query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\RebootRequired" if %errorlevel%==0 ( echo Windows Update: Reboot required. set REBOOT_PENDING=1 ) reg query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\RebootPending" if %errorlevel%==0 ( echo CBS: Reboot required. set REBOOT_PENDING=1 ) reg query "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager" /v PendingFileRenameOperations if %errorlevel%==0 ( echo Session Manager: Reboot required. set REBOOT_PENDING=1 ) if "%REBOOT_PENDING%"=="1" ( echo A reboot is pending. exit /b 249 ) else ( echo No pending reboot detected. ) for %%f in ("%inf_dir%*.inf") do ( echo Installing: %%~nxf. %systemroot%\Sysnative\PnPutil -i -a "%%f" if !errorlevel! neq 0 if !errorlevel! neq 259 ( echo Failed to install %%~nxf. exit /b 249 ) else ( echo Successfully installed %%~nxf. ) ) echo All drivers installed successfully. exit /b 0 )|} in (* Set priority higher than that of "network-configure" firstboot script. *) Firstboot.add_firstboot_script g inspect.i_root ~prio:2000 "pnputil install drivers" fb_script; and configure_wait_pnp tool_path = (* Prevent destructive interactions of firstboot with PnP. *) (* Suppress "New Hardware Wizard" until PnP settles (see * https://support.microsoft.com/en-us/kb/938596) and restore it * afterwards. *) let reg_restore_str = match inspect.i_major_version, inspect.i_minor_version with (* WinXP 32bit *) | 5, 1 -> let key_path = ["Policies"; "Microsoft"; "Windows"; "DeviceInstall"; "Settings"] in let name = "SuppressNewHWUI" in let value = Registry.with_hive_write g inspect.i_windows_software_hive ( fun reg -> set_reg_val_dword_1 reg key_path name ) in reg_restore ("HKLM\\Software" :: key_path) name value (* WinXP 64bit / Win2k3 *) | 5, 2 -> let key_path = ["Services"; "PlugPlay"; "Parameters"] in let name = "SuppressUI" in let value = Registry.with_hive_write g inspect.i_windows_system_hive ( fun reg -> let path = inspect.i_windows_current_control_set :: key_path in set_reg_val_dword_1 reg path name ) in reg_restore ("HKLM\\SYSTEM\\CurrentControlSet" :: key_path) name value (* any later Windows *) | _ -> "" in let pnp_wait_path = "/Program Files/Guestfs/Firstboot/pnp_wait.exe" in let fb_script = sprintf {|@echo off echo Wait for PnP to complete "%s" %s|} (String.replace_char pnp_wait_path '/' '\\') reg_restore_str in Firstboot.add_firstboot_script g inspect.i_root "wait pnp" fb_script; (* add_firstboot_script has created the path already. *) g#upload tool_path (g#case_sensitive_path pnp_wait_path) and configure_vmdp tool_path = (* Configure VMDP if possible *) g#upload tool_path "/vmdp.exe"; let fb_script = {|echo V2V first boot script started echo Decompressing VMDP installer "\vmdp.exe" pushd "VMDP-*" echo Installing VMDP setup.exe /eula_accepted /no_reboot popd |} in let fb_recover_script = {|echo Finishing VMDP installation if not exist VMDP-* ( "\vmdp.exe" ) pushd "VMDP-*" setup.exe /eula_accepted /no_reboot popd |} in Firstboot.add_firstboot_script g inspect.i_root "configure vmdp" fb_script; Firstboot.add_firstboot_script g inspect.i_root "finish vmdp setup" fb_recover_script and unconfigure_xenpv () = match xenpv_uninst with | None -> () (* nothing to be uninstalled *) | Some uninst -> let fb_script = sprintf {|@echo off echo uninstalling Xen PV driver "%s" |} uninst in Firstboot.add_firstboot_script g inspect.i_root "uninstall Xen PV" fb_script and unconfigure_prltools () = let regkey = "HKLM\\System\\CurrentControlSet\\Services\\prl_strg\\DriverInfo" in List.iter ( fun uninst -> let fb_script = sprintf {|@echo off REG DELETE %s /v RefCount /f echo uninstalling Parallels guest tools rem ERROR_SUCCESS_REBOOT_REQUIRED (3010) is OK too %s if errorlevel 3010 exit /b 0 |} regkey uninst in Firstboot.add_firstboot_script g inspect.i_root "uninstall Parallels tools" fb_script ) prltools_uninsts and unconfigure_vmwaretools () = List.iter ( fun uninst -> let fb_script = sprintf {|@echo off echo uninstalling VMware Tools rem ERROR_SUCCESS_REBOOT_REQUIRED (3010) is OK too %s if errorlevel 3010 exit /b 0 |} uninst in Firstboot.add_firstboot_script g inspect.i_root "uninstall VMware Tools" fb_script ) vmwaretools_uninst and update_system_hive reg = (* Update the SYSTEM hive. When this function is called the hive has * already been opened as a hivex handle inside guestfs. *) disable_xenpv_win_drivers reg; disable_prl_drivers reg; disable_autoreboot reg; Inject_virtio_win.inject_virtio_win_drivers virtio_win reg and disable_xenpv_win_drivers reg = (* Disable xenpv-win service (RHBZ#809273). *) let services = Registry.get_node reg [inspect.i_windows_current_control_set; "Services"] in match services with | None -> () | Some services -> let node = g#hivex_node_get_child services "rhelscsi" in if node <> 0L then g#hivex_node_set_value node "Start" 4_L (le32_of_int 4_L) and disable_prl_drivers reg = (* Prevent Parallels drivers from loading at boot. *) let services = Registry.get_node reg [inspect.i_windows_current_control_set; "Services"] in let prl_svcs = [ "prl_boot"; "prl_dd"; "prl_eth5"; "prl_fs"; "prl_memdev"; "prl_mouf"; "prl_pv32"; "prl_pv64"; "prl_scsi"; "prl_sound"; "prl_strg"; "prl_tg"; "prl_time"; "prl_uprof"; "prl_va" ] in match services with | None -> () | Some services -> List.iter ( fun svc -> let svc_node = g#hivex_node_get_child services svc in if svc_node <> 0L then ( (* Disable the service rather than delete the node as it would * confuse the uninstaller called from firstboot script. *) g#hivex_node_set_value svc_node "Start" 4_L (le32_of_int 4_L) ) ) prl_svcs; (* perform the equivalent of DelReg from prl_strg.inf: * HKLM, System\CurrentControlSet\Control\Class\{4d36e967-e325-11ce-bfc1-08002be10318}, LowerFilters, 0x00018002, prl_strg *) let strg_cls = Registry.get_node reg [inspect.i_windows_current_control_set; "Control"; "Class"; "{4d36e967-e325-11ce-bfc1-08002be10318}"] in match strg_cls with | None -> () | Some strg_cls -> let lfkey = "LowerFilters" in let valueh = g#hivex_node_get_value strg_cls lfkey in if valueh <> 0L then ( let data = g#hivex_value_value valueh in let filters = String.nsplit "\000" (Registry.decode_utf16le data) in let filters = List.filter ( fun x -> x <> "prl_strg" && x <> "" ) filters in let filters = List.map ( fun x -> Registry.encode_utf16le x ^ "\000\000" ) (filters @ [""]) in let data = String.concat "" filters in g#hivex_node_set_value strg_cls lfkey 7_L data ) and disable_autoreboot reg = (* If the guest reboots after a crash, it's hard to see the original * error (eg. the infamous 0x0000007B). Turn off autoreboot. *) let crash_control = Registry.get_node reg [inspect.i_windows_current_control_set; "Control"; "CrashControl"] in match crash_control with | None -> () | Some crash_control -> g#hivex_node_set_value crash_control "AutoReboot" 4_L (le32_of_int 0_L) and update_software_hive reg = (* Update the SOFTWARE hive. When this function is called the * hive has already been opened as a hivex handle inside * guestfs. *) (* Find the node \Microsoft\Windows\CurrentVersion. If the node * has a key called DevicePath then append the virtio driver * path to this key. * * Note that simply adding the directory to DevicePath doesn't * seem to be a 100% reliable way of enabling the drivers. In * particular it does not work for my self-built Windows Server Core * 2012 + R2 releases (although that might be an artifact of * the way I build them). In any case I had to add a firstboot * batch file which did this single command: * * %systemroot%\Sysnative\PnPutil -i -a %systemroot%\Drivers\Virtio\*.inf *) let node = Registry.get_node reg ["Microsoft"; "Windows"; "CurrentVersion"] in (match node with | Some node -> let append = Registry.encode_utf16le ";%SystemRoot%\\Drivers\\VirtIO" in let values = Array.to_list (g#hivex_node_values node) in let rec loop = function | [] -> () (* DevicePath not found -- ignore this case *) | { G.hivex_value_h = valueh } :: values -> let key = g#hivex_value_key valueh in if key <> "DevicePath" then loop values else ( let data = g#hivex_value_value valueh in let len = String.length data in let t = g#hivex_value_type valueh in (* Only add the appended path if it doesn't exist already. *) if String.find data append = -1 then ( (* Remove the explicit [\0\0] at the end of the string. * This is the UTF-16LE NUL-terminator. *) let data = if len >= 2 && String.sub data (len-2) 2 = "\000\000" then String.sub data 0 (len-2) else data in (* Append the path and the explicit NUL. *) let data = data ^ append ^ "\000\000" in g#hivex_node_set_value node key t data ) ) in loop values | None -> warning (f_"could not find registry key \ HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion") ); (* If you have trouble installing drivers, try increasing the * verboseness by uncommenting this section. * https://learn.microsoft.com/en-us/windows-hardware/drivers/install/setting-setupapi-logging-levels * The additional logs are written to C:\Windows\INF\setupapi.*.log *) (* let node = Registry.get_node reg ["Microsoft"; "Windows"; "CurrentVersion"; "Setup"] in (match node with | Some node -> g#hivex_node_set_value node "LogLevel" 4_L (le32_of_int 0xff_L) | None -> warning (f_"could not find registry key \ HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Setup") ); *) and configure_online_disks block_driver = (* If there are > 1 disks, run a script which will force Windows * to bring them all online. Windows 2022 will offline non-boot disks * where the bus changes as some sort of "security" mitigation. * https://issues.redhat.com/browse/RHEL-55837 * https://issues.redhat.com/browse/MTV-1299 * https://bugzilla.redhat.com/show_bug.cgi?id=1662286 *) let virtio_installed = match block_driver with | Inject_virtio_win.Virtio_blk | Virtio_SCSI -> true | IDE -> false in let more_than_one_disk = List.length source.s_disks > 1 in if virtio_installed && more_than_one_disk then ( let psh_filename = "online-disks" in let psh = ref [] in let add = List.push_back psh in add "# Uncomment this line for lots of debug output."; add "# Set-PSDebug -Trace 1"; add ""; add "Write-Host \"Online all virtio disks\""; add ""; add "Get-Disk | Where { $_.FriendlyName -like '*VirtIO*' } | % {"; add " Write-Host (' - ' + $_.Number + ': ' + $_.FriendlyName + '(' + [math]::Round($_.Size/1GB,2) + 'GB)')"; add " $_ | Set-Disk -IsOffline $false"; add " $_ | Set-Disk -IsReadOnly $false"; add "}"; (* Install the Powershell script to run late at firstboot. *) Firstboot.add_firstboot_powershell g inspect.i_root psh_filename !psh ) and configure_network_interfaces net_driver = (* If we were asked to force network interfaces to have particular * static IP addresses then it is done here by installing a * Powershell script which runs at boot. *) if static_ips <> [] then ( let psh_filename = "network-configure" in let psh = ref [] in let add = List.push_back psh in add "# Uncomment this line for lots of debug output."; add "# Set-PSDebug -Trace 1"; add ""; (* If virtio-net was added to the registry, we must wait for * it to be installed at runtime. *) if net_driver = Virtio_net then ( add "# Wait for the netkvm (virtio-net) driver to become active."; add "$startdate = Get-Date"; add "$adapters = @()"; add "While (-Not $adapters -and \ $startdate.AddMinutes(5) -gt (Get-Date)) {"; add " Start-Sleep -Seconds 5"; add " $adapters = Get-NetAdapter -Physical \ | Where DriverFileName -eq \"netkvm.sys\""; add " Write-Host \"adapters = '$adapters'\""; add "}"; add "# In the timeout case $ifindex will not be set below."; add "" ); List.iter ( fun { if_mac_addr; if_ip_address; if_default_gateway; if_prefix_length; if_nameservers } -> add (sprintf "$mac_address = '%s'" (String.replace if_mac_addr ":" "-")); add "$ifindex = (Get-NetAdapter -Physical \ | Where MacAddress -eq $mac_address).ifIndex"; add "if ($ifindex) {"; add " Write-Host \"setting IP address of adapter at $ifindex\""; (* New-NetIPAddress command *) let args = ref [] in List.push_back args "-InterfaceIndex"; List.push_back args "$ifindex"; List.push_back args "-IPAddress"; List.push_back args (sprintf "'%s'" if_ip_address); (match if_default_gateway with | None -> () | Some gw -> List.push_back args "-DefaultGateway"; List.push_back args (sprintf "'%s'" gw) ); (match if_prefix_length with | None -> () | Some len -> List.push_back args "-PrefixLength"; List.push_back args (string_of_int len) ); let cmd1 = "New-NetIPAddress " ^ String.concat " " !args in add (" " ^ cmd1); (* Set-DnsClientServerAddress command *) if if_nameservers <> [] then ( add (sprintf " Set-DnsClientServerAddress \ -InterfaceIndex $ifindex \ -ServerAddresses (%s)" (String.concat "," (List.map (sprintf "'%s'") if_nameservers))) ); add "}"; add "" ) static_ips; (* Install the Powershell script to run at firstboot. * * Place it first among the firstboot scripts (RHBZ#1788823). *) Firstboot.add_firstboot_powershell g inspect.i_root ~prio:2500 psh_filename !psh ) (* static_ips <> [] *) and fix_ntfs_heads () = (* NTFS hardcodes the number of heads on the drive which created it in the filesystem header. Modern versions of Windows sensibly ignore it, but both Windows XP and Windows 2000 require it to be correct in order to boot from the drive. If it isn't you get: 'A disk read error occurred. Press Ctrl+Alt+Del to restart' QEMU has some code in block.c:guess_disk_lchs() which on the face of it appears to infer the drive geometry from the MBR if it's valid. However, my tests have shown that a Windows XP guest hosted on both RHEL 5 and F14 requires the heads field in NTFS to be the following, based solely on drive size: Range Heads size < 2114445312 0x40 2114445312 <= size < 4228374780 0x80 4228374780 <= size 0xFF I have not tested drive sizes less than 1G, which require fewer heads, as this limitation applies only to the boot device and it is not possible to install XP on a drive this size. The following page has good information on the layout of NTFS in Windows XP/2000: http://mirror.href.com/thestarman/asm/mbr/NTFSBR.htm Technet has this: http://technet.microsoft.com/en-us/library/cc781134(WS.10).aspx#w2k3tr_ntfs_how_dhao however, as this is specific to Windows 2003 it lists location 0x1A as unused. *) if inspect.i_major_version < 6 (* is Windows 2000/XP *) then ( let rootpart = inspect.i_root in (* Ignore if the rootpart is something like /dev/sda. RHBZ#1276540. *) if not (g#is_whole_device rootpart) then ( (* Check that the root device contains NTFS magic. *) let magic = g#pread_device rootpart 8 3L in if magic = "NTFS " then ( (* Get the size of the whole disk containing the root partition. *) let rootdev = g#part_to_dev rootpart in (* eg. /dev/sda *) let size = g#blockdev_getsize64 rootdev in let heads = (* refer to the table above *) if size < 2114445312L then 0x40 else if size < 4228374780L then 0x80 else 0xff in (* Update NTFS's idea of the number of heads. This is an * unsigned 16 bit little-endian integer, offset 0x1a from the * beginning of the partition. *) let b = Bytes.create 2 in Bytes.unsafe_set b 0 (Char.chr heads); Bytes.unsafe_set b 1 '\000'; ignore (g#pwrite_device rootpart (Bytes.to_string b) 0x1a_L) ) ) ) and fix_win_esp () = let fix_win_uefi_bcd esp_path = try let bcd_path = "/EFI/Microsoft/Boot/BCD" in Registry.with_hive_write g (esp_path ^ bcd_path) ( (* Remove the 'graphicsmodedisabled' key in BCD *) fun reg -> let path = ["Objects"; "{9dea862c-5cdd-4e70-acc1-f32b344d4795}"; "Elements"; "23000003"] in let boot_mgr_default_link = match Registry.get_node reg path with | None -> raise Not_found | Some node -> node in let current_boot_entry = g#hivex_value_string ( g#hivex_node_get_value boot_mgr_default_link "Element") in let path = ["Objects"; current_boot_entry; "Elements"; "16000046"] in match Registry.get_node reg path with | None -> raise Not_found | Some graphics_mode_disabled -> g#hivex_node_delete_child graphics_mode_disabled ); with Not_found -> () and fix_win_uefi_fallback esp_path uefi_arch = (* [esp_path] is on NTFS, and therefore it is considered case-sensitive; * refer to * . * However, the EFI system partition mounted under [esp_path] is FAT32 per * UEFI spec, and the Linux vfat driver in the libguestfs appliance treats * pathnames case-insensitively. Therefore, we're free to use any case in * the ESP-relative pathnames below. *) let bootmgfw = sprintf "%s/efi/microsoft/boot/bootmgfw.efi" esp_path in if g#is_file bootmgfw then let bootdir = sprintf "%s/efi/boot" esp_path in let fallback = sprintf "%s/boot%s.efi" bootdir uefi_arch in if not (g#is_file fallback) || not (g#equal fallback bootmgfw) then ( info (f_"Fixing UEFI bootloader."); g#rm_rf bootdir; g#mkdir_p bootdir; g#cp_a bootmgfw fallback ) in match i_firmware with | Firmware.I_BIOS -> () | I_UEFI esp_list -> let esp_temp_path = let temp = inspect.i_windows_systemroot ^ "/Temp" in let mp = g#case_sensitive_path temp in let template = mp ^ "/ESP_XXXXXX" in g#mkdtemp template in let uefi_arch = get_uefi_arch_suffix inspect.i_arch in List.iter ( fun dev_path -> g#mount dev_path esp_temp_path; fix_win_uefi_bcd esp_temp_path; (match uefi_arch with | Some uefi_arch -> fix_win_uefi_fallback esp_temp_path uefi_arch | None -> () ); g#umount esp_temp_path; ) esp_list; g#rmdir esp_temp_path in do_convert () (* Post-conversion steps that run with filesystems unmounted *) let post_convert (g : G.guestfs) inspect = (* Lock down firstboot dir permissions for windows guests *) message (f_"Fixing NTFS permissions"); (* XXX It would be more correct to use g#case_sensitive_path * here, but we cannot do that since the guest filesystem is * not mounted. As fixing permissions is best-effort, let's * not worry about it. *) let path = "/Program Files/Guestfs" in debug "info: fixing NTFS permissions on %s" path; try g#ntfs_chmod inspect.i_root 0o755 path ~recursive:true with G.Error msg -> warning (f_"ntfs_chmod on %s failed: %s") path msg module Convert_windows = struct let name = "windows" let convert = convert let post_convert = post_convert end ================================================ FILE: convert/convert_windows.mli ================================================ (* virt-v2v * Copyright (C) 2009-2025 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) (** Convert a Windows guest to run on KVM. This module converts a Windows guest to run on KVM. *) module Convert_windows : Convert_types.CONVERT ================================================ FILE: convert/dummy.c ================================================ /* Dummy source, to be used for OCaml-based tools with no C sources. */ enum { foo = 1 }; ================================================ FILE: convert/mount_filesystems.ml ================================================ (* virt-v2v * Copyright (C) 2009-2025 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) open Printf open Std_utils open Tools_utils open Common_gettext.Gettext module G = Guestfs open Types let rec mount_filesystems g root = reject_if_not_installed_image g root; reject_if_unknown_fields g root; (* Get the list of filesystems. This is not actually used by * virt-v2v (only used by virt-v2v-inspector) so try hard not * to fail here. *) let fses = g#inspect_get_filesystems root in let fses = Array.to_list fses in let fses = List.sort compare fses in let fses = List.map ( fun dev -> let dev = g#canonical_device_name dev and fs_type = ref None and fs_version = ref None and fs_label = ref None and fs_uuid = ref None in (try let v = g#vfs_type dev in if v <> "" then ( fs_type := Some v; fs_version := get_filesystem_version g dev v; ) with G.Error msg -> debug "vfs_type: %s: %s (ignored)" dev msg); (try let v = g#vfs_label dev in if v <> "" then fs_label := Some v with G.Error msg -> debug "vfs_label: %s: %s (ignored)" dev msg); (try let v = g#vfs_uuid dev in if v <> "" then fs_uuid := Some v with G.Error msg -> debug "vfs_uuid: %s: %s (ignored)" dev msg); { fs_dev = dev; fs_type = !fs_type; fs_version = !fs_version; fs_label = !fs_label; fs_uuid = !fs_uuid } ) fses in (* Mount up the filesystems. *) let mps = g#inspect_get_mountpoints root in let cmp (a,_) (b,_) = compare (String.length a) (String.length b) in let mps = List.sort cmp mps in List.iter ( fun (mp, dev) -> (try g#mount dev mp with G.Error msg -> if mp = "/" then ( (* RHBZ#1145995 *) if String.find msg "Windows" >= 0 && String.find msg "NTFS partition is in an unsafe state" >= 0 then error (f_"unable to mount the disk image for writing. This has \ probably happened because Windows Hibernation or \ Fast Restart is being used in this guest. You have \ to disable this (in the guest) in order to use \ virt-v2v.\n\nOriginal error message: %s") msg else error "%s" msg ) else warning (f_"%s (ignored)") msg ); (* Some filesystems (hello, ntfs-3g) can silently fall back to * a read-only mount. Check the root filesystem is really writable. * RHBZ#1567763 *) if mp = "/" then ( let file = sprintf "/%s" (String.random8 ()) in (try g#touch file with G.Error msg -> if g#last_errno () = G.Errno.errno_EROFS then error (f_"filesystem was mounted read-only, even though we \ asked for it to be mounted read-write. This usually \ means that the filesystem was not cleanly unmounted. \ Possible causes include trying to convert a guest \ which is running, or using Windows Hibernation or \ Fast Restart.\n\nOriginal error message: %s") msg else error (f_"could not write to the guest filesystem: %s") msg ); g#rm file ) ) mps; (* Get list of applications/packages installed. *) let package_format = g#inspect_get_package_format root in let apps = list_applications g root package_format in let apps = Array.to_list apps in (* A map of app2_name -> application2, for easier lookups. Note * that app names are not unique! (eg. 'kernel' can appear multiple * times) *) let apps_map = List.fold_left ( fun map app -> let name = app.G.app2_name in let vs = try StringMap.find name map with Not_found -> [] in StringMap.add name (app :: vs) map ) StringMap.empty apps in let drive_mappings = g#inspect_get_drive_mappings root in (* If the guest is Windows, get some Windows-specific inspection * data, else (for simplicity when accessing) use empty strings. *) let typ = g#inspect_get_type root in let systemroot, software_hive, system_hive, current_cs, group_policy = match typ with | "windows" -> g#inspect_get_windows_systemroot root, g#inspect_get_windows_software_hive root, g#inspect_get_windows_system_hive root, g#inspect_get_windows_current_control_set root, g#inspect_get_windows_group_policy root | _ -> "", "", "", "", false in let inspect = { i_root = root; i_type = typ; i_distro = g#inspect_get_distro root; i_osinfo = g#inspect_get_osinfo root; i_arch = g#inspect_get_arch root; i_major_version = g#inspect_get_major_version root; i_minor_version = g#inspect_get_minor_version root; i_package_format = package_format; i_package_management = g#inspect_get_package_management root; i_product_name = g#inspect_get_product_name root; i_product_variant = g#inspect_get_product_variant root; i_mountpoints = mps; i_filesystems = fses; i_apps = apps; i_apps_map = apps_map; i_windows_systemroot = systemroot; i_windows_software_hive = software_hive; i_windows_system_hive = system_hive; i_windows_current_control_set = current_cs; i_windows_group_policy = group_policy; i_drive_mappings = drive_mappings; } in debug "%s" (string_of_inspect inspect); inspect (* Reject this OS if it doesn't look like an installed image. *) and reject_if_not_installed_image g root = let fmt = g#inspect_get_format root in if fmt <> "installed" then error (f_"libguestfs thinks this is not an installed operating \ system (it might be, for example, an installer disk \ or live CD). If this is wrong, it is probably a bug \ in libguestfs. root=%s fmt=%s") root fmt (* If some inspection fields are "unknown", then that indicates a * failure in inspection, and we shouldn't continue. For an example * of this, see RHBZ#1278371. However don't "assert" here, since * the user might have pointed virt-v2v at a blank disk. Give an * error message instead. *) and reject_if_unknown_fields g root = error_if_unknown "i_type" (g#inspect_get_type root); error_if_unknown "i_distro" (g#inspect_get_distro root); error_if_unknown "i_arch" (g#inspect_get_arch root) and error_if_unknown fieldname value = if value = "unknown" then error (f_"inspection could not detect the source guest (or \ physical machine) operating system.\n\n\ Assuming that you are running virt-v2v/virt-p2v \ on a source which is supported (and not, for example, \ a blank disk), then this should not happen.\n\n\ Inspection field ‘%s’ was ‘unknown’.") fieldname (* See equivalent function in guestfs-tools.git:inspector/inspector.c *) and get_filesystem_version g dev = function | "xfs" -> let hash = g#xfs_info2 dev in (match List.assoc_opt "meta-data.crc" hash with | None -> None | Some "0" -> (* XFS version *) Some "4" | Some "1" -> (* XFS version *) Some "5" | Some _ -> None ) | _ -> None (* Wrapper around g#inspect_list_applications2 which, for RPM * guests, on failure tries to rebuild the RPM database before * repeating the operation. *) and list_applications g root = function | "rpm" -> (* RPM guest. * * In libguestfs before commit 488245ed6c ("daemon: rpm: Check * return values from librpm calls"), a corrupt RPM database * would return an empty array here with no exception. Hence * the check below which turns empty array => exception. In * libguestfs after that commit, inspect_list_applications2 * will raise an exception if it detects a corrupt RPM database. *) (try let apps = g#inspect_list_applications2 root in if apps = [||] then raise (G.Error "no applications returned"); apps with G.Error msg -> debug "%s" msg; debug "rebuilding RPM database and retrying ..."; ignore (g#sh "rpmdb --rebuilddb"); g#inspect_list_applications2 root ) | _ -> (* Non-RPM guest, just do it. *) g#inspect_list_applications2 root ================================================ FILE: convert/mount_filesystems.mli ================================================ (* virt-v2v * Copyright (C) 2009-2025 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) (** Mount up the filesystems. *) val mount_filesystems : Guestfs.guestfs -> string -> Types.inspect (** Mount up the filesystems and return inspection data for the root disk, plus some other checks. {!Choose_root.choose_root} should have been called already (which actually does libguestfs inspection). After calling this, the filesystems are mounted up. *) ================================================ FILE: convert/target_bus_assignment.ml ================================================ (* virt-v2v * Copyright (C) 2009-2025 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) open Std_utils open Tools_utils open Common_gettext.Gettext open Types let rec target_bus_assignment source_disks source_removables guestcaps = let virtio_blk_bus = ref [| |] and ide_bus = ref [| |] and scsi_bus = ref [| |] and floppy_bus = ref [| |] in (* Assign the fixed disks (source_disks) to either the virtio-blk or * IDE bus, depending on whether the guest has virtio drivers or not. *) let () = let bus = match guestcaps.gcaps_block_bus with | Virtio_blk -> virtio_blk_bus | Virtio_SCSI -> scsi_bus | IDE -> ide_bus in List.iteri ( fun i d -> let d = BusSlotDisk d in insert bus i d ) source_disks in (* Now we have to assign the removable disks. These go in the * same slot they originally occupied, except in two cases: (1) That * slot is now occupied by a target disk, or (2) we don't * have information about the original slot. In these cases * insert the disk in the next empty slot in that bus. *) (* Split the removables into a list of devices that desire a * particular slot, and those that don't care. Assign the first * group first so they have a greater chance of getting the * desired slot. *) let removables_desire, removables_no_desire = List.partition ( function | { s_removable_slot = Some _ } -> true | { s_removable_slot = None } -> false ) source_removables in let assign_removables removables = List.iter ( fun r -> let t = BusSlotRemovable r in let bus = match r.s_removable_type with | Floppy -> floppy_bus | CDROM -> match r.s_removable_controller with | None -> ide_bus (* Wild guess, but should be safe. *) | Some Source_virtio_blk -> virtio_blk_bus | Some Source_IDE -> ide_bus | Some (Source_virtio_SCSI | Source_SCSI | Source_SATA | Source_NVME) -> scsi_bus in match r.s_removable_slot with | None -> ignore (insert_after bus 0 t) | Some desired_slot_nr -> if not (insert_after bus desired_slot_nr t) then warning (f_"removable %s device in slot %d clashes with another \ disk, so it has been moved to a higher numbered slot \ on the same bus. This may mean that this removable \ device has a different name inside the guest (for \ example a CD-ROM originally called /dev/hdc might \ move to /dev/hdd, or from D: to E: on a Windows \ guest).") (match r.s_removable_type with | CDROM -> s_"CD-ROM" | Floppy -> s_"floppy disk") desired_slot_nr ) removables in assign_removables removables_desire; assign_removables removables_no_desire; { target_virtio_blk_bus = !virtio_blk_bus; target_ide_bus = !ide_bus; target_scsi_bus = !scsi_bus; target_floppy_bus = !floppy_bus } (* Insert a slot into the bus array, making the array bigger if necessary. *) and insert bus i slot = let oldbus = !bus in let oldlen = Array.length oldbus in if i >= oldlen then ( bus := Array.make (i+1) BusSlotEmpty; Array.blit oldbus 0 !bus 0 oldlen ); assert (!bus.(i) = BusSlotEmpty); !bus.(i) <- slot (* Insert a slot into the bus, but if the desired slot is not empty, then * increment the slot number until we find an empty one. Returns * true if we got the desired slot. *) and insert_after bus i slot = if slot_is_empty bus i then ( insert bus i slot; true ) else ( ignore (insert_after bus (i+1) slot); false ) (* Return true if slot i is empty in the bus. *) and slot_is_empty bus i = i >= Array.length !bus || !bus.(i) = BusSlotEmpty ================================================ FILE: convert/target_bus_assignment.mli ================================================ (* virt-v2v * Copyright (C) 2009-2025 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) (** Assign fixed and removable disks to target buses. Do this as best we can. This is not solvable for all guests, but at least avoid overlapping disks (RHBZ#1238053). *) val target_bus_assignment : Types.source_disk list -> Types.source_removable list -> Types.guestcaps -> Types.target_buses ================================================ FILE: docs/Makefile.am ================================================ # libguestfs virt-v2v tool # Copyright (C) 2009-2025 Red Hat Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. include $(top_srcdir)/subdir-rules.mk EXTRA_DIST = \ test-docs.sh \ virt-v2v.pod \ virt-v2v-hacking.pod \ virt-v2v-input-vmware.pod \ virt-v2v-input-xen.pod \ virt-v2v-output-local.pod \ virt-v2v-output-openstack.pod \ virt-v2v-output-ovirt.pod \ virt-v2v-release-notes-1.42.pod \ virt-v2v-release-notes-2.0.pod \ virt-v2v-release-notes-2.2.pod \ virt-v2v-release-notes-2.4.pod \ virt-v2v-release-notes-2.6.pod \ virt-v2v-release-notes-2.8.pod \ virt-v2v-release-notes-2.10.pod \ virt-v2v-support.pod \ vm-generation-id-across-hypervisors.txt \ $(NULL) # Manual pages and HTML files for the website. man_MANS = \ virt-v2v.1 \ virt-v2v-hacking.1 \ virt-v2v-input-vmware.1 \ virt-v2v-output-local.1 \ virt-v2v-output-openstack.1 \ virt-v2v-release-notes-1.42.1 \ virt-v2v-release-notes-2.0.1 \ virt-v2v-release-notes-2.2.1 \ virt-v2v-release-notes-2.4.1 \ virt-v2v-release-notes-2.6.1 \ virt-v2v-release-notes-2.8.1 \ virt-v2v-release-notes-2.10.1 \ virt-v2v-support.1 \ $(NULL) noinst_DATA = \ $(top_builddir)/website/virt-v2v.1.html \ $(top_builddir)/website/virt-v2v-hacking.1.html \ $(top_builddir)/website/virt-v2v-input-vmware.1.html \ $(top_builddir)/website/virt-v2v-output-local.1.html \ $(top_builddir)/website/virt-v2v-output-openstack.1.html \ $(top_builddir)/website/virt-v2v-release-notes-1.42.1.html \ $(top_builddir)/website/virt-v2v-release-notes-2.0.1.html \ $(top_builddir)/website/virt-v2v-release-notes-2.2.1.html \ $(top_builddir)/website/virt-v2v-release-notes-2.4.1.html \ $(top_builddir)/website/virt-v2v-release-notes-2.6.1.html \ $(top_builddir)/website/virt-v2v-release-notes-2.8.1.html \ $(top_builddir)/website/virt-v2v-release-notes-2.10.1.html \ $(top_builddir)/website/virt-v2v-support.1.html \ $(NULL) if ENABLE_XEN man_MANS += virt-v2v-input-xen.1 noinst_DATA += $(top_builddir)/website/virt-v2v-input-xen.1.html endif if ENABLE_OVIRT man_MANS += virt-v2v-output-ovirt.1 noinst_DATA += $(top_builddir)/website/virt-v2v-output-ovirt.1.html endif # Some man pages are preprocessed with m4 for conditional sections. PP_M4 = \ m4 \ -D ENABLE_BLOCK_DRIVER=$(ENABLE_BLOCK_DRIVER) \ -D ENABLE_XEN=$(ENABLE_XEN) \ -D ENABLE_GLANCE=$(ENABLE_GLANCE) \ -D ENABLE_OVIRT=$(ENABLE_OVIRT) \ $(NULL) virt-v2v.1 $(top_builddir)/website/virt-v2v.1.html: stamp-virt-v2v.pod stamp-virt-v2v.pod: virt-v2v.pod $(PODWRAPPER) \ --pp "$(PP_M4)" \ --man virt-v2v.1 \ --html $(top_builddir)/website/virt-v2v.1.html \ --path $(top_srcdir)/common/options \ --insert $(top_srcdir)/common/mlcustomize/v2v-customize-options.pod:__CUSTOMIZE_OPTIONS__ \ --license GPLv2+ \ --warning safe \ $< $(AM_V_at)touch $@ virt-v2v-hacking.1 $(top_builddir)/website/virt-v2v-hacking.1.html: stamp-virt-v2v-hacking.pod stamp-virt-v2v-hacking.pod: virt-v2v-hacking.pod $(PODWRAPPER) \ --man virt-v2v-hacking.1 \ --html $(top_builddir)/website/virt-v2v-hacking.1.html \ --license GPLv2+ \ --warning safe \ $< $(AM_V_at)touch $@ virt-v2v-input-vmware.1 $(top_builddir)/website/virt-v2v-input-vmware.1.html: stamp-virt-v2v-input-vmware.pod stamp-virt-v2v-input-vmware.pod: virt-v2v-input-vmware.pod $(PODWRAPPER) \ --man virt-v2v-input-vmware.1 \ --html $(top_builddir)/website/virt-v2v-input-vmware.1.html \ --license GPLv2+ \ --warning safe \ $< $(AM_V_at)touch $@ if ENABLE_XEN virt-v2v-input-xen.1 $(top_builddir)/website/virt-v2v-input-xen.1.html: stamp-virt-v2v-input-xen.pod stamp-virt-v2v-input-xen.pod: virt-v2v-input-xen.pod $(PODWRAPPER) \ --man virt-v2v-input-xen.1 \ --html $(top_builddir)/website/virt-v2v-input-xen.1.html \ --license GPLv2+ \ --warning safe \ $< $(AM_V_at)touch $@ endif virt-v2v-output-local.1 $(top_builddir)/website/virt-v2v-output-local.1.html: stamp-virt-v2v-output-local.pod stamp-virt-v2v-output-local.pod: virt-v2v-output-local.pod $(PODWRAPPER) \ --man virt-v2v-output-local.1 \ --html $(top_builddir)/website/virt-v2v-output-local.1.html \ --license GPLv2+ \ --warning safe \ $< $(AM_V_at)touch $@ virt-v2v-output-openstack.1 $(top_builddir)/website/virt-v2v-output-openstack.1.html: stamp-virt-v2v-output-openstack.pod stamp-virt-v2v-output-openstack.pod: virt-v2v-output-openstack.pod $(PODWRAPPER) \ --pp "$(PP_M4)" \ --man virt-v2v-output-openstack.1 \ --html $(top_builddir)/website/virt-v2v-output-openstack.1.html \ --license GPLv2+ \ --warning safe \ $< $(AM_V_at)touch $@ if ENABLE_OVIRT virt-v2v-output-ovirt.1 $(top_builddir)/website/virt-v2v-output-ovirt.1.html: stamp-virt-v2v-output-ovirt.pod stamp-virt-v2v-output-ovirt.pod: virt-v2v-output-ovirt.pod $(PODWRAPPER) \ --man virt-v2v-output-ovirt.1 \ --html $(top_builddir)/website/virt-v2v-output-ovirt.1.html \ --license GPLv2+ \ --warning safe \ $< $(AM_V_at)touch $@ endif virt-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 stamp-virt-v2v-release-notes-1.42.pod: virt-v2v-release-notes-1.42.pod $(PODWRAPPER) \ --man virt-v2v-release-notes-1.42.1 \ --html $(top_builddir)/website/virt-v2v-release-notes-1.42.1.html \ --license GPLv2+ \ --warning safe \ $< $(AM_V_at)touch $@ virt-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 stamp-virt-v2v-release-notes-2.0.pod: virt-v2v-release-notes-2.0.pod $(PODWRAPPER) \ --man virt-v2v-release-notes-2.0.1 \ --html $(top_builddir)/website/virt-v2v-release-notes-2.0.1.html \ --license GPLv2+ \ --warning safe \ $< $(AM_V_at)touch $@ virt-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 stamp-virt-v2v-release-notes-2.2.pod: virt-v2v-release-notes-2.2.pod $(PODWRAPPER) \ --man virt-v2v-release-notes-2.2.1 \ --html $(top_builddir)/website/virt-v2v-release-notes-2.2.1.html \ --license GPLv2+ \ --warning safe \ $< $(AM_V_at)touch $@ virt-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 stamp-virt-v2v-release-notes-2.4.pod: virt-v2v-release-notes-2.4.pod $(PODWRAPPER) \ --man virt-v2v-release-notes-2.4.1 \ --html $(top_builddir)/website/virt-v2v-release-notes-2.4.1.html \ --license GPLv2+ \ --warning safe \ $< $(AM_V_at)touch $@ virt-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 stamp-virt-v2v-release-notes-2.6.pod: virt-v2v-release-notes-2.6.pod $(PODWRAPPER) \ --man virt-v2v-release-notes-2.6.1 \ --html $(top_builddir)/website/virt-v2v-release-notes-2.6.1.html \ --license GPLv2+ \ --warning safe \ $< $(AM_V_at)touch $@ virt-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 stamp-virt-v2v-release-notes-2.8.pod: virt-v2v-release-notes-2.8.pod $(PODWRAPPER) \ --man virt-v2v-release-notes-2.8.1 \ --html $(top_builddir)/website/virt-v2v-release-notes-2.8.1.html \ --license GPLv2+ \ --warning safe \ $< $(AM_V_at)touch $@ virt-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 stamp-virt-v2v-release-notes-2.10.pod: virt-v2v-release-notes-2.10.pod $(PODWRAPPER) \ --man virt-v2v-release-notes-2.10.1 \ --html $(top_builddir)/website/virt-v2v-release-notes-2.10.1.html \ --license GPLv2+ \ --warning safe \ $< $(AM_V_at)touch $@ virt-v2v-support.1 $(top_builddir)/website/virt-v2v-support.1.html: stamp-virt-v2v-support.pod stamp-virt-v2v-support.pod: virt-v2v-support.pod $(PODWRAPPER) \ --man virt-v2v-support.1 \ --html $(top_builddir)/website/virt-v2v-support.1.html \ --license GPLv2+ \ --warning safe \ $< $(AM_V_at)touch $@ TESTS_ENVIRONMENT = $(top_builddir)/run --test TESTS = test-docs.sh ================================================ FILE: docs/test-docs.sh ================================================ #!/bin/bash - # libguestfs # Copyright (C) 2016-2025 Red Hat Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. source ../tests/functions.sh set -e set -x skip_if_skipped $srcdir/../podcheck.pl virt-v2v.pod virt-v2v \ --path $srcdir/../common/options \ --ignore=\ --debug-overlay,\ --ic,\ --if,\ --io,\ --ip,\ --it,\ --in-place,\ --oa,\ --oc,\ --of,\ --on,\ --oo,\ --op,\ --os,\ $virt_customize_options ================================================ FILE: docs/virt-v2v-hacking.pod ================================================ =head1 NAME virt-v2v-hacking - =head1 DESCRIPTION First a little history. Virt-v2v has been through at least two complete rewrites, so this is probably about the third version (but we don't intend to rewrite it again). The previous version was written in Perl and can be found here: L The current version started out as almost a line-for-line rewrite of the Perl code in OCaml + C, and it still has a fairly similar structure. Therefore if there are details of this code that you don't understand (especially in the details of guest conversion), checking the Perl code may help. The files to start with when reading this code are: =over 4 =item * F =item * F =back F defines all the structures used and passed around when communicating between different bits of the program. F controls how the program runs in stages. After studying those files, you may want to branch out into the input modules (F), the output modules (F) or the conversion modules (F). The input and output modules define I<-i> and I<-o> options (see the manual). The conversion modules define what guest types we can handle and the detailed steps involved in converting them. Every other file in this directory is a support module / library of some sort. Some code is written in C, especially where we want to use an external C library such as libxml2. =head1 SEE ALSO L, L. =head1 AUTHORS Richard W.M. Jones =head1 COPYRIGHT Copyright (C) 2009-2025 Red Hat Inc. ================================================ FILE: docs/virt-v2v-input-vmware.pod ================================================ =head1 NAME virt-v2v-input-vmware - Using virt-v2v to convert guests from VMware =head1 SYNOPSIS virt-v2v -i vmx GUEST.vmx [-o* options] virt-v2v -i vmx -it ssh -ip passwordfile 'ssh://root@esxi.example.com/vmfs/volumes/datastore1/guest/guest.vmx' [-o* options] virt-v2v -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1' -it vddk -io vddk-libdir=/path/to/vmware-vix-disklib-distrib "GUEST NAME" [-o* options] virt-v2v -i ova DISK.ova [-o* options] virt-v2v -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1' -ip passwordfile "GUEST NAME" [-o* options] =head1 DESCRIPTION This page documents how to use L to convert guests from VMware. There are currently five different methods to access VMware: =over 4 =item B<-i vmx> GUESTB<.vmx> Full documentation: L If you either have a F file and one or more F disk image files, or if you are able to NFS-mount the VMware storage, then you can use the I<-i vmx> method to read the source guest. =item B<-i vmx> B<-it ssh> ssh://... Full documentation: L This is similar to the method above, except it uses an SSH connection to ESXi to read the F file and associated disks. This requires that you have enabled SSH access to the VMware ESXi hypervisor - in the default ESXi configuration this is turned off. This transport is incompatible with guests that have snapshots; refer to L. =item B<-ic vpx://...> B<-it vddk> =item B<-ic esx://...> B<-it vddk> Full documentation: L This method uses the proprietary VDDK library (a.k.a. VixDiskLib) to access the VMware vCenter server or VMware ESXi hypervisor. If you have the proprietary library then this method is usually the fastest and most flexible. If you don't have or don't want to use non-free software then the VMX or SSH methods above will be best. =item B<-i ova> DISKB<.ova> Full documentation: L With this method you must first export the guest (eg. from vSphere) as an F<.ova> file, which virt-v2v can then read directly. Note this method only works with files exported from VMware, not OVA files that come from other hypervisors or management systems, since OVA is only a pretend standard and is not compatible or interoperable between vendors. =item B<-ic vpx://...> "GUEST NAME" Full documentation: L If none of the above methods is available, then use this method to import a guest from VMware vCenter. This is the slowest method. =back =head1 NOTES When accessing the F.vmx> file on ESXi over an SSH connection (that is, when using the I<-i vmx> I<-it ssh> options), the conversion will not work if the guest has snapshots (files called F-000001.vmdk> and similar). Either collapse the snapshots for the guest and retry the conversion with the same I<-i vmx> I<-it ssh> options, or leave the snapshots intact and use a transport different from SSH: just I<-i vmx>, or I<-ic vpx://...> I<-it vddk> or I<-ic esx://...> I<-it vddk>. Refer to L. =head1 INPUT FROM VMWARE VMX Virt-v2v is able to import guests from VMware’s vmx files. This is useful in two cases: =over 4 =item 1. VMware virtual machines are stored on a separate NFS server and you are able to mount the NFS storage directly. =item 2. You have enabled SSH access to the VMware ESXi hypervisor and there is a C folder containing the virtual machines. =back If you find a folder of files called F.vmx>, F.vmxf>, F.nvram> and one or more F<.vmdk> disk images, then you can use this method. The SSH transport is not usable if the guest has snapshots; refer to L. =head2 VMX: Guest must be shut down B. Because the I<-i vmx> method works directly against the storage, checking for concurrent access is not possible. See also L. =head2 VMX: Access to the storage containing the VMX and VMDK files If the vmx and vmdk files aren't available locally then you must I mount the NFS storage on the conversion server I enable passwordless SSH on the ESXi hypervisor. =head3 VMX: SSH authentication You can use SSH password authentication, by supplying the name of a file containing the password to the I<-ip> option (note this option does I take the password directly). You may need to adjust F on the VMware server to set C. If you are not using password authentication, an alternative is to use ssh-agent, and add your ssh public key to F (on the ESXi hypervisor). After doing this, you should check that passwordless access works from the virt-v2v server to the ESXi hypervisor. For example: $ ssh root@esxi.example.com [ logs straight into the shell, no password is requested ] Note that support for non-interactive authentication via the I<-ip> option is incomplete. Some operations remain that still require the user to enter the password manually. Therefore ssh-agent is recommended over the I<-ip> option. See L. =head3 VMX: Construct the SSH URI When using the SSH input transport you must specify a remote C URI pointing to the VMX file. A typical URI looks like: ssh://root@esxi.example.com/vmfs/volumes/datastore1/my%20guest/my%20guest.vmx The username is not required if it is the same as your local username. You may optionally supply a port number after the hostname if the SSH server is not listening on the default port (22). For determining the pathname component of the URI, log in to the ESXi server via SSH interactively, and identify the absolute pathname of the VMX file on the ESXi server, such as: /vmfs/volumes/datastore1/my guest/my guest.vmx Subsequently, on the virt-v2v command line, L that you find in the individual pathname components. For example, space characters must be specified as C<%20>: /vmfs/volumes/datastore1/my%20guest/my%20guest.vmx Refer to L. =head2 VMX: Importing a guest To import a vmx file from a local file or NFS, do: $ virt-v2v -i vmx guest.vmx -o local -os /var/tmp To import a vmx file over SSH, add I<-it ssh> to select the SSH transport and supply a remote SSH URI: $ virt-v2v \ -i vmx -it ssh \ "ssh://root@esxi.example.com/vmfs/volumes/datastore1/guest/guest.vmx" \ -o local -os /var/tmp Virt-v2v processes the vmx file and uses it to find the location of any vmdk disks. =head1 INPUT FROM VDDK Virt-v2v is able to import guests using VMware’s proprietary VDDK library (a.k.a. VixDiskLib). =head2 VDDK: Prerequisites =over 4 =item 1. As the VDDK library is not open source, and the license of this library does not permit redistribution or commercial use, you must obtain VDDK yourself and satisfy yourself that your usage of the library is permitted by the license. =item 2. nbdkit E 1.6 is recommended, as it ships with the VDDK plugin enabled unconditionally. =item 3. VDDK imports require a feature added in libvirt E 3.7. =item 4. The VMware server must not be in maintenance mode. =back =head2 VDDK: ESXi NFC service memory limits In the verbose log you may see errors like: nbdkit: vddk[3]: error: [NFC ERROR] NfcFssrvrProcessErrorMsg: received NFC error 5 from server: Failed to allocate the requested 2097176 bytes This seems especially common when there are multiple parallel connections open to the VMware server. These can be caused by resource limits set on the VMware server. You can increase the limit for the NFC service by editing F and adjusting the CmaxMemoryE> setting: libnfcsvc.so true 50331648 10485760 and restarting the C service: # /etc/init.d/hostd restart For more information see L. =head2 VDDK: "error: VixDiskLibVim: Failed to open disk using NFC. VixError 1" If you see an error similar to: nbdkit: vddk[2]: error: VixDiskLibVim: Failed to open disk using NFC. VixError 1 at 1166. then it is caused by a bug in VDDK E 6.7. The suggested solution it to upgrade to the latest VDDK. See also L =head2 VDDK: URI Construct the correct C (for vCenter) or C (for ESXi) URL. It will look something like these: vpx://root@vcenter.example.com/Datacenter/esxi esx://root@esxi.example.com To verify that you have the correct URL, use the L command to list the guests on the server: $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi' list --all Enter root's password for vcenter.example.com: *** Id Name State ---------------------------------------------------- - Fedora 20 shut off - Windows 2003 shut off If you get an error "Peer certificate cannot be authenticated with given CA certificates" or similar, then you can either import the vCenter host’s certificate, or bypass signature verification by adding the C flag: $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1' list --all You should also try dumping the metadata from any guest on your server, like this: $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi' dumpxml "Windows 2003" Windows 2003 [...] vm-123 If Cvmware:morefE> does not appear in the metadata, then you need to upgrade libvirt. B. Fix your URI and/or your VMware server before continuing. =head2 VDDK: Importing a guest The I<-it vddk> parameter selects VDDK as the input transport for disks. To import a particular guest from vCenter server or ESXi hypervisor, use a command like the following, substituting the URI and guest name: $ virt-v2v \ -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1' \ -it vddk \ -io vddk-libdir=/path/to/vmware-vix-disklib-distrib \ "Windows 2003" \ -o local -os /var/tmp Other options that you might need to add in rare circumstances include I<-io vddk-compression>, I<-io vddk-config>, I<-io vddk-cookie>, I<-io vddk-file>, I<-io vddk-nfchostport>, I<-io vddk-port>, I<-io vddk-snapshot>, I<-io vddk-thumbprint> and I<-io vddk-transports>, which are all explained in the L documentation. Do not use these options unless you know what you are doing. =head2 VDDK: Thumbprint You may specify the thumbprint of the VMware server using the I<-io vddk-thumbprint=XX:XX...> parameter. Doing so increases security against some man-in-the-middle attacks. Since virt-v2v 2.10, this parameter is not required. Virt-v2v will get the thumbprint from the server if it is not specified (but the L command must be installed for this to work). =head2 VDDK: Debugging VDDK failures The VDDK library can be operated in a verbose mode where it gives (very) verbose messages. Use ‘virt-v2v -v -x’ as usual to enable verbose messages. =head2 VDDK: Slow imports and repeated NBD_ClientOpen messages If imports over VDDK are slow, and ‘virt-v2v -v -x’ shows many C messages, then you are hitting an apparent bug in S (https://bugzilla.redhat.com/1901489). Upgrade to at least S to resolve the issue. =head1 INPUT FROM VMWARE OVA Virt-v2v is able to import guests from VMware’s OVA (Open Virtualization Appliance) files. Only OVAs exported from VMware vSphere will work. =head2 OVA: Create OVA To create an OVA in vSphere, use the "Export OVF Template" option (from the VM context menu, or from the File menu). Either "Folder of files" (OVF) or "Single file" (OVA) will work, but OVA is probably easier to deal with. OVA files are really just uncompressed tar files, so you can use commands like C to view their contents. =head3 Create OVA with ovftool You can also use VMware’s proprietary C: ovftool --noSSLVerify \ vi://USER:PASSWORD@esxi.example.com/VM \ VM.ova To connect to vCenter: ovftool --noSSLVerify \ vi://USER:PASSWORD@vcenter.example.com/DATACENTER-NAME/vm/VM \ VM.ova For Active Directory-aware authentication using down-level logon names (C), you have to express the C<\> character in the form of its ascii hex-code (C<%5c>): vi://DOMAIN%5cUSER:PASSWORD@... =head2 OVA: Importing a guest To import an OVA file called F, do: $ virt-v2v -i ova VM.ova -o local -os /var/tmp If you exported the guest as a "Folder of files", I if you unpacked the OVA tarball yourself, then you can point virt-v2v at the directory containing the files: $ virt-v2v -i ova /path/to/files -o local -os /var/tmp =head2 OVA: Permissions issues with oVirt import oVirt provides a graphical user interface for importing from OVA files which uses this method. It requires that oVirt is able to access the OVA file which can be a problem if the file is owned by root (oVirt runs as a non-root user). The suggested workaround is to copy the OVA to a public directory such as F before doing the import and perhaps change the user and group ownership of the file. For more information see these links: =over 4 =item * L =item * L =back =head1 INPUT FROM VMWARE VCENTER SERVER Virt-v2v is able to import guests from VMware vCenter Server. vCenter E 5.0 is required. If you don’t have vCenter, using OVA or VMX is recommended instead (see L and/or L). Virt-v2v uses libvirt for access to vCenter, and therefore the input mode should be I<-i libvirt>. As this is the default, you don't need to specify it on the command line. =head2 vCenter: URI The libvirt URI of a vCenter server looks something like this: vpx://user@server/Datacenter/esxi where: =over 4 =item C is the (optional, but recommended) user to connect as. If the username contains a backslash (eg. C) then you will need to URI-escape that character using C<%5c>: C (5c is the hexadecimal ASCII code for backslash.) Other punctuation may also have to be escaped. The user's password must be supplied in a local file using the separate I<-ip> parameter. =item C is the vCenter Server (I hypervisor). =item C is the name of the datacenter. If the name contains a space, replace it with the URI-escape code C<%20>. =item C is the name of the ESXi hypervisor running the guest. =back If the VMware deployment is using folders, then these may need to be added to the URI, eg: vpx://user@server/Folder/Datacenter/esxi For full details of libvirt URIs, see: L Typical errors from libvirt / virsh when the URI is wrong include: =over 4 =item * Could not find datacenter specified in [...] =item * Could not find compute resource specified in [...] =item * Path [...] does not specify a compute resource =item * Path [...] does not specify a host system =item * Could not find host system specified in [...] =back =head2 vCenter: Test libvirt connection to vCenter Use the L command to list the guests on the vCenter Server like this: $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi' list --all Enter root's password for vcenter.example.com: *** Id Name State ---------------------------------------------------- - Fedora 20 shut off - Windows 2003 shut off If you get an error "Peer certificate cannot be authenticated with given CA certificates" or similar, then you can either import the vCenter host’s certificate, or bypass signature verification by adding the C flag: $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1' list --all You should also try dumping the metadata from any guest on your server, like this: $ virsh -c 'vpx://root@vcenter.example.com/Datacenter/esxi' dumpxml "Windows 2003" Windows 2003 [...] B. Fix your libvirt configuration and/or your VMware vCenter Server before continuing. =head2 vCenter: Supplying the password The vCenter password (usually for the root account, or the account specified by C in the vpx URL) has to be written to a local file, and the name of that file specified on the virt-v2v command line using I<-ip passwordfile>. =head2 vCenter: Importing a guest To import a particular guest from vCenter Server, do: $ virt-v2v -ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1' \ -ip passwordfile \ "Windows 2003" \ -o local -os /var/tmp where C is the name of the guest (which must be shut down). In this case the output flags are set to write the converted guest to a temporary directory as this is just an example, but you can also write to libvirt or any other supported target. =head2 vCenter: Non-administrator role Instead of using the vCenter Administrator role, you can create a custom non-administrator role to perform the conversion. You will however need enable the following permissions (or as many as are available, older versions of VMware were missing some of these settings): =over 4 =item 1. Create a custom role in vCenter. =item 2. Enable (check) the following objects: Datastore: - Browse datastore - Low level file operations Sessions: - Validate session Virtual Machine: Interaction: - Guest operating system management by VIX API Provisioning: - Allow disk access - Allow read-only disk access - Allow virtual machine download Cryptographic operations: - Decrypt - Direct Access =back =head2 vCenter: Firewall and proxy settings =head3 vCenter: Ports If there is a firewall between the virt-v2v conversion server and the vCenter server, then you will need to open port 443 (https) and port 5480. Port 443 is used to copy the guest disk image(s). Port 5480 is used to query vCenter for guest metadata. These port numbers are only the defaults. It is possible to reconfigure vCenter to use other port numbers. In that case you would need to specify those ports in the C URI. See L above. These ports only apply to virt-v2v conversions. You may have to open other ports for other vCenter functionality, for example the web user interface. VMware documents the required ports for vCenter in their online documentation. ┌────────────┐ port 443 ┌────────────┐ ┌────────────┐ │ virt-v2v │────────────▶ vCenter │────────▶ ESXi │ │ conversion │────────────▶ server │ │ hypervisor │ │ server │ port 5480 │ │ │ ┌─────┐ │ └────────────┘ └────────────┘ │ │guest│ │ └───┴─────┴──┘ (In the diagram above the arrows show the direction in which the TCP connection is initiated, I necessarily the direction of data transfer.) Virt-v2v itself does not connect directly to the ESXi hypervisor containing the guest. However vCenter connects to the hypervisor and forwards the information, so if you have a firewall between vCenter and its hypervisors you may need to open additional ports (consult VMware documentation). The proxy environment variables (C, C, C, C, C and C) are B when doing vCenter conversions. =head2 vCenter: SSL/TLS certificate problems You may see this error: CURL: Error opening file: SSL: no alternative certificate subject name matches target host name (You may need to enable debugging with ‘virt-v2v -v -x’ to see this message). This can be caused by using an IP address instead of the fully-qualified DNS domain name of the vCenter server, ie. use C instead of C Another certificate problem can be caused by the vCenter server having a mismatching FQDN and IP address, for example if the server acquired a new IP address from DHCP. To fix this you need to change your DHCP server or network configuration so that the vCenter server always gets a stable IP address. After that log in to the vCenter server’s admin console at C. Under the C tab, select C and then reboot it. =head2 vCenter: "Out of HTTP sessions: Limited to ..." VMware vCenter appears to limit HTTP sessions and in some circumstances virt-v2v may exceed this number. You can adjust or remove the limit by editing F on the vCenter server. Increase the CmaxSessionCountE> field, or set it to C<0> which makes it unlimited: 0 =head1 SEE ALSO L. =head1 AUTHOR Richard W.M. Jones =head1 COPYRIGHT Copyright (C) 2009-2025 Red Hat Inc. ================================================ FILE: docs/virt-v2v-input-xen.pod ================================================ =head1 NAME virt-v2v-input-xen - Using virt-v2v to convert guests from Xen =head1 SYNOPSIS virt-v2v -ic 'xen+ssh://root@xen.example.com' -ip passwordfile GUEST_NAME [-o* options] =head1 DESCRIPTION This page documents how to use L to convert guests from RHEL 5 Xen, or SLES and OpenSUSE Xen hosts. =head1 INPUT FROM XEN =head2 SSH authentication You can use SSH password authentication, by supplying the name of a file containing the password to the I<-ip> option (note this option does I take the password directly). You may need to adjust F on the Xen server to set C. If you are not using password authentication, an alternative is to use ssh-agent, and add your ssh public key to F (on the Xen host). After doing this, you should check that passwordless access works from the virt-v2v server to the Xen host. For example: $ ssh root@xen.example.com [ logs straight into the shell, no password is requested ] Note that support for non-interactive authentication via the I<-ip> option is incomplete. Some operations remain that still require the user to enter the password manually. Therefore ssh-agent is recommended over the I<-ip> option. See L. With some modern ssh implementations, legacy crypto algorithms required to interoperate with RHEL 5 sshd are disabled. To enable them, you may need to add the following C stanza to your F<~/.ssh/config>: Host xen.example.com KexAlgorithms +diffie-hellman-group14-sha1 MACs +hmac-sha1 HostKeyAlgorithms +ssh-rsa PubkeyAcceptedKeyTypes +ssh-rsa PubkeyAcceptedAlgorithms +ssh-rsa (C and C have identical meaning; the former is the old option name, the latter is the new one. Virt-v2v uses both C and C when converting a guest from Xen, and on some operating systems, C and C may not both accept the same option variant.) When connecting to RHEL 5 sshd from RHEL 9, the SHA1 algorithm's use in signatures has to be re-enabled at the OpenSSL level, in addition to the above SSH configuration. Create a file called F<$HOME/openssl-sha1.cnf> with the following contents: .include /etc/ssl/openssl.cnf [openssl_init] alg_section = evp_properties [evp_properties] rh-allow-sha1-signatures = yes and export the following variable into the environment of the C process: OPENSSL_CONF=$HOME/openssl-sha1.cnf Note that the C environment variable will only take effect if the libvirt client library used by virt-v2v is at least version 8.6.0. =head2 Test libvirt connection to remote Xen host Use the L command to list the guests on the remote Xen host: $ virsh -c xen+ssh://root@xen.example.com list --all Id Name State ---------------------------------------------------- 0 Domain-0 running - rhel49-x86_64-pv shut off You should also try dumping the metadata from any guest on your server, like this: $ virsh -c xen+ssh://root@xen.example.com dumpxml rhel49-x86_64-pv rhel49-x86_64-pv [...] B. Fix your libvirt configuration or the remote server before continuing. B, then the conversion will fail. See L below for a workaround. =head2 Importing a guest To import a particular guest from a Xen server, do: $ virt-v2v -ic 'xen+ssh://root@xen.example.com' \ rhel49-x86_64-pv \ -o local -os /var/tmp where C is the name of the guest (which must be shut down). In this case the output flags are set to write the converted guest to a temporary directory as this is just an example, but you can also write to libvirt or any other supported target. =head2 Xen or ssh conversions from block devices Currently virt-v2v cannot directly access a Xen guest (or any guest located remotely over ssh) if that guest’s disks are located on host block devices. To tell if a Xen guest uses host block devices, look at the guest XML. You will see: ... where C, C and C are all indications that the disk is located on a host block device. This happens because the qemu ssh block driver that we use to access remote disks uses the ssh sftp protocol, and this protocol cannot correctly detect the size of host block devices. The workaround is to copy the block device from the remote Xen server to a regular local file, copy the libvirt guest XML, adjust the C element to point to the local file, and use C<-i libvirtxml> mode instead. =head1 SEE ALSO L. =head1 AUTHOR Richard W.M. Jones =head1 COPYRIGHT Copyright (C) 2009-2025 Red Hat Inc. ================================================ FILE: docs/virt-v2v-output-local.pod ================================================ =head1 NAME virt-v2v-output-local - Using virt-v2v to convert guests to local files or libvirt =head1 SYNOPSIS virt-v2v [-i* options] [-o libvirt] -os POOL virt-v2v [-i* options] -o local -os DIRECTORY virt-v2v [-i* options] -o qemu -os DIRECTORY [-oo qemu-boot] virt-v2v [-i* options] -o null =head1 DESCRIPTION This page documents how to use L to convert guests to local files or to a locally running libvirt instance. There are four output modes you can select on the virt-v2v command line: =over 4 =item B<-o libvirt -os> C =item B<-os> C This converts the guest to a libvirt directory pool call C, and instantiates the guest in libvirt (but does not start it running). See L below. I<-o libvirt> is the default if no I<-o> option is given, so you can omit it. =item B<-o local -os> C This converts the guest to files in C. A libvirt XML file is also created, but unlike I<-o libvirt> the guest is not instantiated in libvirt, only files are created. The files will be called: NAME-sda, NAME-sdb, etc. Guest disk(s). NAME.xml Libvirt XML. where C is the guest name. =item B<-o qemu -os> C =item B<-o qemu -os> C B<-oo qemu-boot> This converts the guest to files in C. Unlike I<-o local> above, a shell script is created which contains the raw qemu command you would need to boot the guest. However the shell script is not run, I you also add the I<-oo qemu-boot> option. =item B<-o null> The guest is converted, but the final result is thrown away and no metadata is created. This is mainly useful for testing. =back =head1 OUTPUT TO LIBVIRT The I<-o libvirt> option lets you upload the converted guest to a libvirt-managed host. There are several limitations: =over 4 =item * You can only use a local libvirt connection [see below for how to workaround this]. =item * The I<-os pool> option must specify a directory pool, not anything more exotic such as iSCSI [but see below]. =item * You can only upload to a KVM hypervisor. =back =head2 Workaround for output to a remote libvirt instance and/or a non-directory storage pool =over 4 =item 1. Use virt-v2v in I<-o local> mode to convert the guest disks and metadata into a local temporary directory: virt-v2v [...] -o local -os /var/tmp This creates two (or more) files in F called: /var/tmp/NAME.xml # the libvirt XML (metadata) /var/tmp/NAME-sda # the guest’s first disk (for C substitute the guest’s name). =item 2. Upload the converted disk(s) into the storage pool called C: size=$(stat -c%s /var/tmp/NAME-sda) virsh vol-create-as POOL NAME-sda $size --format raw virsh vol-upload --pool POOL NAME-sda /var/tmp/NAME-sda =item 3. Edit F to change F to the pool name. In other words, locate the following bit of XML: and change two things: The C attribute must be changed to C, and the CsourceE> element must be changed to include C and C attributes: ... ... =item 4. Define the final guest in libvirt: virsh define /var/tmp/NAME.xml =back =head1 SEE ALSO L. =head1 AUTHOR Richard W.M. Jones =head1 COPYRIGHT Copyright (C) 2009-2025 Red Hat Inc. ================================================ FILE: docs/virt-v2v-output-openstack.pod ================================================ =head1 NAME virt-v2v-output-openstack - Using virt-v2v to convert guests to OpenStack =head1 SYNOPSIS virt-v2v [-i* options] -o openstack -oo server-id=SERVER [-oo guest-id=GUEST] [-oo verify-server-certificate=false] [-oo os-username=admin] [-oo os-*=*] ifelse(ENABLE_GLANCE, yes, ` virt-v2v [-i* options] -o glance ') =head1 DESCRIPTION This page documents how to use L to convert guests to run on OpenStack. ifelse(ENABLE_GLANCE, yes, ` There are two output modes you can select, but only I<-o openstack> should be used normally. ') =over 4 =item B<-o openstack> B<-oo server-id=>SERVER [...] Full description: L This is the modern method for uploading to OpenStack via the REST API. Guests can be directly converted into Cinder volumes. ifelse(ENABLE_GLANCE, yes, ` =item B<-o glance> Full description: L This is the old method for uploading to Glance. Unfortunately Glance is not well suited to storing converted guests (since virt-v2v deals with "pets" not templated "cattle"), so this method is not recommended unless you really know what you are doing. ') =back =head1 OUTPUT TO OPENSTACK To output to OpenStack, use the I<-o openstack> option. =head2 OpenStack: Setting up a conversion appliance When virt-v2v is converting to OpenStack, it is unusual in that virt-v2v B be running inside a virtual machine running on top of the OpenStack overcloud. This virtual machine is called the "conversion appliance". Note this virtual machine is unrelated to the guest which is being converted. The reason for this is because to create Cinder volumes that will contain the guest data (for the converted guest) we must attach those Cinder volumes to an OpenStack virtual machine. The C command must be installed in the appliance. We use it for communicating with OpenStack. When virt-v2v is running in the conversion appliance, you must supply the name or UUID of the conversion appliance to virt-v2v, eg: $ openstack server list +--------------------------------------+-----------+--------+ | ID | Name | Status | +--------------------------------------+-----------+--------+ | bbb0147a-44b9-4d19-9a9d-10ca9a984744 | test1 | ACTIVE | +--------------------------------------+-----------+--------+ # virt-v2v [...] \ -o openstack -oo server-id=bbb0147a-44b9-4d19-9a9d-10ca9a984744 or: # virt-v2v [...] -o openstack -oo server-id=test1 You can run many parallel conversions inside a single conversion appliance if you want, subject to having enough resources available. However OpenStack itself imposes a limit that you should be aware of: OpenStack cannot attach more than around 25 disks [the exact number varies with configuration] to a single appliance, and that limits the number of guests which can be converted in parallel, because each guest's disk must be attached to the appliance while being copied. =head2 OpenStack: Authentication Converting to OpenStack requires access to the tenant (non-admin) API endpoints. You will need to either set up your C<$OS_*> environment variables or use output options on the virt-v2v command line to authenticate with OpenStack. For example: export OS_USERNAME=admin or: virt-v2v [...] -o openstack -oo os-username=admin are equivalent, and have the same effect as using I<--os-username> on the command line of OpenStack tools. Normally there is a file called F or F which you can simply C to set everything up. If you need to copy F to another machine, check if it references the C environment variable. If so, you may have to copy the F file from F or F<$HOME/.config/openstack/> to the other machine as well. See the section "CLOUD CONFIGURATION" in the openstack CLI manual. =head2 OpenStack: Running as root Because virt-v2v must access Cinder volumes which are presented as F devices to the conversion appliance, virt-v2v must usually run as root in I<-o openstack> mode. If you use C to start virt-v2v and you are using environment variables for authentication, remember to use the C option to preserve the environment. =head2 OpenStack: Guest ID virt-v2v [...] -o openstack -oo guest-id=123-456-7890 You may optionally specify I<-oo guest-id=...> on the command line. The ID (which can be any string) is saved on each Cinder volume in the C volume property. This can be used to find disks associated with a guest, or to associate which disks are related to which guests when converting many guests. =head2 OpenStack: Ignore server certificate Using I<-oo verify-server-certificate=false> you can tell the openstack client to ignore the server certificate when connecting to the OpenStack API endpoints. This has the same effect as passing the I<--insecure> option to the C command. =head2 OpenStack: Converting a guest The final command to convert the guest, running as root, will be: # virt-v2v [-i options ...] \ -o openstack -oo server-id=NAME|UUID [-oo guest-id=ID] If you include authentication options on the command line then: # virt-v2v [-i options ...] \ -o openstack -oo server-id=NAME|UUID -oo os-username=admin [etc] =head2 OpenStack: Booting the guest Guests are converted as Cinder volume(s) (one volume per disk in the original guest). To boot them use the C option: $ openstack volume list +--------------------------------------+---------------+-----------+ | ID | Name | Status | +--------------------------------------+---------------+-----------+ | c4d06d15-22ef-462e-9eff-ab54ab285a1f | fedora-27-sda | available | +--------------------------------------+---------------+-----------+ $ openstack server create \ --flavor x1.small \ --volume c4d06d15-22ef-462e-9eff-ab54ab285a1f \ myguest $ openstack console url show myguest =head2 OpenStack: Other conversion options To specify the Cinder volume type, use I<-os>. If not specified then no Cinder volume type is used. The following options are B supported with OpenStack: I<-oa>, I<-of>. ifelse(ENABLE_GLANCE, yes, ` =head1 OUTPUT TO GLANCE Note this is a legacy option. In most cases you should use L instead. To output to OpenStack Glance, use the I<-o glance> option. This runs the L CLI program which must be installed on the virt-v2v conversion host. For authentication to work, you will need to set C environment variables. See L above. Virt-v2v adds metadata for the guest to Glance, describing such things as the guest operating system and what drivers it requires. The command C will display the metadata as "Property" fields such as C and C. =head2 Glance and sparseness Glance image upload doesn’t appear to correctly handle sparseness. For this reason, using qcow2 will be faster and use less space on the Glance server. Use the virt-v2v S> option. =head2 Glance and multiple disks If the guest has a single disk, then the name of the disk in Glance will be the name of the guest. You can control this using the I<-on> option. Glance doesn’t have a concept of associating multiple disks with a single guest, and Nova doesn’t allow you to boot a guest from multiple Glance disks either. If the guest has multiple disks, then the first (assumed to be the system disk) will have the name of the guest, and the second and subsequent data disks will be called C-disk2>, C-disk3> etc. It may be best to leave the system disk in Glance, and import the data disks to Cinder. ') =head1 SEE ALSO L, ifelse(ENABLE_GLANCE, yes, L,) L. =head1 AUTHOR Richard W.M. Jones =head1 COPYRIGHT Copyright (C) 2009-2025 Red Hat Inc. ================================================ FILE: docs/virt-v2v-output-ovirt.pod ================================================ =head1 NAME virt-v2v-output-ovirt - Using virt-v2v to convert guests to oVirt =head1 SYNOPSIS virt-v2v [-i* options] -o ovirt-upload [-oc ENGINE_URL] -os STORAGE [-op PASSWORD] [-of raw] [-oo ovirt-cafile=FILE] [-oo ovirt-cluster=CLUSTER] [-oo ovirt-proxy] [-oo ovirt-disk-uuid=UUID ...] [-oo ovirt-verifypeer] virt-v2v [-i* options] -o ovirt -os [esd:/path|/path] virt-v2v [-i* options] -o vdsm [-oo vdsm-image-uuid=UUID] [-oo vdsm-vol-uuid=UUID] [-oo vdsm-vm-uuid=UUID] [-oo vdsm-ovf-output=DIR] =head1 DESCRIPTION This page documents how to use L to convert guests to an oVirt management instance. There are three output modes that you can select, but only I<-o ovirt-upload> should be used normally, the other two are deprecated: =over 4 =item B<-o ovirt-upload> B<-os> STORAGE Full description: L This is the modern method for uploading to oVirt via the REST API. It requires oVirt E 4.2. =item B<-o ovirt> B<-os> esd:/path =item B<-o ovirt> B<-os> /path Full description: L This is the old method for uploading to oVirt via the Export Storage Domain (ESD). The ESD can either be accessed over NFS (using the I<-os esd:/path> form) or if you have already NFS-mounted it somewhere specify the path to the mountpoint as I<-os /path>. The Export Storage Domain was deprecated in oVirt 4, and so we expect that this method will stop working at some point in the future. =item B<-o vdsm> This is the old method used internally by the oVirt user interface. It is never intended to be used directly by end users. =back =head1 OUTPUT TO OVIRT This new method to upload guests to oVirt directly via the REST API requires oVirt E 4.2. You need to specify I<-o ovirt-upload> as well as the following extra parameters: =over 4 =item I<-oc> C The URL of the REST API which is usually the server name with C appended, but might be different if you installed oVirt Engine on a different path. You can optionally add a username and port number to the URL. If the username is not specified then virt-v2v defaults to using C which is the typical superuser account for oVirt instances. =item I<-of raw> Currently you must use I<-of raw> and you cannot use I<-oa preallocated>. These restrictions will be loosened in a future version. =item I<-op> F A file containing a password to be used when connecting to the oVirt engine. Note the file should contain the whole password, B, and for security the file should have mode C<0600> so that others cannot read it. =item I<-os> C The storage domain. =item I<-oo ovirt-cafile=>F The F file (Certificate Authority), copied from F on the oVirt engine. If I<-oo ovirt-verifypeer> is enabled then this option can be used to control which CA is used to verify the client’s identity. If this option is not used then the system’s global trust store is used. =item I<-oo ovirt-cluster=>C Set the oVirt Cluster Name. If not given it uses C. =item I<-oo ovirt-disk-uuid=>C This option can used to manually specify UUIDs for the disks when creating the virtual machine. If not specified, the oVirt engine will generate random UUIDs for the disks. Please note that: =over 4 =item * you B pass as many I<-oo ovirt-disk-uuid=UUID> options as the amount of disks in the guest =item * the specified UUIDs must not conflict with the UUIDs of existing disks =back =item I<-oo ovirt-proxy> Proxy the upload through oVirt Engine. This is slower than uploading directly to the oVirt node but may be necessary if you do not have direct network access to the nodes. =item I<-oo ovirt-verifypeer> Verify the oVirt server’s identity by checking the server‘s certificate against the Certificate Authority. =back =head1 OUTPUT TO EXPORT STORAGE DOMAIN This section only applies to the I<-o ovirt> output mode. If you use virt-v2v from the oVirt user interface, then behind the scenes the import is managed by VDSM using the I<-o vdsm> output mode (which end users should not try to use directly). You have to specify I<-o ovirt> and an I<-os> option that points to the oVirt Export Storage Domain. You can either specify the NFS server and mountpoint, eg. S>, or you can mount that first and point to the directory where it is mounted, eg. S>. Be careful not to point to the Data Storage Domain by accident as that will not work. On successful completion virt-v2v will have written the new guest to the Export Storage Domain, but it will not yet be ready to run. It must be imported into oVirt using the UI before it can be used. In oVirt E 2.2 this is done from the Storage tab. Select the export domain the guest was written to. A pane will appear underneath the storage domain list displaying several tabs, one of which is "VM Import". The converted guest will be listed here. Select the appropriate guest an click "Import". See the oVirt documentation for additional details. If you export several guests, then you can import them all at the same time through the UI. =head2 Testing oVirt conversions If you do not have an oVirt instance to test against, then you can test conversions by creating a directory structure which looks enough like a oVirt Export Storage Domain to trick virt-v2v: uuid=`uuidgen` mkdir /tmp/ovirt mkdir /tmp/ovirt/$uuid mkdir /tmp/ovirt/$uuid/images mkdir /tmp/ovirt/$uuid/master mkdir /tmp/ovirt/$uuid/master/vms touch /tmp/ovirt/$uuid/dom_md virt-v2v [...] -o ovirt -os /tmp/ovirt =head2 Debugging oVirt import failures When you export to the oVirt Export Storage Domain, and then import that guest through the oVirt UI, you may encounter an import failure. Diagnosing these failures is infuriatingly difficult as the UI generally hides the true reason for the failure. There are several log files of interest: =over 4 =item F In oVirt E 4.1.0, VDSM preserves the virt-v2v log file for 30 days in this directory. This directory is found on the host which performed the conversion. The host can be selected in the import dialog, or can be found under the C tab in oVirt administration. =item F As above, this file is present on the host which performed the conversion. It contains detailed error messages from low-level operations executed by VDSM, and is useful if the error was not caused by virt-v2v, but by VDSM. =item F This log file is stored on the oVirt server. It contains more detail for any errors caused by the oVirt GUI. =back =head1 SEE ALSO L. =head1 AUTHOR Richard W.M. Jones =head1 COPYRIGHT Copyright (C) 2009-2025 Red Hat Inc. ================================================ FILE: docs/virt-v2v-release-notes-1.42.pod ================================================ =head1 NAME virt-v2v-release-notes - virt-v2v release notes for 1.42 =head1 DESCRIPTION These are the release notes for S>, released on S>. =head2 New features This is the first release where virt-v2v lives in a separate repository from libguestfs. The two projects are now broadly decoupled from one another. Add a new I<-o json> output mode. Primarily this is used to do conversions to KubeVirt (Pino Toscano). Use new libvirt CfirmwareE> feature to get the source guest firmware (Pino Toscano). virt-v2v I<-o rhv-upload> new option I<-oo rhv-disk-uuid> allows disk UUIDs to be specified. Also I<-oo rhv-cafile> is now optional (Pino Toscano). Conversions over ssh now use L instead of the QEMU ssh driver. Similarly L is used instead of the QEMU curl driver. This allowed us to add more flexible features such as password authentication, bandwidth throttling (new I<--bandwidth> option), readahead, and automatic retry on network failures. For Windows guests, QEMU Guest Agent MSI may now be installed (Tomáš Golembiovský). =head2 Other fixes In I<-o libvirt> mode, support Windows Server 2019 (Pino Toscano). Fix Ubuntu Server conversions (Pino Toscano). Fix installation of qemu-ga by only installing arch-specific files in the guest (Pino Toscano). Delay installation of qemu-ga until after virtio-win drivers have been installed and rebooted (Tomáš Golembiovský). Save the log from running RHEV-APT installer to allow debugging (Tomáš Golembiovský). Check RHV cluster exists before trying to convert when using I<-o rhv-upload> mode. Also allows us to detect and reject various other conditions early. (Pino Toscano). Label nbdkit sockets correctly for SELinux/sVirt (Martin Kletzander). You can use a block device as the Windows virtio driver ISO. Multiple fixes to RHV uploads: Set C field correctly when converting to RHV and VDSM. Properly clean up on failure. Display disk ID in error messages, and log script parameters, to help with debugging. Multiple code cleanups. (Nir Soffer). Support conversions to RHV in qcow2 format (Nir Soffer). Fix detection of disk status and failures after conversion to RHV (Daniel Erez). Cancel disk transfer and remove uploaded disks on failure of conversion to RHV (Pino Toscano). Images containing small holes (sparse regions) should now convert faster (Nir Soffer). The L is used to accelerate sources which have slow sparseness detection, primarily this means VMware sources using VDDK (Martin Kletzander). Require at least 100 free inodes on each guest filesystem before doing conversion, since lack of inodes could cause conversion failures (Pino Toscano). Fix osinfo output for CentOS 8 conversions (Pino Toscano). VMware tools are now removed from Windows guests automatically in most cases (Pino Toscano). I<-i ova> mode no longer reads the whole input OVF into memory, but parses it off disk (Pino Toscano). When converting to OpenStack, we now wait up to 5 minutes (instead of 60 seconds) for the Cinder volume to get attached to the conversion appliance, since in some cases it was taking a long time. If using a new enough version of nbdkit, virt-v2v logs should be much less verbose. =head2 Security There were no security-related bugs found in this release. =head2 Build changes Libguestfs E 1.40 is required, it is now packaged and distributed separately from virt-v2v. For developers you can use a locally built (and not installed) copy of libguestfs. Libvirt is now required to build virt-v2v. Additionally you will require the OCaml bindings to libvirt (L), although a copy is bundled for now (it will be removed later). (Pino Toscano). Libosinfo is required to build virt-v2v. It is used to query information about guest drivers. (Pino Toscano). Fixes for OCaml E 4.10. The minimum version of OCaml required is still 4.01, but may be increased to 4.05 in future. Test conversions of Debian 9 and Fedora 29 (Pino Toscano). Various fixes to srcdir != builddir (Pino Toscano). Remove gnulib modules not used by virt-v2v (Pino Toscano). =head2 Internals When converting SUSE guests, always try to install QXL driver (Mike Latimer). Two new modules (Nbdkit and Nbdkit_sources) factor out generic nbdkit operations and nbdkit source operations respectively. Format Python code to comply with PEP 8 / pycodestyle (Pino Toscano). Tests have been moved to the F subdirectory, and manuals to the F subdirectory. =head2 Bugs fixed =begin comment https_proxy= ./bugs-in-changelog.sh v1.40.0.. =end comment =over 4 =item L virt-v2v does not install qemu-ga on EL8 guest =item L update-crypto-policies command example is incorrect in virt-v2v-input-xen =item L [RFE] Make the rhv-cafile optional =item L Should remove info about "Remove VMware tools from Windows guests" in virt-v2v-input-vmware man page =item L Can't import guest from export domain to data domain on rhv4.3 due to error "Invalid parameter: 'DiskType=1'" =item L virt-v2v: Use scp -T in -i vmx -it ssh mode =item L Delete info "export PATH=/path/to/nbdkit-1.1.x:$PATH" in virt-v2v-input-vmware manual page =item L virt-v2v should show a message when qemu-guest-agent is installed in guest successfully during conversion =item L virt-v2v fails to import a guest while cannot find `file_architecture` for a file =item L [v2v][RHV][Scale] v2v Migration to RHV failed on timed out waiting for transfer to finalize =item L Unable to maintain static IP address configuration post VM migration =item L Guest has no disk after rhv-upload converting if target data domain has similar name with other data domain on rhv4.2 =item L Update nbdkit info for vddk in v2v man page =item L On W2K12r2 rhev-apt does not run non-interactively, causing race when starting rhev-apt service from the command line =item L Macvtap network will be lost during v2v conversion =back =head1 SEE ALSO L. Previous release notes covering virt-v2v can be found in the libguestfs project: L. =head1 AUTHORS Daniel Erez Richard W.M. Jones Tomáš Golembiovský Martin Kletzander Mike Latimer Nir Soffer Pino Toscano Ming Xie =head1 COPYRIGHT Copyright (C) 2009-2025 Red Hat Inc. ================================================ FILE: docs/virt-v2v-release-notes-2.0.pod ================================================ =head1 NAME virt-v2v-release-notes - virt-v2v release notes for 2.0 =head1 DESCRIPTION These are the release notes for S>. This describes the major changes since 1.42. No release notes were published for 1.44, so that release is covered here. Virt-v2v 2.0.0 was released on S>. =head2 Security There were no security-related bugs found in this release. =head2 New features Virt-v2v has been modularised allowing external programs to examine the state of the conversion and inject their own copying step. Further enhancements will be made to this new architecture in forthcoming releases. The command line is almost identical apart from some debugging features that were removed (see below). The only significant difference is that the output format (I<-of>) now has to be specified if it is different from the input format, whereas previous versions of virt-v2v would use the same output format as input format automatically. A lot of time was spent improving the performance of virt-v2v in common cases. Implement conversion of ALT Linux guests (Mikhail Gordeev). Many bug fixes and performance enhancements were made to oVirt imageio output (Nir Soffer). There is a new L tool which replaces the existing virt-v2v I<--in-place> option. Virt-v2v can now convert guests which use LUKS encrypted logical volumes (Laszlo Ersek). Option I<-oo rhv-direct> has been replaced by I<-oo rhv-proxy>, and direct mode (which is much faster) is now the default when writing to oVirt, with proxy mode available for restricted network configurations (thanks: Nir Soffer). The following command line options were removed: I<--print-estimate>, I<--debug-overlays>, I<--no-copy>. Virt-v2v no longer installs the RHEV-APT tool in Windows guests. This tool was deprecated and then removed in oVirt 4.3. Deprecated tool virt-v2v-copy-to-local has been removed. This was deprecated in November 2018. =head2 Other fixes Remove reference to prl_strg driver in Windows guests to avoid BSOD (Denis Plotnikov). Fix conversions of UEFI Linux guests that don't provide their own fallback bootloader (Denis Plotnikov). Remove use of L. This filter uses a naive strategy and it had several negative effects on conversions. Remove prompts for interactive passwords. Normally you should try to use the I<-ip> and/or I<-op> options to supply passwords. For Windows guests, we insert a schtasks command. However the parameters of this command are timezone dependent and so it failed in non-European timezones. (Thanks: Dinesh Herath, Tomáš Golembiovský, Bryan Kinney, Mark Zealey, Xiaodai Wang) Virt-v2v will reauthenticate with vCenter servers periodically when copying guests over HTTPS which stops large guests and/or slow copies taking longer than about 30 minutes from failing. Virt-v2v now sets libguestfs SMP to match number of physical host CPUs, which helps performance of certain conversion steps. Virt-v2v output to oVirt now attempts to set the machine and firmware type correctly. Note an exact mapping is not always possible and oVirt may ignore our recommendations (incorrectly) sometimes. Virt-v2v now generates a virtio-vsock device for guests which support it (Valeriy Vdovin). All guests now need at least 100 MB of free space for conversion to succeed (Ming Xie). Standard VGA instead of QXL is now used as the video type for converted guests (Laszlo Ersek). Older guests (eg RHEL 6) will use the virtio-transitional model after conversion. This feature and the machine type are now usually determined from the libosinfo database, falling back to hard-coded values if libosinfo is not available (Laszlo Ersek). When virt-v2v prints messages to a pipe or file it no longer wraps them, making parsing simpler. You can enable wrapping in this mode using I<--wrap> (Laszlo Ersek). Windows guest firstboot scripts installed by virt-v2v now run in the right order, making network configuration happen earlier (Laszlo Ersek). =head2 Build changes libguestfs E 1.44 is now required. L and OCaml NBD bindings, both from libnbd E 1.10, are now required. nbdkit E 1.22 is now required (Nir Soffer). pcre2 (instead of pcre) is now required. gnulib is no longer bundled or used by virt-v2v. OCaml E 4.04 is now required. OCaml 4.13 support has been added in this release. OpenSSH scp E 8.8 is now required. Earlier versions will fail because the command line syntax was changed incompatibly. =head2 Internals Weblate instead of Zanata is now used for translations (Pino Toscano). =head2 Bugs fixed =begin comment https_proxy= ./bugs-in-changelog.sh v1.42.0.. =end comment =over 4 =item L Missing error message of 'insufficient free space in the conversion server temporary directory' =item L nbdinfo output to stdout instead of stderr during virt-v2v conversion =item L virt-p2v conversion hangs with RHEL9 virt-v2v =item L 'model='virtio-transitional' is wrongly added when converting windows guest to local by rhel9 v2v =item L virt-v2v hangs for several minutes when using -ic vpx://... -it vddk with incorrect IP address =item L Improve the unclear assertion failure at input_xen_ssh.ml =item L Can not specify '-oo json-disks-pattern' in '-o json' mode =item L Failed to import VM when selecting OVA as a source on RHV webadmin =item L Conversion performance is not good when convert guest by modular virt-v2v =item L calling "get_disk_allocated" in "create_ovf" breaks the rhv-upload output plugin =item L RFE: Remove -oo rhv-direct and add -oo rhv-proxy option =item L nbdcopy command failed when using v2v to convert guest from ESXi6.5 via vddk > 6.5 + rhv-upload to rhv4.4 =item L Add virt-v2v and libvirt version to the beginning of v2v debug log =item L V2V can't convert guest from VMware via vmx+ssh when openssh version is 8.7p1-5 =item L There is no guest listed in export domain if use v2v to convert guest to rhv via -o rhv =item L virt-v2v can't convert bitblocker windows guest with libguestfs error: /dev/mapper/cryptsda: No such file or directory =item L The usage description of '-oo rhv-disk-uuid=UUID' in man virt-v2v should be updated =item L [RFE] Drop QXL for guests on CentOS 9 clusters =item L [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 =item L Update privileges for Non-admin vmware role when ESXi host has enabled host encryption mode in virt-v2v-input-vmware man page =item L virt-v2v can't install qemu-guest-agent for rhel9 guest during conversion =item L assertion failed at parse_ova.ml when ova directory ends with '/' =item L Change video type from qxl to vga after v2v conversion =item L v2v import from vCenter fails when using interactive password because cookie-script tries to be interactive =item L Should 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 =item L Delete or improve the warning info about rhev-apt during v2v converting windows guest on rhel9 =item L Virt-v2v should add 'model='virtio-transitional' to RHEL <=6 guest virtio devices during conversion if target is rhel9 system =item L "virt-v2v: warning: there is no QXL driver for this version of Windows" still shows, even though we copied qxldod driver to the guest =item L VMware tools not getting uninstalled as part of IMS =item L Should hidden "virt-v2v: warning: /usr/share/virt-tools/pnp_wait.exe is missing.."during conversion =item L VDDK 6.7 repeatedly reconnects with nbdkit: vddk[1]: debug: NBD_ClientOpen: attempting to create connection to vpxa-nfc:// followed by virt-v2v failure =item L After virt-v2v, qemu-ga does not run at Windows firstboot if the timezone is not M/d/yyyy format =item L Should correct info about 'UEFI on OpenStack' in virt-v2v-support man page =item L Virt-v2v should convert UEFI guest to openstack via openstack option successfully =item L RFE: Should clarify which file is correct authentication file for openstack/glance conversion in virt-v2v-output-openstack man page =item L Ceph block device will be destroyed if v2v convert guest to ceph block device and guest disk size is greater than ceph block device =item L RFE: virt-v2v should check the ip info when specify guest's ip =item L V2V option --keys-from-stdin gives error: getline: Inappropriate ioctl for device =item L document that vmx+ssh "-ip" auth doesn't cover ssh / scp shell commands =item L nbdkit cannot read the password interactively when started from virt-v2v =item L Option --bandwidth and --bandwidth-file isn't working as expected during v2v conversion =item L There is no info "Opening the source -i libvirt -ic vpx://..." shown if any IP is wrong in vpx:// URL during v2v conversion =item L V2V doesn't ask password if there is no option about password file in v2v command line =item L [RFE]Remove cache=none for guest after v2v converting to libvirt =item L Virt-v2v cannot convert guest from ESXI7.0 server without vddk =item L v2v 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 =item L virt-v2v should give more clear error info when use some special invalid uuids for disks =item L Virt-v2v firstboot scripts should run in order, with v2v network configuration happening first =item L V2V conversion fails when a filesystem has no free inodes =item L Virt-v2v can't convert guest using LUKS-on-LV =item L q35 switch caused: error: unsupported configuration: IDE controllers are unsupported for this QEMU binary or machine type =item L virt-v2v use Q35 as default machine-type =item L New way of parsing OVF from OVA that was created by VMware fails. =back =head1 SEE ALSO L, L, L. =head1 AUTHORS Authors of virt-v2v 2.0: =begin comment git shortlog -s v1.42.0.. =end comment =over 4 =item Denis Plotnikov =item Kevin Locke =item Laszlo Ersek =item Martin Kletzander =item Mikhail Gordeev =item Nir Soffer =item Pino Toscano =item Richard W.M. Jones =item Valeriy Vdovin =back =head1 COPYRIGHT Copyright (C) 2009-2025 Red Hat Inc. ================================================ FILE: docs/virt-v2v-release-notes-2.10.pod ================================================ =head1 NAME virt-v2v-release-notes - virt-v2v release notes for 2.10 =head1 DESCRIPTION These are the release notes for S>. This describes the major changes since 2.8. Virt-v2v 2.10.0 was released on S>. =begin comment =head2 Security =end comment =head2 New features In I<-o kubevirt> output mode, new I<-oo disk> and I<-oo create> options let you respectively override the output disk names, and avoid disk creation, letting you pre-create disks before running virt-v2v. For VDDK sources: =over =item * A new I<-io vddk-compression> option lets you enable compression for data read over the network. =item * I<-io vddk-thumbprint> is now optional. If omitted, virt-v2v will automatically work it out from the VMware server. =back New I<--memsize> and I<--smp> options which let you override the default amount of memory and number of vCPUs assigned to the appliance. For certain complex guests it is occasionally necessary to adjust these, although usually virt-v2v should do the right thing automatically. L now detects Windows Antivirus and Group policy, and if found adds Cwindows_antivirus/E> and Cwindows_group_policy/E> elements respectively. =head2 Features removed The following virt-v2v options have been removed: =over 4 =item I<-io vddk-noextents> This was an undocumented troubleshooting option. Any uses of it can simply be removed. =item I<--sm*> options The Red Hat Subscription Manager customization options did not work and have been removed (Cole Robinson). =back =head2 Other fixes When checking ext4 filesystems before conversion, replay the dirty log to avoid e2fsck failing (thanks Ming Xie). When checking XFS filesystems before and after conversion, cap the amount of memory used by the L utility (thanks Ming Xie, Eric Sandeen). For output modes that write to local disk, in debugging output we now report the amount of space on the local (host) disk, in order to make it easier to debug certain out of space problems (thanks Martin Necas, Alex Kalenyuk). Use L (if installed). In debugging mode this will print a summary of the number of bytes read, written, trimmed and zeroed when copying the guest, which can be useful when you want to know how much data was sent over the wire by virt-v2v. For Windows virtio driver installation: =over 4 =item * Fix this when there is a pending Windows Update (Vadim Rozenfeld). =item * Fix this when Windows changes the timezone during firstboot (Vadim Rozenfeld). =item * Skip driver installation when a newer/better virtio driver is already installed (Vadim Rozenfeld). =item * Slightly modify how we patch the regsitry so that we don't break both Windows Update and C driver enumeration. =back Display the versions of libnbd and nbdcopy in debugging output. Fix SELinux relabelling for guests which use a separate F partition (thanks Germano Veit Michel, Ming Xie). We now attempt to generate correct boot order for Linux BIOS guests. This is necessary with current SeaBIOS so that it initializes the correct boot disk, allowing the guest to boot if the bootloader is not on the first disk. Name nbdkit subprocesses using the new I<--name> option in S 1.46>. This allows debugging and error messages from different nbdkit instances to be distinguished in log files. A virtual floppy disk is no longer added to the output guest if qemu does not support it, even if the input guest has a floppy disk (Cole Robinson). During conversion of Windows guests, if we have to create S>, it is now created read-only for non-Administrator accounts (Cole Robinson). For RHEL 7.2 conversions, ignore archived LVM VG configuration files, which previously caused a crash in Augeas during conversion (thanks Sean Haselden, Alasdair Kergon). Handle .vmdk files in subdirectories on the ESXi server (thanks Ming Xie). Fix UEFI conversions of Windows guests if F exists but has a different upper/lowercase from the directory that Windows normally creates. =head2 Documentation Refactored and improved documentation (thanks Ming Xie). Link from L directly to official VMware documentation for removing VMware Tools. =head2 Build changes libguestfs E 1.58 is required. nbdkit E 1.46 is required. Update C ("slow tests") so we test more recent guest types. We now test Windows UEFI conversions in the test suite. C<./configure> output has been colourized. New configure I<--disable-block-driver>, I<--disable-glance>, I<--disable-ovirt> and I<--disable-xen> options allowing you to disable those features at compile time. Basic github CI has been implemented. Pull requests now do the equivalent of C<./configure --enable-werror && make && make check> on a few common platforms. =head2 Internals The internal podwrapper tool used to process the documentation now has a new I<--pp> to allow a preprocessor to be used. In particular we now use L to preprocess some documentation. In F, C<$(NULL)> can be used as a list terminator. This improves patch application. =head2 Bugs fixed =begin comment ./bugs-in-changelog.sh v2.8.0.. =end comment =over 4 =item L Installing drivers on firstboot sometimes fail with PnP service not available [rhel-9.7] =item L RFE: Allow -o kubevirt disks to be specified =item L virt-v2v can't convert guest with multiple disks from VMware since nbdkit-1.44.0-1 =item L Change permission of guestfs folder created =item L selinux-relabel doesn't work across filesystem boundaries (because setfiles doesn't) [rhel-9.7] =item L RFE: Set boot order for Linux BIOS guests based on grub location [rhel-10.1] =item L RFE: Set boot order for guests in -o kubevirt output mode [rhel-10.1] =item L guestfs crashed when running aug-init during a conversion =item L v2v can't convert guest with multiple windows OS on rhel10 =item L Windows migration failed: mkdtemp: /Windows/Temp/ESP_XXXXXX: No such file or directory [rhel-10.2] =item L setfiles runs out of memory in glibc fts_read [rhel-10.2 doc fix] =item L virt-inspector detect if AV/GPOs are present in a VM [virt-v2v] =item L Should remove floppy device for the guest after v2v conversion [rhel-10.2] =item L Virt-v2v fails to convert some guests with libguestfs error: e2fsck =item L Improve the error info when converting a guest with less than 100 inodes by virt-v2v =item L Improve info about guest must not be running or must be shut down in virt-v2v related man page [rhel-10.1] =item L Please implement nbdkit-vddk-plugin's compression parameter in virt-v2v =back =head1 SEE ALSO L. =head1 AUTHORS Authors of virt-v2v 2.10: =begin comment git shortlog -s v2.8.0.. =end comment =over 4 =item Alan Alberghini =item Cole Robinson =item Fco. Javier F. Serrador =item Richard W.M. Jones =item Ricky Tigg =item Vadim Rozenfeld =item Yuri Chornoivan =back =head1 COPYRIGHT Copyright (C) 2009-2026 Red Hat Inc. ================================================ FILE: docs/virt-v2v-release-notes-2.2.pod ================================================ =head1 NAME virt-v2v-release-notes - virt-v2v release notes for 2.2 =head1 DESCRIPTION These are the release notes for S>. This describes the major changes since 2.0. Virt-v2v 2.2.0 was released on S>. =head2 Security When running virt-v2v as root, NBD Unix domain sockets in the v2v directory were openable by any user. We now set the directory owner so only qemu can access the sockets. See: https://bugzilla.redhat.com/show_bug.cgi?id=2066773 (thanks Xiaodai Wang, S, Daniel Berrangé, Laszlo Ersek). =head2 New features New L tool. This tool can be used before conversion to collect facts about the source guest, such as number of disks, and to estimate the disk space required after conversion. Add support for NVMe devices and SATA hard disks when importing from VMware VMX files (Laszlo Ersek). Add support for importing to KubeVirt using the new B I<-o kubevirt> mode. Windows 11 guests are now supported. Rocky Linux guest support has been added (Andrey Drobyshev). =head2 Feature removed The I<-o json> mode was removed. It was intended to be used with KubeVirt but was never actually used there. Use I<-o kubevirt> instead. =head2 Other fixes Fix detection of virtio-socket support in Linux guests (Laszlo Ersek). In addition, a semi-random guest CID is chosen in I<-o qemu> mode, avoiding an error. Allow importing OVAs where the user or group name inside the tarball contains a space (Jiří Sléžka). Reject guests with snapshots when using -i vmx -it ssh (Laszlo Ersek). Improve documentation for the need to enable PasswordAuthentication on the server side when importing over SSH (Laszlo Ersek). Don't use the deprecated qemu I<-balloon> option. This caused deprecation warnings with I<-o qemu> mode. Use I<-device> instead. Rewrite device mapping in I<-o qemu> mode, removing some strange / non-existent cases like SCSI floppies. This should result in more consistent device layout when using this mode (Laszlo Ersek). Remove more left over open-vm-tools packages from Linux guests (Tim Kent). In I<-o rhv-upload> mode, do not return until the VM has been created (Tomáš Golembiovský). Greatly improved vCPU model handling (Laszlo Ersek). Document extra permissions needed for non-admin conversion with S (Ming Xie). QEMU guest agent is now installed unconditionally and where possible a virtio-serial socket is created in the guest metadata (Laszlo Ersek). In the various RHV output modes, the number of disks is now limited to 23. RHV doesn't support anything greater and would break (Laszlo Ersek). I<-oo compressed> is now working again. It was temporarily broken in virt-v2v 2.0. The documentation no longer advises you to use the dangerous global "LEGACY crypto" option, but provides more targeted advice (Laszlo Ersek). Remove the LVM2 devices file during conversion (Laszlo Ersek). Add support for guests using Zstandard compressed kernel modules. Add the BOCHS DRM display driver in Linux guest initrd, to avoid a crash with some guests with graphical boot displays (Laszlo Ersek). The UEFI fallback boot loader is now fixed up if we detect that it was broken (Laszlo Ersek). Improve detection of guests using BIOS boot with GPT partitions so that we no longer confuse them with UEFI guests (Andrey Drobyshev). Fix conflict between fwcfg and qemufwcfg Windows drivers (Laszlo Ersek). Fix Windows 11 support for RHV outputs (Laszlo Ersek). =head2 Build changes Enable malloc debugging in tests with glibc E 2.34. When using C, valgrind output is no longer written to separate files under F. Instead it is written to the normal test log file. We now require ocamldep I<-one-line> and I<-all> options (added to ocamldep in Jan 2012). The OCaml libvirt bindings are no longer bundled. They must be available at build time. Updated the phony test images. The tests should all pass. Add compatibility with OCaml 4.14. We now require PCRE2 instead of PCRE. =head2 Internals New LUKS-on-LVM test added (Laszlo Ersek). Added F which orders files when we prepare patches. =head2 Bugs fixed =begin comment https_proxy= ./bugs-in-changelog.sh v2.0.0.. =end comment =over 4 =item L v2v should set ovirt:id correctly after converting windows11/2019/2022 guests to rhv via -o rhv-upload =item L qemufwcfg device cannot start or has no driver after v2v converting windows guests =item L The version of Win 11/Win 2019/Win 2022 shows incorrect on RHV after virt-v2v conversion =item L Copy newer versions of drivers for Win 11/Win 2019/Win 2022 during virt-v2v conversion =item L Win 2022 fails to boot after virt-p2v conversion from physical host with nvme disk =item L RHEL7 UEFI guest turns into black after v2v conversion =item L virt-v2v: error: internal error: assertion failed at linux_kernels.ml, line 190, char 11 =item L RHEL9 guest hangs during boot after conversion by virt-p2v =item L RHEL 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" =item L "/dev/nvme0n1" is not remapped to "/dev/vda" (etc) in boot config files such as "/boot/grub2/device.map" =item L Virt-v2v can't convert rhel8.6 guest from VMware on rhel8.6 =item L virt-v2v -o qemu prints cosmetic warning: "warning: short-form boolean option 'readonly' deprecated" =item L RHEL9.1 guest can't boot into OS after v2v conversion =item L -o qemu mode fails with: qemu-system-x86_64: -balloon: invalid option and other problems =item L do not pass "--non-bootable --read-write" to "volume create " in openstack output module =item L Virt-v2v can't convert guest when os is installed on nvme disk via vmx+ssh =item L fix virtio-vsock check (for Linux guests) in virt-v2v =item L Import of OVA fails if the user/group name contains spaces =item L The /tmp/v2v.XXXX directory has incorrect permission if run v2v by root =item L RFE: Virt-v2v should replace hairy "enable LEGACY crypto" advice which a more targeted mechanism =item L RFE: Rebase virt-v2v to 2.0 in RHEL 9.1 =item L [RFE]Limiting the maximum number of disks per guest for v2v conversions =item L Add '--compressed' support in modular v2v =item L Install the qemu-guest-agent package during the conversion process =item L There 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 =item L Start or remove VM failure even v2v has already finished =item L No error shows when using virt-v2v -o rhv to convert guest to data domain =item L -i vmx -it ssh: document percent encoding in ssh URIs =item L -i vmx: SATA disks are not parsed =item L document that vmx+ssh "-ip" auth doesn't cover ssh / scp shell commands =item L Can't convert guest from VMware with non-admin account and vddk >=7.0 by virt-v2v =item L input_vmx: cleanly reject guests with snapshots when using "-it ssh" =back =head1 SEE ALSO L, L, L, L. =head1 AUTHORS Authors of virt-v2v 2.2: =begin comment git shortlog -s v2.0.0.. =end comment =over 4 =item Andrey Drobyshev =item Emilio Herrera =item Ettore Atalan =item Hela Basa =item Jan Kuparinen =item Laszlo Ersek =item Marcin Stanclik =item Ming Xie =item Pavel Borecki =item Piotr Drąg =item Richard W.M. Jones =item Ricky Tigg =item Temuri Doghonadze =item Tim Kent =item Tomáš Golembiovský =item Yuri Chornoivan =back =head1 COPYRIGHT Copyright (C) 2009-2025 Red Hat Inc. ================================================ FILE: docs/virt-v2v-release-notes-2.4.pod ================================================ =head1 NAME virt-v2v-release-notes - virt-v2v release notes for 2.4 =head1 DESCRIPTION These are the release notes for S>. This describes the major changes since 2.2. Virt-v2v 2.4.0 was released on S>. =begin comment =head2 Security =end comment =head2 New features New I<--block-driver> option which can be used to choose to install either virtio-blk or virtio-scsi drivers (Andrey Drobyshev). The virt-v2v I<--key> option now recognizes LVM names like F (Laszlo Ersek). The I<--key> option also supports a new S> selector to try the same key on all devices. =head2 Feature removed Support for RHEL 3 conversions has been removed. =head2 Other fixes Conversions now set the C CPU in the output metadata, except where the source hypervisor overrides this. The exception is I<-o qemu> mode which uses I<-cpu host>. (Thanks Ming Xie, Laszlo Ersek, Dr. David Alan Gilbert, Daniel Berrangé) virt-v2v will now look for bootloader configuration in F for UEFI guests (Andrey Drobyshev). Invoke pnputil (if available) to install drivers, fixing some Windows conversions (Andrey Drobyshev). Skip SELinux relabelling if the guest has disabled SELinux (Roman Kagan). Several output modes now generate metadata to indicate whether the guest requires the RTC to be set to UTC (Linux) or localtime (most Windows). For example with I<-o libvirt> this generates Sclock offset="utc|localtime"/E>. (Thanks Lee Garrett, Laszlo Ersek) I<-i ova> mode is now less strict about parsing the manifest file, which helps when converting some non-conforming OVA files. Input modes using I<-it ssh> now use the correct quoting (thanks Bill Sanders, Laszlo Ersek). I<-i vmx> mode now rejects VMDK files explicitly, reducing a source of user confusion (thanks Ming Xie). Multiple fixes to I<-o kubevirt> mode. Also implement I<-oo compressed> for this mode. (Thanks Xiaodai Wang, Ming Xie) I<-o libvirt> mode now supports Rocky Linux (thanks Ming Xie). I<-o openstack> documentation for cloud configurations fixed (thanks Ming Xie). I<-o rhv-upload> mode has an improved error when the I<-os> parameter is invalid or missing (thanks Junqin Zhou). =head2 Build changes Support for OCaml 5, and OCaml E 4.07 is now the minimum (thanks Guillaume Munch-Maccagnoni, Jerry James, Josh Berdine, Jürgen Hötzel, Vincent Laviron). Fix several tests so they can handle the case where the operating system does not support btrfs or NTFS, instead of failing (Laszlo Ersek). Fix compatibility issues with libxml2 2.12. =head2 Internals Fix an off-by-one error which caused very rare crashes in virt-v2v. =head2 Bugs fixed =begin comment https_proxy= ./bugs-in-changelog.sh v2.2.0.. =end comment =over 4 =item L improve UX when running as root and we can't chown v2v tmpdir or socks =item L virt-v2v failed to inspect RHEL9.2 guest due to kernel-core / kernel-modules-core subpackage split =item L Modify virt-v2v-output-openstack man page to add cloud.yaml related information =item L RFE: Virt-v2v should recognize partition names like '/dev/mapper/rhel boot--73--75--123-root' in related keys option =item L win11/2022 failed to start into OS after converting to local libvirt via virt-v2v on AMD EPYC-Milan CPU model host =item L kernel panic when booting into OS with rocky9 guest converted by v2v to local libvirt =item L There is virt-v2v: warning: unknown guest operating system: linux rocky 9.1 x86_64 when convert rocky guests to local libvirt =item L Enable '--oo compressed' for -o kubevirt =item L -o kubevirt mode must rename guest to comply with KubeVirt requirements: metadata.name: Invalid value: "esx8.0-rhel8.8-x86_64": a lowercase RFC 1123 subdomain must consist of lower case alphanumeric characters, '-' or '.', and must start and end with an a =item L Improve error message when converting to rhv using the wrong data domain name which has a specific character =back =head1 SEE ALSO L. =head1 AUTHORS Authors of virt-v2v 2.4: =begin comment git shortlog -s v2.2.0.. =end comment =over 4 =item Andrey Drobyshev =item Emilio Herrera =item grimst =item HATAYAMA Daisuke =item Jan Kuparinen =item Jürgen Hötzel =item Laszlo Ersek =item Pavel Borecki =item Piotr Drąg =item Richard W.M. Jones =item Roman Kagan =item Temuri Doghonadze =item Yuri Chornoivan =back =head1 COPYRIGHT Copyright (C) 2009-2025 Red Hat Inc. ================================================ FILE: docs/virt-v2v-release-notes-2.6.pod ================================================ =head1 NAME virt-v2v-release-notes - virt-v2v release notes for 2.6 =head1 DESCRIPTION These are the release notes for S>. This describes the major changes since 2.4. Virt-v2v 2.6.0 was released on S>. =begin comment =head2 Security =end comment =head2 New features You can now use most L options, such as installing arbitrary firstboot scripts, uploading or editing files, etc. during conversions. Installation of QEMU Guest Agent in Windows guests has been revised and made much more reliable. Note that a visible effect of this change is that Windows guests may reboot four or more times during the first boot after conversion (which is necessary). (Thanks Vadim Rozenfeld, Konstantin Kostiuk, Yuri Benditovich, Yan Vugenfirer). We now forcibly online all virtio disks during firstboot, working around a security mitigation in recent versions of Windows that offlines them if they change bus (Martin Necas). QEMU Balloon Server (blnsvr) is now installed in Windows guests, if found on the virtio-win ISO. This improves statistics gathering for these guests. Add support for Circle Linux (Bella Zhang). Add some support for LoongArch guests (liuxiang). =begin comment =head2 Feature removed =end comment =head2 Other fixes I<-i ova> mode now uses the detected guest firmware, if it's not specified in the OVA metadata (Bella Khizgiyaev). I<-o kubevirt> output mode has been substantially changed to fix multiple problems. It should be more compatible with real KubeVirt instances now. (Thanks Arik Hadas, Bella Khizgiyaev, Lee Yarwood, Martin Necas). I<-o libvirt> mode now includes an Eos firmwareE attribute specifying whether the guest needs BIOS or UEFI to boot. The output of L has been revised, with much more metadata available. The I<--mac> option now allows the gateway and network mask length to be empty (Arik Hadas). The debug output of virt-v2v has been improved. Now when searching the log for important events, you can just use the regular expression C =head2 Build changes We no longer require external ssh/scp commands for input mode I<-i vmx>. Instead we use L (this is not a new requirement as it is already being used for file transfer). This makes remote file detection more predictable, and also allows the I<-ip> option to be used to specify a password. (Thanks Ming Xie, Laszlo Ersek). OCaml bytecode compilation now outputs the whole exe to make it more resistant to being stripped (Jerry James). Multiple test files which were copied over from libguestfs but not actually used by virt-v2v tests have been deleted. =head2 Internals Added a test for I<-o kubevirt> mode. =head2 Bugs fixed =begin comment ./bugs-in-changelog.sh v2.4.0.. =end comment =over 4 =item L document that vmx+ssh "-ip" auth doesn't cover ssh / scp shell commands =item L Exact string (including the literal *) should be used when converting guest via vmx by v2v =item L Missing firmware type for kubvirt and local output =item L Virt-v2v can't convert guest from maintained ESXi hosts with vddk > 6 =item L Migrated Windows VMs require the BLNSVR.exe service to be installed for accurate memory reporting =item L Re-add the info about non-interactive authentication back into virt-v2v-input-xen =item L Missing OS info for kubevirt output =item L qemu-guest-agent not being installed at first boot in Windows Server 2022 =item L Allow --mac gw and len fields to be optional =item L Uninstalling vmware-tools from windows guest sometimes fails with exit code 1618 or exit code 1603 =item L network configuration script does not work for Windows 10 i386 guest =item L Re-enable Windows disks post-live migration [rhel-9.5] =item L Re-enable Windows disks post-live migration [rhel-9.4.z] =item L window version shows incorrect during converting win11 guest with build number 22631 by virt-v2v =item L v2v: The -o kubevirt firmware is not compatible with kubevirt api =item L rhv-upload broken since Ovirt 4.5, cause Basic Auth has been removed =item L virt-v2v missing firmware type for kubvirt and local output =item L Clustername not working when on same Data Center, sharing same storage domains =back =head1 SEE ALSO L. =head1 AUTHORS Authors of virt-v2v 2.6: =begin comment git shortlog -s v2.4.0.. =end comment =over 4 =item Andi Chandler =item Bella Khizgiyaev =item Bella Zhang =item Jerry James =item liuxiang =item Nir Soffer =item Richard W.M. Jones =item Schamane187 =item Thorsten Bolten =item Yuri Chornoivan =back =head1 COPYRIGHT Copyright (C) 2009-2025 Red Hat Inc. ================================================ FILE: docs/virt-v2v-release-notes-2.8.pod ================================================ =head1 NAME virt-v2v-release-notes - virt-v2v release notes for 2.8 =head1 DESCRIPTION These are the release notes for S>. This describes the major changes since 2.6. Virt-v2v 2.8.0 was released on S>. =begin comment =head2 Security =end comment =head2 New features New L tool. This can be used to open the virt-v2v source and run a user program on it. For example L or L can be used to examine the source to discover what operating systems or files are present before conversion. Windows Server 2025 is supported (thanks Ming Xie). Two features have been added to enhance data integrity. Firstly you can specify a CchecksumE> field for each input disk (when importing from libvirt). Virt-v2v will verify the checksum of the actual disk matches the expected checksum. Secondly virt-v2v in debug mode now computes the blkhash (a type of checksum) of the converted disk and prints it out, allowing you to compare the blkhash with the final output. The UEFI secureboot property is now modelled correctly, and (for outputs which support it) is reflected in the output metadata (thanks Daniel Berrange, Andrea Bolognani, Ming Xie). Parallel disk copies are now possible, using the I<--parallel=N> option. The default behaviour is still to do serial copies. L has a new I<-O> option. This generates the same output as L, allowing callers to combine both passes into one. Virtio-win driver selection has been made more robust. It now selects the correct drivers to install in more cases, and avoids installing unnecessary debugging and SRIOV files. Libosinfo is no longer used for this as the osinfo metadata used had grown out of date. (Cole Robinson) We now check filesystem integrity (using tools like L) before and after conversion, to ensure both that we fully understand the filesystem before conversion and that no corruption has happened during conversion. At the moment this is only implemented for Btrfs, ext4 and XFS. =head2 Features removed Handling of I has been removed. This only applied to RHEL 3 and RHEL 4 guests being converted from very ancient versions of Xen (Cole Robinson). Some options that have been deprecated since 2018 and earlier were removed: =over 4 =item I<--compressed> Use I<-oo compressed> instead. =item I<--no-trim> This did nothing. =item I<--password-file> Use I<--ip> instead. =item I<--qemu-boot> Use I<-oo qemu-boot> instead. =item I<--vddk-*> Use I<--io vddk-*> instead. =item I<--vdsm-*> Use I<--oo vdsm-*> instead. =item I<--vmtype> This did nothing. =back The options I<-o rhv-upload> and I<-o rhv> have been renamed to I<-o ovirt-upload> and I<-o ovirt> respectively, although aliases for the other names remain. =head2 Other fixes Update support page to cover RHEL 10 and Windows Server 2025. When importing from libvirt sources, trim whitespace from around the CnameE> element, rather than creating a guest name containing that whitespace. We no longer overwrite the EFI grub2 wrapper file (FOSE/grub.cfg>) on Fedora E 34 and RHEL E 9.0. When removing packages during conversion, use yum, apt, and similar tools so that dependencies are also removed (Cole Robinson). When some rpm commands run in the context of the guest produced more than 4MB of output, virt-v2v conversions would fail. This has now been fixed (thanks Nijin Ashok). Virt-v2v is now compatible with guests that use dnf5. I<-i vmx> mode now supports importing guests with SATA-emulated disks. Converting from a VMware snapshot is now possible, when using VDDK, using the I options (thanks Martin Necas). Conversion failures when guest F is immutable are common enough that we have now documented this problem in the manual (thanks Dan Clark). Debug information now contains much more readable information about guest mountpoints, similar to the output of L. I<-o libvirt> mode no longer generates its own osinfo short IDs. Instead we use the osinfo short IDs from libguestfs inspection (Cole Robinson). Document how to activate Bitlocker for Windows 11 with vTPM (thanks Ming Xie). =head2 Build changes json-c is now required. This replaces Jansson which was previously used for parsing JSON input files. libguestfs E 1.56 is now required. OCaml E 4.08 is now required. libnbd E 1.14 is now required. nbdkit E 1.28 is now required, although it is better to use more recent versions where possible. OCaml oUnit is no longer used. We now assume that C<__attribute__((cleanup))> always works. This requires gcc or Clang. The configure option I<--with-virt-v2v-nbdkit-python-plugin> has been removed. It was only needed for very old versions of nbdkit and Python. Tests should no longer break if ntfs-3g is not supported by libguestfs. Fix compatibility with GNU gettext 0.25. =head2 Internals The tests were modified to use a set of common functions and remove use of the weird C<$TEST_FUNCTIONS> macro, similar to how we do it in nbdkit. The way we generate the phony virtio-win drivers (for testing) has been simplified. Also there are new regression tests to ensure that virt-v2v installs the correct set of driver files. (Cole Robinson). Phony Windows guests are now generated for several different versions of Windows, allowing more broad testing (Cole Robinson). Some deprecated autoconf macros are no longer used. L is no longer used, as it did not help performance now that we have switched to using L (thanks Martin Kletzander). With multi-disk guests, in some common cases we are now able to use a single L instance to read or write all disks, instead of needing to run an nbdkit instance per disk, which can greatly reduce the number of external processes that virt-v2v will run. The performance and results should not be different. To take full advantage of this you have to use nbdkit E 1.44. Several typos and spelling mistakes in the documentation were fixed (thanks Eric Blake). Duplicated code used to parse input (I<-i>) and output (I<-o>) options across the tools has been refactored in one place. Some internal OCaml List and String functions that we used have been replaced by ones from the OCaml stdlib, reducing code maintenance. =head2 Bugs fixed =begin comment ./bugs-in-changelog.sh v2.6.0.. # List below updated to b49ee1436870f720cd0a4aee7593f38fa9f4089f =end comment =over 4 =item L Document issues with upgrading Windows guests after conversion =item L Harden grub2-mkconfig to avoid overwriting /boot/efi/EFI/redhat/grub.cfg =item L v2v can't convert the guest if info "add_dracutmodules+=" network-legacy " is added to network-legacy.conf [rhel-9.6] =item L v2v: add output file after virt-v2v-in-place conversion [rhel-9.6] =item L Can't find drivers from virtio-win for win2025 guests during v2v conversion [rhel 10.0] =item L Can't find drivers from virtio-win for win2025 guests during v2v conversion [rhel 9.6] =item L [MTV] migration failed with module "network-legacy" configured in RHEL 8 guests =item L [RFE] Add secureboot info in kubevirt output [rhel-9.7] =item L RFE: Get the uefi.secureBoot.enabled setting from VMware sources [rhel-9.6] =item L Migration Plan / vddk pod cannot remove open-vm-tools in case of dependencies [rhel-9.6] =item L CentOS 9 Migration from VMWare to Openshift Virt fails [rhel-9.6] =item L Converting a SUSE VM will fail if the kernel-source package is installed in the source VM =item L Improve checksumming and data consistency checks in virt-v2v, libnbd, nbdkit =item L Print blkhash of converted image in virt-v2v debugging output [9.7] =item L Print blkhash of converted image in virt-v2v debugging output [10.1] =item L There is no nbdcopy info in v2v debug log since virt-v2v version 2.7.1-2 [rhel-9.7] =item L virt-v2v-inspector is failing on snapshots of running VMs [rhel-9.7] =item L Add possible roots to the virt-v2v-inspector output [rhel-9.7] =item L v2v can't convert win11-efi-secure guest with vtpm: "Activation of partially decrypted BITLK device is not supported" [rhel-9.6] =item L virt-v2v 2.7.4 error: libguestfs error: you must call guestfs_add_drive before guestfs_launch =item L Rename RHV to oVirt =back =head1 SEE ALSO L. =head1 AUTHORS Authors of virt-v2v 2.8: =begin comment git shortlog -s v2.6.0.. =end comment =over 4 =item Cole Robinson =item Krascovict Petrov =item Richard W.M. Jones =item Ricky Tigg =item Yuri Chornoivan =back =head1 COPYRIGHT Copyright (C) 2009-2025 Red Hat Inc. ================================================ FILE: docs/virt-v2v-support.pod ================================================ =head1 NAME virt-v2v-support - Supported hypervisors, virtualization management systems and guests in virt-v2v =head1 DESCRIPTION This page documents which foreign hypervisors, virtualization management systems and guest types that L can support. Note this page applies to upstream virt-v2v from L and in downstream distributions of virt-v2v sometimes features are intentionally removed, or are present but not supported. =head2 Hypervisors (Input) =over 4 =item VMware ESXi Must be managed by VMware vCenter E 5.0 unless VDDK is available. =item OVA exported from VMware OVAs from other hypervisors will not work. =item VMX from VMware VMX files generated by other hypervisors will not work. =item RHEL 5 Xen =item SUSE Xen =item Citrix Xen Citrix Xen has not been recently tested. =item Hyper-V Not recently tested. Requires that you export the disk or use L on Hyper-V. =item Direct from disk images Only disk images exported from supported hypervisors, and using container formats supported by qemu. =item Physical machines Using the L tool. =back =head2 Hypervisors (Output) QEMU and KVM only. =head2 Virtualization management systems (Output) =over 4 =item OpenStack =item oVirt 4.1 and up =item Local libvirt And hence L, L, and similar tools. =item Local disk =back =head2 Guests =over 4 =item Red Hat Enterprise Linux 4, 5, 6, 7, 8, 9, 10 =item CentOS 4, 5, 6, 7, 8, 9, 10 =item Scientific Linux 4, 5, 6, 7 =item Oracle Linux =item Fedora =item SLES 10 and up =item OpenSUSE 10 and up =item ALT Linux 9 and up =item Debian 6 and up =item Ubuntu 10.04, 12.04, 14.04, 16.04, and up =item Windows XP to Windows 11 / Windows Server 2025 =back =head2 Guest firmware BIOS is supported for all guest types and hypervisors. VMware allows you to present UEFI firmware to guests (instead of the ordinary PC BIOS). Virt-v2v can convert these guests, but requires that UEFI is supported by the target hypervisor. Currently KVM supports OVMF, an open source UEFI firmware, and can run these guests. Since OVMF support was only recently added to KVM (in 2014/2015), not all target environments support UEFI guests yet: =over 4 =item UEFI on libvirt, qemu Supported. Virt-v2v will generate the correct libvirt XML (metadata) automatically, but note that the same version of OVMF must be installed on the conversion host as is installed on the target hypervisor, else you will have to adjust paths in the metadata. =item UEFI on OpenStack Supported since virt-v2v E 1.43.2. =item UEFI on oVirt Supported since oVirt E 4.2 and virt-v2v E 1.39.12. =back =head1 SEE ALSO L, L. =head1 AUTHOR Richard W.M. Jones =head1 COPYRIGHT Copyright (C) 2009-2025 Red Hat Inc. ================================================ FILE: docs/virt-v2v.pod ================================================ =head1 NAME virt-v2v - Convert a guest to use KVM =head1 SYNOPSIS virt-v2v [-i mode] [other -i* options] [-o mode] [other -o* options] [virt-customize options] [guest|filename] =head1 DESCRIPTION Virt-v2v converts a single guest from a foreign hypervisor to run on KVM. It can read Linux and Windows guests running on VMware, ifelse(ENABLE_XEN, yes, Xen,) Hyper-V and some other hypervisors, and convert them to KVM managed by libvirt, OpenStack, ifelse(ENABLE_OVIRT, yes, oVirt,) or several other targets. It can modify the guest to make it bootable on KVM and install virtio drivers so it will run quickly. There is also a companion front-end called L which comes as an ISO, CD or PXE image that can be booted on physical machines to virtualize those machines (physical to virtual, or p2v). To estimate the disk space needed before conversion, see L. For in-place conversion, there is a separate tool called L. =head2 Input and Output You normally run virt-v2v with several I<-i*> options controlling the input mode and also several I<-o*> options controlling the output mode. In this sense, "input" refers to the source foreign hypervisor such as VMware, and "output" refers to the target KVM-based management system such as oVirt or OpenStack. The input and output sides of virt-v2v are separate and unrelated. Virt-v2v can read from any input and write to any output. Therefore these sides of virt-v2v are documented separately in this manual. Virt-v2v normally copies from the input to the output, called "copying mode". In this case the source guest is always left unchanged. In-place conversions may be done using L. =head2 Customization Virt-v2v can also customize the guest during conversion, using the same options as L. For example, injecting files using I<--upload>, or using I<--firstboot-script> to add additional script(s) to run at the first boot after conversion. Read the virt-customize manual for more information on this topic. =head2 Other virt-v2v topics L — Supported hypervisors, virtualization management systems, guests. L — Input from VMware. ifelse(ENABLE_XEN, yes, ` L — Input from Xen. ') L — Output to local files or local libvirt. ifelse(ENABLE_OVIRT, yes,` L — Output to oVirt ') L — Output to OpenStack. L — Release notes for 1.42 release. L — Release notes for 2.0 release. L — Release notes for 2.2 release. L — Release notes for 2.4 release. L — Release notes for 2.6 release. L — Release notes for 2.8 release. L — Release notes for 2.10 release. =head1 EXAMPLES =head2 Convert from VMware vCenter server to local libvirt You have a VMware vCenter server called C, a datacenter called C, and an ESXi hypervisor called C. You want to convert a guest called C to run locally under libvirt. virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi vmware_guest In this case you will most likely have to run virt-v2v as C, since it needs to talk to the system libvirt daemon and copy the guest disks to F. For more information see L. ifelse(ENABLE_OVIRT, yes, ` =head2 Convert from VMware to oVirt This is the same as the previous example, except you want to send the guest to an oVirt Data Domain using the oVirt REST API. Guest network interface(s) are connected to the target network called C. virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi vmware_guest \ -o ovirt-upload -oc https://ovirt-engine.example.com/ovirt-engine/api \ -os ovirt-data -op /tmp/ovirt-admin-password -of raw \ -oo ovirt-cafile=/tmp/ca.pem --bridge ovirtmgmt In this case the host running virt-v2v acts as a B. For more information see L. ') =head2 Convert from ESXi hypervisor over SSH to local libvirt You have an ESXi hypervisor called C with SSH access enabled. You want to convert from VMFS storage on that server to a local file. virt-v2v \ -i vmx -it ssh \ "ssh://root@esxi.example.com/vmfs/volumes/datastore1/guest/guest.vmx" \ -o local -os /var/tmp The guest must not be running. Virt-v2v does I need to be run as root. For more information about converting from VMX files see L. =head2 Convert disk image to OpenStack Given a disk image from another hypervisor that you want to convert to run on OpenStack (only KVM-based OpenStack is supported), you can run virt-v2v inside an OpenStack VM (called C below), and do: virt-v2v -i disk disk.img -o openstack -oo server-id=v2v-vm See L. =head2 Convert disk image to disk image Given a disk image from another hypervisor that you want to convert to run on KVM, you have two options. The simplest way is to try: virt-v2v -i disk disk.img -o local -os /var/tmp where virt-v2v guesses everything about the input F and (in this case) writes the converted result to F. A more complex method is to write some L describing the input guest (if you can get the source hypervisor to provide you with libvirt XML, then so much the better). You can then do: virt-v2v -i libvirtxml guest-domain.xml -o local -os /var/tmp Since F contains the path(s) to the guest disk image(s) you do not need to specify the name of the disk image on the command line. To convert a local disk image and immediately boot it in local qemu, do: virt-v2v -i disk disk.img -o qemu -os /var/tmp -oo qemu-boot =head1 OPTIONS =over 4 =item B<--help> Display help. =item B<--bandwidth> bps =item B<--bandwidth-file> filename Some input methods are able to limit the network bandwidth they will use statically or dynamically. In the first variant this sets the bandwidth limit statically in bits per second. Formats like C<10M> may be used (meaning 10 megabits per second). In the second variant the bandwidth is limited dynamically from the content of the file (also in bits per second, in the same formats supported by the first variant). You may use both parameters together, meaning: first limit to a static rate, then you can create the file while virt-v2v is running to adjust the rate dynamically. This is only supported for: =over 4 ifelse(ENABLE_XEN, yes, ` =item * L ') =item * L when using the SSH transport method =item * L =item * I<-i libvirtxml> when using HTTP or HTTPS disks =item * L =back The options are silently ignored for other input methods. =item B<-b> ... =item B<--bridge> ... See I<--network> below. ifelse(ENABLE_BLOCK_DRIVER, yes, ` =item B<--block-driver> B =item B<--block-driver> B When choosing a block driver for Windows guests, prefer C or C. The default is C. Note this has no effect for Linux guests at the moment. That may be added in future. ') =item B<--colors> =item B<--colours> Use ANSI colour sequences to colourize messages. This is the default when the output is a tty. If the output of the program is redirected to a file, ANSI colour sequences are disabled unless you use this option. =item B<--echo-keys> When prompting for keys and passphrases, virt-v2v normally turns echoing off so you cannot see what you are typing. If you are not worried about Tempest attacks and there is no one else in the room you can specify this flag to see what you are typing. Note this options only applies to keys and passphrases for encrypted devices and partitions, not for passwords used to connect to remote servers. =item B<-i> B disk [disk ...] Set the input method to I. In this mode you can read a virtual machine disk image with no metadata. virt-v2v tries to guess the best default metadata. This is usually adequate but you can get finer control (eg. of memory and vCPUs) by using I<-i libvirtxml> instead. Each disk can be a local file or an C URI if you want to pull the guest disk from an NBD server (see L for the supported URI formats). =item B<-i> B name|UUID Set the input method to I. This is the default. In this mode you have to specify a libvirt guest name or UUID on the command line. You may also specify a libvirt connection URI (see I<-ic>). See L below. =item B<-i> B guestB<.xml> Set the input method to I. In this mode you have to pass a libvirt XML file on the command line. This file is read in order to get metadata about the source guest (such as its name, amount of memory), and also to locate the input disks. See L below. =item B<-i> B disk [disk ...] This is the same as I<-i disk>. =item B<-i> B guestB<.ova> Set the input method to I. In this mode you can read a VMware ova file. Virt-v2v will read the ova manifest file and check the vmdk volumes for validity (checksums) as well as analyzing the ovf file, and then convert the guest. See L. =item B<-i> B guestB<.vmx>|B... Set the input method to I. In this mode you can read a VMware vmx file directly or over SSH. This is useful when VMware VMs are stored on an NFS server which you can mount directly, or where you have access by SSH to an ESXi hypervisor. See L. =item B<-ic> libvirtURI Specify a libvirt connection URI to use when reading the guest. This is only used when S>. Only local libvirt connections, or VMware vCenter connections ifelse(ENABLE_XEN, yes, `, or RHEL 5 Xen remote connections') can be used. Other remote libvirt connections will not work in general. See also: L ifelse(ENABLE_XEN, yes, `, L') =item B<-if> format For I<-i disk> only, this specifies the format of the input disk image. For other input methods you should specify the input format in the metadata. =item B<-io> OPTION=VALUE Set input option(s) related to the current input mode or transport. To display short help on what options are available you can use: virt-v2v -it vddk -io "?" =item B<-io vddk-libdir=>LIBDIR Set the VDDK library directory. This directory should I subdirectories called F, F etc., but do not include F actually in the parameter. In most cases this parameter is required when using the I<-it vddk> (VDDK) transport. See L for details. =item B<-io vddk-thumbprint=>xx:xx:xx:... Set the thumbprint of the remote VMware server. See L for details. =item B<-io vddk-compression=>COMPRESSION =item B<-io vddk-config=>FILENAME =item B<-io vddk-cookie=>COOKIE =item B<-io vddk-file=>FILE =item B<-io vddk-nfchostport=>PORT =item B<-io vddk-port=>PORT =item B<-io vddk-snapshot=>SNAPSHOT-MOREF =item B<-io vddk-transports=>MODE:MODE:... When using VDDK mode, these options are passed unmodified to the L VDDK plugin. Please refer to L. Do not use these options unless you know what you are doing. These are all optional. =item B<-ip> filename Supply a file containing a password to be used when connecting to the target hypervisor. If this is omitted then the input hypervisor may ask for the password interactively. Note the file should contain the whole password, B, and for security the file should have mode C<0600> so that others cannot read it. =item B<-it> B When using I<-i vmx>, this enables the ssh transport. See L. =item B<-it> B Use VMware VDDK as a transport to copy the input disks. See L. If you use this parameter then you may need to use other I<-io vddk*> options to specify how to connect through VDDK. __INCLUDE:key-option.pod__ __INCLUDE:keys-from-stdin-option.pod__ Note I<--keys-from-stdin> only applies to keys and passphrases for encrypted devices and partitions, not for passwords used to connect to remote servers. =item B<--mac> aa:bb:cc:dd:ee:ffB<:network:>out =item B<--mac> aa:bb:cc:dd:ee:ffB<:bridge:>out Map source NIC MAC address to a network or bridge. See L below. =item B<--mac> aa:bb:cc:dd:ee:ffB<:ip:>ipaddr[,gw[,len[,ns,ns,...]]] Force a particular interface (controlled by its MAC address) to have a static IP address after boot. The fields in the parameter are: C is the IP address. C is the optional gateway IP address. C is the optional subnet mask length (an integer). The final parameters are zero or more nameserver IP addresses. This option can be supplied zero or more times. You only need to use this option for certain broken guests such as Windows which are unable to preserve MAC to static IP address mappings automatically. You don't need to use it if Windows is using DHCP. It is currently ignored for Linux guests since they do not have this problem. =item B<--machine-readable> =item B<--machine-readable>=format This option is used to make the output more machine friendly when being parsed by other programs. See L below. =item B<-m> MB =item B<--memsize> MB Change the amount of memory allocated when doing the conversion. Virt-v2v will usually choose a suitable default. Increase this if you see that the conversion step is running out of memory. See also L. =item B<-n> in:out =item B<-n> out =item B<--network> in:out =item B<--network> out =item B<-b> in:out =item B<-b> out =item B<--bridge> in:out =item B<--bridge> out Map network (or bridge) called C to network (or bridge) called C. If no C prefix is given, all other networks (or bridges) are mapped to C. See L below. =item B<--no-fstrim> Do not trim the filesystem. See L below. =item B<-o> B This is the same as I<-o local>. ifelse(ENABLE_GLANCE, yes, ` =item B<-o> B This is a legacy option. You should probably use I<-o openstack> instead. Set the output method to OpenStack Glance. In this mode the converted guest is uploaded to Glance. See L. ') =item B<-o> B Set the output method to I. B In this mode, the converted guest is written to a local directory specified by I<-os /dir> (the directory must exist). By default the converted guest’s disks are written to: /dir/name-sda /dir/name-sdb [etc] and guest metadata is created in the associated YAML file: /dir/name.yaml where C is the guest name. You can override the disk paths by using I<-oo disk=...> option(s). =item B<-o> B Set the output method to I. This is the default. In this mode, the converted guest is created as a libvirt guest. You may also specify a libvirt connection URI (see I<-oc>). See L below, and L. =item B<-o> B Set the output method to I. In this mode, the converted guest is written to a local directory specified by I<-os /dir> (the directory must exist). The converted guest’s disks are written as: /dir/name-sda /dir/name-sdb [etc] and a libvirt XML file is created containing guest metadata: /dir/name.xml where C is the guest name. =item B<-o> B Set the output method to I. The guest is converted and copied but the results are thrown away and no metadata is written. =item B<-o> B Set the output method to OpenStack. See L. ifelse(ENABLE_OVIRT, yes, ` =item B<-o> B Set the output method to I. The converted guest is written to an oVirt Export Storage Domain. The I<-os> parameter must also be used to specify the location of the Export Storage Domain. Note this does not actually import the guest into oVirt. You have to do that manually later using the UI. See L. =item B<-o> B Set the output method to I. The converted guest is written directly to an oVirt Data Domain. This is a faster method than I<-o ovirt>, but requires oVirt E 4.2. See L. ') =item B<-o> B Set the output method to I. This is similar to I<-o local>, except that a shell script is written which you can use to boot the guest in qemu. The converted disks and shell script are written to the directory specified by I<-os>. When using this output mode, you can also specify the I<-oo qemu-boot> option which boots the guest under qemu immediately. ifelse(ENABLE_OVIRT, yes, ` =item B<-o> B Set the output method to I. This mode is similar to I<-o ovirt>, but the full path to the data domain must be given: Fdata-center-uuidE/Edata-domain-uuidE>. This mode is only used when virt-v2v runs under VDSM control. ') =item B<-oa> B =item B<-oa> B Set the output file allocation mode. The default is C. =item B<-oc> URI Specify a connection URI to use when writing the converted guest. For S> this is the libvirt URI. Only local libvirt connections can be used. Remote libvirt connections will not work. See L for further information. =item B<-of> format When converting the guest, convert the disks to the given format. If not specified, then the input format is used. =item B<-on> name Rename the guest when converting it. If this option is not used then the output name is the same as the input name. =item B<-oo> OPTION=VALUE Set output option(s) related to the current output mode. To display short help on what options are available you can use: $ virt-v2v -o libvirt -oo "?" Output options that can be used with -o libvirt: -oo compressed Compress the output file (used only with -of qcow2) =item B<-oo compressed> For outputs which support qcow2 format (I<-of qcow2>), this writes a compressed qcow2 file. It is the equivalent to the I<-c> option of L. =item B<-oo create=false> For I<-o kubevirt>, indicate that another management process will create the output disks, so do not (re-)create them in virt-v2v. =item B<-oo disk=>DISK For I<-o kubevirt> this overrides the path to each output disk, instead of using the default which is C etc in the output storage (I<-os>) path. If you use this option at all, you must repeat it once for each guest disk. If you don't use it, then the default method of putting disks in the output storage path is used. =item B<-oo guest-id=>C For I<-o openstack> (L) only, set a guest ID which is saved on each Cinder volume in the C volume property. =item B<-oo qemu-boot> When using I<-o qemu> only, this boots the guest immediately after virt-v2v finishes. =item B<-oo os->*B<=>* For I<-o openstack> (L) only, set optional OpenStack authentication. For example I<-oo os-username=>NAME is equivalent to C. ifelse(ENABLE_OVIRT, yes, ` =item B<-oo ovirt-cafile=>F For I<-o ovirt-upload> (L) only, the F file (Certificate Authority), copied from F on the oVirt engine. =item B<-oo ovirt-cluster=>C For I<-o ovirt-upload> (L) only, set the oVirt Cluster Name. If not given it uses C. =item B<-oo ovirt-proxy> For I<-o ovirt-upload> (L) only, proxy the upload through oVirt Engine. This is slower than uploading directly to the oVirt node but may be necessary if you do not have direct network access to the nodes. =item B<-oo ovirt-verifypeer> For I<-o ovirt-upload> (L) only, verify the oVirt server’s identity by checking the server‘s certificate against the Certificate Authority. ') =item B<-oo server-id=>C For I<-o openstack> (L) only, set the name of the conversion appliance where virt-v2v is running. ifelse(ENABLE_OVIRT, yes, ` =item B<-oo vdsm-compat=0.10> =item B<-oo vdsm-compat=1.1> If I<-o vdsm> and the output format is qcow2, then we add the qcow2 I option to the output file for compatibility with RHEL 6 (see L). If I<-oo vdsm-compat=1.1> is used then modern qcow2 (I) files are generated instead. Currently I<-oo vdsm-compat=0.10> is the default, but this will change to I<-oo vdsm-compat=1.1> in a future version of virt-v2v (when we can assume that everyone is using a modern version of qemu). B output>. All other output modes (including I<-o ovirt>) generate modern qcow2 I files, always. If this option is available, then C will appear in the I<--machine-readable> output. =item B<-oo vdsm-image-uuid=>UUID =item B<-oo vdsm-vol-uuid=>UUID =item B<-oo vdsm-vm-uuid=>UUID =item B<-oo vdsm-ovf-output=>DIR Normally the oVirt output mode chooses random UUIDs for the target guest. However VDSM needs to control the UUIDs and passes these parameters when virt-v2v runs under VDSM control. The parameters control: =over 4 =item * the image directory of each guest disk (I<-oo vdsm-image-uuid>) (this option is passed once for each guest disk) =item * UUIDs for each guest disk (I<-oo vdsm-vol-uuid>) (this option is passed once for each guest disk) =item * the OVF file name (I<-oo vdsm-vm-uuid>). =item * the OVF output directory (default current directory) (I<-oo vdsm-ovf-output>). =back The format of UUIDs is: C<12345678-1234-1234-1234-123456789abc> (each hex digit can be C<0-9> or C), conforming to S. These options can only be used with I<-o vdsm>. =item B<-oo vdsm-ovf-flavour=>flavour This option controls the format of the OVF generated at the end of conversion. Currently there are two possible flavours: =over 4 =item ovirtexp The OVF format used in oVirt export storage domain. =item ovirt The OVF format understood by oVirt REST API. =back For backward compatibility the default is I, but this may change in the future. ') =item B<-oo verify-server-certificate> =item B<-oo verify-server-certificate=>C For I<-o openstack> (L) only, this can be used to disable SSL certification validation when connecting to OpenStack by specifying I<-oo verify-server-certificate=false>. =item B<-op> file Supply a file containing a password to be used when connecting to the target hypervisor. Note the file should contain the whole password, B, and for security the file should have mode C<0600> so that others cannot read it. =item B<-os> storage The location of the storage for the converted guest. For I<-o libvirt>, this is a libvirt directory pool (see S>) or pool UUID. For I<-o local> and I<-o qemu>, this is a directory name. The directory must exist. For I<-o openstack>, this is the optional Cinder volume type. ifelse(ENABLE_OVIRT, yes, ` For I<-o ovirt-upload>, this is the name of the destination Storage Domain. For I<-o ovirt>, this can be an NFS path of the Export Storage Domain of the form ChostE:EpathE>, eg: ovirt-storage.example.com:/ovirt/export The NFS export must be mountable and writable by the user and host running virt-v2v, since the virt-v2v program has to actually mount it when it runs. So you probably have to run virt-v2v as C. B You can mount the Export Storage Domain yourself, and point I<-os> to the mountpoint. Note that virt-v2v will still need to write to this remote directory, so virt-v2v will still need to run as C. You will get an error if virt-v2v is unable to mount/write to the Export Storage Domain. ') =item B<--parallel> N Enable parallel copying if the guest has multiple disks. I is the maximum number of parallel L instances to run. The default is to run at most one instance of nbdcopy (ie. I<--parallel=1>). All versions of virt-v2v E 2.7.2 also did disk copies one at a time. Within each guest disk, nbdcopy tries to copy in parallel if the underlying endpoints support that. This is not affected by this command line option. See the L manual page for details. =item B<--print-source> Print information about the source guest and stop. This option is useful when you are setting up network and bridge maps. See L. =item B<-q> =item B<--quiet> This disables progress bars and other unnecessary output. =item B<--root ask> =item B<--root single> Choose the root filesystem to be converted. In the case where the virtual machine is dual-boot or multi-boot, or where the VM has other filesystems that look like operating systems, this option can be used to select the root filesystem (a.k.a. C drive or F) of the operating system that is to be converted. The Windows Recovery Console, certain attached DVD drives, and bugs in libguestfs inspection heuristics, can make a guest look like a multi-boot operating system. Either L or L can be used to list the roots for a dual-boot or multi-boot VM. The default in virt-v2v E 0.7.1 was S>, which causes virt-v2v to die if a multi-boot operating system is found. Since virt-v2v E 0.7.2 the default is now S>: If the VM is found to be multi-boot, then virt-v2v will stop and list the possible root filesystems and ask the user which to use. This requires that virt-v2v is run interactively. =item B<--root first> Choose the first root device in the case of a multi-boot operating system. Since this is a heuristic, it may sometimes choose the wrong one, and it may not choose the default option from the guest bootloader. For predictable results it is better to use L and L to inspect the guest and then specify which root you want to convert. =item B<--root> /dev/sdX =item B<--root> /dev/VG/LV Name a specific root device to convert, eg. S> would mean to use the second partition on the first hard drive. If the named root device does not exist or was not detected as a root device, then virt-v2v will fail. =item B<--smp> N Change the number of virtual CPUs used when doing the conversion. Virt-v2v will usually choose a suitable default. Increasing this beyond 8 may improve conversion performance, if your host has sufficient physical CPUs. You may also need to increase the memory size (I<--memsize> option). =item B<-v> =item B<--verbose> Enable verbose messages for debugging. =item B<-V> =item B<--version> Display version number and exit. =item B<--wrap> Wrap error, warning, and informative messages. This is the default when the output is a tty. If the output of the program is redirected to a file, wrapping is disabled unless you use this option. =item B<-x> Enable tracing of libguestfs API calls. =back =head2 Customization options __CUSTOMIZE_OPTIONS__ =head1 RESOURCE REQUIREMENTS =head2 Network The most important resource for virt-v2v appears to be network bandwidth. Virt-v2v should be able to copy guest data at gigabit ethernet speeds or greater. Ensure that the network connections between servers (conversion server, NFS server, vCenter, etc.) are as fast and as low latency as possible. =head2 Disk space Virt-v2v places potentially large temporary files in C<$VIRT_V2V_TMPDIR> (usually F, see also L below). Using tmpfs is a bad idea. For each guest disk, an overlay is stored temporarily. This stores the changes made during conversion, and is used as a cache. The overlays are not particularly large - tens or low hundreds of megabytes per disk is typical. In addition to the overlay(s), input and output methods may use disk space, as outlined in the table below. =over 4 =item I<-i ova> This temporarily places a full copy of the uncompressed source disks in C<$VIRT_V2V_TMPDIR> (or F). ifelse(ENABLE_GLANCE, yes, ` =item I<-o glance> This temporarily places a full copy of the output disks in C<$VIRT_V2V_TMPDIR> (or F). ') =item I<-o local> =item I<-o qemu> You must ensure there is sufficient space in the output directory for the converted guest. =back See also L below. =head2 VMware vCenter resources Copying from VMware vCenter is currently quite slow, but we believe this to be an issue with VMware. Ensuring the VMware ESXi hypervisor and vCenter are running on fast hardware with plenty of memory should alleviate this. =head2 Compute power and RAM Virt-v2v can be run in a virtual machine, but may run faster on bare metal. Virt-v2v is not especially compute or RAM intensive. If you are running many parallel conversions, then you may consider allocating one CPU core and 2 GB of RAM per running instance. (You may adjust the amount of memory used by conversion, see the next heading.) =head2 Adjusting memory available for conversion Virt-v2v I<--memsize=N> can be used to increase the amount of memory available to do conversion. This rarely needs to be adjusted, but can help to workaround some conversion problems. =head3 Linux: setfiles runs out of memory when relabelling For Linux guests that use SELinux, setfiles can run out of memory if a single directory contains millions of files. As there is no simple way for virt-v2v to detect this problem in advance, you may have to use I<--memsize=4000> (or larger) to convert such guests. For details see L =head2 Trimming Virt-v2v attempts to optimize the speed of conversion by ignoring guest filesystem data which is not used. This would include unused filesystem blocks, blocks containing zeroes, and deleted files. To do this, virt-v2v issues a non-destructive L operation. As this happens to an overlay placed over the guest data, it does B affect the source in any way. If this fstrim operation fails, you will see a warning, but virt-v2v will continue anyway. It may run more slowly (in some cases much more slowly), because it is copying the unused parts of the disk. Unfortunately support for fstrim is not universal, and it also depends on specific details of the filesystem, partition alignment, and backing storage. As an example, NTFS filesystems cannot be fstrimmed if they occupy a partition which is not aligned to the underlying storage. That was the default on Windows before Vista. As another example, VFAT filesystems (used by UEFI guests) cannot be trimmed at all. fstrim support in the Linux kernel is improving gradually, so over time some of these restrictions will be lifted and virt-v2v will work faster. Use I<--no-fstrim> to disable trimming. =head2 Free space for conversion =head3 Free space in the guest Virt-v2v checks there is sufficient free space in the guest filesystem to perform the conversion. Currently it checks: =over 4 =item Linux root filesystem Minimum free space: 100 MB =item Linux F Minimum free space: 50 MB This is because we need to build a new initramfs for some Enterprise Linux conversions. =item Windows C drive Minimum free space: 100 MB We may have to copy in many virtio drivers and guest agents. =item Any other mountable filesystem Minimum free space: 10 MB =back In addition to the actual free space, each filesystem is required to have at least 100 available inodes. =head3 Minimum free space check in the host You must have sufficient free space in the host directory used to store large temporary overlays. To find out which directory this is, use: $ df -h "$(guestfish get-cachedir)" Filesystem Size Used Avail Use% Mounted on /dev/mapper/root 50G 40G 6.8G 86% / and look under the C column. Virt-v2v will refuse to do the conversion at all unless at least 1GB is available there. You can change the directory that virt-v2v uses by setting C<$VIRT_V2V_TMPDIR>. =head2 Running virt-v2v as root or non-root Nothing in virt-v2v inherently needs root access, and it will run just fine as a non-root user. However, certain external features may require either root or a special user: =over 4 ifelse(ENABLE_OVIRT, yes, ` =item Mounting the Export Storage Domain When using I<-o ovirt -os server:/esd> virt-v2v has to have sufficient privileges to NFS mount the Export Storage Domain from C. You can avoid needing root here by mounting it yourself before running virt-v2v, and passing I<-os /mountpoint> instead, but first of all read the next S
=item Writing to the Export Storage Domain as 36:36 oVirt cannot read files and directories from the Export Storage Domain unless they have UID:GID 36:36. You will see VM import problems if the UID:GID is not correct. When you run virt-v2v I<-o ovirt> as root, virt-v2v attempts to create files and directories with the correct ownership. If you run virt-v2v as non-root, it will probably still work, but you will need to manually change ownership after virt-v2v has finished. ') =item Writing to libvirt When using I<-o libvirt>, you may need to run virt-v2v as root so that it can write to the libvirt system instance (ie. C) and to the default location for disk images (usually F). You can avoid this by setting up libvirt connection authentication, see L. Alternatively, use I<-oc qemu:///session>, which will write to your per-user libvirt instance. See also L. =item Writing to Openstack Because of how Cinder volumes are presented as F block devices, using I<-o openstack> normally requires that virt-v2v is run as root. ifelse(ENABLE_GLANCE, yes, ` =item Writing to Glance This does I need root (in fact it probably won’t work), but may require either a special user and/or for you to source a script that sets authentication environment variables. Consult the Glance documentation. ') =item Writing to block devices This normally requires root. See the next section. =back =head2 Writing to block devices Some output modes write to local files. In general these modes also let you write to block devices, but before you run virt-v2v you may have to arrange for symbolic links to the desired block devices in the output directory. For example if using I<-o local -os /dir> then virt-v2v would normally create files called: /dir/name-sda # first disk /dir/name-sdb # second disk ... /dir/name.xml # metadata If you wish the disks to be written to block devices then you would need to create F-sda> (etc) as symlinks to the block devices: # lvcreate -L 10G -n VolumeForDiskA VG # lvcreate -L 6G -n VolumeForDiskB VG # ln -sf /dev/VG/VolumeForDiskA /dir/name-sda # ln -sf /dev/VG/VolumeForDiskB /dir/name-sdb Note that you must precreate the correct number of block devices of the correct size. Typically I<-of raw> has to be used too, but other formats such as qcow2 can be useful occasionally so virt-v2v does not force you to use raw on block devices. =head1 PRE-CONVERSION TASKS =head2 Remove Anti-Virus (AV) and Group Policy (GPO) Anti-Virus software and Windows Group Policy is designed to prevent the kind of driver installation and other changes that we may make to Windows guests. It is recommended that you disable or remove this before conversion. It may be enabled again after conversion. =head2 Relax Windows PowerShell ExecutionPolicy Virt-v2v runs unsigned firstboot PowerShell scripts. Certain Windows PowerShell C settings such as C may cause the scripts to fail to run. To find the current policy use the L command: Get-ExecutionPolicy -List To relax the policy use L. You can set the policy back after conversion. See also: L L =head2 The guest should not be running The guest must be cleanly shut down before conversion begins, and must not be restarted on the source except if conversion fails. If the guest is running or starts running during conversion then you will end up with filesystem corruption in the converted guest. Virt-v2v tries to ensure the guest is shut down before conversion when it can, but sometimes that is not possible. It is also not possible to prevent a guest from being started while conversion is going on, or after a successful conversion. That must be done by some higher layer management tool instead. It is possible to convert from a snapshot, but this should only be done to test if a conversion would succeed (with the result being thrown away), and you should fully understand what you are doing. =head1 POST-CONVERSION TASKS =head2 Guest network configuration Virt-v2v cannot currently reconfigure a guest’s network configuration. If the converted guest is not connected to the same subnet as the source, its network configuration may have to be updated. See also L. =head2 Converting a Windows guest When converting a Windows guests, the conversion process is split into two stages: =over =item 1 Offline conversion. =item 2 First boot. =back The guest will be bootable after the offline conversion stage, but will not yet have all necessary drivers installed to work correctly. These will be installed automatically the first time the guest boots. B Windows may reboot 4 or more times the first time after conversion. This is required to install the required drivers, guest agents, remove VMware Tools, and configure the network. Take care not to interrupt the automatic driver installation process when logging in to the guest for the first time, as this may prevent the guest from subsequently booting correctly. =head2 Removing VMware Tools from Windows guests Virt-v2v attempts to remove VMware Tools. For Windows guests this is supposed to happen during the first boot after conversion. We use VMware's recommended uninstallation method as that is the safest choice. Unfortunately this method is known not to work in most cases (it makes the assumption that it is running on top of VMware, and fails with error 1603). So VMware Tools must be manually removed by some other method. VMware's officially documented method for manually removing VMware Tools is here: L Another, unofficial method is described here: L You should carefully check this script since it makes very invasive changes to the Windows Registry and filesystem. =head1 NOTES ifelse(ENABLE_XEN, yes, ` =head2 Xen paravirtualized guests Older versions of virt-v2v could turn a Xen paravirtualized (PV) guest into a KVM guest by installing a new kernel. This version of virt-v2v does I attempt to install any new kernels. Instead it will give you an error if there are I Xen PV kernels available. Therefore before conversion you should check that a regular kernel is installed. For some older Linux distributions, this means installing a kernel from the table below: RHEL 4 i686 with > 10GB of RAM: install "kernel-hugemem" i686 SMP: install "kernel-smp" other i686: install "kernel" x86-64 SMP with > 8 CPUs: install "kernel-largesmp" x86-64 SMP: install "kernel-smp" other x86-64: install "kernel" RHEL 5 i686: install "kernel-PAE" x86-64: install "kernel" SLES 10 i586 with > 10GB of RAM: install "kernel-bigsmp" i586 SMP: install "kernel-smp" other i586: install "kernel-default" x86-64 SMP: install "kernel-smp" other x86-64: install "kernel-default" SLES 11+ i586: install "kernel-pae" x86-64: install "kernel-default" Windows (Does not apply, as there is no Xen PV Windows kernel) ') =head2 Enabling virtio "Virtio" is the name for a set of drivers which make disk (block device), network and other guest operations work much faster on KVM. Older versions of virt-v2v could install these drivers for certain Linux guests. This version of virt-v2v does I attempt to install new Linux kernels or drivers, but will warn you if they are not installed already. In order to enable virtio, and hence improve performance of the guest after conversion, you should ensure that the B versions of packages are installed I conversion, by consulting the table below. RHEL 4 kernel >= 2.5.9-89.EL lvm2 >= 2.02.42-5.el4 device-mapper >= 1.02.28-2.el4 selinux-policy-targeted >= 1.17.30-2.152.el4 policycoreutils >= 1.18.1-4.13 RHEL 5 kernel >= 2.6.18-128.el5 lvm2 >= 2.02.40-6.el5 selinux-policy-targeted >= 2.4.6-203.el5 RHEL 6+ All versions support virtio Fedora All versions support virtio SLES 11+ All versions support virtio SLES 10 kernel >= 2.6.16.60-0.85.1 OpenSUSE 11+ All versions support virtio OpenSUSE 10 kernel >= 2.6.25.5-1.1 Debian 6+ All versions support virtio Ubuntu 10.04+ All versions support virtio Windows Drivers are installed from the ISO or directory pointed to by the "VIRTIO_WIN" environment variable if present. If the "VIRTIO_WIN" environment variable is absent (which is the recommended setting), then drivers are searched for in /usr/share/virtio-win, as installed by the virtio-win RPM. =head2 RHEL 4: SELinux relabel appears to hang forever In RHEL E 4.7 there was a bug which causes SELinux relabelling to appear to hang forever at: *** Warning -- SELinux relabel is required. *** *** Disabling security enforcement. *** *** Relabeling could take a very long time, *** *** depending on file system size. *** In reality it is waiting for you to press a key (but there is no visual indication of this). You can either hit the C<[Return]> key, at which point the guest will finish relabelling and reboot, or you can install policycoreutils E 1.18.1-4.13 before starting the v2v conversion. See also L =head2 RHEL 8: dracut network-legacy error In RHEL 8, a conversion fails with: dracut: dracut module 'network-legacy' cannot be found or installed This is caused by an issue with a dracut update during the RHEL 8 lifecycle. You can fix it by either installing the C package, or by removing the file F. Either operation should be done inside the guest before conversion. For more information, see: L =head2 Linux: "rename: /sysroot/etc/resolv.conf" failure In a Linux guest, you see an error such as this: virt-v2v: error: libguestfs error: command lines: rename: /sysroot/etc/resolv.conf to /sysroot/etc/lwdhuh36: Operation not permitted This can be caused because the file F in the guest has the L set. You can use the L command before converting the guest: chattr -i /etc/resolv.conf and then restore it (I<+i>) after conversion. =head2 Debian/Ubuntu: "warning: could not determine a way to update the configuration of Grub2" Currently, virt-v2v has no way to set the default kernel in Debian and Ubuntu guests using GRUB 2 as bootloader. This means that virt-v2v will not change the default kernel used for booting, even in case it is not the best kernel available on the guest. A recommended procedure is, before using virt-v2v, to check that the boot kernel is the best kernel available in the guest (for example by making sure the guest is up-to-date). =head2 Debian: "vsyscall attempted with vsyscall=none" When run on a recent Debian host virt-v2v may fail to convert guests which were created before 2013. In the debugging output you will see a crash message similar to: vsyscall attempted with vsyscall=none ip:... segfault at ... This is caused because Debian removed support for running old binaries which used the legacy vsyscall page to call into the kernel. You can work around this problem by running this command before running virt-v2v: export LIBGUESTFS_APPEND="vsyscall=emulate" For more information, see L =head2 Windows: System disk on a Dynamic Disk is not supported If the Windows system disk (the drive containing C<\windows>) is located on a Dynamic Disk then it cannot be converted. Data disks — that is, disks which are part of the guest but do not contain parts of the Windows operating system — may be Dynamic Disks. See L. =head2 Windows E 8 Fast Startup is incompatible with virt-v2v Guests which use the Windows E 8 "Fast Startup" feature (or guests which are hibernated) cannot be converted with virt-v2v. You will see an error: virt-v2v: error: unable to mount the disk image for writing. This has probably happened because Windows Hibernation or Fast Restart is being used in this guest. You have to disable this (in the guest) in order to use virt-v2v. As the message says, you need to boot the guest and disable the "Fast Startup" feature (Control Panel → Power Options → Choose what the power buttons do → Change settings that are currently unavailable → Turn on fast startup), and shut down the guest, and then you will be able to convert it. For more information, see: L. =head2 Windows: Boot failure: 0x0000007B This boot failure is caused by Windows being unable to find or load the right disk driver (eg. F). If you experience this error, here are some things to check: =over 4 =item * First ensure that the guest boots on the source hypervisor before conversion. =item * Check you have the Windows virtio drivers available in F, and that virt-v2v did not print any warning about not being able to install virtio drivers. On S, you will need to install the signed drivers available in the C package. If you do not have access to the signed drivers, then you will probably need to disable driver signing in the boot menus. =item * Check that you are presenting a virtio-blk interface (B virtio-scsi and B ide) to the guest. On the qemu/KVM command line you should see something similar to this: ... -drive file=windows-sda,if=virtio ... In libvirt XML, you should see: =item * Check that Windows Group Policy does not prevent the driver from being installed or used. Try deleting Windows Group Policy before conversion. =item * Check there is no anti-virus or other software which implements Group Policy-like prohibitions on installing or using new drivers. =item * Enable boot debugging and check the F driver is being loaded. =back =head2 OpenStack and Windows reactivation OpenStack does not offer stable device / PCI addresses to guests. Every time it creates or starts a guest, it regenerates the libvirt XML for that guest from scratch. The libvirt XML will have no EaddressE fields. Libvirt will then assign addresses to devices, in a predictable manner. Addresses may change if any of the following are true: =over 4 =item * A new disk or network device has been added or removed from the guest. =item * The version of OpenStack or (possibly) libvirt has changed. =back Because Windows does not like "hardware" changes of this kind, it may trigger Windows reactivation. This can also prevent booting with a 7B error [see previous section] if the guest has group policy containing C. =head2 Support for SHA-2 certificates in Windows 7 and Windows Server 2008 R2 Later versions of the Windows virtio drivers are signed using SHA-2 certificates (instead of SHA-1). The original shipping Windows 7 and Windows Server 2008 R2 did not understand SHA-2 certificates and so the Windows virtio drivers will not install properly. To fix this you must apply SHA-2 Code Signing Support from: L before converting the guest. For further information see: L =head2 After conversion, Windows guest cannot be upgraded After successful conversion, the Windows guest cannot be upgraded to a later release of Windows (eg. from Windows Server 2016 to 2019). Another symptom is that the C command cannot list all drivers. A few drivers are shown and then the command crashes with the error: Failed to enumerate driver packages: The parameter is incorrect. This is caused by the C temporary driver that we preinstall during conversion so that Windows can see the boot device. Because only minimal changes are made to the Registry to make this work, Windows later gets confused when it sees these partial Registry entries. The fix is to delete the Registry entries, after conversion but before trying to upgrade Windows. This can be achieved using L. The Windows guest should be shut down. The following C<.reg> file should be merged into the Windows Registry: L # virt-win-reg --merge WindowsGuest remove-guestor.reg Then the Windows guest can be booted and used / upgraded as normal. Alternatively, a WinPE environment can be used to remove the Registry entries. For further information see: L =head2 Windows: "Activation of partially decrypted BITLK device is not supported" This error from L may occur for Windows 11 guests that have a virtual TPM. Even if Bitlocker is not activated, the disk is still encrypted, and so a I<--key> parameter is still required. However it may not be possible to retrieve the key from the TPM. A workaround is to turn on Bitlocker in the Bitlocker Drive Encryption settings in the Control Panel. The Bitlocker key must be passed to virt-v2v on the command line. For further information see: L and L =head2 Windows: "Enter the recovery key for this drive" After conversion, you may be presented with a Windows boot screen showing: BitLocker recovery Enter the recovery key for this drive [|___________________] (See screenshot on L) This happens when the Windows BitLocker disk encryption key is contained in the VMware Virtual Trusted Platform Module (vTPM). The vTPM is working I. It is preventing the encrypted disk from being moved from one machine to another by storing the encryption key in trusted storage on the source. By design, we cannot access or move this key to the target. To start the VM you will need to enter the BitLocker recovery key. This will also register the disk against the new vTPM on the target, so it should only be necessary to do this once. For help finding the recovery key: L =head2 Linux: Guests with LUKS encryption and TPM fail to boot after conversion Linux guests (such as Ubuntu) that use LUKS-encrypted disks with keys sealed to a Trusted Platform Module (TPM) will fail to boot after virt-v2v conversion. This is because the TPM is working I: it prevents the encrypted disk from being used on a different machine. After conversion, the guest runs on a new KVM host with a different vTPM, so the TPM-sealed key is no longer valid. To convert such a guest, a passphrase-based LUKS keyslot must exist so that virt-v2v can unlock the disk using the I<--key> option. If the guest only has a TPM-sealed key, you must add a passphrase keyslot before conversion. Do not remove the TPM binding on the source VM as it must remain bootable in case the conversion fails. The following commands should be run inside the source guest while it is still running on the source hypervisor (where the TPM is valid). In these examples C is the LUKS partition; substitute the appropriate device for your guest. If the guest uses B for TPM2 binding (e.g. Ubuntu 22.04), first recover the sealed passphrase, then add a new keyslot: clevis luks list -d /dev/sda3 clevis luks pass -d /dev/sda3 -s SLOT > /tmp/recovered-key cryptsetup luksAddKey /dev/sda3 --key-file /tmp/recovered-key If the guest uses B (e.g. Ubuntu 24.04+), C does not expose the sealed passphrase, so you must supply the original installation passphrase when adding a new keyslot: cryptsetup luksDump /dev/sda3 # verify tpm2 token is present cryptsetup luksAddKey /dev/sda3 Then convert with virt-v2v, passing the passphrase you enrolled above: virt-v2v [...] --key all:key:PASSPHRASE After conversion, the old TPM binding will no longer be valid. Boot the converted guest and remove the stale binding: clevis luks unbind -d /dev/sda3 -s SLOT -f # clevis systemd-cryptenroll --wipe-slot=tpm2 /dev/sda3 # systemd-cryptenroll If you want to re-seal LUKS against the new KVM vTPM, you can then run C or C inside the converted guest. For further information see: L =head2 Networks and bridges Guests are usually connected to one or more networks, and when converted to the target hypervisor you usually want to reconnect those networks at the destination. The options I<--network>, I<--bridge> and I<--mac> allow you to do that. If you are unsure of what networks and bridges are in use on the source hypervisor, then you can examine the source metadata (libvirt XML, vCenter information, etc.). Or you can run virt-v2v with the I<--print-source> option which causes virt-v2v to print out the information it has about the guest on the source and then exit. In the I<--print-source> output you will see a section showing the guest’s Network Interface Cards (NICs): $ virt-v2v [-i ...] --print-source name [...] NICs: Network "default" mac: 52:54:00:d0:cf:0e Bridges are special classes of network devices which are attached to a named external network on the source hypervisor, for example: $ virt-v2v [-i ...] --print-source name [...] NICs: Bridge "br0" To map a specific source bridge to a target network, for example C on the source to C on the target, use: virt-v2v [...] --bridge br0:ovirtmgmt To map every bridge to a target network, use: virt-v2v [...] --bridge ovirtmgmt =head3 Fine-grained mapping of guest NICs The I<--mac> option gives you more control over the mapping, letting you map single NICs to either networks or bridges on the target. For example a source guest with two NICs could map them individually to two networks called C and C like this: $ virt-v2v [...] \ --mac 52:54:00:d0:cf:0e:network:mgmt \ --mac 52:54:00:d0:cf:0f:network:clientdata Note that virt-v2v does not have the ability to change a guest’s MAC address. The MAC address is part of the guest metadata and must remain the same on source and target hypervisors. Most guests will use the MAC address to set up persistent associations between NICs and internal names (like C), with firewall settings, or even for other purposes like software licensing. =head2 Minimal XML for -i libvirtxml option When using the I<-i libvirtxml> option, you have to supply some libvirt XML. Writing this from scratch is hard, so the template below is helpful. B If you have libvirt metadata for the guest, always use that instead. NAME 1048576 2 hvm 123123... =head2 Machine readable output The I<--machine-readable> option can be used to make the output more machine friendly, which is useful when calling virt-v2v from other programs, GUIs etc. There are two ways to use this option. Firstly use the option on its own to query the capabilities of the virt-v2v binary. Typical output looks like this: $ virt-v2v --machine-readable virt-v2v libguestfs-rewrite colours-option input:disk [...] output:local [...] convert:linux convert:windows A list of features is printed, one per line, and the program exits with status 0. The C and C features refer to I<-i> and I<-o> (input and output mode) options supported by this binary. The C features refer to guest types that this binary knows how to convert. Secondly use the option in conjunction with other options to make the regular program output more machine friendly. At the moment this means: =over 4 =item 1. Progress bar messages can be parsed from stdout by looking for this regular expression: ^[0-9]+/[0-9]+$ =item 2. The calling program should treat messages sent to stdout (except for progress bar messages) as status messages. They can be logged and/or displayed to the user. =item 3. The calling program should treat messages sent to stderr as error messages. In addition, virt-v2v exits with a non-zero status code if there was a fatal error. =back Virt-v2v E 0.9.1 did not support the I<--machine-readable> option at all. The option was added when virt-v2v was rewritten in 2014. It is possible to specify a format string for controlling the output; see L. =head2 Starting the libvirt system instance Failed to connect socket to '/var/run/libvirt/virtqemud-sock': No such file or directory Failed to connect socket to '/var/run/libvirt/virtqemud-sock-ro': Connection refused If you have just installed libvirt and virt-v2v, then you may see the errors above. This is caused by libvirt daemons that provide various services not running straight after installation. (This may depend on your distribution and vendor presets). To fix this on systemd-based distributions, do: systemctl isolate multi-user.target See also L. =head1 FILES =over 4 =item F (Optional) If this directory is present, then virtio drivers for Windows guests will be found from this directory and installed in the guest during conversion. =back =head1 ENVIRONMENT VARIABLES =over 4 =item C =item C Location of the temporary directory used for the potentially large temporary overlay file. If neither environment variable is set then F is used. To reliably ensure large temporary files are cleaned up (for example in case virt-v2v crashes) you should create a randomly named directory under F, set C to point to this directory, then when virt-v2v exits remove the directory. See the L section above. =item C This can point to the directory containing data files used for Windows conversion. Normally you do not need to set this. If not set, a compiled-in default will be used (something like F). This directory may contain the following files: =over 4 =item F (Required when doing conversions of Windows guests) This is the RHSrvAny Windows binary, used to install a "firstboot" script in the guest during conversion of Windows guests. See also: C =item F (Recommended when doing conversions of Windows guests) This tool waits for newly installed Windows devices to become available before trying to configure them, for example to set network configuration. It is part of the RHSrvAny project. =item F This is a Windows binary shipped with SUSE VMDP, used to install a "firstboot" script in Windows guests. It is an alternative to RHSrvAny. =back =item C This is an override for where virtio drivers for Windows are searched for. It can be a directory I point to F (CD ROM image containing drivers). If unset, then we look for drivers via whichever of these methods succeeds first: =over 4 =item F The ISO containing virtio drivers for Windows. =item F The exploded tree of virtio drivers for Windows. =back See L. =back For other environment variables, see L. =head1 OTHER TOOLS =over 4 =item L Variously called C, C or C, this tool allows you to copy a guest from one oVirt Export Storage Domain to another. It only permits importing a guest that was previously exported from another oVirt instance. =item L This script can be used to import guests that already run on KVM to oVirt. For more information, see this blog posting by the author of virt-v2v: L =back =head1 SEE ALSO L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L. =head1 AUTHORS Matthew Booth Cédric Bosdonnat Laszlo Ersek Tomáš Golembiovský Shahar Havivi Richard W.M. Jones Roman Kagan Mike Latimer Nir Soffer Pino Toscano Xiaodai Wang Ming Xie Tingting Zheng =head1 COPYRIGHT Copyright (C) 2009-2025 Red Hat Inc. ================================================ FILE: docs/vm-generation-id-across-hypervisors.txt ================================================ VM Generation ID is a hypervisor feature which exposes a 128 bit (16 byte) random string of bytes to the guest. The generation ID lets the guest know when it has been cloned, and this is mainly useful for Windows because various security features of Windows rely on unique UUIDs and don't work if the guest is cloned. Guests can use the random string (which is NOT itself a UUID) to generate new UUIDs after cloning. The main spec is very light on details, but it's here: http://go.microsoft.com/fwlink/?LinkId=260709 This file documents how the VM Generation ID feature is implemented across multiple hypervisors that support it. Inside the guest ---------------------------------------------------------------------- For Windows guests the easiest way to view the VM generation ID is using VMGENID.EXE. You can download the binary and source here: https://bugzilla.redhat.com/show_bug.cgi?id=1598350#c3 https://docs.microsoft.com/en-gb/windows/win32/hyperv_v2/virtual-machine-generation-identifier?redirectedfrom=MSDN VMGENID.EXE prints the low 64 bit int followed by the high 64 bit int, both in hex, eg: 8987940a09512cc5:e81510634ff550b9 For Linux guests at the time of writing (late 2021) there is no upstream driver. For qemu guests you can view the VM generation ID using these commands: # hexdump -C /sys/firmware/qemu_fw_cfg/by_name/etc/vmgenid_addr/raw 00000000 28 f0 ff 7f 00 00 00 00 |(.......| 00000008 Take the bytes printed (a raw physical memory address in little endian format), reverse them, and insert them into this command: # dd if=/dev/mem bs=1 skip=$(( 0x7ffff028 )) count=16 | hexdump -C 16+0 records in 16+0 records out 16 bytes copied, 6.0392e-05 s, 265 kB/s 00000000 44 33 22 11 66 55 88 77 99 aa bb cc dd ee ff 00 |D3".fU.w........| 00000010 which prints the raw 16 byte VM generation ID as it appears in guest physical memory. Bytes in memory vs Windows guest driver ---------------------------------------------------------------------- All hypervisors that implement this feature write 16 bytes into guest physical memory. Different guest drivers could then treat this differently. This section documents what the Windows driver does. If the bytes in guest RAM are: 11 22 33 44 55 66 77 88 99 aa bb cc dd ee ff 00 The Windows guest driver treats this as two little endian 64 bit integers called "low" and "high": low = 0x8877665544332211 high = 0x00ffeeddccbbaa99 VMGENID.EXE prints: 8877665544332211:[00]ffeeddccbbaa99 (The [00] is not printed because VMGENID.EXE does not zero-extend. I added this for clarity) Microsoft Hyper-V ---------------------------------------------------------------------- In Hyper-V <= 2012 guest metadata is stored in XML. In later versions the XML was replaced by a binary vmcx file. The same data is stored in both, but you'll need to use hexdump to read the binary file. In XML: 805a287a250989e4fe6f6992be334a43 The same in the vmcx file: 000056b0 00 00 0e 67 65 6e 65 72 61 74 69 6f 6e 5f 69 64 |...generation_id| 000056c0 00 40 00 00 00 38 00 30 00 35 00 61 00 32 00 38 | 8 0 5 a 2 8| 000056d0 00 37 00 61 00 32 00 35 00 30 00 39 00 38 00 39 |.7.a.2.5.0.9.8.9| 000056e0 00 65 00 34 00 66 00 65 00 36 00 66 00 36 00 39 |.e.4.f.e.6.f.6.9| 000056f0 00 39 00 32 00 62 00 65 00 33 00 33 00 34 00 61 |.9.2.b.e.3.3.4.a| 00005700 00 34 00 33 00 00 00 00 00 00 00 00 00 00 00 00 |.4.3............| In a Windows guest VMGENID.EXE prints: fe6f6992be334a43:805a287a250989e4 Notice that the hypervisor metadata is storing the high 64 bit word (little endian) followed by the low 64 bit word (little endian). VMware ESXi ---------------------------------------------------------------------- VM generation ID can be found in the guest.vmx file as two 64 bit little-endian signed decimal integers, eg: vm.genid = "-8536691797830587195" vm.genidX = "-1723453263670062919" To convert them to the more normal hex format, use these Python statements: >>> print("%x" % (2**64-8536691797830587195)) 8987940a09512cc5 >>> print("%x" % (2**64-1723453263670062919)) e81510634ff550b9 In a Windows guest, VMGENID.EXE prints: 8987940a09512cc5:e81510634ff550b9 Note that vm.genid corresponds to what the Windows driver calls the low 64 bit int, and vm.genidX to the high int. QEMU ---------------------------------------------------------------------- Unfortunately QEMU made a significant mistake when implementing this feature. Because the string is 128 bits long, they decided it must be a UUID (as you can see above there is no evidence that Microsoft who wrote the original spec thought it was). Following from this assumption, they stated that the "UUID" must be supplied to qemu in big endian format and must be byteswapped when writing it to guest memory as the virtual device is assumed to always be little-endian (even for BE guests). To further add to the confusion, byte swapping of UUIDs is not straightforward. Only some fields are byte swapped. qemu uses a -device vmgenid parameter to specify the "UUID": -device vmgenid,guid=11223344-5566-7788-99aa-bbccddeeff00,id=vmgenid0 Because of the byte swapping this appears inside the guest as: 44 33 22 11 66 55 88 77 99 aa bb cc dd ee ff 00 In order to get a predictable byte order, you must do your own mangling which is then further mangled by qemu with the effect that both manglings cancel out. This ordering: -device vmgenid,guid=44332211-6655-8877-99aa-bbccddeeff00,id=vmgenid0 will result in guest physical memory containing: 11 22 33 44 55 66 77 88 99 aa bb cc dd ee ff 00 In a Windows guest, VMGENID.EXE prints: 8877665544332211:[00]ffeeddccbbaa99 (The [00] is not printed because VMGENID.EXE does not zero-extend. I added this for clarity) Libvirt ---------------------------------------------------------------------- Unfortunately libvirt took the mistaken QEMU UUID concept and ran with it. Libvirt XML is written: 44332211-6655-8877-99aa-bbccddeeff00 which will result in the following bytes being written to guest memory: 11 22 33 44 55 66 77 88 99 aa bb cc dd ee ff 00 References ---------------------------------------------------------------------- Main specification: http://go.microsoft.com/fwlink/?LinkId=260709 Threads about qemu and libvirt implementations: https://lists.nongnu.org/archive/html/qemu-devel/2018-07/threads.html#01505 https://listman.redhat.com/archives/libvir-list/2021-September/thread.html#00931 QEMU documentation and implementation: https://gitlab.com/qemu-project/qemu/-/blob/master/docs/specs/vmgenid.txt https://gitlab.com/qemu-project/qemu/-/blob/master/hw/acpi/vmgenid.c Latest attempt to get a Linux driver upstream: https://lore.kernel.org/linux-doc/3E05451B-A9CD-4719-99D0-72750A304044@amazon.com/ ================================================ FILE: gnulib/lib/Makefile.am ================================================ # libguestfs # Copyright (C) 2017-2021 Red Hat Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. # This directory contains some dependencies originally from gnulib. # The aim is for everything in this directory to eventually go away, # probably being moved to common/utils. include $(top_srcdir)/subdir-rules.mk noinst_LTLIBRARIES = libgnu.la libgnu_la_SOURCES = \ bitrotate.h \ c-ctype.h \ getprogname.h \ hash.c \ hash.h \ ignore-value.h \ xalloc-oversized.h \ xstrtol.c \ xstrtol.h \ xstrtoll.c \ xstrtoul.c \ xstrtoull.c \ xstrtoumax.c libutils_la_CFLAGS = \ $(WARN_CFLAGS) $(WERROR_CFLAGS) \ $(GCC_VISIBILITY_HIDDEN) ================================================ FILE: gnulib/lib/bitrotate.h ================================================ /* bitrotate.h - Rotate bits in integers Copyright (C) 2008-2021 Free Software Foundation, Inc. (NB: I modified the original GPL boilerplate here to LGPLv2+. This is because of the weird way that gnulib uses licenses, where the real license is covered in the modules/X file. The real license for this file is LGPLv2+, not GPL. - RWMJ) This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ /* Written by Simon Josefsson , 2008. */ #ifndef _GL_BITROTATE_H #define _GL_BITROTATE_H #include #include #include #ifdef UINT64_MAX /* Given an unsigned 64-bit argument X, return the value corresponding to rotating the bits N steps to the left. N must be between 1 and 63 inclusive. */ static inline uint64_t rotl64 (uint64_t x, int n) { return ((x << n) | (x >> (64 - n))) & UINT64_MAX; } /* Given an unsigned 64-bit argument X, return the value corresponding to rotating the bits N steps to the right. N must be between 1 to 63 inclusive.*/ static inline uint64_t rotr64 (uint64_t x, int n) { return ((x >> n) | (x << (64 - n))) & UINT64_MAX; } #endif /* Given an unsigned 32-bit argument X, return the value corresponding to rotating the bits N steps to the left. N must be between 1 and 31 inclusive. */ static inline uint32_t rotl32 (uint32_t x, int n) { return ((x << n) | (x >> (32 - n))) & UINT32_MAX; } /* Given an unsigned 32-bit argument X, return the value corresponding to rotating the bits N steps to the right. N must be between 1 to 31 inclusive.*/ static inline uint32_t rotr32 (uint32_t x, int n) { return ((x >> n) | (x << (32 - n))) & UINT32_MAX; } /* Given a size_t argument X, return the value corresponding to rotating the bits N steps to the left. N must be between 1 and (CHAR_BIT * sizeof (size_t) - 1) inclusive. */ static inline size_t rotl_sz (size_t x, int n) { return ((x << n) | (x >> ((CHAR_BIT * sizeof x) - n))) & SIZE_MAX; } /* Given a size_t argument X, return the value corresponding to rotating the bits N steps to the right. N must be between 1 to (CHAR_BIT * sizeof (size_t) - 1) inclusive. */ static inline size_t rotr_sz (size_t x, int n) { return ((x >> n) | (x << ((CHAR_BIT * sizeof x) - n))) & SIZE_MAX; } /* Given an unsigned 16-bit argument X, return the value corresponding to rotating the bits N steps to the left. N must be between 1 to 15 inclusive, but on most relevant targets N can also be 0 and 16 because 'int' is at least 32 bits and the arguments must widen before shifting. */ static inline uint16_t rotl16 (uint16_t x, int n) { return (((unsigned int) x << n) | ((unsigned int) x >> (16 - n))) & UINT16_MAX; } /* Given an unsigned 16-bit argument X, return the value corresponding to rotating the bits N steps to the right. N must be in 1 to 15 inclusive, but on most relevant targets N can also be 0 and 16 because 'int' is at least 32 bits and the arguments must widen before shifting. */ static inline uint16_t rotr16 (uint16_t x, int n) { return (((unsigned int) x >> n) | ((unsigned int) x << (16 - n))) & UINT16_MAX; } /* Given an unsigned 8-bit argument X, return the value corresponding to rotating the bits N steps to the left. N must be between 1 to 7 inclusive, but on most relevant targets N can also be 0 and 8 because 'int' is at least 32 bits and the arguments must widen before shifting. */ static inline uint8_t rotl8 (uint8_t x, int n) { return (((unsigned int) x << n) | ((unsigned int) x >> (8 - n))) & UINT8_MAX; } /* Given an unsigned 8-bit argument X, return the value corresponding to rotating the bits N steps to the right. N must be in 1 to 7 inclusive, but on most relevant targets N can also be 0 and 8 because 'int' is at least 32 bits and the arguments must widen before shifting. */ static inline uint8_t rotr8 (uint8_t x, int n) { return (((unsigned int) x >> n) | ((unsigned int) x << (8 - n))) & UINT8_MAX; } #endif /* _GL_BITROTATE_H */ ================================================ FILE: gnulib/lib/c-ctype.h ================================================ /* Character handling in C locale. These functions work like the corresponding functions in , except that they have the C (POSIX) locale hardwired, whereas the functions' behaviour depends on the current locale set via setlocale. Copyright (C) 2000-2003, 2006, 2008-2021 Free Software Foundation, Inc. (NB: I modified the original GPL boilerplate here to LGPLv2+. This is because of the weird way that gnulib uses licenses, where the real license is covered in the modules/X file. The real license for this file is LGPLv2+, not GPL. - RWMJ) This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef C_CTYPE_H #define C_CTYPE_H #include #ifdef __cplusplus extern "C" { #endif /* The functions defined in this file assume the "C" locale and a character set without diacritics (ASCII-US or EBCDIC-US or something like that). Even if the "C" locale on a particular system is an extension of the ASCII character set (like on BeOS, where it is UTF-8, or on AmigaOS, where it is ISO-8859-1), the functions in this file recognize only the ASCII characters. */ #if (' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \ && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \ && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \ && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \ && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \ && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \ && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \ && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \ && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \ && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \ && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \ && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \ && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \ && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \ && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \ && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \ && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \ && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \ && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \ && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \ && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \ && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \ && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126) /* The character set is ASCII or one of its variants or extensions, not EBCDIC. Testing the value of '\n' and '\r' is not relevant. */ # define C_CTYPE_ASCII 1 #elif ! (' ' == '\x40' && '0' == '\xf0' \ && 'A' == '\xc1' && 'J' == '\xd1' && 'S' == '\xe2' \ && 'a' == '\x81' && 'j' == '\x91' && 's' == '\xa2') # error "Only ASCII and EBCDIC are supported" #endif #if 'A' < 0 # error "EBCDIC and char is signed -- not supported" #endif /* Cases for control characters. */ #define _C_CTYPE_CNTRL \ case '\a': case '\b': case '\f': case '\n': \ case '\r': case '\t': case '\v': \ _C_CTYPE_OTHER_CNTRL /* ASCII control characters other than those with \-letter escapes. */ #if C_CTYPE_ASCII # define _C_CTYPE_OTHER_CNTRL \ case '\x00': case '\x01': case '\x02': case '\x03': \ case '\x04': case '\x05': case '\x06': case '\x0e': \ case '\x0f': case '\x10': case '\x11': case '\x12': \ case '\x13': case '\x14': case '\x15': case '\x16': \ case '\x17': case '\x18': case '\x19': case '\x1a': \ case '\x1b': case '\x1c': case '\x1d': case '\x1e': \ case '\x1f': case '\x7f' #else /* Use EBCDIC code page 1047's assignments for ASCII control chars; assume all EBCDIC code pages agree about these assignments. */ # define _C_CTYPE_OTHER_CNTRL \ case '\x00': case '\x01': case '\x02': case '\x03': \ case '\x07': case '\x0e': case '\x0f': case '\x10': \ case '\x11': case '\x12': case '\x13': case '\x18': \ case '\x19': case '\x1c': case '\x1d': case '\x1e': \ case '\x1f': case '\x26': case '\x27': case '\x2d': \ case '\x2e': case '\x32': case '\x37': case '\x3c': \ case '\x3d': case '\x3f' #endif /* Cases for lowercase hex letters, and lowercase letters, all offset by N. */ #define _C_CTYPE_LOWER_A_THRU_F_N(N) \ case 'a' + (N): case 'b' + (N): case 'c' + (N): case 'd' + (N): \ case 'e' + (N): case 'f' + (N) #define _C_CTYPE_LOWER_N(N) \ _C_CTYPE_LOWER_A_THRU_F_N(N): \ case 'g' + (N): case 'h' + (N): case 'i' + (N): case 'j' + (N): \ case 'k' + (N): case 'l' + (N): case 'm' + (N): case 'n' + (N): \ case 'o' + (N): case 'p' + (N): case 'q' + (N): case 'r' + (N): \ case 's' + (N): case 't' + (N): case 'u' + (N): case 'v' + (N): \ case 'w' + (N): case 'x' + (N): case 'y' + (N): case 'z' + (N) /* Cases for hex letters, digits, lower, punct, and upper. */ #define _C_CTYPE_A_THRU_F \ _C_CTYPE_LOWER_A_THRU_F_N (0): \ _C_CTYPE_LOWER_A_THRU_F_N ('A' - 'a') #define _C_CTYPE_DIGIT \ case '0': case '1': case '2': case '3': \ case '4': case '5': case '6': case '7': \ case '8': case '9' #define _C_CTYPE_LOWER _C_CTYPE_LOWER_N (0) #define _C_CTYPE_PUNCT \ case '!': case '"': case '#': case '$': \ case '%': case '&': case '\'': case '(': \ case ')': case '*': case '+': case ',': \ case '-': case '.': case '/': case ':': \ case ';': case '<': case '=': case '>': \ case '?': case '@': case '[': case '\\': \ case ']': case '^': case '_': case '`': \ case '{': case '|': case '}': case '~' #define _C_CTYPE_UPPER _C_CTYPE_LOWER_N ('A' - 'a') /* Function definitions. */ /* Unlike the functions in , which require an argument in the range of the 'unsigned char' type, the functions here operate on values that are in the 'unsigned char' range or in the 'char' range. In other words, when you have a 'char' value, you need to cast it before using it as argument to a function: const char *s = ...; if (isalpha ((unsigned char) *s)) ... but you don't need to cast it for the functions defined in this file: const char *s = ...; if (c_isalpha (*s)) ... */ static inline bool c_isalnum (int c) { switch (c) { _C_CTYPE_DIGIT: _C_CTYPE_LOWER: _C_CTYPE_UPPER: return true; default: return false; } } static inline bool c_isalpha (int c) { switch (c) { _C_CTYPE_LOWER: _C_CTYPE_UPPER: return true; default: return false; } } /* The function isascii is not locale dependent. Its use in EBCDIC is questionable. */ static inline bool c_isascii (int c) { switch (c) { case ' ': _C_CTYPE_CNTRL: _C_CTYPE_DIGIT: _C_CTYPE_LOWER: _C_CTYPE_PUNCT: _C_CTYPE_UPPER: return true; default: return false; } } static inline bool c_isblank (int c) { return c == ' ' || c == '\t'; } static inline bool c_iscntrl (int c) { switch (c) { _C_CTYPE_CNTRL: return true; default: return false; } } static inline bool c_isdigit (int c) { switch (c) { _C_CTYPE_DIGIT: return true; default: return false; } } static inline bool c_isgraph (int c) { switch (c) { _C_CTYPE_DIGIT: _C_CTYPE_LOWER: _C_CTYPE_PUNCT: _C_CTYPE_UPPER: return true; default: return false; } } static inline bool c_islower (int c) { switch (c) { _C_CTYPE_LOWER: return true; default: return false; } } static inline bool c_isprint (int c) { switch (c) { case ' ': _C_CTYPE_DIGIT: _C_CTYPE_LOWER: _C_CTYPE_PUNCT: _C_CTYPE_UPPER: return true; default: return false; } } static inline bool c_ispunct (int c) { switch (c) { _C_CTYPE_PUNCT: return true; default: return false; } } static inline bool c_isspace (int c) { switch (c) { case ' ': case '\t': case '\n': case '\v': case '\f': case '\r': return true; default: return false; } } static inline bool c_isupper (int c) { switch (c) { _C_CTYPE_UPPER: return true; default: return false; } } static inline bool c_isxdigit (int c) { switch (c) { _C_CTYPE_DIGIT: _C_CTYPE_A_THRU_F: return true; default: return false; } } static inline int c_tolower (int c) { switch (c) { _C_CTYPE_UPPER: return c - 'A' + 'a'; default: return c; } } static inline int c_toupper (int c) { switch (c) { _C_CTYPE_LOWER: return c - 'a' + 'A'; default: return c; } } #ifdef __cplusplus } #endif #endif /* C_CTYPE_H */ ================================================ FILE: gnulib/lib/getprogname.h ================================================ /* libguestfs * Copyright (C) 2013-2020 Red Hat Inc. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef GUESTFS_GETPROGNAME #define GUESTFS_GETPROGNAME #include static inline char const * getprogname (void) { return program_invocation_short_name; } #endif /* GUESTFS_GETPROGNAME */ ================================================ FILE: gnulib/lib/hash.c ================================================ /* hash - hashing table processing. Copyright (C) 1998-2004, 2006-2007, 2009-2021 Free Software Foundation, Inc. Written by Jim Meyering, 1992. (NB: I modified the original GPL boilerplate here to LGPLv2+. This is because of the weird way that gnulib uses licenses, where the real license is covered in the modules/X file. The real license for this file is LGPLv2+, not GPL. - RWMJ) This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ /* A generic hash table package. */ /* Define USE_OBSTACK to 1 if you want the allocator to use obstacks instead of malloc. If you change USE_OBSTACK, you have to recompile! */ #include #include "hash.h" #include "bitrotate.h" #include "xalloc-oversized.h" #include #include #include #if USE_OBSTACK # include "obstack.h" # ifndef obstack_chunk_alloc # define obstack_chunk_alloc malloc # endif # ifndef obstack_chunk_free # define obstack_chunk_free free # endif #endif struct hash_entry { void *data; struct hash_entry *next; }; struct hash_table { /* The array of buckets starts at BUCKET and extends to BUCKET_LIMIT-1, for a possibility of N_BUCKETS. Among those, N_BUCKETS_USED buckets are not empty, there are N_ENTRIES active entries in the table. */ struct hash_entry *bucket; struct hash_entry const *bucket_limit; size_t n_buckets; size_t n_buckets_used; size_t n_entries; /* Tuning arguments, kept in a physically separate structure. */ const Hash_tuning *tuning; /* Three functions are given to 'hash_initialize', see the documentation block for this function. In a word, HASHER randomizes a user entry into a number up from 0 up to some maximum minus 1; COMPARATOR returns true if two user entries compare equally; and DATA_FREER is the cleanup function for a user entry. */ Hash_hasher hasher; Hash_comparator comparator; Hash_data_freer data_freer; /* A linked list of freed struct hash_entry structs. */ struct hash_entry *free_entry_list; #if USE_OBSTACK /* Whenever obstacks are used, it is possible to allocate all overflowed entries into a single stack, so they all can be freed in a single operation. It is not clear if the speedup is worth the trouble. */ struct obstack entry_stack; #endif }; /* A hash table contains many internal entries, each holding a pointer to some user-provided data (also called a user entry). An entry indistinctly refers to both the internal entry and its associated user entry. A user entry contents may be hashed by a randomization function (the hashing function, or just "hasher" for short) into a number (or "slot") between 0 and the current table size. At each slot position in the hash table, starts a linked chain of entries for which the user data all hash to this slot. A bucket is the collection of all entries hashing to the same slot. A good "hasher" function will distribute entries rather evenly in buckets. In the ideal case, the length of each bucket is roughly the number of entries divided by the table size. Finding the slot for a data is usually done in constant time by the "hasher", and the later finding of a precise entry is linear in time with the size of the bucket. Consequently, a larger hash table size (that is, a larger number of buckets) is prone to yielding shorter chains, *given* the "hasher" function behaves properly. Long buckets slow down the lookup algorithm. One might use big hash table sizes in hope to reduce the average length of buckets, but this might become inordinate, as unused slots in the hash table take some space. The best bet is to make sure you are using a good "hasher" function (beware that those are not that easy to write! :-), and to use a table size larger than the actual number of entries. */ /* If an insertion makes the ratio of nonempty buckets to table size larger than the growth threshold (a number between 0.0 and 1.0), then increase the table size by multiplying by the growth factor (a number greater than 1.0). The growth threshold defaults to 0.8, and the growth factor defaults to 1.414, meaning that the table will have doubled its size every second time 80% of the buckets get used. */ #define DEFAULT_GROWTH_THRESHOLD 0.8f #define DEFAULT_GROWTH_FACTOR 1.414f /* If a deletion empties a bucket and causes the ratio of used buckets to table size to become smaller than the shrink threshold (a number between 0.0 and 1.0), then shrink the table by multiplying by the shrink factor (a number greater than the shrink threshold but smaller than 1.0). The shrink threshold and factor default to 0.0 and 1.0, meaning that the table never shrinks. */ #define DEFAULT_SHRINK_THRESHOLD 0.0f #define DEFAULT_SHRINK_FACTOR 1.0f /* Use this to initialize or reset a TUNING structure to some sensible values. */ static const Hash_tuning default_tuning = { DEFAULT_SHRINK_THRESHOLD, DEFAULT_SHRINK_FACTOR, DEFAULT_GROWTH_THRESHOLD, DEFAULT_GROWTH_FACTOR, false }; /* Information and lookup. */ size_t hash_get_n_buckets (const Hash_table *table) { return table->n_buckets; } size_t hash_get_n_buckets_used (const Hash_table *table) { return table->n_buckets_used; } size_t hash_get_n_entries (const Hash_table *table) { return table->n_entries; } size_t hash_get_max_bucket_length (const Hash_table *table) { struct hash_entry const *bucket; size_t max_bucket_length = 0; for (bucket = table->bucket; bucket < table->bucket_limit; bucket++) { if (bucket->data) { struct hash_entry const *cursor = bucket; size_t bucket_length = 1; while (cursor = cursor->next, cursor) bucket_length++; if (bucket_length > max_bucket_length) max_bucket_length = bucket_length; } } return max_bucket_length; } bool hash_table_ok (const Hash_table *table) { struct hash_entry const *bucket; size_t n_buckets_used = 0; size_t n_entries = 0; for (bucket = table->bucket; bucket < table->bucket_limit; bucket++) { if (bucket->data) { struct hash_entry const *cursor = bucket; /* Count bucket head. */ n_buckets_used++; n_entries++; /* Count bucket overflow. */ while (cursor = cursor->next, cursor) n_entries++; } } if (n_buckets_used == table->n_buckets_used && n_entries == table->n_entries) return true; return false; } void hash_print_statistics (const Hash_table *table, FILE *stream) { size_t n_entries = hash_get_n_entries (table); size_t n_buckets = hash_get_n_buckets (table); size_t n_buckets_used = hash_get_n_buckets_used (table); size_t max_bucket_length = hash_get_max_bucket_length (table); fprintf (stream, "# entries: %lu\n", (unsigned long int) n_entries); fprintf (stream, "# buckets: %lu\n", (unsigned long int) n_buckets); fprintf (stream, "# buckets used: %lu (%.2f%%)\n", (unsigned long int) n_buckets_used, (100.0 * n_buckets_used) / n_buckets); fprintf (stream, "max bucket length: %lu\n", (unsigned long int) max_bucket_length); } /* Hash KEY and return a pointer to the selected bucket. If TABLE->hasher misbehaves, abort. */ static struct hash_entry * safe_hasher (const Hash_table *table, const void *key) { size_t n = table->hasher (key, table->n_buckets); if (! (n < table->n_buckets)) abort (); return table->bucket + n; } void * hash_lookup (const Hash_table *table, const void *entry) { struct hash_entry const *bucket = safe_hasher (table, entry); struct hash_entry const *cursor; if (bucket->data == NULL) return NULL; for (cursor = bucket; cursor; cursor = cursor->next) if (entry == cursor->data || table->comparator (entry, cursor->data)) return cursor->data; return NULL; } /* Walking. */ void * hash_get_first (const Hash_table *table) { struct hash_entry const *bucket; if (table->n_entries == 0) return NULL; for (bucket = table->bucket; ; bucket++) if (! (bucket < table->bucket_limit)) abort (); else if (bucket->data) return bucket->data; } void * hash_get_next (const Hash_table *table, const void *entry) { struct hash_entry const *bucket = safe_hasher (table, entry); struct hash_entry const *cursor; /* Find next entry in the same bucket. */ cursor = bucket; do { if (cursor->data == entry && cursor->next) return cursor->next->data; cursor = cursor->next; } while (cursor != NULL); /* Find first entry in any subsequent bucket. */ while (++bucket < table->bucket_limit) if (bucket->data) return bucket->data; /* None found. */ return NULL; } size_t hash_get_entries (const Hash_table *table, void **buffer, size_t buffer_size) { size_t counter = 0; struct hash_entry const *bucket; struct hash_entry const *cursor; for (bucket = table->bucket; bucket < table->bucket_limit; bucket++) { if (bucket->data) { for (cursor = bucket; cursor; cursor = cursor->next) { if (counter >= buffer_size) return counter; buffer[counter++] = cursor->data; } } } return counter; } size_t hash_do_for_each (const Hash_table *table, Hash_processor processor, void *processor_data) { size_t counter = 0; struct hash_entry const *bucket; struct hash_entry const *cursor; for (bucket = table->bucket; bucket < table->bucket_limit; bucket++) { if (bucket->data) { for (cursor = bucket; cursor; cursor = cursor->next) { if (! processor (cursor->data, processor_data)) return counter; counter++; } } } return counter; } /* Allocation and clean-up. */ #if USE_DIFF_HASH /* About hashings, Paul Eggert writes to me (FP), on 1994-01-01: "Please see B. J. McKenzie, R. Harries & T. Bell, Selecting a hashing algorithm, Software--practice & experience 20, 2 (Feb 1990), 209-224. Good hash algorithms tend to be domain-specific, so what's good for [diffutils'] io.c may not be good for your application." */ size_t hash_string (const char *string, size_t n_buckets) { # define HASH_ONE_CHAR(Value, Byte) \ ((Byte) + rotl_sz (Value, 7)) size_t value = 0; unsigned char ch; for (; (ch = *string); string++) value = HASH_ONE_CHAR (value, ch); return value % n_buckets; # undef HASH_ONE_CHAR } #else /* not USE_DIFF_HASH */ /* This one comes from 'recode', and performs a bit better than the above as per a few experiments. It is inspired from a hashing routine found in the very old Cyber 'snoop', itself written in typical Greg Mansfield style. (By the way, what happened to this excellent man? Is he still alive?) */ size_t hash_string (const char *string, size_t n_buckets) { size_t value = 0; unsigned char ch; for (; (ch = *string); string++) value = (value * 31 + ch) % n_buckets; return value; } #endif /* not USE_DIFF_HASH */ /* Return true if CANDIDATE is a prime number. CANDIDATE should be an odd number at least equal to 11. */ static bool is_prime (size_t candidate) { size_t divisor = 3; size_t square = divisor * divisor; while (square < candidate && (candidate % divisor)) { divisor++; square += 4 * divisor; divisor++; } return (candidate % divisor ? true : false); } /* Round a given CANDIDATE number up to the nearest prime, and return that prime. Primes lower than 10 are merely skipped. */ static size_t next_prime (size_t candidate) { /* Skip small primes. */ if (candidate < 10) candidate = 10; /* Make it definitely odd. */ candidate |= 1; while (SIZE_MAX != candidate && !is_prime (candidate)) candidate += 2; return candidate; } void hash_reset_tuning (Hash_tuning *tuning) { *tuning = default_tuning; } /* If the user passes a NULL hasher, we hash the raw pointer. */ static size_t raw_hasher (const void *data, size_t n) { /* When hashing unique pointers, it is often the case that they were generated by malloc and thus have the property that the low-order bits are 0. As this tends to give poorer performance with small tables, we rotate the pointer value before performing division, in an attempt to improve hash quality. */ size_t val = rotr_sz ((size_t) data, 3); return val % n; } /* If the user passes a NULL comparator, we use pointer comparison. */ static bool raw_comparator (const void *a, const void *b) { return a == b; } /* For the given hash TABLE, check the user supplied tuning structure for reasonable values, and return true if there is no gross error with it. Otherwise, definitively reset the TUNING field to some acceptable default in the hash table (that is, the user loses the right of further modifying tuning arguments), and return false. */ static bool check_tuning (Hash_table *table) { const Hash_tuning *tuning = table->tuning; float epsilon; if (tuning == &default_tuning) return true; /* Be a bit stricter than mathematics would require, so that rounding errors in size calculations do not cause allocations to fail to grow or shrink as they should. The smallest allocation is 11 (due to next_prime's algorithm), so an epsilon of 0.1 should be good enough. */ epsilon = 0.1f; if (epsilon < tuning->growth_threshold && tuning->growth_threshold < 1 - epsilon && 1 + epsilon < tuning->growth_factor && 0 <= tuning->shrink_threshold && tuning->shrink_threshold + epsilon < tuning->shrink_factor && tuning->shrink_factor <= 1 && tuning->shrink_threshold + epsilon < tuning->growth_threshold) return true; table->tuning = &default_tuning; return false; } /* Compute the size of the bucket array for the given CANDIDATE and TUNING, or return 0 if there is no possible way to allocate that many entries. */ static size_t compute_bucket_size (size_t candidate, const Hash_tuning *tuning) { if (!tuning->is_n_buckets) { float new_candidate = candidate / tuning->growth_threshold; if ((float) SIZE_MAX <= new_candidate) return 0; candidate = new_candidate; } candidate = next_prime (candidate); if (xalloc_oversized (candidate, sizeof (struct hash_entry *))) return 0; return candidate; } Hash_table * hash_initialize (size_t candidate, const Hash_tuning *tuning, Hash_hasher hasher, Hash_comparator comparator, Hash_data_freer data_freer) { Hash_table *table; if (hasher == NULL) hasher = raw_hasher; if (comparator == NULL) comparator = raw_comparator; table = malloc (sizeof *table); if (table == NULL) return NULL; if (!tuning) tuning = &default_tuning; table->tuning = tuning; if (!check_tuning (table)) { /* Fail if the tuning options are invalid. This is the only occasion when the user gets some feedback about it. Once the table is created, if the user provides invalid tuning options, we silently revert to using the defaults, and ignore further request to change the tuning options. */ goto fail; } table->n_buckets = compute_bucket_size (candidate, tuning); if (!table->n_buckets) goto fail; table->bucket = calloc (table->n_buckets, sizeof *table->bucket); if (table->bucket == NULL) goto fail; table->bucket_limit = table->bucket + table->n_buckets; table->n_buckets_used = 0; table->n_entries = 0; table->hasher = hasher; table->comparator = comparator; table->data_freer = data_freer; table->free_entry_list = NULL; #if USE_OBSTACK obstack_init (&table->entry_stack); #endif return table; fail: free (table); return NULL; } void hash_clear (Hash_table *table) { struct hash_entry *bucket; for (bucket = table->bucket; bucket < table->bucket_limit; bucket++) { if (bucket->data) { struct hash_entry *cursor; struct hash_entry *next; /* Free the bucket overflow. */ for (cursor = bucket->next; cursor; cursor = next) { if (table->data_freer) table->data_freer (cursor->data); cursor->data = NULL; next = cursor->next; /* Relinking is done one entry at a time, as it is to be expected that overflows are either rare or short. */ cursor->next = table->free_entry_list; table->free_entry_list = cursor; } /* Free the bucket head. */ if (table->data_freer) table->data_freer (bucket->data); bucket->data = NULL; bucket->next = NULL; } } table->n_buckets_used = 0; table->n_entries = 0; } void hash_free (Hash_table *table) { struct hash_entry *bucket; struct hash_entry *cursor; struct hash_entry *next; /* Call the user data_freer function. */ if (table->data_freer && table->n_entries) { for (bucket = table->bucket; bucket < table->bucket_limit; bucket++) { if (bucket->data) { for (cursor = bucket; cursor; cursor = cursor->next) table->data_freer (cursor->data); } } } #if USE_OBSTACK obstack_free (&table->entry_stack, NULL); #else /* Free all bucket overflowed entries. */ for (bucket = table->bucket; bucket < table->bucket_limit; bucket++) { for (cursor = bucket->next; cursor; cursor = next) { next = cursor->next; free (cursor); } } /* Also reclaim the internal list of previously freed entries. */ for (cursor = table->free_entry_list; cursor; cursor = next) { next = cursor->next; free (cursor); } #endif /* Free the remainder of the hash table structure. */ free (table->bucket); free (table); } /* Insertion and deletion. */ /* Get a new hash entry for a bucket overflow, possibly by recycling a previously freed one. If this is not possible, allocate a new one. */ static struct hash_entry * allocate_entry (Hash_table *table) { struct hash_entry *new; if (table->free_entry_list) { new = table->free_entry_list; table->free_entry_list = new->next; } else { #if USE_OBSTACK new = obstack_alloc (&table->entry_stack, sizeof *new); #else new = malloc (sizeof *new); #endif } return new; } /* Free a hash entry which was part of some bucket overflow, saving it for later recycling. */ static void free_entry (Hash_table *table, struct hash_entry *entry) { entry->data = NULL; entry->next = table->free_entry_list; table->free_entry_list = entry; } /* This private function is used to help with insertion and deletion. When ENTRY matches an entry in the table, return a pointer to the corresponding user data and set *BUCKET_HEAD to the head of the selected bucket. Otherwise, return NULL. When DELETE is true and ENTRY matches an entry in the table, unlink the matching entry. */ static void * hash_find_entry (Hash_table *table, const void *entry, struct hash_entry **bucket_head, bool delete) { struct hash_entry *bucket = safe_hasher (table, entry); struct hash_entry *cursor; *bucket_head = bucket; /* Test for empty bucket. */ if (bucket->data == NULL) return NULL; /* See if the entry is the first in the bucket. */ if (entry == bucket->data || table->comparator (entry, bucket->data)) { void *data = bucket->data; if (delete) { if (bucket->next) { struct hash_entry *next = bucket->next; /* Bump the first overflow entry into the bucket head, then save the previous first overflow entry for later recycling. */ *bucket = *next; free_entry (table, next); } else { bucket->data = NULL; } } return data; } /* Scan the bucket overflow. */ for (cursor = bucket; cursor->next; cursor = cursor->next) { if (entry == cursor->next->data || table->comparator (entry, cursor->next->data)) { void *data = cursor->next->data; if (delete) { struct hash_entry *next = cursor->next; /* Unlink the entry to delete, then save the freed entry for later recycling. */ cursor->next = next->next; free_entry (table, next); } return data; } } /* No entry found. */ return NULL; } /* Internal helper, to move entries from SRC to DST. Both tables must share the same free entry list. If SAFE, only move overflow entries, saving bucket heads for later, so that no allocations will occur. Return false if the free entry list is exhausted and an allocation fails. */ static bool transfer_entries (Hash_table *dst, Hash_table *src, bool safe) { struct hash_entry *bucket; struct hash_entry *cursor; struct hash_entry *next; for (bucket = src->bucket; bucket < src->bucket_limit; bucket++) if (bucket->data) { void *data; struct hash_entry *new_bucket; /* Within each bucket, transfer overflow entries first and then the bucket head, to minimize memory pressure. After all, the only time we might allocate is when moving the bucket head, but moving overflow entries first may create free entries that can be recycled by the time we finally get to the bucket head. */ for (cursor = bucket->next; cursor; cursor = next) { data = cursor->data; new_bucket = safe_hasher (dst, data); next = cursor->next; if (new_bucket->data) { /* Merely relink an existing entry, when moving from a bucket overflow into a bucket overflow. */ cursor->next = new_bucket->next; new_bucket->next = cursor; } else { /* Free an existing entry, when moving from a bucket overflow into a bucket header. */ new_bucket->data = data; dst->n_buckets_used++; free_entry (dst, cursor); } } /* Now move the bucket head. Be sure that if we fail due to allocation failure that the src table is in a consistent state. */ data = bucket->data; bucket->next = NULL; if (safe) continue; new_bucket = safe_hasher (dst, data); if (new_bucket->data) { /* Allocate or recycle an entry, when moving from a bucket header into a bucket overflow. */ struct hash_entry *new_entry = allocate_entry (dst); if (new_entry == NULL) return false; new_entry->data = data; new_entry->next = new_bucket->next; new_bucket->next = new_entry; } else { /* Move from one bucket header to another. */ new_bucket->data = data; dst->n_buckets_used++; } bucket->data = NULL; src->n_buckets_used--; } return true; } bool hash_rehash (Hash_table *table, size_t candidate) { Hash_table storage; Hash_table *new_table; size_t new_size = compute_bucket_size (candidate, table->tuning); if (!new_size) return false; if (new_size == table->n_buckets) return true; new_table = &storage; new_table->bucket = calloc (new_size, sizeof *new_table->bucket); if (new_table->bucket == NULL) return false; new_table->n_buckets = new_size; new_table->bucket_limit = new_table->bucket + new_size; new_table->n_buckets_used = 0; new_table->n_entries = 0; new_table->tuning = table->tuning; new_table->hasher = table->hasher; new_table->comparator = table->comparator; new_table->data_freer = table->data_freer; /* In order for the transfer to successfully complete, we need additional overflow entries when distinct buckets in the old table collide into a common bucket in the new table. The worst case possible is a hasher that gives a good spread with the old size, but returns a constant with the new size; if we were to guarantee table->n_buckets_used-1 free entries in advance, then the transfer would be guaranteed to not allocate memory. However, for large tables, a guarantee of no further allocation introduces a lot of extra memory pressure, all for an unlikely corner case (most rehashes reduce, rather than increase, the number of overflow entries needed). So, we instead ensure that the transfer process can be reversed if we hit a memory allocation failure mid-transfer. */ /* Merely reuse the extra old space into the new table. */ #if USE_OBSTACK new_table->entry_stack = table->entry_stack; #endif new_table->free_entry_list = table->free_entry_list; if (transfer_entries (new_table, table, false)) { /* Entries transferred successfully; tie up the loose ends. */ free (table->bucket); table->bucket = new_table->bucket; table->bucket_limit = new_table->bucket_limit; table->n_buckets = new_table->n_buckets; table->n_buckets_used = new_table->n_buckets_used; table->free_entry_list = new_table->free_entry_list; /* table->n_entries and table->entry_stack already hold their value. */ return true; } /* We've allocated new_table->bucket (and possibly some entries), exhausted the free list, and moved some but not all entries into new_table. We must undo the partial move before returning failure. The only way to get into this situation is if new_table uses fewer buckets than the old table, so we will reclaim some free entries as overflows in the new table are put back into distinct buckets in the old table. There are some pathological cases where a single pass through the table requires more intermediate overflow entries than using two passes. Two passes give worse cache performance and takes longer, but at this point, we're already out of memory, so slow and safe is better than failure. */ table->free_entry_list = new_table->free_entry_list; if (! (transfer_entries (table, new_table, true) && transfer_entries (table, new_table, false))) abort (); /* table->n_entries already holds its value. */ free (new_table->bucket); return false; } int hash_insert_if_absent (Hash_table *table, void const *entry, void const **matched_ent) { void *data; struct hash_entry *bucket; /* The caller cannot insert a NULL entry, since hash_lookup returns NULL to indicate "not found", and hash_find_entry uses "bucket->data == NULL" to indicate an empty bucket. */ if (! entry) abort (); /* If there's a matching entry already in the table, return that. */ if ((data = hash_find_entry (table, entry, &bucket, false)) != NULL) { if (matched_ent) *matched_ent = data; return 0; } /* If the growth threshold of the buckets in use has been reached, increase the table size and rehash. There's no point in checking the number of entries: if the hashing function is ill-conditioned, rehashing is not likely to improve it. */ if (table->n_buckets_used > table->tuning->growth_threshold * table->n_buckets) { /* Check more fully, before starting real work. If tuning arguments became invalid, the second check will rely on proper defaults. */ check_tuning (table); if (table->n_buckets_used > table->tuning->growth_threshold * table->n_buckets) { const Hash_tuning *tuning = table->tuning; float candidate = (tuning->is_n_buckets ? (table->n_buckets * tuning->growth_factor) : (table->n_buckets * tuning->growth_factor * tuning->growth_threshold)); if ((float) SIZE_MAX <= candidate) return -1; /* If the rehash fails, arrange to return NULL. */ if (!hash_rehash (table, candidate)) return -1; /* Update the bucket we are interested in. */ if (hash_find_entry (table, entry, &bucket, false) != NULL) abort (); } } /* ENTRY is not matched, it should be inserted. */ if (bucket->data) { struct hash_entry *new_entry = allocate_entry (table); if (new_entry == NULL) return -1; /* Add ENTRY in the overflow of the bucket. */ new_entry->data = (void *) entry; new_entry->next = bucket->next; bucket->next = new_entry; table->n_entries++; return 1; } /* Add ENTRY right in the bucket head. */ bucket->data = (void *) entry; table->n_entries++; table->n_buckets_used++; return 1; } void * hash_insert (Hash_table *table, void const *entry) { void const *matched_ent; int err = hash_insert_if_absent (table, entry, &matched_ent); return (err == -1 ? NULL : (void *) (err == 0 ? matched_ent : entry)); } void * hash_remove (Hash_table *table, const void *entry) { void *data; struct hash_entry *bucket; data = hash_find_entry (table, entry, &bucket, true); if (!data) return NULL; table->n_entries--; if (!bucket->data) { table->n_buckets_used--; /* If the shrink threshold of the buckets in use has been reached, rehash into a smaller table. */ if (table->n_buckets_used < table->tuning->shrink_threshold * table->n_buckets) { /* Check more fully, before starting real work. If tuning arguments became invalid, the second check will rely on proper defaults. */ check_tuning (table); if (table->n_buckets_used < table->tuning->shrink_threshold * table->n_buckets) { const Hash_tuning *tuning = table->tuning; size_t candidate = (tuning->is_n_buckets ? table->n_buckets * tuning->shrink_factor : (table->n_buckets * tuning->shrink_factor * tuning->growth_threshold)); if (!hash_rehash (table, candidate)) { /* Failure to allocate memory in an attempt to shrink the table is not fatal. But since memory is low, we can at least be kind and free any spare entries, rather than keeping them tied up in the free entry list. */ #if ! USE_OBSTACK struct hash_entry *cursor = table->free_entry_list; struct hash_entry *next; while (cursor) { next = cursor->next; free (cursor); cursor = next; } table->free_entry_list = NULL; #endif } } } } return data; } void * hash_delete (Hash_table *table, const void *entry) { return hash_remove (table, entry); } /* Testing. */ #if TESTING void hash_print (const Hash_table *table) { struct hash_entry *bucket = (struct hash_entry *) table->bucket; for ( ; bucket < table->bucket_limit; bucket++) { struct hash_entry *cursor; if (bucket) printf ("%lu:\n", (unsigned long int) (bucket - table->bucket)); for (cursor = bucket; cursor; cursor = cursor->next) { char const *s = cursor->data; /* FIXME */ if (s) printf (" %s\n", s); } } } #endif /* TESTING */ ================================================ FILE: gnulib/lib/hash.h ================================================ /* hash - hashing table processing. Copyright (C) 1998-1999, 2001, 2003, 2009-2021 Free Software Foundation, Inc. Written by Jim Meyering , 1998. (NB: I modified the original GPL boilerplate here to LGPLv2+. This is because of the weird way that gnulib uses licenses, where the real license is covered in the modules/X file. The real license for this file is LGPLv2+, not GPL. - RWMJ) This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ /* A generic hash table package. */ /* Make sure USE_OBSTACK is defined to 1 if you want the allocator to use obstacks instead of malloc, and recompile 'hash.c' with same setting. */ #ifndef HASH_H_ # define HASH_H_ # include # include # ifdef __cplusplus extern "C" { # endif struct hash_tuning { /* This structure is mainly used for 'hash_initialize', see the block documentation of 'hash_reset_tuning' for more complete comments. */ float shrink_threshold; /* ratio of used buckets to trigger a shrink */ float shrink_factor; /* ratio of new smaller size to original size */ float growth_threshold; /* ratio of used buckets to trigger a growth */ float growth_factor; /* ratio of new bigger size to original size */ bool is_n_buckets; /* if CANDIDATE really means table size */ }; typedef struct hash_tuning Hash_tuning; struct hash_table; typedef struct hash_table Hash_table; /* * Information and lookup. */ /* The following few functions provide information about the overall hash table organization: the number of entries, number of buckets and maximum length of buckets. */ /* Return the number of buckets in the hash table. The table size, the total number of buckets (used plus unused), or the maximum number of slots, are the same quantity. */ extern size_t hash_get_n_buckets (const Hash_table *table); /* Return the number of slots in use (non-empty buckets). */ extern size_t hash_get_n_buckets_used (const Hash_table *table); /* Return the number of active entries. */ extern size_t hash_get_n_entries (const Hash_table *table); /* Return the length of the longest chain (bucket). */ extern size_t hash_get_max_bucket_length (const Hash_table *table); /* Do a mild validation of a hash table, by traversing it and checking two statistics. */ extern bool hash_table_ok (const Hash_table *table); extern void hash_print_statistics (const Hash_table *table, FILE *stream); /* If ENTRY matches an entry already in the hash table, return the entry from the table. Otherwise, return NULL. */ extern void *hash_lookup (const Hash_table *table, const void *entry); /* * Walking. */ /* The functions in this page traverse the hash table and process the contained entries. For the traversal to work properly, the hash table should not be resized nor modified while any particular entry is being processed. In particular, entries should not be added, and an entry may be removed only if there is no shrink threshold and the entry being removed has already been passed to hash_get_next. */ /* Return the first data in the table, or NULL if the table is empty. */ extern void *hash_get_first (const Hash_table *table); /* Return the user data for the entry following ENTRY, where ENTRY has been returned by a previous call to either 'hash_get_first' or 'hash_get_next'. Return NULL if there are no more entries. */ extern void *hash_get_next (const Hash_table *table, const void *entry); /* Fill BUFFER with pointers to active user entries in the hash table, then return the number of pointers copied. Do not copy more than BUFFER_SIZE pointers. */ extern size_t hash_get_entries (const Hash_table *table, void **buffer, size_t buffer_size); typedef bool (*Hash_processor) (void *entry, void *processor_data); /* Call a PROCESSOR function for each entry of a hash table, and return the number of entries for which the processor function returned success. A pointer to some PROCESSOR_DATA which will be made available to each call to the processor function. The PROCESSOR accepts two arguments: the first is the user entry being walked into, the second is the value of PROCESSOR_DATA as received. The walking continue for as long as the PROCESSOR function returns nonzero. When it returns zero, the walking is interrupted. */ extern size_t hash_do_for_each (const Hash_table *table, Hash_processor processor, void *processor_data); /* * Allocation and clean-up. */ /* Return a hash index for a NUL-terminated STRING between 0 and N_BUCKETS-1. This is a convenience routine for constructing other hashing functions. */ extern size_t hash_string (const char *string, size_t n_buckets); extern void hash_reset_tuning (Hash_tuning *tuning); typedef size_t (*Hash_hasher) (const void *entry, size_t table_size); typedef bool (*Hash_comparator) (const void *entry1, const void *entry2); typedef void (*Hash_data_freer) (void *entry); /* Allocate and return a new hash table, or NULL upon failure. The initial number of buckets is automatically selected so as to _guarantee_ that you may insert at least CANDIDATE different user entries before any growth of the hash table size occurs. So, if have a reasonably tight a-priori upper bound on the number of entries you intend to insert in the hash table, you may save some table memory and insertion time, by specifying it here. If the IS_N_BUCKETS field of the TUNING structure is true, the CANDIDATE argument has its meaning changed to the wanted number of buckets. TUNING points to a structure of user-supplied values, in case some fine tuning is wanted over the default behavior of the hasher. If TUNING is NULL, the default tuning parameters are used instead. If TUNING is provided but the values requested are out of bounds or might cause rounding errors, return NULL. The user-supplied HASHER function, when not NULL, accepts two arguments ENTRY and TABLE_SIZE. It computes, by hashing ENTRY contents, a slot number for that entry which should be in the range 0..TABLE_SIZE-1. This slot number is then returned. The user-supplied COMPARATOR function, when not NULL, accepts two arguments pointing to user data, it then returns true for a pair of entries that compare equal, or false otherwise. This function is internally called on entries which are already known to hash to the same bucket index, but which are distinct pointers. The user-supplied DATA_FREER function, when not NULL, may be later called with the user data as an argument, just before the entry containing the data gets freed. This happens from within 'hash_free' or 'hash_clear'. You should specify this function only if you want these functions to free all of your 'data' data. This is typically the case when your data is simply an auxiliary struct that you have malloc'd to aggregate several values. */ extern Hash_table *hash_initialize (size_t candidate, const Hash_tuning *tuning, Hash_hasher hasher, Hash_comparator comparator, Hash_data_freer data_freer); /* Same as hash_initialize, but invokes xalloc_die on memory exhaustion. */ /* This function is defined by module 'xhash'. */ extern Hash_table *hash_xinitialize (size_t candidate, const Hash_tuning *tuning, Hash_hasher hasher, Hash_comparator comparator, Hash_data_freer data_freer); /* Make all buckets empty, placing any chained entries on the free list. Apply the user-specified function data_freer (if any) to the data of any affected entries. */ extern void hash_clear (Hash_table *table); /* Reclaim all storage associated with a hash table. If a data_freer function has been supplied by the user when the hash table was created, this function applies it to the data of each entry before freeing that entry. */ extern void hash_free (Hash_table *table); /* * Insertion and deletion. */ /* For an already existing hash table, change the number of buckets through specifying CANDIDATE. The contents of the hash table are preserved. The new number of buckets is automatically selected so as to _guarantee_ that the table may receive at least CANDIDATE different user entries, including those already in the table, before any other growth of the hash table size occurs. If TUNING->IS_N_BUCKETS is true, then CANDIDATE specifies the exact number of buckets desired. Return true iff the rehash succeeded. */ extern bool hash_rehash (Hash_table *table, size_t candidate); /* If ENTRY matches an entry already in the hash table, return the pointer to the entry from the table. Otherwise, insert ENTRY and return ENTRY. Return NULL if the storage required for insertion cannot be allocated. This implementation does not support duplicate entries or insertion of NULL. */ extern void *hash_insert (Hash_table *table, const void *entry); /* Same as hash_insert, but invokes xalloc_die on memory exhaustion. */ /* This function is defined by module 'xhash'. */ extern void *hash_xinsert (Hash_table *table, const void *entry); /* Insert ENTRY into hash TABLE if there is not already a matching entry. Return -1 upon memory allocation failure. Return 1 if insertion succeeded. Return 0 if there is already a matching entry in the table, and in that case, if MATCHED_ENT is non-NULL, set *MATCHED_ENT to that entry. This interface is easier to use than hash_insert when you must distinguish between the latter two cases. More importantly, hash_insert is unusable for some types of ENTRY values. When using hash_insert, the only way to distinguish those cases is to compare the return value and ENTRY. That works only when you can have two different ENTRY values that point to data that compares "equal". Thus, when the ENTRY value is a simple scalar, you must use hash_insert_if_absent. ENTRY must not be NULL. */ extern int hash_insert_if_absent (Hash_table *table, const void *entry, const void **matched_ent); /* If ENTRY is already in the table, remove it and return the just-deleted data (the user may want to deallocate its storage). If ENTRY is not in the table, don't modify the table and return NULL. */ extern void *hash_remove (Hash_table *table, const void *entry); /* Same as hash_remove. This interface is deprecated. FIXME: Remove in 2022. */ extern void *hash_delete (Hash_table *table, const void *entry); # ifdef __cplusplus } # endif #endif ================================================ FILE: gnulib/lib/ignore-value.h ================================================ /* ignore a function return without a compiler warning. -*- coding: utf-8 -*- Copyright (C) 2008-2021 Free Software Foundation, Inc. (NB: I modified the original GPL boilerplate here to LGPLv2+. This is because of the weird way that gnulib uses licenses, where the real license is covered in the modules/X file. The real license for this file is LGPLv2+, not GPL. - RWMJ) This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ /* Written by Jim Meyering, Eric Blake and Pádraig Brady. */ /* Use "ignore_value" to avoid a warning when using a function declared with gcc's warn_unused_result attribute, but for which you really do want to ignore the result. Traditionally, people have used a "(void)" cast to indicate that a function's return value is deliberately unused. However, if the function is declared with __attribute__((warn_unused_result)), gcc issues a warning even with the cast. Caution: most of the time, you really should heed gcc's warning, and check the return value. However, in those exceptional cases in which you're sure you know what you're doing, use this function. For the record, here's one of the ignorable warnings: "copy.c:233: warning: ignoring return value of 'fchown', declared with attribute warn_unused_result". */ #ifndef _GL_IGNORE_VALUE_H #define _GL_IGNORE_VALUE_H /* Normally casting an expression to void discards its value, but GCC versions 3.4 and newer have __attribute__ ((__warn_unused_result__)) which may cause unwanted diagnostics in that case. Use __typeof__ and __extension__ to work around the problem, if the workaround is known to be needed. The workaround is not needed with clang. */ #if (3 < __GNUC__ + (4 <= __GNUC_MINOR__)) && !defined __clang__ # define ignore_value(x) \ (__extension__ ({ __typeof__ (x) __x = (x); (void) __x; })) #else # define ignore_value(x) ((void) (x)) #endif #endif ================================================ FILE: gnulib/lib/xalloc-oversized.h ================================================ /* xalloc-oversized.h -- memory allocation size checking Copyright (C) 1990-2000, 2003-2004, 2006-2021 Free Software Foundation, Inc. (NB: I modified the original GPL boilerplate here to LGPLv2+. This is because of the weird way that gnulib uses licenses, where the real license is covered in the modules/X file. The real license for this file is LGPLv2+, not GPL. - RWMJ) This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef XALLOC_OVERSIZED_H_ #define XALLOC_OVERSIZED_H_ #include #include /* True if N * S would overflow in a size_t calculation, or would generate a value larger than PTRDIFF_MAX. This expands to a constant expression if N and S are both constants. By gnulib convention, SIZE_MAX represents overflow in size calculations, so the conservative size_t-based dividend to use here is SIZE_MAX - 1. */ #define __xalloc_oversized(n, s) \ ((size_t) (PTRDIFF_MAX < SIZE_MAX ? PTRDIFF_MAX : SIZE_MAX - 1) / (s) < (n)) #if PTRDIFF_MAX < SIZE_MAX typedef ptrdiff_t __xalloc_count_type; #else typedef size_t __xalloc_count_type; #endif /* Return 1 if an array of N objects, each of size S, cannot exist reliably due to size or ptrdiff_t arithmetic overflow. S must be positive and N must be nonnegative. This is a macro, not a function, so that it works correctly even when SIZE_MAX < N. */ #if 7 <= __GNUC__ && !defined __clang__ # define xalloc_oversized(n, s) \ __builtin_mul_overflow_p (n, s, (__xalloc_count_type) 1) #elif 5 <= __GNUC__ && !defined __ICC && !__STRICT_ANSI__ # define xalloc_oversized(n, s) \ (__builtin_constant_p (n) && __builtin_constant_p (s) \ ? __xalloc_oversized (n, s) \ : ({ __xalloc_count_type __xalloc_count; \ __builtin_mul_overflow (n, s, &__xalloc_count); })) /* Other compilers use integer division; this may be slower but is more portable. */ #else # define xalloc_oversized(n, s) __xalloc_oversized (n, s) #endif #endif /* !XALLOC_OVERSIZED_H_ */ ================================================ FILE: gnulib/lib/xstrtol.c ================================================ /* A more useful interface to strtol. Copyright (C) 1995-1996, 1998-2001, 2003-2007, 2009-2021 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* Written by Jim Meyering. */ #ifndef __strtol # define __strtol strtol # define __strtol_t long int # define __xstrtol xstrtol # define STRTOL_T_MINIMUM LONG_MIN # define STRTOL_T_MAXIMUM LONG_MAX #endif #include #include "xstrtol.h" /* Some pre-ANSI implementations (e.g. SunOS 4) need stderr defined if assertion checking is enabled. */ #include #include #include #include #include #include #include #define TYPE_SIGNED(t) (! ((t) 0 < (t) -1)) static strtol_error bkm_scale (__strtol_t *x, int scale_factor) { if (TYPE_SIGNED (__strtol_t) && *x < STRTOL_T_MINIMUM / scale_factor) { *x = STRTOL_T_MINIMUM; return LONGINT_OVERFLOW; } if (STRTOL_T_MAXIMUM / scale_factor < *x) { *x = STRTOL_T_MAXIMUM; return LONGINT_OVERFLOW; } *x *= scale_factor; return LONGINT_OK; } static strtol_error bkm_scale_by_power (__strtol_t *x, int base, int power) { strtol_error err = LONGINT_OK; while (power--) err |= bkm_scale (x, base); return err; } /* FIXME: comment. */ strtol_error __xstrtol (const char *s, char **ptr, int strtol_base, __strtol_t *val, const char *valid_suffixes) { char *t_ptr; char **p; __strtol_t tmp; strtol_error err = LONGINT_OK; assert (0 <= strtol_base && strtol_base <= 36); p = (ptr ? ptr : &t_ptr); errno = 0; if (! TYPE_SIGNED (__strtol_t)) { const char *q = s; unsigned char ch = *q; while (isspace (ch)) ch = *++q; if (ch == '-') return LONGINT_INVALID; } tmp = __strtol (s, p, strtol_base); if (*p == s) { /* If there is no number but there is a valid suffix, assume the number is 1. The string is invalid otherwise. */ if (valid_suffixes && **p && strchr (valid_suffixes, **p)) tmp = 1; else return LONGINT_INVALID; } else if (errno != 0) { if (errno != ERANGE) return LONGINT_INVALID; err = LONGINT_OVERFLOW; } /* Let valid_suffixes == NULL mean "allow any suffix". */ /* FIXME: update all callers except the ones that allow suffixes after the number, changing last parameter NULL to "". */ if (!valid_suffixes) { *val = tmp; return err; } if (**p != '\0') { int base = 1024; int suffixes = 1; strtol_error overflow; if (!strchr (valid_suffixes, **p)) { *val = tmp; return err | LONGINT_INVALID_SUFFIX_CHAR; } switch (**p) { case 'E': case 'G': case 'g': case 'k': case 'K': case 'M': case 'm': case 'P': case 'T': case 't': case 'Y': case 'Z': /* The "valid suffix" '0' is a special flag meaning that an optional second suffix is allowed, which can change the base. A suffix "B" (e.g. "100MB") stands for a power of 1000, whereas a suffix "iB" (e.g. "100MiB") stands for a power of 1024. If no suffix (e.g. "100M"), assume power-of-1024. */ if (strchr (valid_suffixes, '0')) switch (p[0][1]) { case 'i': if (p[0][2] == 'B') suffixes += 2; break; case 'B': case 'D': /* 'D' is obsolescent */ base = 1000; suffixes++; break; } } switch (**p) { case 'b': overflow = bkm_scale (&tmp, 512); break; case 'B': /* This obsolescent first suffix is distinct from the 'B' second suffix above. E.g., 'tar -L 1000B' means change the tape after writing 1000 KiB of data. */ overflow = bkm_scale (&tmp, 1024); break; case 'c': overflow = LONGINT_OK; break; case 'E': /* exa or exbi */ overflow = bkm_scale_by_power (&tmp, base, 6); break; case 'G': /* giga or gibi */ case 'g': /* 'g' is undocumented; for compatibility only */ overflow = bkm_scale_by_power (&tmp, base, 3); break; case 'k': /* kilo */ case 'K': /* kibi */ overflow = bkm_scale_by_power (&tmp, base, 1); break; case 'M': /* mega or mebi */ case 'm': /* 'm' is undocumented; for compatibility only */ overflow = bkm_scale_by_power (&tmp, base, 2); break; case 'P': /* peta or pebi */ overflow = bkm_scale_by_power (&tmp, base, 5); break; case 'T': /* tera or tebi */ case 't': /* 't' is undocumented; for compatibility only */ overflow = bkm_scale_by_power (&tmp, base, 4); break; case 'w': overflow = bkm_scale (&tmp, 2); break; case 'Y': /* yotta or 2**80 */ overflow = bkm_scale_by_power (&tmp, base, 8); break; case 'Z': /* zetta or 2**70 */ overflow = bkm_scale_by_power (&tmp, base, 7); break; default: *val = tmp; return err | LONGINT_INVALID_SUFFIX_CHAR; } err |= overflow; *p += suffixes; if (**p) err |= LONGINT_INVALID_SUFFIX_CHAR; } *val = tmp; return err; } ================================================ FILE: gnulib/lib/xstrtol.h ================================================ /* A more useful interface to strtol. Copyright (C) 1995-1996, 1998-1999, 2001-2004, 2006-2021 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #ifndef XSTRTOL_H_ # define XSTRTOL_H_ 1 # include # ifndef _STRTOL_ERROR enum strtol_error { LONGINT_OK = 0, /* These two values can be ORed together, to indicate that both errors occurred. */ LONGINT_OVERFLOW = 1, LONGINT_INVALID_SUFFIX_CHAR = 2, LONGINT_INVALID_SUFFIX_CHAR_WITH_OVERFLOW = (LONGINT_INVALID_SUFFIX_CHAR | LONGINT_OVERFLOW), LONGINT_INVALID = 4 }; typedef enum strtol_error strtol_error; # endif # define _DECLARE_XSTRTOL(name, type) \ strtol_error name (const char *, char **, int, type *, const char *); _DECLARE_XSTRTOL (xstrtol, long int) _DECLARE_XSTRTOL (xstrtoul, unsigned long int) _DECLARE_XSTRTOL (xstrtoll, long long int) _DECLARE_XSTRTOL (xstrtoull, unsigned long long int) _DECLARE_XSTRTOL (xstrtoimax, intmax_t) _DECLARE_XSTRTOL (xstrtoumax, uintmax_t) #endif /* not XSTRTOL_H_ */ ================================================ FILE: gnulib/lib/xstrtoll.c ================================================ /* Note the license of this file is "GPL". It is used in the daemon * and in guestfish which have a compatible license. */ #define __strtol strtoll #define __strtol_t long long int #define __xstrtol xstrtoll #define STRTOL_T_MINIMUM LLONG_MIN #define STRTOL_T_MAXIMUM LLONG_MAX #include "xstrtol.c" ================================================ FILE: gnulib/lib/xstrtoul.c ================================================ #define __strtol strtoul #define __strtol_t unsigned long int #define __xstrtol xstrtoul #define STRTOL_T_MINIMUM 0 #define STRTOL_T_MAXIMUM ULONG_MAX #include "xstrtol.c" ================================================ FILE: gnulib/lib/xstrtoull.c ================================================ #define __strtol strtoull #define __strtol_t unsigned long long int #define __xstrtol xstrtoull #define STRTOL_T_MINIMUM 0 #define STRTOL_T_MAXIMUM ULLONG_MAX #include "xstrtol.c" ================================================ FILE: gnulib/lib/xstrtoumax.c ================================================ #define __strtol strtoumax #define __strtol_t uintmax_t #define __xstrtol xstrtoumax #define STRTOL_T_MINIMUM 0 #define STRTOL_T_MAXIMUM UINTMAX_MAX #include "xstrtol.c" ================================================ FILE: in-place/Makefile.am ================================================ # libguestfs virt-v2v-in-place tool # Copyright (C) 2009-2025 Red Hat Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. include $(top_srcdir)/subdir-rules.mk EXTRA_DIST = \ test-docs.sh \ $(SOURCES_MLI) \ $(SOURCES_ML) \ $(SOURCES_C) \ virt-v2v-in-place.pod \ $(NULL) SOURCES_MLI = \ in_place.mli SOURCES_ML = \ in_place.ml SOURCES_C = \ dummy.c bin_PROGRAMS = virt-v2v-in-place virt_v2v_in_place_SOURCES = $(SOURCES_C) virt_v2v_in_place_CPPFLAGS = \ -DCAML_NAME_SPACE \ -I. \ -I$(top_builddir) \ -I$(shell $(OCAMLC) -where) \ -I$(top_srcdir)/lib \ $(NULL) virt_v2v_in_place_CFLAGS = \ -pthread \ $(WARN_CFLAGS) $(WERROR_CFLAGS) \ $(LIBGUESTFS_CFLAGS) \ $(LIBVIRT_CFLAGS) \ $(NULL) BOBJECTS = $(SOURCES_ML:.ml=.cmo) XOBJECTS = $(BOBJECTS:.cmo=.cmx) OCAMLPACKAGES = \ -package str,unix,guestfs,libvirt,nbd \ -I $(top_builddir)/common/utils/.libs \ -I $(top_builddir)/common/qemuopts/.libs \ -I $(top_builddir)/gnulib/lib/.libs \ -I $(top_builddir)/lib \ -I $(top_builddir)/input \ -I $(top_builddir)/convert \ -I $(top_builddir)/inspector \ -I $(top_builddir)/common/mlstdutils \ -I $(top_builddir)/common/mlutils \ -I $(top_builddir)/common/mlgettext \ -I $(top_builddir)/common/mlpcre \ -I $(top_builddir)/common/mlxml \ -I $(top_builddir)/common/mltools \ -I $(top_builddir)/common/mlcustomize \ -I $(top_builddir)/common/mldrivers \ $(NULL) if HAVE_OCAML_PKG_GETTEXT OCAMLPACKAGES += -package gettext-stub endif OCAMLCLIBS = \ -pthread \ -lqemuopts \ $(LIBGUESTFS_LIBS) \ $(LIBVIRT_LIBS) \ $(LIBCRYPT_LIBS) \ $(LIBXML2_LIBS) \ $(JSON_C_LIBS) \ $(LIBOSINFO_LIBS) \ $(LIBINTL) \ $(LIBNBD_LIBS) \ -lgnu \ $(NULL) OCAMLFLAGS = $(OCAML_FLAGS) $(OCAML_WARN_ERROR) -ccopt '$(CFLAGS)' if !HAVE_OCAMLOPT OBJECTS = $(BOBJECTS) else OBJECTS = $(XOBJECTS) endif OCAMLLINKFLAGS = \ mlstdutils.$(MLARCHIVE) \ mlgettext.$(MLARCHIVE) \ mlpcre.$(MLARCHIVE) \ mlxml.$(MLARCHIVE) \ mlcutils.$(MLARCHIVE) \ mltools.$(MLARCHIVE) \ mllibvirt.$(MLARCHIVE) \ mlcustomize.$(MLARCHIVE) \ mldrivers.$(MLARCHIVE) \ mlv2vlib.$(MLARCHIVE) \ mlconvert.$(MLARCHIVE) \ mlinput.$(MLARCHIVE) \ create_inspector_xml.$(MLOBJECT) \ $(LINK_CUSTOM_OCAMLC_ONLY) \ $(NULL) virt_v2v_in_place_DEPENDENCIES = \ $(OBJECTS) \ $(top_builddir)/input/mlinput.$(MLARCHIVE) \ $(top_builddir)/convert/mlconvert.$(MLARCHIVE) \ $(top_builddir)/lib/mlv2vlib.$(MLARCHIVE) \ $(top_srcdir)/ocaml-link.sh \ $(NULL) virt_v2v_in_place_LINK = \ $(top_srcdir)/ocaml-link.sh -cclib '$(OCAMLCLIBS)' -- \ $(OCAMLFIND) $(BEST) $(OCAMLFLAGS) $(OCAMLPACKAGES) $(OCAMLLINKFLAGS) \ $(OBJECTS) -o $@ # Data directory. virttoolsdatadir = $(datadir)/virt-tools # Dependencies. .depend: \ $(srcdir)/*.mli \ $(srcdir)/*.ml \ $(filter %.ml,$(BUILT_SOURCES)) $(top_builddir)/ocaml-dep.sh $^ -include .depend # Manual pages. man_MANS = virt-v2v-in-place.1 noinst_DATA = $(top_builddir)/website/virt-v2v-in-place.1.html # Man page is preprocessed with m4 for conditional sections. PP_M4 = \ m4 \ -D ENABLE_BLOCK_DRIVER=$(ENABLE_BLOCK_DRIVER) \ -D ENABLE_XEN=$(ENABLE_XEN) \ -D ENABLE_GLANCE=$(ENABLE_GLANCE) \ -D ENABLE_OVIRT=$(ENABLE_OVIRT) \ $(NULL) virt-v2v-in-place.1 $(top_builddir)/website/virt-v2v-in-place.1.html: stamp-virt-v2v-in-place.pod stamp-virt-v2v-in-place.pod: virt-v2v-in-place.pod $(PODWRAPPER) \ --pp "$(PP_M4)" \ --man virt-v2v-in-place.1 \ --html $(top_builddir)/website/virt-v2v-in-place.1.html \ --path $(top_srcdir)/common/options \ --license GPLv2+ \ --warning safe \ $< $(AM_V_at)touch $@ TESTS_ENVIRONMENT = $(top_builddir)/run --test TESTS = test-docs.sh ================================================ FILE: in-place/dummy.c ================================================ /* Dummy source, to be used for OCaml-based tools with no C sources. */ enum { foo = 1 }; ================================================ FILE: in-place/in_place.ml ================================================ (* virt-v2v-in-place * Copyright (C) 2009-2025 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) open Printf open Unix open Std_utils open Tools_utils open Unix_utils open Common_gettext.Gettext open Getopt.OptionName open Types open Utils open Create_inspector_xml type output_xml_option = | No_output_xml | Output_xml_to_stdout | Output_xml_to_file of string (* Matches --mac command line parameters. *) let mac_re = PCRE.compile "^([[:xdigit:]]{2}:[[:xdigit:]]{2}:[[:xdigit:]]{2}:[[:xdigit:]]{2}:[[:xdigit:]]{2}:[[:xdigit:]]{2}):(network|bridge|ip):(.*)$" let mac_ip_re = PCRE.compile "^([[:xdigit:]]|:|\\.)+$" let rec main () = let set_string_option_once optname optref arg = match !optref with | Some _ -> error (f_"%s option used more than once on the command line") optname | None -> optref := Some arg in let bandwidth = ref None in let bandwidth_file = ref None in let block_driver = ref None in let input_conn = ref None in let input_format = ref None in let input_password = ref None in let input_options = ref [] in let io_query = ref false in let set_input_option_compat k v = List.push_back input_options (k, v) in let set_input_option option = if option = "?" then io_query := true else ( let k, v = String.split "=" option in set_input_option_compat k v ) in let memsize = ref None in let set_memsize arg = memsize := Some arg in let smp = ref None in let set_smp arg = smp := Some arg in let network_map = Networks.create () in let output_xml = ref No_output_xml in let set_output_xml_option filename = if filename = "-" then output_xml := Output_xml_to_stdout else output_xml := Output_xml_to_file filename in let static_ips = ref [] in let rec add_network str = match String.split ":" str with | "", "" -> error (f_"invalid -n/--network parameter") | out, "" | "", out -> Networks.add_default_network network_map out | in_, out -> Networks.add_network network_map in_ out and add_bridge str = match String.split ":" str with | "", "" -> error (f_"invalid -b/--bridge parameter") | out, "" | "", out -> Networks.add_default_bridge network_map out | in_, out -> Networks.add_bridge network_map in_ out and add_mac str = if not (PCRE.matches mac_re str) then error (f_"cannot parse --mac \"%s\" parameter") str; let mac = PCRE.sub 1 and out = PCRE.sub 3 in match PCRE.sub 2 with | "network" -> Networks.add_mac network_map mac Network out | "bridge" -> Networks.add_mac network_map mac Bridge out | "ip" -> (match String.nsplit "," out with | [] -> error (f_"invalid --mac ip option") | [ip] -> add_static_ip mac ip "" "" [] | [ip; gw] -> add_static_ip mac ip gw "" [] | ip :: gw :: len :: nameservers -> add_static_ip mac ip gw len nameservers ) | _ -> assert false and add_static_ip if_mac_addr if_ip_address if_default_gateway if_prefix_length_str if_nameservers = (* Check the IP addresses and prefix length are sensible. This * is only a very simple test that they are sane, since IP addresses * come in too many valid forms to check thoroughly. *) let rec error_unless_ip_addr what addr = if not (PCRE.matches mac_ip_re addr) then error (f_"cannot parse --mac ip %s: doesn’t look like “%s” is \ an IP address") what addr in error_unless_ip_addr "ipaddr" if_ip_address; let if_default_gateway = match if_default_gateway with "" -> None | gw -> Some gw in Option.iter (error_unless_ip_addr "gw") if_default_gateway; List.iter (error_unless_ip_addr "nameserver") if_nameservers; let if_prefix_length = match if_prefix_length_str with | "" -> None | len -> let len = try int_of_string len with | Failure _ -> error (f_"cannot parse --mac ip prefix length \ field as an integer: %s") len in if len < 0 || len > 128 then error (f_"--mac ip prefix length field is out of range"); Some len in List.push_back static_ips { if_mac_addr; if_ip_address; if_default_gateway; if_prefix_length; if_nameservers } in let root_choice = ref default_root_choice in let set_root_choice = Types.set_root_choice root_choice in (* Other options that we handle here. *) let no_fstrim = ref false in let print_source = ref false in let input_modes = Select_input.input_modes |> List.map Select_input.string_of_input_mode |> String.concat "|" in let input_mode = ref None in let set_input_mode mode = if !input_mode <> None then error (f_"%s option used more than once on the command line") "-i"; input_mode := Some (Select_input.input_mode_of_string mode) in let argspec = ref [ [ S 'b'; L"bridge" ], Getopt.String ("in:out", add_bridge), s_"Map bridge ‘in’ to ‘out’"; [ S 'i' ], Getopt.String (input_modes, set_input_mode), s_"Set input mode (default: libvirt)"; [ M"ic" ], Getopt.String ("uri", set_string_option_once "-ic" input_conn), s_"Libvirt URI"; [ M"if" ], Getopt.String ("format", set_string_option_once "-if" input_format), s_"Input format"; [ M"io" ], Getopt.String ("option[=value]", set_input_option), s_"Set option for input mode"; [ M"ip" ], Getopt.String ("filename", set_string_option_once "-ip" input_password), s_"Use password from file to connect to input hypervisor"; [ L"mac" ], Getopt.String ("mac:network|bridge|ip:out", add_mac), s_"Map NIC to network or bridge or assign static IP"; [ S 'm'; L"memsize" ], Getopt.Int ("mb", set_memsize), s_"Set memory size"; [ S 'n'; L"network" ], Getopt.String ("in:out", add_network), s_"Map network ‘in’ to ‘out’"; [ S 'O' ], Getopt.String ("output.xml", set_output_xml_option), s_"Set the output filename"; [ L"no-fstrim" ], Getopt.Set no_fstrim, s_"Don't trim filesystems before conversion"; [ L"print-source" ], Getopt.Set print_source, s_"Print source and stop"; [ L"root" ], Getopt.String ("ask|... ", set_root_choice), s_"How to choose root filesystem"; [ L"smp" ], Getopt.Int ("vcpus", set_smp), s_"Set number of vCPUs"; ] in if Config.enable_block_driver then List.push_front ([ L"block-driver" ], Getopt.String ("driver", set_string_option_once "--block-driver" block_driver), s_"Prefer 'virtio-blk' or 'virtio-scsi'") argspec; (* Append virt-customize options. *) let customize_argspec, get_customize_ops = Customize_cmdline.argspec ~v2v:true () in let customize_argspec = List.map (fun (spec, _, _) -> spec) customize_argspec in List.push_back_list argspec customize_argspec; let argspec = !argspec in let args = ref [] in let anon_fun s = List.push_front s args in let usage_msg = sprintf (f_"\ %s: convert a guest to use KVM in-place Note this program modifies the guest in-place with no backup. Normally you should use virt-v2v. virt-v2v-in-place -i libvirtxml guest-domain.xml virt-v2v-in-place -i disk disk.img A short summary of the options is given below. For detailed help please read the man page virt-v2v-in-place(1). ") prog in let opthandle = create_standard_options argspec ~anon_fun ~key_opts:true ~machine_readable:true usage_msg in Getopt.parse opthandle.getopt; (* Print the version, easier than asking users to tell us. *) debug "info: %s: %s %s (%s)" prog Config.package_name Config.package_version_full Config.host_cpu; (* Print the libvirt version if debugging. *) if verbose () then ( let major, minor, release = Libvirt_utils.libvirt_get_version () in debug "info: libvirt version: %d.%d.%d" major minor release ); (* Create the v2v directory to control conversion. *) let v2vdir = create_v2v_directory () in (* Dereference the arguments. *) let args = List.rev !args in let block_driver = match !block_driver with | None | Some "virtio-blk" -> Virtio_blk | Some "virtio-scsi" -> Virtio_SCSI | Some driver -> error (f_"unknown block driver ‘--block-driver %s’") driver in let customize_ops = get_customize_ops () in let input_conn = !input_conn in let input_mode = !input_mode in let no_fstrim = !no_fstrim in let memsize = !memsize in let output_xml = !output_xml in let print_source = !print_source in let root_choice = !root_choice in let smp = !smp in let static_ips = !static_ips in (* No arguments and machine-readable mode? Print out some facts * about what this binary supports. *) (match args, machine_readable () with | [], Some { pr } -> pr "virt-v2v-in-place\n"; pr "virt-v2v-in-place-2.0\n"; pr "libguestfs-rewrite\n"; pr "colours-option\n"; pr "in-place\n"; pr "io\n"; pr "mac-option\n"; pr "mac-ip-option\n"; pr "customize-ops\n"; pr "output-xml-option\n"; if Config.enable_block_driver then pr "block-driver-option\n"; Select_input.input_modes |> List.map Select_input.string_of_input_mode |> List.iter (pr "input:%s\n"); pr "convert:linux\n"; pr "convert:windows\n"; List.iter (pr "ovf:%s\n") Create_ovf.ovf_flavours; exit 0 | _, _ -> () ); (* Select the input module. *) let (module Input_module) = Select_input.select_input ~allow_remote:false (* forbid remote inputs *) input_mode input_conn None (* no -it option *) in let input_options = { Input.bandwidth = (match !bandwidth, !bandwidth_file with | None, None -> None | Some rate, None -> Some (StaticBandwidth rate) | rate, Some filename -> Some (DynamicBandwidth (rate, filename))); input_conn = input_conn; input_format = !input_format; input_options = !input_options; input_password = !input_password; input_transport = None; read_only = false; (* No protective overlay on the source. *) } in (* If -io ? then we want to query input options supported in this mode. *) if !io_query then ( Input_module.query_input_options (); exit 0 ); (* Get the conversion options. *) let conv_options = { Convert.block_driver = block_driver; keep_serial_console = true; ks = opthandle.ks; memsize; network_map; root_choice; smp; static_ips; customize_ops; no_fstrim; } in (* Before starting the input module, check there is sufficient * free space in the temporary directory on the host. *) check_host_free_space (); (* Start the input module (runs an NBD server in the background). *) message (f_"Setting up the source: %s") (Input_module.to_string input_options args); let source, input_disks = Input_module.setup v2vdir input_options args in (* If --print-source then print the source metadata and exit. *) if print_source then ( printf (f_"Source guest information (--print-source option):\n"); printf "\n"; printf "%s\n" (Types.string_of_source source); exit 0 ); (* Do the conversion. *) with_open_out (v2vdir // "convert") (fun _ -> ()); let inspect, target_meta = Convert.convert input_disks conv_options source in unlink (v2vdir // "convert"); (* Debug the v2vdir. *) if verbose () then ( let cmd = sprintf "ls -alZ %s 1>&2" (quote v2vdir) in ignore (Sys.command cmd) ); (* Write the post-conversion metadata, if asked. *) let chan = match output_xml with | No_output_xml -> None | Output_xml_to_stdout -> Some Stdlib.stdout | Output_xml_to_file filename -> Some (open_out filename) in Option.iter ( fun chan -> let doc = create_inspector_xml input_disks inspect target_meta in DOM.doc_to_chan chan doc; Stdlib.flush chan ) chan; message (f_"Finishing off"); (* As the last thing, write a file indicating success before * we exit (so before we kill the helpers). The helpers may * use the presence or absence of the file to determine if * on-success or on-fail cleanup is required. *) with_open_out (v2vdir // "done") (fun _ -> ()) (* Conversion can fail or hang if there is insufficient free space in * the large temporary directory. Some input modules use large_tmpdir * to unpack OVAs or store qcow2 overlays and some output modules * use it to store temporary files. In addition the 500 MB guestfs * appliance may be created there. (RHBZ#1316479, RHBZ#2051394) *) and check_host_free_space () = let free_space = StatVFS.free_space (StatVFS.statvfs large_tmpdir) in debug "check_host_free_space: large_tmpdir=%s free_space=%Ld" large_tmpdir free_space; if free_space < 1_073_741_824L then error (f_"insufficient free space in the conversion server temporary \ directory %s (%s).\n\nEither free up space in that directory, \ or set the LIBGUESTFS_CACHEDIR environment variable to point \ to another directory with more than 1GB of free space.\n\n\ See also the virt-v2v(1) manual, section \"Minimum free \ space check in the host\".") large_tmpdir (human_size free_space) let () = run_main_and_handle_errors main ================================================ FILE: in-place/in_place.mli ================================================ (* virt-v2v-in-place * Copyright (C) 2009-2025 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) (* virt-v2v-in-place main program. Nothing is exported. *) ================================================ FILE: in-place/test-docs.sh ================================================ #!/bin/bash - # libguestfs # Copyright (C) 2016-2025 Red Hat Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. source ../tests/functions.sh set -e set -x skip_if_skipped $srcdir/../podcheck.pl virt-v2v-in-place.pod virt-v2v-in-place \ --path $srcdir/../common/options \ --ignore=\ --ic,\ --if,\ --io,\ --ip,\ --it,\ --oa,\ --oc,\ --of,\ --on,\ --oo,\ --op,\ --os,\ $virt_customize_options ================================================ FILE: in-place/virt-v2v-in-place.pod ================================================ =head1 NAME virt-v2v-in-place - Convert a guest to use KVM in-place =head1 SYNOPSIS virt-v2v-in-place -i disk [other -i* options] [virt-customize options] filename [-O output.xml] virt-v2v-in-place -i libvirt|libvirtxml [other -i* options] [virt-customize options] guest [-O output.xml] =head1 DESCRIPTION Virt-v2v-in-place converts a single guest from a foreign hypervisor to run on KVM. It does this conversion in place, modifying the original disk. This manual page only documents the differences between this tool and virt-v2v. You should read L first. =head2 Selecting the input disk You normally run virt-v2v with one or more I<-i*> options controlling the input mode. Virt-v2v-in-place can only convert guests stored in local files. This command will do an in-place conversion of F: virt-v2v-in-place -i disk filename.img If the guest has been copied to local libvirt then: virt-v2v-in-place -i libvirt guest =head2 Output XML Optionally use the I<-O> option to write post-conversion metadata about the guest to an XML file. This is in the same format as L. This can be used, for example, to find out what operating system and firmware was found inside the guest during conversion. =head2 Exit code If virt-v2v-in-place fails it will return a non-zero (error) exit code. In this case, the disk image will be in an B. If the image contains important information you should ensure you have a backup before trying a virt-v2v-in-place conversion. And you should check the exit code is zero before using the disk image after a conversion. =head1 EXAMPLES =head1 OPTIONS =over 4 =item B<--help> Display help. =item B<-b> ... =item B<--bridge> ... See I<--network> below. ifelse(ENABLE_BLOCK_DRIVER, yes, ` =item B<--block-driver> B =item B<--block-driver> B When choosing a block driver for Windows guests, prefer C or C. The default is C. Note this has no effect for Linux guests at the moment. That may be added in future. ') =item B<--colors> =item B<--colours> Use ANSI colour sequences to colourize messages. This is the default when the output is a tty. If the output of the program is redirected to a file, ANSI colour sequences are disabled unless you use this option. =item B<--echo-keys> When prompting for keys and passphrases, virt-v2v normally turns echoing off so you cannot see what you are typing. If you are not worried about Tempest attacks and there is no one else in the room you can specify this flag to see what you are typing. Note this options only applies to keys and passphrases for encrypted devices and partitions, not for passwords used to connect to remote servers. =item B<-i> B Set the input method to I. In this mode you can read a virtual machine disk image with no metadata. virt-v2v tries to guess the best default metadata. This is usually adequate but you can get finer control (eg. of memory and vCPUs) by using I<-i libvirtxml> instead. Only guests that use a single disk can be imported this way. =item B<-i> B Set the input method to I. This is the default. In this mode you have to specify a libvirt guest name or UUID on the command line. You may also specify a libvirt connection URI (see I<-ic>). =item B<-i> B Set the input method to I. In this mode you have to pass a libvirt XML file on the command line. This file is read in order to get metadata about the source guest (such as its name, amount of memory), and also to locate the input disks. See L below. =item B<-i> B This is the same as I<-i disk>. =item B<-ic> libvirtURI Specify a libvirt connection URI to use when reading the guest. This is only used when S>. Only local libvirt connections to locally stored disks can be used. =item B<-if> format For I<-i disk> only, this specifies the format of the input disk image. For other input methods you should specify the input format in the metadata. =item B<-io> OPTION=VALUE Set input option(s) related to the current input mode or transport. To display short help on what options are available you can use: virt-v2v-in-place -it disk -io "?" =item B<-ip> filename Supply a file containing a password to be used when connecting to the source. If this is omitted then the input hypervisor may ask for the password interactively. Note the file should contain the whole password, B, and for security the file should have mode C<0600> so that others cannot read it. __INCLUDE:key-option.pod__ __INCLUDE:keys-from-stdin-option.pod__ Note I<--keys-from-stdin> only applies to keys and passphrases for encrypted devices and partitions, not for passwords used to connect to remote servers. =item B<--mac> aa:bb:cc:dd:ee:ffB<:network:>out =item B<--mac> aa:bb:cc:dd:ee:ffB<:bridge:>out Map source NIC MAC address to a network or bridge. See L. =item B<--mac> aa:bb:cc:dd:ee:ffB<:ip:>ipaddr[,gw[,len[,ns,ns,...]]] Force a particular interface (controlled by its MAC address) to have a static IP address after boot. The fields in the parameter are: C is the IP address. C is the optional gateway IP address. C is the subnet mask length (an integer). The final parameters are zero or more nameserver IP addresses. This option can be supplied zero or more times. You only need to use this option for certain broken guests such as Windows which are unable to preserve MAC to static IP address mappings automatically. You don't need to use it if Windows is using DHCP. It is currently ignored for Linux guests since they do not have this problem. =item B<--machine-readable> =item B<--machine-readable>=format This option is used to make the output more machine friendly when being parsed by other programs. See L. =item B<-m> MB =item B<--memsize> MB Change the amount of memory allocated when doing the conversion. Virt-v2v-in-place will usually choose a suitable default. Increase this if you see that the conversion step is running out of memory. =item B<-n> in:out =item B<-n> out =item B<--network> in:out =item B<--network> out =item B<-b> in:out =item B<-b> out =item B<--bridge> in:out =item B<--bridge> out Map network (or bridge) called C to network (or bridge) called C. If no C prefix is given, all other networks (or bridges) are mapped to C. See L. =item B<--no-fstrim> Do not trim the filesystem. See L. =item B<-O> output.xml =item B<-O -> If this option is present, write post-conversion metadata about the guest to the named XML file, or to stdout if I<-O -> is used. This is in the same format as L. =item B<--print-source> Print information about the source guest and stop. This option is useful when you are setting up network and bridge maps. See L. =item B<-q> =item B<--quiet> This disables progress bars and other unnecessary output. =item B<--root> ... Choose the root filesystem to be converted. See the documentation of this option in L. =item B<--smp> N Change the number of virtual CPUs used when doing the conversion. Virt-v2v-in-place will usually choose a suitable default. Increasing this beyond 8 may improve conversion performance, if your host has sufficient physical CPUs. You may also need to increase the memory size (I<--memsize> option). =item B<-v> =item B<--verbose> Enable verbose messages for debugging. =item B<-V> =item B<--version> Display version number and exit. =item B<--wrap> Wrap error, warning, and informative messages. This is the default when the output is a tty. If the output of the program is redirected to a file, wrapping is disabled unless you use this option. =item B<-x> Enable tracing of libguestfs API calls. =back =head2 Minimal XML for -i libvirtxml option When using the I<-i libvirtxml> option, you have to supply some libvirt XML. Writing this from scratch is hard, so the template below is helpful. B If you have libvirt metadata for the guest, always use that instead. NAME 1048576 2 hvm 123123... =head2 Disk checksum The optional EchecksumE field specifies the expected hash of the corresponding disk. It can be specified by management tools in order to do end-to-end data integrity checks. Note this is the checksum of the raw format content of the disk. If the disk is in a container format (eg. qcow2) it is the checksum of the content, I of the container. The checksum method attribute can be C, C or C. The fail attribute can be C to fail the conversion if the checksum does not match; C to print a warning but continue; C to ignore the checksum and not even compute it; or C to print the actual checksum and continue. The default is C. Computing the checksum of a remote (eg HTTP) source can be slow and expensive. =head1 FILES Files used are the same as for virt-v2v. See L. =head1 ENVIRONMENT VARIABLES Environment variables used are the same as for virt-v2v. See L. =head1 SEE ALSO L, L, L, L, L, L, L. =head1 AUTHORS Matthew Booth Cédric Bosdonnat Laszlo Ersek Tomáš Golembiovský Shahar Havivi Richard W.M. Jones Roman Kagan Mike Latimer Nir Soffer Pino Toscano Xiaodai Wang Ming Xie Tingting Zheng =head1 COPYRIGHT Copyright (C) 2009-2025 Red Hat Inc. ================================================ FILE: input/Makefile.am ================================================ # helper-v2v-input tool # Copyright (C) 2009-2025 Red Hat Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. include $(top_srcdir)/subdir-rules.mk EXTRA_DIST = \ $(SOURCES_MLI) \ $(SOURCES_ML) \ $(NULL) SOURCES_MLI = \ input.mli \ input_disk.mli \ input_libvirt.mli \ input_ova.mli \ input_vcenter_https.mli \ input_vddk.mli \ input_vmx.mli \ input_xen_ssh.mli \ nbdkit_curl.mli \ nbdkit_ssh.mli \ OVA.mli \ OVF.mli \ parse_domain_from_vmx.mli \ parse_libvirt_xml.mli \ VMX.mli \ select_input.mli \ ssh.mli \ vCenter.mli \ $(NULL) SOURCES_ML = \ parse_libvirt_xml.ml \ OVF.ml \ OVA.ml \ nbdkit_curl.ml \ nbdkit_ssh.ml \ ssh.ml \ VMX.ml \ parse_domain_from_vmx.ml \ vCenter.ml \ input.ml \ input_disk.ml \ input_libvirt.ml \ input_ova.ml \ input_vcenter_https.ml \ input_vddk.ml \ input_vmx.ml \ input_xen_ssh.ml \ select_input.ml \ $(NULL) # We pretend that we're building a C library. automake handles the # compilation of the C sources for us. At the end we take the C # objects and OCaml objects and link them into the OCaml library. # This C library is never used. noinst_LIBRARIES = libmlinput.a if !HAVE_OCAMLOPT MLINPUT_CMA = mlinput.cma else MLINPUT_CMA = mlinput.cmxa endif noinst_DATA = $(MLINPUT_CMA) libmlinput_a_SOURCES = dummy.c libmlinput_a_CPPFLAGS = \ -DCAML_NAME_SPACE \ -I. \ -I$(top_builddir) \ -I$(shell $(OCAMLC) -where) \ -I$(top_srcdir)/lib \ $(NULL) libmlinput_a_CFLAGS = \ -pthread \ -fPIC \ $(WARN_CFLAGS) $(WERROR_CFLAGS) \ $(LIBGUESTFS_CFLAGS) \ $(NULL) BOBJECTS = $(SOURCES_ML:.ml=.cmo) XOBJECTS = $(BOBJECTS:.cmo=.cmx) OCAMLPACKAGES = \ -package str,unix,guestfs,libvirt,nbd \ -I $(top_builddir)/common/utils/.libs \ -I $(top_builddir)/gnulib/lib/.libs \ -I $(top_builddir)/lib \ -I $(top_builddir)/common/mlstdutils \ -I $(top_builddir)/common/mlutils \ -I $(top_builddir)/common/mlgettext \ -I $(top_builddir)/common/mlpcre \ -I $(top_builddir)/common/mltools \ -I $(top_builddir)/common/mlxml \ $(NULL) if HAVE_OCAML_PKG_GETTEXT OCAMLPACKAGES += -package gettext-stub endif OCAMLCLIBS = \ -pthread \ $(LIBGUESTFS_LIBS) \ $(LIBXML2_LIBS) \ -lgnu \ $(NULL) OCAMLFLAGS = $(OCAML_FLAGS) $(OCAML_WARN_ERROR) -ccopt '$(CFLAGS)' if !HAVE_OCAMLOPT OBJECTS = $(BOBJECTS) else OBJECTS = $(XOBJECTS) endif OCAMLLINKFLAGS = \ mlstdutils.$(MLARCHIVE) \ mlcutils.$(MLARCHIVE) \ mlgettext.$(MLARCHIVE) \ mlpcre.$(MLARCHIVE) \ mlxml.$(MLARCHIVE) \ mltools.$(MLARCHIVE) \ mllibvirt.$(MLARCHIVE) \ mlv2vlib.$(MLARCHIVE) \ $(LINK_CUSTOM_OCAMLC_ONLY) \ $(NULL) libmlinput_a_DEPENDENCIES = \ $(OBJECTS) $(MLINPUT_CMA): $(OBJECTS) libmlinput.a $(AM_V_GEN) $(OCAMLFIND) mklib $(OCAMLPACKAGES) \ $(OBJECTS) $(libmlinput_a_OBJECTS) -o mlinput # Dependencies. .depend: \ $(srcdir)/*.mli \ $(srcdir)/*.ml $(top_builddir)/ocaml-dep.sh $^ -include .depend ================================================ FILE: input/OVA.ml ================================================ (* virt-v2v * Copyright (C) 2009-2025 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) open Printf open Unix open Std_utils open Tools_utils open Unix_utils open Common_gettext.Gettext open Utils type t = { (* Save the original OVA name, for error messages. *) orig_ova : string; (* Top directory of OVA. If the OVA was already a directory then * this is just that directory. However in normal cases this is * a temporary directory that we create, unpacking either just the * OVF and MF files, or those plus the disks. This temporary * directory will be cleaned up on exit. *) top_dir : string; ova_type : ova_type; } and ova_type = (* The original OVA was a directory. Or the OVA was fully unpacked * into a temporary directory. * * In either case everything is available in [top_dir]. *) | Directory (* The original OVA was an uncompressed tar file and we are able * to optimize access to the disks by keeping them in the tarball. * * The OVF and MF files only have been unpacked in [top_dir]. *) | TarOptimized of string (* tarball *) let string_of_t { orig_ova; top_dir; ova_type } = sprintf "orig_ova = %s, top_dir = %s, ova_type = %s" orig_ova top_dir (match ova_type with | Directory -> "Directory" | TarOptimized tarball -> "TarOptimized " ^ tarball) type file_ref = | LocalFile of string | TarFile of string * string type mf_record = file_ref * Checksums.csum_t let rec parse_ova ova = (* The spec allows a directory to be specified as an ova. This * is also pretty convenient. *) let top_dir, ova_type = if is_directory ova then ova, Directory else ( let tmpdir = let t = Mkdtemp.temp_dir ~base_dir:large_tmpdir "ova." in On_exit.rm_rf t; t in match detect_file_type ova with | `Tar -> (* Normal ovas are tar file (not compressed). *) (* In newer QEMU we don't have to extract everything. * We can access disks inside the tar archive directly. *) if qemu_img_supports_offset_and_size () && libvirt_supports_json_raw_driver () && (untar_metadata ova tmpdir; no_disks_are_compressed ova tmpdir) then tmpdir, TarOptimized ova else ( (* If qemu/libvirt is too old or any disk is compressed * then we must fall back on the slow path. *) untar ova tmpdir; tmpdir, Directory ) | `Zip -> (* However, although not permitted by the spec, people ship * zip files as ova too. *) let cmd = [ "unzip" ] @ (if verbose () then [] else [ "-q" ]) @ [ "-j"; "-d"; tmpdir; ova ] in if run_command cmd <> 0 then error (f_"error unpacking %s, see earlier error messages") ova; tmpdir, Directory | (`GZip|`XZ) as format -> (match uncompressed_type format ova with | `Tar -> untar ~format ova tmpdir; tmpdir, Directory | `Zip | `GZip | `XZ | `Unknown -> error (f_"%s: unsupported file format\n\nFormats which we \ currently understand for '-i ova' are: tar \ (uncompressed, compress with gzip or xz), zip") ova ) | `Unknown -> error (f_"%s: unsupported file format\n\nFormats which we \ currently understand for '-i ova' are: tar (uncompressed, \ compress with gzip or xz), zip") ova ) in (* Exploded path must be absolute (RHBZ#1155121). *) let top_dir = absolute_path top_dir in (* top_dir must not end with / except if it == "/" (which is * likely not what you want). (RHBZ#1964324) *) let top_dir = if top_dir = "/" || not (String.ends_with "/" top_dir) then top_dir else String.sub top_dir 0 (String.length top_dir - 1) in (* If virt-v2v is running as root, and the backend is libvirt, then * we have to chmod the directory to 0755 and files to 0644 * so it is readable by qemu.qemu. This is libvirt bug RHBZ#890291. *) if Unix.geteuid () = 0 && backend_is_libvirt () then ( warning (f_"making OVA directory public readable to work around \ libvirt bug https://bugzilla.redhat.com/1045069"); let what = match ova_type with | Directory -> [ top_dir ] | TarOptimized ova -> [ top_dir; ova ] in let cmd = [ "chmod"; "-R"; "go=u,go-w" ] @ what in ignore (run_command cmd) ); let ova = { orig_ova = ova; top_dir; ova_type } in debug "ova: %s" (string_of_t ova); ova (* Return true if [libvirt] supports ["json:"] pseudo-URLs and accepts the * ["raw"] driver. Function also returns true if [libvirt] backend is not * used. This didn't work in libvirt < 3.1.0. *) and libvirt_supports_json_raw_driver () = if backend_is_libvirt () then ( let sup = Libvirt_utils.libvirt_get_version () >= (3, 1, 0) in debug "libvirt supports \"raw\" driver in json URL: %B" sup; sup ) else true (* No disks compressed? We need to check the OVF file. *) and no_disks_are_compressed ova tmpdir = let t = { orig_ova = ova; top_dir = tmpdir; ova_type = Directory } in let ovf = get_ovf_file t in let disks = OVF.parse_disks ovf in not (List.exists (fun { OVF.compressed } -> compressed) disks) and pigz_available = let test = lazy (shell_command "pigz --help >/dev/null 2>&1" = 0) in fun () -> Lazy.force test and pxz_available = let test = lazy (shell_command "pxz --help >/dev/null 2>&1" = 0) in fun () -> Lazy.force test and zcat_command_of_format = function | `GZip -> if pigz_available () then "pigz -c -d" else "gzip -c -d" | `XZ -> if pxz_available () then "pxz -c -d" else "xz -c -d" (* Untar part or all files from tar archive. If [paths] is specified it is * a list of paths in the tar archive. *) and untar ?format ?(paths = []) file outdir = let paths = String.concat " " (List.map quote paths) in let cmd = match format with | None -> sprintf "tar -xf %s -C %s %s" (quote file) (quote outdir) paths | Some ((`GZip|`XZ) as format) -> sprintf "%s %s | tar -xf - -C %s %s" (zcat_command_of_format format) (quote file) (quote outdir) paths in if shell_command cmd <> 0 then error (f_"error unpacking %s, see earlier error messages") file (* Untar only ovf and manifest from the archive *) and untar_metadata file outdir = let files = external_command (sprintf "tar -tf %s" (Filename.quote file)) in let files = List.filter_map ( fun f -> if Filename.check_suffix f ".ovf" || Filename.check_suffix f ".mf" then Some f else None ) files in untar ~paths:files file outdir (* Uncompress the first few bytes of [file] and return it as * [(bytes, len)]. *) and uncompress_head format file = let cmd = sprintf "%s %s" (zcat_command_of_format format) (quote file) in let chan_out, chan_in, chan_err = Unix.open_process_full cmd [||] in let b = Bytes.create 512 in let len = input chan_out b 0 (Bytes.length b) in (* We're expecting the subprocess to fail because we close * the pipe early, so: *) ignore (Unix.close_process_full (chan_out, chan_in, chan_err)); b, len (* Run [detect_file_type] on a compressed file, returning the * type of the uncompressed content (if known). *) and uncompressed_type format file = let head, headlen = uncompress_head format file in let tmpfile, chan = Filename.open_temp_file "ova.file." "" in output chan head 0 headlen; close_out chan; let ret = detect_file_type tmpfile in Sys.remove tmpfile; ret (* Find files in [dir] ending with [ext]. *) and find_files dir ext = let rec loop = function | [] -> [] | dir :: rest -> let files = Array.to_list (Sys.readdir dir) in (* Ignore dot-underscore-files, added when using 'tar' on some Macs. *) let files = List.filter (fun x -> not (String.starts_with "._" x)) files in (* Prefix with the directory to form a path. *) let files = List.map (Filename.concat dir) files in let dirs, files = List.partition Sys.is_directory files in (* Only files with the given extension. *) let files = List.filter (fun x -> Filename.check_suffix x ext) files in files @ loop (rest @ dirs) in loop [dir] and get_ovf_file { orig_ova; top_dir } = let ovf = find_files top_dir ".ovf" in match ovf with | [] -> error (f_"no .ovf file was found in %s") orig_ova | [x] -> x | _ :: _ -> error (f_"more than one .ovf file was found in %s") orig_ova let rex = PCRE.compile "^(SHA1|SHA256)[[:space:]]*\\((.*)\\)[[:space:]]*= ([0-9a-fA-F]+)\r?$" let get_manifest { top_dir; ova_type } = let mf_files = find_files top_dir ".mf" in let manifest = List.map ( fun mf -> debug "ova: processing manifest file %s" mf; (* (1) (2) * mf: /bar.mf /foo/bar.mf * mf_folder: /foo * mf_subfolder: "" foo *) let mf_folder = Filename.dirname mf in let mf_subfolder = if String.starts_with (top_dir // "") mf_folder then ( (* 2 *) let len = String.length top_dir + 1 in String.sub mf_folder len (String.length mf_folder - len) ) else if top_dir = mf_folder then "" (* 1 *) else assert false in with_open_in mf ( fun chan -> let ret = ref [] in let rec loop () = let line = input_line chan in if PCRE.matches rex line then ( let csum_type = PCRE.sub 1 and filename = PCRE.sub 2 and expected = PCRE.sub 3 in let csum = Checksums.of_string csum_type expected in let file_ref = match ova_type with | Directory -> LocalFile (mf_folder // filename) | TarOptimized tar -> TarFile (tar, mf_subfolder // filename) in List.push_front (file_ref, csum) ret ) else warning (f_"unable to parse line from manifest file: %S") line; loop () in (try loop () with End_of_file -> ()); !ret ) ) mf_files in List.flatten manifest let get_file_list { top_dir; ova_type } = match ova_type with | Directory -> let cmd = sprintf "cd %s && find -type f" (quote top_dir) in let files = external_command cmd in let files = List.sort compare files in List.map (fun filename -> LocalFile (top_dir // filename)) files | TarOptimized tar -> let cmd = sprintf "tar -tf %s" (quote tar) in let files = external_command cmd in (* Don't include directories in the final list. *) let files = List.filter (fun s -> not (String.ends_with "/" s)) files in let files = List.sort compare files in List.map (fun filename -> TarFile (tar, filename)) files let resolve_href ({ top_dir; ova_type } as t) href = let ovf = get_ovf_file t in let ovf_folder = Filename.dirname ovf in (* Since [href] comes from an untrusted source, we must ensure * that it doesn't reference a path outside [top_dir]. An * additional complication is that [href] is relative to * the directory containing the OVF ([ovf_folder]). A further * complication is that the file might not exist at all. *) match ova_type with | Directory -> let filename = ovf_folder // href in let real_top_dir = Realpath.realpath top_dir in (try let filename = Realpath.realpath filename in if not (String.starts_with real_top_dir filename) then error (f_"-i ova: invalid OVA file: path ‘%s’ references a file \ outside the archive") href; Some (LocalFile filename) with Unix_error (ENOENT, "realpath", _) -> None ) | TarOptimized tar -> (* Security: Since the only thing we will do with the computed * filename is to call get_tar_offet_and_size, it doesn't * matter if the filename is bogus or references some file * on the filesystem outside the tarball. Therefore we don't * need to do any sanity checking here. *) (* (1) (2) * ovf: /bar.ovf /foo/bar.ovf * ovf_folder: /foo * subdir: "" foo * filename: href foo/href *) let filename = if String.starts_with (top_dir // "") ovf_folder then ( (* 2 *) let len = String.length top_dir + 1 in String.sub ovf_folder len (String.length ovf_folder - len) // href ) else if top_dir = ovf_folder then href (* 1 *) else assert false in (* Does the file exist in the tarball? *) let cmd = sprintf "tar tf %s %s >/dev/null 2>&1" (quote tar) (quote filename) in debug "ova: testing if %s exists in %s" filename tar; if Sys.command cmd = 0 then ( debug "ova: file exists"; Some (TarFile (tar, filename)) ) else ( debug "ova: file does not exist"; None ) let ws = PCRE.compile "\\s+" let re_tar_message = PCRE.compile "\\*\\* [^*]+ \\*\\*$" let get_tar_offet_and_size tar filename = let cmd = sprintf "LANG=C tar \ --no-auto-compress --quoting-style=literal --numeric-owner \ -tRvf %s" (Filename.quote tar) in let lines = external_command cmd in let rec loop lines = match lines with | [] -> raise Not_found | line :: lines -> ( (* Lines have the form: * block : / * or: * block : ** Block of NULs ** * block : ** End of File ** *) if PCRE.matches re_tar_message line then loop lines (* ignore "** Block of NULs **" etc. *) else ( let elems = PCRE.nsplit ~max:8 ws line in if List.length elems = 8 && List.hd elems = "block" then ( let elems = Array.of_list elems in let offset = elems.(1) in let size = elems.(4) in let fname = elems.(7) in if fname <> filename then loop lines else ( let offset = try (* There should be a colon at the end *) let i = String.rindex offset ':' in if i == (String.length offset)-1 then Int64.of_string (String.sub offset 0 i) else failwith "colon at wrong position" with Failure _ | Not_found -> failwithf (f_"invalid offset returned by tar: %S") offset in let size = try Int64.of_string size with Failure _ -> failwithf (f_"invalid size returned by tar: %S") size in (* Note: Offset is actually block number and there is a single * block with tar header at the beginning of the file. So skip * the header and convert the block number to bytes before * returning. *) (offset +^ 1L) *^ 512L, size ) ) else failwithf (f_"failed to parse line returned by tar: %S") line ) ) in loop lines ================================================ FILE: input/OVA.mli ================================================ (* virt-v2v * Copyright (C) 2009-2025 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) (** Helper functions for dealing with the OVA pseudo-format. *) type t val parse_ova : string -> t (** The parameter references either an OVA file or a directory containing an unpacked OVA. The OVA is "opened". If necessary, parts of the OVA are unpacked into a temporary directory. This can consume a lot of space, although we are able to optimize some common cases. This does {b not} parse or verify the OVF, MF or disks. *) val get_ovf_file : t -> string (** Return the filename of the OVF file from the OVA. This will be a local file (might be a temporary file) valid for the lifetime of the handle. The filename can be passed directly to {!OVF.parse_ovf_from_ova}. *) type file_ref = | LocalFile of string (** A local filename. *) | TarFile of string * string (** Tar file containing file. *) (** A file reference, pointing usually to a disk. If the OVA is unpacked during parsing then this points to a local file. It might be a temporary file, but it is valid for the lifetime of the handle. If we are optimizing access to the OVA then it might also be a reference to a file within a tarball. *) type mf_record = file_ref * Checksums.csum_t (** A manifest record: (file reference, checksum of file). *) val get_manifest : t -> mf_record list (** Find and parse all manifest ([*.mf]) files in the OVA. Parse out the filenames and checksums from these files and return the full manifest as a single list. Note the checksums are returned, but this function does not verify them. Also VMware-generated OVAs can return non-existent files in this list. *) val get_file_list : t -> file_ref list (** List the files actually found in the OVA file. This can be different from the manifest (which is often incorrect). *) val resolve_href : t -> string -> file_ref option (** Resolve an OVF [href] into an actual file reference. Returns [None] if the file does not exist. *) val get_tar_offet_and_size : string -> string -> int64 * int64 (** [get_tar_offet_and_size tar filename] looks up file in the [tar] archive and returns a tuple containing at which byte it starts and how long the file is. Function raises [Not_found] if there is no such file inside [tar] and [Failure] if there is any error parsing the tar output. *) ================================================ FILE: input/OVF.ml ================================================ (* virt-v2v * Copyright (C) 2009-2025 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) (* Parse OVF from an externally produced OVA file. *) open Std_utils open Tools_utils open Unix_utils open Common_gettext.Gettext open Types open Utils open Xpath_helpers open Printf type disk = { source_disk : Types.source_disk; href : string; (* The from the OVF file. *) compressed : bool; (* If the file is gzip compressed. *) } let xpathctx_of_ovf ovf_filename = let doc = Xml.parse_file ovf_filename in (* Handle namespaces. *) let xpathctx = Xml.xpath_new_context doc in Xml.xpath_register_ns xpathctx "ovf" "http://schemas.dmtf.org/ovf/envelope/1"; Xml.xpath_register_ns xpathctx "rasd" "http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData"; Xml.xpath_register_ns xpathctx "vmw" "http://www.vmware.com/schema/ovf"; Xml.xpath_register_ns xpathctx "vssd" "http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_VirtualSystemSettingData"; xpathctx let rec parse_ovf_from_ova ovf_filename = let xpathctx = xpathctx_of_ovf ovf_filename in let xpath_string = xpath_string xpathctx and xpath_int = xpath_int xpathctx and xpath_int64 = xpath_int64 xpathctx in (* Search for vm name. *) let name = match xpath_string "/ovf:Envelope/ovf:VirtualSystem/ovf:Name/text()" with | None | Some "" -> None | Some _ as name -> name in (* Search for memory. *) 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 let memory = memory *^ 1024L *^ 1024L in (* Search for number of vCPUs. *) let vcpu = Option.value ~default:1 (xpath_int "/ovf:Envelope/ovf:VirtualSystem/ovf:VirtualHardwareSection/ovf:Item[rasd:ResourceType/text()=3]/rasd:VirtualQuantity/text()") in (* CPU topology. coresPerSocket is a VMware proprietary extension. * I couldn't find out how hyperthreads is specified in the OVF. *) let cores_per_socket = xpath_int "/ovf:Envelope/ovf:VirtualSystem/ovf:VirtualHardwareSection/ovf:Item[rasd:ResourceType/text()=3]/vmw:CoresPerSocket/text()" in let cpu_topology = match cores_per_socket with | None -> None | Some cores_per_socket when cores_per_socket <= 0 -> warning (f_"invalid vmw:CoresPerSocket (%d) ignored") cores_per_socket; None | Some cores_per_socket -> let sockets = vcpu / cores_per_socket in if sockets <= 0 then ( warning (f_"invalid vmw:CoresPerSocket < number of cores"); None ) else Some { s_cpu_sockets = sockets; s_cpu_cores = cores_per_socket; s_cpu_threads = 1 } in (* BIOS or EFI firmware? *) let firmware_opt = xpath_string "/ovf:Envelope/ovf:VirtualSystem/ovf:VirtualHardwareSection/vmw:Config[@vmw:key=\"firmware\"]/@vmw:value" in let firmware = match firmware_opt with | Some "efi" -> UEFI | Some "bios" -> BIOS | None -> UnknownFirmware | Some s -> error (f_"unknown Config:firmware value %s (expected \"bios\" or \"efi\")") s; in name, memory, vcpu, cpu_topology, firmware, parse_disks xpathctx, parse_removables xpathctx, parse_nics xpathctx (* Hard disks (ResourceType = 17). *) and parse_disks xpathctx = let xpath_string = xpath_string xpathctx and xpath_int = xpath_int xpathctx in let disks = ref [] in let expr = "/ovf:Envelope/ovf:VirtualSystem/ovf:VirtualHardwareSection/ovf:Item[rasd:ResourceType/text()=17]" in let obj = Xml.xpath_eval_expression xpathctx expr in let nr_nodes = Xml.xpathobj_nr_nodes obj in for i = 0 to nr_nodes-1 do let n = Xml.xpathobj_node obj i in Xml.xpathctx_set_current_context xpathctx n; (* XXX We assume the OVF lists these in order. let address = xpath_int "rasd:AddressOnParent/text()" in *) (* Find the parent controller. *) let parent_id = xpath_int "rasd:Parent/text()" in let controller = match parent_id with | None -> None | Some id -> parent_controller xpathctx id in Xml.xpathctx_set_current_context xpathctx n; let file_id = Option.value ~default:"" (xpath_string "rasd:HostResource/text()") in let rex = PCRE.compile "^(?:ovf:)?/disk/(.*)" in if PCRE.matches rex file_id then ( (* Chase the references through to the actual file name. *) let file_id = PCRE.sub 1 in let expr = sprintf "/ovf:Envelope/ovf:DiskSection/ovf:Disk[@ovf:diskId='%s']/@ovf:fileRef" file_id in let file_ref = match xpath_string expr with | None -> error (f_"error parsing disk fileRef") | Some s -> s in let expr = sprintf "/ovf:Envelope/ovf:References/ovf:File[@ovf:id='%s']/@ovf:href" file_ref in let href = match xpath_string expr with | None -> error (f_"no href in ovf:File (id=%s)") file_ref | Some s -> s in let expr = sprintf "/ovf:Envelope/ovf:References/ovf:File[@ovf:id='%s']/@ovf:compression" file_ref in let compressed = match xpath_string expr with | None | Some "identity" -> false | Some "gzip" -> true | Some s -> error (f_"unsupported compression in OVF: %s") s in let disk = { source_disk = { s_disk_id = i; s_controller = controller; }; href = href; compressed = compressed; } in List.push_front disk disks; ) else error (f_"could not parse disk rasd:HostResource from OVF document") done; List.rev !disks (* Floppies (ResourceType = 14), CDs (ResourceType = 15) and * CDROMs (ResourceType = 16). (What is the difference?) Try hard * to preserve the original ordering from the OVF. *) and parse_removables xpathctx = let xpath_int = xpath_int xpathctx in let removables = ref [] in 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 let obj = Xml.xpath_eval_expression xpathctx expr in let nr_nodes = Xml.xpathobj_nr_nodes obj in for i = 0 to nr_nodes-1 do let n = Xml.xpathobj_node obj i in Xml.xpathctx_set_current_context xpathctx n; let id = match xpath_int "rasd:ResourceType/text()" with | None -> assert false | Some (14|15|16 as i) -> i | Some _ -> assert false in let slot = xpath_int "rasd:AddressOnParent/text()" in (* Find the parent controller. *) let parent_id = xpath_int "rasd:Parent/text()" in let controller = match parent_id with | None -> None | Some id -> parent_controller xpathctx id in let typ = match id with | 14 -> Floppy | 15 | 16 -> CDROM | _ -> assert false in let disk = { s_removable_type = typ; s_removable_controller = controller; s_removable_slot = slot; } in List.push_front disk removables; done; List.rev !removables (* Search for networks ResourceType: 10 *) and parse_nics xpathctx = let xpath_string = xpath_string xpathctx in let nics = ref [] in let expr = "/ovf:Envelope/ovf:VirtualSystem/ovf:VirtualHardwareSection/ovf:Item[rasd:ResourceType/text()=10]" in let obj = Xml.xpath_eval_expression xpathctx expr in let nr_nodes = Xml.xpathobj_nr_nodes obj in for i = 0 to nr_nodes-1 do let n = Xml.xpathobj_node obj i in Xml.xpathctx_set_current_context xpathctx n; let vnet, vnet_type = match xpath_string "rasd:Connection/text()" with | Some connection -> connection, Bridge | None -> sprintf "eth%d" i, Network in let mac = xpath_string "rasd:Address/text()" in let nic_model = match xpath_string "rasd:ResourceSubType/text()" with | Some "E1000" -> Some Source_e1000 | Some model -> Some (Source_other_nic (String.lowercase_ascii model)) | None -> None in let nic = { s_mac = mac; s_nic_model = nic_model; s_vnet = vnet; s_vnet_type = vnet_type } in List.push_front nic nics done; List.rev !nics (* Helper function to return the parent controller of a disk. *) and parent_controller xpathctx id = let xpath_int = xpath_int xpathctx in let expr = sprintf "/ovf:Envelope/ovf:VirtualSystem/ovf:VirtualHardwareSection/ovf:Item[rasd:InstanceID/text()=%d]/rasd:ResourceType/text()" id in let controller = xpath_int expr in (* 5: IDE, 6: SCSI controller, 20: SATA *) match controller with | Some 5 -> Some Source_IDE | Some 6 -> Some Source_SCSI | Some 20 -> Some Source_SATA | None -> warning (f_"ova disk has no parent controller, please report this as \ a bug supplying the *.ovf file extracted from the ova"); None | Some controller -> warning (f_"ova disk has an unknown VMware controller type (%d), please \ report this as a bug supplying the *.ovf file extracted \ from the ova") controller; None let parse_disks ovf_filename = let xpathctx = xpathctx_of_ovf ovf_filename in parse_disks xpathctx ================================================ FILE: input/OVF.mli ================================================ (* virt-v2v * Copyright (C) 2009-2025 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) (** Parse OVF from an externally produced OVA file. This is used by [-i ova] only. OVA files are not a real standard so we must make some assumptions here. *) type disk = { source_disk : Types.source_disk; href : string; (** The from the OVF file. *) compressed : bool; (** If the href is gzip compressed. *) } (** A VMDK disk from a parsed OVF. *) val 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 (** Parse an OVF file. The returned tuple is [name, memory, vcpu, cpu_topology, firmware, disks, removables, nics] *) val parse_disks : string -> disk list (** As above, but returns only the disks. *) ================================================ FILE: input/VMX.ml ================================================ (* virt-v2v * Copyright (C) 2017 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) open Printf open Std_utils open Tools_utils open Common_gettext.Gettext (* As far as I can tell the VMX format is totally unspecified. * However libvirt has a useful selection of .vmx files in the * sources which explore some of the darker regions of this * format. * * So here are some facts about VMX derived from libvirt and * other places: * * - Keys are compared case insensitively. We assume here * that keys are 7-bit ASCII. * * - Multiple keys with the same name are not allowed. * * - Escaping in the value string is possible using a very weird * escape format: "|22" means the character '\x22'. To write * a pipe character you must use "|7C". * * - Boolean values are written "TRUE", "FALSE", "True", "true", etc. * Because of the quotes they cannot be distinguished from strings. * * - Comments (#...) and blank lines are ignored. Some files start * with a hash-bang path, but we ignore those as comments. This * parser also ignores any other line which it doesn't understand, * but will print a warning. * * - Multi-line values are not permitted. * * - Keys are namespaced using dots, eg. scsi0:0.deviceType has * the namespace "scsi0:0" and the key name "deviceType". * * - Using namespace.present = "FALSE" means that all other keys * in and under the namespace are ignored. * * - You cannot have a namespace and a key with the same name, eg. * this is not allowed: * namespace = "some value" * namespace.foo = "another value" * * - The Hashicorp packer VMX writer considers some special keys * as not requiring any quotes around their values, but I'm * ignoring that for now. *) (* This VMX file: * * foo.a = "abc" * foo.b = "def" * foo.bar.c = "abc" * foo.bar.d = "def" * * would be represented by this structure: * * "foo" => Namespace ( # "foo" is a namespace * "a" => Key "abc"; # "foo.a" is a key with value "abc" * "b" => Key "def"; * "bar" => Namespace ( # "foo.bar" is another namespace * "c" => Key "abc"; * "d" => Key "def"; * ) * ) * ‘( => )’s represent the StringMap type. *) type t = key StringMap.t and key = | Key of string | Namespace of t let empty = StringMap.empty (* Compare two trees for equality. *) let rec equal vmx1 vmx2 = let cmp k1 k2 = match k1, k2 with | Key v1, Key v2 -> v1 = v2 | Key _, Namespace _ -> false | Namespace _, Key _ -> false | Namespace vmx1, Namespace vmx2 -> equal vmx1 vmx2 in StringMap.equal cmp vmx1 vmx2 (* Higher-order functions. *) let rec select_namespaces pred vmx = _select_namespaces [] pred vmx and _select_namespaces path pred vmx = StringMap.fold ( fun k v new_vmx -> let path = path @ [k] in match v with | Key _ -> new_vmx | Namespace _ when pred path -> StringMap.add k v new_vmx | Namespace t -> let t = _select_namespaces path pred t in if not (equal t empty) then StringMap.add k (Namespace t) new_vmx else new_vmx ) vmx empty let rec map f vmx = _map [] f vmx and _map path f vmx = StringMap.fold ( fun k v r -> let path = path @ [k] in match v with | Key v -> r @ [ f path (Some v) ] | Namespace t -> r @ [ f path None ] @ _map path f t ) vmx [] let rec namespace_present vmx = function | [] -> false | [ns] -> let ns = String.lowercase_ascii ns in (try let v = StringMap.find ns vmx in match v with | Key _ -> false | Namespace _ -> true with Not_found -> false ) | ns :: path -> let ns = String.lowercase_ascii ns in (try let v = StringMap.find ns vmx in match v with | Key _ -> false | Namespace vmx -> namespace_present vmx path with Not_found -> false ) (* Dump the vmx structure to [chan]. Used for debugging. *) let rec print chan indent vmx = StringMap.iter (print_key chan indent) vmx and print_key chan indent k = function | Key v -> output_spaces chan indent; fprintf chan "%s = \"%s\"\n" k v | Namespace vmx -> output_spaces chan indent; fprintf chan "namespace '%s':\n" k; print chan (indent+4) vmx (* As above, but creates a string instead. *) let rec to_string indent vmx = StringMap.fold (fun k v str -> str ^ to_string_key indent k v) vmx "" and to_string_key indent k = function | Key v -> String.spaces indent ^ sprintf "%s = \"%s\"\n" k v | Namespace vmx -> String.spaces indent ^ sprintf "namespace '%s':\n" k ^ to_string (indent+4) vmx (* Access keys in the tree. *) let rec get_string vmx = function | [] -> None | [k] -> let k = String.lowercase_ascii k in (try let v = StringMap.find k vmx in match v with | Key v -> Some v | Namespace _ -> None with Not_found -> None ) | ns :: path -> let ns = String.lowercase_ascii ns in (try let v = StringMap.find ns vmx in match v with | Key v -> None | Namespace vmx -> get_string vmx path with Not_found -> None ) let get_int64 vmx path = match get_string vmx path with | None -> None | Some i -> Some (Int64.of_string i) let get_int vmx path = match get_string vmx path with | None -> None | Some i -> Some (int_of_string i) let rec get_bool vmx path = match get_string vmx path with | None -> None | Some t -> Some (vmx_bool_of_string t) and vmx_bool_of_string t = if String.lowercase_ascii t = "true" then true else if String.lowercase_ascii t = "false" then false else failwith "bool_of_string" (* Regular expression used to match key = "value" in VMX file. *) let rex = PCRE.compile "^([^ \t=]+)\\s*=\\s*\"(.*)\"$" (* Remove the weird escapes used in value strings. See description above. *) let remove_vmx_escapes str = let len = String.length str in let out = Bytes.make len '\000' in let j = ref 0 in let rec loop i = if i >= len then () else ( let c = String.unsafe_get str i in if i <= len-3 && c = '|' then ( let c1 = str.[i+1] and c2 = str.[i+2] in if Char.isxdigit c1 && Char.isxdigit c2 then ( let x = Char.hexdigit c1 * 0x10 + Char.hexdigit c2 in Bytes.set out !j (Char.chr x); incr j; loop (i+3) ) else ( Bytes.set out !j c; incr j; loop (i+1) ) ) else ( Bytes.set out !j c; incr j; loop (i+1) ) ) in loop 0; (* Truncate the output string to its real size and return it * as an immutable string. *) Bytes.sub_string out 0 !j (* Parsing. *) let rec parse_file vmx_filename = (* Read the whole file as a list of lines. *) let str = read_whole_file vmx_filename in if verbose () then eprintf "VMX file:\n%s\n" str; parse_string str and parse_string str = (* Reject VMDK files early, since in virt-v2v we have seen users try * to pass a .vmdk file as a .vmx file. Luckily this is easy to * do with the whole file as a string. *) if String.starts_with "VMDK" str || String.starts_with "KDMV" str || String.starts_with "# Disk DescriptorFile\n" str then error "input file is a VMDK (disk image), but we are expecting a \ VMX (VMware metadata)"; (* Split the input into lines. *) let lines = String.nsplit "\n" str in (* I've never seen any VMX file with CR-LF endings, and VMware * itself is Linux-based, but to be on the safe side ... *) let lines = List.map (String.trimr ~test:((=) '\r')) lines in (* Ignore blank lines and comments. *) let lines = List.filter ( fun line -> let line = String.triml line in let len = String.length line in len > 0 && line.[0] != '#' ) lines in (* Parse the lines into key = "value". *) let lines = List.filter_map ( fun line -> if PCRE.matches rex line then ( let key = PCRE.sub 1 and value = PCRE.sub 2 in let key = String.lowercase_ascii key in let value = remove_vmx_escapes value in Some (key, value) ) else ( warning (f_"vmx parser: cannot parse this line, ignoring: %s") line; None ) ) lines in (* Split the keys into namespace paths. *) let lines = List.map (fun (key, value) -> String.nsplit "." key, value) lines in (* Build a tree from the flat list and return it. This is horribly * inefficient, at least O(n²), possibly even O(n².log n). Hope * there are no large VMX files! (XXX) *) let vmx = List.fold_left ( fun vmx (path, value) -> insert vmx value path ) empty lines in (* If we're verbose, dump the parsed VMX for debugging purposes. *) if verbose () then ( eprintf "parsed VMX tree:\n"; print stderr 0 vmx ); (* Drop all present = "FALSE" namespaces. *) let vmx = drop_not_present vmx in vmx and insert vmx value = function | [] -> assert false | [k] -> if StringMap.mem k vmx then ( warning (f_"vmx parser: duplicate key '%s' ignored") k; vmx ) else StringMap.add k (Key value) vmx | ns :: path -> let v = try (match StringMap.find ns vmx with | Namespace vmx -> Some vmx | Key _ -> None ) with Not_found -> None in let v = match v with | None -> (* Completely new namespace. *) insert empty value path | Some v -> (* Insert the subkey into the previously created namespace. *) insert v value path in StringMap.add ns (Namespace v) vmx (* Find any "present" keys. If we find present = "FALSE", then * drop the containing namespace and all subkeys and subnamespaces. *) and drop_not_present vmx = StringMap.fold ( fun k v new_vmx -> match v with | Key _ -> StringMap.add k v new_vmx | Namespace vmx when contains_key_present_false vmx -> (* drop this namespace and all sub-spaces *) new_vmx | Namespace v -> (* recurse into sub-namespace and do the same check *) let v = drop_not_present v in StringMap.add k (Namespace v) new_vmx ) vmx empty and contains_key_present_false vmx = try match StringMap.find "present" vmx with | Key v when vmx_bool_of_string v = false -> true | Key _ | Namespace _ -> false with Failure _ | Not_found -> false ================================================ FILE: input/VMX.mli ================================================ (* virt-v2v * Copyright (C) 2017 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) (** A simple parser for VMware [.vmx] files. *) type t val parse_file : string -> t (** [parse_file filename] parses a VMX file. *) val parse_string : string -> t (** [parse_string s] parses VMX from a string. *) val get_string : t -> string list -> string option (** Find a key and return it as a string. If not present, returns [None]. Note that if [namespace.present = "FALSE"] is found in the file then all keys in [namespace] and below it are ignored. This applies to all [get_*] functions. *) val get_int64 : t -> string list -> int64 option (** Find a key and return it as an [int64]. If not present, returns [None]. Raises [Failure _] if the key is present but was not parseable as an integer. *) val get_int : t -> string list -> int option (** Find a key and return it as an [int]. If not present, returns [None]. Raises [Failure _] if the key is present but was not parseable as an integer. *) val get_bool : t -> string list -> bool option (** Find a key and return it as a boolean. You cannot return [namespace.present = "FALSE"] booleans this way. They are processed by the parser and the namespace and anything below it are removed from the tree. Raises [Failure _] if the key is present but was not parseable as a boolean. *) val namespace_present : t -> string list -> bool (** Returns true iff the namespace ({b note:} not key) is present. *) val select_namespaces : (string list -> bool) -> t -> t (** Filter the VMX file, selecting exactly namespaces (and their keys) matching the predicate. The predicate is a function which is called on each {i namespace} path ({b note:} not on namespace + key paths). If the predicate matches a namespace, then all sub-namespaces under that namespace are selected implicitly. *) val map : (string list -> string option -> 'a) -> t -> 'a list (** Map all the entries in the VMX file into a list using the map function. The map function takes two arguments. The first is the path to the namespace or key, and the second is the key value (or [None] if the path refers to a namespace). *) val equal : t -> t -> bool (** Compare two VMX files for equality. This is mainly used for testing the parser. *) val empty : t (** An empty VMX file. *) val print : out_channel -> int -> t -> unit (** [print chan indent] prints the VMX file to the output channel. [indent] is the indentation applied to each line of output. *) val to_string : int -> t -> string (** Same as {!print} but it creates a printable (multiline) string. *) ================================================ FILE: input/dummy.c ================================================ /* Dummy source, to be used for OCaml-based tools with no C sources. */ enum { foo = 1 }; ================================================ FILE: input/input.ml ================================================ (* helper-v2v-input * Copyright (C) 2009-2025 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) type input_transport = SSH | VDDK type options = { bandwidth : Types.bandwidth option; input_conn : string option; input_format : string option; input_options : (string * string) list; input_password : string option; input_transport : input_transport option; read_only : bool; } module type INPUT = sig val to_string : options -> string list -> string val query_input_options : unit -> unit val setup : string -> options -> string list -> Types.source * NBD_URI.t list end ================================================ FILE: input/input.mli ================================================ (* virt-v2v * Copyright (C) 2009-2025 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) type input_transport = SSH | VDDK (** [-it] option on the command line *) type options = { bandwidth : Types.bandwidth option; (* [--bandwidth] option *) input_conn : string option; (* [-ic] option *) input_format : string option; (* [-if] option *) input_options : (string * string) list; (* [-io] options *) input_password : string option; (* [-ip] option *) input_transport : input_transport option;(* [-it] option *) read_only : bool; (* read-only (usually true) *) } module type INPUT = sig val to_string : options -> string list -> string (** [to_string options args] converts the source to a printable string (for messages). *) val query_input_options : unit -> unit (** When the user passes [-io ?] this is used to print help. *) val setup : string -> options -> string list -> Types.source * NBD_URI.t list (** [setup dir options args] Set up the input mode. Examines the source and extracts source metadata ([Types.source]). Also creates a disk pipeline for each input disk and returns the list of NBD URIs. *) end ================================================ FILE: input/input_disk.ml ================================================ (* helper-v2v-input * Copyright (C) 2009-2025 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) open Printf open Unix open Std_utils open Tools_utils open Common_gettext.Gettext open Types open Utils open Input module Disk = struct let to_string options args = String.concat " " ("-i disk" :: args) let query_input_options () = printf (f_"No input options can be used in this mode.\n") let rec setup dir options args = if options.input_options <> [] then error (f_"no -io (input options) are allowed here"); let nr_disks = List.length args in if nr_disks = 0 then error (f_"-i disk: expecting a disk image (filename) \ on the command line"); (* Check nbdkit is installed. *) if not (Nbdkit.is_installed ()) then error (f_"nbdkit is not installed or not working. It is required to \ use ‘-i disk’."); if not (Nbdkit.probe_plugin "file") then error (f_"nbdkit-file-plugin is not installed or not working"); if options.read_only && not (Nbdkit.probe_filter "cow") then error (f_"nbdkit-cow-filter is not installed or not working"); (* Each disk on the command line can be a local file or an NBD URI. *) let is_nbd_uri = let h = lazy (NBD.create ()) in fun str -> NBD.is_uri (Lazy.force h) str in (* Function for detecting input format, using guestfs_disk_format. *) let detect_input_format = let g = lazy (open_guestfs ()) in fun disk -> (Lazy.force g)#disk_format disk in (* If there are any NBD URIs on the command line, nbdkit-nbd-plugin * must be available too. *) if List.exists is_nbd_uri args && not (Nbdkit.probe_plugin "nbd") then error (f_"nbdkit-nbd-plugin is not installed or not working"); (* What name should we use for the guest? We try to derive it from * the first filename passed in. If there are no filenames then * we use "unknown". * * Users can override this using the '-on name' option. *) let name = let rec loop = function | [] -> (* XXX can't print this because we don't know if the user set '-on' warning (f_"-i disk: no local filenames given so we set \ the guest name to \"unknown\". Use ‘-on name’ to \ override the guest name."); *) "unknown" | x :: xs when is_nbd_uri x -> loop xs | x :: _ -> name_from_disk x in loop args in (* Convert the command line disks to NBD URIs. *) let uris = List.mapi ( fun i disk -> let sockname = sprintf "in%d" i in let socket = sprintf "%s/%s" dir sockname in On_exit.unlink socket; if is_nbd_uri disk then ( (* For nbd:// on the command line, proxy through * nbdkit-nbd-plugin. This is not ideal. We could * catch special cases here, such as nbd+unix:// * and convert them directly to NBD_URI objects. * That would require parsing NBD URIs ourselves * but would avoid needing an extra nbdkit proxy. * XXX *) let cmd = Nbdkit.create ~name:sockname "nbd" in if options.read_only then Nbdkit.add_filter cmd "cow"; Nbdkit.add_arg cmd "uri" disk; let _, pid = Nbdkit.run_unix socket cmd in (* --exit-with-parent should ensure nbdkit is cleaned * up when we exit, but it's not supported everywhere. *) On_exit.kill pid ) else ( (* Local filename. Use nbdkit-file-plugin for raw, * or qemu-nbd for other formats. * * virt-v2v < 2.12 used to enforce that all disks * had the same format, but that seems unnecessary. *) (* Check the input file exists and is readable. *) access disk [R_OK]; let format = match options.input_format with | Some fmt -> fmt (* -if option overrides everything *) | None -> detect_input_format disk in match format with | "raw" -> let cmd = Nbdkit.create ~name:sockname "file" in if options.read_only then Nbdkit.add_filter cmd "cow"; Nbdkit.add_arg cmd "file" disk; Nbdkit.reduce_memory_pressure cmd; let _, pid = Nbdkit.run_unix socket cmd in (* --exit-with-parent should ensure nbdkit is cleaned * up when we exit, but it's not supported everywhere. *) On_exit.kill pid | format -> let cmd = QemuNBD.create disk in QemuNBD.set_snapshot cmd options.read_only; QemuNBD.set_format cmd (Some format); let _, pid = QemuNBD.run_unix socket cmd in On_exit.kill pid ); NBD_URI.Unix (socket, None) ) args in let s_disks = List.make nr_disks () |> List.mapi ( fun i () -> { s_disk_id = i; s_controller = None } ) in (* Give the guest a simple generic network interface. *) let s_nic = { s_mac = None; s_nic_model = None; s_vnet = "default"; s_vnet_type = Network; } in let source = { s_hypervisor = UnknownHV; s_name = name; s_genid = None; s_memory = 2048L *^ 1024L *^ 1024L; (* 2048 MB *) s_vcpu = 1; (* 1 vCPU is a safe default *) s_cpu_vendor = None; s_cpu_model = None; s_cpu_topology = None; s_features = [ "acpi"; "apic"; "pae" ]; s_firmware = UnknownFirmware; (* causes virt-v2v to autodetect *) s_uefi_secureboot = false; s_display = Some { s_display_type = Window; s_keymap = None; s_password = None; s_listen = LNoListen; s_port = None }; s_sound = None; s_disks = s_disks; s_removables = []; s_nics = [s_nic]; } in source, uris end ================================================ FILE: input/input_disk.mli ================================================ (* virt-v2v * Copyright (C) 2009-2025 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) (** [-i disk] input mode *) module Disk : Input.INPUT ================================================ FILE: input/input_libvirt.ml ================================================ (* helper-v2v-input * Copyright (C) 2009-2025 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) open Printf open Unix open Std_utils open Tools_utils open Common_gettext.Gettext open Parse_libvirt_xml open Types open Utils open Input let rec get_source_from_libvirt options args = if options.input_options <> [] then error (f_"no -io (input options) are allowed here"); let guest = match args with | [arg] -> arg | _ -> error (f_"-i libvirt: expecting a libvirt guest name \ on the command line") in (* Connect to the hypervisor. *) let conn = let auth = Libvirt_utils.auth_for_password_file ?password_file:options.input_password () in Libvirt.Connect.connect_auth ?name:options.input_conn auth in (* Parse the libvirt XML. *) let source, disks, _ = parse_libvirt_domain conn guest in source, disks and get_source_from_libvirt_xml _ args = let xmlfile = match args with | [arg] -> arg | _ -> error (f_"-i libvirtxml: expecting a libvirt XML filename \ on the command line") in let xml = read_whole_file xmlfile in let source, disks = parse_libvirt_xml xml in source, disks and setup_servers options dir disks = (* Check nbdkit is installed. *) if not (Nbdkit.is_installed ()) then error (f_"nbdkit is not installed or not working. It is required to \ use ‘-i libvirt|libvirtxml’."); if not (Nbdkit.probe_plugin "file") then error (f_"nbdkit-file-plugin is not installed or not working"); if not (Nbdkit.probe_plugin "nbd") then error (f_"nbdkit-nbd-plugin is not installed or not working"); if options.read_only && not (Nbdkit.probe_filter "cow") then error (f_"nbdkit-cow-filter is not installed or not working"); let nr_disks = List.length disks in List.mapi ( fun i { d_format = format; d_type; d_checksum } -> let sockname = sprintf "in%d" i in let socket = sprintf "%s/%s" dir sockname in On_exit.unlink socket; (match d_type with (* Forward to another NBD server using nbdkit-nbd-plugin. *) | NBD (hostname, port) -> let cmd = Nbdkit.create ~name:sockname "nbd" in if options.read_only then Nbdkit.add_filter cmd "cow"; Nbdkit.add_arg cmd "hostname" hostname; Nbdkit.add_arg cmd "port" (string_of_int port); Nbdkit.add_arg cmd "shared" "true"; let _, pid = Nbdkit.run_unix socket cmd in (* --exit-with-parent should ensure nbdkit is cleaned * up when we exit, but it's not supported everywhere. *) On_exit.kill pid; Option.iter (do_checksum_nbd socket i nr_disks) d_checksum (* Forward to an HTTP/HTTPS server using nbdkit-curl-plugin. *) | HTTP url -> if not options.read_only then error (f_"in-place mode does not work with HTTP source"); let cor = dir // "convert" in let cmd = Nbdkit_curl.create_curl ~name:sockname ~cor url in let _, pid = Nbdkit.run_unix socket cmd in (* --exit-with-parent should ensure nbdkit is cleaned * up when we exit, but it's not supported everywhere. *) On_exit.kill pid; Option.iter (do_checksum_nbd socket i nr_disks) d_checksum | BlockDev filename | LocalFile filename -> match format with | Some "raw" -> (* It's much faster to compute the checksum over * the raw file or block device than over NBD: *) Option.iter (do_checksum_raw_file filename i nr_disks) d_checksum; let cmd = Nbdkit.create ~name:sockname "file" in if options.read_only then Nbdkit.add_filter cmd "cow"; Nbdkit.add_arg cmd "file" filename; Nbdkit.reduce_memory_pressure cmd; let _, pid = Nbdkit.run_unix socket cmd in (* --exit-with-parent should ensure nbdkit is cleaned * up when we exit, but it's not supported everywhere. *) On_exit.kill pid (* We use qemu-nbd for all other formats including auto-detect. *) | _ -> let cmd = QemuNBD.create filename in QemuNBD.set_snapshot cmd options.read_only; QemuNBD.set_format cmd format; let _, pid = QemuNBD.run_unix socket cmd in On_exit.kill pid; Option.iter (do_checksum_nbd socket i nr_disks) d_checksum ); NBD_URI.Unix (socket, None) ) disks (* Handle the field over an NBD endpoint. *) and do_checksum_nbd socket i n { checksum_method; checksum_expected; checksum_on_fail } = message (f_"Checking %s checksum of disk %d/%d") checksum_method (i+1) n; let prog = checksum_prog checksum_method in let uri = sprintf "nbd+unix:///?socket=%s" socket in let cmd = sprintf "%s %s - | %s" (quote Config.nbdcopy) (quote uri) prog in let lines = external_command cmd in let actual = get_checksum_from_output prog lines in match checksum_on_fail with | ChecksumPrint -> print_checksum i n actual | ChecksumOnFailError | ChecksumOnFailWarn -> if actual <> checksum_expected then checksum_failed checksum_on_fail i n actual checksum_expected (* Handle the field over a local raw-format file or * block device. *) and do_checksum_raw_file filename i n { checksum_method; checksum_expected; checksum_on_fail } = message (f_"Checking %s checksum of disk %d/%d") checksum_method (i+1) n; let prog = checksum_prog checksum_method in let cmd = sprintf "%s %s" prog (quote filename) in let lines = external_command cmd in let actual = get_checksum_from_output prog lines in match checksum_on_fail with | ChecksumPrint -> print_checksum i n actual | ChecksumOnFailError | ChecksumOnFailWarn -> if actual <> checksum_expected then checksum_failed checksum_on_fail i n actual checksum_expected and checksum_prog = function | "md5" -> "md5sum" | "sha256" -> "sha256sum" | "sha512" -> "sha512sum" | v -> error (f_"unknown method='%s'") v and get_checksum_from_output prog = function | [ actual ] -> let n = String.cspan actual " \t\n" in String.sub actual 0 n | _ -> error (f_"unexpected output from the %s command") prog and print_checksum i n actual = printf "Checksum of disk %d/%d: %s\n%!" (i+1) n actual and checksum_failed on_fail i n actual expected = (match on_fail with | ChecksumPrint -> assert false | ChecksumOnFailWarn -> warning | ChecksumOnFailError -> error ~exit_code:1) (f_"bad checksum for disk %d/%d\n\ Expected checksum: %s\n\ Actual checksum: %s") (i+1) n actual expected module Libvirt_ = struct let to_string options args = let xs = "-i libvirt" :: args in let xs = match options.input_conn with | Some ic -> ("-ic " ^ ic) :: xs | None -> xs in String.concat " " xs let query_input_options () = printf (f_"No input options can be used in this mode.\n") let setup dir options args = let source, data = get_source_from_libvirt options args in let uris = setup_servers options dir data in source, uris end module LibvirtXML = struct let to_string options args = String.concat " " ("-i libvirtxml" :: args) let query_input_options () = printf (f_"No input options can be used in this mode.\n") let setup dir options args = let source, data = get_source_from_libvirt_xml options args in let uris = setup_servers options dir data in source, uris end ================================================ FILE: input/input_libvirt.mli ================================================ (* virt-v2v * Copyright (C) 2009-2025 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) (** [-i libvirt] and [-i libvirtxml] input modes *) module Libvirt_ : Input.INPUT module LibvirtXML : Input.INPUT ================================================ FILE: input/input_ova.ml ================================================ (* helper-v2v-input * Copyright (C) 2009-2025 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) open Printf open Unix open Std_utils open Tools_utils open Common_gettext.Gettext open Types open Utils open Input module OVA = struct let to_string options args = String.concat " " ("-i ova" :: args) let query_input_options () = printf (f_"No input options can be used in this mode.\n") (* RHBZ#1570407: VMware-generated OVA files found in the wild can * contain hrefs referencing snapshots. The href will be something * like: but the actual disk will be a * snapshot called something like "disk1.vmdk.000000000". *) let re_snapshot = PCRE.compile "\\.(\\d+)$" let rec setup dir options args = if options.input_options <> [] then error (f_"no -io (input options) are allowed here"); let ova = match args with | [ova] -> ova | _ -> error (f_"-i ova: expecting an OVA file name on the command line") in (* Check the OVA file is readable. *) access ova [R_OK]; (* Extract ova file. *) let ova_t = OVA.parse_ova ova in (* Extract ovf file from ova. *) let ovf = OVA.get_ovf_file ova_t in (* Extract the manifest from *.mf files in the ova. *) let manifest = OVA.get_manifest ova_t in (* Verify checksums of files listed in the manifest. *) List.iter ( fun (file_ref, csum) -> let filename, r = match file_ref with | OVA.LocalFile filename -> filename, Checksums.verify_checksum csum filename | OVA.TarFile (tar, filename) -> filename, Checksums.verify_checksum csum ~tar filename in match r with | Checksums.Good_checksum -> () | Checksums.Mismatched_checksum (_, actual) -> error (f_"-i ova: corrupt OVA: checksum of disk %s does not match \ manifest (actual = %s, expected = %s)") filename actual (Checksums.string_of_csum_t csum) | Checksums.Missing_file -> (* RHBZ#1570407: Some OVA files generated by VMware * reference non-existent components in the *.mf file. * Generate a warning and ignore it. *) warning (f_"manifest has a checksum for non-existent file %s \ (ignored)") filename ) manifest; (* Parse the ovf file. *) let name, memory, vcpu, cpu_topology, firmware, disks, removables, nics = OVF.parse_ovf_from_ova ovf in let name = match name with | None -> warning (f_"could not parse ovf:Name from OVF document"); name_from_disk ova | Some name -> name in (* Convert the disk hrefs into qemu URIs. *) let qemu_uris = List.map ( fun { OVF.href; compressed } -> let file_ref = find_file_or_snapshot ova_t href manifest in match compressed, file_ref with | false, OVA.LocalFile filename -> filename | true, OVA.LocalFile filename -> (* The spec allows the file to be gzip-compressed, in * which case we must uncompress it into a temporary. *) let new_filename = Filename.temp_file ~temp_dir:Utils.large_tmpdir "ova" ".vmdk" in On_exit.unlink new_filename; let cmd = sprintf "zcat %s > %s" (quote filename) (quote new_filename) in if shell_command cmd <> 0 then error (f_"error uncompressing %s, see earlier error messages") filename; new_filename | false, OVA.TarFile (tar, filename) -> (* This is the tar optimization. *) let offset, size = try OVA.get_tar_offet_and_size tar filename with | Not_found -> error (f_"file ‘%s’ not found in the ova") filename | Failure msg -> error (f_"%s") msg in (* QEMU requires size aligned to 512 bytes. This is safe because * tar also works with 512 byte blocks. *) let size = roundup64 size 512L in (* Workaround for libvirt bug RHBZ#1431652. *) let tar_path = absolute_path tar in let doc = [ "file", JSON.Dict [ "driver", JSON.String "raw"; "offset", JSON.Int offset; "size", JSON.Int size; "file", JSON.Dict [ "driver", JSON.String "file"; "filename", JSON.String tar_path] ] ] in let uri = sprintf "json:%s" (JSON.string_of_doc ~fmt:JSON.Compact doc) in uri | true, OVA.TarFile _ -> (* This should not happen since {!OVA} knows that * qemu cannot handle compressed files here. *) assert false ) disks in (* Create the source metadata. *) let s_disks = List.map (fun { OVF.source_disk } -> source_disk) disks in let source = { s_hypervisor = VMware; s_name = name; s_genid = None; (* XXX *) s_memory = memory; s_vcpu = vcpu; s_cpu_vendor = None; s_cpu_model = None; s_cpu_topology = cpu_topology; s_features = []; (* XXX *) s_firmware = firmware; s_uefi_secureboot = false; s_display = None; (* XXX *) s_sound = None; s_disks = s_disks; s_removables = removables; s_nics = nics; } in (* Run qemu-nbd for each disk. *) let uris = List.mapi ( fun i qemu_uri -> let socket = sprintf "%s/in%d" dir i in On_exit.unlink socket; let cmd = QemuNBD.create qemu_uri in QemuNBD.set_snapshot cmd options.read_only; (* protective overlay *) QemuNBD.set_format cmd None; (* auto-detect format *) let _, pid = QemuNBD.run_unix socket cmd in On_exit.kill pid; NBD_URI.Unix (socket, None) ) qemu_uris in source, uris and find_file_or_snapshot ova_t href manifest = match OVA.resolve_href ova_t href with | Some f -> f | None -> (* Find all files in the OVA called [.\d+] *) let files = OVA.get_file_list ova_t in let snapshots = List.filter_map ( function | OVA.LocalFile filename -> get_snapshot_if_matches href filename | OVA.TarFile (_, filename) -> get_snapshot_if_matches href filename ) files in (* Pick highest. *) let snapshots = List.sort (fun a b -> compare b a) snapshots in match snapshots with | [] -> error_missing_href href | snapshot::_ -> let href = sprintf "%s.%s" href snapshot in match OVA.resolve_href ova_t href with | None -> error_missing_href href | Some f -> f (* If [filename] matches [.\d+] then return [Some snapshot]. *) and get_snapshot_if_matches href filename = if PCRE.matches re_snapshot filename then ( let snapshot = PCRE.sub 1 in let suffix = sprintf "%s.%s" href snapshot in if String.ends_with ~suffix filename then Some snapshot else None ) else None and error_missing_href href = error (f_"-i ova: OVF references file ‘%s’ which was not found \ in the OVA archive") href end ================================================ FILE: input/input_ova.mli ================================================ (* virt-v2v * Copyright (C) 2009-2025 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) (** [-i ova] input mode *) module OVA : Input.INPUT ================================================ FILE: input/input_vcenter_https.ml ================================================ (* helper-v2v-input * Copyright (C) 2009-2025 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) open Printf open Unix open Std_utils open Tools_utils open Unix_utils.Env open Common_gettext.Gettext open Xpath_helpers open Types open Utils open Parse_libvirt_xml open Input module VCenterHTTPS = struct let to_string options args = let xs = args in let xs = match options.input_conn with | Some ic -> ("-ic " ^ ic) :: xs | None -> xs in let xs = "-i libvirt" :: xs in String.concat " " xs let query_input_options () = printf (f_"No input options can be used in this mode.\n") let rec setup dir options args = if options.input_options <> [] then error (f_"no -io (input options) are allowed here"); if not options.read_only then error (f_"in-place mode does not work with HTTP source"); (* Remove proxy environment variables so curl doesn't try to use * them. Using a proxy is generally a bad idea because vCenter * is slow enough as it is without putting another device in * the way (RHBZ#1354507). *) unsetenv "https_proxy"; unsetenv "all_proxy"; unsetenv "no_proxy"; unsetenv "HTTPS_PROXY"; unsetenv "ALL_PROXY"; unsetenv "NO_PROXY"; let guest = match args with | [arg] -> arg | _ -> error (f_"-i libvirt: expecting a libvirt guest name \ on the command line") in (* -ip is required in this mode, see RHBZ#1960087 *) let password_file = match options.input_password with | Some file -> file | None -> error (f_"-i libvirt: expecting -ip passwordfile parameter for \ vCenter connection") in (* -ic must be set and it must contain a server. This is * enforced by virt-v2v. *) let input_conn = match options.input_conn with | Some ic -> ic | None -> error (f_"-i libvirt: expecting -ic parameter for \ vcenter connection") in let uri = try Xml.parse_uri input_conn with Invalid_argument msg -> error (f_"could not parse '-ic %s'. Original error message was: %s") input_conn msg in let server = match uri with | { Xml.uri_server = Some server } -> server | { Xml.uri_server = None } -> error (f_"-i libvirt: expecting -ic parameter to contain \ vcenter server name") in (* Connect to the hypervisor. *) let conn = let auth = Libvirt_utils.auth_for_password_file ~password_file () in Libvirt.Connect.connect_auth ~name:input_conn auth in (* Parse the libvirt XML. *) let source, disks, xml = parse_libvirt_domain conn guest in (* Find the element from the XML. This * was added in libvirt >= 1.2.20. *) let dcPath = let doc = Xml.parse_memory xml in let xpathctx = Xml.xpath_new_context doc in Xml.xpath_register_ns xpathctx "vmware" "http://libvirt.org/schemas/domain/vmware/1.0"; match xpath_string xpathctx "/domain/vmware:datacenterpath" with | Some dcPath -> dcPath | None -> error (f_"vcenter: was not found in the XML. \ You need to upgrade to libvirt ≥ 1.2.20.") in let uris = List.mapi ( fun i { d_format = format; d_type } -> let socket = sprintf "%s/in%d" dir i in On_exit.unlink socket; (match d_type with | BlockDev _ | NBD _ | HTTP _ -> (* These should never happen? *) assert false | LocalFile path -> let cor = dir // "convert" in let pid = VCenter.start_nbdkit_for_path ?bandwidth:options.bandwidth ~cor ~password_file dcPath uri server path socket in On_exit.kill pid ); NBD_URI.Unix (socket, None) ) disks in source, uris end ================================================ FILE: input/input_vcenter_https.mli ================================================ (* virt-v2v * Copyright (C) 2009-2025 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) (** Input from vCenter over HTTPS *) module VCenterHTTPS : Input.INPUT ================================================ FILE: input/input_vddk.ml ================================================ (* helper-v2v-input * Copyright (C) 2009-2025 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) open Printf open Unix open Std_utils open Tools_utils open Common_gettext.Gettext open Xpath_helpers open Types open Utils open Parse_libvirt_xml open Input (* VDDK libraries are located under lib32/ or lib64/ relative to the * libdir. Note this is unrelated to Linux multilib or multiarch. *) let libNN = sprintf "lib%d" Sys.word_size (* Calculate the nbdkit vddk plugin 'export' parameter. This is a * wildcard that must match all filenames given. * * nbdkit 1.44 used 'fnmatch (export, filename, FNM_PATHNAME)' * which means '*' does not match '/' characters in the filename. * Unfortunately this made it impossible to match certain paths, * in particular if the guest has some files in a subdirectory. * * nbdkit 1.46 relaxes this to 'fnmatch (export, filename, 0)', * so a simple longest prefix works. *) let get_vddk_export_wildcard = function | [] -> assert false (* can't happen, checked by the caller *) | [f] -> fnmatch_escape f (* single file, just escape the whole thing *) | files -> (* We implicitly assume all files end in *.vmdk, check that. *) List.iter (fun f -> assert (String.ends_with ".vmdk" f)) files; (* Calculate the longest common prefix of all the filenames. * eg. "foobar", "foobazs" => prefix = "fooba" *) let prefix = String.longest_common_prefix files in (* Construct the final wildcard. Note we only need to * escape the prefix (the only part which is user content). *) fnmatch_escape prefix ^ "*.vmdk" module VDDK = struct let to_string options args = let xs = "-it vddk" :: args in let xs = match options.input_conn with | Some ic -> ("-ic " ^ ic) :: xs | None -> xs in let xs = "-i libvirt" :: xs in String.concat " " xs let query_input_options () = printf (f_"Input options (-io) which can be used with -it vddk (all settings are optional): -io vddk-compression=COMPR Set VDDK compression mode (see nbdkit-vddk-plugin documentation) -io vddk-config=FILE VDDK configuration file -io vddk-cookie=COOKIE VDDK cookie -io vddk-file=FILE Override nbdkit-vddk-plugin file= parameter -io vddk-libdir=LIBDIR VDDK library parent directory -io vddk-nfchostport=PORT VDDK nfchostport -io vddk-port=PORT VDDK port -io vddk-snapshot=SNAPSHOT-MOREF VDDK snapshot moref -io vddk-thumbprint=xx:xx:xx:... VDDK server thumbprint -io vddk-transports=MODE:MODE:.. VDDK transports Refer to nbdkit-vddk-plugin(1) and the VDDK documentation for further information on these settings. ") let rec setup dir options args = (* Check there are no input options we don't understand. * Also removes the "vddk-" prefix from the internal list. *) let vddk_option_keys = [ "compression"; "config"; "cookie"; "file"; "libdir"; "nfchostport"; "port"; "snapshot"; "thumbprint"; "transports" ] in let io_options = List.map ( fun (key, value) -> let error_invalid_key () = error (f_"-it vddk: ‘-io %s’ is not a valid input option") key in if not (String.starts_with "vddk-" key) then error_invalid_key (); let key = String.sub key 5 (String.length key-5) in if not (List.mem key vddk_option_keys) then error_invalid_key (); (key, value) ) options.input_options in (* Get the guest name. *) let guest = match args with | [arg] -> arg | _ -> error (f_"-i libvirt: expecting a libvirt guest name \ on the command line") in (* -ic must be set and it must contain a server. This is * enforced by virt-v2v. *) let input_conn = match options.input_conn with | Some ic -> ic | None -> error (f_"-i libvirt: expecting -ic parameter \ for vcenter connection") in if not options.read_only then error (f_"in-place mode does not work with VDDK source"); let uri = try Xml.parse_uri input_conn with Invalid_argument msg -> error (f_"could not parse '-ic %s'. Original error message was: %s") input_conn msg in (* Connect to the hypervisor. *) let conn = let auth = Libvirt_utils.auth_for_password_file ?password_file:options.input_password () in Libvirt.Connect.connect_auth ~name:input_conn auth in (* Parse the libvirt XML. *) let source, disks, xml = parse_libvirt_domain conn guest in let nr_disks = List.length disks in (* Find the element from the XML. This was added * in libvirt >= 3.7 and is required. *) let moref = let doc = Xml.parse_memory xml in let xpathctx = Xml.xpath_new_context doc in Xml.xpath_register_ns xpathctx "vmware" "http://libvirt.org/schemas/domain/vmware/1.0"; let xpath_string = xpath_string xpathctx in match xpath_string "/domain/vmware:moref" with | Some moref -> moref | None -> error (f_" was not found in the output of \ ‘virsh dumpxml \"%s\"’. The most likely reason is that \ libvirt is too old, try upgrading \ libvirt to ≥ 3.7.") guest in (* It probably never happens that the server name can be missing * from the libvirt URI, but we need a server name to pass to * nbdkit, so ... *) let server = match uri.Xml.uri_server with | Some server -> server | None -> error (f_"‘-ic %s’ URL does not contain a host name field") input_conn in (* For VDDK we require some user. If it's not supplied, assume root. *) let user = uri.Xml.uri_user |> Option.value ~default:"root" in (* If asking for a password, do it now. *) let password_file = match options.input_password with | None -> (* Because we will start nbdkit in the background and then wait * for 30 seconds for it to start up, we cannot use the * password=- feature of nbdkit to read the password * interactively (since in the words of the movie the user has * only "30 seconds to comply"). In any case this feature broke * in the VDDK plugin in nbdkit 1.18 and 1.20. So in the * AskForPassword case we read the password here. *) printf (f_"%s: enter password for ‘%s’: ") "vddk" user; let open Unix in let orig = tcgetattr stdin in let tios = { orig with c_echo = false } in tcsetattr stdin TCSAFLUSH tios; (* Disable echo. *) let password = read_line () in tcsetattr stdin TCSAFLUSH orig; (* Restore echo. *) printf "\n%!"; let password_file = Filename.temp_file "v2vnbdkit" ".txt" in with_open_out password_file (fun chan -> output_string chan password); On_exit.unlink password_file; password_file | Some password_file -> password_file in (* Thumbprint has to be passed to nbdkit. If we don't have it * then get it from the server. *) let thumbprint = try List.assoc "thumbprint" io_options with Not_found -> let openssl = try which "openssl" with Executable_not_found _ -> error (f_"‘openssl’ command not found: automatically detecting \ thumbprint is not possible, so you must use \ ‘-io vddk-thumbprint=XX:XX...’") in let cmd = sprintf {| %s s_client -connect %s:443 /dev/null | %s x509 -in /dev/stdin -fingerprint -sha1 -noout 2>/dev/null | grep -i '^sha1 Fingerprint=' | sed 's/.*Fingerprint=\([A-F0-9:]\+\)/\1/' |} openssl (quote server) openssl in let lines = external_command cmd in if List.length lines = 0 then error (f_"could not fetch thumbprint from the server, you mus use \ ‘-io vddk-thumbprint=XX:XX...’"); List.hd lines in let compression = try Some (List.assoc "compression" io_options) with Not_found -> None in let config = try Some (List.assoc "config" io_options) with Not_found -> None in let cookie = try Some (List.assoc "cookie" io_options) with Not_found -> None in let libdir = try Some (List.assoc "libdir" io_options) with Not_found -> None in let nfchostport = try Some (List.assoc "nfchostport" io_options) with Not_found -> None in let port = try Some (List.assoc "port" io_options) with Not_found -> None in let snapshot = try Some (List.assoc "snapshot" io_options) with Not_found -> None in let transports = try Some (List.assoc "transports" io_options) with Not_found -> None in (* If -io vddk-file was given, there must be exactly one per guest * disk. Get the list of file overrides. *) let file_overrides = if List.mem_assoc "file" io_options then ( let fos = List.filter_map (function ("file",b) -> Some (Some b) | _ -> None) io_options in if List.length fos <> nr_disks then error (f_"‘-io vddk-file=’ must be used exactly %d times") nr_disks; fos ) else ( (* List of no overrides. *) List.make nr_disks None ) in (* Check we have nbdkit and the vddk plugin and the cow filter. *) if not (Nbdkit.is_installed ()) then error (f_"nbdkit is not installed or not working"); if not (Nbdkit.version () >= (1, 45, 11)) then error (f_"nbdkit must be >= 1.45.11 for input from VDDK"); if not (Nbdkit.probe_plugin "vddk") then error (f_"nbdkit-vddk-plugin is not installed"); if not (Nbdkit.probe_filter "cow") then error (f_"nbdkit-cow-filter is not installed or not working"); (* Check that the VDDK libdir looks reasonable. *) let error_unless_vddk_libdir () = match libdir with | None -> () | Some libdir -> if not (is_directory libdir) then error (f_"‘-io vddk-libdir=%s’ does not point to a directory. \ See the virt-v2v-input-vmware(1) manual.") libdir in (* Check that the VDDK plugin is installed and working. We also * check this later when calling common_create, but this version * has better troubleshooting output. *) let error_unless_nbdkit_vddk_working () = let cmd = "nbdkit vddk --dump-plugin >/dev/null" in if Sys.command cmd <> 0 then ( (* See if we can diagnose why ... *) let cmd = "LANG=C nbdkit vddk --dump-plugin 2>&1 | grep -sq \"cannot open shared object file\"" in let needs_library = Sys.command cmd = 0 in if not needs_library then error (f_"nbdkit VDDK plugin is not installed or not working. It is required if you want to use VDDK. The 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. See also the virt-v2v-input-vmware(1) manual.") else error (f_"nbdkit VDDK plugin is not installed or not working. It is required if you want to use VDDK. It 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 ’/%s/libvixDiskLib.so.?’. See also the virt-v2v-input-vmware(1) manual.") libNN ) in error_unless_vddk_libdir (); error_unless_nbdkit_vddk_working (); (* Helper to create an nbdkit command object. *) let create_nbdkit_vddk ?name () = let cmd = Nbdkit.create ?name "vddk" in (* Suppress datapath messages. *) Nbdkit.add_debug_flag cmd "vddk.datapath" "0"; (* Enable VDDK stats. *) Nbdkit.add_debug_flag cmd "vddk.stats" "1"; Nbdkit.add_arg cmd "server" server; Nbdkit.add_arg cmd "vm" (sprintf "moref=%s" moref); (* VDDK requires user and password parameters. *) Nbdkit.add_arg cmd "user" user; Nbdkit.add_arg cmd "password" ("+" ^ password_file); (* The passthrough parameters. *) let passthru cmd name v = Option.iter (Nbdkit.add_arg cmd name) v in passthru cmd "compression" compression; passthru cmd "config" config; passthru cmd "cookie" cookie; passthru cmd "libdir" libdir; passthru cmd "nfchostport" nfchostport; passthru cmd "port" port; passthru cmd "snapshot" snapshot; Nbdkit.add_arg cmd "thumbprint" thumbprint; (* required *) passthru cmd "transports" transports; (* Retry filter (if it exists) can be used to get around brief * interruptions in service. It must be closest to the plugin. *) Nbdkit.add_filter_if_available cmd "retry"; (* Add the count filter if available, to report bytes read. * Since it writes a debug message, only do this if verbose. * This should be close to the plugin so we're reporting what * is read over the wire. *) if verbose () then Nbdkit.add_filter_if_available cmd "count"; (* Split very large requests to avoid out of memory errors on the * server. Since we're using this filter, also add minblock=512 * although it will make no difference. *) if Nbdkit.probe_filter "blocksize" then ( Nbdkit.add_filter cmd "blocksize"; Nbdkit.add_arg cmd "minblock" "512"; Nbdkit.add_arg cmd "maxdata" "2M" ); (* IMPORTANT! Add the COW filter. It must be furthest away * except for the multi-conn and rate filters. *) Nbdkit.add_filter cmd "cow"; (* The cow filter unconditionally enables multi-conn (because it is * safe). However this causes an unintended consequence with the VDDK * plugin. Multiple VDDK handles are opened (one per multi-conn * connection), and for some reason, possibly internal locking, they * conflict with each other. This manifests itself as API calls taking * between 2 and 7 times longer to serve (especially QueryAllocatedBlocks * which seems to slow down most). * * Avoid this by adding nbdkit-multi-conn-filter with * multi-conn-mode=disable on top which disables multi-conn * advertisement. *) if Nbdkit.probe_filter "multi-conn" then ( Nbdkit.add_filter cmd "multi-conn"; Nbdkit.add_arg cmd "multi-conn-mode" "disable"; ); (* If the filter supports it, enable cow-block-size (added in * nbdkit 1.27.6). This helps to reduce fragmentated small * extent and read requests. *) if Nbdkit.probe_filter_parameter "cow" "cow-block-size" then Nbdkit.add_arg cmd "cow-block-size" "4096"; (* Add the cow-on-read flag if supported. *) if Nbdkit.probe_filter_parameter "cow" "cow-on-read=.*/PATH" then Nbdkit.add_arg cmd "cow-on-read" (dir // "convert"); (* Add the rate filter. This must be furthest away so that * we don't end up rate-limiting internal nbdkit operations. *) if Nbdkit.probe_filter "rate" then ( match options.bandwidth with | None -> () | Some bandwidth -> Nbdkit.add_filter cmd "rate"; match bandwidth with | StaticBandwidth rate -> Nbdkit.add_arg cmd "rate" rate | DynamicBandwidth (None, filename) -> Nbdkit.add_arg cmd "rate-file" filename | DynamicBandwidth (Some rate, filename) -> Nbdkit.add_args cmd ["rate", rate; "rate-file", filename] ); cmd in (* Collect all the VDDK filename(s) we will be accessing, one * for each input disk. This takes into account the * '-io vddk-file' override. *) let files = List.combine disks file_overrides |> List.map ( function (* These should never happen? *) | { d_type = BlockDev _ | NBD _ | HTTP _ }, _ -> assert false | { d_type = LocalFile file }, None -> (* The attribute returned by the libvirt * VMX driver looks like "[datastore] path". We can use it * directly as the nbdkit file= parameter, and it is passed * directly in this form to VDDK. *) file | { d_type = LocalFile _ }, Some file_override -> (* If -io vddk-file, override it here. *) file_override ) in assert (files <> []); let uris = (* If nbdkit-vddk-plugin has the 'export' feature (added in * nbdkit 1.43.8) then we only have to run a single * instance of nbdkit. *) if Nbdkit.probe_plugin_parameter "vddk" "export=" then ( let socket = sprintf "%s/in0" dir in On_exit.unlink socket; let nbdkit = create_nbdkit_vddk ~name:"in" () in let wildcard = get_vddk_export_wildcard files in Nbdkit.add_arg nbdkit "export" wildcard; let _, pid = Nbdkit.run_unix socket nbdkit in On_exit.kill pid; (* Use NBD export names to select the right disk to read. *) List.map (fun file -> NBD_URI.Unix (socket, Some file)) files ) else ( (* Create an nbdkit instance for each disk. *) List.mapi ( fun i file -> let sockname = sprintf "in%d" i in let socket = sprintf "%s/%s" dir sockname in On_exit.unlink socket; let nbdkit = create_nbdkit_vddk ~name:sockname () in Nbdkit.add_arg nbdkit "file" file; let _, pid = Nbdkit.run_unix socket nbdkit in On_exit.kill pid; NBD_URI.Unix (socket, None) ) files ) in source, uris end ================================================ FILE: input/input_vddk.mli ================================================ (* virt-v2v * Copyright (C) 2009-2025 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) (** Input from vCenter or ESXi over VDDK *) module VDDK : Input.INPUT ================================================ FILE: input/input_vmx.ml ================================================ (* helper-v2v-input * Copyright (C) 2009-2025 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) open Printf open Unix open Std_utils open Tools_utils open Common_gettext.Gettext open Types open Utils open Parse_domain_from_vmx open Input module VMX = struct let to_string options args = String.concat " " ("-i vmx" :: args) let query_input_options () = printf (f_"No input options can be used in this mode.\n") let rec setup dir options args = if options.input_options <> [] then error (f_"no -io (input options) are allowed here"); if not options.read_only then error (f_"in-place mode does not work with VMX source"); let vmx_source = match args with | [arg] -> let input_password = match options.input_password with | None -> None | Some ip -> Some (Nbdkit_ssh.PasswordFile ip) in let input_transport = match options.input_transport with | None -> None | Some SSH -> Some `SSH | Some VDDK -> error (f_"-i vmx: cannot use -it vddk in this input mode") in vmx_source_of_arg input_password input_transport arg | _ -> error (f_"-i vmx: expecting a VMX file or ssh:// URI") in let source, filenames = parse_domain_from_vmx vmx_source in let uris = match vmx_source with | VMXSourceFile vmx_filename -> (* Local file in VMDK format, use qemu-nbd. *) List.mapi ( fun i filename -> let socket = sprintf "%s/in%d" dir i in On_exit.unlink socket; let cmd = QemuNBD.create (absolute_path_from_other_file vmx_filename filename) in QemuNBD.set_snapshot cmd true; (* protective overlay *) QemuNBD.set_format cmd (Some "vmdk"); let _, pid = QemuNBD.run_unix socket cmd in On_exit.kill pid; NBD_URI.Unix (socket, None) ) filenames | VMXSourceSSH (password, uri) -> List.mapi ( fun i filename -> let socket = sprintf "%s/in%d" dir i in On_exit.unlink socket; let vmx_path = match uri.uri_path with | None -> assert false (* checked by vmx_source_of_arg *) | Some path -> path in let abs_path = absolute_path_from_other_file vmx_path filename in let flat_vmdk = PCRE.replace (PCRE.compile "\\.vmdk$") "-flat.vmdk" abs_path in let server = match uri.uri_server with | None -> assert false (* checked by vmx_source_of_arg *) | Some server -> server in let port = match uri.uri_port with | i when i <= 0 -> None | i -> Some (string_of_int i) in let user = uri.Xml.uri_user in (* RHBZ#1774386 *) if not (Ssh.remote_file_exists ?password ?port ~server ?user flat_vmdk) then error (f_"This transport does not support guests with \ snapshots. \ Either collapse the snapshots for this guest and try \ the conversion again, or use one of the alternate \ conversion methods described in \ virt-v2v-input-vmware(1) section \"NOTES\"."); let cor = dir // "convert" in let bandwidth = options.bandwidth in let nbdkit = Nbdkit_ssh.create_ssh ?bandwidth ~cor ?password ~server ?port ?user flat_vmdk in let _, pid = Nbdkit.run_unix socket nbdkit in On_exit.kill pid; NBD_URI.Unix (socket, None) ) filenames in source, uris (* The filename can be an absolute path, but is more often a * path relative to the location of the vmx file (which might * be remote over SSH). *) and absolute_path_from_other_file other_filename filename = if not (Filename.is_relative filename) then filename else (Filename.dirname (absolute_path other_filename)) // filename end ================================================ FILE: input/input_vmx.mli ================================================ (* virt-v2v * Copyright (C) 2009-2025 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) (** [-i vmx] input mode *) module VMX : Input.INPUT ================================================ FILE: input/input_xen_ssh.ml ================================================ (* helper-v2v-input * Copyright (C) 2009-2025 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) open Printf open Unix open Std_utils open Tools_utils open Common_gettext.Gettext open Types open Utils open Parse_libvirt_xml open Input module XenSSH = struct let to_string options args = let xs = args in let xs = match options.input_conn with | Some ic -> ("-ic " ^ ic) :: xs | None -> xs in let xs = "-i libvirt" :: xs in String.concat " " xs let query_input_options () = printf (f_"No input options can be used in this mode.\n") let setup dir options args = if options.input_options <> [] then error (f_"no -io (input options) are allowed here"); if not options.read_only then error (f_"in-place mode does not work with Xen over SSH source"); (* Get the guest name. *) let guest = match args with | [arg] -> arg | _ -> error (f_"-i libvirt: expecting a libvirt guest name \ on the command line") in (* -ic must be set. *) let input_conn = match options.input_conn with | Some ic -> ic | None -> error (f_"-i libvirt: expecting -ic parameter for \ Xen over SSH connection") in let uri = try Xml.parse_uri input_conn with Invalid_argument msg -> error (f_"could not parse '-ic %s'. Original error message was: %s") input_conn msg in (* Connect to the hypervisor. *) let conn = let auth = Libvirt_utils.auth_for_password_file ?password_file:options.input_password () in Libvirt.Connect.connect_auth ~name:input_conn auth in (* Parse the libvirt XML. *) let source, disks, _ = parse_libvirt_domain conn guest in let server = match uri.Xml.uri_server with | Some server -> server | None -> error (f_"‘-ic %s’ URL does not contain a host name field") input_conn in let port = match uri.uri_port with | 0 | 22 -> None | i -> Some (string_of_int i) in let user = uri.uri_user in let password = match options.input_password with | None -> None | Some ip -> Some (Nbdkit_ssh.PasswordFile ip) in (* Create an nbdkit instance for each disk. *) let uris = List.mapi ( fun i { d_format = format; d_type } -> let socket = sprintf "%s/in%d" dir i in On_exit.unlink socket; (match d_type with | NBD _ | HTTP _ -> (* These should never happen? *) assert false | BlockDev _ -> (* Conversion from a remote block device over SSH isn't * supported because OpenSSH sftp server doesn't know how * to get the size of a block device. Therefore we disallow * this and refer users to the manual. *) error (f_"input from xen over ssh does not support disks stored \ on remote block devices. See virt-v2v-input-xen(1) \ section \"Xen or ssh conversions from block devices\".") | LocalFile path -> let cor = dir // "convert" in let bandwidth = options.bandwidth in let nbdkit = Nbdkit_ssh.create_ssh ?bandwidth ~cor ?password ?port ~server ?user path in let _, pid = Nbdkit.run_unix socket nbdkit in On_exit.kill pid ); NBD_URI.Unix (socket, None) ) disks in source, uris end ================================================ FILE: input/input_xen_ssh.mli ================================================ (* virt-v2v * Copyright (C) 2009-2025 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) (** Input from Xen over SSH *) module XenSSH : Input.INPUT ================================================ FILE: input/nbdkit_curl.ml ================================================ (* virt-v2v * Copyright (C) 2009-2025 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) open Printf open Common_gettext.Gettext open Std_utils open Tools_utils open Types open Utils (* Create an nbdkit module specialized for reading from Curl sources. *) let create_curl ?name ?bandwidth ?cookie_script ?cookie_script_renew ?cor ?(sslverify=true) url = if not (Nbdkit.is_installed ()) then error (f_"nbdkit is not installed or not working"); if not (Nbdkit.probe_plugin "curl") then error (f_"nbdkit-curl-plugin is not installed"); if not (Nbdkit.probe_filter "cow") then error (f_"nbdkit-cow-filter is not installed or not working"); (* Construct the nbdkit command. *) let cmd = Nbdkit.create ?name "curl" in Nbdkit.add_arg cmd "url" url; (* https://bugzilla.redhat.com/show_bug.cgi?id=1146007#c10 *) Nbdkit.add_arg cmd "timeout" "2000"; Option.iter (Nbdkit.add_arg cmd "cookie-script") cookie_script; (match cookie_script_renew with | Some i -> Nbdkit.add_arg cmd "cookie-script-renew" (string_of_int i) | None -> ()); if not sslverify then Nbdkit.add_arg cmd "sslverify" "false"; (* For lots of extra debugging, uncomment one or both lines. *) (* Nbdkit.add_arg cmd "--debug" "curl.verbose=1"; *) (* Nbdkit.add_arg cmd "--debug" "curl.scripts=1"; *) (* Retry filter (if it exists) can be used to get around brief * interruptions in service. It must be closest to the plugin. *) Nbdkit.add_filter_if_available cmd "retry"; (* Add the count filter if available, to report bytes read. * Since it writes a debug message, only do this if verbose. * This should be close to the plugin so we're reporting what * is read over the wire. *) if verbose () then Nbdkit.add_filter_if_available cmd "count"; (* IMPORTANT! Add the COW filter. It must be furthest away * except for the rate filter. *) Nbdkit.add_filter cmd "cow"; (* Add the cow-on-read flag if supported. *) (match cor with | None -> () | Some cor -> if Nbdkit.probe_filter_parameter "cow" "cow-on-read=.*/PATH" then Nbdkit.add_arg cmd "cow-on-read" cor ); (* Add the rate filter. This must be furthest away so that * we don't end up rate-limiting internal nbdkit operations. *) if Nbdkit.probe_filter "rate" then ( match bandwidth with | None -> () | Some bandwidth -> Nbdkit.add_filter cmd "rate"; match bandwidth with | StaticBandwidth rate -> Nbdkit.add_arg cmd "rate" rate | DynamicBandwidth (None, filename) -> Nbdkit.add_arg cmd "rate-file" filename | DynamicBandwidth (Some rate, filename) -> Nbdkit.add_args cmd ["rate", rate; "rate-file", filename] ); cmd ================================================ FILE: input/nbdkit_curl.mli ================================================ (* virt-v2v * Copyright (C) 2009-2025 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) (** Small wrapper around nbdkit-curl-plugin used by vcenter-https *) val create_curl : ?name:string -> ?bandwidth:Types.bandwidth -> ?cookie_script:string -> ?cookie_script_renew:int -> ?cor:string -> ?sslverify:bool -> string -> Nbdkit.cmd (** Create a nbdkit object using the Curl plugin. The required string parameter is the URL. This can fail (calling [error]) for a variety of reasons, such as nbdkit not being available, wrong version, missing plugin, etc. Note this doesn't run nbdkit yet, it just creates the object. *) ================================================ FILE: input/nbdkit_ssh.ml ================================================ (* virt-v2v * Copyright (C) 2009-2025 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) open Printf open Common_gettext.Gettext open Std_utils open Tools_utils open Types open Utils type password = | AskForPassword | PasswordFile of string (* Create an nbdkit module specialized for reading from SSH sources. *) let create_ssh ?name ?bandwidth ?cor ?(retry=true) ~server ?port ?user ?password path = if not (Nbdkit.is_installed ()) then error (f_"nbdkit is not installed or not working"); if not (Nbdkit.probe_plugin "ssh") then error (f_"nbdkit-ssh-plugin is not installed"); if not (Nbdkit.probe_filter "cow") then error (f_"nbdkit-cow-filter is not installed or not working"); (* Construct the nbdkit command. *) let cmd = Nbdkit.create ?name "ssh" in Nbdkit.add_arg cmd "host" server; Nbdkit.add_arg cmd "path" path; Option.iter (Nbdkit.add_arg cmd "port") port; Option.iter (Nbdkit.add_arg cmd "user") user; (* Retry filter (if it exists) can be used to get around brief * interruptions in service. It must be closest to the plugin. *) if retry then Nbdkit.add_filter_if_available cmd "retry"; (* Add the count filter if available, to report bytes read. * Since it writes a debug message, only do this if verbose. * This should be close to the plugin so we're reporting what * is read over the wire. *) if verbose () then Nbdkit.add_filter_if_available cmd "count"; (* IMPORTANT! Add the COW filter. It must be furthest away * except for the rate filter. *) Nbdkit.add_filter cmd "cow"; (* Add the cow-on-read flag if supported. *) (match cor with | None -> () | Some cor -> if Nbdkit.probe_filter_parameter "cow" "cow-on-read=.*/PATH" then Nbdkit.add_arg cmd "cow-on-read" cor ); (* Add the rate filter. This must be furthest away so that * we don't end up rate-limiting internal nbdkit operations. *) if Nbdkit.probe_filter "rate" then ( match bandwidth with | None -> () | Some bandwidth -> Nbdkit.add_filter cmd "rate"; match bandwidth with | StaticBandwidth rate -> Nbdkit.add_arg cmd "rate" rate | DynamicBandwidth (None, filename) -> Nbdkit.add_arg cmd "rate-file" filename | DynamicBandwidth (Some rate, filename) -> Nbdkit.add_args cmd ["rate", rate; "rate-file", filename] ); (* Handle the password parameter specially. *) (match password with | None -> () | Some AskForPassword -> (* Because we will start nbdkit in the background and then wait * for 30 seconds for it to start up, we cannot use the * password=- feature of nbdkit to read the password * interactively (since in the words of the movie the user has * only "30 seconds to comply"). In any case this feature broke * in the VDDK plugin in nbdkit 1.18 and 1.20. So in the * AskForPassword case we read the password here. *) printf "password: "; let open Unix in let orig = tcgetattr stdin in let tios = { orig with c_echo = false } in tcsetattr stdin TCSAFLUSH tios; (* Disable echo. *) let password = read_line () in tcsetattr stdin TCSAFLUSH orig; (* Restore echo. *) printf "\n"; let password_file = Filename.temp_file "v2vnbdkit" ".txt" in On_exit.unlink password_file; with_open_out password_file (fun chan -> output_string chan password); Nbdkit.add_arg cmd "password" ("+" ^ password_file) | Some (PasswordFile password_file) -> Nbdkit.add_arg cmd "password" ("+" ^ password_file) ); cmd ================================================ FILE: input/nbdkit_ssh.mli ================================================ (* virt-v2v * Copyright (C) 2009-2025 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) (** nbdkit when used as a source. *) type password = (** Use [None] for no password *) | AskForPassword (** [password=-] *) | PasswordFile of string (** [password=+file] *) val create_ssh : ?name:string -> ?bandwidth:Types.bandwidth -> ?cor:string -> ?retry:bool -> server:string -> ?port:string -> ?user:string -> ?password:password -> string -> Nbdkit.cmd (** Create a nbdkit object using the SSH plugin. The required string parameter is the remote path. This can fail (calling [error]) for a variety of reasons, such as nbdkit not being available, wrong version, missing plugin, etc. Note this doesn't run nbdkit yet, it just creates the object. *) ================================================ FILE: input/parse_domain_from_vmx.ml ================================================ (* virt-v2v * Copyright (C) 2017-2025 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) open Printf open Scanf open Std_utils open Tools_utils open Unix_utils open Common_gettext.Gettext open Types open Utils type vmx_source = | VMXSourceFile of string (* local file or NFS *) | VMXSourceSSH of Nbdkit_ssh.password option * Xml.uri (* SSH URI *) (* The single filename on the command line is interpreted either as * a local file or a remote SSH URI (only if ‘-it ssh’). *) let vmx_source_of_arg input_password input_transport arg = match input_transport, arg with | None, arg -> VMXSourceFile arg | Some `SSH, arg -> let uri = try Xml.parse_uri arg with Invalid_argument _ -> error (f_"remote vmx ‘%s’ could not be parsed as a URI") arg in if uri.Xml.uri_scheme <> None && uri.Xml.uri_scheme <> Some "ssh" then error (f_"vmx URI start with ‘ssh://...’"); if uri.Xml.uri_server = None then error (f_"vmx URI remote server name omitted"); if uri.Xml.uri_path = None || uri.Xml.uri_path = Some "/" then error (f_"vmx URI path component looks incorrect"); VMXSourceSSH (input_password, uri) let rec find_disks vmx vmx_source = (* Set the s_disk_id field to an incrementing number. *) List.mapi (fun i (source, filename) -> { source with s_disk_id = i }, filename) (find_scsi_disks vmx vmx_source @ find_nvme_disks vmx vmx_source @ find_sata_disks vmx vmx_source @ find_ide_disks vmx vmx_source) (* Find all SCSI hard disks. * * In the VMX file: * scsi0.virtualDev = "pvscsi" # or may be "lsilogic" etc. * scsi0:0.deviceType = "disk" | "plainDisk" | "rawDisk" | "scsi-hardDisk" * | omitted * scsi0:0.fileName = "guest.vmdk" *) and find_scsi_disks vmx vmx_source = let get_scsi_controller_target ns = sscanf ns "scsi%d:%d" (fun c t -> c, t) in let is_scsi_controller_target ns = try ignore (get_scsi_controller_target ns); true with Scanf.Scan_failure _ | End_of_file | Failure _ -> false in let scsi_device_types = [ Some "disk"; Some "plaindisk"; Some "rawdisk"; Some "scsi-harddisk"; None ] in let scsi_controller = Source_SCSI in find_hdds vmx vmx_source get_scsi_controller_target is_scsi_controller_target scsi_device_types scsi_controller (* Find all NVMe hard disks. * * In the VMX file: * nvme0.pcislotnumber = "192" * nvme0:0.fileName = "guest.vmdk" *) and find_nvme_disks vmx vmx_source = let get_nvme_controller_target ns = sscanf ns "nvme%d:%d" (fun c t -> c, t) in let is_nvme_controller_target ns = try ignore (get_nvme_controller_target ns); true with Scanf.Scan_failure _ | End_of_file | Failure _ -> false in let nvme_device_types = [ None ] in let nvme_controller = Source_NVME in find_hdds vmx vmx_source get_nvme_controller_target is_nvme_controller_target nvme_device_types nvme_controller (* Find all SATA hard disks. * * In the VMX file: * sata0.pciSlotNumber = "33" * sata0:3.fileName = "win2019_1.vmdk" * * The "deviceType" field must be absent or "disk". Other types here * include "cdrom-raw" and others indicating a CD-ROM, which we should * ignore. *) and find_sata_disks vmx vmx_source = let get_sata_controller_target ns = sscanf ns "sata%d:%d" (fun c t -> c, t) in let is_sata_controller_target ns = try ignore (get_sata_controller_target ns); true with Scanf.Scan_failure _ | End_of_file | Failure _ -> false in let sata_device_types = [ Some "disk"; None ] in let sata_controller = Source_SATA in find_hdds vmx vmx_source get_sata_controller_target is_sata_controller_target sata_device_types sata_controller (* Find all IDE hard disks. * * In the VMX file: * ide0:0.deviceType = "ata-hardDisk" * ide0:0.fileName = "guest.vmdk" *) and find_ide_disks vmx vmx_source = let get_ide_controller_target ns = sscanf ns "ide%d:%d" (fun c t -> c, t) in let is_ide_controller_target ns = try ignore (get_ide_controller_target ns); true with Scanf.Scan_failure _ | End_of_file | Failure _ -> false in let ide_device_types = [ Some "ata-harddisk" ] in let ide_controller = Source_IDE in find_hdds vmx vmx_source get_ide_controller_target is_ide_controller_target ide_device_types ide_controller and find_hdds vmx vmx_source get_controller_target is_controller_target device_types controller = (* Find namespaces matching '(ide|scsi|nvme|sata)X:Y' with suitable * deviceType. *) let hdds = VMX.select_namespaces ( function | [ns] -> (* Check the namespace is '(ide|scsi|nvme|sata)X:Y' *) if not (is_controller_target ns) then false else ( (* Check the deviceType is one we are looking for. *) let dt = VMX.get_string vmx [ns; "deviceType"] in let dt = Option.map String.lowercase_ascii dt in List.mem dt device_types ) | _ -> false ) vmx in (* Map the subset to a list of disks. *) let hdds = VMX.map ( fun path v -> match path, v with | [ns; "filename"], Some filename -> let c, t = get_controller_target ns in let s = { s_disk_id = (-1); s_controller = Some controller } in Some (c, t, s, filename) | _ -> None ) hdds in let hdds = List.filter_map Fun.id hdds in (* We don't have a way to return the controllers and targets, so * just make sure the disks are sorted into order, since VMX * won't return them in any particular order. *) let hdds = List.sort compare hdds in List.map (fun (_, _, source, filename) -> source, filename) hdds (* Find all removable disks. * * In the VMX file: * ide1:0.deviceType = "cdrom-image" * ide1:0.fileName = "boot.iso" * * XXX This only supports IDE CD-ROMs, but we could support SCSI CD-ROMs, SATA * CD-ROMs, and floppies in future. *) and find_removables vmx = let get_ide_controller_target ns = sscanf ns "ide%d:%d" (fun c t -> c, t) in let is_ide_controller_target ns = try ignore (get_ide_controller_target ns); true with Scanf.Scan_failure _ | End_of_file | Failure _ -> false in let device_types = [ "atapi-cdrom"; "cdrom-image"; "cdrom-raw" ] in (* Find namespaces matching 'ideX:Y' with suitable deviceType. *) let devs = VMX.select_namespaces ( function | [ns] -> (* Check the namespace is 'ideX:Y' *) if not (is_ide_controller_target ns) then false else ( (* Check the deviceType is one we are looking for. *) match VMX.get_string vmx [ns; "deviceType"] with | Some str -> let str = String.lowercase_ascii str in List.mem str device_types | None -> false ) | _ -> false ) vmx in (* Map the subset to a list of CD-ROMs. *) let devs = VMX.map ( fun path v -> match path, v with | [ns], None -> let c, t = get_ide_controller_target ns in let s = { s_removable_type = CDROM; s_removable_controller = Some Source_IDE; s_removable_slot = Some (ide_slot c t) } in Some s | _ -> None ) devs in let devs = List.filter_map Fun.id devs in (* Sort by slot. *) let devs = List.sort (fun { s_removable_slot = s1 } { s_removable_slot = s2 } -> compare s1 s2) devs in devs and ide_slot c t = (* Assuming the old master/slave arrangement. *) c * 2 + t (* Find all ethernet cards. * * In the VMX file: * ethernet0.virtualDev = "vmxnet3" * ethernet0.networkName = "VM Network" * ethernet0.generatedAddress = "00:01:02:03:04:05" * ethernet0.connectionType = "bridged" # also: "custom", "nat" or not present *) and find_nics vmx = let get_ethernet_port ns = sscanf ns "ethernet%d" (fun p -> p) in let is_ethernet_port ns = try ignore (get_ethernet_port ns); true with Scanf.Scan_failure _ | End_of_file | Failure _ -> false in (* Find namespaces matching 'ethernetX'. *) let nics = VMX.select_namespaces ( function | [ns] -> is_ethernet_port ns | _ -> false ) vmx in (* Map the subset to a list of NICs. *) let nics = VMX.map ( fun path v -> match path, v with | [ns], None -> let port = get_ethernet_port ns in let mac = VMX.get_string vmx [ns; "generatedAddress"] in let model = VMX.get_string vmx [ns; "virtualDev"] in let model = match model with | Some m when String.lowercase_ascii m = "e1000" -> Some Source_e1000 | Some model -> Some (Source_other_nic (String.lowercase_ascii model)) | None -> None in let vnet = VMX.get_string vmx [ns; "networkName"] in let vnet = match vnet with | Some vnet -> vnet | None -> ns (* "ethernetX" *) in let vnet_type = match VMX.get_string vmx [ns; "connectionType"] with | Some b when String.lowercase_ascii b = "bridged" -> Bridge | Some _ | None -> Network in Some (port, { s_mac = mac; s_nic_model = model; s_vnet = vnet; s_vnet_type = vnet_type }) | _ -> None ) nics in let nics = List.filter_map Fun.id nics in (* Sort by port. *) let nics = List.sort compare nics in let nics = List.map (fun (_, source) -> source) nics in nics let parse_domain_from_vmx vmx_source = let tmpdir = let t = Mkdtemp.temp_dir "vmx." in On_exit.rm_rf t; t in (* If the transport is SSH, fetch the file from remote, else * parse it from local. *) let vmx = match vmx_source with | VMXSourceFile filename -> VMX.parse_file filename | VMXSourceSSH (password, uri) -> let server = match uri.uri_server with | None -> assert false (* checked by vmx_source_of_arg *) | Some server -> server in let port = match uri.uri_port with | i when i <= 0 -> None | i -> Some (string_of_int i) in let user = uri.Xml.uri_user in let path = match uri.uri_path with | None -> assert false (* checked by vmx_source_of_arg *) | Some path -> path in let filename = tmpdir // "source.vmx" in Ssh.download_file ?password ?port ~server ?user path filename; VMX.parse_file filename in let name = match VMX.get_string vmx ["displayName"] with | Some s -> s | None -> warning (f_"no displayName key found in VMX file"); match vmx_source with | VMXSourceFile filename -> name_from_disk filename | VMXSourceSSH (_, uri) -> match uri.uri_path with | None -> assert false (* checked by vmx_source_of_arg *) | Some path -> name_from_disk path in let genid = (* See: https://lists.nongnu.org/archive/html/qemu-devel/2018-07/msg02019.html *) let genid_lo = VMX.get_int64 vmx ["vm"; "genid"] and genid_hi = VMX.get_int64 vmx ["vm"; "genidX"] in match genid_lo, genid_hi with | None, None | Some _, None | None, Some _ -> None | Some lo, Some hi -> (* See docs/vm-generation-id-across-hypervisors.txt *) let sub = String.sub (sprintf "%016Lx%016Lx" lo hi) in let uuid = sub 8 8 ^ "-" ^ sub 4 4 ^ "-" ^ sub 0 4 ^ "-" ^ sub 30 2 ^ sub 28 2 ^ "-" ^ sub 26 2 ^ sub 24 2 ^ sub 22 2 ^ sub 20 2 ^ sub 18 2 ^ sub 16 2 in Some uuid in let memory_mb = match VMX.get_int64 vmx ["memSize"] with | None -> 32_L (* default is really 32 MB! *) | Some i -> i in let memory = memory_mb *^ 1024L *^ 1024L in let vcpu = match VMX.get_int vmx ["numvcpus"] with | None -> 1 | Some i -> i in let cpu_topology = match VMX.get_int vmx ["cpuid"; "coresPerSocket"] with | None -> None | Some cores_per_socket -> let sockets = vcpu / cores_per_socket in if sockets <= 0 then ( warning (f_"invalid cpuid.coresPerSocket < number of vCPUs"); None ) else Some { s_cpu_sockets = sockets; s_cpu_cores = cores_per_socket; s_cpu_threads = 1 } in let firmware = match VMX.get_string vmx ["firmware"] with | None -> BIOS | Some "efi" -> UEFI (* Other values are not documented for this field ... *) | Some fw -> warning (f_"unknown firmware value '%s', assuming BIOS") fw; BIOS in let uefi_secureboot = VMX.get_bool vmx ["uefi"; "secureBoot"; "enabled"] |> Option.value ~default:false in let sound = match VMX.get_string vmx ["sound"; "virtualDev"] with | Some "sb16" -> Some { s_sound_model = SB16 } | Some "es1371" -> Some { s_sound_model = ES1370 (* hmmm ... *) } | Some "hdaudio" -> Some { s_sound_model = ICH6 (* intel-hda *) } | Some model -> warning (f_"unknown sound device '%s' ignored") model; None | None -> None in let disks = find_disks vmx vmx_source in let removables = find_removables vmx in let nics = find_nics vmx in let source = { s_hypervisor = VMware; s_name = name; s_genid = genid; s_memory = memory; s_vcpu = vcpu; s_cpu_vendor = None; s_cpu_model = None; s_cpu_topology = cpu_topology; s_features = []; s_firmware = firmware; s_uefi_secureboot = uefi_secureboot; s_display = None; s_sound = sound; s_disks = List.map fst disks; s_removables = removables; s_nics = nics; } in source, List.map snd disks ================================================ FILE: input/parse_domain_from_vmx.mli ================================================ (* virt-v2v * Copyright (C) 2017-2025 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) (** Some helper functions for parsing [.vmx] (VMware metadata) files into a {!Types.source} structure and list of disks. *) type vmx_source = | VMXSourceFile of string (** local file or NFS *) | VMXSourceSSH of Nbdkit_ssh.password option * Xml.uri (** SSH URI *) val vmx_source_of_arg : Nbdkit_ssh.password option -> [`SSH] option -> string -> vmx_source val parse_domain_from_vmx : vmx_source -> Types.source * string list ================================================ FILE: input/parse_libvirt_xml.ml ================================================ (* virt-v2v * Copyright (C) 2009-2025 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) open Printf open C_utils open Std_utils open Tools_utils open Common_gettext.Gettext open Xpath_helpers open Types open Utils type disk = { d_format : string option; (* Disk format from XML if known. *) d_type : disk_type; (* Disk type and extra information. *) d_checksum : disk_checksum option; (* Disk checksum, if present. *) } and disk_type = | BlockDev of string (* type=block with *) | LocalFile of string (* type=file with *) | NBD of string * int (* NBD forward to hostname:port *) | HTTP of string (* HTTP/HTTPS URL *) and disk_checksum = { checksum_method : string; (* Checksum method, eg. "sha256". *) checksum_expected : string; (* Expected checksum. *) checksum_on_fail : checksum_on_fail } and checksum_on_fail = ChecksumOnFailWarn | ChecksumOnFailError | ChecksumPrint (* Turn string like "hda" into controller slot number. See also * common/utils/utils.c:guestfs_int_drive_index which this function calls. *) let get_drive_slot str offset = let name = String.sub str offset (String.length str - offset) in try Some (drive_index name) with Invalid_argument _ -> warning (f_"could not parse device name ‘%s’ \ from the source libvirt XML") str; None let parse_libvirt_xml ?conn xml = debug "libvirt xml is:\n%s" xml; (* Create a default libvirt connection on request, to not open one * in case there is no need to fetch more data (for example inspect * the storage pools). *) let libvirt_conn = lazy (Libvirt.Connect.connect ()) in let get_conn () = match conn with | None -> Lazy.force libvirt_conn | Some conn -> conn in let doc = Xml.parse_memory xml in let xpathctx = Xml.xpath_new_context doc in let xpath_string = xpath_string xpathctx and xpath_int = xpath_int xpathctx and xpath_int64 = xpath_int64 xpathctx in let hypervisor = match xpath_string "/domain/@type" with | None | Some "" -> error (f_"in the libvirt XML metadata, \ is missing or empty") | Some s -> source_hypervisor_of_string s in let name = match xpath_string "/domain/name/text()" with | None | Some "" -> error (f_"in the libvirt XML metadata, is missing or empty") | Some s -> String.trim s in let genid = match xpath_string "/domain/genid/text()" with | None | Some "" -> None | Some _ as s -> s in let memory = Option.value ~default:(1024L *^ 1024L) (xpath_int64 "/domain/memory/text()") in let memory = memory *^ 1024L in let cpu_vendor = xpath_string "/domain/cpu/vendor/text()" in let cpu_model = xpath_string "/domain/cpu/model/text()" in let cpu_sockets = xpath_int "/domain/cpu/topology/@sockets" in let cpu_cores = xpath_int "/domain/cpu/topology/@cores" in let cpu_threads = xpath_int "/domain/cpu/topology/@threads" in (* Get the field from the input XML. If not set then * try calculating it from the node. If that's * not set either, then assume 1 vCPU. *) let vcpu = xpath_int "/domain/vcpu/text()" in let vcpu = match vcpu, cpu_sockets, cpu_cores, cpu_threads with | Some vcpu, _, _, _ -> vcpu | None, None, None, None -> 1 | None, _, _, _ -> let sockets = Option.value ~default:1 cpu_sockets and cores = Option.value ~default:1 cpu_cores and threads = Option.value ~default:1 cpu_threads in sockets * cores * threads in let cpu_topology = match cpu_sockets, cpu_cores, cpu_threads with | Some sockets, Some cores, Some threads -> Some { s_cpu_sockets = sockets; s_cpu_cores = cores; s_cpu_threads = threads; } | _, _, _ -> None in let features = let nodes = xpath_get_nodes xpathctx "/domain/features/*" in List.map Xml.node_name nodes in let display = let obj = Xml.xpath_eval_expression xpathctx "/domain/devices/graphics" in let nr_nodes = Xml.xpathobj_nr_nodes obj in if nr_nodes < 1 then None else ( (* Ignore everything except the first device. *) let node = Xml.xpathobj_node obj 0 in Xml.xpathctx_set_current_context xpathctx node; let keymap = xpath_string "@keymap" in let password = xpath_string "@passwd" in let listen = let obj = Xml.xpath_eval_expression xpathctx "listen" in let nr_nodes = Xml.xpathobj_nr_nodes obj in if nr_nodes < 1 then ( match xpath_string "@listen" with | None -> LNoListen | Some a -> LAddress a ) else ( (* Use only the first configuration. *) match xpath_string "listen[1]/@type" with | None -> LNoListen | Some "address" -> (match xpath_string "listen[1]/@address" with | None -> LNoListen | Some a -> LAddress a ) | Some "network" -> (match xpath_string "listen[1]/@network" with | None -> LNoListen | Some n -> LNetwork n ) | Some "socket" -> (match xpath_string "listen[1]/@socket" with | None -> LSocket None | Some n -> LSocket (Some n) ) | Some "none" -> LNone | Some t -> warning (f_" in the input libvirt XML \ was ignored") t; LNoListen ) in let port = match xpath_string "@autoport" with | Some "no" -> (match xpath_int "@port" with | Some port when port > 0 -> Some port | Some _ | None -> None) | _ -> None in match xpath_string "@type" with | None -> None | Some "vnc" -> Some { s_display_type = VNC; s_keymap = keymap; s_password = password; s_listen = listen; s_port = port } | Some "spice" -> Some { s_display_type = Spice; s_keymap = keymap; s_password = password; s_listen = listen; s_port = port } | Some ("sdl"|"desktop" as t) -> warning (f_"virt-v2v does not support local displays, so \ in the input libvirt XML was ignored") t; None | Some t -> warning (f_"display in the input \ libvirt XML was ignored") t; None ) in (* Sound card. *) let sound = let obj = Xml.xpath_eval_expression xpathctx "/domain/devices/sound" in let nr_nodes = Xml.xpathobj_nr_nodes obj in if nr_nodes < 1 then None else ( (* Ignore everything except the first device. *) let node = Xml.xpathobj_node obj 0 in Xml.xpathctx_set_current_context xpathctx node; match xpath_string "@model" with | None -> None | Some model -> match source_sound_model_of_string model with | Some s_sound_model -> Some { s_sound_model } | None -> warning (f_"unknown sound model %s ignored") model; None ) in (* Presence of virtio-scsi controller. *) let has_virtio_scsi = let obj = Xml.xpath_eval_expression xpathctx "/domain/devices/controller[@model='virtio-scsi']" in Xml.xpathobj_nr_nodes obj > 0 in (* Non-removable disk devices. *) let s_disks, disks = let get_disks, add_disk = let s_disks = ref [] and disks = ref [] and i = ref (-1) in let get_disks () = List.rev !s_disks, List.rev !disks in let add_disk format controller typ checksum = incr i; let s_disk = { s_disk_id = !i; s_controller = controller } and disk = { d_format = format; d_type = typ; d_checksum = checksum; } in List.push_front s_disk s_disks; List.push_front disk disks in get_disks, add_disk in let obj = Xml.xpath_eval_expression xpathctx "/domain/devices/disk[@device='disk']" in let nr_nodes = Xml.xpathobj_nr_nodes obj in if nr_nodes < 1 then error (f_"this guest has no non-removable disks"); for i = 0 to nr_nodes-1 do let node = Xml.xpathobj_node obj i in Xml.xpathctx_set_current_context xpathctx node; let controller = let target_bus = xpath_string "target/@bus" in match target_bus, has_virtio_scsi with | None, _ -> None | Some "ide", _ -> Some Source_IDE | Some "sata", _ -> Some Source_SATA | Some "scsi", true -> Some Source_virtio_SCSI | Some "scsi", false -> Some Source_SCSI | Some "virtio", _ -> Some Source_virtio_blk | Some _, _ -> None in let format = match xpath_string "driver/@type" with | Some "aio" -> Some "raw" (* Xen weirdness *) | None -> None | Some format -> Some format in let checksum = match xpath_string "checksum/text()", xpath_string "checksum/@method", xpath_string "checksum/@fail" with | _, Some meth, Some ("print") -> Some { checksum_expected = ""; checksum_method = meth; checksum_on_fail = ChecksumPrint } | None, _, _ -> None | Some csum, None, _ -> warning (f_" missing 'method' attribute, ignoring"); None | _, _, (None | Some "ignore") -> None | Some csum, Some meth, Some ("warn" | "warning") -> Some { checksum_expected = String.trim csum; checksum_method = meth; checksum_on_fail = ChecksumOnFailWarn } | Some csum, Some meth, Some ("err" | "error") -> Some { checksum_expected = String.trim csum; checksum_method = meth; checksum_on_fail = ChecksumOnFailError } | _, _, Some v -> warning (f_" unknown fail='%s' attribute, ignoring") v; None in (* The attribute may be 'block', 'file', * 'network' or 'volume'. We ignore any other types. *) match xpath_string "@type" with | None -> warning (f_" element with no type attribute ignored") | Some "block" -> (match xpath_string "source/@dev" with | Some path -> add_disk format controller (BlockDev path) checksum | None -> () ); | Some "file" -> (match xpath_string "source/@file" with | Some path -> add_disk format controller (LocalFile path) checksum | None -> () ); | Some "network" -> (match (xpath_string "source/@protocol", xpath_string "source/host/@name", xpath_int "source/host/@port") with | None, _, _ -> warning (f_" was ignored") "network" | Some "nbd", Some ("localhost" as host), Some port when port > 0 -> (* with host localhost is used by virt-p2v *) add_disk format controller (NBD (host, port)) checksum | Some ("http"|"https" as driver), Some (_ as host), port -> (* This is for testing curl, eg for testing VMware conversions * without needing VMware around. *) let path = Option.value ~default:"" (xpath_string "source/@name") in let url = let port = match driver, port with | _, None -> "" | "https", Some 443 -> "" | "http", Some 80 -> "" | _, Some port when port >= 1 -> ":" ^ string_of_int port | _, Some port -> invalid_arg "invalid port number in libvirt XML" in sprintf "%s://%s%s%s" driver host port (uri_quote path) in add_disk format controller (HTTP url) checksum | Some protocol, _, _ -> warning (f_" with \ was ignored") protocol ) | Some "volume" -> (match xpath_string "source/@pool", xpath_string "source/@volume" with | None, None | Some _, None | None, Some _ -> () | Some pool, Some vol -> let xml = let pool = Libvirt_utils.get_pool (get_conn ()) pool in let vol = Libvirt_utils.get_volume pool vol in Libvirt.Volume.get_xml_desc (Libvirt.Volume.const vol) in let doc = Xml.parse_memory xml in let xpathctx = Xml.xpath_new_context doc in let xpath_string = Xpath_helpers.xpath_string xpathctx in (* Use the format specified in the volume itself. *) let format = xpath_string "/volume/target/format/@type" in (match xpath_string "/volume/@type" with | None | Some "file" -> (match xpath_string "/volume/target/path/text()" with | Some path -> add_disk format controller (LocalFile path) checksum | None -> () ); | Some vol_type -> warning (f_" with \ was ignored") vol_type ) ) | Some disk_type -> warning (f_" was ignored") disk_type done; get_disks () in (* Removable devices, CD-ROMs and floppy disks. *) let removables = let obj = Xml.xpath_eval_expression xpathctx "/domain/devices/disk[@device='cdrom' or @device='floppy']" in let nr_nodes = Xml.xpathobj_nr_nodes obj in let disks = ref [] in for i = 0 to nr_nodes-1 do let node = Xml.xpathobj_node obj i in Xml.xpathctx_set_current_context xpathctx node; let controller = let target_bus = xpath_string "target/@bus" in match target_bus, has_virtio_scsi with | None, _ -> None | Some "ide", _ -> Some Source_IDE | Some "sata", _ -> Some Source_SATA | Some "scsi", true -> Some Source_virtio_SCSI | Some "scsi", false -> Some Source_SCSI | Some "virtio", _ -> Some Source_virtio_blk | Some _, _ -> None in let slot = let target_dev = xpath_string "target/@dev" in match target_dev with | None -> None | Some dev when String.starts_with "sr" dev -> (* "srN" devices are found mostly in the physical XML written by * virt-p2v. *) let name = String.sub dev 2 (String.length dev - 2) in (try Some (int_of_string name) with Failure _ -> warning (f_"could not parse device name ‘%s’ \ from the source libvirt XML") dev; None ) | Some dev -> let rec loop = function | [] -> warning (f_" was ignored because \ the device name could not be recognized") dev; None | prefix :: rest -> if String.starts_with prefix dev then ( let offset = String.length prefix in get_drive_slot dev offset ) else loop rest in loop ["hd"; "sd"; "vd"; "xvd"; "fd"] in let typ = match xpath_string "@device" with | Some "cdrom" -> CDROM | Some "floppy" -> Floppy | _ -> assert false (* libxml2 error? *) in let disk = { s_removable_type = typ; s_removable_controller = controller; s_removable_slot = slot } in List.push_front disk disks done; List.rev !disks in (* Network interfaces. *) let nics = let obj = Xml.xpath_eval_expression xpathctx "/domain/devices/interface" in let nr_nodes = Xml.xpathobj_nr_nodes obj in let nics = ref [] in for i = 0 to nr_nodes-1 do let node = Xml.xpathobj_node obj i in Xml.xpathctx_set_current_context xpathctx node; let mac = xpath_string "mac/@address" in let mac = match mac with | None | Some "00:00:00:00:00:00" (* thanks, VMware *) -> None | Some mac -> Some mac in let model = match xpath_string "model/@type" with | None -> None | Some model -> Some (nic_model_of_string model) in let vnet_type = match xpath_string "@type" with | Some "network" -> Some Network | Some "bridge" -> Some Bridge | None | Some _ -> None in match vnet_type with | None -> () | Some vnet_type -> let add_nic vnet = let nic = { s_mac = mac; s_nic_model = model; s_vnet = vnet; s_vnet_type = vnet_type } in List.push_front nic nics in match xpath_string "source/@network | source/@bridge" with | None -> () | Some "" -> (* The libvirt VMware driver produces at least XML - see RHBZ#1257895. *) add_nic (sprintf "eth%d" i) | Some vnet -> add_nic vnet done; List.rev !nics in (* Firmware. * If "/domain/os" node doesn't contain "firmware" attribute (automatic * firmware), we look for the presence of "pflash" in * "/domain/os/loader/@type" attribute (manual firmware), with the latter * indicating the UEFI firmware. * See https://libvirt.org/formatdomain.html#bios-bootloader *) let firmware = match xpath_string "/domain/os/@firmware" with | Some "bios" -> BIOS | Some "efi" -> UEFI | Some _ -> UnknownFirmware | None -> ( match xpath_string "/domain/os/loader/@type" with | Some "pflash" -> UEFI | _ -> UnknownFirmware ) in (* Secure boot flag. See: * https://libvirt.org/kbase/secureboot.html *) let uefi_secureboot = match xpath_string "/domain/os/firmware/\ feature[@name='secure-boot']/@enabled" with | Some "yes" (* XXX other boolean values? *) -> true | Some _ | None -> false in (* Check for hostdev devices. (RHBZ#1472719) *) let () = let obj = Xml.xpath_eval_expression xpathctx "/domain/devices/hostdev" in let nr_nodes = Xml.xpathobj_nr_nodes obj in if nr_nodes > 0 then ( (* Sadly fn_ in ocaml-gettext seems broken, and always returns the * singular string no matter what. Work around this by using a simple * string with sn_ (which works), and outputting it as a whole. *) let msg = sn_ "this guest has a passthrough host device which will be ignored" "this guest has passthrough host devices which will be ignored" nr_nodes in warning "%s" msg ) in (* Check for direct attachments to physical network interfaces. * (RHBZ#1518539) *) let () = let obj = Xml.xpath_eval_expression xpathctx "/domain/devices/interface[@type='direct']" in let nr_nodes = Xml.xpathobj_nr_nodes obj in if nr_nodes > 0 then ( (* Sadly fn_ in ocaml-gettext seems broken, and always returns the * singular string no matter what. Work around this by using a simple * string with sn_ (which works), and outputting it as a whole. *) let msg = sn_ "this guest has a direct network interface which will be ignored" "this guest has direct network interfaces which will be ignored" nr_nodes in warning "%s" msg ) in ({ s_hypervisor = hypervisor; s_name = name; s_genid = genid; s_memory = memory; s_vcpu = vcpu; s_cpu_vendor = cpu_vendor; s_cpu_model = cpu_model; s_cpu_topology = cpu_topology; s_features = features; s_firmware = firmware; s_uefi_secureboot = uefi_secureboot; s_display = display; s_sound = sound; s_disks = s_disks; s_removables = removables; s_nics = nics; }, disks) let parse_libvirt_domain conn guest = let dom = Libvirt_utils.get_domain conn guest in (* Use XmlSecure to get passwords (RHBZ#1174123). *) let xml = Libvirt.Domain.get_xml_desc_flags dom [Libvirt.Domain.XmlSecure] in let source, disks = parse_libvirt_xml ~conn xml in source, disks, xml ================================================ FILE: input/parse_libvirt_xml.mli ================================================ (* virt-v2v * Copyright (C) 2009-2025 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) (** Parse libvirt XML into a {!Types.source} structure and list of disks. *) type disk = { d_format : string option; (** Disk format from XML if known. *) d_type : disk_type; (** Disk type and extra information. *) d_checksum : disk_checksum option; (** Disk checksum, if present. *) } and disk_type = | BlockDev of string (** type=block with *) | LocalFile of string (** type=file with *) | NBD of string * int (** NBD forward to hostname:port *) | HTTP of string (** HTTP/HTTPS URL *) and disk_checksum = { checksum_method : string; (** Checksum method, eg. "sha256". *) checksum_expected : string; (** Expected checksum. *) checksum_on_fail : checksum_on_fail } and checksum_on_fail = ChecksumOnFailWarn | ChecksumOnFailError | ChecksumPrint (** Libvirt disk description corresponding to each field in s_disks. The caller usually has to create NBD server instances for each of these. *) val parse_libvirt_domain : Libvirt.rw Libvirt.Connect.t -> string -> Types.source * disk list * string (** [parse_libvirt_domain conn dom] loads the XML of the domain [dom] from the libvirt connection [conn]. The result is a tuple with a {!Types.source} structure, a list of libvirt disks, and the XML of the guest. *) val parse_libvirt_xml : ?conn:Libvirt.rw Libvirt.Connect.t -> string -> Types.source * disk list (** Take libvirt XML and parse it into a {!Types.source} structure and a list of libvirt disks. *) ================================================ FILE: input/select_input.ml ================================================ (* helper-v2v-input * Copyright (C) 2009-2025 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) open Std_utils open Tools_utils open Common_gettext.Gettext type input_mode = | Disk | Libvirt | LibvirtXML | OVA | VMX let input_modes = [ Disk; Libvirt; LibvirtXML; OVA; VMX; ] let string_of_input_mode = function | Disk -> "disk" | Libvirt -> "libvirt" | LibvirtXML -> "libvirtxml" | OVA -> "ova" | VMX -> "vmx" let input_mode_of_string = function | "disk" | "local" -> Disk | "libvirt" -> Libvirt | "libvirtxml" -> LibvirtXML | "ova" -> OVA | "vmx" -> VMX | s -> error (f_"unknown -i option: %s") s let select_input ?(allow_remote = true) input_mode input_conn input_transport = match input_mode with | Some Disk -> (module Input_disk.Disk : Input.INPUT) | Some LibvirtXML -> (module Input_libvirt.LibvirtXML) | Some OVA -> (module Input_ova.OVA) | Some VMX -> (module Input_vmx.VMX) | None | Some Libvirt -> match input_conn with | None -> (module Input_libvirt.Libvirt_) | Some orig_uri -> let { Xml.uri_server = server; uri_scheme = scheme } = try Xml.parse_uri orig_uri with Invalid_argument msg -> error (f_"could not parse '-ic %s'. \ Original error message was: %s") orig_uri msg in match server, scheme, input_transport, allow_remote with | None, _, _, _ | Some "", _, _, _ (* Not a remote URI. *) | Some _, None, _, _ (* No scheme? *) | Some _, Some "", _, _ -> (module Input_libvirt.Libvirt_) (* All the input method below here are remote, but virt-v2v-in-place * cannot work with remote disks. If remote is not allowed * then fail here. *) | _, _, _, false -> error (f_"virt-v2v-in-place does not support remote \ libvirt URIs") (* vCenter over https. *) | Some server, Some ("esx"|"gsx"|"vpx"), None, true -> (module Input_vcenter_https.VCenterHTTPS) (* vCenter or ESXi using nbdkit vddk plugin *) | Some server, Some ("esx"|"gsx"|"vpx"), Some Input.VDDK, true -> (module Input_vddk.VDDK) (* Xen over SSH *) | Some server, Some "xen+ssh", _, true -> if Config.enable_xen then (module Input_xen_ssh.XenSSH) else failwithf "Xen input is not enabled in this build" (* Old virt-v2v also supported qemu+ssh://. However I am * deliberately not supporting this in new virt-v2v. Don't * use virt-v2v if a guest already runs on KVM. *) (* Unknown remote scheme. *) | Some _, Some _, _, true -> warning (f_"no support for remote libvirt connections \ to '-ic %s'. The conversion may fail when it \ tries to read the source disks.") orig_uri; (module Input_libvirt.Libvirt_) ================================================ FILE: input/select_input.mli ================================================ (* virt-v2v * Copyright (C) 2009-2025 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) type input_mode = | Disk | Libvirt | LibvirtXML | OVA | VMX (** [-i] option on the command line *) val input_modes : input_mode list (** A list of the available input modes. *) val string_of_input_mode : input_mode -> string (** Return the canonical string form of an input mode *) val input_mode_of_string : string -> input_mode (** Return the input mode corresponding to a string. This is used when parsing the command line. If the input mode is unknown this calls {!Tools_utils.error} and exits. *) val select_input : ?allow_remote:bool -> input_mode option -> string option -> Input.input_transport option -> (module Input.INPUT) (** Select an input module based on command line parameters. *) ================================================ FILE: input/ssh.ml ================================================ (* virt-v2v * Copyright (C) 2009-2025 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) open Std_utils open Tools_utils open Unix_utils open Common_gettext.Gettext open Printf let start_nbdkit ~server ?port ?user ?password path = (* Create a random location for the socket used to talk to nbdkit. *) let sockdir = Mkdtemp.temp_dir "v2vssh." in On_exit.rm_rf sockdir; let id = unique () in let socket = sockdir // sprintf "nbdkit%d.sock" id in (* Note: Disabling the retry filter helps in the missing file case, * otherwise nbdkit takes ages to time out. We're not expecting that * the VMX file is large, so using this filter isn't necessary. *) let nbdkit = Nbdkit_ssh.create_ssh ~retry:false ?password ~server ?port ?user path in Nbdkit.set_readonly nbdkit true; let _, pid = Nbdkit.run_unix socket nbdkit in On_exit.kill pid; (* Return the URI of nbdkit. *) "nbd+unix://?socket=" ^ socket (* Download a remote file into a local file. *) let download_file ~server ?port ?user ?password path output = let uri = start_nbdkit ~server ?port ?user ?password path in let cmd = [ Config.nbdcopy; uri; output ] in if run_command cmd <> 0 then error (f_"could not copy the VMX file from the remote server, \ see earlier error messages") (* Test if [path] exists on the remote server. *) let remote_file_exists ~server ?port ?user ?password path = let uri = start_nbdkit ~server ?port ?user ?password path in (* Testing that the nbdkit server can get the size is enough to * prove the remote file exists. *) let cmd = sprintf "%s --size %s >/dev/null %s" Config.nbdinfo (quote uri) (* If verbose then allow stderr to go to the log, else hide it *) (if verbose () then "" else "2>&1") in let r = shell_command cmd = 0 in debug "ssh: remote_file_exists: testing %s -> %b" path r; r ================================================ FILE: input/ssh.mli ================================================ (* virt-v2v * Copyright (C) 2009-2025 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) (** Wrappers for finding and downloading remote files over ssh. Internally this uses nbdkit-ssh-plugin (which uses sftp) as that is much more predictable than running external ssh / scp. *) (** [remote_file_exists server ?port ?user ?password path] checks that [path] exists on the remote server. *) val remote_file_exists : server:string -> ?port:string -> ?user:string -> ?password:Nbdkit_ssh.password -> string -> bool (** [download_file server ?port ?user ?password path output] downloads the single remote file at [path] to the local file called [output]. *) val download_file : server:string -> ?port:string -> ?user:string -> ?password:Nbdkit_ssh.password -> string -> string -> unit ================================================ FILE: input/vCenter.ml ================================================ (* virt-v2v * Copyright (C) 2009-2025 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) open Printf open Std_utils open Tools_utils open Common_gettext.Gettext open Xml open Utils let source_re = PCRE.compile "^\\[(.*)\\] (.*)\\.vmdk$" let snapshot_re = PCRE.compile "^(.*)-\\d{6}(\\.vmdk)$" let rec start_nbdkit_for_path ?bandwidth ?cor ?password_file dcPath uri server path socket = (* If no_verify=1 was passed in the libvirt URI, then we have to * turn off certificate verification here too. *) let sslverify = match uri.uri_query_raw with | None -> true | Some query -> (* XXX only works if the query string is not URI-quoted *) String.find query "no_verify=1" = -1 in (* Check the URL exists and authentication info is correct. *) let https_url = let https_url = get_https_url dcPath uri server path in let status, dump_response = fetch_headers_from_url password_file uri sslverify https_url in (* If a disk is actually a snapshot image it will have '-00000n' * appended to its name, e.g.: * [yellow:storage1] RHEL4-X/RHEL4-X-000003.vmdk * The flat storage is still called RHEL4-X-flat, however. If we got * a 404 and the vmdk name looks like it might be a snapshot, try * again without the snapshot suffix. *) let https_url, status, dump_response = if status = "404" && PCRE.matches snapshot_re path then ( let path = PCRE.sub 1 ^ PCRE.sub 2 in let https_url = get_https_url dcPath uri server path in let status, dump_response = fetch_headers_from_url password_file uri sslverify https_url in https_url, status, dump_response ) else (https_url, status, dump_response) in if status = "401" then ( dump_response stderr; if uri.uri_user <> None then error (f_"vcenter: incorrect username or password") else error (f_"vcenter: incorrect username or password. You might need \ to specify the username in the URI like this: \ [vpx|esx|..]://USERNAME@[etc]") ); if status = "404" then ( dump_response stderr; error (f_"vcenter: URL not found: %s") https_url ); if status <> "200" then ( dump_response stderr; error (f_"vcenter: invalid response from server: %s") status ); https_url in (* Write a cookie script to retrieve the session cookie. * See nbdkit-curl-plugin(1) "Example: VMware ESXi cookies" *) let cookie_script, chan = Filename.open_temp_file ~perms:0o700 "v2vcs" ".sh" in On_exit.unlink cookie_script; let fpf fs = fprintf chan fs in fpf "#!/bin/sh -\n"; fpf "\n"; fpf "curl --head -s"; if not sslverify then fpf " --insecure"; (match uri.uri_user, password_file with | None, None -> () | Some user, None -> fpf " -u %s" (quote user) | None, Some password_file -> fpf " -u \"$LOGNAME\":\"$(cat %s)\"" (quote password_file) | Some user, Some password_file -> fpf " -u %s:\"$(cat %s)\"" (quote user) (quote password_file) ); fpf " %s" (quote https_url); fpf " |\n"; fpf "\tsed -ne %s\n" (quote "{ s/^Set-Cookie: \\([^;]*\\);.*/\\1/ip }"); close_out chan; (* VMware authentication expires after 30 minutes so we must renew * after < 30 minutes. *) let cookie_script_renew = 25*60 in let nbdkit = Nbdkit_curl.create_curl ?bandwidth ?cor ~cookie_script ~cookie_script_renew ~sslverify https_url in let _, pid = Nbdkit.run_unix socket nbdkit in pid and get_https_url dcPath uri server path = if not (PCRE.matches source_re path) then path else ( let datastore = PCRE.sub 1 and path = PCRE.sub 2 in let port = match uri.uri_port with | 443 -> "" | n when n >= 1 -> ":" ^ string_of_int n | _ -> "" in (* XXX Need to handle templates. The file is called "-delta.vmdk" in * place of "-flat.vmdk". *) (* dcPath and dsName need to be double quoted: * https://gitlab.com/libvirt/libvirt/-/commit/6c9d2591c6 *) sprintf "https://%s%s/folder/%s-flat.vmdk?dcPath=%s&dsName=%s" server port (uri_quote path) (uri_quote (uri_quote dcPath)) (uri_quote (uri_quote datastore)) ) (* Fetch the status from a URL. *) and fetch_headers_from_url password_file uri sslverify https_url = let curl_args = ref [ "head", None; "silent", None; ] in (match uri.uri_user, password_file with | None, None -> () | None, Some _ -> warning (f_"-ip PASSWORD_FILE parameter ignored because \ 'user@' was not given in the URL") | Some user, None -> List.push_back curl_args ("user", Some user) | Some user, Some password_file -> let password = read_first_line_from_file password_file in List.push_back curl_args ("user", Some (user ^ ":" ^ password)) ); if not sslverify then List.push_back curl_args ("insecure", None); let curl_h = Curl.create !curl_args https_url in let lines = Curl.run curl_h in let dump_response chan = Curl.print chan curl_h; (* Dump out the output of the command. *) List.iter (fun x -> fprintf chan "%s\n" x) lines; flush chan in if verbose () then dump_response stderr; let statuses, headers = List.partition ( fun line -> let len = String.length line in len >= 12 && String.sub line 0 5 = "HTTP/" ) lines in (* Look for the last HTTP/x.y NNN status code in the output. *) let status = match statuses with | [] -> dump_response stderr; error (f_"vcenter: no status code in output of ‘curl’ command.") | ss -> let s = List.hd (List.rev ss) in String.sub s (String.index s ' ' + 1) 3 in status, dump_response ================================================ FILE: input/vCenter.mli ================================================ (* virt-v2v * Copyright (C) 2009-2025 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) (** Functions for dealing with VMware vCenter. *) val start_nbdkit_for_path : ?bandwidth:Types.bandwidth -> ?cor:string -> ?password_file:string -> string -> Xml.uri -> string -> string -> string -> int (** [start_nbdkit_for_path ?bandwidth ?cor ?password_file dcPath uri server path socket] maps the [] string to an nbdkit instance pointing to the guest disk. The input [path] comes from libvirt and will be something like: ["[datastore1] Fedora 20/Fedora 20.vmdk"] (including those literal spaces in the string). This checks that the disk exists and that authentication is correct, otherwise it will fail. [socket] is the location of the Unix domain socket exposing NBD. This returns the PID of nbdkit. Note that a COW overlay is placed over the disk so writes will be discarded. *) ================================================ FILE: inspector/Makefile.am ================================================ # libguestfs virt-v2v-inspector tool # Copyright (C) 2009-2025 Red Hat Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. include $(top_srcdir)/subdir-rules.mk EXTRA_DIST = \ test-docs.sh \ $(SOURCES_MLI) \ $(SOURCES_ML) \ $(SOURCES_C) \ virt-v2v-inspector.pod \ $(NULL) SOURCES_MLI = \ create_inspector_xml.mli \ inspector.mli \ $(NULL) SOURCES_ML = \ create_inspector_xml.ml \ inspector.ml \ $(NULL) SOURCES_C = dummy.c bin_PROGRAMS = virt-v2v-inspector virt_v2v_inspector_SOURCES = $(SOURCES_C) virt_v2v_inspector_CPPFLAGS = \ -DCAML_NAME_SPACE \ -I. \ -I$(top_builddir) \ -I$(shell $(OCAMLC) -where) \ -I$(top_srcdir)/lib \ $(NULL) virt_v2v_inspector_CFLAGS = \ -pthread \ $(WARN_CFLAGS) $(WERROR_CFLAGS) \ $(LIBGUESTFS_CFLAGS) \ $(LIBVIRT_CFLAGS) \ $(NULL) BOBJECTS = $(SOURCES_ML:.ml=.cmo) XOBJECTS = $(BOBJECTS:.cmo=.cmx) OCAMLPACKAGES = \ -package str,unix,guestfs,libvirt,nbd \ -I $(top_builddir)/common/utils/.libs \ -I $(top_builddir)/common/qemuopts/.libs \ -I $(top_builddir)/gnulib/lib/.libs \ -I $(top_builddir)/lib \ -I $(top_builddir)/input \ -I $(top_builddir)/convert \ -I $(top_builddir)/common/mlstdutils \ -I $(top_builddir)/common/mlutils \ -I $(top_builddir)/common/mlgettext \ -I $(top_builddir)/common/mlpcre \ -I $(top_builddir)/common/mlxml \ -I $(top_builddir)/common/mltools \ -I $(top_builddir)/common/mlcustomize \ -I $(top_builddir)/common/mldrivers \ $(NULL) if HAVE_OCAML_PKG_GETTEXT OCAMLPACKAGES += -package gettext-stub endif OCAMLCLIBS = \ -pthread \ -lqemuopts \ $(LIBGUESTFS_LIBS) \ $(LIBVIRT_LIBS) \ $(LIBCRYPT_LIBS) \ $(LIBXML2_LIBS) \ $(JSON_C_LIBS) \ $(LIBOSINFO_LIBS) \ $(LIBINTL) \ $(LIBNBD_LIBS) \ -lgnu \ $(NULL) OCAMLFLAGS = $(OCAML_FLAGS) $(OCAML_WARN_ERROR) -ccopt '$(CFLAGS)' if !HAVE_OCAMLOPT OBJECTS = $(BOBJECTS) else OBJECTS = $(XOBJECTS) endif OCAMLLINKFLAGS = \ mlstdutils.$(MLARCHIVE) \ mlgettext.$(MLARCHIVE) \ mlpcre.$(MLARCHIVE) \ mlxml.$(MLARCHIVE) \ mlcutils.$(MLARCHIVE) \ mltools.$(MLARCHIVE) \ mllibvirt.$(MLARCHIVE) \ mlcustomize.$(MLARCHIVE) \ mldrivers.$(MLARCHIVE) \ mlv2vlib.$(MLARCHIVE) \ mlconvert.$(MLARCHIVE) \ mlinput.$(MLARCHIVE) \ $(LINK_CUSTOM_OCAMLC_ONLY) \ $(NULL) virt_v2v_inspector_DEPENDENCIES = \ $(OBJECTS) \ $(top_builddir)/input/mlinput.$(MLARCHIVE) \ $(top_builddir)/convert/mlconvert.$(MLARCHIVE) \ $(top_builddir)/lib/mlv2vlib.$(MLARCHIVE) \ $(top_srcdir)/ocaml-link.sh \ $(NULL) virt_v2v_inspector_LINK = \ $(top_srcdir)/ocaml-link.sh -cclib '$(OCAMLCLIBS)' -- \ $(OCAMLFIND) $(BEST) $(OCAMLFLAGS) $(OCAMLPACKAGES) $(OCAMLLINKFLAGS) \ $(OBJECTS) -o $@ # Data directory. virttoolsdatadir = $(datadir)/virt-tools # Dependencies. .depend: \ $(srcdir)/*.mli \ $(srcdir)/*.ml \ $(filter %.ml,$(BUILT_SOURCES)) $(top_builddir)/ocaml-dep.sh $^ -include .depend # Manual pages. man_MANS = virt-v2v-inspector.1 noinst_DATA = $(top_builddir)/website/virt-v2v-inspector.1.html virt-v2v-inspector.1 $(top_builddir)/website/virt-v2v-inspector.1.html: stamp-virt-v2v-inspector.pod stamp-virt-v2v-inspector.pod: virt-v2v-inspector.pod $(PODWRAPPER) \ --man virt-v2v-inspector.1 \ --html $(top_builddir)/website/virt-v2v-inspector.1.html \ --path $(top_srcdir)/common/options \ --license GPLv2+ \ --warning safe \ $< $(AM_V_at)touch $@ TESTS_ENVIRONMENT = $(top_builddir)/run --test TESTS = test-docs.sh ================================================ FILE: inspector/create_inspector_xml.ml ================================================ (* virt-v2v-inspector * Copyright (C) 2009-2025 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) open Printf open Std_utils open Tools_utils open Types open Utils open DOM (* This is where we construct the final XML document based on * these inputs: * - Global configuration like the version of v2v etc. * - The NBD input disks * - The inspection data (Types.inspect) *) let rec create_inspector_xml input_disks inspect target_meta = let body = ref [] in (* Record the version of virt-v2v etc, mainly for debugging. *) List.push_back_list body [ Comment generated_by; e "program" [] [PCData "virt-v2v-inspector"]; e "package" [] [PCData Config.package_name]; e "version" [] [PCData Config.package_version]; ]; (* The disks. *) let disks = ref [] in List.iteri ( fun index uri -> let uri = NBD_URI.to_uri uri in let virtual_size = Utils.with_nbd_connect_uri ~uri NBD.get_size in let elems = ref [] in List.push_back elems (e "virtual-size" [] [PCData (Int64.to_string virtual_size)]); (match get_disk_allocated uri with | None -> () | Some real_size -> List.push_back elems (e "allocated" [ "estimated", "true" ] [PCData (Int64.to_string real_size)]) ); List.push_back disks (e "disk" [ "index", string_of_int index ] !elems) ) input_disks; List.push_back body (e "disks" [] !disks); (* The field is outside the element, * since firmware is not part of the OS, and also because this is * consistent with virt-drivers output. *) List.push_back body (e "firmware" ["type", string_of_target_firmware target_meta.target_firmware] []); (* The inspection data. *) (* NB: Keep these field names compatible with virt-inspector! *) let os = ref [] in List.push_back os (e "name" [] [PCData inspect.i_type]); List.push_back os (e "distro" [] [PCData inspect.i_distro]); List.push_back os (e "osinfo" [] [PCData inspect.i_osinfo]); List.push_back os (e "arch" [] [PCData inspect.i_arch]); List.push_back os (e "major_version" [] [PCData (string_of_int inspect.i_major_version)]); List.push_back os (e "minor_version" [] [PCData (string_of_int inspect.i_minor_version)]); if inspect.i_package_format <> "" then List.push_back os (e "package_format" [] [PCData inspect.i_package_format]); if inspect.i_package_management <> "" then List.push_back os (e "package_management" [] [PCData inspect.i_package_management]); if inspect.i_product_name <> "" then List.push_back os (e "product_name" [] [PCData inspect.i_product_name]); if inspect.i_product_variant <> "" then List.push_back os (e "product_variant" [] [PCData inspect.i_product_variant]); if inspect.i_windows_systemroot <> "" then List.push_back os (e "windows_systemroot" [] [PCData inspect.i_windows_systemroot]); if inspect.i_windows_software_hive <> "" then List.push_back os (e "windows_software_hive" [] [PCData inspect.i_windows_software_hive]); if inspect.i_windows_systemroot <> "" then List.push_back os (e "windows_system_hive" [] [PCData inspect.i_windows_system_hive]); if inspect.i_windows_current_control_set <> "" then List.push_back os (e "windows_current_control_set" [] [PCData inspect.i_windows_current_control_set]); if inspect.i_windows_group_policy then List.push_back os (e "windows_group_policy" [] []); let has_antivirus = List.exists (fun { Guestfs.app2_class } -> app2_class = "antivirus") inspect.i_apps in if has_antivirus then List.push_back os (e "windows_antivirus" [] []); List.push_back os (e "root" [] [PCData inspect.i_root]); let mps = ref [] in List.iter ( fun (fs, dev) -> List.push_back mps (e "mountpoint" [ "dev", dev ] [PCData fs]) ) inspect.i_mountpoints; List.push_back os (e "mountpoints" [] !mps); let fses = ref [] in List.iter ( fun { fs_dev; fs_type; fs_version; fs_label; fs_uuid } -> let fs = ref [] in (match fs_type, fs_version with | None, _ -> () | Some typ, None -> List.push_back fs (e "type" [] [PCData typ]) | Some typ, Some ver -> List.push_back fs (e "type" [ "version", ver] [PCData typ]) ); (match fs_label with | None -> () | Some label -> List.push_back fs (e "label" [] [PCData label]) ); (match fs_uuid with | None -> () | Some uuid -> List.push_back fs (e "uuid" [] [PCData uuid]) ); List.push_back fses (e "filesystem" [ "dev", fs_dev] !fs) ) inspect.i_filesystems; List.push_back os (e "filesystems" [] !fses); List.push_back body (e "operatingsystem" [] !os); (* Construct the final document. *) (doc "v2v-inspection" [] !body : DOM.doc) ================================================ FILE: inspector/create_inspector_xml.mli ================================================ (* virt-v2v-in-place * Copyright (C) 2009-2025 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) val create_inspector_xml : NBD_URI.t list -> Types.inspect -> Types.target_meta -> DOM.doc (** Create the XML output of virt-v2v-inspector which contains the post-conversion metadata ([-O] option). *) ================================================ FILE: inspector/dummy.c ================================================ /* Dummy source, to be used for OCaml-based tools with no C sources. */ enum { foo = 1 }; ================================================ FILE: inspector/inspector.ml ================================================ (* virt-v2v-inspector * Copyright (C) 2009-2025 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) open Printf open Unix open Std_utils open Tools_utils open Unix_utils open Common_gettext.Gettext open Getopt.OptionName open Types open Utils open Create_inspector_xml (* Matches --mac command line parameters. *) let mac_re = PCRE.compile "^([[:xdigit:]]{2}:[[:xdigit:]]{2}:[[:xdigit:]]{2}:[[:xdigit:]]{2}:[[:xdigit:]]{2}:[[:xdigit:]]{2}):(network|bridge|ip):(.*)$" let mac_ip_re = PCRE.compile "^([[:xdigit:]]|:|\\.)+$" let rec main () = let set_string_option_once optname optref arg = match !optref with | Some _ -> error (f_"%s option used more than once on the command line") optname | None -> optref := Some arg in let output_file = ref None in let set_output_file_option filename = if filename = "-" then output_file := None else output_file := Some filename in let input_conn = ref None in let input_format = ref None in let input_password = ref None in let input_transport = ref None in let input_options = ref [] in let io_query = ref false in let set_input_option_compat k v = List.push_back input_options (k, v) in let set_input_option option = if option = "?" then io_query := true else ( let k, v = String.split "=" option in set_input_option_compat k v ) in let memsize = ref None in let set_memsize arg = memsize := Some arg in let smp = ref None in let set_smp arg = smp := Some arg in let no_fstrim = ref false in let network_map = Networks.create () in let static_ips = ref [] in let rec add_network str = match String.split ":" str with | "", "" -> error (f_"invalid -n/--network parameter") | out, "" | "", out -> Networks.add_default_network network_map out | in_, out -> Networks.add_network network_map in_ out and add_bridge str = match String.split ":" str with | "", "" -> error (f_"invalid -b/--bridge parameter") | out, "" | "", out -> Networks.add_default_bridge network_map out | in_, out -> Networks.add_bridge network_map in_ out and add_mac str = if not (PCRE.matches mac_re str) then error (f_"cannot parse --mac \"%s\" parameter") str; let mac = PCRE.sub 1 and out = PCRE.sub 3 in match PCRE.sub 2 with | "network" -> Networks.add_mac network_map mac Network out | "bridge" -> Networks.add_mac network_map mac Bridge out | "ip" -> (match String.nsplit "," out with | [] -> error (f_"invalid --mac ip option") | [ip] -> add_static_ip mac ip "" "" [] | [ip; gw] -> add_static_ip mac ip gw "" [] | ip :: gw :: len :: nameservers -> add_static_ip mac ip gw len nameservers ) | _ -> assert false and add_static_ip if_mac_addr if_ip_address if_default_gateway if_prefix_length_str if_nameservers = (* Check the IP addresses and prefix length are sensible. This * is only a very simple test that they are sane, since IP addresses * come in too many valid forms to check thoroughly. *) let rec error_unless_ip_addr what addr = if not (PCRE.matches mac_ip_re addr) then error (f_"cannot parse --mac ip %s: doesn’t look like “%s” \ is an IP address") what addr in error_unless_ip_addr "ipaddr" if_ip_address; let if_default_gateway = match if_default_gateway with "" -> None | gw -> Some gw in Option.iter (error_unless_ip_addr "gw") if_default_gateway; List.iter (error_unless_ip_addr "nameserver") if_nameservers; let if_prefix_length = match if_prefix_length_str with | "" -> None | len -> let len = try int_of_string len with | Failure _ -> error (f_"cannot parse --mac ip prefix \ length field as an integer: %s") len in if len < 0 || len > 128 then error (f_"--mac ip prefix length field is out of range"); Some len in List.push_back static_ips { if_mac_addr; if_ip_address; if_default_gateway; if_prefix_length; if_nameservers } in let root_choice = ref default_root_choice in let set_root_choice = Types.set_root_choice root_choice in let input_modes = Select_input.input_modes |> List.map Select_input.string_of_input_mode |> String.concat "|" in let input_mode = ref None in let set_input_mode mode = if !input_mode <> None then error (f_"%s option used more than once on the command line") "-i"; input_mode := Some (Select_input.input_mode_of_string mode) in let argspec = [ [ S 'b'; L"bridge" ], Getopt.String ("in:out", add_bridge), s_"Map bridge ‘in’ to ‘out’"; [ S 'i' ], Getopt.String (input_modes, set_input_mode), s_"Set input mode (default: libvirt)"; [ M"ic" ], Getopt.String ("uri", set_string_option_once "-ic" input_conn), s_"Libvirt URI"; [ M"if" ], Getopt.String ("format", set_string_option_once "-if" input_format), s_"Input format"; [ M"io" ], Getopt.String ("option[=value]", set_input_option), s_"Set option for input mode"; [ M"ip" ], Getopt.String ("filename", set_string_option_once "-ip" input_password), s_"Use password from file to connect to input hypervisor"; [ M"it" ], Getopt.String ("transport", set_string_option_once "-it" input_transport), s_"Input transport"; [ L"mac" ], Getopt.String ("mac:network|bridge|ip:out", add_mac), s_"Map NIC to network or bridge or assign static IP"; [ S 'm'; L"memsize" ], Getopt.Int ("mb", set_memsize), s_"Set memory size"; [ L"no-fstrim" ], Getopt.Set no_fstrim, s_"Don't trim filesystems before conversion"; [ S 'n'; L"network" ], Getopt.String ("in:out", add_network), s_"Map network ‘in’ to ‘out’"; [ S 'O' ], Getopt.String ("output.xml", set_output_file_option), s_"Set the output filename"; [ L"root" ], Getopt.String ("ask|... ", set_root_choice), s_"How to choose root filesystem"; [ L"smp" ], Getopt.Int ("vcpus", set_smp), s_"Set number of vCPUs"; ] in (* Append virt-customize options. *) let customize_argspec, get_customize_ops = Customize_cmdline.argspec ~v2v:true () in let customize_argspec = List.map (fun (spec, _, _) -> spec) customize_argspec in let argspec = argspec @ customize_argspec in let args = ref [] in let anon_fun s = List.push_front s args in let usage_msg = sprintf (f_"\ %s: estimate disk space needed before virt-v2v conversion virt-v2v-inspector -i disk disk.img [-O output.xml] A short summary of the options is given below. For detailed help please read the man page virt-v2v-inspector(1). ") prog in let opthandle = create_standard_options argspec ~anon_fun ~key_opts:true ~machine_readable:true usage_msg in Getopt.parse opthandle.getopt; (* Print the version, easier than asking users to tell us. *) debug "info: %s: %s %s (%s)" prog Config.package_name Config.package_version_full Config.host_cpu; (* Print the libvirt version if debugging. *) if verbose () then ( let major, minor, release = Libvirt_utils.libvirt_get_version () in debug "info: libvirt version: %d.%d.%d" major minor release ); (* Create the v2v directory to control conversion. *) let v2vdir = create_v2v_directory () in (* Dereference the arguments. *) let args = List.rev !args in let customize_ops = get_customize_ops () in let output_file = !output_file in let input_conn = !input_conn in let input_mode = !input_mode in let input_transport = match !input_transport with | None -> None | Some "ssh" -> Some Input.SSH | Some "vddk" -> Some Input.VDDK | Some transport -> error (f_"unknown input transport ‘-it %s’") transport in let memsize = !memsize in let no_fstrim = !no_fstrim in let root_choice = !root_choice in let smp = !smp in let static_ips = !static_ips in (* No arguments and machine-readable mode? Print out some facts * about what this binary supports. *) (match args, machine_readable () with | [], Some { pr } -> pr "virt-v2v-inspector\n"; pr "libguestfs-rewrite\n"; pr "colours-option\n"; pr "io\n"; pr "mac-option\n"; pr "mac-ip-option\n"; pr "customize-ops\n"; Select_input.input_modes |> List.map Select_input.string_of_input_mode |> List.iter (pr "input:%s\n"); pr "convert:linux\n"; pr "convert:windows\n"; List.iter (pr "ovf:%s\n") Create_ovf.ovf_flavours; exit 0 | _, _ -> () ); (* Select the input module. *) let (module Input_module) = Select_input.select_input input_mode input_conn input_transport in let input_options = { Input.bandwidth = None; input_conn = input_conn; input_format = !input_format; input_options = !input_options; input_password = !input_password; input_transport = input_transport; (* This must always be true so that we do not modify the * source. This is set to [false] by in-place mode. *) read_only = true; } in (* If -io ? then we want to query input options supported in this mode. *) if !io_query then ( Input_module.query_input_options (); exit 0 ); (* Get the conversion options. *) let conv_options = { Convert.block_driver = Virtio_blk; keep_serial_console = true; ks = opthandle.ks; memsize; network_map; root_choice; smp; static_ips; customize_ops; no_fstrim; } in (* Before starting the input module, check there is sufficient * free space in the temporary directory on the host. *) check_host_free_space (); (* Start the input module (runs an NBD server in the background). *) message (f_"Setting up the source: %s") (Input_module.to_string input_options args); let source, input_disks = Input_module.setup v2vdir input_options args in (* Do the conversion. *) with_open_out (v2vdir // "convert") (fun _ -> ()); let inspect, target_meta = Convert.convert input_disks conv_options source in unlink (v2vdir // "convert"); (* Debug the v2vdir. *) if verbose () then ( let cmd = sprintf "ls -alZ %s 1>&2" (quote v2vdir) in ignore (Sys.command cmd) ); (* Dump out the information. *) let doc = create_inspector_xml input_disks inspect target_meta in let chan = match output_file with | None -> Stdlib.stdout | Some filename -> open_out filename in DOM.doc_to_chan chan doc; Stdlib.flush chan; message (f_"Finishing off"); (* As the last thing, write a file indicating success before * we exit (so before we kill the helpers). The helpers may * use the presence or absence of the file to determine if * on-success or on-fail cleanup is required. *) with_open_out (v2vdir // "done") (fun _ -> ()) (* Conversion can fail or hang if there is insufficient free space in * the large temporary directory. Some input modules use large_tmpdir * to unpack OVAs or store qcow2 overlays and some output modules * use it to store temporary files. In addition the 500 MB guestfs * appliance may be created there. (RHBZ#1316479, RHBZ#2051394) *) and check_host_free_space () = let free_space = StatVFS.free_space (StatVFS.statvfs large_tmpdir) in debug "check_host_free_space: large_tmpdir=%s free_space=%Ld" large_tmpdir free_space; if free_space < 1_073_741_824L then error (f_"insufficient free space in the conversion server \ temporary directory %s (%s).\n\nEither free up space \ in that directory, or set the LIBGUESTFS_CACHEDIR \ environment variable to point to another directory \ with more than 1GB of free space.\n\nSee also the \ virt-v2v(1) manual, section \ \"Minimum free space check in the host\".") large_tmpdir (human_size free_space) let () = run_main_and_handle_errors main ================================================ FILE: inspector/inspector.mli ================================================ (* virt-v2v-inspector * Copyright (C) 2009-2025 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) (* virt-v2v-inspector main program. Nothing is exported. *) ================================================ FILE: inspector/test-docs.sh ================================================ #!/bin/bash - # libguestfs # Copyright (C) 2016 Red Hat Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. source ../tests/functions.sh set -e set -x skip_if_skipped $srcdir/../podcheck.pl virt-v2v-inspector.pod virt-v2v-inspector \ --path $srcdir/../common/options \ --ignore=\ --ic,\ --if,\ --io,\ --ip,\ --it,\ $virt_customize_options ================================================ FILE: inspector/virt-v2v-inspector.pod ================================================ =head1 NAME virt-v2v-inspector - Estimate disk space needed before virt-v2v conversion =head1 SYNOPSIS virt-v2v-inspector [-i* options] [virt-customize options] guest [-O output.xml] =head1 DESCRIPTION Virt-v2v-inspector is a companion tool for L which can be used before conversion to estimate the number of output disks and disk space that will be required to complete the virt-v2v conversion. The common use for this is to preallocate target disks on management systems that need this (like Kubevirt). This manual page only documents the estimation feature, not all of the I<-i*> options which are the same as virt-v2v. You should read L first. =head2 Selecting the input guest You can run virt-v2v-inspector with the same I<-i*> options as virt-v2v. (Don't use any I<-o*> options). This will select the guest that you want to estimate. For example to estimate the space required for a guest in a stored local disk called F you could do: virt-v2v-inspector -i disk filename.img =head2 Output The output from this tool is an XML document. =over 4 =item * Fields which are annotated with an C attribute are estimated. Virt-v2v cannot always know exactly the final size of some things, such as the exact real size of the output disk, since there might be small perturbations between runs. Estimates are usually very close to the final values. =item * Numbers representing sizes are always given in bytes. =item * By default the output is written to stdout. This is useful when using the program interactively. However if you want to use this tool from another program it is better to send the output to a specific file using I<-O output.xml> =back virt-v2v-inspector virt-v2v 2.1.9 The EprogramE, EpackageE and EversionE elements refer to the current version of virt-v2v-inspector and are useful for debugging. Make sure you use the same version of virt-v2v-inspector and virt-v2v. 6442450944 1400897536 6442450944 45131520 The EdisksE element lists information about each guest disk. The example virtual machine above has two disks. Evirtual-sizeE describes the size of the disk as seen from inside the guest, while EallocatedE is an estimate of how much storage will be needed on the host after conversion. This is assuming you use S> - see the notes below. linux fedora fedora32 x86_64 [...] The EoperatingsystemE element lists information about the guest operating system gleaned during conversion, in a manner similar to the L tool from guestfs-tools. =head2 Output allocation mode and output format Virt-v2v supports selecting the output allocation mode (I<-oa> option) and output format (I<-of> option, eg. S>). Since it is difficult to predict the effect of these options on the actual space occupied by the final image this tool does not account for them. As a rule of thumb: =over 4 =item S causes the disk images on the target to consume their full virtual size (excluding the effect of zero allocations will depends so much on the underlying storage that it is often hard even for experts to predict). =item S uses the QCOW2 format where supported which means that the apparent size of the file will be equal to its sparse size, but otherwise should not affect estimates very much. =back =head1 OPTIONS =over 4 =item B<--help> Display help. =item B<-O> F Write the output to a file called F. =item B<-O -> Write the output to stdout. This is also the default if the I<-O> option is omitted. =item B<-v> =item B<--verbose> Enable verbose messages for debugging. =item B<-V> =item B<--version> Display version number and exit. =item B<-x> Enable tracing of libguestfs API calls. =item B<-i> ... =item B<-ic> ... =item B<-if> ... =item B<-io> ... =item B<-ip> ... =item B<-it> ... All of the I<-i*> options supported by virt-v2v and also supported by virt-v2v-inspector. =item B<-b> ... =item B<--bridge> ... =item B<--colors> =item B<--colours> =item B<--echo-keys> =item B<--key> ... =item B<--keys-from-stdin> =item B<--mac> ... =item B<--machine-readable> =item B<--machine-readable>=format =item B<-m> MB =item B<--memsize> MB =item B<-n> ... =item B<--network> ... =item B<--no-fstrim> =item B<-q> =item B<--quiet> =item B<--root> ... =item B<--smp> N =item B<--wrap> These options work in the same way as the equivalent virt-v2v options. =back =head1 FILES Files used are the same as for virt-v2v. See L. =head1 ENVIRONMENT VARIABLES Environment variables used are the same as for virt-v2v. See L. =head1 SEE ALSO L, L, L, L, L, L, L, L. =head1 AUTHORS Matthew Booth Cédric Bosdonnat Laszlo Ersek Tomáš Golembiovský Shahar Havivi Richard W.M. Jones Roman Kagan Mike Latimer Nir Soffer Pino Toscano Xiaodai Wang Ming Xie Tingting Zheng =head1 COPYRIGHT Copyright (C) 2009-2025 Red Hat Inc. ================================================ FILE: installcheck.sh.in ================================================ #!/bin/bash # @configure_input@ # # (C) Copyright 2015 Red Hat Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. # Run 'make check' on installed packages. # # The version of installed libguestfs being tested, and the version of # the libguestfs source tree must be the same. unset CDPATH export LANG=C set -e set -x # Grrrrrrr autoconf. prefix=@prefix@ exec_prefix=@exec_prefix@ # Remove all libtool crappage. find -name 'lt-*' | grep '/.libs/lt-' | xargs -r rm # Copy the installed library into libtool directory. rm -f lib/.libs/libguestfs.so* cp @libdir@/libguestfs.so lib/.libs/ cp @libdir@/libguestfs.so.0 lib/.libs/ cp @libdir@/libguestfs.so.0.* lib/.libs/ # Copy installed binaries into the right places. cp @bindir@/libguestfs-test-tool test-tool/ cp @bindir@/guestfish fish/ cp @bindir@/guestmount fuse/ cp @bindir@/virt-alignment-scan align/ cp @bindir@/virt-builder builder/ cp @bindir@/virt-builder-repository builder/ cp @bindir@/virt-cat cat/ cp @bindir@/virt-copy-in fish/ cp @bindir@/virt-copy-out fish/ cp @bindir@/virt-customize customize/ cp @bindir@/virt-dib dib/ cp @bindir@/virt-diff diff/ cp @bindir@/virt-df df/ cp @bindir@/virt-edit edit/ cp @bindir@/virt-filesystems cat/ cp @bindir@/virt-format format/ cp @bindir@/virt-get-kernel get-kernel/ cp @bindir@/virt-inspector inspector/ cp @bindir@/virt-ls cat/ cp @bindir@/virt-make-fs make-fs/ cp @bindir@/virt-rescue rescue/ cp @bindir@/virt-resize resize/ cp @bindir@/virt-sparsify sparsify/ cp @bindir@/virt-sysprep sysprep/ cp @bindir@/virt-tar-in fish/ cp @bindir@/virt-tar-out fish/ cp @bindir@/virt-v2v v2v/ cp @bindir@/virt-win-reg tools/ # virt-list-filesystems, virt-list-partitions and virt-tar are not # tested, because they are not routinely installed by Linux distros # (being legacy programs). # XXX No language bindings are copied at the moment. # Copy the installed appliance. rm -rf appliance/supermin.d cp -r @libdir@/guestfs/supermin.d appliance/ # Try to force the appliance not to get rebuilt: touch appliance/stamp-supermin rm -rf "tmp/.guestfs-$(id -u)" # Run the tests. make check -k # Check the library and some critical binaries didn't get rebuilt # during the 'make check', which would invalidate the results of # the test. compare () { sum1=`md5sum $1 | @AWK@ '{print $1}'` sum2=`md5sum $2 | @AWK@ '{print $1}'` if [ "$sum1" != "$sum2" ]; then echo "$2 was overwritten during the test. Test results are invalid." exit 1 fi } compare @libdir@/libguestfs.so lib/.libs/libguestfs.so compare @bindir@/guestfish fish/guestfish compare @bindir@/guestmount fuse/guestmount compare @bindir@/virt-df df/virt-df compare @bindir@/virt-v2v v2v/virt-v2v compare @libdir@/guestfs/supermin.d/daemon.tar.gz \ appliance/supermin.d/daemon.tar.gz # Now do a make clean to remove all the above. make clean >/dev/null 2>&1 ||: ================================================ FILE: lib/Makefile.am ================================================ # Library code used by virt-v2v and helpers. # Copyright (C) 2011-2025 Red Hat Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. include $(top_srcdir)/subdir-rules.mk CONFIGURE_GENERATED_ML = \ config.ml # lib/guestfs-internal-all.h is a hack, remove it eventually XXX EXTRA_DIST = \ guestfs-internal-all.h \ $(SOURCES_MLI) \ $(SOURCES_ML) \ $(SOURCES_C) \ $(NULL) SOURCES_MLI = \ config.mli \ create_ovf.mli \ YAML.mli \ libvirt_utils.mli \ nbdkit.mli \ NBD_URI.mli \ networks.mli \ qemuNBD.mli \ types.mli \ utils.mli \ $(NULL) SOURCES_ML = \ types.ml \ utils.ml \ NBD_URI.ml \ nbdkit.ml \ qemuNBD.ml \ networks.ml \ YAML.ml \ create_ovf.ml \ libvirt_utils.ml \ $(NULL) SOURCES_C = dummy.c # We pretend that we're building a C library. automake handles the # compilation of the C sources for us. At the end we take the C # objects and OCaml objects and link them into the OCaml library. # This C library is never used. noinst_LIBRARIES = libmlv2vlib.a if !HAVE_OCAMLOPT MLV2VLIB_CMA = mlv2vlib.cma else MLV2VLIB_CMA = mlv2vlib.cmxa endif noinst_DATA = $(MLV2VLIB_CMA) libmlv2vlib_a_SOURCES = $(SOURCES_C) libmlv2vlib_a_CPPFLAGS = \ -DCAML_NAME_SPACE \ -I. \ -I$(top_builddir) \ -I$(shell $(OCAMLC) -where) \ $(NULL) libmlv2vlib_a_CFLAGS = \ $(WARN_CFLAGS) $(WERROR_CFLAGS) \ -fPIC \ $(NULL) BOBJECTS = config.cmo $(SOURCES_ML:.ml=.cmo) XOBJECTS = $(BOBJECTS:.cmo=.cmx) OCAMLPACKAGES = \ -package str,unix,libvirt,nbd \ -I $(builddir) \ -I $(top_builddir)/common/mlgettext \ -I $(top_builddir)/common/mlpcre \ -I $(top_builddir)/common/mlstdutils \ -I $(top_builddir)/common/mltools \ -I $(top_builddir)/common/mlutils \ -I $(top_builddir)/common/mlxml \ $(NULL) OCAMLPACKAGES_TESTS = $(MLV2VLIB_CMA) if HAVE_OCAML_PKG_GETTEXT OCAMLPACKAGES += -package gettext-stub endif OCAMLFLAGS = $(OCAML_FLAGS) $(OCAML_WARN_ERROR) -ccopt '$(CFLAGS)' if !HAVE_OCAMLOPT OBJECTS = $(BOBJECTS) else OBJECTS = $(XOBJECTS) endif libmlv2vlib_a_DEPENDENCIES = $(OBJECTS) $(MLV2VLIB_CMA): $(OBJECTS) libmlv2vlib.a $(AM_V_GEN) $(OCAMLFIND) mklib $(OCAMLPACKAGES) \ $(OBJECTS) $(libmlv2vlib_a_OBJECTS) -o mlv2vlib # OCaml dependencies. .depend: \ $(srcdir)/*.mli \ $(srcdir)/*.ml \ $(CONFIGURE_GENERATED_ML) $(top_builddir)/ocaml-dep.sh $^ -include .depend .PHONY: docs ================================================ FILE: lib/NBD_URI.ml ================================================ (* virt-v2v * Copyright (C) 2009-2025 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) open Std_utils open Printf type t = Unix of string * string option let to_uri (Unix (socket, export)) = let export = export |> Option.map Utils.uri_quote |> Option.value ~default:"" in (* We assume here that the socket filename does not contain any * characters that need escaping, which is a safe assumption * for v2vdir and sockets in that directory. *) sprintf "nbd+unix:///%s?socket=%s" export socket ================================================ FILE: lib/NBD_URI.mli ================================================ (* virt-v2v * Copyright (C) 2009-2025 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) (** Type for NBD URIs. *) type t = Unix of string * string option (** nbd+unix:// + Unix domain socket path + optional export *) val to_uri : t -> string (** Convert the type into an NBD URI. *) ================================================ FILE: lib/YAML.ml ================================================ (* virt-v2v * Copyright (C) 2009-2025 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) open Std_utils open Tools_utils open Common_gettext.Gettext open Printf let spaces = String.spaces type node = | Assoc of (string * node) list | List of node list | String of string | Int of int | Bool of bool | Float of float | Block of string list type doc = Doc of node (* It's extremely difficult to give a complete list of strings * that have to be quoted, versus strings that can be safely * used as barewords. For example strings like "Yes", "no", * "true", "123", "123.0" cannot be written as barewords since * they will be misinterpreted as booleans, integers or floats. * (These rules also depend on the version of YAML!) * * See also YAML 1.2 section 2.4 "Tags". * * In the regular expressions we're just trying to match things * which might be misinterpreted so that we know when to quote strings. * It doesn't matter if we match too eagerly here. *) let re_reserved = PCRE.compile "^[\\[\\-\\]{}>|*&!%#'@,?:]" let re_numeric1 = PCRE.compile ~caseless:true "^[-+.0-9exo]+$" let re_numeric2 = PCRE.compile ~caseless:true "(inf|nan)$" let re_boolean = PCRE.compile ~caseless:true "^(y|yes|n|no|true|false|on|off)$" let needs_quoting str = String.length str = 0 || PCRE.matches re_reserved str || PCRE.matches re_numeric1 str || PCRE.matches re_numeric2 str || PCRE.matches re_boolean str || let n = String.length str in let rec loop i = if i >= n then false else if String.unsafe_get str i <= ' ' then true else loop (i+1) in loop 0 let rec node_to_buf buf indent = function | Assoc xs -> assoc_to_buf buf indent xs | List xs -> list_to_buf buf indent xs | String str -> string_to_buf buf str | Int i -> int_to_buf buf i | Bool b -> bool_to_buf buf b | Float f -> float_to_buf buf f | Block lines -> block_to_buf buf indent lines and assoc_to_buf buf ?(nl = true) indent = function (* Special case empty dictionary: https://stackoverflow.com/a/33510095 *) | [] -> bprintf buf "{}" | xs -> let nl = ref nl in List.iter ( fun (key, value) -> (* Print newline and indent, if nl is true. *) if !nl then bprintf buf "\n%s" (spaces indent); nl := true; (* If the key is "#" then it is printed as a comment. *) if key = "#" then ( match value with | String comment -> bprintf buf "# %s" comment | _ -> assert false ) else ( bprintf buf "%s:" key; (* Do we need a space after the key? This is basically * about whether node_to_buf will print \n, which breaks * encapsulation of this function. Make a best guess. *) (match value with | String _ | Int _ | Bool _ | Float _ | Block _ | Assoc [] | List [] -> bprintf buf " " | _ -> () ); (* Within Assoc, Lists are not indented, everything else is. *) let indent_by = function List _ -> 0 | _ -> 2 in node_to_buf buf (indent + indent_by value) value ) ) xs and list_to_buf buf indent = function (* Special case empty list, I think is required. We could also special * case other things, eg. lists of short, unquoted strings, but * let's not overcomplicate things. *) | [] -> bprintf buf "[]" | xs -> List.iter ( fun node -> bprintf buf "\n%s- " (spaces indent); (* If it's an assoc list, then don't print first newline. *) match node with | Assoc xs -> assoc_to_buf buf ~nl:false (indent+2) xs | _ -> node_to_buf buf (indent+2) node ) xs (* Strings are always printed on the same line. *) and string_to_buf buf str = if not (needs_quoting str) then bprintf buf "%s" str else c_quoted_string_to_buf buf str and c_quoted_string_to_buf buf str = bprintf buf "\""; for i = 0 to String.length str - 1 do let c = String.unsafe_get str i in if c = '"' then bprintf buf "\\\"" else if c < ' ' then bprintf buf "\\x%02x" (Char.code c) else bprintf buf "%c" c done; bprintf buf "\"" and int_to_buf buf i = bprintf buf "%d" i and bool_to_buf buf b = bprintf buf "%b" b and float_to_buf buf f = bprintf buf "%f" f (* Blocks are printed using "|" + "\n" followed by the indented lines * of text. We implicitly assume that each line is followed by \n * so we don't have to use a chomp mode, but this page is interesting * in case we need to in future: https://yaml-multiline.info/ *) and block_to_buf buf indent lines = (* If a line contains \n within the line then that indicates * a bug in virt-v2v. Since this could be used to bypass * indenting -- thus generating arbitrary YAML -- detect this * situation and error out. As far as I'm aware, no other * character in blocks needs to be handled specially. *) List.iter ( fun line -> if String.contains line '\n' || String.contains line '\r' then error (f_"YAML block contains newline character. \ This should not happen, please report a bug against \ virt-v2v.") ) lines; bprintf buf "|"; let indent = indent+2 in List.iter ( fun line -> bprintf buf "\n%s%s" (spaces indent) line ) lines let doc_to_buf buf (Doc node) = bprintf buf "---"; node_to_buf buf 0 node; bprintf buf "\n" let doc_to_string doc = let buf = Buffer.create 4096 in doc_to_buf buf doc; Buffer.contents buf let doc_to_chan chan doc = let buf = Buffer.create 4096 in doc_to_buf buf doc; Buffer.output_buffer chan buf ================================================ FILE: lib/YAML.mli ================================================ (* virt-v2v * Copyright (C) 2009-2025 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) (** Simple YAML generator. This doesn't attempt to model all of YAML, only enough to be able to generate Kubevirt machine descriptions. *) type node = | Assoc of (string * node) list (* dictionary of key: value *) | List of node list (* list of - nodes *) | String of string (* simple string *) | Int of int (* integer *) | Bool of bool (* bool - NB. "Norway problem" *) | Float of float (* float *) | Block of string list (* block of lines *) type doc = Doc of node val doc_to_string : doc -> string (** Convert a document to a string representation. *) val doc_to_chan : out_channel -> doc -> unit (** Write the YAML document to an output channel. *) ================================================ FILE: lib/config.ml.in ================================================ (* virt-v2v * Copyright (C) 2019 Red Hat Inc. * @configure_input@ * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA *) let package_name = "@PACKAGE_NAME@" let package_version = "@PACKAGE_VERSION@" let package_version_full = "@PACKAGE_VERSION_FULL@" let prefix = "@prefix@" let datadir = prefix ^ "/share" let host_cpu = "@host_cpu@" let nbdkit = "@NBDKIT@" let nbdcopy = "@NBDCOPY@" let nbdinfo = "@NBDINFO@" let enable_block_driver = "@ENABLE_BLOCK_DRIVER@" = "yes" let enable_xen = "@ENABLE_XEN@" = "yes" let enable_glance = "@ENABLE_GLANCE@" = "yes" let enable_ovirt = "@ENABLE_OVIRT@" = "yes" ================================================ FILE: lib/config.mli ================================================ (* virt-v2v * Copyright (C) 2019 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA *) (** {2 Standard [./configure] values} *) val package_name : string (** The configure value [@PACKAGE_NAME@] *) val package_version : string (** The configure value [@PACKAGE_VERSION@] *) val package_version_full : string (** The configure value [@PACKAGE_VERSION_FULL@] *) val prefix : string (** The configure value [@prefix@] *) val datadir : string (** The configure value [@datadir@] *) val host_cpu : string (** The configure value [@host_cpu@] *) (** {2 Virt-v2v [./configure] values} *) val nbdkit : string (** The location of the nbdkit program, from configure value [@NBDKIT@] *) val nbdcopy : string (** The location of the nbdcopy program, from configure value [@NBDCOPY@] *) val nbdinfo : string (** The location of the nbdinfo program, from configure value [@NBDINFO@] *) (** {2 [./configure --disable/--enable-*] options} *) val enable_block_driver : bool (** True if [--block-driver] option is enabled *) val enable_xen : bool (** True if Xen input is enabled *) val enable_glance : bool (** True if [-o glance] output mode is enabled *) val enable_ovirt : bool (** True if oVirt output modes are enabled *) ================================================ FILE: lib/create_ovf.ml ================================================ (* virt-v2v * Copyright (C) 2009-2025 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) (* Create OVF and related files for oVirt. *) open Unix open Printf open Std_utils open Tools_utils open Common_gettext.Gettext open Types open Utils open DOM type ovf_flavour = | OVirt | OVirtExportStorageDomain let ovf_flavours = ["ovirt"; "ovirtexp"] let ovf_flavour_of_string = function | "ovirt" -> OVirt | "ovirtexp" -> OVirtExportStorageDomain | flav -> invalid_arg flav let ovf_flavour_to_string = function | OVirt -> "ovirt" | OVirtExportStorageDomain -> "ovirtexp" (* We set the creation time to be the same for all dates in * all metadata files. All dates in OVF are UTC. *) let time = time () let iso_time = let tm = gmtime time in sprintf "%04d/%02d/%02d %02d:%02d:%02d" (tm.tm_year + 1900) (tm.tm_mon + 1) tm.tm_mday tm.tm_hour tm.tm_min tm.tm_sec (* Guess vmtype based on the guest inspection data. *) let get_vmtype = function (* Special cases for RHEL 4. *) | { i_type = "linux"; i_distro = ("rhel"|"centos"); i_major_version = 4; i_product_name = product } when String.find product "ES" >= 0 -> `Server | { i_type = "linux"; i_distro = ("rhel"|"centos"); i_major_version = 4; i_product_name = product } when String.find product "AS" >= 0 -> `Server | { i_type = "linux"; i_distro = ("rhel"|"centos"); i_major_version = 4 } -> `Desktop (* For Windows (and maybe Linux in future, but it is not set now), * use the i_product_variant field. *) | { i_product_variant = ("Server"|"Server Core"|"Embedded") } -> `Server | { i_product_variant = "Client" } -> `Desktop (* If the product name has "Server" or "Desktop" in it, use that. *) | { i_product_name = product } when String.find product "Server" >= 0 -> `Server | { i_product_name = product } when String.find product "Desktop" >= 0 -> `Desktop (* Otherwise return server, a safe choice. *) | _ -> `Server (* Determine the ovf:OperatingSystemSection_Type from libguestfs * inspection. See ovirt-engine sources, file: * packaging/conf/osinfo-defaults.properties * and also: * https://bugzilla.redhat.com/show_bug.cgi?id=1219857#c9 *) and get_ostype = function | { i_type = "linux"; i_distro = ("rhel"|"centos"); i_major_version = v; i_arch = "i386" } when v <= 6 -> sprintf "RHEL%d" v | { i_type = "linux"; i_distro = ("rhel"|"centos"); i_major_version = v; i_arch = "x86_64" } when v <= 6 -> sprintf "RHEL%dx64" v | { i_type = "linux"; i_distro = ("rhel"|"centos"); i_major_version = v; i_arch = "x86_64" } (* when v >= 7 *) -> sprintf "rhel_%dx64" v | { i_type = "linux"; i_distro = ("rhel"|"centos"); i_major_version = 6; i_minor_version = min; i_arch = ("ppc64"|"ppc64le") } when min >= 9 -> "rhel_6_9_plus_ppc64" | { i_type = "linux"; i_distro = ("rhel"|"centos"); i_major_version = 6; i_arch = ("ppc64"|"ppc64le") } -> "rhel_6_ppc64" | { i_type = "linux"; i_distro = ("rhel"|"centos"); i_major_version = 7; i_arch = "ppc64" | "ppc64le" } -> "rhel_7_ppc64" | { i_type = "linux"; i_distro = ("rhel"|"centos"); i_major_version = 7; i_arch = "s390x" } -> "rhel_7_s390x" | { i_type = "linux"; i_distro = "sles"; i_major_version = maj; i_arch = "x86_64" } when maj >= 11 -> "sles_11" | { i_type = "linux"; i_distro = "sles"; i_major_version = maj; i_arch = ("ppc64"|"ppc64le") } when maj >= 11 -> "sles_11_ppc64" | { i_type = "linux"; i_distro = "sles"; i_major_version = maj; i_arch = "s390x" } when maj >= 12 -> "sles_12_s390x" (* Only Debian 7 is available, so use it for any 7+ version. *) | { i_type = "linux"; i_distro = "debian"; i_major_version = v } when v >= 7 -> "debian_7" (* Only Ubuntu 12.04 to 14.04 are available, so use them starting * from 12.04, and 14.04 for anything after it. *) | { i_type = "linux"; i_distro = "ubuntu"; i_major_version = v; i_arch = "ppc64" | "ppc64le" } when v >= 14 -> "ubuntu_14_04_ppc64" | { i_type = "linux"; i_distro = "ubuntu"; i_major_version = maj; i_arch = "s390x" } when maj >= 16 -> "ubuntu_16_04_s390x" | { i_type = "linux"; i_distro = "ubuntu"; i_major_version = v } when v >= 14 -> "ubuntu_14_04" | { i_type = "linux"; i_distro = "ubuntu"; i_major_version = maj; i_minor_version = min } when maj >= 12 -> sprintf "ubuntu_%d_%02d" maj min | { i_type = "linux"; i_arch = ("ppc64"|"ppc64le") } -> "other_linux_ppc64" | { i_type = "linux"; i_arch = "s390x" } -> "other_linux_s390x" | { i_type = "linux" } -> "OtherLinux" | { i_type = "windows"; i_major_version = 5; i_minor_version = 1 } -> "WindowsXP" (* no architecture differentiation of XP on oVirt *) | { i_type = "windows"; i_major_version = 5; i_minor_version = 2; i_product_name = product } when String.find product "XP" >= 0 -> "WindowsXP" (* no architecture differentiation of XP on oVirt *) | { i_type = "windows"; i_major_version = 5; i_minor_version = 2; i_arch = "i386" } -> "Windows2003" | { i_type = "windows"; i_major_version = 5; i_minor_version = 2; i_arch = "x86_64" } -> "Windows2003x64" | { i_type = "windows"; i_major_version = 6; i_minor_version = 0; i_arch = "i386" } -> "Windows2008" | { i_type = "windows"; i_major_version = 6; i_minor_version = 0; i_arch = "x86_64" } -> "Windows2008x64" | { i_type = "windows"; i_major_version = 6; i_minor_version = 1; i_arch = "i386" } -> "Windows7" | { i_type = "windows"; i_major_version = 6; i_minor_version = 1; i_arch = "x86_64"; i_product_variant = "Client" } -> "Windows7x64" | { i_type = "windows"; i_major_version = 6; i_minor_version = 1; i_arch = "x86_64" } -> "Windows2008R2x64" | { i_type = "windows"; i_major_version = 6; i_minor_version = 2; i_arch = "i386" } -> "windows_8" | { i_type = "windows"; i_major_version = 6; i_minor_version = 2; i_arch = "x86_64"; i_product_variant = "Client" } -> "windows_8x64" | { i_type = "windows"; i_major_version = 6; i_minor_version = 2; i_arch = "x86_64" } -> "windows_2012x64" (* Treat Windows 8.1 client like Windows 8. See: * https://bugzilla.redhat.com/show_bug.cgi?id=1309580#c4 *) | { i_type = "windows"; i_major_version = 6; i_minor_version = 3; i_arch = "i386"; i_product_variant = "Client" } -> "windows_8" | { i_type = "windows"; i_major_version = 6; i_minor_version = 3; i_arch = "x86_64"; i_product_variant = "Client" } -> "windows_8x64" | { i_type = "windows"; i_major_version = 6; i_minor_version = 3; i_arch = "x86_64" } -> "windows_2012R2x64" | { i_type = "windows"; i_major_version = 10; i_minor_version = 0; i_arch = "i386" } -> "windows_10" (* For Windows NT 10.0 always use the field since the * other fields will not accurately reflect the version. *) | { i_type = "windows"; i_major_version = 10; i_minor_version = 0; i_arch = "x86_64"; i_osinfo = osinfo; i_product_name = product } -> (match osinfo with | "win10" -> "windows_10x64" | "win11" -> "windows_11" | "win2k16" -> "windows_2016x64" | "win2k19" -> "windows_2019x64" | "win2k22" -> "windows_2022" | "win2k25" -> "windows_2025" | _ -> warning (f_"unknown Windows 10 variant: %s (%s)") osinfo product; "windows_2025" ) | { i_type = typ; i_distro = distro; i_major_version = major; i_minor_version = minor; i_arch = arch; i_product_name = product } -> warning (f_"unknown guest operating system: %s %s %d.%d %s (%s)") typ distro major minor arch product; "Unassigned" (* Determine the ovirt:id attribute from libguestfs inspection. * See ovirt-engine sources, file: * packaging/conf/osinfo-defaults.properties * and also: * https://bugzilla.redhat.com/show_bug.cgi?id=1219857#c9 *) and get_ovirt_osid = function | { i_type = "linux"; i_distro = ("rhel"|"centos"); i_major_version = 4; i_arch = "i386" } -> 8 | { i_type = "linux"; i_distro = ("rhel"|"centos"); i_major_version = 4; i_arch = "x86_64" } -> 14 | { i_type = "linux"; i_distro = ("rhel"|"centos"); i_major_version = 5; i_arch = "i386" } -> 7 | { i_type = "linux"; i_distro = ("rhel"|"centos"); i_major_version = 5; i_arch = "x86_64" } -> 13 | { i_type = "linux"; i_distro = ("rhel"|"centos"); i_major_version = 6; i_arch = "i386" } -> 18 | { i_type = "linux"; i_distro = ("rhel"|"centos"); i_major_version = 6; i_arch = "x86_64" } -> 19 | { i_type = "linux"; i_distro = ("rhel"|"centos"); i_major_version = 6; i_minor_version = min; i_arch = ("ppc64"|"ppc64le") } when min >= 9 -> 1007 | { i_type = "linux"; i_distro = ("rhel"|"centos"); i_major_version = 6; i_arch = ("ppc64"|"ppc64le") } -> 1003 | { i_type = "linux"; i_distro = ("rhel"|"centos"); i_major_version = 7; i_arch = "x86_64" } -> 24 | { i_type = "linux"; i_distro = ("rhel"|"centos"); i_major_version = 7; i_arch = ("ppc64"|"ppc64le") } -> 1006 | { i_type = "linux"; i_distro = ("rhel"|"centos"); i_major_version = 7; i_arch = "s390x" } -> 2003 | { i_type = "linux"; i_distro = "sles"; i_major_version = maj; i_arch = "x86_64" } when maj >= 11 -> 1193 | { i_type = "linux"; i_distro = "sles"; i_major_version = maj; i_arch = ("ppc64"|"ppc64le") } when maj >= 11 -> 1004 | { i_type = "linux"; i_distro = "sles"; i_major_version = maj; i_arch = "s390x" } when maj >= 12 -> 2004 (* Only Debian 7 is available, so use it for any 7+ version. *) | { i_type = "linux"; i_distro = "debian"; i_major_version = v } when v >= 7 -> 1300 (* Only Ubuntu 12.04 to 14.04 are available, so use them starting * from 12.04, and 14.04 for anything after it. *) | { i_type = "linux"; i_distro = "ubuntu"; i_major_version = v; i_arch = ("ppc64"|"ppc64le") } when v >= 14 -> 1005 | { i_type = "linux"; i_distro = "ubuntu"; i_major_version = v; i_arch = "s390x" } when v >= 16 -> 2005 | { i_type = "linux"; i_distro = "ubuntu"; i_major_version = v } when v >= 14 -> 1256 | { i_type = "linux"; i_distro = "ubuntu"; i_major_version = 12; i_minor_version = 4 } -> 1252 | { i_type = "linux"; i_distro = "ubuntu"; i_major_version = 12; i_minor_version = 10 } -> 1253 | { i_type = "linux"; i_distro = "ubuntu"; i_major_version = 13; i_minor_version = 4 } -> 1254 | { i_type = "linux"; i_distro = "ubuntu"; i_major_version = 13; i_minor_version = 10 } -> 1255 | { i_type = "linux"; i_arch = ("ppc64"|"ppc64le") } -> 1002 | { i_type = "linux"; i_arch = "s390x" } -> 2002 | { i_type = "linux" } -> 5 | { i_type = "windows"; i_major_version = 5; i_minor_version = 1 } -> 1 (* no architecture differentiation of XP on oVirt *) | { i_type = "windows"; i_major_version = 5; i_minor_version = 2; i_product_name = product } when String.find product "XP" >= 0 -> 1 (* no architecture differentiation of XP on oVirt *) | { i_type = "windows"; i_major_version = 5; i_minor_version = 2; i_arch = "i386" } -> 3 | { i_type = "windows"; i_major_version = 5; i_minor_version = 2; i_arch = "x86_64" } -> 10 | { i_type = "windows"; i_major_version = 6; i_minor_version = 0; i_arch = "i386" } -> 4 | { i_type = "windows"; i_major_version = 6; i_minor_version = 0; i_arch = "x86_64" } -> 16 | { i_type = "windows"; i_major_version = 6; i_minor_version = 1; i_arch = "i386" } -> 11 | { i_type = "windows"; i_major_version = 6; i_minor_version = 1; i_arch = "x86_64"; i_product_variant = "Client" } -> 12 | { i_type = "windows"; i_major_version = 6; i_minor_version = 1; i_arch = "x86_64" } -> 17 | { i_type = "windows"; i_major_version = 6; i_minor_version = 2; i_arch = "i386" } -> 20 | { i_type = "windows"; i_major_version = 6; i_minor_version = 2; i_arch = "x86_64"; i_product_variant = "Client" } -> 21 | { i_type = "windows"; i_major_version = 6; i_minor_version = 2; i_arch = "x86_64" } -> 23 (* Treat Windows 8.1 client like Windows 8. See: * https://bugzilla.redhat.com/show_bug.cgi?id=1309580#c4 *) | { i_type = "windows"; i_major_version = 6; i_minor_version = 3; i_arch = "i386"; i_product_variant = "Client" } -> 20 | { i_type = "windows"; i_major_version = 6; i_minor_version = 3; i_arch = "x86_64"; i_product_variant = "Client" } -> 21 | { i_type = "windows"; i_major_version = 6; i_minor_version = 3; i_arch = "x86_64" } -> 25 | { i_type = "windows"; i_major_version = 10; i_minor_version = 0; i_arch = "i386" } -> 26 (* For Windows NT 10.0 always use the field since the * other fields will not accurately reflect the version. *) | { i_type = "windows"; i_major_version = 10; i_minor_version = 0; i_arch = "x86_64"; i_osinfo = osinfo; i_product_name = product } -> (match osinfo with | "win10" -> (* windows_10x64 *) 27 | "win11" -> (* windows_11 *) 36 | "win2k16" -> (* windows_2016x64 *) 29 | "win2k19" -> (* windows_2019x64 *) 31 | "win2k22" -> (* windows_2022 *) 37 (*| "win2k25" -> (* windows_2025 *) not yet known - 2024/10 *) | _ -> warning (f_"unknown Windows 10 variant: %s (%s)") osinfo product; (* windows_2022 *) 37 ) | { i_type = typ; i_distro = distro; i_major_version = major; i_minor_version = minor; i_arch = arch; i_product_name = product } -> warning (f_"unknown guest operating system: %s %s %d.%d %s (%s)") typ distro major minor arch product; 0 (* Set the element based on the source hypervisor. * https://bugzilla.redhat.com/show_bug.cgi?id=1342398#c6 * https://gerrit.ovirt.org/#/c/59147/ * ovirt-engine.git: backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/OriginType.java *) let origin_of_source_hypervisor = function | VMware -> Some 1 | Xen -> Some 2 | QEmu | KVM -> Some 7 | Physical -> Some 8 | HyperV -> Some 9 (* Anything else is mapped to None, which causes the * element to be omitted from the OVF output, which causes oVirt * to select 0 as the source (which happens to display as "RHEV" * in the UI). *) | _ -> None (* Set the element. * The internal numbers are: * https://github.com/oVirt/ovirt-engine/blob/master/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/BiosType.java#L10 * BUT the values in are adjusted by adding 1: * https://www.redhat.com/archives/libguestfs/2020-December/msg00005.html * So the actual mapping in the OVF is: * 0 => i440fx + SeaBIOS * 1 => Q35 + SeaBIOS * 2 => Q35 + UEFI * 3 => Q35 + UEFI + SecureBoot * All non-x86 arches should use 0 *) let get_ovirt_biostype arch machine firmware = if arch <> "x86_64" then Some 0 else match machine, firmware with | I440FX, TargetBIOS -> Some 0 (* i440fx + SeaBIOS *) | Q35, TargetBIOS -> Some 1 (* q35 + SeaBIOS *) | Q35, TargetUEFI -> Some 2 (* q35 + UEFI *) | _ -> None (* who knows! try cluster default *) (* Generate the .meta file associated with each volume. *) let create_meta_files output_alloc output_format sd_uuid image_uuids sizes = (* Note: Upper case in the .meta, mixed case in the OVF. *) let output_alloc_for_ovirt = match output_alloc with | Sparse -> "SPARSE" | Preallocated -> "PREALLOCATED" in let format_for_ovirt = match output_format with | "raw" -> "RAW" | "qcow2" -> "COW" | _ -> error (f_"oVirt does not support the output format ‘%s’, \ only raw or qcow2") output_format in List.mapi ( fun i (virtual_size, image_uuid) -> let size_in_sectors = if virtual_size &^ 511L <> 0L then error (f_"the virtual size of the input disk %d is not an \ exact multiple of 512 bytes. The virtual size is: \ %Ld.\n\nThis probably means something unexpected is \ going on, so please file a bug about this issue.") i virtual_size; virtual_size /^ 512L in let buf = Buffer.create 256 in let bpf fs = bprintf buf fs in bpf "DOMAIN=%s\n" sd_uuid; (* "Domain" as in Storage Domain *) bpf "VOLTYPE=LEAF\n"; bpf "CTIME=%.0f\n" time; bpf "MTIME=%.0f\n" time; bpf "IMAGE=%s\n" image_uuid; bpf "DISKTYPE=2\n"; bpf "PUUID=00000000-0000-0000-0000-000000000000\n"; bpf "LEGALITY=LEGAL\n"; bpf "POOL_UUID=\n"; bpf "SIZE=%Ld\n" size_in_sectors; bpf "FORMAT=%s\n" format_for_ovirt; bpf "TYPE=%s\n" output_alloc_for_ovirt; bpf "DESCRIPTION=%s\n" (String.replace generated_by "=" "_"); bpf "EOF\n"; Buffer.contents buf ) (List.combine sizes image_uuids) (* Create the OVF file. *) let rec create_ovf source inspect { guestcaps; target_nics; target_firmware; target_boot_device } sizes output_alloc output_format output_name sd_uuid image_uuids vol_uuids ?(need_actual_sizes = false) output_disks vm_uuid ovf_flavour = assert (List.length sizes = List.length vol_uuids); let memsize_mb = source.s_memory /^ 1024L /^ 1024L in let vmtype = get_vmtype inspect in let vmtype = match vmtype with `Desktop -> "0" | `Server -> "1" in let ostype = get_ostype inspect in let biostype = get_ovirt_biostype guestcaps.gcaps_arch guestcaps.gcaps_machine target_firmware in let ovf : doc = doc "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" ] [ Comment generated_by; e "References" [] []; (match ovf_flavour with | OVirt -> e "NetworkSection" [] [ e "Info" [] [PCData "List of networks"] ] | OVirtExportStorageDomain -> e "Section" ["xsi:type", "ovf:NetworkSection_Type"] [ e "Info" [] [PCData "List of networks"] ] ); (match ovf_flavour with | OVirt -> e "DiskSection" [] [ e "Info" [] [PCData "List of Virtual Disks"] ] | OVirtExportStorageDomain -> e "Section" ["xsi:type", "ovf:DiskSection_Type"] [ e "Info" [] [PCData "List of Virtual Disks"] ] ); let content_subnodes = ref [ e "Name" [] [PCData output_name]; e "TemplateId" [] [PCData "00000000-0000-0000-0000-000000000000"]; e "TemplateName" [] [PCData "Blank"]; e "Description" [] [PCData generated_by]; e "Domain" [] []; e "CreationDate" [] [PCData iso_time]; e "IsInitilized" (* sic *) [] [PCData "True"]; e "IsAutoSuspend" [] [PCData "False"]; e "TimeZone" [] []; e "IsStateless" [] [PCData "False"]; e "VmType" [] [PCData vmtype]; (* See https://bugzilla.redhat.com/show_bug.cgi?id=1961107#c39 *) e "DefaultDisplayType" [] [PCData "2"]; ] in (match biostype with | None -> (* omitting means use the cluster default *) () | Some biostype -> List.push_back content_subnodes (e "BiosType" [] [PCData (string_of_int biostype)]) ); (match source.s_cpu_model with | None -> () | Some model -> List.push_back content_subnodes (e "CustomCpuName" [] [PCData model]) ); (* Add the element if we can. *) (match origin_of_source_hypervisor source.s_hypervisor with | None -> () | Some origin -> List.push_back content_subnodes (e "Origin" [] [PCData (string_of_int origin)]) ); List.push_back content_subnodes ( let osinfo_subnodes = [ e "Info" [] [PCData inspect.i_product_name]; e "Description" [] [PCData ostype]; ] in (match ovf_flavour with | OVirt -> let ovirt_osid = get_ovirt_osid inspect in e "OperatingSystemSection" ["ovf:id", vm_uuid; "ovf:required", "false"; "ovirt:id", string_of_int ovirt_osid] osinfo_subnodes | OVirtExportStorageDomain -> e "Section" ["ovf:id", vm_uuid; "ovf:required", "false"; "xsi:type", "ovf:OperatingSystemSection_Type"] osinfo_subnodes ) ); let virtual_hardware_section_items = ref [ e "Info" [] [PCData (sprintf "%d CPU, %Ld Memory" source.s_vcpu memsize_mb)] ] in List.push_back virtual_hardware_section_items ( e "Item" [] ([ e "rasd:Caption" [] [PCData (sprintf "%d virtual cpu" source.s_vcpu)]; e "rasd:Description" [] [PCData "Number of virtual CPU"]; e "rasd:InstanceId" [] [PCData "1"]; e "rasd:ResourceType" [] [PCData "3"] ] @ (match source.s_cpu_topology with | None -> [ e "rasd:num_of_sockets" [] [PCData "1"]; e "rasd:cpu_per_socket"[] [PCData (string_of_int source.s_vcpu)] ] | Some { s_cpu_sockets = sockets; s_cpu_cores = cores; s_cpu_threads = threads } -> [ e "rasd:num_of_sockets" [] [PCData (string_of_int sockets)]; e "rasd:cpu_per_socket"[] [PCData (string_of_int cores)]; e "rasd:threads_per_cpu"[] [PCData (string_of_int threads)] ] ) ) ); List.push_back_list virtual_hardware_section_items [ e "Item" [] [ e "rasd:Caption" [] [PCData (sprintf "%Ld MB of memory" memsize_mb)]; e "rasd:Description" [] [PCData "Memory Size"]; e "rasd:InstanceId" [] [PCData "2"]; e "rasd:ResourceType" [] [PCData "4"]; e "rasd:AllocationUnits" [] [PCData "MegaBytes"]; e "rasd:VirtualQuantity" [] [PCData (Int64.to_string memsize_mb)]; ]; e "Item" [] [ e "rasd:Caption" [] [PCData "USB Controller"]; e "rasd:InstanceId" [] [PCData "3"]; e "rasd:ResourceType" [] [PCData "23"]; e "rasd:UsbPolicy" [] [PCData "Disabled"]; ]; (* We always add a standard VGA-compatible video controller when * outputting to oVirt. See RHBZ#1213701 and RHBZ#1211231 for the * reasoning behind that. The device model used to be QXL previously, * but only the unaccelerated standard VGA framebuffer is needed; so * the (simpler) standard VGA device itself suffices. Refer to * RHBZ#1961107. *) let monitor_resourcetype = match ovf_flavour with | OVirt -> 32768 (* RHBZ#1598715, RHBZ#1534644 *) | OVirtExportStorageDomain -> 20 in e "Item" [] [ e "rasd:Caption" [] [PCData "Graphical Controller"]; e "rasd:InstanceId" [] [PCData (uuidgen ())]; e "rasd:ResourceType" [] [PCData (string_of_int monitor_resourcetype)]; e "Type" [] [PCData "video"]; e "rasd:VirtualQuantity" [] [PCData "1"]; e "Device" [] [PCData "vga"]; ] ]; (* Add the miscellaneous KVM devices. *) if guestcaps.gcaps_virtio_rng then List.push_back virtual_hardware_section_items ( e "Item" [] [ e "rasd:Caption" [] [PCData "RNG Device"]; e "rasd:InstanceId" [] [PCData (uuidgen ())]; e "rasd:ResourceType" [] [PCData "0"]; e "Type" [] [PCData "rng"]; e "Device" [] [PCData "virtio"]; e "SpecParams" [] [ e "source" [] [PCData "urandom"] ] ] ); if guestcaps.gcaps_virtio_balloon then List.push_back virtual_hardware_section_items ( e "Item" [] [ e "rasd:Caption" [] [PCData "Memory Ballooning Device"]; e "rasd:InstanceId" [] [PCData (uuidgen ())]; e "rasd:ResourceType" [] [PCData "0"]; e "Type" [] [PCData "balloon"]; e "Device" [] [PCData "memballoon"]; e "SpecParams" [] [ e "model" [] [PCData "virtio"] ] ] ); List.push_back content_subnodes ( match ovf_flavour with | OVirt -> e "VirtualHardwareSection" [] !virtual_hardware_section_items | OVirtExportStorageDomain -> e "Section" ["xsi:type", "ovf:VirtualHardwareSection_Type"] !virtual_hardware_section_items ); (match ovf_flavour with | OVirt -> e "VirtualSystem" ["ovf:id", vm_uuid] !content_subnodes | OVirtExportStorageDomain -> e "Content" ["ovf:id", "out"; "xsi:type", "ovf:VirtualSystem_Type"] !content_subnodes ) ] in (* Add disks to the OVF XML. *) add_disks sizes guestcaps target_boot_device output_alloc output_format sd_uuid image_uuids vol_uuids need_actual_sizes output_disks ovf_flavour ovf; (* Old virt-v2v ignored removable media. XXX *) (* Add networks to the OVF XML. *) add_networks target_nics guestcaps ovf_flavour ovf; (* Add sound card to the OVF XML. *) add_sound_card source.s_sound ovf_flavour ovf; (* Old virt-v2v didn't really look at the video and display * metadata, instead just adding a single standard display (see * above). However it did warn if there was a password on the * display of the old guest. *) (match source with | { s_display = Some { s_password = Some _ } } -> warning (f_"This guest required a password for connection to its display, \ but this is not supported by oVirt. Therefore the converted \ guest’s display will not require a separate password \ to connect."); | _ -> ()); if verbose () then ( eprintf "OVF:\n"; doc_to_chan Stdlib.stderr ovf ); (* Return the OVF document. *) ovf (* Find appropriate section depending on the OVF flavour being generated. * * For example normal disk section is in node whereas in case of * OVirt export storage domain it is
. *) and get_flavoured_section ovf ovirt_path esd_path esd_path_attr = function | OVirt -> let nodes = path_to_nodes ovf ovirt_path in (match nodes with | [node] -> node | [] | _::_::_ -> assert false) | OVirtExportStorageDomain -> let nodes = path_to_nodes ovf esd_path in try find_node_by_attr nodes esd_path_attr with Not_found -> assert false (* This modifies the OVF DOM, adding a section for each disk. *) and add_disks sizes guestcaps target_boot_device output_alloc output_format sd_uuid image_uuids vol_uuids need_actual_sizes output_disks ovf_flavour ovf = let references = let nodes = path_to_nodes ovf ["ovf:Envelope"; "References"] in match nodes with | [] | _::_::_ -> assert false | [node] -> node in let disk_section = get_flavoured_section ovf ["ovf:Envelope"; "DiskSection"] ["ovf:Envelope"; "Section"] ("xsi:type", "ovf:DiskSection_Type") ovf_flavour in let virtualhardware_section = get_flavoured_section ovf ["ovf:Envelope"; "VirtualSystem"; "VirtualHardwareSection"] ["ovf:Envelope"; "Content"; "Section"] ("xsi:type", "ovf:VirtualHardwareSection_Type") ovf_flavour in (* Iterate over the disks, adding them to the OVF document. *) List.iteri ( fun i (size, image_uuid, vol_uuid, output_uri) -> let is_bootable_drive, boot_order = match target_boot_device with | None -> i = 0, i+1 | Some disk_index when disk_index = i -> true, 1 | Some _ -> false, i+2 in let fileref = match ovf_flavour with | OVirt -> vol_uuid | OVirtExportStorageDomain -> sprintf "%s/%s" image_uuid vol_uuid in (* ovf:size and ovf:actual_size fields are integer GBs. If you * use floating point numbers then oVirt will fail to parse them. * In case the size is just below a gigabyte boundary, round up. *) let bytes_to_gb b = let b = roundup64 b 1073741824L in b /^ 1073741824L in let size_gb = bytes_to_gb size in let actual_size = if need_actual_sizes then get_disk_allocated (NBD_URI.to_uri output_uri) else None in let format_for_ovirt = match output_format with | "raw" -> "RAW" | "qcow2" -> "COW" | _ -> error (f_"oVirt does not support the output format ‘%s’, \ only raw or qcow2") output_format in (* Note: Upper case in the .meta, mixed case in the OVF. *) let output_alloc_for_ovirt = match output_alloc with | Sparse -> "Sparse" | Preallocated -> "Preallocated" in (* Add disk to node. *) let disk = let attrs = ref [ "ovf:href", fileref; "ovf:id", vol_uuid; "ovf:description", generated_by; ] in (match actual_size with | None -> () | Some actual_size -> List.push_back attrs ("ovf:size", Int64.to_string actual_size) ); e "File" !attrs [] in append_child disk references; (* Add disk to DiskSection. *) let disk = let attrs = ref [ "ovf:diskId", (match ovf_flavour with | OVirt -> image_uuid | OVirtExportStorageDomain -> vol_uuid); "ovf:size", Int64.to_string size_gb; "ovf:capacity", Int64.to_string size; "ovf:fileRef", fileref; "ovf:parentRef", ""; "ovf:vm_snapshot_id", uuidgen (); "ovf:volume-format", format_for_ovirt; "ovf:volume-type", output_alloc_for_ovirt; "ovf:format", "http://en.wikipedia.org/wiki/Byte"; (* wtf? *) "ovf:disk-interface", (match guestcaps.gcaps_block_bus with | Virtio_blk -> "VirtIO" | Virtio_SCSI -> "VirtIO_SCSI" | IDE -> "IDE"); "ovf:disk-type", "System"; (* RHBZ#744538 *) "ovf:boot", if is_bootable_drive then "True" else "False"; ] in if need_actual_sizes then (* Ovirt-engine considers the "ovf:actual_size" attribute mandatory. * If we don't know the actual size, we must create the attribute * with empty contents. *) List.push_back attrs ("ovf:actual_size", match actual_size with | None -> "" | Some actual_size -> Int64.to_string (bytes_to_gb actual_size) ); e "Disk" !attrs [] in append_child disk disk_section; (* Add disk to VirtualHardware. *) let item = (* This text MUST begin with the string "Drive " or the file * will not parse. *) let caption = sprintf "Drive %d" (i+1) in let item_subnodes = ref [ e "rasd:Caption" [] [PCData caption]; e "rasd:InstanceId" [] [PCData vol_uuid]; e "rasd:ResourceType" [] [PCData "17"]; e "Type" [] [PCData "disk"]; e "rasd:HostResource" [] [PCData fileref]; e "rasd:Parent" [] [PCData "00000000-0000-0000-0000-000000000000"]; e "rasd:Template" [] [PCData "00000000-0000-0000-0000-000000000000"]; e "rasd:ApplicationList" [] []; e "rasd:StorageId" [] [PCData sd_uuid]; e "rasd:StoragePoolId" [] [PCData "00000000-0000-0000-0000-000000000000"]; e "rasd:CreationDate" [] [PCData iso_time]; e "rasd:LastModified" [] [PCData iso_time]; e "rasd:last_modified_date" [] [PCData iso_time]; ] in if is_bootable_drive then List.push_back item_subnodes (e "BootOrder" [] [PCData (string_of_int boot_order)]); e "Item" [] !item_subnodes in append_child item virtualhardware_section; ) (List.combine4 sizes image_uuids vol_uuids output_disks) (* This modifies the OVF DOM, adding a section for each NIC. *) and add_networks nics guestcaps ovf_flavour ovf = let network_section = get_flavoured_section ovf ["ovf:Envelope"; "NetworkSection"] ["ovf:Envelope"; "Section"] ("xsi:type", "ovf:NetworkSection_Type") ovf_flavour in let virtualhardware_section = get_flavoured_section ovf ["ovf:Envelope"; "VirtualSystem"; "VirtualHardwareSection"] ["ovf:Envelope"; "Content"; "Section"] ("xsi:type", "ovf:VirtualHardwareSection_Type") ovf_flavour in (* Iterate over the NICs, adding them to the OVF document. *) List.iteri ( fun i { s_mac = mac; s_vnet_type = vnet_type; s_vnet = vnet } -> let dev = sprintf "eth%d" i in let model = match guestcaps.gcaps_net_bus with | RTL8139 -> "1" | E1000 -> "2" | Virtio_net -> "3" (*| bus -> warning (f_"unknown NIC model %s for ethernet device %s. This NIC will be imported as rtl8139 instead.") bus dev; "1" *) in let network = e "Network" ["ovf:name", vnet] [] in append_child network network_section; let item = let item_subnodes = ref [ e "rasd:InstanceId" [] [PCData (uuidgen ())]; e "rasd:Caption" [] [PCData (sprintf "Ethernet adapter on %s" vnet)]; e "rasd:ResourceType" [] [PCData "10"]; e "rasd:ResourceSubType" [] [PCData model]; e "Type" [] [PCData "interface"]; e "rasd:Connection" [] [PCData vnet]; e "rasd:Name" [] [PCData dev]; ] in (match mac with | None -> () | Some mac -> List.push_back item_subnodes (e "rasd:MACAddress" [] [PCData mac]) ); e "Item" [] !item_subnodes in append_child item virtualhardware_section; ) nics (* This modifies the OVF DOM, adding a sound card, if oVirt can emulate it. *) and add_sound_card sound ovf_flavour ovf = let device = match sound with | None -> None | Some { s_sound_model = AC97 } -> Some "ac97" | Some { s_sound_model = ICH6 } -> Some "ich6" | Some { s_sound_model = model } -> warning (f_"oVirt cannot emulate ‘%s’ sound cards. This sound card will be dropped from the output.") (string_of_source_sound_model model); None in match device with | Some device -> let virtualhardware_section = get_flavoured_section ovf ["ovf:Envelope"; "VirtualSystem"; "VirtualHardwareSection"] ["ovf:Envelope"; "Content"; "Section"] ("xsi:type", "ovf:VirtualHardwareSection_Type") ovf_flavour in let item = e "Item" [] [ e "rasd:InstanceId" [] [PCData (uuidgen ())]; e "rasd:ResourceType" [] [PCData "0"]; e "Type" [] [PCData "sound"]; e "Device" [] [PCData device]; ] in append_child item virtualhardware_section | None -> () ================================================ FILE: lib/create_ovf.mli ================================================ (* virt-v2v * Copyright (C) 2009-2025 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) (** Functions for creating OVF files, used in OVirt output modes. *) type ovf_flavour = | OVirt | OVirtExportStorageDomain (** The string representation of available OVF flavours. *) val ovf_flavours : string list (** Convert from a string to the corresponding OVF flavour. Throw [Invalid_argument] if the string does not match any valid flavour. *) val ovf_flavour_of_string : string -> ovf_flavour (** Convert an OVF flavour to its string representation. *) val ovf_flavour_to_string : ovf_flavour -> string (** Create OVF and related files for oVirt. The format for oVirt export storage domain is described in: http://resources.ovirt.org/old-site-files/Ovirt_ovf_format.odt The format understood by oVirt has no known documentation. OVF isn't a real standard, so it's likely that if we ever had to create OVF for another target management system then we would need to heavily modify or even duplicate this code. *) val create_ovf : Types.source -> Types.inspect -> Types.target_meta -> int64 list -> Types.output_allocation -> string -> string -> string -> string list -> string list -> ?need_actual_sizes:bool -> NBD_URI.t list -> string -> ovf_flavour -> DOM.doc (** Create the OVF file. Actually a {!DOM} document is created, not a file. It can be written to the desired output location using {!DOM.doc_to_chan}. *) val create_meta_files : Types.output_allocation -> string -> string -> string list -> int64 list -> string list (** Create the .meta file associated with each target. Note this does not write them, since output_ovirt has to do a permissions dance when writing files. Instead the contents of each file is returned (one per target), and they must be written to [target_file ^ ".meta"]. *) (**/**) (* For use by v2v_unit_tests only. *) val get_ostype : Types.inspect -> string ================================================ FILE: lib/dummy.c ================================================ /* Dummy source, to be used for OCaml-based tools with no C sources. */ enum { foo = 1 }; ================================================ FILE: lib/guestfs-internal-all.h ================================================ /* libguestfs * Copyright (C) 2013-2025 Red Hat Inc. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ /** * This header contains definitions which are shared by all parts of * libguestfs, ie. the daemon, the library, language bindings and virt * tools (ie. I C code). * * If you need a definition used by only the library, put it in * F instead. * * If a definition is used by only a single tool, it should not be in * any shared header file at all. */ #ifndef GUESTFS_INTERNAL_ALL_H_ #define GUESTFS_INTERNAL_ALL_H_ #include /* This is also defined in , so don't redefine it. */ #if defined(__GNUC__) && !defined(GUESTFS_GCC_VERSION) # define GUESTFS_GCC_VERSION \ (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) #endif #if !defined(__attribute__) && defined(__GNUC__) && GUESTFS_GCC_VERSION < 20800 /* gcc < 2.8 */ # define __attribute__(x) /* empty */ #endif #ifndef ATTRIBUTE_UNUSED # define ATTRIBUTE_UNUSED __attribute__ ((__unused__)) #endif #define STREQ(a,b) (strcmp((a),(b)) == 0) #define STRCASEEQ(a,b) (strcasecmp((a),(b)) == 0) #define STRNEQ(a,b) (strcmp((a),(b)) != 0) #define STRCASENEQ(a,b) (strcasecmp((a),(b)) != 0) #define STREQLEN(a,b,n) (strncmp((a),(b),(n)) == 0) #define STRCASEEQLEN(a,b,n) (strncasecmp((a),(b),(n)) == 0) #define STRNEQLEN(a,b,n) (strncmp((a),(b),(n)) != 0) #define STRCASENEQLEN(a,b,n) (strncasecmp((a),(b),(n)) != 0) #define STRPREFIX(a,b) (strncmp((a),(b),strlen((b))) == 0) #define STRCASEPREFIX(a,b) (strncasecmp((a),(b),strlen((b))) == 0) #define STRSUFFIX(a,b) (strlen((a)) >= strlen((b)) && STREQ((a)+strlen((a))-strlen((b)),(b))) /* A simple (indeed, simplistic) way to build up short lists of * arguments. Your code must define MAX_ARGS to a suitable "larger * than could ever be needed" value. (If the value is exceeded then * your code will abort). For more complex needs, use something else * more suitable. */ #define ADD_ARG(argv,i,v) \ do { \ if ((i) >= MAX_ARGS) { \ fprintf (stderr, "%s: %d: internal error: exceeded MAX_ARGS (%zu) when constructing the command line\n", __FILE__, __LINE__, (size_t) MAX_ARGS); \ abort (); \ } \ (argv)[(i)++] = (v); \ } while (0) #ifndef SOCK_CLOEXEC #define SOCK_CLOEXEC 0 #endif #ifndef MAX #define MAX(a,b) ((a)>(b)?(a):(b)) #endif #ifndef MIN #define MIN(a,b) ((a)<(b)?(a):(b)) #endif #ifdef __APPLE__ #define xdr_uint32_t xdr_u_int32_t #endif /* Return true iff the buffer is all zero bytes. * * The clever approach here was suggested by Eric Blake. See: * https://www.redhat.com/archives/libguestfs/2017-April/msg00171.html */ static inline int is_zero (const char *buffer, size_t size) { size_t i; const size_t limit = MIN (size, 16); for (i = 0; i < limit; ++i) if (buffer[i]) return 0; if (size != limit) return !memcmp (buffer, buffer + 16, size - 16); return 1; } /* Macro which compiles the regexp once when the program/library is * loaded, and frees it when the library is unloaded. */ #define COMPILE_REGEXP(name,pattern,options) \ static void compile_regexp_##name (void) __attribute__((constructor)); \ static void free_regexp_##name (void) __attribute__((destructor)); \ static pcre2_code *name; \ \ static void \ compile_regexp_##name (void) \ { \ int errnum; \ PCRE2_SIZE offset; \ name = pcre2_compile ((PCRE2_SPTR)(pattern), \ PCRE2_ZERO_TERMINATED, \ (options), &errnum, &offset, NULL); \ if (name == NULL) { \ PCRE2_UCHAR err[256]; \ pcre2_get_error_message (errnum, err, sizeof err); \ ignore_value (write (2, err, strlen ((char *)err))); \ abort (); \ } \ } \ \ static void \ free_regexp_##name (void) \ { \ pcre2_code_free (name); \ } /* The type field of a parsed mountable. * * This is used both by mountable_t in the daemon, and * struct guestfs_int_mountable_internal in the library. */ typedef enum { MOUNTABLE_DEVICE, /* A bare device */ MOUNTABLE_BTRFSVOL, /* A btrfs subvolume: device + volume */ MOUNTABLE_PATH /* An already mounted path: device = path */ } mountable_type_t; #endif /* GUESTFS_INTERNAL_ALL_H_ */ ================================================ FILE: lib/libvirt_utils.ml ================================================ (* virt-v2v * Copyright (C) 2009-2025 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) open Std_utils open Tools_utils open Common_gettext.Gettext (* This module provides helper methods on top of the Libvirt module. *) let auth_for_password_file ?password_file () = let password = Option.map read_first_line_from_file password_file in let auth_fn creds = List.map ( function | { Libvirt.Connect.typ = Libvirt.Connect.CredentialPassphrase } -> password | _ -> None ) creds in let base_auth = Libvirt.Connect.get_auth_default () in if password_file = None then base_auth else { base_auth with cb = auth_fn; } let get_domain conn name = let dom = try Libvirt.Domain.lookup_by_uuid_string conn name with (* No such domain. *) | Libvirt.Virterror { code = VIR_ERR_NO_DOMAIN } (* Invalid UUID string. *) | Libvirt.Virterror { code = VIR_ERR_INVALID_ARG; domain = VIR_FROM_DOMAIN } -> (try Libvirt.Domain.lookup_by_name conn name with Libvirt.Virterror { code = VIR_ERR_NO_DOMAIN; message } -> error (f_"cannot find libvirt domain ‘%s’: %s") name (Option.value ~default:"" message) ) in (* As a side-effect we check that the domain is shut down (RHBZ#1138586). * In earlier versions of virt-v2v this was a hard error. Now it's * a warning, since we can't easily tell if the user is converting * from a snapshot - which is safe (RHEL-88543). *) let uri = Libvirt.Connect.get_uri conn in if not (String.starts_with "test:" uri) then ( (match (Libvirt.Domain.get_info dom).Libvirt.Domain.state with | InfoRunning | InfoBlocked | InfoPaused -> warning (f_"libvirt domain ‘%s’ is running or paused. Converting \ a live guest will result in corrupted output. \ However this is safe if you're converting from a \ snapshot") (Libvirt.Domain.get_name dom) | InfoNoState | InfoShutdown | InfoShutoff | InfoCrashed | InfoPMSuspended -> () ) ); dom let get_pool conn name = try Libvirt.Pool.lookup_by_uuid_string conn name with (* No such pool. *) | Libvirt.Virterror { code = VIR_ERR_NO_STORAGE_POOL } (* Invalid UUID string. *) | Libvirt.Virterror { code = VIR_ERR_INVALID_ARG; domain = VIR_FROM_STORAGE } -> (try Libvirt.Pool.lookup_by_name conn name with Libvirt.Virterror { code = VIR_ERR_NO_STORAGE_POOL; message } -> error (f_"cannot find libvirt pool ‘%s’: %s\n\nUse \ ‘virsh pool-list --all’ to list all available pools, \ and ‘virsh pool-dumpxml ’ to display details \ about a particular pool.\n\nTo set the pool which \ virt-v2v uses, add the ‘-os ’ option.") name (Option.value ~default:"" message) ) let get_volume pool name = try Libvirt.Volume.lookup_by_name pool name with (* No such volume. *) | Libvirt.Virterror { code = VIR_ERR_NO_STORAGE_VOL; message } -> error (f_"cannot find libvirt volume ‘%s’: %s") name (Option.value ~default:"" message) let domain_exists conn dom = try ignore (Libvirt.Domain.lookup_by_name conn dom); true with Libvirt.Virterror { code = VIR_ERR_NO_DOMAIN } -> false let libvirt_get_version () = let v, _ = Libvirt.get_version () in let v_major = v / 1000000 in let v_minor = (v / 1000) mod 1000 in let v_micro = v mod 1000 in (v_major, v_minor, v_micro) ================================================ FILE: lib/libvirt_utils.mli ================================================ (* virt-v2v * Copyright (C) 2009-2025 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) (** This module provides helper methods on top of the [Libvirt] module. *) val auth_for_password_file : ?password_file:string -> unit -> Libvirt.Connect.auth (** [auth_for_password_file ?password_file ()] returns a {!Libvirt.Connect.auth} record to use when opening a new libvirt connection with {!Libvirt.Connect.connect_auth} or {!Libvirt.Connect.connect_auth_readonly}. The record will authenticate using the password specified in the first line of [?password_file], if specified. *) val get_domain : Libvirt.rw Libvirt.Connect.t -> string -> Libvirt.rw Libvirt.Domain.t (** [get_domain conn dom] returns the libvirt domain with the specified [dom] name or UUID. [conn] is the libvirt connection. *) val get_pool : Libvirt.rw Libvirt.Connect.t -> string -> Libvirt.rw Libvirt.Pool.t (** [get_pool conn pool] returns the libvirt pool with the specified [pool] name or UUID. [conn] is the libvirt connection. *) val get_volume : Libvirt.rw Libvirt.Pool.t -> string -> Libvirt.rw Libvirt.Volume.t (** [get_volume pool vol] returns the libvirt volume with the specified [vol] name or UUID, as part of the pool [pool]. *) val domain_exists : Libvirt.rw Libvirt.Connect.t -> string -> bool (** [domain_exists conn dom] returns a boolean indicating if the the libvirt XML domain [dom] exists. [conn] is the libvirt connection. [dom] may be a guest name, but not a UUID. *) val libvirt_get_version : unit -> int * int * int (** [libvirt_get_version] returns the triple [(major, minor, release)] version number of the libvirt library that we are linked against. *) ================================================ FILE: lib/nbdkit.ml ================================================ (* virt-v2v * Copyright (C) 2009-2025 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) open Unix open Printf open Common_gettext.Gettext open Std_utils open Tools_utils open Unix_utils open Utils let is_installed = let cmd = sprintf "%s --version >/dev/null 2>&1" Config.nbdkit in let test = lazy (Sys.command cmd = 0) in fun () -> Lazy.force test type config = (string * string) list let config = let output = lazy ( let cmd = sprintf "%s --dump-config" Config.nbdkit in let lines = external_command cmd in List.map (String.split "=") lines ) in fun () -> Lazy.force output type version = int * int * int let rex = PCRE.compile "^(\\d+)\\.(\\d+)\\.(\\d+)" let version = let v = lazy ( let config = config () in let version = try List.assoc "version" config with Not_found -> failwith "nbdkit: no version in --dump-config" in if not (PCRE.matches rex version) then error (f_"nbdkit: unexpected version in --dump-config: %s") version; let major = int_of_string (PCRE.sub 1) and minor = int_of_string (PCRE.sub 2) and release = int_of_string (PCRE.sub 3) in if verbose () then ( eprintf "info: nbdkit version:\n%!"; ignore (Sys.command (sprintf "%s --version >&2" Config.nbdkit)); eprintf "parsed version: %d.%d.%d\n%!" major minor release ); (major, minor, release) ) in fun () -> Lazy.force v let probe_server_parameter name = let list_options = if String.length name = 2 && name.[0] = '-' && name.[1] <> '-' then "--short-options" else "--long-options" in let regex = sprintf "^%s$" name in let cmd = sprintf "nbdkit %s | grep -sq %s" list_options (quote regex) in Sys.command cmd = 0 let probe_plugin name = let cmd = sprintf "%s %s --version >/dev/null 2>&1" Config.nbdkit (quote name) in Sys.command cmd = 0 let probe_plugin_parameter name regex = let cmd = sprintf "%s %s --help | grep -sq %s" Config.nbdkit (quote name) (quote regex) in Sys.command cmd = 0 let probe_filter name = let cmd = sprintf "%s null --filter=%s --version >/dev/null 2>&1" Config.nbdkit (quote name) in Sys.command cmd = 0 let probe_filter_parameter name regex = let cmd = sprintf "%s null --filter=%s --help | grep -sq %s" Config.nbdkit (quote name) (quote regex) in Sys.command cmd = 0 type cmd = { plugin : string; name : string option; mutable filters : string list; mutable args : (string * string) list; (* stored reversed *) mutable env : (string * string) list; mutable debug_flags : (string * string) list; mutable readonly : bool; mutable threads : int; verbose : bool; } let create ?(quiet = false) ?name plugin = { plugin; name; filters = []; args = []; env = [ "LANG", "C" ]; debug_flags = []; readonly = false; threads = 16; verbose = not quiet && verbose () } let add_debug_flag cmd name value = cmd.debug_flags <- (name, value) :: cmd.debug_flags let set_readonly cmd v = cmd.readonly <- v let set_threads cmd v = cmd.threads <- v let add_filter cmd v = cmd.filters <- v :: cmd.filters let add_arg cmd key value = cmd.args <- (key, value) :: cmd.args let add_args cmd kvs = cmd.args <- List.rev kvs @ cmd.args let add_env cmd name value = cmd.env <- (name, value) :: cmd.env let add_filter_if_available cmd filter = if probe_filter filter then add_filter cmd filter let reduce_memory_pressure cmd = assert (cmd.plugin = "file"); if probe_plugin_parameter cmd.plugin "reduce-memory-pressure=" then add_arg cmd "reduce-memory-pressure" "on" else if probe_plugin_parameter cmd.plugin "cache=" then add_arg cmd "cache" "none" else assert false let run_unix socket cmd = (* Create a temporary directory where we place the PID file. *) let piddir = Mkdtemp.temp_dir "v2vnbdkit." in On_exit.rm_rf piddir; let id = unique () in let pidfile = piddir // sprintf "nbdkit%d.pid" id in (* Construct the final command line. *) let add_arg, add_args_reversed, get_args = let r = ref [] in let add_arg v = List.push_front v r in let add_args_reversed vs = r := vs @ !r in let get_args () = List.rev !r in add_arg, add_args_reversed, get_args in add_arg Config.nbdkit; (match cmd.name with | None -> () | Some name -> (* --name parameter should be first, so it appears early in 'ps'. *) if probe_server_parameter "--name" then ( add_arg "--name"; add_arg name ) ); add_arg "--exit-with-parent"; add_arg "--foreground"; add_arg "--pidfile"; add_arg pidfile; add_arg "--unix"; add_arg socket; add_arg "--threads"; add_arg (string_of_int cmd.threads); if have_selinux () then ( add_arg "--selinux-label"; add_arg "system_u:object_r:svirt_socket_t:s0" ); (* Reduce verbosity in nbdkit. *) add_arg "-D"; add_arg "nbdkit.backend.datapath=0"; List.iter ( fun (name, value) -> add_arg "-D"; add_arg (sprintf "%s=%s" name value) ) cmd.debug_flags; if cmd.readonly then add_arg "--readonly"; if cmd.verbose then add_arg "--verbose"; List.iter (fun filter -> add_arg "--filter"; add_arg filter) cmd.filters; add_arg cmd.plugin; add_args_reversed (List.map (fun (k, v) -> sprintf "%s=%s" k v) cmd.args); let args = get_args () in (* Print the full command we are about to run when debugging. *) if verbose () then ( eprintf "running nbdkit:\n"; List.iter (fun (k, v) -> eprintf " %s=%s" k v) cmd.env; List.iter (fun arg -> eprintf " %s" (quote arg)) args; prerr_newline () ); (* Start an nbdkit instance in the background. *) let args = Array.of_list args in let pid = fork () in if pid = 0 then ( (* Child process (nbdkit). *) List.iter (fun (k, v) -> putenv k v) cmd.env; execvp Config.nbdkit args ); (* Wait for the pidfile to appear so we know that nbdkit * is listening for requests. *) if not (wait_for_file pidfile 30) then ( if verbose () then error (f_"nbdkit did not start up. See previous debugging messages for problems.") else error (f_"nbdkit did not start up. There may be errors printed by nbdkit above. If the messages above are not sufficient to diagnose the problem then add the ‘virt-v2v -v -x’ options and examine the debugging output carefully.") ); if have_selinux () then ( (* Note that Unix domain sockets have both a file label and * a socket/process label. Using --selinux-label above * only set the socket label, but we must also set the file * label. *) ignore (run_command ["chcon"; "system_u:object_r:svirt_image_t:s0"; socket]); ); (* Set the regular Unix permissions, in case nbdkit is * running as another user. *) chown_for_libvirt_rhbz_1045069 socket; chmod socket 0o700; socket, pid ================================================ FILE: lib/nbdkit.mli ================================================ (* virt-v2v * Copyright (C) 2009-2025 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) (** nbdkit as an abstract data type. This "standalone" library can be used to examine nbdkit on the system, probe for plugins and filters, and construct and run nbdkit commands. *) val is_installed : unit -> bool (** Return true iff nbdkit is installed and passes some rudimentary tests that it is working. Note this may return true even if none of the basic plugins are installed. *) (** {2 Probe configuration of nbdkit} *) type config = (string * string) list val config : unit -> config (** Returns the list of tuples from the [nbdkit --dump-config] command. *) type version = int * int * int (** Version of nbdkit: [major, minor, release]. The major will always be 1. *) val version : unit -> version (** Get the installed version of nbdkit. *) val probe_server_parameter : string -> bool (** Probe if a particular server parameter is available. eg. [probe_server_parameter "--name"] tests if the [--name] parameter is available in this build of nbdkit. *) val probe_plugin : string -> bool (** Probe if a particular plugin is available. *) val probe_plugin_parameter : string -> string -> bool (** Probe if a particular plugin parameter is available. [probe_plugin_parameter filter regex] greps for regex in the output of [nbdkit plugin --help]. *) val probe_filter : string -> bool (** Probe if a particular filter is available. *) val probe_filter_parameter : string -> string -> bool (** Probe if a particular filter parameter is available. [probe_filter_parameter filter regex] greps for regex in the output of [nbdkit --filter=filter null --help]. *) (** {2 Create an nbdkit command and run it} *) type cmd (** An nbdkit command. *) val create : ?quiet:bool -> ?name:string -> string -> cmd (** Create a new nbdkit command. The parameter is the required plugin name. Normally the nbdkit verbose ([-v]) flag is inherited from virt-v2v but exceptionally you can use [~quiet:true] to make nbdkit always quiet. The optional [?name] parameter can be used to name this nbdkit instance (the name appears in debugging messages if using nbdkit >= 1.46). *) val add_debug_flag : cmd -> string -> string -> unit (** Add a debug flag ([-D] option). *) val set_readonly : cmd -> bool -> unit (** If true, set the readonly flag ([-r] option). *) val set_threads : cmd -> int -> unit (** Set the number of threads ([--threads] option). The default is 16. *) val add_filter : cmd -> string -> unit (** Add a filter. You may need to use {!probe_filter} first to check the filter is installed, otherwise nbdkit will fail to run. The filters are added closest to the plugin first. *) val add_filter_if_available : cmd -> string -> unit (** Same as {!add_filter} but does the {!probe_filter} check and omits the filter if it's not available. *) val add_arg : cmd -> string -> string -> unit val add_args : cmd -> (string * string) list -> unit (** Add a key=value argument(s) to the command line. The arguments are added left to right. *) val reduce_memory_pressure : cmd -> unit (** This is short-hand for detecting if the file plugin supports the [reduce-memory-pressure=on] option, and adding it to the nbdkit command line. Otherwise it adds the old, confusing [cache=none] option instead. Only use this with the file plugin. *) val add_env : cmd -> string -> string -> unit (** Add name=value environment variable. *) val run_unix : string -> cmd -> string * int (** Start nbdkit command listening on a Unix domain socket, waiting for the process to start up. Returns the Unix domain socket name and the nbdkit process ID. The [--exit-with-parent], [--foreground], [--pidfile], [--newstyle] and [--unix] flags are added automatically. Other flags are set as in the {!cmd} struct. *) ================================================ FILE: lib/networks.ml ================================================ (* virt-v2v * Copyright (C) 2009-2025 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) (* Network, bridge and MAC address mapping. *) open Printf open Tools_utils open Common_gettext.Gettext open Types type t = { (* Map specific NIC with MAC address to a network or bridge. *) mutable macs : (vnet_type * string) StringMap.t; (* If specific NIC mapping fails, for networks we use this to map * a named network, or use the default network if no named * network exists. *) mutable network_map : string StringMap.t; mutable default_network : string option; (* If that fails, same as above but for bridges. *) mutable bridge_map : string StringMap.t; mutable default_bridge : string option; } let map t nic = try let mac = match nic.s_mac with None -> raise Not_found | Some mac -> mac in let mac = String.lowercase_ascii mac in let vnet_type, vnet = StringMap.find mac t.macs in { nic with s_vnet_type = vnet_type; s_vnet = vnet } with Not_found -> match nic.s_vnet_type with | Network -> (try let vnet = StringMap.find nic.s_vnet t.network_map in { nic with s_vnet = vnet } with Not_found -> match t.default_network with | None -> nic (* no mapping done *) | Some default_network -> { nic with s_vnet = default_network } ) | Bridge -> (try let vnet = StringMap.find nic.s_vnet t.bridge_map in { nic with s_vnet = vnet } with Not_found -> match t.default_bridge with | None -> nic (* no mapping done *) | Some default_bridge -> { nic with s_vnet = default_bridge } ) let create () = { macs = StringMap.empty; network_map = StringMap.empty; default_network = None; bridge_map = StringMap.empty; default_bridge = None } let add_mac t mac vnet_type vnet = let mac = String.lowercase_ascii mac in if StringMap.mem mac t.macs then error (f_"duplicate --mac parameter. Duplicate mappings specified \ for MAC address %s.") mac; t.macs <- StringMap.add mac (vnet_type, vnet) t.macs let add_network t i o = if StringMap.mem i t.network_map then error (f_"duplicate -n/--network parameter. Duplicate mappings \ specified for network %s.") i; t.network_map <- StringMap.add i o t.network_map let add_default_network t o = if t.default_network <> None then error (f_"duplicate -n/--network parameter. Only one \ default mapping is allowed."); t.default_network <- Some o let add_bridge t i o = if StringMap.mem i t.bridge_map then error (f_"duplicate -b/--bridge parameter. Duplicate mappings \ specified for bridge %s.") i; t.bridge_map <- StringMap.add i o t.bridge_map let add_default_bridge t o = if t.default_bridge <> None then error (f_"duplicate -b/--bridge parameter. Only one default mapping \ is allowed."); t.default_bridge <- Some o ================================================ FILE: lib/networks.mli ================================================ (* virt-v2v * Copyright (C) 2009-2025 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) (** Network, bridge and MAC address mapping. *) type t (** The map. *) val create : unit -> t (** Create an empty mapping. *) val add_network : t -> string -> string -> unit (** Add a network mapping from C to C. Equivalent to the [--network in:out] option. *) val add_default_network : t -> string -> unit (** Add a default network mapping. Equivalent to the [--network out] option. *) val add_bridge : t -> string -> string -> unit (** Add a bridge mapping from C to C. Equivalent to the [--bridge in:out] option. *) val add_default_bridge : t -> string -> unit (** Add a default bridge mapping. Equivalent to the [--bridge out] option. *) val add_mac : t -> string -> Types.vnet_type -> string -> unit (** Add a MAC address mapping. Equivalent to the [-mac MAC::out] option. *) val map : t -> Types.source_nic -> Types.source_nic (** Apply the mapping to the source NIC, returning the updated NIC with possibly modified [s_vnet] and [s_vnet_type] fields. MAC address mappings take precedence, followed by network and bridge mappings if no MAC address mapping for the NIC can be found. *) ================================================ FILE: lib/qemuNBD.ml ================================================ (* virt-v2v * Copyright (C) 2009-2025 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) (* qemu-nbd as an abstract data type. *) open Unix open Printf open Common_gettext.Gettext open Std_utils open Tools_utils open Unix_utils open Utils let is_installed = let test = lazy (Sys.command "qemu-nbd --version >/dev/null 2>&1" = 0) in fun () -> Lazy.force test let qemu_nbd_has_selinux_label_option = let test = lazy (Sys.command "qemu-nbd --help |& grep -sq selinux" = 0) in fun () -> Lazy.force test type version = int * int * int let version = let rex = PCRE.compile "(\\d+)\\.(\\d+)\\.(\\d+)" in fun config -> let lines = external_command "qemu-nbd --version" in let line = List.hd lines in if not (PCRE.matches rex line) then error (f_"qemu-nbd: unexpected version in --version: %s") line; let major = int_of_string (PCRE.sub 1) and minor = int_of_string (PCRE.sub 2) and release = int_of_string (PCRE.sub 3) in debug "qemu-nbd version: %d.%d.%d" major minor release; (major, minor, release) type cmd = { disk : string; mutable snapshot : bool; mutable format : string option; mutable imgopts : bool; } let create disk = { disk; snapshot = false; format = None; imgopts = false } let set_snapshot cmd snap = cmd.snapshot <- snap let set_format cmd format = cmd.format <- format let set_image_opts cmd imgopts = cmd.imgopts <- imgopts let run_unix socket { disk; snapshot; format; imgopts } = assert (disk <> ""); (* Create a temporary directory where we place the PID file. *) let piddir = Mkdtemp.temp_dir "v2vqemunbd." in On_exit.rm_rf piddir; let id = unique () in let pidfile = piddir // sprintf "qemunbd%d.pid" id in (* Construct the qemu-nbd command line. *) let args = ref [] in List.push_back_list args ["qemu-nbd"; "-t"; "--shared=0"; "--discard=unmap"; "--pid-file"; pidfile; "--socket"; socket]; (* -s adds a protective overlay. *) if snapshot then List.push_back args "-s"; (* --image-opts reinterprets the filename parameter as a set of * image options. *) if imgopts then List.push_back args "--image-opts"; if have_selinux () && qemu_nbd_has_selinux_label_option () then ( List.push_back args "--selinux-label"; List.push_back args "system_u:object_r:svirt_socket_t:s0" ); Option.iter ( fun format -> List.push_back args "--format"; List.push_back args format ) format; List.push_back args disk; (* Print the full command we are about to run when debugging. *) if verbose () then ( eprintf "running qemu-nbd:\n"; List.iter (fun arg -> eprintf " %s" (quote arg)) !args; prerr_newline () ); let args = Array.of_list !args in let pid = fork () in if pid = 0 then ( (* Child process. *) execvp "qemu-nbd" args ); (* Wait for qemu-nbd to write a PID file. *) if not (wait_for_file pidfile 30) then ( if verbose () then error (f_"qemu-nbd did not start up. See previous debugging messages for problems.") else error (f_"qemu-nbd did not start up. There may be errors printed by qemu-nbd above. If the messages above are not sufficient to diagnose the problem then add the ‘virt-v2v -v -x’ options and examine the debugging output carefully.") ); if have_selinux () then ( (* Note that Unix domain sockets have both a file label and * a socket/process label. Using --selinux-label above * only set the socket label, but we must also set the file * label. *) ignore (run_command ["chcon"; "system_u:object_r:svirt_image_t:s0"; socket]); ); (* Set the regular Unix permissions, in case qemu is * running as another user. *) chown_for_libvirt_rhbz_1045069 socket; chmod socket 0o700; (* We don't need the PID file any longer. *) unlink pidfile; socket, pid ================================================ FILE: lib/qemuNBD.mli ================================================ (* virt-v2v * Copyright (C) 2009-2025 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) (** qemu-nbd as an abstract data type. *) val is_installed : unit -> bool (** Return true iff qemu-nbd is installed and passes some rudimentary tests that it is working. *) type version = int * int * int (** Version of qemu-nbd: [major, minor, release]. *) val version : unit -> version (** Get the installed version of qemu-nbd. *) type cmd (** A qemu-nbd command line. *) val create : string -> cmd (** Create a new qemu-nbd command. The parameter is the required filename or URI of the disk image to serve. *) val set_snapshot : cmd -> bool -> unit (** If true, set the snapshot [-s] flag. For safety, all input methods where [options.read_only] is true must set this, to ensure the input is not modified. *) val set_format : cmd -> string option -> unit (** Set the format [--format] parameter. *) val set_image_opts : cmd -> bool -> unit (** Set whether the [--image-opts] parameter is used. This changes the meaning of the [filename] parameter to a set of image options. Consult the qemu-nbd man page for more details. *) val run_unix : string -> cmd -> string * int (** Start qemu-nbd command listening on a Unix domain socket, waiting for the process to start up. Returns the Unix domain socket name and the qemu-nbd process ID. *) ================================================ FILE: lib/types.ml ================================================ (* virt-v2v * Copyright (C) 2009-2025 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) open Printf open Std_utils open Tools_utils open Common_gettext.Gettext (* Types. See types.mli for documentation. *) type source = { s_hypervisor : source_hypervisor; s_name : string; s_genid : string option; s_memory : int64; s_vcpu : int; s_cpu_vendor : string option; s_cpu_model : string option; s_cpu_topology : source_cpu_topology option; s_features : string list; s_firmware : source_firmware; s_uefi_secureboot : bool; s_display : source_display option; s_sound : source_sound option; s_disks : source_disk list; s_removables : source_removable list; s_nics : source_nic list; } and source_hypervisor = | QEmu | KQemu | KVM | Xen | LXC | UML | OpenVZ | Test | VMware | HyperV | VBox | Phyp | Parallels | Bhyve | Physical (* used by virt-p2v *) | UnknownHV (* used by -i disk *) | OtherHV of string and source_firmware = | BIOS | UEFI | UnknownFirmware and source_disk = { s_disk_id : int; s_controller : s_controller option; } and s_controller = Source_IDE | Source_SATA | Source_SCSI | Source_NVME | Source_virtio_blk | Source_virtio_SCSI and source_removable = { s_removable_type : s_removable_type; s_removable_controller : s_controller option; s_removable_slot : int option; } and s_removable_type = CDROM | Floppy and source_nic = { s_mac : string option; s_nic_model : s_nic_model option; s_vnet : string; s_vnet_type : vnet_type; } and s_nic_model = Source_other_nic of string | Source_rtl8139 | Source_e1000 | Source_virtio_net and vnet_type = Bridge | Network and source_display = { s_display_type : s_display_type; s_keymap : string option; s_password : string option; s_listen : s_display_listen; s_port : int option; } and s_display_type = Window | VNC | Spice and s_display_listen = | LNoListen | LAddress of string | LNetwork of string | LSocket of string option | LNone and source_sound = { s_sound_model : source_sound_model; } and source_sound_model = AC97 | ES1370 | ICH6 | ICH9 | PCSpeaker | SB16 | USBAudio and source_cpu_topology = { s_cpu_sockets : int; s_cpu_cores : int; s_cpu_threads : int; } let rec string_of_source s = sprintf " source name: %s hypervisor type: %s VM genid: %s memory: %Ld (bytes) nr vCPUs: %d CPU vendor: %s CPU model: %s CPU topology: %s CPU features: %s firmware: %s UEFI secureboot: %b display: %s sound: %s disks: %s removable media: %s NICs: %s " s.s_name (string_of_source_hypervisor s.s_hypervisor) (Option.value ~default:"" s.s_genid) s.s_memory s.s_vcpu (Option.value ~default:"" s.s_cpu_vendor) (Option.value ~default:"" s.s_cpu_model) (match s.s_cpu_topology with | None -> "" | Some topology -> string_of_source_cpu_topology topology) (String.concat "," (List.sort compare s.s_features)) (string_of_source_firmware s.s_firmware) s.s_uefi_secureboot (match s.s_display with | None -> "" | Some display -> string_of_source_display display) (match s.s_sound with | None -> "" | Some sound -> string_of_source_sound sound) (String.concat "\n" (List.map string_of_source_disk s.s_disks)) (String.concat "\n" (List.map string_of_source_removable s.s_removables)) (String.concat "\n" (List.map string_of_source_nic s.s_nics)) and string_of_source_hypervisor = function | QEmu -> "qemu" | KQemu -> "kqemu" | KVM -> "kvm" | Xen -> "xen" | LXC -> "lxc" | UML -> "uml" | OpenVZ -> "openvz" | Test -> "test" | VMware -> "vmware" | HyperV -> "hyperv" | VBox -> "vbox" | Phyp -> "phyp" | Parallels -> "parallels" | Bhyve -> "bhyve" | Physical -> "physical" | UnknownHV -> "unknownhv" | OtherHV s -> s and source_hypervisor_of_string = function | "qemu" -> QEmu | "kqemu" -> KQemu | "kvm" -> KVM | "xen" -> Xen | "lxc" -> LXC | "uml" -> UML | "openvz" -> OpenVZ | "test" -> Test | "vmware" -> VMware | "hyperv" -> HyperV | "vbox" -> VBox | "phyp" -> Phyp | "parallels" -> Parallels | "bhyve" -> Bhyve | "physical" -> Physical | "unknownhv" -> UnknownHV | s -> OtherHV s and string_of_source_firmware = function | BIOS -> "bios" | UEFI -> "uefi" | UnknownFirmware -> "unknown" and string_of_source_disk { s_disk_id = id; s_controller = controller } = sprintf "\t%d%s" id (match controller with | None -> "" | Some controller -> " [" ^ string_of_controller controller ^ "]") and string_of_controller = function | Source_IDE -> "ide" | Source_SATA -> "sata" | Source_SCSI -> "scsi" | Source_NVME -> "nvme" | Source_virtio_blk -> "virtio-blk" | Source_virtio_SCSI -> "virtio-scsi" and string_of_source_removable { s_removable_type = typ; s_removable_controller = controller; s_removable_slot = i } = sprintf "\t%s%s%s" (match typ with CDROM -> "CD-ROM" | Floppy -> "Floppy") (match controller with | None -> "" | Some controller -> " [" ^ string_of_controller controller ^ "]") (match i with None -> "" | Some i -> sprintf " in slot %d" i) and string_of_source_nic { s_mac = mac; s_nic_model = model; s_vnet = vnet; s_vnet_type = typ } = sprintf "\t%s \"%s\"%s%s" (string_of_vnet_type typ) vnet (match mac with | None -> "" | Some mac -> " mac: " ^ mac) (match model with | None -> "" | Some model -> " [" ^ string_of_nic_model model ^ "]") and string_of_vnet_type = function | Bridge -> "Bridge" | Network -> "Network" and string_of_nic_model = function | Source_virtio_net -> "virtio" | Source_e1000 -> "e1000" | Source_rtl8139 -> "rtl8139" | Source_other_nic model -> model and nic_model_of_string = function | "virtio" -> Source_virtio_net | "e1000" -> Source_e1000 | "rtl8139" -> Source_rtl8139 | model -> Source_other_nic model and string_of_source_display { s_display_type = typ; s_keymap = keymap; s_password = password; s_listen = listen } = sprintf "%s%s%s%s" (match typ with Window -> "window" | VNC -> "vnc" | Spice -> "spice") (match keymap with None -> "" | Some km -> " " ^ km) (match password with None -> "" | Some _ -> " with password") (match listen with | LNoListen -> "" | LAddress a -> sprintf " listening on address %s" a | LNetwork n -> sprintf " listening on network %s" n | LSocket (Some s) -> sprintf " listening on Unix domain socket %s" s | LSocket None -> sprintf " listening on automatically created Unix domain socket" | LNone -> " listening on private fd" ) and string_of_source_sound { s_sound_model = model } = string_of_source_sound_model model (* NB: This function must produce names compatible with libvirt. The * documentation for libvirt is incomplete, look instead at the * sources. *) and string_of_source_sound_model = function | AC97 -> "ac97" | ES1370 -> "es1370" | ICH6 -> "ich6" | ICH9 -> "ich9" | PCSpeaker -> "pcspk" | SB16 -> "sb16" | USBAudio -> "usb" and source_sound_model_of_string = function | "ac97" -> Some AC97 | "es1370" -> Some ES1370 | "ich6" -> Some ICH6 | "ich9" -> Some ICH9 | "pcspk" -> Some PCSpeaker | "sb16" -> Some SB16 | "usb" -> Some USBAudio | _ -> None and string_of_source_cpu_topology { s_cpu_sockets; s_cpu_cores; s_cpu_threads } = sprintf "sockets: %d cores/socket: %d threads/core: %d" s_cpu_sockets s_cpu_cores s_cpu_threads type inspect = { i_root : string; i_type : string; i_distro : string; i_osinfo : string; i_arch : string; i_major_version : int; i_minor_version : int; i_package_format : string; i_package_management : string; i_product_name : string; i_product_variant : string; i_mountpoints : (string * string) list; i_filesystems : filesystem list; i_apps : Guestfs.application2 list; i_apps_map : Guestfs.application2 list StringMap.t; i_windows_systemroot : string; i_windows_software_hive : string; i_windows_system_hive : string; i_windows_current_control_set : string; i_windows_group_policy : bool; i_drive_mappings : (string * string) list; } and filesystem = { fs_dev : string; fs_type : string option; fs_version : string option; fs_label : string option; fs_uuid : string option; } let string_of_inspect inspect = sprintf "\ i_root = %s i_type = %s i_distro = %s i_osinfo = %s i_arch = %s i_major_version = %d i_minor_version = %d i_package_format = %s i_package_management = %s i_product_name = %s i_product_variant = %s i_windows_systemroot = %s i_windows_software_hive = %s i_windows_system_hive = %s i_windows_current_control_set = %s i_windows_group_policy = %b i_drive_mappings = %s " inspect.i_root inspect.i_type inspect.i_distro inspect.i_osinfo inspect.i_arch inspect.i_major_version inspect.i_minor_version inspect.i_package_format inspect.i_package_management inspect.i_product_name inspect.i_product_variant inspect.i_windows_systemroot inspect.i_windows_software_hive inspect.i_windows_system_hive inspect.i_windows_current_control_set inspect.i_windows_group_policy (String.concat "; " (List.map (fun (d, dev) -> sprintf "%s => %s" d dev) inspect.i_drive_mappings)) type disk_stats = { mutable target_actual_size : int64 option; } type overlay = { ov_overlay_file : string; ov_sd : string; ov_virtual_size : int64; ov_source : source_disk; ov_stats : disk_stats; } let string_of_overlay ov = sprintf " overlay file: %s overlay device name: %s overlay virtual disk size: %Ld target actual size: %s " ov.ov_overlay_file ov.ov_sd ov.ov_virtual_size (match ov.ov_stats.target_actual_size with | None -> "None" | Some i -> Int64.to_string i) type target = { target_file : target_file; target_format : string; target_overlay : overlay; } and target_file = | TargetFile of string | TargetURI of string let string_of_target t = sprintf " target file: %s target format: %s " (match t.target_file with | TargetFile s -> "[file] " ^ s | TargetURI s -> "[qemu] " ^ s) t.target_format type target_firmware = TargetBIOS | TargetUEFI let string_of_target_firmware = function | TargetBIOS -> "bios" | TargetUEFI -> "uefi" type target_nics = source_nic list type guestcaps = { gcaps_block_bus : guestcaps_block_type; gcaps_net_bus : guestcaps_net_type; gcaps_virtio_rng : bool; gcaps_virtio_balloon : bool; gcaps_isa_pvpanic : bool; gcaps_virtio_socket : bool; gcaps_machine : guestcaps_machine; gcaps_arch : string; gcaps_arch_min_version : int; gcaps_virtio_1_0 : bool; gcaps_rtc_utc : bool; } and guestcaps_block_type = Virtio_blk | Virtio_SCSI | IDE and guestcaps_net_type = Virtio_net | E1000 | RTL8139 and guestcaps_machine = I440FX | Q35 | Virt type domcaps_features = { supports_floppy : bool; } let string_of_domcaps domcaps = sprintf "\ supports_floppy = %b\n\ " domcaps.supports_floppy let string_of_block_type = function | Virtio_blk -> "virtio-blk" | Virtio_SCSI -> "virtio-scsi" | IDE -> "ide" let string_of_net_type = function | Virtio_net -> "virtio-net" | E1000 -> "e1000" | RTL8139 -> "rtl8139" let string_of_machine = function | I440FX -> "i440fx" | Q35 -> "q35" | Virt -> "virt" let string_of_guestcaps gcaps = sprintf "\ gcaps_block_bus = %s\n\ gcaps_net_bus = %s\n\ gcaps_virtio_rng = %b\n\ gcaps_virtio_balloon = %b\n\ gcaps_isa_pvpanic = %b\n\ gcaps_virtio_socket = %b\n\ gcaps_machine = %s\n\ gcaps_arch = %s\n\ gcaps_arch_min_version = %d\n\ gcaps_virtio_1_0 = %b\n\ gcaps_rtc_utc = %b\n\ " (string_of_block_type gcaps.gcaps_block_bus) (string_of_net_type gcaps.gcaps_net_bus) gcaps.gcaps_virtio_rng gcaps.gcaps_virtio_balloon gcaps.gcaps_isa_pvpanic gcaps.gcaps_virtio_socket (string_of_machine gcaps.gcaps_machine) gcaps.gcaps_arch gcaps.gcaps_arch_min_version gcaps.gcaps_virtio_1_0 gcaps.gcaps_rtc_utc type target_buses = { target_virtio_blk_bus : target_bus_slot array; target_ide_bus : target_bus_slot array; target_scsi_bus : target_bus_slot array; target_floppy_bus : target_bus_slot array; } and target_bus_slot = | BusSlotEmpty | BusSlotDisk of source_disk | BusSlotRemovable of source_removable let string_of_target_bus_slots bus_name slots = let slots = Array.mapi ( fun slot_nr slot -> sprintf "%s slot %d:\n" bus_name slot_nr ^ (match slot with | BusSlotEmpty -> "\t(slot empty)\n" | BusSlotDisk d -> string_of_source_disk d ^ "\n" | BusSlotRemovable r -> string_of_source_removable r ^ "\n" ) ) slots in String.concat "" (Array.to_list slots) let string_of_target_buses buses = string_of_target_bus_slots "virtio-blk" buses.target_virtio_blk_bus ^ string_of_target_bus_slots "ide" buses.target_ide_bus ^ string_of_target_bus_slots "scsi" buses.target_scsi_bus type target_meta = { guestcaps : guestcaps; target_buses : target_buses; target_nics : target_nics; target_firmware : target_firmware; target_boot_device : int option; } type root_choice = AskRoot | SingleRoot | FirstRoot | RootDev of string let default_root_choice = AskRoot let set_root_choice root_choice = function | "ask" -> root_choice := AskRoot | "single" -> root_choice := SingleRoot | "first" -> root_choice := FirstRoot | dev when String.starts_with "/dev/" dev -> root_choice := RootDev dev | s -> error (f_"unknown --root option: %s") s type output_allocation = Sparse | Preallocated type bandwidth = | StaticBandwidth of string | DynamicBandwidth of string option * string type static_ip = { if_mac_addr : string; if_ip_address : string; if_default_gateway : string option; if_prefix_length : int option; if_nameservers : string list; } ================================================ FILE: lib/types.mli ================================================ (* virt-v2v * Copyright (C) 2009-2025 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) (** Types. This module contains the data types used throughout virt-v2v. There is a progression during conversion: source -> overlay -> target: We start with a description of the source VM (or physical machine for virt-p2v) with one or more source disks. We place wriable overlay(s) on top of the source disk(s). We do the conversion into the overlay(s). We copy the overlay(s) to the target disk(s). (This progression does not apply for in-place conversions which happen on the source only.) Overlay disks contain a pointer back to source disks. Target disks contain a pointer back to overlay disks. {v ┌──────┐ │source│ │struct│ └──┬───┘ │ source.s_disks │ │ ┌───────┐ ┌───────┐ ┌───────┐ └────┤ disk1 ├──┤ disk2 ├──┤ disk3 │ Source disks └───▲───┘ └───▲───┘ └───▲───┘ │ │ │ │ │ │ overlay.ov_source ┌───┴───┐ ┌───┴───┐ ┌───┴───┐ │ ovl1 ├──┤ ovl2 ├──┤ ovl3 │ Overlay disks └───▲───┘ └───▲───┘ └───▲───┘ │ │ │ │ │ │ target.target_overlay ┌───┴───┐ ┌───┴───┐ ┌───┴───┐ │ targ1 ├──┤ targ2 ├──┤ targ3 │ Target disks └───────┘ └───────┘ └───────┘ v} *) (** {2 Source, source disks} *) type source = { s_hypervisor : source_hypervisor; (** Source hypervisor. *) s_name : string; (** Guest name. *) s_genid : string option; (** VM Generation ID. *) s_memory : int64; (** Memory size (bytes). *) s_vcpu : int; (** Number of CPUs. *) s_cpu_vendor : string option; (** Source CPU vendor. *) s_cpu_model : string option; (** Source CPU model. *) s_cpu_topology : source_cpu_topology option; (** Source CPU topology. *) s_features : string list; (** Machine features. *) s_firmware : source_firmware; (** Firmware (BIOS or EFI). *) s_uefi_secureboot : bool; (** UEFI secure boot toggle. *) s_display : source_display option; (** Guest display. *) s_sound : source_sound option; (** Sound card. *) s_disks : source_disk list; (** Source disks. *) s_removables : source_removable list; (** CDROMs etc. *) s_nics : source_nic list; (** NICs. *) } (** The source: metadata, disk images. [s_uefi_secureboot] is a toggle stored in the UEFI NVRAM of a guest. When enabled it causes UEFI to verify EFI binary signatures eg on [shim.efi]. When disabled, EFI binary signatures are ignored. When enabled it is equivalent to this libvirt fragment: {v v} When disabled: {v v} More: https://libvirt.org/kbase/secureboot.html *) and source_hypervisor = | QEmu | KQemu | KVM | Xen | LXC | UML | OpenVZ | Test | VMware | HyperV | VBox | Phyp | Parallels | Bhyve | Physical (** used by virt-p2v *) | UnknownHV (** used by -i disk *) | OtherHV of string (** Possible source hypervisors. See [libvirt.git/docs/schemas/domaincommon.rng] for the list supported by libvirt. *) and source_firmware = | BIOS (** PC BIOS or default firmware *) | UEFI (** UEFI *) | UnknownFirmware (** Unknown: try to autodetect. *) (** The firmware from the source metadata. Note that [UnknownFirmware] state corresponds to disks (where we have no metadata) and temporarily also to libvirt because of RHBZ#1217444. *) and source_disk = { s_disk_id : int; (** A unique ID for each source disk. *) s_controller : s_controller option; (** Controller, eg. IDE, SCSI. *) } (** A source disk. *) and s_controller = Source_IDE | Source_SATA | Source_SCSI | Source_NVME | Source_virtio_blk | Source_virtio_SCSI (** Source disk controller. *) and source_removable = { s_removable_type : s_removable_type; (** Type. *) s_removable_controller : s_controller option; (** Controller, eg. IDE, SCSI.*) s_removable_slot : int option; (** Slot, eg. hda = 0, hdc = 2 *) } (** Removable media. *) and s_removable_type = CDROM | Floppy and source_nic = { s_mac : string option; (** MAC address. *) s_nic_model : s_nic_model option; (** Network adapter model. *) s_vnet : string; (** Source network name. *) s_vnet_type : vnet_type; (** Source network type. *) } (** Network adapter models. *) and s_nic_model = Source_other_nic of string | Source_rtl8139 | Source_e1000 | Source_virtio_net (** Network interfaces. *) and vnet_type = Bridge | Network and source_display = { s_display_type : s_display_type; (** Display type. *) s_keymap : string option; (** Guest keymap. *) s_password : string option; (** If required, password to access the display. *) s_listen : s_display_listen; (** Listen address. *) s_port : int option; (** Display port. *) } and s_display_type = Window | VNC | Spice and s_display_listen = | LNoListen (** No parseable element. *) | LAddress of string (** Listen address. *) | LNetwork of string (** Listen network. *) | LSocket of string option (** Listen Unix domain socket. *) | LNone (** *) and source_sound = { s_sound_model : source_sound_model; (** Sound model. *) } and source_sound_model = AC97 | ES1370 | ICH6 | ICH9 | PCSpeaker | SB16 | USBAudio and source_cpu_topology = { s_cpu_sockets : int; (** Number of sockets. *) s_cpu_cores : int; (** Number of cores per socket. *) s_cpu_threads : int; (** Number of threads per core. *) } val string_of_source : source -> string val string_of_source_disk : source_disk -> string val string_of_controller : s_controller -> string val string_of_source_nic : source_nic -> string val string_of_nic_model : s_nic_model -> string val nic_model_of_string : string -> s_nic_model val string_of_vnet_type : vnet_type -> string val string_of_source_sound_model : source_sound_model -> string val source_sound_model_of_string : string -> source_sound_model option val string_of_source_cpu_topology : source_cpu_topology -> string val string_of_source_hypervisor : source_hypervisor -> string val source_hypervisor_of_string : string -> source_hypervisor (** {2 Inspection data} *) type inspect = { i_root : string; (** Root device. *) i_type : string; (** Usual inspection fields. *) i_distro : string; i_osinfo : string; i_arch : string; i_major_version : int; i_minor_version : int; i_package_format : string; i_package_management : string; i_product_name : string; i_product_variant : string; i_mountpoints : (string * string) list; i_filesystems : filesystem list; i_apps : Guestfs.application2 list; (** List of packages installed. *) i_apps_map : Guestfs.application2 list StringMap.t; (** This is a map from the app name to the application object. Since RPM allows multiple packages with the same name to be installed, the value is a list. *) i_windows_systemroot : string; i_windows_software_hive : string; i_windows_system_hive : string; i_windows_current_control_set : string; i_windows_group_policy : bool; i_drive_mappings : (string * string) list; } and filesystem = { fs_dev : string; fs_type : string option; fs_version : string option; fs_label : string option; fs_uuid : string option; } val string_of_inspect : inspect -> string (** {2 Disk stats} *) type disk_stats = { mutable target_actual_size : int64 option; (** Actual size on target. *) } (** {2 Overlay disks} *) type overlay = { ov_overlay_file : string; (** Local overlay file (qcow2 format). *) ov_sd : string; (** "sda", "sdb" etc - canonical device name. *) ov_virtual_size : int64; (** Virtual disk size in bytes. *) (* Note: The ov_source is for information ONLY (eg. printing * error messages). It must NOT be opened/read/modified. *) ov_source : source_disk; (** Link back to the source disk. *) ov_stats : disk_stats; (** Size stats for this disk. *) } (** Overlay disk. *) val string_of_overlay : overlay -> string (** {2 Target disks} *) type target = { target_file : target_file; (** Destination file or QEMU URI. *) target_format : string; (** Destination format (eg. -of option). *) target_overlay : overlay; (** Link back to the overlay disk. *) } (** Target disk. *) and target_file = | TargetFile of string (** Target is a file. *) | TargetURI of string (** Target is a QEMU URI. *) val string_of_target : target -> string (** {2 Guest firmware} *) type target_firmware = TargetBIOS | TargetUEFI val string_of_target_firmware : target_firmware -> string (** {2 Target NICs} *) type target_nics = source_nic list (** {2 Guest capabilities} *) type guestcaps = { gcaps_block_bus : guestcaps_block_type; gcaps_net_bus : guestcaps_net_type; (** Best block device and network device guest can access. These are determined during conversion by inspecting the guest (and in some cases conversion can actually enhance these by installing drivers). Thus this is not known until after conversion. *) gcaps_virtio_rng : bool; (** Guest supports virtio-rng. *) gcaps_virtio_balloon : bool; (** Guest supports virtio balloon. *) gcaps_isa_pvpanic : bool; (** Guest supports ISA pvpanic device. *) gcaps_virtio_socket : bool; (** Guest supports virtio socket. *) gcaps_machine : guestcaps_machine; (** Machine model. *) gcaps_arch : string; (** Architecture that KVM must emulate. *) gcaps_arch_min_version : int; (** Some guest OSes require not just a specific architecture, but a minimum version. Notably RHEL >= 9 requires at least x86_64-v2. If the guest is capable of running on QEMU's default VCPU model for the architecture ([-cpu qemu64]) then this is set to [0]. Note this capability is not actually used by any current output mode. It is retained in case we might use it in future, but we might remove it if it is not used. *) gcaps_virtio_1_0 : bool; (** The guest supports the virtio devices that it does at the virtio-1.0 protocol level. *) gcaps_rtc_utc : bool; (** Is the RTC set to UTC ([true]) or localtime ([false])? For Linux guests this is always true. For Windows we find out what the guest is expecting by looking at the registry. *) } (** Guest capabilities after conversion. eg. Was virtio found or installed? *) and guestcaps_block_type = Virtio_blk | Virtio_SCSI | IDE and guestcaps_net_type = Virtio_net | E1000 | RTL8139 and guestcaps_machine = I440FX | Q35 | Virt type domcaps_features = { supports_floppy : bool; (* domain arch/type supports floppy *) } val string_of_guestcaps : guestcaps -> string val string_of_domcaps : domcaps_features -> string (** {2 Guest buses} *) type target_buses = { target_virtio_blk_bus : target_bus_slot array; target_ide_bus : target_bus_slot array; target_scsi_bus : target_bus_slot array; target_floppy_bus : target_bus_slot array; } (** Mapping of fixed and removable disks to buses. As shown in the diagram below, there are (currently) four buses attached to the target VM. Each contains a chain of fixed or removable disks. Slots can also be empty. We try to assign disks to the same slot number as they would occupy on the source, although that is not always possible. {v ┌──────┐ │Target│ │ VM │ └──┬───┘ │ ┌─────┐ ┌─────┐ ┌─────┐ ├────┤ sda ├───┤ - ├───┤ sdc │ SCSI bus │ └─────┘ └─────┘ └─────┘ │ ┌─────┐ ┌─────┐ ┌─────┐ ┌─────┐ ├────┤ hda ├───┤ hdb ├───┤ hdc ├───┤ hdd │ IDE bus │ └─────┘ └─────┘ └─────┘ └─────┘ │ ┌─────┐ ┌─────┐ ├────┤ - ├───┤ vdb │ Virtio-blk bus │ └─────┘ └─────┘ │ ┌─────┐ └────┤ fda │ Floppy disks └─────┘ v} *) and target_bus_slot = | BusSlotEmpty (** This bus slot is empty. *) | BusSlotDisk of source_disk (** Contains a fixed disk. *) | BusSlotRemovable of source_removable (** Contains a removable CD/floppy. *) val string_of_target_buses : target_buses -> string (** {2 Target metadata super-struct} This contains all target-related metadata in a single struct to simplify calling [output#create_metadata] *) type target_meta = { guestcaps : guestcaps; target_buses : target_buses; target_nics : target_nics; target_firmware : target_firmware; target_boot_device : int option; (** The disk index of the device containing the bootloader (index starting from 0). For libvirt guests this should usually be mapped to [] for this disk, and [] where N > 1 for each other disk (order does not matter for the other disks). This is only necessary for SeaBIOS so only collected for a subset of BIOS guests (RHEL-108991). *) } (** {2 Command line parameters} *) type root_choice = | AskRoot (** Ask the user interactively (default) *) | SingleRoot (** Fail if multi-boot *) | FirstRoot (** First from list returned by libguestfs *) | RootDev of string (** Named device *) (** Type of [--root] (root choice) option. *) val default_root_choice : root_choice (** The default {!root_choice} if no [--root] on the command line. *) val set_root_choice : root_choice ref -> string -> unit (** Parse a string (from the command line) into the {!root_choice} option. The reference (first parameter) is updated. *) type output_allocation = Sparse | Preallocated (** Type of [-oa] (output allocation) option. *) type bandwidth = | StaticBandwidth of string | DynamicBandwidth of string option * string (** [--bandwidth] and [--bandwidth-file] options. *) type static_ip = { if_mac_addr : string; if_ip_address : string; if_default_gateway : string option; if_prefix_length : int option; if_nameservers : string list; } (** [--mac ..:ip:..] option. *) ================================================ FILE: lib/utils.ml ================================================ (* virt-v2v * Copyright (C) 2009-2025 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) (* Utilities used in virt-v2v only. *) open Printf open Std_utils open Tools_utils open Unix_utils open Common_gettext.Gettext let large_tmpdir = try Sys.getenv "VIRT_V2V_TMPDIR" with Not_found -> (open_guestfs ())#get_cachedir () let string_of_process_status = function | Unix.WEXITED 0 -> s_"success" | WEXITED i -> sprintf (f_"exited with non-zero error code %d") i | WSIGNALED i -> sprintf (f_"signalled by signal %d") i | WSTOPPED i -> sprintf (f_"stopped by signal %d") i (* Is SELinux enabled and enforcing on the host? *) let have_selinux = let cmd = "getenforce 2>/dev/null | grep -isq Enforcing" in let test = lazy (0 = Sys.command cmd) in fun () -> Lazy.force test (* URI quoting. *) let uri_quote str = let len = String.length str in let xs = ref [] in for i = 0 to len-1 do xs := (match str.[i] with | ('A'..'Z' | 'a'..'z' | '0'..'9' | '/' | '.' | '-') as c -> String.make 1 c | c -> sprintf "%%%02x" (Char.code c) ) :: !xs done; String.concat "" (List.rev !xs) (* Escape characters like [?] and [*] which are special for fnmatch(3). *) let fnmatch_escape str = let len = String.length str in let xs = ref [] in for i = 0 to len-1 do xs := (match str.[i] with | '[' | ']' | '?' | '*' as c -> sprintf "\\%c" c | c -> String.make 1 c ) :: !xs done; String.concat "" (List.rev !xs) (* Map guest architecture found by inspection to the architecture * that KVM must emulate. Note for x86 we assume a 64 bit hypervisor. *) let kvm_arch = function | "i386" | "i486" | "i586" | "i686" | "x86_64" -> "x86_64" | "unknown" -> "x86_64" (* most likely *) | arch -> arch (* Does qemu support the given sound card? *) let qemu_supports_sound_card = function | Types.AC97 | Types.ES1370 | Types.ICH6 | Types.ICH9 | Types.PCSpeaker | Types.SB16 | Types.USBAudio -> true let compare_app2_versions app1 app2 = let i = compare app1.Guestfs.app2_epoch app2.Guestfs.app2_epoch in if i <> 0 then i else ( let i = compare_version app1.Guestfs.app2_version app2.Guestfs.app2_version in if i <> 0 then i else compare_version app1.Guestfs.app2_release app2.Guestfs.app2_release ) let du filename = (* There's no OCaml binding for st_blocks, so run coreutils 'du'. *) let cmd = sprintf "du --block-size=1 %s | awk '{print $1}'" (quote filename) in (* XXX This can call error and so exit, but it would be preferable * to raise an exception here. *) let lines = external_command cmd in match lines with | line::_ -> Int64.of_string line | [] -> invalid_arg filename let qemu_img_supports_offset_and_size () = (* We actually attempt to create a qcow2 file with a raw backing * file that has an offset and size. *) let tmp = Filename.temp_file "v2vqemuimgtst" ".img" in On_exit.unlink tmp; Unix.truncate tmp 1024; let json = [ "file", JSON.Dict [ "driver", JSON.String "raw"; "offset", JSON.Int 512_L; "size", JSON.Int 512_L; "file", JSON.Dict [ "filename", JSON.String tmp ] ] ] in let cmd = sprintf "qemu-img info json:%s >/dev/null%s" (quote (JSON.string_of_doc ~fmt:JSON.Compact json)) (if verbose () then "" else " 2>&1") in debug "%s" cmd; let r = 0 = Sys.command cmd in debug "qemu-img supports \"offset\" and \"size\" in json URLs: %b" r; r let backend_is_libvirt () = let backend = (open_guestfs ())#get_backend () in let backend = fst (String.split ":" backend) in backend = "libvirt" let rec chown_for_libvirt_rhbz_1045069 file = let running_as_root = Unix.geteuid () = 0 in if running_as_root && backend_is_libvirt () then ( let user = Option.value ~default:"qemu" (libvirt_qemu_user ()) in let uid = if String.starts_with "+" user then int_of_string (String.sub user 1 (String.length user - 1)) else (Unix.getpwnam user).pw_uid in debug "setting owner of %s to %d:root" file uid; Unix.chown file uid 0 ) (* Get the local user that libvirt uses to run qemu when we are * running as root. This is returned as an optional string * containing the username. The username might be "+NNN" * meaning a numeric UID. * https://listman.redhat.com/archives/libguestfs/2022-March/028450.html *) and libvirt_qemu_user = let user = lazy ( let conn = Libvirt.Connect.connect_readonly () in let xml = Libvirt.Connect.get_capabilities conn in let doc = Xml.parse_memory xml in let xpathctx = Xml.xpath_new_context doc in let expr = "//secmodel[./model=\"dac\"]/baselabel[@type=\"kvm\"]/text()" in let uid_gid = Xpath_helpers.xpath_string xpathctx expr in match uid_gid with | None -> None | Some uid_gid -> (* The string will be something like "+107:+107", return the * UID part. *) Some (fst (String.split ":" uid_gid)) ) in fun () -> Lazy.force user let nbdcopy_supports_blkhash = let check = lazy ( let cmd = sprintf "%s --help | grep -sq -- --blkhash" Config.nbdcopy in 0 = Sys.command cmd ) in fun () -> Lazy.force check (* Create the directory containing inX and outX sockets. *) let create_v2v_directory () = let d = Mkdtemp.temp_dir "v2v." in On_exit.rm_rf d; chown_for_libvirt_rhbz_1045069 d; d (* Wait for a file to appear until a timeout. *) let rec wait_for_file filename timeout = if Sys.file_exists filename then true else if timeout = 0 then false else ( Unix.sleep 1; wait_for_file filename (timeout-1) ) let with_nbd_connect_uri ?(meta_contexts = []) ~uri f = let nbd = NBD.create () in Fun.protect (fun () -> NBD.set_debug nbd (verbose ()); List.iter (NBD.add_meta_context nbd) meta_contexts; NBD.connect_uri nbd uri; Fun.protect (fun () -> f nbd) ~finally:(fun () -> NBD.shutdown nbd) ) ~finally:(fun () -> NBD.close nbd) let get_disk_allocated uri = let alloc_ctx = "base:allocation" in with_nbd_connect_uri ~uri ~meta_contexts:[alloc_ctx] (fun nbd -> if NBD.can_meta_context nbd alloc_ctx then ( (* Get the list of extents, using a 2GiB chunk size as hint. *) let size = NBD.get_size nbd and allocated = ref 0_L and fetch_offset = ref 0_L in while !fetch_offset < size do let remaining = size -^ !fetch_offset in let fetch_size = min 0x8000_0000_L remaining in NBD.block_status nbd fetch_size !fetch_offset (fun ctx offset entries err -> assert (ctx = alloc_ctx); for i = 0 to Array.length entries / 2 - 1 do let len = entries.(i * 2) and typ = entries.(i * 2 + 1) in assert (len > 0_L); if typ &^ 1_L = 0_L then allocated := !allocated +^ len; fetch_offset := !fetch_offset +^ len done; 0 ) done; Some !allocated ) else None ) let get_uefi_arch_suffix = function | "x86_64" -> Some "X64" | "i386" -> Some "X32" | _ -> None let name_from_disk disk = let name = Filename.basename disk in (* Remove the extension (or suffix), only if it's one usually * used for disk images. *) let suffixes = [ ".img"; ".ova"; ".qcow2"; ".raw"; ".vmdk"; ".vmx"; "-sda"; ] in let rec loop = function | suff :: xs -> if Filename.check_suffix name suff then Filename.chop_suffix name suff else loop xs | [] -> name in let name = loop suffixes in if name = "" then error (f_"invalid input filename (%s)") disk; name let sanitize_slash = String.map (fun c -> if c = '/' then '_' else c) ================================================ FILE: lib/utils.mli ================================================ (* virt-v2v * Copyright (C) 2009-2025 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) (** Utilities used in virt-v2v only. *) val large_tmpdir : string (** [VIRT_V2V_TMPDIR] or [/var/tmp]. Create all large temporary files such as overlays in this directory. Small temporary files can use the default behaviour eg. of {!Filename.temp_file} *) val string_of_process_status : Unix.process_status -> string (** Convert a process status (such as returned by {!Unix.wait}) into a printable string. *) val have_selinux : unit -> bool (** Return true if SELinux is enabled and enforcing on the host. *) val uri_quote : string -> string (** Take a string and perform %xx escaping as used in some parts of URLs. *) val fnmatch_escape : string -> string (** Escape characters like [?] and [*] which are special for fnmatch(3). *) val kvm_arch : string -> string (** Map guest architecture found by inspection to the architecture that KVM must emulate. Note for x86 we assume a 64 bit hypervisor. *) val qemu_supports_sound_card : Types.source_sound_model -> bool (** Does qemu support the given sound card? *) val compare_app2_versions : Guestfs.application2 -> Guestfs.application2 -> int (** Compare two app versions. *) val du : string -> int64 (** Return the true size of a file in bytes, including any wasted space caused by internal fragmentation (the overhead of using blocks). This can raise either [Failure] or [Invalid_argument] in case of errors. *) val qemu_img_supports_offset_and_size : unit -> bool (** Return true iff [qemu-img] supports the ["offset"] and ["size"] parameters to open a subset of a file. *) val backend_is_libvirt : unit -> bool (** Return true iff the current backend is libvirt. *) val chown_for_libvirt_rhbz_1045069 : string -> unit (** If running as root, and if the backend is libvirt, libvirt will run qemu as a non-root user. This prevents access to root-owned files and directories. To fix this, provide a function to chown things we might need to qemu:root so qemu can access them. Note that root normally ignores permissions so can still access the resource. *) val nbdcopy_supports_blkhash : unit -> bool (** Return true if [nbdcopy] supports the [--blkhash] flag. *) val create_v2v_directory : unit -> string (** Create the directory containing inX and outX sockets. *) val wait_for_file : string -> int -> bool (** [wait_for_file filename timeout] waits up to [timeout] seconds for [filename] to appear. It returns [true] if the file appeared. *) val with_nbd_connect_uri : ?meta_contexts:string list -> uri:string -> (NBD.t -> 'a) -> 'a (** [with_nbd_connect_uri uri meta_contexts f] calls function [f] with the NBD server at [uri] connected, and the metadata contexts in [meta_contexts] requested (each of which is not necessarily supported by the server though). The connection is torn down either on normal return or if the function [f] throws an exception. *) val get_disk_allocated : string -> int64 option (** Examines the disk [uri]. Return the number of bytes allocated in the disk image, according to the "base:allocation" metadata context. If the context is not supported by the NBD server behind the socket, the function returns None. For output disks this is callable only in the finalization step. *) val get_uefi_arch_suffix : string -> string option (** [get_uefi_arch_suffix arch] maps [arch] from [inspect.i_arch] representation to UEFI spec representation. If a mapping cannot be found, [None] is returned. *) val name_from_disk : string -> string (** Take a disk name and derive from it a suitable source name. Used in particular by [-i disk], [-i ova] and [-i vmx] modes. *) val sanitize_slash : string -> string (** Replace '/' with '_' in guest names for filesystem paths and libvirt domain names. *) ================================================ FILE: m4/guestfs-bash-completion.m4 ================================================ # libguestfs # Copyright (C) 2009-2025 Red Hat Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. dnl Bash completion. PKG_CHECK_MODULES([BASH_COMPLETION], [bash-completion >= 2.0], [ bash_completion=yes AC_MSG_CHECKING([for bash-completions directory]) BASH_COMPLETIONS_DIR="`pkg-config --variable=completionsdir bash-completion`" AC_MSG_RESULT([$BASH_COMPLETIONS_DIR]) AC_SUBST([BASH_COMPLETIONS_DIR]) ],[ bash_completion=no AC_MSG_WARN([bash-completion not installed]) ]) AM_CONDITIONAL([HAVE_BASH_COMPLETION],[test "x$bash_completion" = "xyes"]) ================================================ FILE: m4/guestfs-c.m4 ================================================ # libguestfs # Copyright (C) 2009-2025 Red Hat Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. dnl The C compiler environment. dnl Define the host CPU architecture (defines 'host_cpu') AC_CANONICAL_HOST dnl Check for basic C environment. AC_PROG_CC AC_PROG_INSTALL AC_PROG_CPP AC_C_PROTOTYPES test "x$U" != "x" && AC_MSG_ERROR([Compiler not ANSI compliant]) AM_PROG_CC_C_O AC_ARG_ENABLE([werror], [AS_HELP_STRING([--enable-werror], [turn on lots of GCC warnings (for developers)])], [case $enableval in yes|no) ;; *) AC_MSG_ERROR([bad value $enableval for werror option]) ;; esac gcc_warnings=$enableval], [gcc_warnings=no] ) WARN_CFLAGS="-Wall" AC_SUBST([WARN_CFLAGS]) if test "x$gcc_warnings" = "xyes"; then WERROR_CFLAGS="-Werror" fi AC_SUBST([WERROR_CFLAGS]) # Provide a global place to set CFLAGS. (Note that setting AM_CFLAGS # is no use because it doesn't override target_CFLAGS). #--- # Kill -fstrict-overflow which is a license for the C compiler to make # dubious and often unsafe optimizations, in a time-wasting attempt to # deal with CPU architectures that do not exist. CFLAGS="$CFLAGS -fno-strict-overflow -Wno-strict-overflow" dnl Check support for 64 bit file offsets. AC_SYS_LARGEFILE dnl Check sizeof long. AC_CHECK_SIZEOF([long]) dnl Check if __attribute__((cleanup(...))) works. dnl Set -Werror, otherwise gcc will only emit a warning for attributes dnl that it doesn't understand. acx_nbdkit_save_CFLAGS="${CFLAGS}" CFLAGS="${CFLAGS} -Werror" AC_MSG_CHECKING([if __attribute__((cleanup(...))) works with this compiler]) AC_COMPILE_IFELSE([ AC_LANG_SOURCE([[ #include #include void freep (void *ptr) { exit (EXIT_SUCCESS); } void test (void) { __attribute__((cleanup(freep))) char *ptr = malloc (100); } int main (int argc, char *argv[]) { test (); exit (EXIT_FAILURE); } ]]) ],[ AC_MSG_RESULT([yes]) AC_DEFINE([HAVE_ATTRIBUTE_CLEANUP],[1],[Define to 1 if '__attribute__((cleanup(...)))' works with this compiler.]) ],[ AC_MSG_ERROR( ['__attribute__((cleanup(...)))' does not work. You may not be using a sufficiently recent version of GCC or CLANG, or you may be using a C compiler which does not support this attribute, or the configure test may be wrong.])]) dnl restore CFLAGS CFLAGS="${acx_nbdkit_save_CFLAGS}" ================================================ FILE: m4/guestfs-libraries.m4 ================================================ # virt-v2v # Copyright (C) 2009-2025 Red Hat Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. dnl Any C libraries required by virt-v2v. dnl Of course we need libguestfs. dnl dnl We need libguestfs 1.59.2 for guestfs_xfs_info2. dnl We need libguestfs 1.59.7 for text: and base64: prefix in LUKS funcs. PKG_CHECK_MODULES([LIBGUESTFS], [libguestfs >= 1.59.7]) printf "libguestfs version is "; $PKG_CONFIG --modversion libguestfs dnl And libnbd. PKG_CHECK_MODULES([LIBNBD], [libnbd >= 1.14]) printf "libnbd version is "; $PKG_CONFIG --modversion libnbd dnl Test if it's GNU or XSI strerror_r. AC_FUNC_STRERROR_R dnl Define a C symbol for the host CPU architecture. AC_DEFINE_UNQUOTED([host_cpu],["$host_cpu"],[Host architecture.]) dnl Headers. AC_CHECK_HEADERS([\ byteswap.h \ errno.h \ linux/magic.h \ sys/mount.h \ sys/socket.h \ sys/statfs.h \ sys/statvfs.h \ sys/time.h \ sys/types.h \ sys/un.h \ sys/vfs.h \ sys/wait.h \ windows.h]) dnl Functions. AC_CHECK_FUNCS([\ fsync \ posix_fadvise \ statfs \ statvfs \ sync]) dnl Which header file defines major, minor, makedev. AC_HEADER_MAJOR dnl GNU gettext tools (optional). AC_CHECK_PROG([XGETTEXT],[xgettext],[xgettext],[no]) AC_CHECK_PROG([MSGCAT],[msgcat],[msgcat],[no]) AC_CHECK_PROG([MSGFMT],[msgfmt],[msgfmt],[no]) AC_CHECK_PROG([MSGMERGE],[msgmerge],[msgmerge],[no]) dnl Check they are the GNU gettext tools. AC_MSG_CHECKING([msgfmt is GNU tool]) if $MSGFMT --version >/dev/null 2>&1 && $MSGFMT --version | grep -q 'GNU gettext'; then msgfmt_is_gnu=yes else msgfmt_is_gnu=no fi AC_MSG_RESULT([$msgfmt_is_gnu]) AM_CONDITIONAL([HAVE_GNU_GETTEXT], [test "x$XGETTEXT" != "xno" && test "x$MSGCAT" != "xno" && test "x$MSGFMT" != "xno" && test "x$MSGMERGE" != "xno" && test "x$msgfmt_is_gnu" != "xno"]) dnl Check for gettext. AC_CHECK_HEADERS([libintl.h]) AC_SEARCH_LIBS([dgettext], [intl], [ if test "$ac_cv_search_dgettext" != "none required"; then LIBINTL="$ac_cv_search_dgettext" LTLIBINTL="$ac_cv_search_dgettext" fi ]) AC_SUBST([LIBINTL]) AC_SUBST([LTLIBINTL]) dnl Check for PCRE2 (required) PKG_CHECK_MODULES([PCRE2], [libpcre2-8], [], [ AC_CHECK_PROGS([PCRE2_CONFIG], [pcre2-config], [no]) AS_IF([test "x$PCRE2_CONFIG" = "xno"], [ AC_MSG_ERROR([Please install the pcre2 devel package]) ]) PCRE_CFLAGS=`$PCRE2_CONFIG --cflags` PCRE_LIBS=`$PCRE2_CONFIG --libs8` ]) dnl libvirt (required) PKG_CHECK_MODULES([LIBVIRT], [libvirt >= 0.10.2]) printf "libvirt version is "; $PKG_CONFIG --modversion libvirt libvirt_ro_uri='qemu+unix:///system?socket=/var/run/libvirt/libvirt-sock-ro' AC_SUBST([libvirt_ro_uri]) dnl libxml2 (required) PKG_CHECK_MODULES([LIBXML2], [libxml-2.0]) printf "libxml2 version is "; $PKG_CONFIG --modversion libxml-2.0 old_LIBS="$LIBS" LIBS="$LIBS $LIBXML2_LIBS" AC_CHECK_FUNCS([xmlBufferDetach]) LIBS="$old_LIBS" dnl Check for JSON-C library (required). PKG_CHECK_MODULES([JSON_C], [json-c >= 0.14]) printf "json-c version is "; $PKG_CONFIG --modversion json-c dnl Check for libosinfo (mandatory) PKG_CHECK_MODULES([LIBOSINFO], [libosinfo-1.0]) printf "libosinfo version is "; $PKG_CONFIG --modversion libosinfo-1.0 dnl glibc 2.27 removes crypt(3) and suggests using libxcrypt. PKG_CHECK_MODULES([LIBCRYPT], [libxcrypt], [ AC_SUBST([LIBCRYPT_CFLAGS]) AC_SUBST([LIBCRYPT_LIBS]) ],[ dnl Check if crypt() is provided by another library. old_LIBS="$LIBS" AC_SEARCH_LIBS([crypt],[crypt]) LIBS="$old_LIBS" if test "$ac_cv_search_crypt" = "-lcrypt" ; then LIBCRYPT_LIBS="-lcrypt" fi AC_SUBST([LIBCRYPT_LIBS]) ]) dnl Do we need to include ? old_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $LIBCRYPT_CFLAGS" AC_CHECK_HEADERS([crypt.h]) CFLAGS="$old_CFLAGS" ================================================ FILE: m4/guestfs-ocaml-gettext.m4 ================================================ # libguestfs # Copyright (C) 2009-2025 Red Hat Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. dnl Write a common gettext module used by each OCaml tool. dnl If OCaml gettext is not available then we write dummy functions. AC_DEFUN([GUESTFS_CREATE_COMMON_GETTEXT_ML],[ dnl Check for ocaml-gettext package to translate OCaml tools. AC_CHECK_OCAML_PKG(gettext) AC_MSG_NOTICE([creating $1]) rm -f $1 cat < $1 (* This file is generated automatically by ./configure. *) EOF if test "x$OCAML_PKG_gettext" != "xno"; then # ocaml-gettext available: real module. cat <>$1 module Gettext = Gettext.Program ( struct let textdomain = "$PACKAGE_NAME" let codeset = None let dir = None let dependencies = [[]] end ) (GettextStub.Native) EOF else # No gettext: module containing dummy gettext functions. cat <>$1 module Gettext = struct external s_ : string -> string = "%identity" external f_ : ('a, 'b, 'c, 'd, 'e, 'f) format6 -> ('a, 'b, 'c, 'd, 'e, 'f) format6 = "%identity" let sn_ : string -> string -> int -> string = fun s p n -> if n = 1 then s else p let fn_ : ('a, 'b, 'c, 'd, 'e, 'f) format6 -> ('a, 'b, 'c, 'd, 'e, 'f) format6 -> int -> ('a, 'b, 'c, 'd, 'e, 'f) format6 = fun s p n -> if n = 1 then s else p end EOF fi chmod -w $1 ]) ================================================ FILE: m4/guestfs-ocaml.m4 ================================================ # libguestfs # Copyright (C) 2009-2025 Red Hat Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. dnl Check for OCaml (required, for OCaml bindings and OCaml tools). dnl OCAMLC and OCAMLFIND have to be unset first, otherwise dnl AC_CHECK_TOOL (inside AC_PROG_OCAML) will not look. OCAMLC= OCAMLFIND= AC_PROG_OCAML AC_PROG_FINDLIB AS_IF([test "x$OCAMLC" = "xno"],[ AC_MSG_ERROR([OCaml compiler is required]) ]) AS_IF([test "x$OCAMLFIND" = "xno"],[ AC_MSG_ERROR([OCaml findlib is required]) ]) dnl --disable-ocaml only disables OCaml bindings and OCaml virt tools. AC_ARG_ENABLE([ocaml], AS_HELP_STRING([--disable-ocaml], [disable OCaml language bindings and tools]), [], [enable_ocaml=yes]) dnl OCaml >= 4.08 is required. ocaml_ver_str=4.08 ocaml_min_major=4 ocaml_min_minor=8 AC_MSG_CHECKING([if OCaml version >= $ocaml_ver_str]) ocaml_major="`echo $OCAMLVERSION | $AWK -F. '{print $1}'`" ocaml_minor="`echo $OCAMLVERSION | $AWK -F. '{print $2}' | sed 's/^0//'`" AS_IF([test "$ocaml_major" -ge $((ocaml_min_major+1)) || ( test "$ocaml_major" -eq $ocaml_min_major && test "$ocaml_minor" -ge $ocaml_min_minor )],[ AC_MSG_RESULT([yes ($ocaml_major, $ocaml_minor)]) ],[ AC_MSG_RESULT([no]) AC_MSG_FAILURE([OCaml compiler is not new enough. At least OCaml $ocaml_ver_str is required]) ]) AM_CONDITIONAL([HAVE_OCAML], [test "x$enable_ocaml" != "xno"]) AM_CONDITIONAL([HAVE_OCAMLOPT], [test "x$OCAMLOPT" != "xno"]) AM_CONDITIONAL([HAVE_OCAMLDOC], [test "x$OCAMLDOC" != "xno"]) dnl Check if ocamlc/ocamlopt -runtime-variant _pic works. It was dnl added in OCaml >= 4.03, but in theory might be disabled by dnl downstream distros. OCAML_RUNTIME_VARIANT_PIC_OPTION="" if test "x$OCAMLC" != "xno"; then AC_MSG_CHECKING([if OCaml ‘-runtime-variant _pic’ works]) rm -f conftest.ml contest echo 'print_endline "hello world"' > conftest.ml if $OCAMLOPT conftest.ml -runtime-variant _pic -o conftest >&5 2>&5 ; then AC_MSG_RESULT([yes]) OCAML_RUNTIME_VARIANT_PIC_OPTION="-runtime-variant _pic" else AC_MSG_RESULT([no]) fi rm -f conftest.ml contest fi AC_SUBST([OCAML_RUNTIME_VARIANT_PIC_OPTION]) dnl ocaml guestfs module is required. OCAML_PKG_guestfs=no AC_CHECK_OCAML_PKG(guestfs) if test "x$OCAML_PKG_guestfs" = "xno"; then AC_MSG_ERROR([the OCaml module 'guestfs' is required]) fi dnl ocaml libvirt module is required. OCAML_PKG_libvirt=no AC_CHECK_OCAML_PKG(libvirt) if test "x$OCAML_PKG_libvirt" = "xno"; then AC_MSG_ERROR([the OCaml module 'libvirt' is required]) fi dnl ocaml nbd (libnbd) module is required. OCAML_PKG_nbd=no AC_CHECK_OCAML_PKG(nbd) if test "x$OCAML_PKG_nbd" = "xno"; then AC_MSG_ERROR([the OCaml module 'nbd' (from libnbd) is required]) fi OCAML_PKG_gettext=no AS_IF([test "x$OCAMLC" != "xno"],[ # Create common/mlgettext/common_gettext.ml gettext functions or stubs. # If we're building in a different directory, then common/mlgettext # might not exist yet, so create it: mkdir -p common/mlgettext GUESTFS_CREATE_COMMON_GETTEXT_ML([common/mlgettext/common_gettext.ml]) ]) AM_CONDITIONAL([HAVE_OCAML_PKG_GETTEXT], [test "x$OCAML_PKG_gettext" != "xno"]) AC_CHECK_PROG([OCAML_GETTEXT],[ocaml-gettext],[ocaml-gettext],[no]) AM_CONDITIONAL([HAVE_OCAML_GETTEXT], [test "x$OCAML_PKG_gettext" != "xno" && test "x$OCAML_GETTEXT" != "xno"]) dnl Flags we want to pass to every OCaml compiler call. OCAML_WARN_ERROR="-warn-error +C+D+E+F+L+M+P+S+U+V+Y+Z+X+52-3-6 -w -6" AC_SUBST([OCAML_WARN_ERROR]) OCAML_FLAGS="-g -annot $safe_string_option" AC_SUBST([OCAML_FLAGS]) ================================================ FILE: m4/guestfs-perl.m4 ================================================ # libguestfs # Copyright (C) 2009-2025 Red Hat Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. dnl Check for perl (required). AC_CHECK_PROG([PERL],[perl],[perl],[no]) test "x$PERL" = "xno" && AC_MSG_ERROR([perl must be installed]) dnl Check for Pod::Man, Pod::Simple (for man pages). AC_MSG_CHECKING([for Pod::Man]) if ! $PERL -MPod::Man -e1 >&AS_MESSAGE_LOG_FD 2>&1; then AC_MSG_ERROR([perl Pod::Man must be installed]) else AC_MSG_RESULT([yes]) fi AC_MSG_CHECKING([for Pod::Simple]) if ! $PERL -MPod::Simple -e1 >&AS_MESSAGE_LOG_FD 2>&1; then AC_MSG_ERROR([perl Pod::Simple must be installed]) else AC_MSG_RESULT([yes]) fi dnl Define the path to the podwrapper program. PODWRAPPER="\$(guestfs_am_v_podwrapper)$PERL $(pwd)/podwrapper.pl" AC_SUBST([PODWRAPPER]) dnl Check for Perl modules needed by Perl documentation and tests. dnl XXX These should probably be required. AS_IF([test "x$PERL" != "xno"],[ missing_perl_modules=no for pm in Pod::Usage Getopt::Long IPC::Run3 Sys::Guestfs ; do AC_MSG_CHECKING([for $pm]) if ! $PERL -M$pm -e1 >&AS_MESSAGE_LOG_FD 2>&1; then AC_MSG_RESULT([no]) missing_perl_modules=yes else AC_MSG_RESULT([yes]) fi done if test "x$missing_perl_modules" = "xyes"; then AC_MSG_WARN([some Perl modules required to compile the documentation and tests are missing]) fi ]) AM_CONDITIONAL([HAVE_TOOLS], [test "x$PERL" != "xno" && test "x$missing_perl_modules" != "xyes"]) ================================================ FILE: m4/guestfs-progs.m4 ================================================ # libguestfs # Copyright (C) 2009-2025 Red Hat Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. # Check for external programs required to either build or run # libguestfs. # # AC_CHECK_PROG(S) or AC_PATH_PROG(S)? # # Use AC_CHECK_PROG(S) for programs which are only used during build. # # Use AC_PATH_PROG(S) for program names which are compiled into the # binary and used at run time. The reason is so that we know which # programs the binary actually uses. # Define $(SED). m4_ifdef([AC_PROG_SED],[ AC_PROG_SED ],[ dnl ... else hope for the best AC_SUBST([SED], "sed") ]) # Define $(AWK). AC_PROG_AWK AC_PROG_LN_S dnl Check for xorriso/genisoimage/mkisofs. AC_PATH_PROGS([MKISOFS],[xorrisofs genisoimage mkisofs],[no], [$PATH$PATH_SEPARATOR/usr/sbin$PATH_SEPARATOR/sbin]) test "x$MKISOFS" = "xno" && AC_MSG_ERROR([xorriso or genisoimage or mkisofs must be installed]) dnl po4a for translating man pages and POD files (optional). AC_CHECK_PROG([PO4A_GETTEXTIZE],[po4a-gettextize],[po4a-gettextize],[no]) AC_CHECK_PROG([PO4A_TRANSLATE],[po4a-translate],[po4a-translate],[no]) AC_CHECK_PROG([PO4A_UPDATEPO],[po4a-updatepo],[po4a-updatepo],[no]) AM_CONDITIONAL([HAVE_PO4A], [test "x$PO4A_GETTEXTIZE" != "xno" && test "x$PO4A_TRANSLATE" != "xno" && test "x$PO4A_UPDATEPO" != "xno"]) dnl Check for sqlite3 (optional). AC_CHECK_PROG([SQLITE3],[sqlite3],[sqlite3],[no]) dnl zip/unzip, used by virt-v2v AC_PATH_PROGS([ZIP],[zip],[no]) AC_DEFINE_UNQUOTED([ZIP],["$ZIP"],[Name of zip program.]) AM_CONDITIONAL([HAVE_ZIP],[test "x$ZIP" != "xno"]) AC_PATH_PROGS([UNZIP],[unzip],[no]) AC_DEFINE_UNQUOTED([UNZIP],["$UNZIP"],[Name of unzip program.]) dnl Detect nbdkit also under /usr/sbin or /sbin in case they're not on $PATH AC_PATH_PROG([NBDKIT], [nbdkit], [no], [$PATH$PATH_SEPARATOR/usr/sbin$PATH_SEPARATOR/sbin]) AS_IF([test "x$NBDKIT" = "xno"], [AC_MSG_WARN([nbdkit binary (from nbdkit) not found, some runtime functionality will be missing])]) dnl nbdinfo, nbdcopy, required by virt-v2v AC_CHECK_PROG([NBDINFO], [nbdinfo], [nbdinfo], [no]) AC_CHECK_PROG([NBDCOPY], [nbdcopy], [nbdcopy], [no]) AS_IF([test "x$NBDINFO" = "xno" || test "x$NBDCOPY" = "xno"], [AC_MSG_ERROR([nbdinfo and nbdcopy (from libnbd) must be installed])]) dnl Check for valgrind AC_CHECK_PROG([VALGRIND],[valgrind],[valgrind],[no]) AS_IF([test "x$VALGRIND" != "xno"],[ # Substitute the whole valgrind command. # --read-inline-info=no is a temporary workaround for RHBZ#1662656. 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' ],[ # No valgrind, so substitute VG with something that will break. VG=VALGRIND_IS_NOT_INSTALLED ]) AC_SUBST([VG]) AM_SUBST_NOTMAKE([VG]) dnl pycodestyle, used to check the Python scripts. AC_CHECK_PROGS([PYCODESTYLE],[pycodestyle],[no]) ================================================ FILE: m4/ocaml.m4 ================================================ dnl autoconf macros for OCaml dnl dnl Copyright © 2009 Richard W.M. Jones dnl Copyright © 2009 Stefano Zacchiroli dnl Copyright © 2000-2005 Olivier Andrieu dnl Copyright © 2000-2005 Jean-Christophe Filliâtre dnl Copyright © 2000-2005 Georges Mariano dnl dnl For documentation, please read the ocaml.m4 man page. AC_DEFUN([AC_PROG_OCAML], [dnl # checking for ocamlc AC_CHECK_TOOL([OCAMLC],[ocamlc],[no]) if test "$OCAMLC" != "no"; then OCAMLVERSION=`$OCAMLC -v | sed -n -e 's|.*version* *\(.*\)$|\1|p'` AC_MSG_RESULT([OCaml version is $OCAMLVERSION]) OCAMLLIB=`$OCAMLC -where 2>/dev/null || $OCAMLC -v|tail -1|cut -d ' ' -f 4` AC_MSG_RESULT([OCaml library path is $OCAMLLIB]) AC_SUBST([OCAMLVERSION]) AC_SUBST([OCAMLLIB]) # checking for ocamlopt AC_CHECK_TOOL([OCAMLOPT],[ocamlopt],[no]) OCAMLBEST=byte if test "$OCAMLOPT" = "no"; then AC_MSG_WARN([Cannot find ocamlopt; bytecode compilation only.]) else TMPVERSION=`$OCAMLOPT -v | sed -n -e 's|.*version* *\(.*\)$|\1|p' ` if test "$TMPVERSION" != "$OCAMLVERSION" ; then AC_MSG_RESULT([versions differs from ocamlc; ocamlopt discarded.]) OCAMLOPT=no else OCAMLBEST=opt fi fi AC_SUBST([OCAMLBEST]) # checking for ocamlc.opt AC_CHECK_TOOL([OCAMLCDOTOPT],[ocamlc.opt],[no]) if test "$OCAMLCDOTOPT" != "no"; then TMPVERSION=`$OCAMLCDOTOPT -v | sed -n -e 's|.*version* *\(.*\)$|\1|p' ` if test "$TMPVERSION" != "$OCAMLVERSION" ; then AC_MSG_RESULT([versions differs from ocamlc; ocamlc.opt discarded.]) else OCAMLC=$OCAMLCDOTOPT fi fi # checking for ocamlopt.opt if test "$OCAMLOPT" != "no" ; then AC_CHECK_TOOL([OCAMLOPTDOTOPT],[ocamlopt.opt],[no]) if test "$OCAMLOPTDOTOPT" != "no"; then TMPVERSION=`$OCAMLOPTDOTOPT -v | sed -n -e 's|.*version* *\(.*\)$|\1|p' ` if test "$TMPVERSION" != "$OCAMLVERSION" ; then AC_MSG_RESULT([version differs from ocamlc; ocamlopt.opt discarded.]) else OCAMLOPT=$OCAMLOPTDOTOPT fi fi fi AC_SUBST([OCAMLOPT]) fi AC_SUBST([OCAMLC]) # checking for ocamldep AC_CHECK_TOOL([OCAMLDEP],[ocamldep],[no]) # checking for ocamlmktop AC_CHECK_TOOL([OCAMLMKTOP],[ocamlmktop],[no]) # checking for ocamlmklib AC_CHECK_TOOL([OCAMLMKLIB],[ocamlmklib],[no]) # checking for ocamldoc AC_CHECK_TOOL([OCAMLDOC],[ocamldoc],[no]) # checking for ocamlbuild AC_CHECK_TOOL([OCAMLBUILD],[ocamlbuild],[no]) ]) AC_DEFUN([AC_PROG_OCAMLLEX], [dnl # checking for ocamllex AC_CHECK_TOOL([OCAMLLEX],[ocamllex],[no]) if test "$OCAMLLEX" != "no"; then AC_CHECK_TOOL([OCAMLLEXDOTOPT],[ocamllex.opt],[no]) if test "$OCAMLLEXDOTOPT" != "no"; then OCAMLLEX=$OCAMLLEXDOTOPT fi fi AC_SUBST([OCAMLLEX]) ]) AC_DEFUN([AC_PROG_OCAMLYACC], [dnl AC_CHECK_TOOL([OCAMLYACC],[ocamlyacc],[no]) AC_SUBST([OCAMLYACC]) ]) AC_DEFUN([AC_PROG_CAMLP4], [dnl AC_REQUIRE([AC_PROG_OCAML])dnl # checking for camlp4 AC_CHECK_TOOL([CAMLP4],[camlp4],[no]) if test "$CAMLP4" != "no"; then TMPVERSION=`$CAMLP4 -v 2>&1| sed -n -e 's|.*version *\(.*\)$|\1|p'` if test "$TMPVERSION" != "$OCAMLVERSION" ; then AC_MSG_RESULT([versions differs from ocamlc]) CAMLP4=no fi fi AC_SUBST([CAMLP4]) # checking for companion tools AC_CHECK_TOOL([CAMLP4BOOT],[camlp4boot],[no]) AC_CHECK_TOOL([CAMLP4O],[camlp4o],[no]) AC_CHECK_TOOL([CAMLP4OF],[camlp4of],[no]) AC_CHECK_TOOL([CAMLP4OOF],[camlp4oof],[no]) AC_CHECK_TOOL([CAMLP4ORF],[camlp4orf],[no]) AC_CHECK_TOOL([CAMLP4PROF],[camlp4prof],[no]) AC_CHECK_TOOL([CAMLP4R],[camlp4r],[no]) AC_CHECK_TOOL([CAMLP4RF],[camlp4rf],[no]) AC_SUBST([CAMLP4BOOT]) AC_SUBST([CAMLP4O]) AC_SUBST([CAMLP4OF]) AC_SUBST([CAMLP4OOF]) AC_SUBST([CAMLP4ORF]) AC_SUBST([CAMLP4PROF]) AC_SUBST([CAMLP4R]) AC_SUBST([CAMLP4RF]) ]) AC_DEFUN([AC_PROG_FINDLIB], [dnl AC_REQUIRE([AC_PROG_OCAML])dnl # checking for ocamlfind AC_CHECK_TOOL([OCAMLFIND],[ocamlfind],[no]) AC_SUBST([OCAMLFIND]) ]) dnl Thanks to Jim Meyering for working this next bit out for us. dnl XXX We should define AS_TR_SH if it's not defined already dnl (eg. for old autoconf). AC_DEFUN([AC_CHECK_OCAML_PKG], [dnl AC_REQUIRE([AC_PROG_FINDLIB])dnl AC_MSG_CHECKING([for OCaml findlib package $1]) unset found unset pkg found=no for pkg in $1 $2 ; do if $OCAMLFIND query $pkg >/dev/null 2>/dev/null; then AC_MSG_RESULT([found]) AS_TR_SH([OCAML_PKG_$1])=$pkg found=yes break fi done if test "$found" = "no" ; then AC_MSG_RESULT([not found]) AS_TR_SH([OCAML_PKG_$1])=no fi AC_SUBST(AS_TR_SH([OCAML_PKG_$1])) ]) AC_DEFUN([AC_CHECK_OCAML_MODULE], [dnl AC_MSG_CHECKING([for OCaml module $2]) cat > conftest.ml <&5 2>&5 ; then found=yes break fi done if test "$found" ; then AC_MSG_RESULT([$$1]) else AC_MSG_RESULT([not found]) $1=no fi AC_SUBST([$1]) ]) dnl XXX Cross-compiling AC_DEFUN([AC_CHECK_OCAML_WORD_SIZE], [dnl AC_MSG_CHECKING([for OCaml compiler word size]) cat > conftest.ml < $output-t echo >> $output-t # Rewrite paths # 1. Normalize absolute srcdir to relative path # 2. Object files (*.cm*, *.o), in srcdir: Rewrite to builddir # 3. Generated _config.ml in srcdir: Rewrite to builddir # 4. Other object files below abs_top_srcdir: rewrite to corresponding builddir # 5. Eliminate "./" prefix @OCAMLFIND@ ocamldep -all -one-line $includes "$@" \ | sed \ -e "s,@abs_top_srcdir@/${subdir},.,g" \ -e "s,\B${srcdir_re}/\\([^ ]*[.]\\)\\(cm[^ ]*\\|o\\),\\1\\2,g" \ -e "s,\B${srcdir_re}/\\([^ /]*_config[.]ml\\),\\1,g" \ -e "s,@abs_top_srcdir@/\\([^ ]*[.]\\)\\(cm[^ ]*\\|o\\),${top_builddir}/\\1\\2,g" \ -e 's,\(^\| \)./,\1,g' \ >> $output-t chmod -w $output-t mv $output-t $output ================================================ FILE: ocaml-link.sh.in ================================================ #!/bin/bash - # Script used to link OCaml programs. # @configure_input@ # (C) Copyright 2015-2025 Red Hat Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. # See guestfs-hacking(1) section "HOW OCAML PROGRAMS ARE COMPILED AND LINKED" # Hack automake to link OCaml-based binaries properly. # There is no other way to add the -cclib parameter to the end of # the command line. # Usage: # ./ocaml-link.sh -cclib '...' -- ARGS # Pass the cclib argument separately, and the rest as separated # arguments. cclib= while true ; do case "$1" in -cclib|--cclib) cclib="$2" ; shift 2 ;; -cclib=*|--cclib=*) cclib="${1#*=}"; shift 1 ;; --) shift ; break ;; *) printf >&2 "usage: %s [-cclib lib] -- arg ...\n" "$(basename "$0")" exit 2 ;; esac done # Without this, if we use `libguestfs/run` while `ocaml-libguestfs-*` # host packages are installed, we get mismatched search path warnings # like these, and then linking fails: # # findlib: [WARNING] Package guestfs has multiple definitions in /tmp/libguestfs.git/ocaml/guestfs/META, /usr/lib64/ocaml/guestfs/META # findlib: [WARNING] Interface guestfs.cmi occurs in several directories: /usr/lib64/ocaml/guestfs, /tmp/libguestfs.git/ocaml/guestfs guestfs_path=$(@OCAMLFIND@ query guestfs 2>/dev/null) # Integration with silent rules of automake: print the full command # line option in verbose mode. if [ x"${V:-@AM_DEFAULT_VERBOSITY@}" = x1 ]; then echo "$@" \ @OCAML_RUNTIME_VARIANT_PIC_OPTION@ \ -I "$guestfs_path" \ -linkpkg \ -cclib "'@LDFLAGS@ $cclib'" fi # NB -cclib must come last. exec "$@" \ @OCAML_RUNTIME_VARIANT_PIC_OPTION@ \ -I "$guestfs_path" \ -linkpkg \ -cclib "@LDFLAGS@ $cclib" ================================================ FILE: open/Makefile.am ================================================ # libguestfs virt-v2v-open tool # Copyright (C) 2009-2025 Red Hat Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. include $(top_srcdir)/subdir-rules.mk EXTRA_DIST = \ test-docs.sh \ $(SOURCES_MLI) \ $(SOURCES_ML) \ $(SOURCES_C) \ virt-v2v-open.pod \ $(NULL) SOURCES_MLI = \ open.mli SOURCES_ML = \ open.ml SOURCES_C = \ dummy.c bin_PROGRAMS = virt-v2v-open virt_v2v_open_SOURCES = $(SOURCES_C) virt_v2v_open_CPPFLAGS = \ -DCAML_NAME_SPACE \ -I. \ -I$(top_builddir) \ -I$(shell $(OCAMLC) -where) \ -I$(top_srcdir)/lib \ $(NULL) virt_v2v_open_CFLAGS = \ -pthread \ $(WARN_CFLAGS) $(WERROR_CFLAGS) \ $(LIBGUESTFS_CFLAGS) \ $(LIBVIRT_CFLAGS) \ $(NULL) BOBJECTS = $(SOURCES_ML:.ml=.cmo) XOBJECTS = $(BOBJECTS:.cmo=.cmx) OCAMLPACKAGES = \ -package str,unix,guestfs,libvirt,nbd \ -I $(top_builddir)/common/utils/.libs \ -I $(top_builddir)/common/qemuopts/.libs \ -I $(top_builddir)/gnulib/lib/.libs \ -I $(top_builddir)/lib \ -I $(top_builddir)/input \ -I $(top_builddir)/common/mlstdutils \ -I $(top_builddir)/common/mlutils \ -I $(top_builddir)/common/mlgettext \ -I $(top_builddir)/common/mlpcre \ -I $(top_builddir)/common/mlxml \ -I $(top_builddir)/common/mltools \ -I $(top_builddir)/common/mlcustomize \ -I $(top_builddir)/common/mldrivers \ $(NULL) if HAVE_OCAML_PKG_GETTEXT OCAMLPACKAGES += -package gettext-stub endif OCAMLCLIBS = \ -pthread \ -lqemuopts \ $(LIBGUESTFS_LIBS) \ $(LIBVIRT_LIBS) \ $(LIBCRYPT_LIBS) \ $(LIBXML2_LIBS) \ $(JSON_C_LIBS) \ $(LIBOSINFO_LIBS) \ $(LIBINTL) \ $(LIBNBD_LIBS) \ -lgnu \ $(NULL) OCAMLFLAGS = $(OCAML_FLAGS) $(OCAML_WARN_ERROR) -ccopt '$(CFLAGS)' if !HAVE_OCAMLOPT OBJECTS = $(BOBJECTS) else OBJECTS = $(XOBJECTS) endif OCAMLLINKFLAGS = \ mlstdutils.$(MLARCHIVE) \ mlgettext.$(MLARCHIVE) \ mlpcre.$(MLARCHIVE) \ mlxml.$(MLARCHIVE) \ mlcutils.$(MLARCHIVE) \ mltools.$(MLARCHIVE) \ mllibvirt.$(MLARCHIVE) \ mlcustomize.$(MLARCHIVE) \ mldrivers.$(MLARCHIVE) \ mlv2vlib.$(MLARCHIVE) \ mlinput.$(MLARCHIVE) \ $(LINK_CUSTOM_OCAMLC_ONLY) \ $(NULL) virt_v2v_open_DEPENDENCIES = \ $(OBJECTS) \ $(top_builddir)/input/mlinput.$(MLARCHIVE) \ $(top_builddir)/lib/mlv2vlib.$(MLARCHIVE) \ $(top_srcdir)/ocaml-link.sh \ $(NULL) virt_v2v_open_LINK = \ $(top_srcdir)/ocaml-link.sh -cclib '$(OCAMLCLIBS)' -- \ $(OCAMLFIND) $(BEST) $(OCAMLFLAGS) $(OCAMLPACKAGES) $(OCAMLLINKFLAGS) \ $(OBJECTS) -o $@ # Data directory. virttoolsdatadir = $(datadir)/virt-tools # Dependencies. .depend: \ $(srcdir)/*.mli \ $(srcdir)/*.ml \ $(filter %.ml,$(BUILT_SOURCES)) $(top_builddir)/ocaml-dep.sh $^ -include .depend # Manual pages. man_MANS = virt-v2v-open.1 noinst_DATA = $(top_builddir)/website/virt-v2v-open.1.html virt-v2v-open.1 $(top_builddir)/website/virt-v2v-open.1.html: stamp-virt-v2v-open.pod stamp-virt-v2v-open.pod: virt-v2v-open.pod $(PODWRAPPER) \ --man virt-v2v-open.1 \ --html $(top_builddir)/website/virt-v2v-open.1.html \ --path $(top_srcdir)/common/options \ --license GPLv2+ \ --warning safe \ $< $(AM_V_at)touch $@ TESTS_ENVIRONMENT = $(top_builddir)/run --test TESTS = test-docs.sh ================================================ FILE: open/dummy.c ================================================ /* Dummy source, to be used for OCaml-based tools with no C sources. */ enum { foo = 1 }; ================================================ FILE: open/open.ml ================================================ (* virt-v2v-open * Copyright (C) 2009-2025 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) open Printf open Unix open Std_utils open Tools_utils open Unix_utils open Common_gettext.Gettext open Getopt.OptionName open Types open Utils let template_rex = PCRE.compile "@@" module G = Guestfs let rec main () = let set_string_option_once optname optref arg = match !optref with | Some _ -> error (f_"%s option used more than once on the command line") optname | None -> optref := Some arg in let input_conn = ref None in let input_format = ref None in let input_password = ref None in let input_transport = ref None in let input_options = ref [] in let io_query = ref false in let set_input_option_compat k v = List.push_back input_options (k, v) in let set_input_option option = if option = "?" then io_query := true else ( let k, v = String.split "=" option in set_input_option_compat k v ) in let input_modes = Select_input.input_modes |> List.map Select_input.string_of_input_mode |> String.concat "|" in let input_mode = ref None in let set_input_mode mode = if !input_mode <> None then error (f_"%s option used more than once on the command line") "-i"; input_mode := Some (Select_input.input_mode_of_string mode) in let command_template = ref None in let argspec = [ [ S 'i' ], Getopt.String (input_modes, set_input_mode), s_"Set input mode (default: libvirt)"; [ M"ic" ], Getopt.String ("uri", set_string_option_once "-ic" input_conn), s_"Libvirt URI"; [ M"if" ], Getopt.String ("format", set_string_option_once "-if" input_format), s_"Input format"; [ M"io" ], Getopt.String ("option[=value]", set_input_option), s_"Set option for input mode"; [ M"ip" ], Getopt.String ("filename", set_string_option_once "-ip" input_password), s_"Use password from file to connect to input hypervisor"; [ M"it" ], Getopt.String ("transport", set_string_option_once "-it" input_transport), s_"Input transport"; [ L"run" ], Getopt.String ("COMMAND", set_string_option_once "--run" command_template), s_"External command to run"; ] in let args = ref [] in let anon_fun s = List.push_front s args in let usage_msg = sprintf (f_"\ %s: open the virt-v2v input and run a program on it virt-v2v-open -i disk disk.img --run 'virt-inspector --format=raw @@' A short summary of the options is given below. For detailed help please read the man page virt-v2v-open(1). ") prog in let opthandle = create_standard_options argspec ~anon_fun ~key_opts:false ~machine_readable:true usage_msg in Getopt.parse opthandle.getopt; (* Print the version, easier than asking users to tell us. *) debug "info: %s: %s %s (%s)" prog Config.package_name Config.package_version_full Config.host_cpu; (* Print the libvirt version if debugging. *) if verbose () then ( let major, minor, release = Libvirt_utils.libvirt_get_version () in debug "info: libvirt version: %d.%d.%d" major minor release ); (* Create the v2v directory to control conversion. *) let v2vdir = create_v2v_directory () in (* Dereference the arguments. *) let args = List.rev !args in let input_conn = !input_conn in let input_mode = !input_mode in let input_transport = match !input_transport with | None -> None | Some "ssh" -> Some Input.SSH | Some "vddk" -> Some Input.VDDK | Some transport -> error (f_"unknown input transport ‘-it %s’") transport in let command_template = match !command_template with | None -> error (f_"you must supply the --run parameter") | Some c -> c in (* No arguments and machine-readable mode? Print out some facts * about what this binary supports. *) (match args, machine_readable () with | [], Some { pr } -> pr "virt-v2v-open\n"; pr "libguestfs-rewrite\n"; pr "colours-option\n"; pr "io\n"; Select_input.input_modes |> List.map Select_input.string_of_input_mode |> List.iter (pr "input:%s\n"); exit 0 | _, _ -> () ); (* Select the input module. *) let (module Input_module) = Select_input.select_input input_mode input_conn input_transport in let input_options = { Input.bandwidth = None; input_conn = input_conn; input_format = !input_format; input_options = !input_options; input_password = !input_password; input_transport = input_transport; (* This must always be true so that we do not modify the * source. This is set to [false] by in-place mode. *) read_only = true; } in (* If -io ? then we want to query input options supported in this mode. *) if !io_query then ( Input_module.query_input_options (); exit 0 ); (* Before starting the input module, check there is sufficient * free space in the temporary directory on the host. *) check_host_free_space (); (* Start the input module (runs an NBD server in the background). *) message (f_"Setting up the source: %s") (Input_module.to_string input_options args); let source, input_disks = Input_module.setup v2vdir input_options args in message (f_"Running external command"); (* We're not really doing a conversion here, but write the 'convert' * file around this to tune the input module correctly. *) with_open_out (v2vdir // "convert") (fun _ -> ()); (* Get the list of input sockets (NBD endpoints), formatted as * a shell-quoted list of [-a] options. *) let add_params = List.map ( fun uri -> let uri = NBD_URI.to_uri uri in sprintf "-a %s" (quote uri) ) input_disks |> String.concat " " in (* Run external program. *) debug "command template: %S" command_template; let cmd = PCRE.replace template_rex add_params command_template in let r = shell_command cmd in if r <> 0 then exit r; unlink (v2vdir // "convert"); (* Debug the v2vdir. *) if verbose () then ( let cmd = sprintf "ls -alZ %s 1>&2" (quote v2vdir) in ignore (Sys.command cmd) ); message (f_"Finishing off"); (* As the last thing, write a file indicating success before * we exit (so before we kill the helpers). The helpers may * use the presence or absence of the file to determine if * on-success or on-fail cleanup is required. *) with_open_out (v2vdir // "done") (fun _ -> ()) (* Some input modules use large_tmpdir to unpack OVAs or store qcow2 * overlays and some output modules use it to store temporary files. * In addition the 500 MB guestfs appliance may be created there. * (RHBZ#1316479, RHBZ#2051394) *) and check_host_free_space () = let free_space = StatVFS.free_space (StatVFS.statvfs large_tmpdir) in debug "check_host_free_space: large_tmpdir=%s free_space=%Ld" large_tmpdir free_space; if free_space < 1_073_741_824L then error (f_"insufficient free space in the conversion server \ temporary directory %s (%s).\n\nEither free up space \ in that directory, or set the LIBGUESTFS_CACHEDIR \ environment variable to point to another directory \ with more than 1GB of free space.\n\nSee also the \ virt-v2v(1) manual, section \ \"Minimum free space check in the host\".") large_tmpdir (human_size free_space) let () = run_main_and_handle_errors main ================================================ FILE: open/open.mli ================================================ (* virt-v2v-open * Copyright (C) 2009-2025 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) (* virt-v2v-open utility main program. Nothing is exported. *) ================================================ FILE: open/test-docs.sh ================================================ #!/bin/bash - # libguestfs # Copyright (C) 2016 Red Hat Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. source ../tests/functions.sh set -e set -x skip_if_skipped $srcdir/../podcheck.pl virt-v2v-open.pod virt-v2v-open \ --path $srcdir/../common/options \ --ignore=\ --format,\ --ic,\ --if,\ --io,\ --ip,\ --it ================================================ FILE: open/virt-v2v-open.pod ================================================ =head1 NAME virt-v2v-open - Open the virt-v2v input and run a program on it =head1 SYNOPSIS virt-v2v-open [-i* options] guest --run 'program [--options] @@' virt-v2v-open -i disk guest.img --run 'virt-inspector --format=raw @@' virt-v2v-open -i disk guest.img --run 'guestfish --ro --format=raw @@ -i' =head1 DESCRIPTION Virt-v2v-open is a companion tool for L and L which can be used before conversion to open the input side of virt-v2v and run a program. Some uses for this include running L directly on the source guest to find source operating systems (to use with the virt-v2v I<--root> option). Or running guestfish to take a look inside the source guest before conversion. You can follow that by running L to estimate how much space would be needed to convert that guest, and if conversion of the guest is possible. This manual page only documents the program options, not all of the I<-i*> options which are the same as virt-v2v. You should read L first. Notes: =over 4 =item * The source guest is always opened read-only. You will not be able to make persistent changes. =item * L can be used directly on local disk images. =back =head2 Selecting the input guest You can run virt-v2v-open with the same I<-i*> options as virt-v2v. (Don't use any I<-o*> options). This will select the guest that you want to open. =head2 Running the program On the command line, put the program that you want to run on the source guest and any other parameters that program needs into the I<--run> parameter. C<@@> in the parameter is substituted with I<-a DISK ...> for each source disk, in a way which is compatible with L and L. virt-v2v-open [-i ...] guest \ --run 'virt-inspector --format=raw @@ > output.xml' virt-v2v-open [-i ...] guest \ --run 'guestfish --ro --format=raw @@ -i' virt-v2v-open [-i ...] guest \ --run 'guestfish --ro --format=raw @@ run : list-filesystems' =head1 OPTIONS =over 4 =item B<--help> Display help. =item B<-v> =item B<--verbose> Enable verbose messages for debugging. =item B<-V> =item B<--version> Display version number and exit. =item B<-x> Enable tracing of libguestfs API calls. =item B<-i> ... =item B<-ic> ... =item B<-if> ... =item B<-io> ... =item B<-ip> ... =item B<-it> ... All of the I<-i*> options supported by virt-v2v are also supported by virt-v2v-open. =item B<--colors> =item B<--colours> =item B<--machine-readable> =item B<--machine-readable>=format =item B<-q> =item B<--quiet> =item B<--wrap> These options work in the same way as the equivalent virt-v2v options. =item B<--run> COMMAND The command that you want to run on the source guest. C<@@> in the command is substituted with a list of I<-a DISK> options that is compatible with virt-inspector and guestfish. =back =head1 FILES Files used are the same as for virt-v2v. See L. =head1 ENVIRONMENT VARIABLES Environment variables used are the same as for virt-v2v. See L. =head1 SEE ALSO L, L, L, L, L, L, L, L, L. =head1 AUTHORS Matthew Booth Cédric Bosdonnat Laszlo Ersek Tomáš Golembiovský Shahar Havivi Richard W.M. Jones Roman Kagan Mike Latimer Nir Soffer Pino Toscano Xiaodai Wang Ming Xie Tingting Zheng =head1 COPYRIGHT Copyright (C) 2009-2025 Red Hat Inc. ================================================ FILE: output/Makefile.am ================================================ # helper-v2v-output # Copyright (C) 2009-2025 Red Hat Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. include $(top_srcdir)/subdir-rules.mk BUILT_SOURCES = \ output_ovirt_upload_cancel_source.ml \ output_ovirt_upload_createvm_source.ml \ output_ovirt_upload_finalize_source.ml \ output_ovirt_upload_plugin_source.ml \ output_ovirt_upload_precheck_source.ml \ output_ovirt_upload_transfer_source.ml \ output_ovirt_upload_vmcheck_source.ml EXTRA_DIST = \ $(SOURCES_MLI) \ $(SOURCES_ML) \ $(SOURCES_C) \ $(BUILT_SOURCES) \ embed.sh \ ovirt-upload-cancel.py \ ovirt-upload-createvm.py \ ovirt-upload-finalize.py \ ovirt-upload-plugin.py \ ovirt-upload-precheck.py \ ovirt-upload-transfer.py \ ovirt-upload-vmcheck.py \ test-python-syntax.sh SOURCES_MLI = \ changeuid.mli \ create_libvirt_xml.mli \ create_kubevirt_yaml.mli \ openstack_image_properties.mli \ output.mli \ output_disk.mli \ output_glance.mli \ output_kubevirt.mli \ output_libvirt.mli \ output_null.mli \ output_openstack.mli \ output_ovirt.mli \ output_ovirt_upload.mli \ output_ovirt_upload_cancel_source.mli \ output_ovirt_upload_createvm_source.mli \ output_ovirt_upload_finalize_source.mli \ output_ovirt_upload_plugin_source.mli \ output_ovirt_upload_precheck_source.mli \ output_ovirt_upload_transfer_source.mli \ output_ovirt_upload_vmcheck_source.mli \ output_qemu.mli \ output_vdsm.mli \ python_script.mli \ qemuopts.mli \ select_output.mli SOURCES_ML = \ changeuid.ml \ python_script.ml \ create_libvirt_xml.ml \ create_kubevirt_yaml.ml \ qemuopts.ml \ openstack_image_properties.ml \ output_ovirt_upload_cancel_source.ml \ output_ovirt_upload_createvm_source.ml \ output_ovirt_upload_finalize_source.ml \ output_ovirt_upload_plugin_source.ml \ output_ovirt_upload_precheck_source.ml \ output_ovirt_upload_transfer_source.ml \ output_ovirt_upload_vmcheck_source.ml \ output.ml \ output_disk.ml \ output_glance.ml \ output_kubevirt.ml \ output_libvirt.ml \ output_null.ml \ output_openstack.ml \ output_qemu.ml \ output_ovirt.ml \ output_ovirt_upload.ml \ output_vdsm.ml \ select_output.ml SOURCES_C = \ qemuopts-c.c # These files are generated and contain *.py embedded as an OCaml string. output_ovirt_upload_cancel_source.ml: $(srcdir)/ovirt-upload-cancel.py $(srcdir)/embed.sh code $^ $@ output_ovirt_upload_createvm_source.ml: $(srcdir)/ovirt-upload-createvm.py $(srcdir)/embed.sh code $^ $@ output_ovirt_upload_finalize_source.ml: $(srcdir)/ovirt-upload-finalize.py $(srcdir)/embed.sh code $^ $@ output_ovirt_upload_plugin_source.ml: $(srcdir)/ovirt-upload-plugin.py $(srcdir)/embed.sh code $^ $@ output_ovirt_upload_precheck_source.ml: $(srcdir)/ovirt-upload-precheck.py $(srcdir)/embed.sh code $^ $@ output_ovirt_upload_transfer_source.ml: $(srcdir)/ovirt-upload-transfer.py $(srcdir)/embed.sh code $^ $@ output_ovirt_upload_vmcheck_source.ml: $(srcdir)/ovirt-upload-vmcheck.py $(srcdir)/embed.sh code $^ $@ # We pretend that we're building a C library. automake handles the # compilation of the C sources for us. At the end we take the C # objects and OCaml objects and link them into the OCaml library. # This C library is never used. noinst_LIBRARIES = libmloutput.a if !HAVE_OCAMLOPT MLOUTPUT_CMA = mloutput.cma else MLOUTPUT_CMA = mloutput.cmxa endif noinst_DATA = $(MLOUTPUT_CMA) libmloutput_a_SOURCES = $(SOURCES_C) libmloutput_a_CPPFLAGS = \ -DCAML_NAME_SPACE \ -I. \ -I$(top_builddir) \ -I$(shell $(OCAMLC) -where) \ -I$(top_srcdir)/common/qemuopts \ -I$(top_srcdir)/lib libmloutput_a_CFLAGS = \ -pthread \ -fPIC \ $(WARN_CFLAGS) $(WERROR_CFLAGS) \ $(LIBGUESTFS_CFLAGS) \ $(LIBXML2_CFLAGS) \ $(JSON_C_CFLAGS) BOBJECTS = $(SOURCES_ML:.ml=.cmo) XOBJECTS = $(BOBJECTS:.cmo=.cmx) OCAMLPACKAGES = \ -package str,unix,guestfs,libvirt,nbd \ -I $(top_builddir)/common/utils/.libs \ -I $(top_builddir)/common/qemuopts/.libs \ -I $(top_builddir)/gnulib/lib/.libs \ -I $(top_builddir)/lib \ -I $(top_builddir)/common/mlstdutils \ -I $(top_builddir)/common/mlutils \ -I $(top_builddir)/common/mlgettext \ -I $(top_builddir)/common/mlpcre \ -I $(top_builddir)/common/mltools \ -I $(top_builddir)/common/mlxml if HAVE_OCAML_PKG_GETTEXT OCAMLPACKAGES += -package gettext-stub endif OCAMLCLIBS = \ -pthread \ -lqemuopts \ $(LIBGUESTFS_LIBS) \ $(LIBXML2_LIBS) \ $(JSON_C_LIBS) \ $(LIBNBD_LIBS) \ -lgnu OCAMLFLAGS = $(OCAML_FLAGS) $(OCAML_WARN_ERROR) -ccopt '$(CFLAGS)' if !HAVE_OCAMLOPT OBJECTS = $(BOBJECTS) else OBJECTS = $(XOBJECTS) endif OCAMLLINKFLAGS = \ mlstdutils.$(MLARCHIVE) \ mlcutils.$(MLARCHIVE) \ mlgettext.$(MLARCHIVE) \ mlpcre.$(MLARCHIVE) \ mlxml.$(MLARCHIVE) \ mltools.$(MLARCHIVE) \ mllibvirt.$(MLARCHIVE) \ mlv2vlib.$(MLARCHIVE) \ $(LINK_CUSTOM_OCAMLC_ONLY) libmloutput_a_DEPENDENCIES = \ $(OBJECTS) $(MLOUTPUT_CMA): $(OBJECTS) libmloutput.a $(AM_V_GEN) $(OCAMLFIND) mklib $(OCAMLPACKAGES) \ $(OBJECTS) $(libmloutput_a_OBJECTS) -o mloutput # Unit tests. TESTS_ENVIRONMENT = $(top_builddir)/run --test TESTS = test-python-syntax.sh # Dependencies. .depend: \ $(srcdir)/*.mli \ $(srcdir)/*.ml $(top_builddir)/ocaml-dep.sh $^ -include .depend ================================================ FILE: output/changeuid.ml ================================================ (* virt-v2v * Copyright (C) 2009-2025 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) (* Functions for making files and directories as another user. *) open Unix open Printf open Std_utils open Tools_utils open Unix_utils open Common_gettext.Gettext open Utils type t = { uid : int option; gid : int option; } let create ?uid ?gid () = { uid = uid; gid = gid } let with_fork { uid; gid } name f = let pid = fork () in if pid = 0 then ( (* Child. *) Option.iter setgid gid; Option.iter setuid uid; (try f () with exn -> eprintf "%s: changeuid: %s: %s\n%!" prog name (Printexc.to_string exn); Exit._exit 1 ); Exit._exit 0 ); (* Parent. *) let _, status = waitpid [] pid in match status with | WEXITED 0 -> () | WEXITED i -> error (f_"subprocess exited with non-zero error code %d") i | WSIGNALED i | WSTOPPED i -> error (f_"subprocess signalled or stopped by signal %d") i let mkdir t path perm = with_fork t (sprintf "mkdir: %s" path) (fun () -> mkdir path perm) let rmdir t path = with_fork t (sprintf "rmdir: %s" path) (fun () -> rmdir path) let output t path f = with_fork t path (fun () -> with_open_out path f) let make_file t path content = output t path (fun chan -> output_string chan content) let unlink t path = with_fork t (sprintf "unlink: %s" path) (fun () -> unlink path) let func t = with_fork t "func" let command t cmd = debug "changeuid: running: %s" cmd; with_fork t cmd ( fun () -> let r = Sys.command cmd in if r <> 0 then failwith "external command failed" ) ================================================ FILE: output/changeuid.mli ================================================ (* virt-v2v * Copyright (C) 2009-2025 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) (** Functions for making files and directories as another user. [-o ovirt] output mode has to write files as UID:GID 36:36, otherwise oVirt cannot read them. Because the files are located on NFS (and hence might be root-squashed) we also cannot chown the files. We cannot setuid the whole process to 36:36 because it needs to do other root things like mounting and unmounting the NFS volume. The solution to this craziness is to fork a subprocess every time we need to create a file, setuid in the subprocess, and write the file. The subprocess then exits, leaving the main process still running as root. This mini-library encapsulates this tomfoolery into something that is slightly more sane to use. NB. We are {b not} dropping permissions for security reasons. This file has nothing to do with security. *) type t (** Abstract handle. *) val create : ?uid:int -> ?gid:int -> unit -> t (** Create handle. The optional [?uid] and [?gid] parameters are the user/group to run as. If omitted, then we don't change user and/or group (but we still do the forking anyway). *) val mkdir : t -> string -> int -> unit (** [mkdir t path perm] creates the directory [path] with mode [perm]. *) val rmdir : t -> string -> unit (** [rmdir t path] removes the directory [path]. *) val make_file : t -> string -> string -> unit (** [make_file t path content] creates the file [path] with content [content]. The current umask controls file permissions. *) val output : t -> string -> (out_channel -> unit) -> unit (** [output t path f] creates the file [path] with content from function [f]. The current umask controls file permissions. *) val unlink : t -> string -> unit (** [unlink t path] deletes the file [path]. *) val func : t -> (unit -> unit) -> unit (** [func t f] runs the arbitrary function [f]. *) val command : t -> string -> unit (** [command t cmd] runs [cmd] as the alternate user/group after forking. *) ================================================ FILE: output/create_kubevirt_yaml.ml ================================================ (* virt-v2v * Copyright (C) 2009-2025 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) open Printf open Std_utils open Tools_utils open Common_gettext.Gettext open Types open Utils open YAML let create_kubevirt_yaml source inspect { guestcaps; target_buses; target_nics; target_firmware; target_boot_device } outdisk_name output_format output_name = (* The body of the YAML contains various sections attached to * a tree. We fill in these sections first. *) let metadata = ref [] in let devices = ref [] in let disks = ref [] in let firmware = ref [] in let resources = ref [] in let cpu = ref [] in let volumes = ref [] in (* The guest name. *) List.push_back metadata ("name", String output_name); (* Put some information into labels * here that we cannot otherwise store in the yaml. * Labels are NOT arbitrary strings, see: * https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#syntax-and-character-set *) let () = let labels = ref [] in let key n = sprintf "libguestfs.org/%s" n in List.push_back labels (key "virt-v2v-version", String Guestfs_config.package_version); Option.iter ( fun genid -> List.push_back labels (key "genid", String genid) ) source.s_genid; List.push_back labels (key "osinfo", String inspect.i_osinfo); (match source.s_hypervisor with | UnknownHV -> () | hv -> let hv = string_of_source_hypervisor hv in List.push_back labels (key "source", String hv) ); List.push_back metadata ("labels", Assoc !labels) in (* The target firmware. *) let bootloader = match target_firmware with | TargetBIOS -> "bios", Assoc [] | TargetUEFI -> "efi", Assoc ["persistent", Bool true] in List.push_back firmware ("bootloader", Assoc [bootloader]); (* Clock, and eventually utc vs localtime. We could include * this for Linux, but for now only Windows really needs it. *) if inspect.i_type = "windows" then ( List.push_back resources ( "clock", Assoc [ "timer", Assoc [ "hpet", Assoc [ "present", Bool false ]; "hyperv", Assoc []; "pit", Assoc [ "tickPolicy", String "delay" ]; "rtc", Assoc [ "tickPolicy", String "catchup" ]; ]; (* XXX Note that we may need to set "localtime" here * depending on guestcaps.gcaps_rtc_utc. However that * requires the following PR to be merged in Kubevirt: * https://github.com/kubevirt/kubevirt/pull/9587 *) "utc", Assoc [] ] ) ); (* XXX genid *) (* Memory. *) let memory_str = sprintf "%LdMi" (source.s_memory /^ 1024_L /^ 1024_L) in List.push_back resources ("requests", Assoc ["memory", String memory_str]); (* Machine features. *) let features = List.map (fun name -> name, Assoc []) source.s_features in List.push_back resources ("features", Assoc features); (* # vCPUs. XXX vendor, model, topology *) (match source.s_cpu_model with | None -> () | Some model -> List.push_back cpu ("model", String model) ); (match source.s_cpu_topology with | None -> List.push_back cpu ("cores", Int source.s_vcpu); | Some { s_cpu_sockets; s_cpu_cores; s_cpu_threads } -> List.push_back_list cpu [ "sockets", Int s_cpu_sockets; "cores", Int s_cpu_cores; "thread", Int s_cpu_threads ] ); (* Display. * * Kubevirt has only "AutoattachGraphicsDevice" under devices, and * it is very limited in how it behaves. However it is the default * so we don't need to do anything special. * See also: * https://github.com/kubevirt/kubevirt/blob/cecea2696cdc63154e3540252ef44161378bee2e/pkg/virt-launcher/virtwrap/converter/converter.go#L1915-L1977 *) (* Add a sound device. Kubevirt only supports ich9 or ac97. *) (match source.s_sound with | Some { s_sound_model = (AC97|ICH9) as model } -> let model = match model with AC97 -> "ac97" | ICH9 -> "ich9" | _ -> assert false in List.push_back devices ("sound", Assoc [ "name", String "sound"; "model", String model ]) | _ -> () ); (* Add an RNG if the guest has virtio_rng. *) if guestcaps.gcaps_virtio_rng then List.push_back devices ("rng", Assoc []); (* Use virtio transitional for ancient guests. *) if not guestcaps.gcaps_virtio_1_0 then List.push_back devices ("useVirtioTransitional", Bool true); (* XXX guestcaps: balloon, vsock * Kubevirt has "autoattachMemBalloon", but it's the default. * Kubevirt has "autoattachVSOCK". It defaults to false, but * it might be better to opt in rather than adding this just * because the guest has a driver. *) (* We're using local ("host") disks here which is not realistic. *) Array.iter ( function | BusSlotEmpty -> (* XXX How to place devices on the bus? *) () | BusSlotDisk d -> let disk_id = sprintf "disk-%d" d.s_disk_id in let boot_order = match target_boot_device with | None -> d.s_disk_id + 1 | Some disk_index when disk_index = d.s_disk_id -> 1 | Some _ -> d.s_disk_id + 2 in let disk = Assoc [ "disk", Assoc ["bus", String "virtio"]; "bootOrder", Int boot_order; "name", String disk_id ] in List.push_back disks disk; let vol = Assoc [ "hostDisk", Assoc [ "path", String (outdisk_name d.s_disk_id); "type", String "Disk"; ]; "name", String disk_id ] in List.push_back volumes vol | BusSlotRemovable _ -> (* XXX removables *) () ) target_buses.target_virtio_blk_bus; (* XXX ide, scsi, floppy *) (* Interfaces and networks. *) let interfaces = List.map ( fun { s_mac = mac; s_nic_model = model; s_vnet_type = vnet_type; s_vnet = vnet } -> let nic = ref [] in List.push_back nic ("name", String ("net_" ^ vnet)); (match vnet_type with | Bridge -> List.push_back nic ("bridge", Assoc []) | Network -> List.push_back nic ("masquerade", Assoc []) ); (match mac with | Some mac -> List.push_back nic ("macAddress", String mac) | None -> () ); (match model with | Some Source_virtio_net -> List.push_back nic ("model", String "virtio") | Some Source_e1000 -> List.push_back nic ("model", String "e1000") | Some Source_rtl8139 -> List.push_back nic ("model", String "rtl8139") | Some Source_other_nic other -> List.push_back nic ("model", String other) | None -> () ); Assoc !nic ) target_nics in let networks = List.map ( fun { s_vnet_type = vnet_type; s_vnet = vnet } -> Assoc [ "networkName", String vnet; "name", String ("net_" ^ vnet) ] ) target_nics in (* Create the final document. *) if !disks <> [] then List.push_back devices ("disks", List !disks); if interfaces <> [] then List.push_back devices ("interfaces", List interfaces); let domain = ref [] in List.push_back domain ("firmware", Assoc !firmware); List.push_back domain ("resources", Assoc !resources); List.push_back domain ("cpu", Assoc !cpu); if !devices <> [] then List.push_back domain ("devices", Assoc !devices); let spec = ref [] in List.push_back spec ("domain", Assoc !domain); if !volumes <> [] then List.push_back spec ("volumes", List !volumes); if networks <> [] then List.push_back spec ("networks", List networks); List.push_back spec ("terminationGracePeriodSeconds", Int 0); let body = [ "#", String generated_by; "apiVersion", String "kubevirt.io/v1"; "kind", String "VirtualMachine"; "metadata", Assoc !metadata; "spec", Assoc ["template", Assoc ["spec", Assoc !spec]]; ] in (* Return the YAML document. *) Doc (Assoc body) ================================================ FILE: output/create_kubevirt_yaml.mli ================================================ (* virt-v2v * Copyright (C) 2009-2025 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) (** Create kubevirt YAML for [-o kubevirt] mode. *) val create_kubevirt_yaml : Types.source -> Types.inspect -> Types.target_meta -> (int -> string) -> string -> string -> YAML.doc (** [create_kubevirt_yaml source inspect target_meta target_features outdisk_map output_format output_name] creates the Kubevirt machine description YAML document. *) ================================================ FILE: output/create_libvirt_xml.ml ================================================ (* virt-v2v * Copyright (C) 2009-2025 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) open Printf open Std_utils open C_utils open Tools_utils open Common_gettext.Gettext open Types open Utils open DOM let string_set_of_list = List.fold_left (fun set x -> StringSet.add x set) StringSet.empty let get_osinfo_id inspect = match Libosinfo_utils.get_os_by_short_id inspect.i_osinfo with | Some os -> Some(os#get_id ()) | None -> warning (f_"get_osinfo_id: unknown guest operating system: %s") inspect.i_osinfo; None let create_libvirt_xml ?pool source inspect { guestcaps; target_buses; target_nics; target_firmware; target_boot_device } target_features domcaps_features outdisk_name output_format output_name = debug "info: domcaps: %s" (string_of_domcaps domcaps_features); (* The main body of the libvirt XML document. *) let body = ref [] in List.push_back_list body [ Comment generated_by; e "name" [] [PCData (Utils.sanitize_slash output_name)]; ]; (match source.s_genid with | None -> () | Some genid -> List.push_back body (e "genid" [] [PCData genid]) ); (match get_osinfo_id inspect with | None -> () | Some osinfo_id -> List.push_back_list body [ e "metadata" [] [ e "libosinfo:libosinfo" ["xmlns:libosinfo", "http://libosinfo.org/xmlns/libvirt/domain/1.0"] [ e "libosinfo:os" ["id", osinfo_id] []; ]; ]; ]; ); let memory_k = source.s_memory /^ 1024L in List.push_back_list body [ e "memory" ["unit", "KiB"] [PCData (Int64.to_string memory_k)]; e "currentMemory" ["unit", "KiB"] [PCData (Int64.to_string memory_k)]; e "vcpu" [] [PCData (string_of_int source.s_vcpu)] ]; let cpu_attrs = ref [] and cpu = ref [] in (match source.s_cpu_model with | None -> List.push_back cpu_attrs ("mode", "host-model"); | Some model -> List.push_back cpu_attrs ("match", "minimum"); if model = "qemu64" then List.push_back cpu_attrs ("check", "none"); (match source.s_cpu_vendor with | None -> () | Some vendor -> List.push_back cpu (e "vendor" [] [PCData vendor]) ); List.push_back cpu (e "model" ["fallback", "allow"] [PCData model]) ); (match source.s_cpu_topology with | None -> () | Some { s_cpu_sockets; s_cpu_cores; s_cpu_threads } -> let topology_attrs = [ "sockets", string_of_int s_cpu_sockets; "cores", string_of_int s_cpu_cores; "threads", string_of_int s_cpu_threads; ] in List.push_back cpu (e "topology" topology_attrs []) ); List.push_back_list body [ e "cpu" !cpu_attrs !cpu ]; (* We have the machine features of the guest when it was on the * source hypervisor (source.s_features). We have the set of * hypervisor features supported by the target (target_features). * Combine these into a final list of features. *) let features = string_set_of_list source.s_features in let features = StringSet.add "acpi" features in let target_features = string_set_of_list target_features in (* Make sure we don't add any features which are not supported by * the target hypervisor. *) let features = StringSet.inter(*section*) features target_features in (* But if the target supports apic or pae then we should add them * anyway (old virt-v2v did this). *) let force_features = string_set_of_list ["apic"; "pae"] in let force_features = StringSet.inter(*section*) force_features target_features in let features = StringSet.union features force_features in let features = List.sort compare (StringSet.elements features) in List.push_back_list body [ e "features" [] (List.map (fun s -> e s [] []) features); ]; (* The section subelements. *) let os_section = let os = ref [] in let firmware_attribute = match target_firmware with | TargetBIOS -> [] | TargetUEFI -> [ "firmware", "efi" ] in let () = match target_firmware with | TargetBIOS -> () | TargetUEFI -> (* The UEFI secureboot setting is sort of adjacent to if * the full secure boot feature is enabled, but it's what * we have. * https://libvirt.org/kbase/secureboot.html *) let sb = source.s_uefi_secureboot in let enrolled_keys = if sb then [e "feature" ["name", "enrolled-keys"; "enabled", "yes"] []] else [] in let firmware_features = (e "feature" ["name", "secure-boot"; "enabled", if sb then "yes" else "no"] []) :: enrolled_keys in List.push_back os (e "firmware" [] firmware_features) in let machine = match guestcaps.gcaps_machine with | I440FX -> "pc" | Q35 -> "q35" | Virt -> "virt" in List.push_back os (e "type" ["arch", guestcaps.gcaps_arch; "machine", machine] [PCData "hvm"]); e "os" firmware_attribute !os in (* The section. *) let clock_section = let offset = if guestcaps.gcaps_rtc_utc then "utc" else "localtime" in e "clock" [ "offset", offset ] [] in List.push_back_list body [ os_section; clock_section; e "on_poweroff" [] [PCData "destroy"]; e "on_reboot" [] [PCData "restart"]; e "on_crash" [] [PCData "restart"]; ]; (* The devices. *) let devices = ref [] in (* This will affect all of the virtio devices (if any). *) let virtio_transitional = guestcaps.gcaps_machine = Q35 && not guestcaps.gcaps_virtio_1_0 in let virtio_model = if virtio_transitional then "virtio-transitional" else "virtio" in (* Fixed and removable disks. *) let () = let make_disk bus_name ?(viotrans = false) drive_prefix i = function | BusSlotEmpty -> Comment (sprintf "%s slot %d is empty" bus_name i) | BusSlotDisk d -> let outdisk = outdisk_name d.s_disk_id in let boot_order = match target_boot_device with | None -> (* No known boot device, just number them sequentially. *) i+1 | Some disk_index when disk_index = i -> (* For the boot disk, use order 1. *) 1 | Some _ -> (* For the others number them sequentially starting at 2. *) i+2 in e "disk" ( [ "type", if pool = None then "file" else "volume"; "device", "disk" ] @ if (viotrans) then [ "model", "virtio-transitional" ] else [] ) [ e "driver" [ "name", "qemu"; "type", output_format; ] []; (match pool with | None -> e "source" [ "file", outdisk; ] [] | Some pool -> e "source" [ "pool", pool; "volume", Filename.basename outdisk; ] [] ); e "target" [ "dev", drive_prefix ^ drive_name i; "bus", bus_name; ] []; e "boot" [ "order", string_of_int boot_order ] []; ] | BusSlotRemovable { s_removable_type = CDROM } -> e "disk" [ "device", "cdrom"; "type", "file" ] [ e "driver" [ "name", "qemu"; "type", "raw" ] []; e "target" [ "dev", drive_prefix ^ drive_name i; "bus", bus_name ] [] ] | BusSlotRemovable { s_removable_type = Floppy } -> e "disk" [ "device", "floppy"; "type", "file" ] [ e "driver" [ "name", "qemu"; "type", "raw" ] []; e "target" [ "dev", drive_prefix ^ drive_name i; ] [] ] in List.push_back_list devices (List.mapi (make_disk "virtio" ~viotrans:virtio_transitional "vd") (Array.to_list target_buses.target_virtio_blk_bus)); let ide_disks = match guestcaps.gcaps_machine with | I440FX -> List.mapi (make_disk "ide" "hd") (Array.to_list target_buses.target_ide_bus) | Q35 -> List.mapi (make_disk "sata" "sd") (Array.to_list target_buses.target_ide_bus) | Virt -> (* mach_virt doesn't support legacy devices like IDE and SATA, * so target_ide_bus must be empty, otherwise we give a warning. *) if Array.length target_buses.target_ide_bus > 0 then warning "machine type virt does not support IDE and SATA legacy \ devices, some legacy devices of this guest have been \ dropped from the libvirt output"; [] in List.push_back_list devices ide_disks; List.push_back_list devices (List.mapi (make_disk "scsi" "sd") (Array.to_list target_buses.target_scsi_bus)); let floppy_devices = Array.to_list target_buses.target_floppy_bus in if not (List.for_all (function BusSlotEmpty -> true | _ -> false) floppy_devices) then ( if not domcaps_features.supports_floppy then warning (f_"target hypervisor does not support floppy devices, \ but floppy devices were found in the source guest") else List.push_back_list devices (List.mapi (make_disk "floppy" "fd") floppy_devices) ) in let nics = let net_model = match guestcaps.gcaps_net_bus with | Virtio_net -> virtio_model | E1000 -> "e1000" | RTL8139 -> "rtl8139" in List.map ( fun { s_mac = mac; s_vnet_type = vnet_type; s_vnet = vnet } -> let vnet_type_str = match vnet_type with | Bridge -> "bridge" | Network -> "network" in let nic = let children = [ e "source" [ vnet_type_str, vnet ] []; e "model" [ "type", net_model ] []; ] in e "interface" [ "type", vnet_type_str ] children in (match mac with | None -> () | Some mac -> append_child (e "mac" [ "address", mac ] []) nic); nic ) target_nics in List.push_back_list devices nics; (* Same as old virt-v2v, we always add a display here even if it was * missing from the old metadata. *) let video = let video_model = e "model" [ "type", "vga"; "vram", "16384" ] [] in append_attr ("heads", "1") video_model; e "video" [] [ video_model ] in List.push_back devices video; let graphics = match source.s_display with | None -> e "graphics" [ "type", "vnc"; "autoport", "yes" ] [] | Some { s_display_type = Window } -> e "graphics" [ "type", "sdl" ] [] | Some { s_display_type = VNC; s_port = Some p } -> e "graphics" [ "type", "vnc"; "port", string_of_int p ] [] | Some { s_display_type = VNC; s_port = None } -> e "graphics" [ "type", "vnc"; "autoport", "yes" ] [] | Some { s_display_type = Spice; s_port = Some p } -> e "graphics" [ "type", "spice"; "port", string_of_int p ] [] | Some { s_display_type = Spice; s_port = None } -> e "graphics" [ "type", "spice"; "autoport", "yes" ] [] in (match source.s_display with | Some { s_keymap = Some km } -> append_attr ("keymap", km) graphics | Some { s_keymap = None } | None -> ()); (match source.s_display with | Some { s_password = Some pw } -> append_attr ("passwd", pw) graphics | Some { s_password = None } | None -> ()); (match source.s_display with | Some { s_listen = listen } -> (match listen with | LNoListen -> () | LAddress a -> let sub = e "listen" [ "type", "address"; "address", a ] [] in append_child sub graphics | LNetwork n -> let sub = e "listen" [ "type", "network"; "network", n ] [] in append_child sub graphics | LSocket s -> let attrs = [ "type", "socket" ] @ match s with None -> [] | Some s -> [ "socket", s ] in let sub = e "listen" attrs [] in append_child sub graphics | LNone -> let sub = e "listen" [ "type", "none" ] [] in append_child sub graphics ) | None -> ()); List.push_back devices graphics; let sound = match source.s_sound with | None -> [] | Some { s_sound_model = model } -> if qemu_supports_sound_card model then [ e "sound" [ "model", string_of_source_sound_model model ] [] ] else [] in List.push_back_list devices sound; (* Miscellaneous KVM devices. *) if guestcaps.gcaps_virtio_rng then List.push_back devices ( e "rng" ["model", virtio_model] [ (* XXX Using /dev/urandom requires libvirt >= 1.3.4. Libvirt * was broken before that. *) e "backend" ["model", "random"] [PCData "/dev/urandom"] ] ); (* For the balloon device, libvirt adds an implicit device * unless we use model='none', hence this: *) List.push_back devices ( e "memballoon" ["model", if guestcaps.gcaps_virtio_balloon then virtio_model else "none"] [] ); if guestcaps.gcaps_isa_pvpanic then List.push_back devices ( e "panic" ["model", "isa"] [ e "address" ["type", "isa"; "iobase", "0x505"] [] ] ); if guestcaps.gcaps_virtio_socket then List.push_back devices (e "vsock" ["model", virtio_model] []); (* Standard devices added to every guest. *) List.push_back_list devices [ e "input" ["type", "tablet"; "bus", "usb"] []; e "input" ["type", "mouse"; "bus", "ps2"] []; e "console" ["type", "pty"] []; ]; (* Given that we install the QEMU Guest Agent for both Linux and Windows * guests unconditionally, create the virtio-serial device that's needed for * communication between the host and the agent. *) List.push_back_list devices [ e "controller" ["type", "virtio-serial"; "model", virtio_model] []; e "channel" ["type", "unix"] [ e "target" ["type", "virtio"; "name", "org.qemu.guest_agent.0"] [] ] ]; List.push_back_list body [ e "devices" [] !devices; ]; let doc : doc = doc "domain" [ "type", "kvm"; (* Always assume target is kvm? *) ] !body in doc ================================================ FILE: output/create_libvirt_xml.mli ================================================ (* virt-v2v * Copyright (C) 2009-2025 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) (** Create libvirt XML for [-o libvirt] and [-o local]. *) val create_libvirt_xml : ?pool:string -> Types.source -> Types.inspect -> Types.target_meta -> string list -> Types.domcaps_features -> (int -> string) -> string -> string -> DOM.doc (** [create_libvirt_xml ?pool source inspect target_meta target_features domcaps_features outdisk_map output_format output_name] creates the final libvirt XML for the output hypervisor. *) ================================================ FILE: output/embed.sh ================================================ #!/bin/bash - # Embed code or other content into an OCaml file. # Copyright (C) 2018 Red Hat Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. # Embed code or other content into an OCaml file. # # It is embedded into a string. As OCaml string literals have virtually # no restrictions on length or content we only have to escape double # quotes for backslash characters. if [ $# -ne 3 ]; then echo "embed.sh identifier input output" exit 1 fi set -e set -u ident="$1" input="$2" output="$3" rm -f "$output" "$output"-t exec >"$output"-t echo "(* Generated by embed.sh from $input *)" echo echo let "$ident" = '"' sed -e 's/\(["\]\)/\\\1/g' < "$input" echo '"' chmod -w "$output"-t mv "$output"-t "$output" ================================================ FILE: output/openstack_image_properties.ml ================================================ (* virt-v2v * Copyright (C) 2009-2025 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) (* Convert metadata to a list of OpenStack image properties. *) open Printf open Std_utils open Types let create source inspect { target_buses; guestcaps; target_firmware } = let properties = ref [] in List.push_back_list properties [ "architecture", guestcaps.gcaps_arch; "hypervisor_type", "kvm"; "vm_mode", "hvm"; "hw_disk_bus", (match guestcaps.gcaps_block_bus with | Virtio_blk -> "virtio" | Virtio_SCSI -> "scsi" | IDE -> "ide"); "hw_vif_model", (match guestcaps.gcaps_net_bus with | Virtio_net -> "virtio" | E1000 -> "e1000" | RTL8139 -> "rtl8139"); "hw_video_model", "vga"; "hw_machine_type", (match guestcaps.gcaps_machine with | I440FX -> "pc" | Q35 -> "q35" | Virt -> "virt"); "os_type", inspect.i_type; "os_distro", (match inspect.i_distro with (* https://docs.openstack.org/python-glanceclient/latest/cli/property-keys.html *) | "archlinux" -> "arch" | "sles" -> "sled" | x -> x (* everything else is the same in libguestfs and OpenStack*) ) ]; (match source.s_cpu_topology with | None -> List.push_back properties ("hw_cpu_sockets", "1"); List.push_back properties ("hw_cpu_cores", string_of_int source.s_vcpu); | Some { s_cpu_sockets = sockets; s_cpu_cores = cores; s_cpu_threads = threads } -> List.push_back properties ("hw_cpu_sockets", string_of_int sockets); List.push_back properties ("hw_cpu_cores", string_of_int cores); List.push_back properties ("hw_cpu_threads", string_of_int threads); ); (match guestcaps.gcaps_block_bus with | Virtio_SCSI -> List.push_back properties ("hw_scsi_model", "virtio-scsi") | Virtio_blk | IDE -> () ); (match inspect.i_major_version, inspect.i_minor_version with | 0, 0 -> () | x, 0 -> List.push_back properties ("os_version", string_of_int x) | x, y -> List.push_back properties ("os_version", sprintf "%d.%d" x y) ); if guestcaps.gcaps_virtio_rng then List.push_back properties ("hw_rng_model", "virtio"); (* XXX Neither memory balloon nor pvpanic are supported by * Glance at this time. *) (match target_firmware with | TargetBIOS -> () | TargetUEFI -> List.push_back properties ("hw_firmware_type", "uefi") ); !properties ================================================ FILE: output/openstack_image_properties.mli ================================================ (* virt-v2v * Copyright (C) 2009-2025 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) (** Convert metadata to a list of OpenStack image properties. These properties are suitable for use by Glance or Cinder. Note for Cinder there is a difference between properties and image properties (this module implements the latter). *) val create : Types.source -> Types.inspect -> Types.target_meta -> (string * string) list (** [create source target_buses guestcaps inspect target_firmware] translates the metadata into a list of image properties suitable for OpenStack. The returned list is a set of key=value pairs which can be passed to Glance (using [--property key=value]) or to Cinder. For Cinder note that you must not use [--property] since that sets volume properties which are different from image properties. Instead use [openstack volume set --image-property key=value ...]. *) ================================================ FILE: output/output.ml ================================================ (* virt-v2v * Copyright (C) 2009-2025 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) open Printf open Unix open C_utils open Std_utils open Tools_utils open Common_gettext.Gettext open Types type options = { output_alloc : Types.output_allocation; output_conn : string option; output_format : string; output_options : (string * string) list; output_name : string option; output_password : string option; output_storage : string option; } module type OUTPUT = sig type poptions type t val to_string : options -> string val query_output_options : unit -> unit val parse_options : options -> Types.source -> poptions val setup : string -> poptions -> Types.source -> NBD_URI.t list -> t * NBD_URI.t list val finalize : string -> poptions -> t -> NBD_URI.t list -> Types.source -> Types.inspect -> Types.target_meta -> unit val request_size : int option end let error_option_cannot_be_used_in_output_mode mode opt = error (f_"-o %s: %s option cannot be used in this output mode") mode opt let get_disk_sizes = List.map ( fun uri -> let uri = NBD_URI.to_uri uri in Utils.with_nbd_connect_uri ~uri NBD.get_size ) let error_if_disk_count_gt input_disks n = if List.length input_disks > n then error (f_"this output module doesn't support copying more than %d disks") n type on_exit_kill = Kill | KillAndWait let output_to_local_file ?name ?(changeuid = fun f -> f ()) ?(compressed = false) ?(create = true) ?(on_exit_kill = Kill) output_alloc output_format filename size socket = (* Check nbdkit is installed and has the required plugin. *) if not (Nbdkit.is_installed ()) then error (f_"nbdkit is not installed or not working. It is required \ to use ‘-o disk’."); if not (Nbdkit.probe_plugin "file") then error (f_"nbdkit-file-plugin is not installed or not working"); if compressed then ( (* Only allow compressed with -of qcow2. *) if output_format <> "qcow2" then error (f_"‘-oo compressed’ is only allowed when the output format \ is a local qcow2-format file, i.e. ‘-of qcow2’") ); if create then ( let g = open_guestfs () in let preallocation = match output_alloc with | Preallocated -> Some "full" | Sparse -> None in changeuid ( fun () -> g#disk_create ?preallocation filename output_format size ) ); let pid = match output_format with | "raw" -> let cmd = Nbdkit.create ?name "file" in Nbdkit.add_arg cmd "file" filename; Nbdkit.reduce_memory_pressure cmd; if verbose () then Nbdkit.add_filter_if_available cmd "count"; let _, pid = Nbdkit.run_unix socket cmd in pid | "qcow2" -> let cmd = if compressed then ( let qemu_quote str = String.replace str "," ",," in let image_opts = [ "driver=compress"; "file.driver=qcow2"; "file.file.driver=file"; "file.file.filename=" ^ qemu_quote filename ] in let image_opts = String.concat "," image_opts in let cmd = QemuNBD.create image_opts in QemuNBD.set_image_opts cmd true; cmd ) else (* not compressed *) ( let cmd = QemuNBD.create filename in QemuNBD.set_format cmd (Some "qcow2"); cmd ) in QemuNBD.set_snapshot cmd false; let _, pid = QemuNBD.run_unix socket cmd in pid | _ -> error (f_"output mode only supports raw or qcow2 format (format: %s)") output_format in match on_exit_kill with | Kill -> (* Kill the NBD server on exit. (For nbdkit we use --exit-with-parent * but it's not supported everywhere). *) On_exit.kill pid | KillAndWait -> On_exit.f ( fun () -> kill pid Sys.sigterm; (* Errors from the NBD server don't matter. On successful * completion we've already committed the data to disk. *) ignore (waitpid [] pid) ) let disk_name name i = let name = Utils.sanitize_slash name in sprintf "%s-sd%s" name (drive_name i) let disk_path os name i = let outdisk = sprintf "%s/%s" os (disk_name name i) in absolute_path outdisk let create_local_output_disks dir ?(compressed = false) ?(create = true) output_alloc output_format output_name output_storage input_disks = let input_sizes = get_disk_sizes input_disks in let output_disk_names = List.mapi (fun i _ -> disk_path output_storage output_name i) input_disks in (* In the special case where we will write to uncompressed raw * local files, create a single nbdkit instance using the 'dir' option * and choose which file to write using the export name. *) if not compressed && output_format = "raw" then ( (* Check nbdkit is installed and has the required plugin. *) if not (Nbdkit.is_installed ()) then error (f_"nbdkit is not installed or not working. It is required \ to use ‘-o disk’."); if not (Nbdkit.probe_plugin "file") then error (f_"nbdkit-file-plugin is not installed or not working"); (* We still have to create the output disks. *) if create then ( let g = open_guestfs () in let preallocation = match output_alloc with | Preallocated -> Some "full" | Sparse -> None in List.iter ( fun (size, filename) -> g#disk_create ?preallocation filename output_format size; (* We've had issues with there not being enough space to write * the disk image. Run df on the output filename. df follows * symlinks and reports the space on the filesystem. But don't * fail here if df cannot be run. *) if verbose () then ( let cmd = sprintf "df %s 1>&2" (quote filename) in ignore (Sys.command cmd) ) ) (List.combine input_sizes output_disk_names) ); let socket = sprintf "%s/out0" dir in On_exit.unlink socket; (* Create the single nbdkit-file-plugin instance. *) let cmd = Nbdkit.create ~name:"out" "file" in Nbdkit.add_arg cmd "dir" output_storage; Nbdkit.reduce_memory_pressure cmd; if verbose () then Nbdkit.add_filter_if_available cmd "count"; let _, pid = Nbdkit.run_unix socket cmd in On_exit.kill pid; (* Use NBD export names to select the right disk to write. *) let uris = List.mapi ( fun i _ -> let export = disk_name output_name i in NBD_URI.Unix (socket, Some export) ) input_disks in uris ) else ( (* Not the special case, use {!output_to_local_file} on each disk. *) List.mapi ( fun i (size, outdisk) -> let sockname = sprintf "out%d" i in let socket = sprintf "%s/%s" dir sockname in On_exit.unlink socket; (* Create the actual output disk. *) output_to_local_file ~name:sockname ~compressed ~create output_alloc output_format outdisk size socket; NBD_URI.Unix (socket, None) ) (List.combine input_sizes output_disk_names) ) ================================================ FILE: output/output.mli ================================================ (* virt-v2v * Copyright (C) 2009-2025 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) type options = { output_alloc : Types.output_allocation; output_conn : string option; output_format : string; output_options : (string * string) list; output_name : string option; output_password : string option; output_storage : string option; } module type OUTPUT = sig type poptions (** Opaque parsed output options. *) type t (** Opaque data that the output mode needs to pass from {!setup} to {!finalize}. *) val to_string : options -> string (** [to_string options] converts the destination to a printable string (for messages). *) val query_output_options : unit -> unit (** When the user passes [-oo ?] this is used to print help. *) val parse_options : options -> Types.source -> poptions (** [parse_options source options] should check and parse the output options passed on the command line. The return value {!poptions} stores the parsed information and is passed to both {!setup} and {!finalize} methods. *) val setup : string -> poptions -> Types.source -> NBD_URI.t list -> t * NBD_URI.t list (** [setup dir poptions source input_disks] Set up the output mode. Sets up a disk pipeline for each output disk, and returns the list of output disks. *) val finalize : string -> poptions -> t -> NBD_URI.t list -> Types.source -> Types.inspect -> Types.target_meta -> unit (** [finalize dir poptions t output_disks inspect target_meta] Finalizes the conversion and writes metadata. *) val request_size : int option (** Returns an optional {i hint} about the NBD request size that optimizes performance. Note that the copy program may ignore this. Use NBD block size options for enforcible limits. *) end (** Helper functions for output modes. *) val error_option_cannot_be_used_in_output_mode : string -> string -> unit (** [error_option_cannot_be_used_in_output_mode mode option] prints error message that option cannot be used in this output mode. *) val get_disk_sizes : NBD_URI.t list -> int64 list (** Call NBD.get_size on each input disk. *) val error_if_disk_count_gt : NBD_URI.t list -> int -> unit (** This function lets an output module enforce a maximum disk count. [error_if_disk_count_gt input_disks n] checks whether the domain has more than [n] disks that need to be copied. *) val create_local_output_disks : string -> ?compressed:bool -> ?create:bool -> Types.output_allocation -> string -> string -> string -> NBD_URI.t list -> NBD_URI.t list (** When an output mode wants to create one output disk per input disk, using the names "/-sdX", this function does it all, taking a list of input NBD URIs and returning a list of output NBD URIs. For anything more complicated, use {!output_to_local_file} instead. *) type on_exit_kill = Kill | KillAndWait val output_to_local_file : ?name:string -> ?changeuid:((unit -> unit) -> unit) -> ?compressed:bool -> ?create:bool -> ?on_exit_kill:on_exit_kill -> Types.output_allocation -> string -> string -> int64 -> string -> unit (** When an output mode wants to create a local file with a particular format (only "raw" or "qcow2" allowed) then this common function can be used. Optional parameter [?on_exit_kill] controls how the NBD server is cleaned up. The default is {!Kill} which registers an {!On_exit.kill} handler that kills (but does not wait for) the server when virt-v2v exits. Most callers should use this. Setting [~on_exit_kill:KillAndWait] should be used if the NBD server must fully exit before we continue with the rest of virt-v2v shut down. This is only necessary if some other action (such as unmounting a host filesystem or removing a host device) depends on the NBD server releasing resources. *) val disk_name : string -> int -> string (** Return the sanitized disk name for the i'th disk, eg. 0 => name-sda. *) val disk_path : string -> string -> int -> string (** For [-o disk|qemu], return the output disk name of the i'th disk, eg. 0 => /path/to/name-sda. *) ================================================ FILE: output/output_disk.ml ================================================ (* virt-v2v * Copyright (C) 2009-2025 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) open Printf open Unix open Std_utils open Tools_utils open Common_gettext.Gettext open Types open Utils open Create_libvirt_xml open Output module Disk = struct type poptions = bool * Types.output_allocation * string * string * string type t = unit let to_string options = "-o disk" ^ match options.output_storage with | Some os -> " -os " ^ os | None -> "" let query_output_options () = printf (f_"Output options that can be used with -o disk: -oo compressed Compress the output file (used only with -of qcow2) ") let parse_options options source = let compressed = ref false in List.iter ( function | "compressed", "" -> compressed := true | "compressed", v -> compressed := bool_of_string v | k, _ -> error (f_"-o disk: unknown output option ‘-oo %s’") k ) options.output_options; if options.output_password <> None then error_option_cannot_be_used_in_output_mode "local" "-op"; (* -os must be set to a directory. *) let output_storage = match options.output_storage with | None -> error (f_"-o disk: output directory was not specified, use '-os /dir'") | Some d when not (is_directory d) -> error (f_"-os %s: output directory does not exist or is not a directory") d | Some d -> d in let output_name = Option.value ~default:source.s_name options.output_name in !compressed, options.output_alloc, options.output_format, output_name, output_storage let setup dir options source input_disks = let compressed, output_alloc, output_format, output_name, output_storage = options in let uris = create_local_output_disks dir ~compressed output_alloc output_format output_name output_storage input_disks in (), uris let finalize dir options () output_disks source inspect target_meta = let _, output_alloc, output_format, output_name, output_storage = options in (* We don't know what target features the hypervisor supports, but * assume a common set that libvirt supports. *) let domcaps_features = match target_meta.guestcaps.gcaps_arch with | "i686" | "x86_64" -> { supports_floppy = true } | _ -> { supports_floppy = false } in let target_features = match target_meta.guestcaps.gcaps_arch with | "i686" -> [ "acpi"; "apic"; "pae" ] | "x86_64" -> [ "acpi"; "apic" ] | _ -> [] in let doc = create_libvirt_xml source inspect target_meta target_features domcaps_features (disk_path output_storage output_name) output_format output_name in let file = output_storage // (sanitize_slash output_name) ^ ".xml" in with_open_out file (fun chan -> DOM.doc_to_chan chan doc); if verbose () then ( eprintf "resulting local libvirt XML:\n"; DOM.doc_to_chan Stdlib.stderr doc; eprintf "\n%!"; ) let request_size = None end ================================================ FILE: output/output_disk.mli ================================================ (* virt-v2v * Copyright (C) 2009-2025 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) (** [-o disk] output mode. *) module Disk : Output.OUTPUT ================================================ FILE: output/output_glance.ml ================================================ (* virt-v2v * Copyright (C) 2009-2025 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) open Printf open Unix open Std_utils open Tools_utils open Unix_utils open Common_gettext.Gettext open Types open Utils open Output module Glance = struct type poptions = string * string type t = string let to_string options = "-o glance" let query_output_options () = printf (f_"No output options can be used in this mode.\n") let parse_options options source = if options.output_options <> [] then error (f_"no -oo (output options) are allowed here"); if options.output_conn <> None then error_option_cannot_be_used_in_output_mode "glance" "-oc"; if options.output_password <> None then error_option_cannot_be_used_in_output_mode "glance" "-op"; if options.output_storage <> None then error_option_cannot_be_used_in_output_mode "glance" "-os"; let output_name = Option.value ~default:source.s_name options.output_name in options.output_format, output_name let setup dir options source input_disks = let input_sizes = get_disk_sizes input_disks in let output_format, output_name = options in (* This does nothing useful except to check that the user has * supplied all the correct auth environment variables to make * 'glance' commands work as the current user. If not then the * program exits early. *) if shell_command "glance image-list > /dev/null" <> 0 then error (f_"glance: glance client is not installed or set up correctly. \ You may need to set environment variables or source a script \ to enable authentication. \ See preceding messages for details."); (* When debugging, query the glance client for its version. *) if verbose () then ( eprintf "version of the glance client:\n%!"; ignore (shell_command "glance --version"); ); (* Although glance can slurp in a stream from stdin, qemu-nbd * (used for -of qcow2) cannot write to a stream. This might * be possible in future with more creative use of NBD. (XXX) *) let tmpdir = Mkdtemp.temp_dir ~base_dir:large_tmpdir "glance." in (* This will write disks to the large temporary directory. *) let uris = List.mapi ( fun i size -> let socket = sprintf "%s/out%d" dir i in On_exit.unlink socket; (* Create the actual output disk. *) let outdisk = sprintf "%s/%d" tmpdir i in output_to_local_file Sparse output_format outdisk size socket; NBD_URI.Unix (socket, None) ) input_sizes in tmpdir, uris let finalize dir options tmpdir output_disks source inspect target_meta = let output_format, output_name = options in let min_ram = source.s_memory /^ 1024L /^ 1024L in (* Get the image properties. *) let properties = Openstack_image_properties.create source inspect target_meta in let properties = List.flatten ( List.map ( fun (k, v) -> [ "--property"; sprintf "%s=%s" k v ] ) properties ) in (* The first disk, assumed to be the system disk, will be called * "guestname". Subsequent disks, assumed to be data disks, * will be called "guestname-disk2" etc. The manual strongly * hints you should import the data disks to Cinder. *) List.iteri ( fun i _ -> let name = if i == 0 then output_name else sprintf "%s-disk%d" output_name (i+1) in let disk = sprintf "%s/%d" tmpdir i in (* If glance is used with VMware then there's a vmware_disktype * option which allows preallocated. However I don't believe * it's possible in general glance, so ignore the -oa option. * Since we are writing to a temporary file before copying to * glance, -oa preallocated just preallocates the temporary file. *) let cmd = [ "glance"; "image-create"; "--name"; name; "--disk-format=" ^ output_format; "--container-format=bare"; "--file"; disk; "--min-ram"; Int64.to_string min_ram ] @ properties in if run_command cmd <> 0 then error (f_"glance: image upload to glance failed, see earlier errors"); (* Unlink the temporary files as soon as glance has got them. *) try unlink disk with Unix_error _ -> () ) source.s_disks; (* Remove the temporary directory for the large files. *) (try rmdir tmpdir with Unix_error _ -> ()) let request_size = None end ================================================ FILE: output/output_glance.mli ================================================ (* virt-v2v * Copyright (C) 2009-2025 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) (** [-o glance] output mode. *) module Glance : Output.OUTPUT ================================================ FILE: output/output_kubevirt.ml ================================================ (* virt-v2v * Copyright (C) 2009-2025 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) open Printf open Unix open Std_utils open Tools_utils open Common_gettext.Gettext open Types open Utils open Output open Create_kubevirt_yaml (* Valid output names for Kubevirt (RHBZ#2162332). *) let rfc1123_re = PCRE.compile "^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$" module Kubevirt = struct type poptions = bool * bool * string list option * output_allocation * string * string * string type t = unit let to_string options = "-o kubevirt" ^ match options.output_storage with | Some os -> " -os " ^ os | None -> "" let query_output_options () = printf (f_"Output options that can be used with -o kubevirt: -oo compressed Compress the output file (used only with -of qcow2) -oo create=false Do not create the output disks -oo disk=disk1 Specify filename of output disk (if used, must be given once for each disk, else -os path is used) ") let parse_options options source = let compressed = ref false in let create = ref true in let disks = ref [] in List.iter ( function | "compressed", "" -> compressed := true | "compressed", v -> compressed := bool_of_string v | "create", "" -> create := true | "create", v -> create := bool_of_string v | "disk", v -> List.push_back disks v | k, _ -> error (f_"-o kubevirt: unknown output option ‘-oo %s’") k ) options.output_options; if options.output_password <> None then error_option_cannot_be_used_in_output_mode "kubevirt" "-op"; (* -os must be set to a directory. *) let output_storage = match options.output_storage with | None -> error (f_"-o kubevirt: output directory was not specified, \ use '-os /dir'") | Some d when not (is_directory d) -> error (f_"-os %s: output directory does not exist or \ is not a directory") d | Some d -> d in let output_name = Option.value ~default:source.s_name options.output_name in if not (PCRE.matches rfc1123_re output_name) then error (f_"-o kubevirt: the guest name must contain only lowercase \ alphanumeric characters, '-' or '.', and must start and \ end with an alphanumeric character. Rerun virt-v2v with \ the '-on name' option to rename it."); let disks = match !disks with [] -> None | disks -> Some disks in !compressed, !create, disks, options.output_alloc, options.output_format, output_name, output_storage let setup dir options source input_disks = let compressed, create, disks, output_alloc, output_format, output_name, output_storage = options in let uris = match disks with | None -> create_local_output_disks dir ~compressed ~create output_alloc output_format output_name output_storage input_disks | Some disks -> (* -oo disk specified, so create the disks by hand. *) let nr_input_disks = List.length input_disks and nr_output_disks = List.length disks in if nr_input_disks <> nr_output_disks then error (f_"incorrect number of '-oo disk' parameters. This guest \ has %d disks, but the parameter was used %d times.") nr_input_disks nr_output_disks; let input_sizes = get_disk_sizes input_disks in List.mapi ( fun i (disk, size) -> let socket = sprintf "%s/out%d" dir i in On_exit.unlink socket; output_to_local_file ~compressed ~create output_alloc output_format disk size socket; NBD_URI.Unix (socket, None) ) (List.combine disks input_sizes) in (), uris let finalize dir options () output_disks source inspect target_meta = let _, _, disks, output_alloc, output_format, output_name, output_storage = options in (* This function will return the disk path for the i'th disk. *) let disk_path = match disks with | None -> Output.disk_path output_storage output_name | Some disks -> List.nth disks in let doc = create_kubevirt_yaml source inspect target_meta disk_path output_format output_name in let file = output_storage // (sanitize_slash output_name) ^ ".yaml" in with_open_out file (fun chan -> YAML.doc_to_chan chan doc); if verbose () then ( eprintf "resulting kubevirt YAML:\n"; YAML.doc_to_chan Stdlib.stderr doc; eprintf "\n%!"; ) let request_size = None end ================================================ FILE: output/output_kubevirt.mli ================================================ (* virt-v2v * Copyright (C) 2009-2025 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) (** [-o kubevirt] output mode. *) module Kubevirt : Output.OUTPUT ================================================ FILE: output/output_libvirt.ml ================================================ (* virt-v2v * Copyright (C) 2009-2025 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) open Printf open Unix open C_utils open Std_utils open Tools_utils open Common_gettext.Gettext open Xpath_helpers open Types open Utils open Create_libvirt_xml open Output module Libvirt_ = struct type poptions = Libvirt.rw Libvirt.Connect.t Lazy.t * bool * Types.output_allocation * string * string * string type t = string * string let to_string options = "-o libvirt" ^ match options.output_storage with | Some os -> " -os " ^ os | None -> "" let query_output_options () = printf (f_"Output options that can be used with -o libvirt: -oo compressed Compress the output file (used only with -of qcow2) ") let parse_options options source = let compressed = ref false in List.iter ( function | "compressed", "" -> compressed := true | "compressed", v -> compressed := bool_of_string v | k, _ -> error (f_"-o disk: unknown output option ‘-oo %s’") k ) options.output_options; if options.output_password <> None then error_option_cannot_be_used_in_output_mode "libvirt" "-op"; let conn = lazy (Libvirt.Connect.connect ?name:options.output_conn ()) in (* -os is the name of the output pool. It defaults to "default". *) let output_pool = Option.value ~default:"default" options.output_storage in let output_name = Option.value ~default:source.s_name options.output_name in (conn, !compressed, options.output_alloc, options.output_format, output_name, output_pool) let setup dir options source input_disks = let conn, compressed, output_alloc, output_format, output_name, output_pool = options in let conn = Lazy.force conn in (* Get the capabilities from libvirt. *) let capabilities_xml = try Libvirt.Connect.get_capabilities conn with Libvirt.Virterror { message } -> error (f_"cannot get libvirt hypervisor capabilities: %s") (Option.value ~default:"" message) in debug "libvirt capabilities XML:\n%s" capabilities_xml; (* This just checks that the capabilities XML is well-formed, * early so that we catch parsing errors before conversion. *) ignore (Xml.parse_memory capabilities_xml); (* Does the domain already exist on the target? (RHBZ#889082) *) if Libvirt_utils.domain_exists conn output_name then error (f_"a libvirt domain called ‘%s’ already exists on the \ target.\n\nIf using virt-v2v directly, use the ‘-on’ \ option to select a different name. Or delete the \ existing domain on the target using the ‘virsh undefine’ \ command.\n\nIf using virt-p2v, select a different ‘Name’ \ in the ‘Target properties’. Or delete the existing domain \ on the target using the ‘virsh undefine’ command.") output_name; (* Connect to output libvirt instance and check that the pool exists * and dump out its XML. *) let pool = Libvirt_utils.get_pool conn output_pool in let xml = Libvirt.Pool.get_xml_desc (Libvirt.Pool.const pool) in let doc = Xml.parse_memory xml in let xpathctx = Xml.xpath_new_context doc in let xpath_string = xpath_string xpathctx in (* We can only output to a pool of type 'dir' (directory). *) if xpath_string "/pool/@type" <> Some "dir" then error (f_"-o libvirt: output pool ‘%s’ is not a directory (type='dir'). See virt-v2v-output-local(1)") output_pool; let target_path = match xpath_string "/pool/target/path/text()" with | None -> error (f_"-o libvirt: output pool ‘%s’ does not have \ /pool/target/path element. See \ virt-v2v-output-local(1)") output_pool | Some dir when not (is_directory dir) -> error (f_"-o libvirt: output pool ‘%s’ has type='dir' but the \ /pool/target/path element is not a local directory. \ See virt-v2v-output-local(1)") output_pool | Some dir -> dir in (* Get the name of the pool, since we have to use that * (and not the UUID) in the XML of the guest. *) let pool_name = Libvirt.Pool.get_name (Libvirt.Pool.const pool) in (* Set up the NBD servers. *) let uris = create_local_output_disks dir ~compressed output_alloc output_format output_name target_path input_disks in (capabilities_xml, pool_name), uris let rec finalize dir options t output_disks source inspect target_meta = let conn, _, output_alloc, output_format, output_name, output_pool = options in let capabilities_xml, pool_name = t in let conn = Lazy.force conn in (* We copied directly into the final pool directory. However we * have to tell libvirt. *) (try let pool = Libvirt_utils.get_pool conn output_pool in Libvirt.Pool.refresh (Libvirt.Pool.const pool) with Libvirt.Virterror { message } -> warning (f_"could not refresh libvirt pool ‘%s’: %s") output_pool (Option.value ~default:"" message) ); (* Parse the capabilities XML in order to get the supported features. *) let doc = Xml.parse_memory capabilities_xml in let target_features = target_features_of_capabilities_doc doc target_meta.guestcaps.gcaps_arch in (* Get domain capabilities. *) let machine_string = match target_meta.guestcaps.gcaps_machine with | Types.I440FX -> "i440fx" | Types.Q35 -> "q35" | Types.Virt -> "virt" in let domcaps_xml = try Libvirt.Connect.get_domain_capabilities ~arch:target_meta.guestcaps.gcaps_arch ~machine:machine_string ~virttype:"kvm" conn with Libvirt.Virterror { message } -> error (f_"cannot get libvirt domain capabilities: %s") (Option.value ~default:"" message) in debug "libvirt domain capabilities XML:\n%s" domcaps_xml; (* Parse domain capabilities XML to get the supported features. *) let domcaps_doc = Xml.parse_memory domcaps_xml in let domcaps_features = features_of_domcaps_doc domcaps_doc in (* Create the metadata. *) let doc = create_libvirt_xml ~pool:pool_name source inspect target_meta target_features domcaps_features (disk_name output_name) output_format output_name in let tmpfile, chan = Filename.open_temp_file "v2vlibvirt" ".xml" in DOM.doc_to_chan chan doc; close_out chan; if verbose () then ( eprintf "resulting XML for libvirt:\n%!"; DOM.doc_to_chan Stdlib.stderr doc; eprintf "\n%!"; ); (* Define the domain in libvirt. *) (try ignore (Libvirt.Domain.define_xml conn (DOM.doc_to_string doc)); (try Unix.unlink tmpfile with _ -> ()) with Libvirt.Virterror { message } -> warning (f_"could not define libvirt domain: %s.\nThe libvirt XML \ is still available in ‘%s’. Try running \ ‘virsh -c %s define %s’ yourself instead.") (Option.value ~default:"" message) tmpfile (Libvirt.Connect.get_uri conn) tmpfile ) and arch_is_sane_or_die = let rex = PCRE.compile ~caseless:true "^[-_a-z0-9]+$" in fun arch -> assert (PCRE.matches rex arch) and target_features_of_capabilities_doc doc arch = let xpathctx = Xml.xpath_new_context doc in let expr = (* Check the arch is sane. It comes from untrusted input. This * avoids XPath injection below. *) arch_is_sane_or_die arch; (* NB: Pay attention to the square brackets. This returns the * nodes! *) sprintf "/capabilities/guest[arch[@name='%s']/domain/@type='kvm']" arch in let obj = Xml.xpath_eval_expression xpathctx expr in if Xml.xpathobj_nr_nodes obj < 1 then ( (* Old virt-v2v used to die here, but that seems unfair since the * user has gone through conversion before we reach here. *) warning (f_"the target hypervisor does not support a %s KVM guest") arch; [] ) else ( let node (* first matching *) = Xml.xpathobj_node obj 0 in Xml.xpathctx_set_current_context xpathctx node; (* Get guest/features/* nodes. *) let features = xpath_get_nodes xpathctx "features/*" in List.map Xml.node_name features ) and features_of_domcaps_doc doc = let xpathctx = Xml.xpath_new_context doc in let xpath_string = xpath_string xpathctx in let expr = "/domainCapabilities/devices/disk/enum[@name='diskDevice']/value[text()='floppy']" in let supports_floppy = match xpath_string expr with | Some "floppy" -> true | _ -> false in { supports_floppy } let request_size = None end ================================================ FILE: output/output_libvirt.mli ================================================ (* virt-v2v * Copyright (C) 2009-2025 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) (** [-o libvirt] output mode. *) module Libvirt_ : Output.OUTPUT ================================================ FILE: output/output_null.ml ================================================ (* virt-v2v * Copyright (C) 2009-2025 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) open Printf open Unix open Std_utils open Tools_utils open Common_gettext.Gettext open Types open Utils open Output module Null = struct type poptions = unit type t = unit let to_string options = "-o null" let query_output_options () = printf (f_"No output options can be used in this mode.\n") let parse_options options source = if options.output_options <> [] then error (f_"no -oo (output options) are allowed here"); if options.output_alloc <> Sparse then error_option_cannot_be_used_in_output_mode "null" "-oa"; if options.output_conn <> None then error_option_cannot_be_used_in_output_mode "null" "-oc"; if options.output_format <> "raw" then error_option_cannot_be_used_in_output_mode "null" "-of"; if options.output_password <> None then error_option_cannot_be_used_in_output_mode "null" "-op"; if options.output_storage <> None then error_option_cannot_be_used_in_output_mode "null" "-os" let setup dir () source input_disks = (* Check nbdkit is installed and has the required plugin. *) if not (Nbdkit.is_installed ()) then error (f_"nbdkit is not installed or not working. \ It is required to use ‘-o null’."); if not (Nbdkit.probe_plugin "null") then error (f_"nbdkit-null-plugin is not installed or not working"); (* We only need to run one nbdkit instance (even if there is * more than one disk) and we can ignore the size of the inputs * and set the size of the output to 7E. *) let socket = sprintf "%s/out0" dir in On_exit.unlink socket; let () = let cmd = Nbdkit.create ~quiet:true "null" in Nbdkit.add_arg cmd "size" "7E"; let _, pid = Nbdkit.run_unix socket cmd in (* --exit-with-parent should ensure nbdkit is cleaned * up when we exit, but it's not supported everywhere. *) On_exit.kill pid in (* Same socket repeated for each input disk. *) let uris = List.make (List.length input_disks) (NBD_URI.Unix (socket, None)) in (), uris let finalize dir () () output_disks source inspect target_meta = () (* nothing to do *) let request_size = None end ================================================ FILE: output/output_null.mli ================================================ (* virt-v2v * Copyright (C) 2009-2025 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) (** [-o null] output mode. *) module Null : Output.OUTPUT ================================================ FILE: output/output_openstack.ml ================================================ (* virt-v2v * Copyright (C) 2009-2025 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) open Printf open Unix open C_utils open Std_utils open Tools_utils open Common_gettext.Gettext open Types open Utils open Output module Openstack = struct type poptions = string option * string * string * string option * string option * (string list -> int) * (string list -> JSON.json_t option) type t = string list let to_string options = (* Try to get the server-id since it seems useful to display * that for diagnostics. *) let server_id = ref None in List.iter ( function | "server-id", v -> server_id := Some v | _ -> () ) options.output_options; "-o openstack" ^ (match !server_id with | None -> "" | Some id -> sprintf " -oo server-id=%s" id) let query_output_options () = printf (f_"virt-v2v -oo server-id= [os-*=...] Specify the name or UUID of the conversion appliance using virt-v2v ... -o openstack -oo server-id= When virt-v2v runs it will attach the Cinder volumes to the conversion appliance, so this name or UUID must be the name of the virtual machine on OpenStack where virt-v2v is running. In addition, all usual OpenStack “os-*” parameters or “OS_*” environment variables can be used. Openstack “--os-*” parameters must be written as “virt-v2v -oo os-*”. For example: virt-v2v -oo os-username= equivalent to openstack: --os-username= or the environment variable: OS_USERNAME= virt-v2v -oo os-project-name= equivalent to openstack: --os-project-name= or the environment variable: OS_PROJECT_NAME= The os-* parameters and environment variables are optional. ") let parse_options options source = if options.output_alloc <> Sparse || options.output_format <> "raw" then error (f_"-o openstack mode only supports -oa sparse -of raw"); let server_id = ref None in let dev_disk_by_id = ref None in let verify_server_certificate = ref true in let guest_id = ref None in let authentication = ref [] in List.iter ( function | "server-id", v -> server_id := Some v | "dev-disk-by-id", v -> dev_disk_by_id := Some v | "verify-server-certificate", "" -> verify_server_certificate := true | "verify-server-certificate", v -> verify_server_certificate := bool_of_string v | "guest-id", v -> guest_id := Some v | k, v when String.starts_with "os-" k -> (* Accumulate any remaining/unknown -oo os-* parameters * into the authentication list, where they will be * pass unmodified through to the openstack command. *) let opt = sprintf "--%s=%s" k v in authentication := opt :: !authentication | k, _ -> error (f_"-o openstack: unknown output option ‘-oo %s’") k ) options.output_options; let server_id = match !server_id with | None -> error (f_"openstack: -oo server-id= not present"); | Some server_id -> server_id in let authentication = List.rev !authentication in let verify_server_certificate = !verify_server_certificate in let guest_id = !guest_id in let dev_disk_by_id = !dev_disk_by_id in (* Name of the openstack CLI program (on $PATH). *) let openstack_binary = "openstack" in (* The extra command line parameters derived from -oo etc. *) let extra_args = let args = ref authentication in Option.iter (fun oc -> List.push_back args (sprintf "--os-auth-url=%s" oc)) options.output_conn; if not verify_server_certificate then List.push_back args "--insecure"; !args in (* Check the openstack command exists. *) let error_unless_openstack_command_exists () = try ignore (which openstack_binary) with Executable_not_found _ -> error (f_"the ‘%s’ program is not available. \ It is needed to communicate with OpenStack.") openstack_binary in error_unless_openstack_command_exists (); (* We use this convenient wrapper around [Tools_utils.run_command] * for two reasons: (1) Because we want to run openstack with * extra_args. (2) OpenStack commands are noisy so we want to * direct stdout to /dev/null unless we're in verbose mode. *) let run_openstack_command args = let cmd = [ openstack_binary ] @ extra_args @ args in let stdout_fd = if verbose () then None else Some (openfile "/dev/null" [O_WRONLY] 0) in (* Note that run_command will close stdout_fd if defined. * Don't echo the whole command because it can contain passwords. *) debug "openstack [...] %s" (String.concat " " args); Tools_utils.run_command ~echo_cmd:false ?stdout_fd cmd in (* Similar to above, run the openstack command and capture the * JSON document printed by the command. Note you must add * '-f json' to the args yourself. *) let run_openstack_command_capture_json args = let cmd = [ openstack_binary ] @ extra_args @ args in let json, chan = Filename.open_temp_file "v2vopenstack" ".json" in On_exit.unlink json; let fd = descr_of_out_channel chan in (* Note that Tools_utils.run_command closes fd. * Don't echo the whole command because it can contain passwords. *) debug "openstack [...] %s" (String.concat " " args); if Tools_utils.run_command ~echo_cmd:false ~stdout_fd:fd cmd <> 0 then None else ( let json = JSON_parser.json_parser_tree_parse_file json in debug "openstack: JSON parsed as: %s" (JSON.string_of_doc ~fmt:JSON.Indented ["", json]); Some json ) in (* Run the openstack command simply to check we can connect * with the provided authentication parameters/environment * variables. Issuing a token should have only a tiny * overhead. *) let args = [ "token"; "issue" ] in if run_openstack_command args <> 0 then error (f_"openstack: precheck failed, there may be a problem with \ authentication, see earlier error messages"); let output_name = Option.value ~default:source.s_name options.output_name in (options.output_storage, output_name, server_id, guest_id, dev_disk_by_id, run_openstack_command, run_openstack_command_capture_json) let setup dir options source input_disks = let input_sizes = get_disk_sizes input_disks in let output_storage, output_name, server_id, guest_id, dev_disk_by_id, run_openstack_command, run_openstack_command_capture_json = options in (* Timeout waiting for Cinder volumes to attach to the appliance. *) let attach_timeout = 300 (* seconds *) in (* Timeout waiting for new Cinder volumes to move to "available" state. * We assume this could be quite a long time on backends which want * to preallocate the storage. *) let available_timeout = 300 (* seconds *) in (* Set a known description for volumes, then change it later * when conversion is successful. In theory this would allow * some kind of garbage collection for unfinished conversions * in the case that virt-v2v crashes. *) let description = sprintf "virt-v2v temporary volume for %s" output_name in (* The list of volume IDs that we create as we go along. *) let volume_ids = ref [] in let detach_volume id = let args = [ "server"; "remove"; "volume"; server_id; id ] in ignore (run_openstack_command args) in (* Delete a cinder volume. * * This ignores errors since the only time we are doing this is on * the failure path. *) let delete_cinder_volume id = let args = [ "volume"; "delete"; id ] in ignore (run_openstack_command args) in (* Set up an at-exit handler so we: * (1) Unconditionally detach volumes. * (2) Delete the volumes, but only if conversion was not successful. *) On_exit.f ( fun () -> let volume_ids = !volume_ids in List.iter detach_volume volume_ids; (* virt-v2v writes v2vdir/done on success only. *) let success = Sys.file_exists (dir // "done") in if not success then ( (* XXX We probably need to wait for the previous * detach operation to complete - unclear how. *) List.iter delete_cinder_volume volume_ids; ) ); (* Create a new Cinder volume and wait for its status to change to * "available". Returns the volume id. *) let create_cinder_volume name description size = (* Cinder volumes are allocated in increments of 1 GB. Weird. *) let size_gb = let s = roundup64 size 1073741824L in let s = s /^ 1073741824L in Int64.to_string s in let args = ref [] in List.push_back_list args [ "volume"; "create"; "-f"; "json"; "--size"; size_gb; "--description"; description ]; Option.iter ( fun os -> List.push_back_list args [ "--type"; os ] ) output_storage; List.push_back args name; let json = match run_openstack_command_capture_json !args with | None -> error (f_"openstack: failed to create a cinder volume, \ see earlier error messages") | Some json -> json in let id = JSON_parser.object_get_string "id" json in (* Wait for the volume state to change to "available". *) let args = [ "volume"; "show"; "-f"; "json"; id ] in with_timeout (s_"wait for cinder volume status to change to \"available\"") available_timeout (fun () -> match run_openstack_command_capture_json args with | None -> error (f_"openstack: failed to query cinder volume status, \ see earlier error messages") | Some json -> match JSON_parser.object_get_string "status" json with | "creating" -> None | "available" -> Some () (* done *) | status -> error (f_"openstack: unknown volume status \"%s\": \ expected \"creating\" or \"available\"") status ); id in (* Create the Cinder volumes. *) List.iteri ( fun i size -> (* Unclear what we should set the name to, so just make * something related to the guest name. Cinder volume * names do not need to be unique. *) let name = disk_name output_name i in (* Create the cinder volume. *) let id = create_cinder_volume name description size in List.push_back volume_ids id ) input_sizes; (* Attach volume to current VM and wait for it to appear. * Returns the block device name. *) let attach_volume id = let args = [ "server"; "add"; "volume"; server_id; id ] in if run_openstack_command args <> 0 then error (f_"openstack: failed to attach cinder volume to VM, \ see earlier error messages"); (* We expect the disk to appear under /dev/disk/by-id. * * In theory the serial number of the disk should be the * volume ID. However the practical reality is: * * (1) Only the first 20 characters are included by OpenStack. * (2) udev(?) adds extra stuff * * So look for any file under /dev/disk/by-id which contains * the prefix of the volume ID as a substring. *) let dev_disk_by_id = Option.value ~default:"/dev/disk/by-id" dev_disk_by_id in let prefix_len = 16 (* maybe 20, but be safe *) in let prefix_id = if String.length id > prefix_len then String.sub id 0 prefix_len else id in with_timeout ~sleep:5 (sprintf (f_"waiting for cinder volume %s to attach to the \ conversion appliance") id) attach_timeout (fun () -> let entries = try Sys.readdir dev_disk_by_id (* It's possible for /dev/disk/by-id to not exist, since it's * only created by udev on demand, so ignore this error. *) with Sys_error _ -> [||] in let entries = Array.to_list entries in let entries = List.filter (fun e -> String.find e prefix_id >= 0) entries in match entries with | d :: _ -> Some (dev_disk_by_id // d) | [] -> None ); in (* Attach volume IDs to the conversion appliance and wait * for the device nodes to appear. *) let devices = List.map attach_volume !volume_ids in (* Create nbdkit instances for each device node. *) let uris = List.mapi ( fun i (size, dev) -> let socket = sprintf "%s/out%d" dir i in On_exit.unlink socket; output_to_local_file Sparse "raw" dev size socket; NBD_URI.Unix (socket, None) ) (List.combine input_sizes devices) in !volume_ids, uris let rec finalize dir options volume_ids output_disks source inspect target_meta = let output_storage, output_name, server_id, guest_id, dev_disk_by_id, run_openstack_command, run_openstack_command_capture_json = options in let nr_disks = List.length volume_ids in (* Update metadata on a cinder volume. *) let update_cinder_volume_metadata ?bootable ?description ?(image_properties = []) ?(volume_properties = []) id = let args = ref [ "volume"; "set" ] in Option.iter ( fun bootable -> List.push_back args (if bootable then "--bootable" else "--non-bootable") ) bootable; Option.iter ( fun description -> List.push_back_list args ["--description"; description] ) description; let image_properties = List.flatten ( List.map ( fun (k, v) -> [ "--image-property"; sprintf "%s=%s" k v ] ) image_properties ) in List.push_back_list args image_properties; let volume_properties = List.flatten ( List.map ( fun (k, v) -> [ "--property"; sprintf "%s=%s" k v ] ) volume_properties ) in List.push_back_list args volume_properties; List.push_back args id; if run_openstack_command !args <> 0 then error (f_"openstack: failed to set image properties on cinder volume, \ see earlier error messages") in (* Image properties are only set on the first disk. * * In addition we set the first disk to bootable * (XXX see RHBZ#1308535 for why this is wrong). *) let image_properties = Openstack_image_properties.create source inspect target_meta in update_cinder_volume_metadata ~bootable:true ~image_properties (List.hd volume_ids); (* For all disks we update the description to a "non-temporary" * description (see above) and set volume properties. *) List.iteri ( fun i id -> let description = sprintf "%s disk %d/%d converted by virt-v2v" output_name (i+1) nr_disks in let volume_properties = ref [ "virt_v2v_version", Config.package_version_full; "virt_v2v_conversion_date", iso_time; "virt_v2v_guest_name", output_name; "virt_v2v_disk_index", sprintf "%d/%d" (i+1) nr_disks; ] in (match source.s_genid with | None -> () | Some genid -> List.push_back volume_properties ("virt_v2v_vm_generation_id", genid) ); (match guest_id with | None -> () | Some guest_id -> List.push_back volume_properties ("virt_v2v_guest_id", guest_id) ); let volume_properties = !volume_properties in update_cinder_volume_metadata ~description ~volume_properties id ) volume_ids (* UTC conversion time. *) and iso_time = let time = time () in let tm = gmtime time in sprintf "%04d/%02d/%02d %02d:%02d:%02d" (tm.tm_year + 1900) (tm.tm_mon + 1) tm.tm_mday tm.tm_hour tm.tm_min tm.tm_sec let request_size = None end ================================================ FILE: output/output_openstack.mli ================================================ (* virt-v2v * Copyright (C) 2009-2025 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) (** [-o openstack] output mode. *) module Openstack : Output.OUTPUT ================================================ FILE: output/output_ovirt.ml ================================================ (* virt-v2v * Copyright (C) 2009-2025 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) open Printf open Unix open Std_utils open Tools_utils open Unix_utils open Common_gettext.Gettext open Types open Utils open Output module OVirt = struct type poptions = Types.output_allocation * string * string * string type t = string * string * string * string list * string list * int64 list let to_string options = "-o ovirt" let query_output_options () = printf (f_"No output options can be used in this mode.\n") let parse_options options source = if options.output_options <> [] then error (f_"no -oo (output options) are allowed here"); if options.output_password <> None then error_option_cannot_be_used_in_output_mode "ovirt" "-op"; (* -os must be set, but at this point we cannot check it. *) let output_storage = match options.output_storage with | None -> error (f_"-o ovirt: -os option was not specified") | Some d -> d in let output_name = Option.value ~default:source.s_name options.output_name in (options.output_alloc, options.output_format, output_name, output_storage) let rec setup dir options source input_disks = error_if_disk_count_gt input_disks 23; let input_sizes = get_disk_sizes input_disks in let output_alloc, output_format, output_name, output_storage = options in (* UID:GID required for files and directories when writing to ESD. *) let uid = 36 and gid = 36 in (* Create a UID-switching handle. If we're not root, create a dummy * one because we cannot switch UIDs. *) let running_as_root = geteuid () = 0 in let changeuid_t = if running_as_root then Changeuid.create ~uid ~gid () else Changeuid.create () in let esd_mp, esd_uuid = mount_and_check_storage_domain (s_"Export Storage Domain") output_storage in debug "ovirt: ESD mountpoint: %s\novirt: ESD UUID: %s" esd_mp esd_uuid; (* See if we can write files as UID:GID 36:36. *) let () = let testfile = esd_mp // esd_uuid // String.random8 () in Changeuid.make_file changeuid_t testfile ""; let stat = stat testfile in Changeuid.unlink changeuid_t testfile; let actual_uid = stat.st_uid and actual_gid = stat.st_gid in debug "ovirt: actual UID:GID of new files is %d:%d" actual_uid actual_gid; if uid <> actual_uid || gid <> actual_gid then ( if running_as_root then warning (f_"cannot write files to the NFS server as %d:%d, \ even though we appear to be running as root. This \ probably means the NFS client or idmapd is not \ configured properly.\n\nYou will have to chown \ the files that virt-v2v creates after the run, \ otherwise oVirt will not be able to import the VM.") uid gid else warning (f_"cannot write files to the NFS server as %d:%d. \ You might want to stop virt-v2v (^C) and rerun it \ as root.") uid gid ) in (* Create unique UUIDs for everything *) let vm_uuid = uuidgen () in (* Generate random image and volume UUIDs for each target disk. *) let image_uuids = List.map (fun _ -> uuidgen ()) input_disks in let vol_uuids = List.map (fun _ -> uuidgen ()) input_disks in (* We need to create the target image director(ies) so there's a place * for the main program to copy the images to. However if image * conversion fails for any reason then we delete this directory. *) let images_dir = esd_mp // esd_uuid // "images" in List.iter ( fun image_uuid -> let d = images_dir // image_uuid in Changeuid.mkdir changeuid_t d 0o755 ) image_uuids; On_exit.f ( fun () -> (* virt-v2v writes v2vdir/done on success only. *) let success = Sys.file_exists (dir // "done") in if not success then ( List.iter ( fun image_uuid -> let d = images_dir // image_uuid in let cmd = sprintf "rm -rf %s" (quote d) in Changeuid.command changeuid_t cmd ) image_uuids ) ); (* The final directory structure should look like this: * ///images/ * / # first disk * /.meta # first disk * / # second disk * /.meta # second disk * / # etc * /.meta # *) (* Generate the randomly named target files (just the names). * The main code is what generates the files themselves. *) let filenames = List.map ( fun (image_uuid, vol_uuid) -> let filename = images_dir // image_uuid // vol_uuid in debug "ovirt: disk: %s" filename; filename ) (List.combine image_uuids vol_uuids) in (* Generate the .meta file associated with each volume. *) let metas = Create_ovf.create_meta_files output_alloc output_format esd_uuid image_uuids input_sizes in List.iter ( fun (filename, meta) -> let meta_filename = filename ^ ".meta" in Changeuid.make_file changeuid_t meta_filename meta ) (List.combine filenames metas); (* Set up the NBD servers. *) let uris = List.mapi ( fun i (size, filename) -> let socket = sprintf "%s/out%d" dir i in On_exit.unlink socket; (* Create the actual output disk. *) let changeuid f = Changeuid.func changeuid_t ( fun () -> (* Run the command to create the file. *) f (); (* Make the file sufficiently writable so that possibly root, * or root squashed nbdkit will definitely be able to open it. * An example of how root squashing nonsense makes everyone * less secure. *) chmod filename 0o666 ) in (* We have to wait for the NBD server to exit rather than just * killing it, otherwise it races with unmounting. See: * https://bugzilla.redhat.com/show_bug.cgi?id=1953286#c26 *) let on_exit_kill = Output.KillAndWait in output_to_local_file ~changeuid ~on_exit_kill output_alloc output_format filename size socket; NBD_URI.Unix (socket, None) ) (List.combine input_sizes filenames) in (* Save parameters since we need them during finalization. *) let t = esd_mp, esd_uuid, vm_uuid, image_uuids, vol_uuids, input_sizes in t, uris and mount_and_check_storage_domain domain_class os = (* The user can either specify -os nfs:/export, or a local directory * which is assumed to be the already-mounted NFS export. *) match String.split ":/" os with | mp, "" -> (* Already mounted directory. *) check_storage_domain domain_class os mp | server, export -> let export = "/" ^ export in (* Create a mountpoint. Default mode is too restrictive for us * when we need to write into the directory as 36:36. *) let mp = Mkdtemp.temp_dir "v2v." in chmod mp 0o755; (* Try mounting it. *) let cmd = [ "mount"; sprintf "%s:%s" server export; mp ] in if run_command cmd <> 0 then error (f_"mount command failed, see earlier errors.\n\nThis probably \ means you didn't specify the right %s path [-os %s], or \ else you need to rerun virt-v2v as root.") domain_class os; (* Make sure it is unmounted at exit, as late as possible (prio=9999) *) On_exit.f ~prio:9999 ( fun () -> let cmd = [ "umount"; mp ] in ignore (run_command cmd); try rmdir mp with _ -> () ); check_storage_domain domain_class os mp and check_storage_domain domain_class os mp = (* Typical SD mountpoint looks like this: * $ ls /tmp/mnt * 39b6af0e-1d64-40c2-97e4-4f094f1919c7 __DIRECT_IO_TEST__ lost+found * $ ls /tmp/mnt/39b6af0e-1d64-40c2-97e4-4f094f1919c7 * dom_md images master * We expect exactly one of those magic UUIDs. *) let entries = try Sys.readdir mp with Sys_error msg -> error (f_"could not read the %s specified by the '-os %s' \ parameter on the command line. Is it really an \ OVirt %s? The original error is: %s") domain_class os domain_class msg in let entries = Array.to_list entries in let uuids = List.filter ( fun entry -> String.length entry = 36 && entry.[8] = '-' && entry.[13] = '-' && entry.[18] = '-' && entry.[23] = '-' ) entries in let uuid = match uuids with | [uuid] -> uuid | [] -> error (f_"there are no UUIDs in the %s (%s). Is it really an \ OVirt %s?") domain_class os domain_class | _::_ -> error (f_"there are multiple UUIDs in the %s (%s). This is \ unexpected, and may be a bug in virt-v2v or OVirt.") domain_class os in (* Check that the domain has been attached to a Data Center by * checking that the master/vms directory exists. *) let () = let master_vms_dir = mp // uuid // "master" // "vms" in if not (is_directory master_vms_dir) then error (f_"%s does not exist or is not a directory.\n\nMost likely \ cause: Either the %s (%s) has not been attached to any \ Data Center, or the path %s is not an %s at all.\n\n\ You have to attach the %s to a Data Center using the \ oVirt user interface first.\n\nIf you don’t \ know what the %s mount point should be then you can \ also find this out through the oVirt user interface.") master_vms_dir domain_class os os domain_class domain_class domain_class in (* Looks good, so return the SD mountpoint and UUID. *) (mp, uuid) let finalize dir options t output_disks source inspect target_meta = let output_alloc, output_format, output_name, output_storage = options in let esd_mp, esd_uuid, vm_uuid, image_uuids, vol_uuids, sizes = t in (* UID:GID required for files and directories when writing to ESD. *) let uid = 36 and gid = 36 in (* Create a UID-switching handle. If we're not root, create a dummy * one because we cannot switch UIDs. *) let running_as_root = geteuid () = 0 in let changeuid_t = if running_as_root then Changeuid.create ~uid ~gid () else Changeuid.create () in (* Create the metadata. *) let ovf = Create_ovf.create_ovf source inspect target_meta sizes output_alloc output_format output_name esd_uuid image_uuids vol_uuids ~need_actual_sizes:true output_disks vm_uuid Create_ovf.OVirtExportStorageDomain in (* Write it to the metadata file. *) let dir = esd_mp // esd_uuid // "master" // "vms" // vm_uuid in Changeuid.mkdir changeuid_t dir 0o755; let file = dir // vm_uuid ^ ".ovf" in Changeuid.output changeuid_t file (fun chan -> DOM.doc_to_chan chan ovf) let request_size = None end ================================================ FILE: output/output_ovirt.mli ================================================ (* virt-v2v * Copyright (C) 2009-2025 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) (** [-o ovirt] output mode. *) module OVirt : Output.OUTPUT ================================================ FILE: output/output_ovirt_upload.ml ================================================ (* virt-v2v * Copyright (C) 2009-2025 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) open Printf open Unix open Std_utils open Tools_utils open Common_gettext.Gettext open Types open Utils open Output module OVirtUpload = struct type poptions = string * string * string * string * string * string option * string option * bool * bool * string list option type t = int64 list * string list * string list * Python_script.script * Python_script.script * JSON.field list * string option * string option * string option * string * int list ref let to_string options = "-o ovirt-upload" ^ (match options.output_conn with | Some oc -> " -oc " ^ oc | None -> "") ^ (match options.output_storage with | Some os -> " -os " ^ os | None -> "") let query_output_options () = printf (f_"Output options (-oo) which can be used with -o ovirt-upload: -oo ovirt-cafile=CA.PEM Set ‘ca.pem’ certificate bundle filename. -oo ovirt-cluster=CLUSTERNAME Set oVirt cluster name. -oo ovirt-proxy Connect via oVirt Engine proxy (default: false). -oo ovirt-verifypeer[=true|false] Verify server identity (default: false). You can override the UUIDs of the disks, instead of using autogenerated UUIDs after their uploads (if you do, you must supply one for each disk): -oo ovirt-disk-uuid=UUID Disk UUID ") let rec parse_options options source = let output_conn = match options.output_conn with | None -> error (f_"-o ovirt-upload: use ‘-oc’ to point to the oVirt \ server REST API URL, which is usually \ https://servername/ovirt-engine/api") | Some oc -> oc in (* In theory we could make the password optional in future. *) let output_password = match options.output_password with | None -> error (f_"-o ovirt-upload: output password file was not specified, \ use ‘-op’ to point to a file which contains the password \ used to connect to the oVirt server") | Some op -> op in let output_storage = match options.output_storage with | None -> error (f_"-o ovirt-upload: output storage was not specified, \ use ‘-os’"); | Some os -> os in let ovirt_cafile = ref None in let ovirt_cluster = ref None in let ovirt_direct = ref true in let ovirt_verifypeer = ref false in let ovirt_disk_uuids = ref None in List.iter ( function | ("ovirt-cafile"|"rhv-cafile"), v -> if !ovirt_cafile <> None then error (f_"-o ovirt-upload: -oo ovirt-cafile set more than once"); ovirt_cafile := Some v | ("ovirt-cluster"|"rhv-cluster"), v -> if !ovirt_cluster <> None then error (f_"-o ovirt-upload: -oo ovirt-cluster set more than once"); ovirt_cluster := Some v | ("ovirt-direct"|"rhv-direct"), "" -> ovirt_direct := true | ("ovirt-direct"|"rhv-direct"), v -> ovirt_direct := bool_of_string v | ("ovirt-proxy"|"rhv-proxy"), "" -> ovirt_direct := false | ("ovirt-proxy"|"rhv-proxy"), v -> ovirt_direct := not (bool_of_string v) | ("ovirt-verifypeer"|"rhv-verifypeer"), "" -> ovirt_verifypeer := true | ("ovirt-verifypeer"|"rhv-verifypeer"), v -> ovirt_verifypeer := bool_of_string v | ("ovirt-disk-uuid"|"rhv-disk-uuid"), v -> if not (is_nonnil_uuid v) then error (f_"-o ovirt-upload: invalid UUID for -oo ovirt-disk-uuid"); ovirt_disk_uuids := Some (v :: (Option.value ~default:[] !ovirt_disk_uuids)) | k, _ -> error (f_"-o ovirt-upload: unknown output option ‘-oo %s’") k ) options.output_options; let ovirt_cafile = !ovirt_cafile in let ovirt_cluster = !ovirt_cluster in let ovirt_direct = !ovirt_direct in let ovirt_verifypeer = !ovirt_verifypeer in let ovirt_disk_uuids = Option.map List.rev !ovirt_disk_uuids in let output_name = Option.value ~default:source.s_name options.output_name in (output_conn, options.output_format, output_password, output_name, output_storage, ovirt_cafile, ovirt_cluster, ovirt_direct, ovirt_verifypeer, ovirt_disk_uuids) and is_nonnil_uuid uuid = let nil_uuid = "00000000-0000-0000-0000-000000000000" in let rex_uuid = lazy ( let hex = "[a-fA-F0-9]" in let str = sprintf "^%s{8}-%s{4}-%s{4}-%s{4}-%s{12}$" hex hex hex hex hex in PCRE.compile str ) in if uuid = nil_uuid then false else PCRE.matches (Lazy.force rex_uuid) uuid let rec setup dir options source input_disks = error_if_disk_count_gt input_disks 23; let input_sizes = get_disk_sizes input_disks in let output_conn, output_format, output_password, output_name, output_storage, ovirt_cafile, ovirt_cluster, ovirt_direct, ovirt_verifypeer, ovirt_disk_uuids = options in (* Check that the 'ovirtsdk4' Python module is available. *) let error_unless_ovirtsdk4_module_available () = let res = run_command [ Python_script.python; "-c"; "import ovirtsdk4" ] in if res <> 0 then error (f_"the Python module ‘ovirtsdk4’ could not be loaded, \ is it installed? See previous messages for problems.") in (* Check that nbdkit is available and new enough. *) let error_unless_nbdkit_working () = if not (Nbdkit.is_installed ()) then error (f_"nbdkit is not installed or not working. It is required \ to use ‘-o ovirt-upload’. See the virt-v2v-output-ovirt(1) \ manual.") in (* Check that the python3 plugin is installed and working * and can load the plugin script. *) let error_unless_nbdkit_python_plugin_working plugin_script = let cmd = sprintf "nbdkit python %s --dump-plugin >/dev/null" (quote (Python_script.path plugin_script)) in debug "%s" cmd; if Sys.command cmd <> 0 then error (f_"nbdkit python plugin is not installed or not working. \ It is required if you want to use ‘-o ovirt-upload’. See also the virt-v2v-output-ovirt(1) manual."); in (* Check that nbdkit was compiled with SELinux support (for the * --selinux-label option). *) let error_unless_nbdkit_compiled_with_selinux () = if have_selinux () then ( let config = Nbdkit.config () in let selinux = try List.assoc "selinux" config with Not_found -> "no" in if selinux = "no" then error (f_"nbdkit was compiled without SELinux support. You will \ have to recompile nbdkit with libselinux-devel installed, \ or else set SELinux to Permissive mode while doing the \ conversion.") ) in Python_script.error_unless_python_interpreter_found (); error_unless_ovirtsdk4_module_available (); error_unless_nbdkit_working (); error_unless_nbdkit_compiled_with_selinux (); (* Python code. *) let precheck_script = Python_script.create ~name:"ovirt-upload-precheck.py" Output_ovirt_upload_precheck_source.code in let vmcheck_script = Python_script.create ~name:"ovirt-upload-vmcheck.py" Output_ovirt_upload_vmcheck_source.code in let plugin_script = Python_script.create ~name:"ovirt-upload-plugin.py" Output_ovirt_upload_plugin_source.code in let transfer_script = Python_script.create ~name:"ovirt-upload-transfer.py" Output_ovirt_upload_transfer_source.code in let finalize_script = Python_script.create ~name:"ovirt-upload-finalize.py" Output_ovirt_upload_finalize_source.code in let cancel_script = Python_script.create ~name:"ovirt-upload-cancel.py" Output_ovirt_upload_cancel_source.code in let createvm_script = Python_script.create ~name:"ovirt-upload-createvm.py" Output_ovirt_upload_createvm_source.code in error_unless_nbdkit_python_plugin_working plugin_script; (* JSON parameters which are invariant between disks. *) let json_params = [ "verbose", JSON.Bool (verbose ()); "output_conn", JSON.String output_conn; "output_password", JSON.String output_password; "output_storage", JSON.String output_storage; "ovirt_cafile", json_optstring ovirt_cafile; "ovirt_cluster", JSON.String (Option.value ~default:"Default" ovirt_cluster); "ovirt_direct", JSON.Bool ovirt_direct; (* The 'Insecure' flag seems to be a number with various possible * meanings, however we just set it to True/False. * * https://github.com/oVirt/ovirt-engine-sdk/blob/19aa7070b80e60a4cfd910448287aecf9083acbe/sdk/lib/ovirtsdk4/__init__.py#L395 *) "insecure", JSON.Bool (not ovirt_verifypeer); ] in (* nbdkit command line which is invariant between disks. *) let cmd = Nbdkit.create "python" in Nbdkit.add_arg cmd "script" (Python_script.path plugin_script); (* Match number of parallel coroutines in qemu-img *) Nbdkit.set_threads cmd 8; (* Python code prechecks. *) let json_params = match ovirt_disk_uuids with | None -> json_params | Some uuids -> let ids = List.map (fun uuid -> JSON.String uuid) uuids in ("ovirt_disk_uuids", JSON.List ids) :: json_params in let precheck_json = dir // "v2vprecheck.json" in let fd = Unix.openfile precheck_json [O_WRONLY; O_CREAT; O_TRUNC] 0o600 in if Python_script.run_command ~stdout_fd:fd precheck_script json_params [] <> 0 then error (f_"failed server prechecks, see earlier errors"); if verbose () then debug "precheck output before parsing: %s" (read_whole_file precheck_json); let json = JSON_parser.json_parser_tree_parse_file precheck_json in debug "precheck output parsed as: %s" (JSON.string_of_doc ~fmt:JSON.Indented ["", json]); let ovirt_storagedomain_uuid = Some (JSON_parser.object_get_string "ovirt_storagedomain_uuid" json) in let ovirt_cluster_uuid = Some (JSON_parser.object_get_string "ovirt_cluster_uuid" json) in let ovirt_cluster_cpu_architecture = Some (JSON_parser.object_get_string "ovirt_cluster_cpu_architecture" json) in (* If the disk UUIDs were not provided, then generate them. * This is simpler than letting oVirt generate them and trying * to read them back from oVirt. *) let disk_uuids = match ovirt_disk_uuids with | Some uuids -> let nr_disks = List.length input_disks in if List.length uuids <> nr_disks then error (f_"the number of ‘-oo ovirt-disk-uuid’ parameters passed on \ the command line has to match the number of guest \ disk images (for this guest: %d)") nr_disks; uuids | None -> List.map (fun _ -> uuidgen ()) input_disks in (* This will accumulate the list of transfer IDs from the transfer * script. *) let transfer_ids = ref [] in let ovirt_cluster_name = match List.assoc "ovirt_cluster" json_params with | JSON.String s -> s | _ -> assert false in let json_params = ("output_name", JSON.String output_name) :: json_params in (* Check that the VM does not exist. This can't run in #precheck because * we need to know the name of the virtual machine. *) if Python_script.run_command vmcheck_script json_params [] <> 0 then error (f_"failed vmchecks, see earlier errors"); (* Cancel the transfer and delete disks. * * This ignores errors since the only time we are doing this is on * the failure path. *) let cancel transfer_ids disk_uuids = let ids = List.map (fun id -> JSON.String id) transfer_ids in let json_params = ("transfer_ids", JSON.List ids) :: json_params in let ids = List.map (fun uuid -> JSON.String uuid) disk_uuids in let json_params = ("disk_uuids", JSON.List ids) :: json_params in ignore (Python_script.run_command cancel_script json_params []) in (* Set up an at-exit handler to perform some cleanups. * - Kill nbdkit PIDs (only before finalization). * - Delete the orphan disks (only on conversion failure). *) let nbdkit_pids = ref [] in On_exit.f ( fun () -> (* Kill the nbdkit PIDs. *) List.iter ( fun pid -> try kill pid Sys.sigterm with exn -> debug "%s" (Printexc.to_string exn) ) !nbdkit_pids; nbdkit_pids := []; (* virt-v2v writes v2vdir/done on success only. *) let success = Sys.file_exists (dir // "done") in if not success then ( if disk_uuids <> [] then cancel !transfer_ids disk_uuids ) ); (* Create an nbdkit instance for each disk and set the * target URI to point to the NBD socket. *) let uris = List.mapi ( fun i (size, uuid) -> let socket = sprintf "%s/out%d" dir i in On_exit.unlink socket; let disk_name = sprintf "%s-%03d" output_name i in let json_params = ("disk_name", JSON.String disk_name) :: json_params in let disk_format = match output_format with | "raw" as fmt -> fmt | "qcow2" as fmt -> fmt | _ -> error (f_"ovirt-upload: -of %s: Only output format ‘raw’ \ or ‘qcow2’ \ is supported. If the input is in a different format \ then force one of these output formats by adding \ either ‘-of raw’ or ‘-of qcow2’ on the command line.") output_format in let json_params = ("disk_format", JSON.String disk_format) :: json_params in let json_params = ("disk_size", JSON.Int size) :: json_params in let json_params = ("disk_uuid", JSON.String uuid) :: json_params in (* Write the JSON parameters to a file. *) let json_param_file = dir // sprintf "out.params%d.json" i in with_open_out json_param_file (fun chan -> output_string chan (JSON.string_of_doc json_params)); (* Start the transfer. *) let transfer_json = dir // sprintf "v2vtransfer%d.json" i in let fd = Unix.openfile transfer_json [O_WRONLY; O_CREAT; O_TRUNC] 0o600 in if Python_script.run_command ~stdout_fd:fd transfer_script json_params [] <> 0 then error (f_"failed to start transfer, see earlier errors"); if verbose () then debug "transfer output before parsing: %s" (read_whole_file transfer_json); let json = JSON_parser.json_parser_tree_parse_file transfer_json in debug "transfer output parsed as: %s" (JSON.string_of_doc ~fmt:JSON.Indented ["", json]); let destination_url = JSON_parser.object_get_string "destination_url" json in let transfer_id = JSON_parser.object_get_string "transfer_id" json in List.push_back transfer_ids transfer_id; let is_ovirt_host = JSON_parser.object_get_bool "is_ovirt_host" json in (* Create the nbdkit instance. *) Nbdkit.add_arg cmd "size" (Int64.to_string size); Nbdkit.add_arg cmd "url" destination_url; Option.iter (Nbdkit.add_arg cmd "cafile") ovirt_cafile; if not ovirt_verifypeer then Nbdkit.add_arg cmd "insecure" "true"; if is_ovirt_host then Nbdkit.add_arg cmd "is_ovirt_host" "true"; let _, pid = Nbdkit.run_unix socket cmd in List.push_front pid nbdkit_pids; NBD_URI.Unix (socket, None) ) (List.combine input_sizes disk_uuids) in (* Stash some data we will need during finalization. *) let t = (input_sizes : int64 list), disk_uuids, !transfer_ids, finalize_script, createvm_script, json_params, ovirt_storagedomain_uuid, ovirt_cluster_uuid, ovirt_cluster_cpu_architecture, ovirt_cluster_name, nbdkit_pids in t, uris and json_optstring = function | Some s -> JSON.String s | None -> JSON.Null let finalize dir options t output_disks source inspect target_meta = let output_conn, output_format, output_password, output_name, output_storage, ovirt_cafile, ovirt_cluster, ovirt_direct, ovirt_verifypeer, ovirt_disk_uuids = options in let input_sizes, disk_uuids, transfer_ids, finalize_script, createvm_script, json_params, ovirt_storagedomain_uuid, ovirt_cluster_uuid, ovirt_cluster_cpu_architecture, ovirt_cluster_name, nbdkit_pids = t in (* Check the cluster CPU arch matches what we derived about the * guest during conversion. *) (match ovirt_cluster_cpu_architecture with | None -> assert false | Some arch -> if arch <> target_meta.guestcaps.gcaps_arch then error (f_"the cluster ‘%s’ does not support the architecture %s \ but %s") ovirt_cluster_name target_meta.guestcaps.gcaps_arch arch ); (* We must kill all our nbdkit instances before finalizing the * transfer. See: * https://listman.redhat.com/archives/libguestfs/2022-February/msg00111.html * * We want to fail here if the kill fails because nbdkit * died already, as that would be unexpected. *) let () = let pids = !nbdkit_pids in List.iter (fun pid -> kill pid Sys.sigterm) pids; List.iter (fun pid -> ignore (waitpid [] pid)) pids; nbdkit_pids := [] (* Don't kill them again in the On_exit handler. *) in (* Finalize all the transfers. *) let json_params = let ids = List.map (fun id -> JSON.String id) transfer_ids in let json_params = ("transfer_ids", JSON.List ids) :: json_params in let ids = List.map (fun uuid -> JSON.String uuid) disk_uuids in let json_params = ("disk_uuids", JSON.List ids) :: json_params in json_params in if Python_script.run_command finalize_script json_params [] <> 0 then error (f_"failed to finalize the transfers, see earlier errors"); (* The storage domain UUID. *) let sd_uuid = match ovirt_storagedomain_uuid with | None -> assert false | Some uuid -> uuid in (* The volume and VM UUIDs are made up. *) let vol_uuids = List.map (fun _ -> uuidgen ()) input_sizes and vm_uuid = uuidgen () in (* Create the metadata. *) let ovf = Create_ovf.create_ovf source inspect target_meta input_sizes Sparse output_format output_name sd_uuid disk_uuids vol_uuids output_disks vm_uuid OVirt in let ovf = DOM.doc_to_string ovf in let json_params = match ovirt_cluster_uuid with | None -> assert false | Some uuid -> ("ovirt_cluster_uuid", JSON.String uuid) :: json_params in let ovf_file = dir // "vm.ovf" in with_open_out ovf_file (fun chan -> output_string chan ovf); if Python_script.run_command createvm_script json_params [ovf_file] <> 0 then error (f_"failed to create virtual machine, see earlier errors") (* The imageio server has high overhead per request. Using 4 MiB * request size is 1.8x times faster compared with nbdcopy default * request size (256k). *) let request_size = Some (4*1024*1024) end ================================================ FILE: output/output_ovirt_upload.mli ================================================ (* virt-v2v * Copyright (C) 2009-2025 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) (** [-o ovirt-upload] output mode. *) module OVirtUpload : Output.OUTPUT ================================================ FILE: output/output_ovirt_upload_cancel_source.mli ================================================ (* virt-v2v * Copyright (C) 2019 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) val code : string ================================================ FILE: output/output_ovirt_upload_createvm_source.mli ================================================ (* virt-v2v * Copyright (C) 2018 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) val code : string ================================================ FILE: output/output_ovirt_upload_finalize_source.mli ================================================ (* virt-v2v * Copyright (C) 2019 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) val code : string ================================================ FILE: output/output_ovirt_upload_plugin_source.mli ================================================ (* virt-v2v * Copyright (C) 2018 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) val code : string ================================================ FILE: output/output_ovirt_upload_precheck_source.mli ================================================ (* virt-v2v * Copyright (C) 2019 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) val code : string ================================================ FILE: output/output_ovirt_upload_transfer_source.mli ================================================ (* virt-v2v * Copyright (C) 2019 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) val code : string ================================================ FILE: output/output_ovirt_upload_vmcheck_source.mli ================================================ (* virt-v2v * Copyright (C) 2018 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) val code : string ================================================ FILE: output/output_qemu.ml ================================================ (* virt-v2v * Copyright (C) 2009-2025 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) open Printf open Unix open Std_utils open Tools_utils open Common_gettext.Gettext open Types open Utils open Output module QEMU = struct type poptions = bool * bool * Types.output_allocation * string * string * string type t = unit let to_string options = "-o qemu" ^ match options.output_storage with | Some os -> " -os " ^ os | None -> "" let query_output_options () = printf (f_"Output options (-oo) which can be used with -o qemu: -oo compressed Compress the output file (used only with -of qcow2) -oo qemu-boot Boot the guest in qemu after conversion ") let parse_options options source = if options.output_password <> None then error_option_cannot_be_used_in_output_mode "qemu" "-op"; let compressed = ref false and qemu_boot = ref false in List.iter ( function | "compressed", "" -> compressed := true | "compressed", v -> compressed := bool_of_string v | "qemu-boot", "" -> qemu_boot := true | "qemu-boot", v -> qemu_boot := bool_of_string v | k, _ -> error (f_"-o qemu: unknown output option ‘-oo %s’") k ) options.output_options; let compressed = !compressed and qemu_boot = !qemu_boot in (* -os must be set to a directory. *) let output_storage = match options.output_storage with | None -> error (f_"-o qemu: output directory was not specified, use '-os /dir'") | Some d when not (is_directory d) -> error (f_"-os %s: output directory does not exist or is \ not a directory") d | Some d -> d in let output_name = Option.value ~default:source.s_name options.output_name in (compressed, qemu_boot, options.output_alloc, options.output_format, output_name, output_storage) let setup dir options source input_disks = let input_sizes = get_disk_sizes input_disks in let compressed, _, output_alloc, output_format, output_name, output_storage = options in let uris = List.mapi ( fun i size -> let socket = sprintf "%s/out%d" dir i in On_exit.unlink socket; (* Create the actual output disk. *) let outdisk = disk_path output_storage output_name i in output_to_local_file ~compressed output_alloc output_format outdisk size socket; NBD_URI.Unix (socket, None) ) input_sizes in (), uris let finalize dir options () output_disks source inspect target_meta = let _, qemu_boot, output_alloc, output_format, output_name, output_storage = options in let { guestcaps; target_buses; target_firmware; target_boot_device } = target_meta in (* Start the shell script. Write it to a temporary file * which we rename at the end. *) let file = output_storage // (sanitize_slash output_name) ^ ".sh" in let tmpfile = file ^ ".tmp" in On_exit.unlink tmpfile; let chan = open_out tmpfile in let fpf fs = fprintf chan fs in fpf "#!/bin/sh -\n"; fpf "\n"; fpf "set -e\n"; fpf "#set -x\n"; fpf "\n"; (* Allow the user to override our choice of machine type. *) let () = let machine_str = match guestcaps.gcaps_machine with | I440FX -> "pc" | Q35 -> "q35" | Virt -> "virt" in fpf "machine=%s\n" machine_str; fpf "\n" in (* If the firmware is UEFI, locate the OVMF files. *) (match target_firmware with | TargetBIOS -> () | TargetUEFI -> let prefix = match guestcaps.gcaps_arch with | "x86_64" -> fpf "uefi_dir=/usr/share/OVMF\n"; "OVMF" | "aarch64" -> fpf "uefi_dir=/usr/share/AAVMF\n"; "AAVMF" | arch -> error (f_"don’t know how to convert UEFI guests \ for architecture %s") arch in fpf "uefi_code=\"$( \ find $uefi_dir -name '%s_CODE*.fd' -print -quit )\"\n" prefix; fpf "uefi_vars_template=\"$( \ find $uefi_dir -name '%s_VARS.fd' -print -quit )\"\n" prefix; fpf "\n"; fpf "# Make a copy of the UEFI variables template\n"; fpf "uefi_vars=\"$(mktemp)\"\n"; fpf "cp \"$uefi_vars_template\" \"$uefi_vars\"\n"; fpf "\n"; fpf "smm=off\n"; ); (* Construct the command line. Note that the [Qemuopts] * module deals with shell and qemu comma quoting. *) let cmd = Qemuopts.create () in Qemuopts.set_binary_by_arch cmd (Some guestcaps.gcaps_arch); let flag = Qemuopts.flag cmd and arg = Qemuopts.arg cmd and arg_noquote = Qemuopts.arg_noquote cmd and arg_list = Qemuopts.arg_list cmd in flag "-no-user-config"; flag "-nodefaults"; arg "-name" output_name; (match source.s_genid with | None -> () | Some genid -> arg_list "-device" ["vmgenid"; sprintf "guid=%s" genid; "id=vmgenid0"] ); if not guestcaps.gcaps_rtc_utc then arg "-rtc" "base=localtime"; arg_noquote "-machine" "$machine${smm:+,smm=$smm},accel=kvm:tcg"; fpf "if [ \"$uefi_code\" != \"\" ]; then\n"; fpf " uefi_args=\"\\\n"; fpf " -global driver=cfi.pflash01,property=secure,value=$smm \\\n"; fpf " -drive if=pflash,format=raw,file=$uefi_code,readonly=on \\\n"; fpf " -drive if=pflash,format=raw,file=$uefi_vars \\\n"; fpf " \"\n"; fpf "fi\n"; fpf "\n"; Qemuopts.raw cmd "$uefi_args"; arg "-m" (Int64.to_string (source.s_memory /^ 1024L /^ 1024L)); arg "-cpu" (Option.value ~default:"host" source.s_cpu_model); if source.s_vcpu > 1 then ( (match source.s_cpu_topology with | None -> arg "-smp" (string_of_int source.s_vcpu) | Some { s_cpu_sockets; s_cpu_cores; s_cpu_threads } -> let args = [ sprintf "cpus=%d" source.s_vcpu; sprintf "sockets=%d" s_cpu_sockets; sprintf "cores=%d" s_cpu_cores; sprintf "threads=%d" s_cpu_threads; ] in arg_list "-smp" args ); ); (* For IDE disks, IDE CD-ROMs, SCSI disks, SCSI CD-ROMs, and floppies, we * need host-bus adapters (HBAs) between these devices and the PCI(e) root * bus. Some machine types create these HBAs automatically (despite * "-no-user-config -nodefaults"), some don't... *) let disk_cdrom_filter = function | BusSlotDisk _ | BusSlotRemovable { s_removable_type = CDROM } -> true | _ -> false and floppy_filter = function | BusSlotRemovable { s_removable_type = Floppy } -> true | _ -> false in let ide_ctrl_needed = Array.exists disk_cdrom_filter target_buses.target_ide_bus and scsi_ctrl_needed = Array.exists disk_cdrom_filter target_buses.target_scsi_bus and floppy_ctrl_needed = Array.exists floppy_filter target_buses.target_floppy_bus in if ide_ctrl_needed then ( match guestcaps.gcaps_machine with | I440FX -> () (* The PC machine has a built-in controller of type "piix3-ide" * providing buses "ide.0" and "ide.1", with each bus fitting two * devices. *) | Q35 -> () (* The Q35 machine has a built-in controller of type "ich9-ahci" * providing buses "ide.0" through "ide.5", with each bus fitting one * device. *) | Virt -> warning (f_"The Virt machine has no support for IDE. Please \ report a bug for virt-v2v -- refer to virt-v2v(1) \ section \"BUGS\".") ); if scsi_ctrl_needed then (* We need to add the virtio-scsi HBA on all three machine types. The bus * provided by this device will be called "scsi0.0". *) arg_list "-device" [ "virtio-scsi-pci"; "id=scsi0" ]; if floppy_ctrl_needed then ( match guestcaps.gcaps_machine with | I440FX -> () (* The PC machine has a built-in controller of type "isa-fdc" * providing bus "floppy-bus.0", fitting two devices. *) | Q35 -> arg_list "-device" [ "isa-fdc"; "id=floppy-bus" ] (* On the Q35 machine, we need to add the same HBA manually. Note that * the bus name will have ".0" appended automatically. *) | Virt -> warning (f_"The Virt machine has no support for floppies. \ Please report a bug for virt-v2v -- refer to \ virt-v2v(1) section \"BUGS\".") ); let add_disk_backend disk_id backend_name = (* Add a drive (back-end) for a "virtio-blk-pci", "ide-hd", or "scsi-hd" * device (front-end). The drive has a backing file, identified by * "disk_id". *) let outdisk = disk_path output_storage output_name disk_id in let bootindex = match target_boot_device with | None -> disk_id+1 | Some disk_index when disk_index = disk_id -> 1 | Some _ -> disk_id+2 in arg_list "-drive" [ "file=" ^ outdisk; "format=" ^ output_format; "if=none"; "id=" ^ backend_name; "media=disk"; sprintf "bootindex=%d" bootindex ] and add_cdrom_backend backend_name = (* Add a drive (back-end) for an "ide-cd" or "scsi-cd" device (front-end). * The drive is empty -- there is no backing file. *) arg_list "-drive" [ "if=none"; "id=" ^ backend_name; "media=cdrom" ] and add_floppy_backend backend_name = (* Add a drive (back-end) for a "floppy" device (front-end). The drive is * empty -- there is no backing file. *) arg_list "-drive" [ "if=none"; "id=" ^ backend_name; "media=disk" ] in let add_virtio_blk disk_id frontend_ctr = (* Create a "virtio-blk-pci" device (front-end), together with its drive * (back-end). The disk identifier is mandatory. *) let backend_name = sprintf "drive-vblk-%d" frontend_ctr in add_disk_backend disk_id backend_name; arg_list "-device" [ "virtio-blk-pci"; "drive=" ^ backend_name ] and add_ide disk_id frontend_ctr = (* Create an "ide-hd" or "ide-cd" device (front-end), together with its * drive (back-end). If a disk identifier is passed in, then "ide-hd" is * created (with a non-empty drive); otherwise, "ide-cd" is created (with * an empty drive). *) let backend_name = sprintf "drive-ide-%d" frontend_ctr and ide_bus, ide_unit = match guestcaps.gcaps_machine with | I440FX -> frontend_ctr / 2, frontend_ctr mod 2 | Q35 -> frontend_ctr, 0 | Virt -> 0, 0 (* should never happen, see warning above *) in let common_props = [ sprintf "bus=ide.%d" ide_bus; sprintf "unit=%d" ide_unit; "drive=" ^ backend_name ] in (match disk_id with | Some id -> add_disk_backend id backend_name; arg_list "-device" ("ide-hd" :: common_props) | None -> add_cdrom_backend backend_name; arg_list "-device" ("ide-cd" :: common_props)) and add_scsi disk_id frontend_ctr = (* Create a "scsi-hd" or "scsi-cd" device (front-end), together with its * drive (back-end). If a disk identifier is passed in, then "scsi-hd" is * created (with a non-empty drive); otherwise, "scsi-cd" is created (with * an empty drive). *) let backend_name = sprintf "drive-scsi-%d" frontend_ctr in let common_props = [ "bus=scsi0.0"; sprintf "lun=%d" frontend_ctr; "drive=" ^ backend_name ] in (match disk_id with | Some id -> add_disk_backend id backend_name; arg_list "-device" ("scsi-hd" :: common_props) | None -> add_cdrom_backend backend_name; arg_list "-device" ("scsi-cd" :: common_props)) and add_floppy frontend_ctr = (* Create a "floppy" (front-end), together with its empty drive * (back-end). *) let backend_name = sprintf "drive-floppy-%d" frontend_ctr in add_floppy_backend backend_name; arg_list "-device" [ "floppy"; "bus=floppy-bus.0"; sprintf "unit=%d" frontend_ctr; "drive=" ^ backend_name ] in (* Add virtio-blk-pci devices for BusSlotDisk elements on * "target_virtio_blk_bus". *) Array.iteri (fun frontend_ctr disk -> match disk with | BusSlotDisk d -> add_virtio_blk d.s_disk_id frontend_ctr | _ -> ()) target_buses.target_virtio_blk_bus; let add_disk_or_cdrom bus_adder frontend_ctr slot = (* Add a disk or CD-ROM front-end to the IDE or SCSI bus. *) match slot with | BusSlotDisk d -> bus_adder (Some d.s_disk_id) frontend_ctr | BusSlotRemovable { s_removable_type = CDROM } -> bus_adder None frontend_ctr | _ -> () in (* Add disks and CD-ROMs to the IDE and SCSI buses. *) Array.iteri (add_disk_or_cdrom add_ide) target_buses.target_ide_bus; Array.iteri (add_disk_or_cdrom add_scsi) target_buses.target_scsi_bus; (* Add floppies. *) Array.iteri (fun frontend_ctr disk -> match disk with | BusSlotRemovable { s_removable_type = Floppy } -> add_floppy frontend_ctr | _ -> ()) target_buses.target_floppy_bus; let net_bus = match guestcaps.gcaps_net_bus with | Virtio_net -> "virtio-net-pci" | E1000 -> "e1000" | RTL8139 -> "rtl8139" in List.iteri ( fun i nic -> arg_list "-netdev" ["user"; "id=net" ^ string_of_int i]; arg_list "-device" ([net_bus; sprintf "netdev=net%d" i] @ (match nic.s_mac with | None -> [] | Some mac -> ["mac=" ^ mac])) ) target_meta.target_nics; (* Add a display. *) (match source.s_display with | None -> () | Some display -> (match display.s_display_type with | Window -> arg "-display" "gtk" | VNC -> arg "-display" "vnc=:0" | Spice -> arg_list "-spice" [sprintf "port=%d" (match display.s_port with | None -> 5900 | Some p -> p); "addr=127.0.0.1"] ); arg "-vga" "std" ); (* Add a sound card. *) (match source.s_sound with | None -> () | Some { s_sound_model = model } -> if qemu_supports_sound_card model then ( match model with | AC97 -> arg "-device" "AC97" | ES1370 -> arg "-device" "ES1370" | ICH6 -> arg "-device" "intel-hda"; arg "-device" "hda-duplex" (* XXX ich9 is a q35-only device, so it's not likely that this will work unless we can force q35 above: *) | ICH9 -> arg "-device" "ich9-intel-hda" | PCSpeaker -> arg "-soundhw" "pcspk" (* not qdev-ified *) | SB16 -> arg "-device" "sb16" | USBAudio -> arg "-device" "usb-audio" ) ); (* Add the miscellaneous KVM devices. *) if guestcaps.gcaps_virtio_rng then ( arg_list "-object" ["rng-random"; "filename=/dev/urandom"; "id=rng0"]; arg_list "-device" ["virtio-rng-pci"; "rng=rng0"]; ); if guestcaps.gcaps_virtio_balloon then arg "-device" "virtio-balloon"; if guestcaps.gcaps_isa_pvpanic then arg_list "-device" ["pvpanic"; "ioport=0x505"]; if guestcaps.gcaps_virtio_socket then ( (* qemu requires a free guest CID to be chosen. If you use libvirt * then it does this by iterating over the CIDs doing * ioctl(fd, VHOST_VSOCK_SET_GUEST_CID, &val) on each one until * it finds a free CID. See: * https://bugzilla.redhat.com/show_bug.cgi?id=1291851#c6 * * As that is essentially impossible to do from the shell script, * instead assign a semi-random one here. Using the PID of * virt-v2v means that we're most likely to assign an unused * CID, especially with modern Linux which has a very large * PID space. Note that CID must be [3..UINT32_MAX-1] and * max PID in Linux is 2^22. *) let pid = getpid () in let pid = max 3 pid in (* In OCaml 4.13 we could use this, if we were worried about a future system having very large PIDs: let pid = Int64.( min (max 3L (of_int (getpid ()))) (of_int32 Int32.max_int) ) in *) let guest_cid = sprintf "guest-cid=%d" pid in arg_list "-device" ["vhost-vsock-pci"; guest_cid ] ); (* Add a serial console to Linux guests. *) if inspect.i_type = "linux" then arg "-serial" "stdio"; (* Write the qemu command. *) Qemuopts.to_chan cmd chan; (* Finish off by renaming the temporary file to the final file * and making it executable. *) Unix.rename tmpfile file; Unix.chmod file 0o755; (* If -oo qemu-boot option was specified then we should boot the guest. *) if qemu_boot then ( let cmd = sprintf "%s &" (quote file) in ignore (shell_command cmd) ) let request_size = None end ================================================ FILE: output/output_qemu.mli ================================================ (* virt-v2v * Copyright (C) 2009-2025 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) (** [-o qemu] output mode. *) module QEMU : Output.OUTPUT ================================================ FILE: output/output_vdsm.ml ================================================ (* virt-v2v * Copyright (C) 2009-2025 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) open Printf open Unix open Std_utils open Tools_utils open Common_gettext.Gettext open Types open Utils open Output module VDSM = struct type poptions = Types.output_allocation * string * string * string * string list * string list * string * string * string * Create_ovf.ovf_flavour type t = string * string * int64 list let to_string options = "-o vdsm" let query_output_options () = let ovf_flavours_str = String.concat "|" Create_ovf.ovf_flavours in printf (f_"Output options (-oo) which can be used with -o vdsm: -oo vdsm-compat=0.10|1.1 Write qcow2 with compat=0.10|1.1 (default: 0.10) -oo vdsm-vm-uuid=UUID VM UUID (required) -oo vdsm-ovf-output=DIR OVF metadata directory (required) -oo vdsm-ovf-flavour=%s Set the type of generated OVF (default: ovirtexp) For each disk you must supply one of each of these options: -oo vdsm-image-uuid=UUID Image directory UUID -oo vdsm-vol-uuid=UUID Disk volume UUID ") ovf_flavours_str let parse_options options source = if options.output_password <> None then error_option_cannot_be_used_in_output_mode "vdsm" "-op"; let vm_uuid = ref None in let ovf_output = ref None in (* default "." *) let compat = ref "0.10" in let ovf_flavour = ref Create_ovf.OVirtExportStorageDomain in let image_uuids = ref [] in let vol_uuids = ref [] in List.iter ( function | "vdsm-compat", "0.10" -> compat := "0.10" | "vdsm-compat", "1.1" -> compat := "1.1" | "vdsm-compat", v -> error (f_"-o vdsm: unknown vdsm-compat level ‘%s’") v | "vdsm-vm-uuid", v -> if !vm_uuid <> None then error (f_"-o vdsm: -oo vdsm-vm-uuid set more than once"); vm_uuid := Some v; | "vdsm-ovf-output", v -> if !ovf_output <> None then error (f_"-o vdsm: -oo vdsm-ovf-output set more than once"); ovf_output := Some v; | "vdsm-ovf-flavour", v -> ovf_flavour := Create_ovf.ovf_flavour_of_string v | "vdsm-image-uuid", v -> List.push_front v image_uuids | "vdsm-vol-uuid", v -> List.push_front v vol_uuids | k, _ -> error (f_"-o vdsm: unknown output option ‘-oo %s’") k ) options.output_options; let compat = !compat in let image_uuids = List.rev !image_uuids in let vol_uuids = List.rev !vol_uuids in if image_uuids = [] || vol_uuids = [] then error (f_"-o vdsm: either -oo vdsm-vol-uuid or \ -oo vdsm-vm-uuid was not specified"); let vm_uuid = match !vm_uuid with | None -> error (f_"-o vdsm: -oo vdsm-image-uuid was not specified") | Some uuid -> uuid in let ovf_output = Option.value ~default:"." !ovf_output in let ovf_flavour = !ovf_flavour in (* -os must be set, but at this point we cannot check it. *) let output_storage = match options.output_storage with | None -> error (f_"-o vdsm: -os option was not specified") | Some d when not (is_directory d) -> error (f_"-os %s: output directory does not exist \ or is not a directory") d | Some d -> d in let output_name = Option.value ~default:source.s_name options.output_name in (options.output_alloc, options.output_format, output_name, output_storage, image_uuids, vol_uuids, vm_uuid, ovf_output, compat, ovf_flavour) let setup dir options source input_disks = error_if_disk_count_gt input_disks 23; let input_sizes = get_disk_sizes input_disks in let output_alloc, output_format, output_name, output_storage, image_uuids, vol_uuids, vm_uuid, ovf_output, compat, ovf_flavour = options in if List.length image_uuids <> List.length input_disks || List.length vol_uuids <> List.length input_disks then error (f_"the number of ‘-oo vdsm-image-uuid’ and ‘-oo vdsm-vol-uuid’ \ parameters passed on the command line has to match the \ number of guest disk images (for this guest: %d)") (List.length input_disks); let dd_mp, dd_uuid = let fields = String.nsplit "/" output_storage in (* ... "data-center" "UUID" *) let fields = List.rev fields in (* "UUID" "data-center" ... *) let fields = List.drop_while ((=) "") fields in match fields with | uuid :: rest when String.length uuid = 36 -> let mp = String.concat "/" (List.rev rest) in mp, uuid | _ -> error (f_"vdsm: invalid -os parameter \ does not contain a valid UUID: %s") output_storage in debug "VDSM: DD mountpoint: %s\nVDSM: DD UUID: %s" dd_mp dd_uuid; (* Note that VDSM has to create all these directories. *) let images_dir = dd_mp // dd_uuid // "images" in List.iter ( fun image_uuid -> let d = images_dir // image_uuid in if not (is_directory d) then error (f_"image directory (%s) does not exist or is not a directory") d ) image_uuids; (* Note that VDSM has to create this directory too. *) if not (is_directory ovf_output) then error (f_"OVF (metadata) directory (%s) does not exist or \ is not a directory") ovf_output; debug "VDSM: OVF (metadata) directory: %s" ovf_output; (* The final directory structure should look like this: * ///images/ * / # first disk * /.meta # first disk * / # second disk * /.meta # second disk * / # etc * /.meta # *) (* Create the target filenames. *) let filenames = List.map ( fun (image_uuid, vol_uuid) -> let filename = images_dir // image_uuid // vol_uuid in debug "VDSM: disk: %s" filename; filename ) (List.combine image_uuids vol_uuids) in (* Generate the .meta files associated with each volume. *) let metas = Create_ovf.create_meta_files output_alloc output_format dd_uuid image_uuids input_sizes in List.iter ( fun (filename, meta) -> let meta_filename = filename ^ ".meta" in with_open_out meta_filename (fun chan -> output_string chan meta) ) (List.combine filenames metas); (* Set up the NBD servers. *) let uris = List.mapi ( fun i (size, filename) -> let socket = sprintf "%s/out%d" dir i in On_exit.unlink socket; (* Create the actual output disk. *) output_to_local_file output_alloc output_format filename size socket; NBD_URI.Unix (socket, None) ) (List.combine input_sizes filenames) in (* Save parameters since we need them during finalization. *) let t = dd_mp, dd_uuid, input_sizes in t, uris let finalize dir options t output_disks source inspect target_meta = let output_alloc, output_format, output_name, output_storage, image_uuids, vol_uuids, vm_uuid, ovf_output, compat, ovf_flavour = options in let dd_mp, dd_uuid, sizes = t in (* Create the metadata. *) let ovf = Create_ovf.create_ovf source inspect target_meta sizes output_alloc output_format output_name dd_uuid image_uuids vol_uuids output_disks vm_uuid ovf_flavour in (* Write it to the metadata file. *) let file = ovf_output // vm_uuid ^ ".ovf" in with_open_out file (fun chan -> DOM.doc_to_chan chan ovf) let request_size = None end ================================================ FILE: output/output_vdsm.mli ================================================ (* virt-v2v * Copyright (C) 2009-2025 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) (** [-o vdsm] output mode. *) module VDSM : Output.OUTPUT ================================================ FILE: output/ovirt-upload-cancel.py ================================================ # -*- python -*- # oVirt upload cancel used by ‘virt-v2v -o ovirt-upload’ # Copyright (C) 2019-2025 Red Hat Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License along # with this program; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. import json import logging import sys from contextlib import closing from urllib.parse import urlparse, urlunparse import ovirtsdk4 as sdk import ovirtsdk4.types as types def debug(s): if params['verbose']: print(s, file=sys.stderr) sys.stderr.flush() # Parameters are passed in via a JSON doc from the OCaml code. # Because this Python code ships embedded inside virt-v2v there # is no formal API here. params = None if len(sys.argv) != 2: raise RuntimeError("incorrect number of parameters") # Parameters are passed in via a JSON document. with open(sys.argv[1], 'r') as fp: params = json.load(fp) # What is passed in is a password file, read the actual password. with open(params['output_password'], 'r') as fp: output_password = fp.read() output_password = output_password.rstrip() # Parse out the username from the output_conn URL. parsed = urlparse(params['output_conn']) username = parsed.username or "admin@internal" netloc = f"{parsed.hostname:parsed.port}" if parsed.port else parsed.hostname # Connect to the server. connection = sdk.Connection( url=urlunparse(parsed._replace(netloc=netloc)), username=username, password=output_password, ca_file=params['ovirt_cafile'], log=logging.getLogger(), insecure=params['insecure'], ) with closing(connection): system_service = connection.system_service() image_transfers_service = system_service.image_transfers_service() # Try to cancel the transfers. This should delete the associated disk. for id in params['transfer_ids']: try: transfer_service = \ image_transfers_service.image_transfer_service(id) transfer_service.cancel() except sdk.NotFoundError: debug("unexpected error: transfer id %s not found" % id) except Exception: if params['verbose']: traceback.print_exc() disks_service = system_service.disks_service() # In case we didn't associate a disk with a transfer and as a last # resort, delete the disk too. for uuid in params['disk_uuids']: try: disk_service = disks_service.disk_service(uuid) disk_service.remove() except (sdk.NotFoundError, sdk.Error): # We expect these exceptions so ignore them. pass except Exception: if params['verbose']: traceback.print_exc() ================================================ FILE: output/ovirt-upload-createvm.py ================================================ # -*- python -*- # oVirt upload create VM used by ‘virt-v2v -o ovirt-upload’ # Copyright (C) 2018 Red Hat Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License along # with this program; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. import json import logging import sys import time import uuid from urllib.parse import urlparse, urlunparse import ovirtsdk4 as sdk import ovirtsdk4.types as types def debug(s): if params['verbose']: print(s, file=sys.stderr) sys.stderr.flush() def jobs_completed(system_service, correlation_id): jobs_service = system_service.jobs_service() try: jobs = jobs_service.list( search="correlation_id=%s" % correlation_id) except sdk.Error as e: debug( "Error searching for jobs with correlation id %s: %s" % (correlation_id, e)) # We don't know, assume that jobs did not complete yet. return False # STARTED is the only "in progress" status, anything else means the job # has already terminated. if all(job.status != types.JobStatus.STARTED for job in jobs): failed_jobs = [(job.description, str(job.status)) for job in jobs if job.status != types.JobStatus.FINISHED] if failed_jobs: raise RuntimeError( "Failed to create a VM! Failed jobs: %r" % failed_jobs) return True else: running_jobs = [(job.description, str(job.status)) for job in jobs] debug("Some jobs with correlation id %s are running: %s" % (correlation_id, running_jobs)) return False # Seconds to wait for the VM import job to complete in oVirt. timeout = 3 * 60 # Parameters are passed in via a JSON doc from the OCaml code. # Because this Python code ships embedded inside virt-v2v there # is no formal API here. params = None ovf = None # OVF file if len(sys.argv) != 3: raise RuntimeError("incorrect number of parameters") # Parameters are passed in via a JSON document. with open(sys.argv[1], 'r') as fp: params = json.load(fp) # What is passed in is a password file, read the actual password. with open(params['output_password'], 'r') as fp: output_password = fp.read() output_password = output_password.rstrip() # Read the OVF document. with open(sys.argv[2], 'r') as fp: ovf = fp.read() # Parse out the username from the output_conn URL. parsed = urlparse(params['output_conn']) username = parsed.username or "admin@internal" netloc = f"{parsed.hostname:parsed.port}" if parsed.port else parsed.hostname # Connect to the server. connection = sdk.Connection( url=urlunparse(parsed._replace(netloc=netloc)), username=username, password=output_password, ca_file=params['ovirt_cafile'], log=logging.getLogger(), insecure=params['insecure'], ) system_service = connection.system_service() # Get the cluster. cluster = system_service.clusters_service().cluster_service(params['ovirt_cluster_uuid']) cluster = cluster.get() correlation_id = str(uuid.uuid4()) vms_service = system_service.vms_service() vm = vms_service.add( types.Vm( cluster=cluster, initialization=types.Initialization( configuration=types.Configuration( type=types.ConfigurationType.OVA, data=ovf, ) ) ), query={'correlation_id': correlation_id}, ) # Wait for the import job to finish. endt = time.monotonic() + timeout while True: time.sleep(10) if jobs_completed(system_service, correlation_id): break if time.monotonic() > endt: raise RuntimeError( "Timed out waiting for VM creation!" " Jobs still running for correlation id %s" % correlation_id) ================================================ FILE: output/ovirt-upload-finalize.py ================================================ # -*- python -*- # oVirt upload finalize used by ‘virt-v2v -o ovirt-upload’ # Copyright (C) 2018-2025 Red Hat Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License along # with this program; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. import json import logging import sys import time from urllib.parse import urlparse, urlunparse import ovirtsdk4 as sdk import ovirtsdk4.types as types # Timeout to wait for oVirt disks to change status, or the transfer # object to finish initializing [seconds]. timeout = 5 * 60 def debug(s): if params['verbose']: print(s, file=sys.stderr) sys.stderr.flush() def finalize_transfer(connection, transfer_id, disk_id): """ Finalize a transfer, making the transfer disk available. If finalizing succeeds, the transfer's disk status will change to OK and transfer's phase will change to FINISHED_SUCCESS. Unfortunately, the disk status is modified before the transfer finishes, and oVirt may still hold a lock on the disk at this point. The only way to make sure that the disk is unlocked, is to wait until the transfer phase switches FINISHED_SUCCESS. Unfortunately oVirt makes this hard to use because the transfer is removed shortly after switching the phase to the final phase. However if the transfer was removed, we can be sure that the disk is not locked, since oVirt releases the locks before removing the transfer. On errors, the transfer's phase will change to FINISHED_FAILURE and the disk status will change to ILLEGAL and it will be removed. Again the transfer will be removed shortly after that. If oVirt fails to finalize the transfer, transfer's phase will change to PAUSED_SYSTEM. In this case the disk's status will change to ILLEGAL and it will not be removed. oVirt 4.4.7 made waiting for transfer easier by keeping transfers after they complete, but we must support older versions so we have generic code that work with any version. For more info see: - http://ovirt.github.io/ovirt-engine-api-model/4.4/#services/image_transfer - http://ovirt.github.io/ovirt-engine-sdk/master/types.m.html#ovirtsdk4.types.ImageTransfer """ debug("finalizing transfer %s" % transfer_id) transfer_service = (connection.system_service() .image_transfers_service() .image_transfer_service(transfer_id)) start = time.monotonic() transfer_service.finalize() while True: time.sleep(1) try: transfer = transfer_service.get() except sdk.NotFoundError: # Transfer was removed (ovirt < 4.4.7). We need to check the # disk status to understand if the transfer was successful. # Due to the way oVirt does locking, we know that the disk # is unlocked at this point so we can check only once. debug("transfer %s was removed, checking disk %s status" % (transfer_id, disk_id)) disk_service = (connection.system_service() .disks_service() .disk_service(disk_id)) try: disk = disk_service.get() except sdk.NotFoundError: raise RuntimeError( "transfer %s failed: disk %s was removed" % (transfer_id, disk_id)) debug("disk %s is %s" % (disk.id, disk.status)) if disk.status == types.DiskStatus.OK: break raise RuntimeError( "transfer %s failed: disk is %s" % (transfer_id, disk.status)) else: # Transfer exists, check if it reached one of the final # phases, or we timed out. debug("transfer %s is %s" % (transfer.id, transfer.phase)) if transfer.phase == types.ImageTransferPhase.FINISHED_SUCCESS: break if transfer.phase == types.ImageTransferPhase.FINISHED_FAILURE: raise RuntimeError( "transfer %s has failed" % (transfer_id,)) if transfer.phase == types.ImageTransferPhase.PAUSED_SYSTEM: raise RuntimeError( "transfer %s was paused by system" % (transfer.id,)) if time.monotonic() > start + timeout: raise RuntimeError( "timed out waiting for transfer %s to finalize, " "transfer is %s" % (transfer.id, transfer.phase)) debug("transfer %s finalized in %.3f seconds" % (transfer_id, time.monotonic() - start)) # Parameters are passed in via a JSON doc from the OCaml code. # Because this Python code ships embedded inside virt-v2v there # is no formal API here. params = None if len(sys.argv) != 2: raise RuntimeError("incorrect number of parameters") # Parameters are passed in via a JSON document. with open(sys.argv[1], 'r') as fp: params = json.load(fp) # What is passed in is a password file, read the actual password. with open(params['output_password'], 'r') as fp: output_password = fp.read() output_password = output_password.rstrip() # Parse out the username from the output_conn URL. parsed = urlparse(params['output_conn']) username = parsed.username or "admin@internal" netloc = f"{parsed.hostname:parsed.port}" if parsed.port else parsed.hostname # Connect to the server. connection = sdk.Connection( url=urlunparse(parsed._replace(netloc=netloc)), username=username, password=output_password, ca_file=params['ovirt_cafile'], log=logging.getLogger(), insecure=params['insecure'], ) # Finalize all the transfers. for (transfer_id, disk_id) in zip(params['transfer_ids'], params['disk_uuids']): finalize_transfer(connection, transfer_id, disk_id) connection.close() ================================================ FILE: output/ovirt-upload-plugin.py ================================================ # -*- python -*- # oVirt upload nbdkit plugin used by ‘virt-v2v -o ovirt-upload’ # Copyright (C) 2018-2025 Red Hat Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License along # with this program; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. import json import queue import socket import ssl import threading import time from contextlib import contextmanager from http.client import HTTPSConnection, HTTPConnection from urllib.parse import urlparse import nbdkit # Using version 2 supporting the buffer protocol for better performance. API_VERSION = 2 # Maximum number of connection to imageio server. Based on testing with imageio # client, this give best performance. MAX_CONNECTIONS = 4 # Maximum idle time allowed for imageio connections. IDLE_TIMEOUT = 30 # Required parameters. size = None url = None # Optional parameters. cafile = None insecure = False is_ovirt_host = False # List of options read from imageio server. options = None # Pool of HTTP connections. pool = None # Set when plugin is cleaning up. done = threading.Event() # Set when periodic flush request fails. pool_error = None # Parse parameters. def config(key, value): global cafile, url, is_ovirt_host, insecure, size if key == "cafile": cafile = value elif key == "insecure": insecure = value.lower() in ['true', '1'] elif key == "is_ovirt_host": is_ovirt_host = value.lower() in ['true', '1'] elif key == "size": size = int(value) elif key == "url": url = urlparse(value) else: raise RuntimeError("unknown configuration key '%s'" % key) def config_complete(): # These parameters are required. if url is None: raise RuntimeError("url parameter was not set") if size is None: raise RuntimeError("size parameter was not set") def after_fork(): global options, pool http = create_http(url) options = get_options(http, url) http.close() nbdkit.debug("imageio features: flush=%(can_flush)r " "zero=%(can_zero)r unix_socket=%(unix_socket)r " "max_readers=%(max_readers)r max_writers=%(max_writers)r" % options) pool = create_http_pool(url, options) t = threading.Thread(target=pool_keeper, name="poolkeeper") t.daemon = True t.start() # This function is not actually defined before nbdkit 1.28, but it # doesn't particularly matter if we don't close the pool because # clients should call flush(). def cleanup(): nbdkit.debug("cleaning up") done.set() close_http_pool(pool) def thread_model(): """ Using parallel model to speed up transfer with multiple connections to imageio server. """ return nbdkit.THREAD_MODEL_PARALLEL def open(readonly): return 1 def can_trim(h): return False def can_flush(h): return options['can_flush'] def can_fua(h): # imageio flush feature is is compatible with NBD_CMD_FLAG_FUA. return options['can_flush'] def can_multi_conn(h): # We can always handle multiple connections, and the number of NBD # connections is independent of the number of HTTP clients in the # pool. return True def get_size(h): return size # Any unexpected HTTP response status from the server will end up calling this # function which logs the full error, and raises a RuntimeError exception. def request_failed(r, msg): status = r.status reason = r.reason try: body = r.read() except EnvironmentError as e: body = "(Unable to read response body: %s)" % e # Log the full error if we're verbose. nbdkit.debug("unexpected response from imageio server:") nbdkit.debug(msg) nbdkit.debug("%d: %s" % (status, reason)) nbdkit.debug(body) # Only a short error is included in the exception. raise RuntimeError("%s: %d %s: %r" % (msg, status, reason, body[:200])) # For documentation see: # https://github.com/oVirt/ovirt-imageio/blob/master/docs/random-io.md # For examples of working code to read/write from the server, see: # https://github.com/oVirt/ovirt-imageio/blob/master/daemon/test/server_test.py def pread(h, buf, offset, flags): count = len(buf) headers = {"Range": "bytes=%d-%d" % (offset, offset + count - 1)} with http_context(pool) as http: http.request("GET", url.path, headers=headers) r = http.getresponse() # 206 = HTTP Partial Content. if r.status != 206: request_failed(r, "could not read sector offset %d size %d" % (offset, count)) content_length = int(r.getheader("content-length")) if content_length != count: # Should never happen. request_failed(r, "unexpected Content-Length offset %d size %d got %d" % (offset, count, content_length)) with memoryview(buf) as view: got = 0 while got < count: n = r.readinto(view[got:]) if n == 0: request_failed(r, "short read offset %d size %d got %d" % (offset, count, got)) got += n def pwrite(h, buf, offset, flags): count = len(buf) flush = "y" if (options['can_flush'] and (flags & nbdkit.FLAG_FUA)) else "n" with http_context(pool) as http: http.putrequest("PUT", url.path + "?flush=" + flush) # The oVirt server only uses the first part of the range, and the # content-length. http.putheader("Content-Range", "bytes %d-%d/*" % (offset, offset + count - 1)) http.putheader("Content-Length", str(count)) http.endheaders() try: http.send(buf) except BrokenPipeError: pass r = http.getresponse() if r.status != 200: request_failed(r, "could not write sector offset %d size %d" % (offset, count)) r.read() def zero(h, count, offset, flags): # Unlike the trim and flush calls, there is no 'can_zero' method # so nbdkit could call this even if the server doesn't support # zeroing. If this is the case we must emulate. if not options['can_zero']: emulate_zero(h, count, offset, flags) return flush = bool(options['can_flush'] and (flags & nbdkit.FLAG_FUA)) # Construct the JSON request for zeroing. buf = json.dumps({'op': "zero", 'offset': offset, 'size': count, 'flush': flush}).encode() headers = {"Content-Type": "application/json", "Content-Length": str(len(buf))} with http_context(pool) as http: http.request("PATCH", url.path, body=buf, headers=headers) r = http.getresponse() if r.status != 200: request_failed(r, "could not zero sector offset %d size %d" % (offset, count)) r.read() def emulate_zero(h, count, offset, flags): flush = "y" if (options['can_flush'] and (flags & nbdkit.FLAG_FUA)) else "n" with http_context(pool) as http: http.putrequest("PUT", url.path + "?flush=" + flush) http.putheader("Content-Range", "bytes %d-%d/*" % (offset, offset + count - 1)) http.putheader("Content-Length", str(count)) http.endheaders() try: buf = bytearray(128 * 1024) while count > len(buf): http.send(buf) count -= len(buf) http.send(memoryview(buf)[:count]) except BrokenPipeError: pass r = http.getresponse() if r.status != 200: request_failed(r, "could not write zeroes offset %d size %d" % (offset, count)) r.read() def flush(h, flags): if pool_error: raise pool_error # Wait until all inflight requests are completed, and send a flush # request for all imageio connections. locked = [] # Lock the pool by taking all connections out. while len(locked) < pool.maxsize: locked.append(pool.get()) try: for item in locked: send_flush(item.http) item.last_used = time.monotonic() finally: # Unlock the pool by putting the connection back. for item in locked: pool.put(item) def send_flush(http): # Construct the JSON request for flushing. buf = json.dumps({'op': "flush"}).encode() headers = {"Content-Type": "application/json", "Content-Length": str(len(buf))} http.request("PATCH", url.path, body=buf, headers=headers) r = http.getresponse() if r.status != 200: request_failed(r, "could not flush") r.read() # Modify http.client.HTTPConnection to work over a Unix domain socket. # Derived from uhttplib written by Erik van Zijst under an MIT license. # (https://pypi.org/project/uhttplib/) # Ported to Python 3 by Irit Goihman. class UnixHTTPConnection(HTTPConnection): def __init__(self, path, timeout=socket._GLOBAL_DEFAULT_TIMEOUT): self.path = path HTTPConnection.__init__(self, "localhost", timeout=timeout) def connect(self): self.sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) if self.timeout is not socket._GLOBAL_DEFAULT_TIMEOUT: self.sock.settimeout(timeout) self.sock.connect(self.path) class PoolItem: def __init__(self, http): self.http = http self.last_used = None # Connection pool. def create_http_pool(url, options): count = min(options["max_readers"], options["max_writers"], MAX_CONNECTIONS) nbdkit.debug("creating http pool connections=%d" % count) unix_socket = options["unix_socket"] if is_ovirt_host else None pool = queue.Queue(count) for i in range(count): http = create_http(url, unix_socket=unix_socket) pool.put(PoolItem(http)) return pool def pool_keeper(): """ Thread flushing idle connections, keeping them alive. If a connection does not send any request for 60 seconds, imageio server closes the connection. Recovering from closed connection is hard and unsafe, so this thread ensure that connections never becomes idle by sending a flush request if the connection is idle for too much time. In normal conditions, all connections are busy most of the time, so the keeper will find no idle connections. If there short delays in nbdcopy, the keeper will find some idle connections, but will quickly return them back to the pool. In the pathological case when nbdcopy is blocked for 3 minutes on vddk input, the keeper will send a flush request on all connections every ~30 seconds, until nbdcopy starts communicating again. """ global pool_error nbdkit.debug("poolkeeper: started") while not done.wait(IDLE_TIMEOUT / 2): idle = [] while True: try: idle.append(pool.get_nowait()) except queue.Empty: break if idle: now = time.monotonic() for item in idle: if item.last_used and now - item.last_used > IDLE_TIMEOUT: nbdkit.debug("poolkeeper: flushing idle connection") try: send_flush(item.http) item.last_used = now except Exception as e: # We will report this error on the next request. pool_error = e item.last_used = None pool.put(item) nbdkit.debug("poolkeeper: stopped") @contextmanager def http_context(pool): """ Context manager yielding an imageio http connection from the pool. Blocks until a connection is available. """ if pool_error: raise pool_error item = pool.get() try: yield item.http finally: item.last_used = time.monotonic() pool.put(item) def close_http_pool(pool): """ Wait until all inflight requests are done, close all connections and remove them from the pool. No request can be served by the pool after this call. """ nbdkit.debug("closing http pool") locked = [] while len(locked) < pool.maxsize: locked.append(pool.get()) for item in locked: item.http.close() def create_http(url, unix_socket=None): """ Create http connection for transfer url. Returns HTTPConnection. """ if unix_socket: nbdkit.debug("creating unix http connection socket=%r" % unix_socket) try: return UnixHTTPConnection(unix_socket) except Exception as e: # Very unlikely, but we can recover by using https. nbdkit.debug("cannot create unix socket connection: %s" % e) if url.scheme == "https": context = \ ssl.create_default_context(purpose=ssl.Purpose.SERVER_AUTH, cafile=cafile) if insecure: context.check_hostname = False context.verify_mode = ssl.CERT_NONE nbdkit.debug("creating https connection host=%s port=%s" % (url.hostname, url.port)) return HTTPSConnection(url.hostname, url.port, context=context) elif url.scheme == "http": nbdkit.debug("creating http connection host=%s port=%s" % (url.hostname, url.port)) return HTTPConnection(url.hostname, url.port) else: raise RuntimeError("unknown URL scheme (%s)" % url.scheme) def get_options(http, url): """ Send OPTIONS request to imageio server and return options dict. """ http.request("OPTIONS", url.path) r = http.getresponse() data = r.read() if r.status == 200: j = json.loads(data) features = j["features"] return { "can_flush": "flush" in features, "can_zero": "zero" in features, "unix_socket": j.get('unix_socket'), "max_readers": j.get("max_readers", 1), "max_writers": j.get("max_writers", 1), } elif r.status == 405 or r.status == 204: # Old imageio servers returned either 405 Method Not Allowed or # 204 No Content (with an empty body). return { "can_flush": False, "can_zero": False, "unix_socket": None, "max_readers": 1, "max_writers": 1, } else: raise RuntimeError("could not use OPTIONS request: %d: %s" % (r.status, r.reason)) ================================================ FILE: output/ovirt-upload-precheck.py ================================================ # -*- python -*- # oVirt pre-upload checks used by ‘virt-v2v -o ovirt-upload’ # Copyright (C) 2018-2025 Red Hat Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License along # with this program; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. import json import logging import re import sys from urllib.parse import urlparse, urlunparse import ovirtsdk4 as sdk import ovirtsdk4.types as types # Parameters are passed in via a JSON doc from the OCaml code. # Because this Python code ships embedded inside virt-v2v there # is no formal API here. params = None if len(sys.argv) != 2: raise RuntimeError("incorrect number of parameters") # Parameters are passed in via a JSON document. with open(sys.argv[1], 'r') as fp: params = json.load(fp) # What is passed in is a password file, read the actual password. with open(params['output_password'], 'r') as fp: output_password = fp.read() output_password = output_password.rstrip() # Parse out the username from the output_conn URL. parsed = urlparse(params['output_conn']) username = parsed.username or "admin@internal" netloc = f"{parsed.hostname:parsed.port}" if parsed.port else parsed.hostname # Check the storage domain name is valid # (https://bugzilla.redhat.com/show_bug.cgi?id=1986386#c1) # Also this means it cannot contain spaces or glob symbols, so # the search below is valid. output_storage = params['output_storage'] if not re.match('^[-a-zA-Z0-9_]+$', output_storage): raise RuntimeError("The storage domain (-os) parameter ‘%s’ is not valid" % output_storage) # Connect to the server. connection = sdk.Connection( url=urlunparse(parsed._replace(netloc=netloc)), username=username, password=output_password, ca_file=params['ovirt_cafile'], log=logging.getLogger(), insecure=params['insecure'], ) system_service = connection.system_service() # Check whether there is a datacenter for the specified storage. data_centers = system_service.data_centers_service().list( search='storage.name=%s' % output_storage, case_sensitive=True, ) if len(data_centers) == 0: storage_domains = system_service.storage_domains_service().list( search='name=%s' % output_storage, case_sensitive=True, ) if len(storage_domains) == 0: # The storage domain does not even exist. raise RuntimeError("The storage domain ‘%s’ does not exist" % output_storage) # The storage domain is not attached to a datacenter # (shouldn't happen, would fail on disk creation). raise RuntimeError("The storage domain ‘%s’ is not attached to a DC" % output_storage) datacenter = data_centers[0] # Get the storage domain. storage_domains = connection.follow_link(datacenter.storage_domains) try: storage_domain = [sd for sd in storage_domains if sd.name == output_storage][0] except IndexError: raise RuntimeError("The storage domain ‘%s’ does not exist" % output_storage) # Get the cluster. clusters = connection.follow_link(datacenter.clusters) clusters = [cluster for cluster in clusters if cluster.name == params['ovirt_cluster']] if len(clusters) == 0: raise RuntimeError("The cluster ‘%s’ is not part of the DC ‘%s’, " "where the storage domain ‘%s’ is" % (params['ovirt_cluster'], datacenter.name, output_storage)) cluster = clusters[0] cpu = cluster.cpu if cpu.architecture == types.Architecture.UNDEFINED: raise RuntimeError("The cluster ‘%s’ has an unknown architecture" % (params['ovirt_cluster'])) # Find if any disk already exists with specified UUID. # Only used with -oo ovirt-disk-uuid. It is assumed that the # random UUIDs that we generate are unlikely to conflict. disks_service = system_service.disks_service() for uuid in params.get('ovirt_disk_uuids', []): try: disk_service = disks_service.disk_service(uuid).get() raise RuntimeError("Disk with the UUID '%s' already exists" % uuid) except sdk.NotFoundError: pass # Otherwise everything is OK, print a JSON with the results. results = { "ovirt_storagedomain_uuid": storage_domain.id, "ovirt_cluster_uuid": cluster.id, "ovirt_cluster_cpu_architecture": cpu.architecture.value, } json.dump(results, sys.stdout) ================================================ FILE: output/ovirt-upload-transfer.py ================================================ # -*- python -*- # oVirt upload start transfer used by ‘virt-v2v -o ovirt-upload’ # Copyright (C) 2018-2025 Red Hat Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License along # with this program; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. import inspect import json import logging import sys import time from contextlib import closing from urllib.parse import urlparse, urlunparse import ovirtsdk4 as sdk import ovirtsdk4.types as types # Timeout to wait for oVirt disks to change status, or the transfer # object to finish initializing [seconds]. timeout = 5 * 60 def debug(s): if params['verbose']: print(s, file=sys.stderr) sys.stderr.flush() def find_host(connection): """Return the current host object or None.""" try: with open("/etc/vdsm/vdsm.id") as f: vdsm_id = f.readline().strip() except FileNotFoundError: # Expected condition when running on non-oVirt host. debug("not an oVirt host, using non-oVirt host") return None except Exception as e: # Unexpected but we can degrade to remote transfer. debug(f"warning: cannot read host id, using non-oVirt host: {e}") return None debug("hw_id = %r" % vdsm_id) system_service = connection.system_service() storage_name = params['output_storage'] data_centers = system_service.data_centers_service().list( search='storage.name=%s' % storage_name, case_sensitive=True, ) if len(data_centers) == 0: # The storage domain is not attached to a datacenter # (shouldn't happen, would fail on disk creation). debug("storage domain (%s) is not attached to a DC" % storage_name) return None datacenter = data_centers[0] debug("datacenter = %s" % datacenter.name) hosts_service = system_service.hosts_service() hosts = hosts_service.list( search="hw_id=%s and datacenter=%s and status=Up" % (vdsm_id, datacenter.name), case_sensitive=True, ) if len(hosts) == 0: # Couldn't find a host that's fulfilling the following criteria: # - 'hw_id' equals to 'vdsm_id' # - Its status is 'Up' # - Belongs to the storage domain's datacenter debug("cannot find a running host with hw_id=%r, " "that belongs to datacenter '%s', " "using any host" % (vdsm_id, datacenter.name)) return None host = hosts[0] debug("host.id = %r" % host.id) return types.Host(id=host.id) def create_disk(connection): """ Create a new disk for the transfer and wait until the disk is ready. Returns disk object. """ system_service = connection.system_service() disks_service = system_service.disks_service() if params['disk_format'] == "raw": disk_format = types.DiskFormat.RAW else: disk_format = types.DiskFormat.COW disk = disks_service.add( disk=types.Disk( id=params['disk_uuid'], name=params['disk_name'], description="Uploaded by virt-v2v", format=disk_format, # XXX For qcow2 disk on block storage, we should use the estimated # size, based on qemu-img measure of the overlay. initial_size=params['disk_size'], provisioned_size=params['disk_size'], # Handling this properly will be complex, see: # https://www.redhat.com/archives/libguestfs/2018-March/msg00177.html sparse=True, storage_domains=[ types.StorageDomain( name=params['output_storage'], ) ], ) ) debug("disk.id = %r" % disk.id) # Wait till the disk moved from LOCKED state to OK state, as the transfer # can't start if the disk is locked. disk_service = disks_service.disk_service(disk.id) endt = time.monotonic() + timeout while True: time.sleep(1) disk = disk_service.get() if disk.status == types.DiskStatus.OK: break if time.monotonic() > endt: raise RuntimeError( "timed out waiting for disk %s to become unlocked" % disk.id) return disk def create_transfer(connection, disk, host): """ Create image transfer and wait until the transfer is ready. Returns a transfer object. """ system_service = connection.system_service() transfers_service = system_service.image_transfers_service() extra = {} if transfer_supports_format(): extra["format"] = types.DiskFormat.RAW transfer = transfers_service.add( types.ImageTransfer( disk=types.Disk(id=disk.id), host=host, inactivity_timeout=3600, **extra, ) ) # At this point the transfer owns the disk and will delete the disk if the # transfer is canceled, or if finalizing the transfer fails. debug("transfer.id = %r" % transfer.id) # Get a reference to the created transfer service. transfer_service = transfers_service.image_transfer_service(transfer.id) # Wait until transfer's phase change from INITIALIZING to TRANSFERRING. On # errors transfer's phase can change to PAUSED_SYSTEM or FINISHED_FAILURE. # If the transfer was paused, we need to cancel it to remove the disk, # otherwise the system will remove the disk and transfer shortly after. endt = time.monotonic() + timeout while True: time.sleep(1) try: transfer = transfer_service.get() except sdk.NotFoundError: # The system has removed the disk and the transfer. raise RuntimeError("transfer %s was removed" % transfer.id) if transfer.phase == types.ImageTransferPhase.FINISHED_FAILURE: # The system will remove the disk and the transfer soon. raise RuntimeError( "transfer %s has failed" % transfer.id) if transfer.phase == types.ImageTransferPhase.PAUSED_SYSTEM: transfer_service.cancel() raise RuntimeError( "transfer %s was paused by system" % transfer.id) if transfer.phase == types.ImageTransferPhase.TRANSFERRING: break if transfer.phase != types.ImageTransferPhase.INITIALIZING: transfer_service.cancel() raise RuntimeError( "unexpected transfer %s phase %s" % (transfer.id, transfer.phase)) if time.monotonic() > endt: transfer_service.cancel() raise RuntimeError( "timed out waiting for transfer %s" % transfer.id) return transfer def transfer_supports_format(): """ Return True if transfer supports the "format" argument, enabling the NBD backend on imageio side, which allows uploading to qcow2 images. This feature was added in ovirt 4.3. We assume that the SDK version matches engine version. """ sig = inspect.signature(types.ImageTransfer) return "format" in sig.parameters def get_transfer_url(transfer): """ Returns the transfer url, preferring direct transfer if possible. """ if params['ovirt_direct']: if transfer.transfer_url is None: raise RuntimeError("direct upload to host not supported, " "requires ovirt-engine >= 4.2 and only works " "when virt-v2v is run within the oVirt " "environment, eg. on an oVirt node.") return transfer.transfer_url else: return transfer.proxy_url # Parameters are passed in via a JSON doc from the OCaml code. # Because this Python code ships embedded inside virt-v2v there # is no formal API here. params = None if len(sys.argv) != 2: raise RuntimeError("incorrect number of parameters") # Parameters are passed in via a JSON document. with open(sys.argv[1], 'r') as fp: data = fp.read() try: params = json.loads(data) except ValueError as e: raise RuntimeError(f"Cannot parse params {data!r}: {e}").with_traceback( e.__traceback__ ) from None # What is passed in is a password file, read the actual password. with open(params['output_password'], 'r') as fp: output_password = fp.read() output_password = output_password.rstrip() # Parse out the username from the output_conn URL. parsed = urlparse(params['output_conn']) username = parsed.username or "admin@internal" netloc = f"{parsed.hostname:parsed.port}" if parsed.port else parsed.hostname connection = sdk.Connection( url=urlunparse(parsed._replace(netloc=netloc)), username=username, password=output_password, ca_file=params['ovirt_cafile'], log=logging.getLogger(), insecure=params['insecure'], ) with closing(connection): # Use the local host if possible. host = find_host(connection) if params['ovirt_direct'] else None disk = create_disk(connection) transfer = create_transfer(connection, disk, host) destination_url = get_transfer_url(transfer) # Send the destination URL, transfer ID, and host flag back to OCaml code. results = { "transfer_id": transfer.id, "destination_url": destination_url, "is_ovirt_host": host is not None, } json.dump(results, sys.stdout) ================================================ FILE: output/ovirt-upload-vmcheck.py ================================================ # -*- python -*- # oVirt VM existence check used by ‘virt-v2v -o ovirt-upload’ # Copyright (C) 2018-2025 Red Hat Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License along # with this program; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. import json import logging import sys from urllib.parse import urlparse, urlunparse import ovirtsdk4 as sdk import ovirtsdk4.types as types # Parameters are passed in via a JSON doc from the OCaml code. # Because this Python code ships embedded inside virt-v2v there # is no formal API here. params = None if len(sys.argv) != 2: raise RuntimeError("incorrect number of parameters") # Parameters are passed in via a JSON document. with open(sys.argv[1], 'r') as fp: params = json.load(fp) # What is passed in is a password file, read the actual password. with open(params['output_password'], 'r') as fp: output_password = fp.read() output_password = output_password.rstrip() # Parse out the username from the output_conn URL. parsed = urlparse(params['output_conn']) username = parsed.username or "admin@internal" netloc = f"{parsed.hostname:parsed.port}" if parsed.port else parsed.hostname # Connect to the server. connection = sdk.Connection( url=urlunparse(parsed._replace(netloc=netloc)), username=username, password=output_password, ca_file=params['ovirt_cafile'], log=logging.getLogger(), insecure=params['insecure'], ) system_service = connection.system_service() # Find if a virtual machine already exists with that name. vms_service = system_service.vms_service() vms = vms_service.list( search=("name=%s" % params['output_name']), ) if len(vms) > 0: vm = vms[0] raise RuntimeError("VM already exists with name ‘%s’, id ‘%s’" % (params['output_name'], vm.id)) # Otherwise everything is OK, exit with no error. ================================================ FILE: output/python_script.ml ================================================ (* virt-v2v * Copyright (C) 2009-2025 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) open Printf open Std_utils open Tools_utils open Unix_utils open Common_gettext.Gettext let python = "python3" (* Defined by PEP 394 *) type script = { tmpdir : string; (* Temporary directory. *) path : string; (* Path to script. *) } let create ?(name = "script.py") code = let tmpdir = Mkdtemp.temp_dir "v2v." in On_exit.rm_rf tmpdir; let path = tmpdir // name in with_open_out path (fun chan -> output_string chan code); { tmpdir; path } let run_command ?echo_cmd ?stdout_fd ?stderr_fd { tmpdir; path } params args = let param_file = tmpdir // sprintf "params%d.json" (unique ()) in with_open_out param_file (fun chan -> output_string chan (JSON.string_of_doc params)); Tools_utils.run_command ?echo_cmd ?stdout_fd ?stderr_fd (python :: path :: param_file :: args) let path { path } = path let error_unless_python_interpreter_found () = try ignore (which python) with Executable_not_found _ -> error (f_"no python binary called ‘%s’ can be found on the $PATH") python ================================================ FILE: output/python_script.mli ================================================ (* virt-v2v * Copyright (C) 2009-2025 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) (** Call into external Python code. *) type script val create : ?name:string -> string -> script (** Create a Python script object. The optional parameter [?name] is a hint for the name of the script. The parameter is the Python code. Usually this is [Some_source.code] where [some_source.ml] is generated from the Python file by [v2v/embed.sh] (see also [v2v/Makefile.am]). *) val run_command : ?echo_cmd:bool -> ?stdout_fd:Unix.file_descr -> ?stderr_fd:Unix.file_descr -> script -> JSON.doc -> string list -> int (** [run_command script params args] is a wrapper around {!Tools_utils.run_command} which runs the Python script with the supplied list of JSON parameters and the list of extra arguments. The JSON parameters are written into a temporary file and the filename is supplied as a parameter to the script, so the script must do this to read the parameters: {v with open(sys.argv[1], 'r') as fp: params = json.load(fp) v} The extra arguments, if any, are passed verbatim on the script command line in [sys.argv[2:]]. *) val path : script -> string (** Return the temporary path to the script. This temporary script is deleted when the program exits so don't try using/storing it beyond the lifetime of the program. This is used only where {!run_command} is not suitable. *) val python : string (** Return the name of the Python interpreter. *) val error_unless_python_interpreter_found : unit -> unit (** Check if the Python interpreter can be found on the path, and call [error] (which is fatal) if not. *) ================================================ FILE: output/qemuopts-c.c ================================================ /* virt-v2v * Copyright (C) 2009-2025 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include #include #include #include #include #include #include #include #include #include #include #include "qemuopts.h" #pragma GCC diagnostic ignored "-Wmissing-prototypes" /* GCC 12 introduced this warning: In file included from /usr/lib64/ocaml/caml/alloc.h:24, from qemuopts-c.c:26: qemuopts-c.c: In function ‘guestfs_int_qemuopts_set_binary_by_arch’: /usr/lib64/ocaml/caml/mlvalues.h:206:37: error: array subscript 0 is outside array bounds of ‘value[0:]’ [-Werror=array-bounds] 206 | #define Field(x, i) (((value *)(x)) [i]) | ^ cc1: all warnings being treated as errors */ #pragma GCC diagnostic ignored "-Warray-bounds" #define Qopts_val(v) (*((struct qemuopts **)Data_custom_val(v))) static void qopts_finalize (value qoptsv) { struct qemuopts *qopts = Qopts_val (qoptsv); if (qopts) qemuopts_free (qopts); } static struct custom_operations qemuopts_custom_operations = { (char *) "qemuopts_custom_operations", qopts_finalize, custom_compare_default, custom_hash_default, custom_serialize_default, custom_deserialize_default, custom_compare_ext_default, }; value guestfs_int_qemuopts_create (value unitv) { CAMLparam1 (unitv); CAMLlocal1 (qoptsv); struct qemuopts *qopts; qopts = qemuopts_create (); if (qopts == NULL) unix_error (errno, (char *) "qemuopts_create", Nothing); qoptsv = caml_alloc_custom (&qemuopts_custom_operations, sizeof (struct qemuopts *), 0, 1); Qopts_val (qoptsv) = qopts; CAMLreturn (qoptsv); } value guestfs_int_qemuopts_set_binary (value qoptsv, value strv) { CAMLparam2 (qoptsv, strv); struct qemuopts *qopts = Qopts_val (qoptsv); if (qemuopts_set_binary (qopts, String_val (strv)) == -1) unix_error (errno, (char *) "qemuopts_set_binary", strv); CAMLreturn (Val_unit); } value guestfs_int_qemuopts_set_binary_by_arch (value qoptsv, value ostrv) { CAMLparam2 (qoptsv, ostrv); struct qemuopts *qopts = Qopts_val (qoptsv); int r; if (ostrv != Val_int (0)) r = qemuopts_set_binary_by_arch (qopts, NULL); else r = qemuopts_set_binary_by_arch (qopts, String_val (Field (ostrv, 0))); if (r == -1) unix_error (errno, (char *) "qemuopts_set_binary_by_arch", Nothing); CAMLreturn (Val_unit); } value guestfs_int_qemuopts_flag (value qoptsv, value flagv) { CAMLparam2 (qoptsv, flagv); struct qemuopts *qopts = Qopts_val (qoptsv); if (qemuopts_add_flag (qopts, String_val (flagv)) == -1) unix_error (errno, (char *) "qemuopts_add_flag", flagv); CAMLreturn (Val_unit); } value guestfs_int_qemuopts_arg (value qoptsv, value flagv, value valv) { CAMLparam3 (qoptsv, flagv, valv); struct qemuopts *qopts = Qopts_val (qoptsv); if (qemuopts_add_arg (qopts, String_val (flagv), String_val (valv)) == -1) unix_error (errno, (char *) "qemuopts_add_arg", flagv); CAMLreturn (Val_unit); } value guestfs_int_qemuopts_arg_noquote (value qoptsv, value flagv, value valv) { CAMLparam3 (qoptsv, flagv, valv); struct qemuopts *qopts = Qopts_val (qoptsv); if (qemuopts_add_arg_noquote (qopts, String_val (flagv), String_val (valv)) == -1) unix_error (errno, (char *) "qemuopts_add_arg_noquote", flagv); CAMLreturn (Val_unit); } value guestfs_int_qemuopts_arg_list (value qoptsv, value flagv, value valuesv) { CAMLparam3 (qoptsv, flagv, valuesv); CAMLlocal1 (hd); struct qemuopts *qopts = Qopts_val (qoptsv); if (qemuopts_start_arg_list (qopts, String_val (flagv)) == -1) unix_error (errno, (char *) "qemuopts_start_arg_list", flagv); while (valuesv != Val_emptylist) { hd = Field (valuesv, 0); if (qemuopts_append_arg_list (qopts, String_val (hd)) == -1) unix_error (errno, (char *) "qemuopts_append_arg_list", flagv); valuesv = Field (valuesv, 1); } if (qemuopts_end_arg_list (qopts) == -1) unix_error (errno, (char *) "qemuopts_end_arg_list", flagv); CAMLreturn (Val_unit); } value guestfs_int_qemuopts_raw (value qoptsv, value strv) { CAMLparam2 (qoptsv, strv); struct qemuopts *qopts = Qopts_val (qoptsv); if (qemuopts_add_raw (qopts, String_val (strv)) == -1) unix_error (errno, (char *) "qemuopts_add_raw", strv); CAMLreturn (Val_unit); } value guestfs_int_qemuopts_to_script (value qoptsv, value strv) { CAMLparam2 (qoptsv, strv); struct qemuopts *qopts = Qopts_val (qoptsv); if (qemuopts_to_script (qopts, String_val (strv)) == -1) unix_error (errno, (char *) "qemuopts_to_script", strv); CAMLreturn (Val_unit); } value guestfs_int_qemuopts_to_chan (value qoptsv, value fdv) { CAMLparam2 (qoptsv, fdv); struct qemuopts *qopts = Qopts_val (qoptsv); /* Note that Unix.file_descr is really just an int. */ int fd = Int_val (fdv); int fd2; FILE *fp; int saved_errno; /* Dup the file descriptor so we don't lose it in fclose. */ fd2 = dup (fd); if (fd2 == -1) unix_error (errno, (char *) "qemuopts_to_channel: dup", Nothing); fp = fdopen (fd2, "w"); if (fp == NULL) { saved_errno = errno; close (fd2); unix_error (saved_errno, (char *) "qemuopts_to_channel: fdopen", Nothing); } if (qemuopts_to_channel (qopts, fp) == -1) { saved_errno = errno; fclose (fp); unix_error (saved_errno, (char *) "qemuopts_to_channel", Nothing); } if (fclose (fp) == EOF) unix_error (errno, (char *) "qemuopts_to_channel: fclose", Nothing); CAMLreturn (Val_unit); } ================================================ FILE: output/qemuopts.ml ================================================ (* virt-v2v * Copyright (C) 2009-2025 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) type t external create : unit -> t = "guestfs_int_qemuopts_create" external set_binary : t -> string -> unit = "guestfs_int_qemuopts_set_binary" external set_binary_by_arch : t -> string option -> unit = "guestfs_int_qemuopts_set_binary_by_arch" external flag : t -> string -> unit = "guestfs_int_qemuopts_flag" external arg : t -> string -> string -> unit = "guestfs_int_qemuopts_arg" external arg_noquote : t -> string -> string -> unit = "guestfs_int_qemuopts_arg_noquote" external arg_list : t -> string -> string list -> unit = "guestfs_int_qemuopts_arg_list" external raw : t -> string -> unit = "guestfs_int_qemuopts_raw" external to_script : t -> string -> unit = "guestfs_int_qemuopts_to_script" external _to_chan : t -> Unix.file_descr -> unit = "guestfs_int_qemuopts_to_chan" let to_chan t chan = flush chan; let fd = Unix.descr_of_out_channel chan in _to_chan t fd ================================================ FILE: output/qemuopts.mli ================================================ (* virt-v2v * Copyright (C) 2009-2025 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) (** OCaml bindings for the [common/qemuopts] library. *) type t val create : unit -> t (** Create an empty qemu command line. In case of error, all these functions raise [Unix_error]. *) val set_binary : t -> string -> unit (** Set the qemu binary name. *) val set_binary_by_arch : t -> string option -> unit (** Set the qemu binary to [qemu-system-]. If [arch] is [None], then this picks the right KVM binary for the current host architecture. *) val flag : t -> string -> unit (** [flag t "-foo"] adds a parameter to the command line with no argument. *) val arg : t -> string -> string -> unit (** [arg t "-m" "1024"] adds [-m 1024] to the command line. The value will shell-quoted if required, so you do not need to quote the string. However if the value is a comma-separated list (eg. [-drive file=foo,if=ide]) then do {b not} use this function, call {!arg_list} instead. *) val arg_noquote : t -> string -> string -> unit (** Like {!arg} except no quoting is done on the value. *) val arg_list : t -> string -> string list -> unit (** [arg_list t "-drive" ["file=foo"; "if=ide"]] adds a comma-separated list of parameters to the command line [-drive file=foo,if=ide]. This does both qemu comma-quoting and shell-quoting as required. *) val raw : t -> string -> unit (** [raw "stuff"] adds [stuff] to the command line completely unquoted. Use with care. *) val to_script : t -> string -> unit (** [to_script t "./file.sh"] writes the resulting command line to a file. The file begins with [#!/bin/sh] and is chmod 0755. *) val to_chan : t -> out_channel -> unit (** [to_chan t chan] appends the resulting command line to an output channel. The caller must write [!#/bin/sh] and chmod 0755 the output file, if needed. *) ================================================ FILE: output/select_output.ml ================================================ (* virt-v2v * Copyright (C) 2009-2025 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) open Std_utils open Tools_utils open Common_gettext.Gettext type output_mode = | Disk | Glance | Kubevirt | Libvirt | Null | Openstack | OVirt | OVirt_Upload | QEmu | VDSM let output_modes = let modes = ref [ Disk; Kubevirt; Libvirt; Null; Openstack; QEmu; ] in if Config.enable_glance then List.push_front Glance modes; if Config.enable_ovirt then List.push_front_list [ OVirt; OVirt_Upload; VDSM ] modes; List.sort compare !modes let string_of_output_mode = function | Disk -> "disk" | Glance -> "glance" | Kubevirt -> "kubevirt" | Libvirt -> "libvirt" | Null -> "null" | Openstack -> "openstack" | OVirt -> "ovirt" | OVirt_Upload -> "ovirt-upload" | QEmu -> "qemu" | VDSM -> "vdsm" let output_mode_of_string = function | "glance" -> Glance | "kubevirt" -> Kubevirt | "libvirt" -> Libvirt | "disk" | "local" -> Disk | "null" -> Null | "openstack" | "osp" | "rhosp" -> Openstack | "ovirt" | "rhv" | "rhev" -> OVirt | "ovirt-upload" | "ovirt_upload" | "rhv-upload" | "rhv_upload" -> OVirt_Upload | "qemu" -> QEmu | "vdsm" -> VDSM | s -> error (f_"unknown -o option: %s") s let select_output = function | None | Some Libvirt -> (module Output_libvirt.Libvirt_ : Output.OUTPUT) | Some Disk -> (module Output_disk.Disk) | Some Null -> (module Output_null.Null) | Some QEmu -> (module Output_qemu.QEMU) | Some Glance -> if Config.enable_glance then (module Output_glance.Glance) else failwithf "-o glance is not enabled in this build" | Some Kubevirt -> (module Output_kubevirt.Kubevirt) | Some Openstack -> (module Output_openstack.Openstack) | Some OVirt_Upload -> if Config.enable_ovirt then (module Output_ovirt_upload.OVirtUpload) else failwithf "-o ovirt-upload is not enabled in this build" | Some OVirt -> if Config.enable_ovirt then (module Output_ovirt.OVirt) else failwithf "-o ovirt is not enabled in this build" | Some VDSM -> if Config.enable_ovirt then (module Output_vdsm.VDSM) else failwithf "-o vdsm is not enabled in this build" ================================================ FILE: output/select_output.mli ================================================ (* virt-v2v * Copyright (C) 2009-2025 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) type output_mode = | Disk | Glance | Kubevirt | Libvirt | Null | Openstack | OVirt | OVirt_Upload | QEmu | VDSM (** [-o] option on the command line *) val output_modes : output_mode list (** A list of the available output modes. *) val string_of_output_mode : output_mode -> string (** Return the canonical string form of an output mode *) val output_mode_of_string : string -> output_mode (** Return the output mode corresponding to a string. This is used when parsing the command line. If the output mode is unknown this calls {!Tools_utils.error} and exits. *) val select_output : output_mode option -> (module Output.OUTPUT) (** Select an output module based on command line parameters. *) ================================================ FILE: output/test-python-syntax.sh ================================================ #!/bin/bash - # libguestfs # Copyright (C) 2018 Red Hat Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. source ../tests/functions.sh set -e set -x skip_if_skipped # Files to check. files="$(find "$srcdir" -name '*.py')" # Checks the files are syntactically correct, but not very much else. for f in $files; do python3 -m py_compile "$f" done # Checks the files correspond to PEP8 coding style. # https://www.python.org/dev/peps/pep-0008/ if test "x$PYCODESTYLE" != xno; then # Ignore: # E501 line too long # E722 do not use bare 'except' $PYCODESTYLE --ignore=E501,E722 $files fi ================================================ FILE: po/LINGUAS ================================================ cs de en_GB es eu fi fr gu hi id it ja ka kn ml mr nl or pa pl pt_BR ru si ta te tg uk zh_CN ================================================ FILE: po/Makefile.am ================================================ # libguestfs # Copyright (C) 2009-2025 Red Hat Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. include $(top_srcdir)/subdir-rules.mk DOMAIN = $(PACKAGE_NAME) COPYRIGHT_HOLDER = Red Hat Inc. MSGID_BUGS_ADDRESS = https://bugzilla.redhat.com/enter_bug.cgi?component=libguestfs&product=Virtualization+Tools # Languages. # Don't use LINGUAS (uppercase) as Gentoo defines it (RHBZ#804464). linguas := $(shell cat $(srcdir)/LINGUAS) POTFILES := $(shell $(SED) 's,^,$(top_srcdir)/,' $(srcdir)/POTFILES) POTFILES_ML := $(shell $(SED) 's,^,$(top_srcdir)/,' $(srcdir)/POTFILES-ml) POFILES := $(linguas:%=%.po) GMOFILES := $(linguas:%=%.gmo) EXTRA_DIST = \ LINGUAS \ POTFILES POTFILES-ml \ $(DOMAIN).pot \ $(POFILES) \ $(GMOFILES) if HAVE_GNU_GETTEXT XGETTEXT_ARGS = \ --default-domain=$(DOMAIN) \ --from-code=utf-8 \ --add-comments=TRANSLATORS: \ --keyword=_ --keyword=N_ --keyword=__ --keyword=__x \ --flag=error:3:c-format \ --flag=error_at_line:5:c-format \ --flag=asprintf:2:c-format \ --flag=vasprintf:2:c-format \ --flag=xasprintf:1:c-format \ --copyright-holder='$(COPYRIGHT_HOLDER)' \ --package-name="$(PACKAGE_NAME)" \ --package-version="$(PACKAGE_VERSION)" \ --msgid-bugs-address="$(MSGID_BUGS_ADDRESS)" \ --directory=$(top_srcdir) # For explanation, see # http://mingw-users.1079350.n2.nabble.com/Getting-rid-of-xgettext-s-quot-CHARSET-quot-warning-td5620533.html FIX_CHARSET = \ $(SED) -i 's|text/plain; charset=CHARSET|text/plain; charset=utf-8|g' $(DOMAIN).pot: Makefile POTFILES $(POTFILES) POTFILES-ml $(POTFILES_ML) rm -f $@-t $(AM_V_at)touch $@-t if HAVE_OCAML_GETTEXT cd $(top_srcdir) && $(OCAML_GETTEXT) --action extract --extract-pot $(abs_srcdir)/$@-t $(shell cat $(abs_srcdir)/POTFILES-ml) \ $(FIX_CHARSET) $@-t endif $(XGETTEXT) -j -o $@-t $(XGETTEXT_ARGS) \ --files-from=$(abs_srcdir)/POTFILES $(FIX_CHARSET) $@-t mv $@-t $@ .po.gmo: rm -f $@ $@-t $(MSGFMT) -c -o $@-t $(srcdir)/$< mv $@-t $@ # Install. # Cannot use 'localedir' since this conflicts with autoconf. langinstdir = $(datadir)/locale install-data-hook: $(GMOFILES) mkdir -p $(DESTDIR)$(langinstdir) for lang in $(linguas); do \ d=$(DESTDIR)$(langinstdir)/$$lang/LC_MESSAGES; \ mkdir -p $$d; \ install -m 0644 $$lang.gmo $$d/$(DOMAIN).mo; \ done .PRECIOUS: $(DOMAIN).pot $(POFILES) endif ================================================ FILE: po/POTFILES ================================================ common/mlcustomize/crypt-c.c common/mlcustomize/perl_edit-c.c common/mlpcre/pcre-c.c common/mltools/JSON_parser-c.c common/mltools/getopt-c.c common/mltools/libosinfo-c.c common/mltools/tools_utils-c.c common/mltools/uri-c.c common/mlutils/c_utils-c.c common/mlutils/unix_utils-c.c common/mlxml/xml-c.c common/options/config.c common/options/decrypt.c common/options/display-options.c common/options/domain.c common/options/inspect.c common/options/keys.c common/options/options.c common/options/uri.c common/qemuopts/qemuopts.c common/utils/cleanups.c common/utils/environ.c common/utils/gnulib-cleanups.c common/utils/libxml2-cleanups.c common/utils/pcre2-cleanups.c common/utils/stringlists-utils.c common/utils/utils.c common/utils/whole-file.c gnulib/lib/hash.c gnulib/lib/xstrtol.c gnulib/lib/xstrtoll.c gnulib/lib/xstrtoul.c gnulib/lib/xstrtoull.c gnulib/lib/xstrtoumax.c output/qemuopts-c.c ================================================ FILE: po/POTFILES-ml ================================================ common/mlcustomize/SELinux_relabel.ml common/mlcustomize/append_line.ml common/mlcustomize/crypt.ml common/mlcustomize/customize_cmdline.ml common/mlcustomize/customize_run.ml common/mlcustomize/firstboot.ml common/mlcustomize/guest_packages.ml common/mlcustomize/hostname.ml common/mlcustomize/inject_virtio_win.ml common/mlcustomize/password.ml common/mlcustomize/perl_edit.ml common/mlcustomize/random_seed.ml common/mlcustomize/ssh_key.ml common/mlcustomize/timezone.ml common/mldrivers/firmware.ml common/mldrivers/linux.ml common/mldrivers/linux_bootloaders.ml common/mldrivers/linux_kernels.ml common/mldrivers/windows_drivers.ml common/mlgettext/common_gettext.ml common/mlpcre/PCRE.ml common/mlstdutils/guestfs_config.ml common/mlstdutils/std_utils.ml common/mlstdutils/stringMap.ml common/mlstdutils/stringSet.ml common/mltools/DOM.ml common/mltools/JSON.ml common/mltools/JSON_parser.ml common/mltools/URI.ml common/mltools/checksums.ml common/mltools/curl.ml common/mltools/getopt.ml common/mltools/libosinfo.ml common/mltools/libosinfo_utils.ml common/mltools/on_exit.ml common/mltools/planner.ml common/mltools/regedit.ml common/mltools/registry.ml common/mltools/tools_utils.ml common/mltools/urandom.ml common/mltools/xpath_helpers.ml common/mlutils/c_utils.ml common/mlutils/unix_utils.ml common/mlxml/xml.ml in-place/in_place.ml input/OVA.ml input/OVF.ml input/VMX.ml input/input.ml input/input_disk.ml input/input_libvirt.ml input/input_ova.ml input/input_vcenter_https.ml input/input_vddk.ml input/input_vmx.ml input/input_xen_ssh.ml input/nbdkit_curl.ml input/nbdkit_ssh.ml input/parse_domain_from_vmx.ml input/parse_libvirt_xml.ml input/select_input.ml input/ssh.ml input/vCenter.ml inspector/create_inspector_xml.ml inspector/inspector.ml lib/NBD_URI.ml lib/YAML.ml lib/create_ovf.ml lib/libvirt_utils.ml lib/nbdkit.ml lib/networks.ml lib/qemuNBD.ml lib/types.ml lib/utils.ml open/open.ml output/changeuid.ml output/create_kubevirt_yaml.ml output/create_libvirt_xml.ml output/openstack_image_properties.ml output/output.ml output/output_disk.ml output/output_glance.ml output/output_kubevirt.ml output/output_libvirt.ml output/output_null.ml output/output_openstack.ml output/output_ovirt.ml output/output_ovirt_upload.ml output/output_ovirt_upload_cancel_source.ml output/output_ovirt_upload_createvm_source.ml output/output_ovirt_upload_finalize_source.ml output/output_ovirt_upload_plugin_source.ml output/output_ovirt_upload_precheck_source.ml output/output_ovirt_upload_transfer_source.ml output/output_ovirt_upload_vmcheck_source.ml output/output_qemu.ml output/output_vdsm.ml output/python_script.ml output/qemuopts.ml output/select_output.ml v2v/v2v.ml ================================================ FILE: po/cs.po ================================================ # Zdenek , 2017. #zanata msgid "" msgstr "" "Project-Id-Version: libguestfs 1.39.12\n" "Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?" "component=libguestfs&product=Virtualization+Tools\n" "POT-Creation-Date: 2025-02-16 17:05+0000\n" "PO-Revision-Date: 2023-04-08 18:20+0000\n" "Last-Translator: Pavel Borecki \n" "Language-Team: Czech \n" "Language: cs\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" "X-Generator: Weblate 4.15.2\n" #: input/input_ova.ml:135 common/mltools/tools_utils.ml:235 msgid "%s" msgstr "%s" #: common/mltools/getopt.ml:73 msgid "" "%s\n" "Options:\n" msgstr "" #: common/mltools/tools_utils.ml:695 common/mlcustomize/customize_run.ml:390 msgid "%s (ignored)" msgstr "" #: common/mltools/checksums.ml:71 msgid "%s did not return any output" msgstr "" #: common/mlcustomize/customize_run.ml:183 #, fuzzy #| msgid "Inject a public key into the guest" msgid "%s does not exist in the guest" msgstr "Vpravit do hosta veřejný klíč" #: output/output_ovirt.ml:275 msgid "" "%s does not exist or is not a directory.\n" "\n" "Most likely cause: Either the %s (%s) has not been attached to any Data " "Center, or the path %s is not an %s at all.\n" "\n" "You have to attach the %s to a Data Center using the oVirt user interface " "first.\n" "\n" "If you don’t know what the %s mount point should be then you can also find " "this out through the oVirt user interface." msgstr "" #: common/mlcustomize/customize_run.ml:113 msgid "%s ignored for non-Windows guest" msgstr "" #: common/mlcustomize/customize_run.ml:186 #, fuzzy #| msgid "Inject a public key into the guest" msgid "%s is not a regular file in the guest" msgstr "Vpravit do hosta veřejný klíč" #. open/open.ml:39 #. inspector/inspector.ml:153 #. inspector/inspector.ml:40 #. in-place/in_place.ml:164 #. in-place/in_place.ml:45 #: v2v/v2v.ml:194 v2v/v2v.ml:183 v2v/v2v.ml:159 v2v/v2v.ml:44 open/open.ml:68 msgid "%s option used more than once on the command line" msgstr "" #: common/mltools/tools_utils.ml:231 common/mltools/tools_utils.ml:202 msgid "%s: %s" msgstr "%s: %s" #: common/mltools/tools_utils.ml:233 msgid "%s: %s: %s" msgstr "%s: %s: %s" #: common/mltools/on_exit.ml:77 msgid "" "%s: Exiting on signal %s\n" "%!" msgstr "" #: common/mlcustomize/inject_virtio_win.ml:411 msgid "%s: cannot open virtio-win ISO file: %s" msgstr "%s: nedaří se otevřít ISO soubor s virtio-win: %s" #: common/mlcustomize/customize_run.ml:64 #, fuzzy #| msgid "%s exited with error status %d" msgid "%s: command exited with an error" msgstr "%s ukončeno s chybovým stavem %d" #: v2v/v2v.ml:277 msgid "" "%s: convert a guest to use KVM\n" "\n" "virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi -os imported " "esx_guest\n" "\n" "virt-v2v -i libvirtxml guest-domain.xml -o local -os /var/tmp\n" "\n" "virt-v2v -i disk disk.img -o local -os /var/tmp\n" "\n" "There is a companion front-end called \"virt-p2v\" which comes as an\n" "ISO or CD image that can be booted on physical machines.\n" "\n" "A short summary of the options is given below. For detailed help please\n" "read the man page virt-v2v(1).\n" msgstr "" #: in-place/in_place.ml:217 msgid "" "%s: convert a guest to use KVM in-place\n" "\n" "Note this program modifies the guest in-place with no backup.\n" "Normally you should use virt-v2v.\n" "\n" "virt-v2v-in-place -i libvirtxml guest-domain.xml\n" "\n" "virt-v2v-in-place -i disk disk.img\n" "\n" "A short summary of the options is given below. For detailed help please\n" "read the man page virt-v2v-in-place(1).\n" msgstr "" #: input/input_vddk.ml:207 msgid "%s: enter password for ‘%s’: " msgstr "" #: common/mltools/tools_utils.ml:172 msgid "%s: error: %s" msgstr "%s: chyba: %s%c" #: inspector/inspector.ml:198 msgid "" "%s: estimate disk space needed before virt-v2v conversion\n" "\n" "virt-v2v-inspector -i disk disk.img [-O output.xml]\n" "\n" "A short summary of the options is given below. For detailed help please\n" "read the man page virt-v2v-inspector(1).\n" msgstr "" #: open/open.ml:94 msgid "" "%s: open the virt-v2v input and run a program on it\n" "\n" "virt-v2v-open -i disk disk.img --run 'virt-inspector --format=raw @@'\n" "\n" "A short summary of the options is given below. For detailed help please\n" "read the man page virt-v2v-open(1).\n" msgstr "" #: common/mltools/tools_utils.ml:726 msgid "%s: operation timed out" msgstr "" #: input/OVA.ml:127 input/OVA.ml:121 msgid "" "%s: unsupported file format\n" "\n" "Formats which we currently understand for '-i ova' are: tar (uncompressed, " "compress with gzip or xz), zip" msgstr "" #: common/mltools/tools_utils.ml:191 msgid "%s: warning: %s" msgstr "%s: varování: %s%c" #. common/mlcustomize/customize_cmdline.ml:258 #: common/mlcustomize/customize_cmdline.ml:367 msgid "'CMD+ARGS'" msgstr "" #: common/mlcustomize/customize_run.ml:133 msgid "" "--append-line: line must not contain newline characters. Use the --append-" "line option multiple times to add several lines." msgstr "" #: common/mlcustomize/customize_run.ml:152 msgid "--chown: could not parse numeric UID:GID from %s:%s" msgstr "" #: common/mlcustomize/customize_run.ml:216 msgid "" "--inject-blnsvr: blnsvr.exe not found in virtio-win source that you specified" msgstr "" #: common/mlcustomize/customize_run.ml:225 msgid "" "--inject-qemu-ga: QEMU Guest Agent MSI not found in virtio-win source that " "you specified" msgstr "" #: common/mlcustomize/customize_run.ml:241 msgid "" "--inject-virtio-win: virtio drivers were not found for this Windows version " "in the virtio-win source that you specified" msgstr "" #: v2v/v2v.ml:146 inspector/inspector.ml:136 in-place/in_place.ml:143 msgid "--mac ip prefix length field is out of range" msgstr "" #: v2v/v2v.ml:340 msgid "--parallel parameter must be >= 1" msgstr "" #: input/input_disk.ml:42 msgid "-i disk: expecting a disk image (filename) on the command line" msgstr "" #: input/input_xen_ssh.ml:65 msgid "-i libvirt: expecting -ic parameter for Xen over SSH connection" msgstr "" #: input/input_vddk.ml:142 input/input_vcenter_https.ml:88 msgid "-i libvirt: expecting -ic parameter for vcenter connection" msgstr "" #: input/input_vcenter_https.ml:101 msgid "-i libvirt: expecting -ic parameter to contain vcenter server name" msgstr "" #: input/input_vcenter_https.ml:78 msgid "-i libvirt: expecting -ip passwordfile parameter for vCenter connection" msgstr "" #. input/input_vcenter_https.ml:70 #. input/input_libvirt.ml:41 #: input/input_xen_ssh.ml:57 input/input_vddk.ml:132 msgid "-i libvirt: expecting a libvirt guest name on the command line" msgstr "" #: input/input_libvirt.ml:59 msgid "-i libvirtxml: expecting a libvirt XML filename on the command line" msgstr "" #: input/input_ova.ml:243 msgid "-i ova: OVF references file ‘%s’ which was not found in the OVA archive" msgstr "" #: input/input_ova.ml:78 msgid "" "-i ova: corrupt OVA: checksum of disk %s does not match manifest (actual = " "%s, expected = %s)" msgstr "" #: input/input_ova.ml:52 msgid "-i ova: expecting an OVA file name on the command line" msgstr "" #: input/OVA.ml:361 msgid "" "-i ova: invalid OVA file: path ‘%s’ references a file outside the archive" msgstr "" #: input/input_vmx.ml:57 msgid "-i vmx: cannot use -it vddk in this input mode" msgstr "" #: input/input_vmx.ml:60 msgid "-i vmx: expecting a VMX file or ssh:// URI" msgstr "" #: input/vCenter.ml:159 msgid "" "-ip PASSWORD_FILE parameter ignored because 'user@' was not given in the URL" msgstr "" #: input/input_vddk.ml:119 msgid "-it vddk: ‘-io %s’ is not a valid input option" msgstr "" #: output/output.ml:54 msgid "-o %s: %s option cannot be used in this output mode" msgstr "" #: output/output_disk.ml:66 msgid "-o disk: output directory was not specified, use '-os /dir'" msgstr "" #: output/output_libvirt.ml:59 output/output_disk.ml:56 msgid "-o disk: unknown output option ‘-oo %s’" msgstr "" #: output/output_kubevirt.ml:81 msgid "-o kubevirt: output directory was not specified, use '-os /dir'" msgstr "" #: output/output_kubevirt.ml:91 msgid "" "-o kubevirt: the guest name must contain only lowercase alphanumeric " "characters, '-' or '.', and must start and end with an alphanumeric " "character. Rerun virt-v2v with the '-on name' option to rename it." msgstr "" #: output/output_kubevirt.ml:71 msgid "-o kubevirt: unknown output option ‘-oo %s’" msgstr "" #: output/output_libvirt.ml:120 msgid "" "-o libvirt: output pool ‘%s’ does not have /pool/target/path element. See " "virt-v2v-output-local(1)" msgstr "" #: output/output_libvirt.ml:124 msgid "" "-o libvirt: output pool ‘%s’ has type='dir' but the /pool/target/path " "element is not a local directory. See virt-v2v-output-local(1)" msgstr "" #: output/output_libvirt.ml:116 msgid "" "-o libvirt: output pool ‘%s’ is not a directory (type='dir'). See virt-v2v-" "output-local(1)" msgstr "" #: output/output_openstack.ml:88 msgid "-o openstack mode only supports -oa sparse -of raw" msgstr "" #: output/output_openstack.ml:115 msgid "-o openstack: unknown output option ‘-oo %s’" msgstr "" #: output/output_ovirt_upload.ml:97 msgid "-o ovirt-upload: -oo ovirt-cafile set more than once" msgstr "" #: output/output_ovirt_upload.ml:101 msgid "-o ovirt-upload: -oo ovirt-cluster set more than once" msgstr "" #: output/output_ovirt_upload.ml:112 msgid "-o ovirt-upload: invalid UUID for -oo ovirt-disk-uuid" msgstr "" #: output/output_ovirt_upload.ml:76 msgid "" "-o ovirt-upload: output password file was not specified, use ‘-op’ to point " "to a file which contains the password used to connect to the oVirt server" msgstr "" #: output/output_ovirt_upload.ml:83 msgid "-o ovirt-upload: output storage was not specified, use ‘-os’" msgstr "" #: output/output_ovirt_upload.ml:116 msgid "-o ovirt-upload: unknown output option ‘-oo %s’" msgstr "" #: output/output_ovirt_upload.ml:68 msgid "" "-o ovirt-upload: use ‘-oc’ to point to the oVirt server REST API URL, which " "is usually https://servername/ovirt-engine/api" msgstr "" #: output/output_ovirt.ml:51 msgid "-o ovirt: -os option was not specified" msgstr "" #: output/output_qemu.ml:72 msgid "-o qemu: output directory was not specified, use '-os /dir'" msgstr "" #: output/output_qemu.ml:63 msgid "-o qemu: unknown output option ‘-oo %s’" msgstr "" #: output/output_vdsm.ml:102 msgid "-o vdsm: -oo vdsm-image-uuid was not specified" msgstr "" #: output/output_vdsm.ml:81 msgid "-o vdsm: -oo vdsm-ovf-output set more than once" msgstr "" #: output/output_vdsm.ml:77 msgid "-o vdsm: -oo vdsm-vm-uuid set more than once" msgstr "" #: output/output_vdsm.ml:110 msgid "-o vdsm: -os option was not specified" msgstr "" #: output/output_vdsm.ml:97 msgid "-o vdsm: either -oo vdsm-vol-uuid or -oo vdsm-vm-uuid was not specified" msgstr "" #: output/output_vdsm.ml:90 msgid "-o vdsm: unknown output option ‘-oo %s’" msgstr "" #: output/output_vdsm.ml:74 msgid "-o vdsm: unknown vdsm-compat level ‘%s’" msgstr "" #. output/output_kubevirt.ml:84 #. output/output_disk.ml:68 #: output/output_vdsm.ml:112 output/output_qemu.ml:74 msgid "-os %s: output directory does not exist or is not a directory" msgstr "" #: input/parse_libvirt_xml.ml:279 msgid " missing 'method' attribute, ignoring" msgstr "" #: input/parse_libvirt_xml.ml:291 msgid " unknown fail='%s' attribute, ignoring" msgstr "" #: input/parse_libvirt_xml.ml:370 input/parse_libvirt_xml.ml:317 msgid " was ignored" msgstr "" #: input/parse_libvirt_xml.ml:338 msgid " with was ignored" msgstr "" #: input/parse_libvirt_xml.ml:365 msgid " with was ignored" msgstr "" #: input/parse_libvirt_xml.ml:299 msgid " element with no type attribute ignored" msgstr "" #: input/parse_libvirt_xml.ml:167 msgid " in the input libvirt XML was ignored" msgstr "" #: input/parse_libvirt_xml.ml:414 msgid "" " was ignored because the device name could not be recognized" msgstr "" #: input/input_vddk.ml:176 msgid "" " was not found in the output of ‘virsh dumpxml \"%s\"’. The " "most likely reason is that libvirt is too old, try upgrading libvirt to ≥ " "3.7." msgstr "" #: common/mlcustomize/customize_cmdline.ml:305 msgid "Add package(s) to install" msgstr "" #: common/mlcustomize/customize_cmdline.ml:270 msgid "Add package(s) to install at first boot" msgstr "" #: common/mlcustomize/customize_cmdline.ml:175 msgid "Append line(s) to the file" msgstr "" #: common/mlcustomize/customize_run.ml:137 msgid "Appending line to %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:197 msgid "Change the owner user and group ID of a file or directory" msgstr "" #: common/mlcustomize/customize_cmdline.ml:186 msgid "Change the permissions of a file" msgstr "" #: common/mlcustomize/customize_run.ml:155 msgid "Changing owner of %s to %d:%d" msgstr "" #: common/mlcustomize/customize_run.ml:141 msgid "Changing permissions of %s to %s" msgstr "" #: input/input_libvirt.ml:174 input/input_libvirt.ml:157 msgid "Checking %s checksum of disk %d/%d" msgstr "" #: common/mlcustomize/customize_cmdline.ml:488 msgid "Compatibility option doing nothing" msgstr "" #: common/mlcustomize/customize_cmdline.ml:219 msgid "Copy files in disk image" msgstr "" #: common/mlcustomize/customize_cmdline.ml:397 msgid "Copy local files or directories from a tarball into image" msgstr "" #: common/mlcustomize/customize_cmdline.ml:230 msgid "Copy local files or directories into image" msgstr "" #: common/mlcustomize/customize_run.ml:168 msgid "Copying (in image): %s to %s" msgstr "" #: v2v/v2v.ml:518 msgid "Copying disk %d/%d" msgstr "" #: common/mlcustomize/customize_run.ml:172 msgid "Copying: %s to %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:322 msgid "Create a directory" msgstr "Vytvořit složku" #: common/mlcustomize/customize_cmdline.ml:316 msgid "Create symbolic links" msgstr "Vytvořit symbolické odkazy" #: v2v/v2v.ml:567 msgid "Creating output metadata" msgstr "Jsou vytvářena metadata výstupu" #: common/mlcustomize/customize_cmdline.ml:321 msgid "DIR" msgstr "" #: common/mlcustomize/customize_cmdline.ml:236 msgid "Delete a file or directory" msgstr "Smazat soubor či složku" #: common/mlcustomize/customize_run.ml:176 #, fuzzy #| msgid "%s: warning: %s" msgid "Deleting: %s" msgstr "%s: varování: %s%c" #: common/mltools/getopt.ml:225 msgid "Display brief help" msgstr "Zobrazit stručnou nápovědu" #: common/mltools/tools_utils.ml:385 msgid "Display version and exit" msgstr "Zobrazit verzi a skončit" #: common/mlcustomize/customize_cmdline.ml:482 msgid "Do not relabel files with correct SELinux labels" msgstr "" #: v2v/v2v.ml:248 inspector/inspector.ml:177 in-place/in_place.ml:190 msgid "Don't trim filesystems before conversion" msgstr "" #: common/mltools/tools_utils.ml:389 msgid "Don’t print progress messages" msgstr "Nevypisovat zprávy o míře postupu" #: common/mltools/tools_utils.ml:420 msgid "Don’t turn off echo for passphrases" msgstr "" #: common/mlcustomize/customize_cmdline.ml:247 msgid "Edit file using Perl expression" msgstr "Upravit soubor pomocí výrazu v Perl" #: common/mlcustomize/customize_run.ml:180 #, fuzzy #| msgid "%s: warning: %s" msgid "Editing: %s" msgstr "%s: varování: %s%c" #: common/mltools/tools_utils.ml:386 msgid "Enable libguestfs debugging messages" msgstr "Zapnout ladící zprávy z libguestfs" #: common/mltools/tools_utils.ml:387 msgid "Enable tracing of libguestfs calls" msgstr "" #: output/output_ovirt.ml:77 msgid "Export Storage Domain" msgstr "Exportovat úložnou doménu" #: open/open.ml:88 msgid "External command to run" msgstr "" #. common/mlcustomize/customize_cmdline.ml:408 #. common/mlcustomize/customize_cmdline.ml:373 #: common/mlcustomize/customize_cmdline.ml:414 msgid "FILE" msgstr "SOUBOR" #: common/mlcustomize/customize_cmdline.ml:455 msgid "FILE:CONTENT" msgstr "" #: common/mlcustomize/customize_cmdline.ml:444 #, fuzzy #| msgid "FILE" msgid "FILE:DEST" msgstr "SOUBOR" #: common/mlcustomize/customize_cmdline.ml:242 #, fuzzy #| msgid "FILE" msgid "FILE:EXPR" msgstr "SOUBOR" #: common/mlcustomize/customize_cmdline.ml:170 #, fuzzy #| msgid "FILE" msgid "FILE:LINE" msgstr "SOUBOR" #: common/mlcustomize/customize_cmdline.ml:203 #, fuzzy #| msgid "FILE" msgid "FILENAME" msgstr "SOUBOR" #. in-place/in_place.ml:378 #: v2v/v2v.ml:571 open/open.ml:220 inspector/inspector.ml:334 msgid "Finishing off" msgstr "" #: common/mlcustomize/customize_cmdline.ml:275 msgid "HOSTNAME" msgstr "" #: v2v/v2v.ml:254 inspector/inspector.ml:183 in-place/in_place.ml:194 msgid "How to choose root filesystem" msgstr "Jak zvolit kořenový souborový systém" #: common/mltools/tools_utils.ml:177 msgid "" "If reporting bugs, run %s with debugging enabled and include the complete " "output:\n" "\n" " %s -v -x [...]" msgstr "" #: common/mlcustomize/customize_cmdline.ml:386 msgid "Inject a public key into the guest" msgstr "Vpravit do hosta veřejný klíč" #: common/mlcustomize/customize_cmdline.ml:282 #, fuzzy #| msgid "Inject virtio-win drivers into a Windows guest" msgid "Inject the Balloon Server into a Windows guest" msgstr "Vpravit ovladače virtio-win do Windows hosta" #: common/mlcustomize/customize_cmdline.ml:288 msgid "Inject the QEMU Guest Agent into a Windows guest" msgstr "Vpravit QEMU agenta do Windows hosta" #: common/mlcustomize/customize_cmdline.ml:294 msgid "Inject virtio-win drivers into a Windows guest" msgstr "Vpravit ovladače virtio-win do Windows hosta" #. in-place/in_place.ml:176 #: v2v/v2v.ml:216 open/open.ml:80 inspector/inspector.ml:165 msgid "Input format" msgstr "Vstupní formát" #: input/input_vddk.ml:77 msgid "" "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" "\n" "Refer to nbdkit-vddk-plugin(1) and the VDDK documentation for further\n" "information on these settings.\n" msgstr "" #: v2v/v2v.ml:222 open/open.ml:86 inspector/inspector.ml:171 msgid "Input transport" msgstr "Vstupní transport" #: common/mlcustomize/customize_run.ml:191 #, fuzzy #| msgid "Uninstall package(s)" msgid "Installing firstboot command: %s" msgstr "Odinstalovat balíčky" #: common/mlcustomize/customize_run.ml:195 #, fuzzy #| msgid "Uninstall package(s)" msgid "Installing firstboot packages: %s" msgstr "Odinstalovat balíčky" #: common/mlcustomize/customize_run.ml:202 msgid "Installing firstboot script: %s" msgstr "" #: common/mlcustomize/customize_run.ml:248 #, fuzzy #| msgid "Uninstall package(s)" msgid "Installing packages: %s" msgstr "Odinstalovat balíčky" #: common/mlcustomize/customize_cmdline.ml:225 msgid "LOCALPATH:REMOTEDIR" msgstr "" #. in-place/in_place.ml:174 #: v2v/v2v.ml:214 open/open.ml:78 inspector/inspector.ml:163 msgid "Libvirt URI" msgstr "Libvirt URI" #: common/mlcustomize/customize_run.ml:255 msgid "Linking: %s -> %s" msgstr "" #. common/mlcustomize/customize_cmdline.ml:287 #. common/mlcustomize/customize_cmdline.ml:281 #: common/mlcustomize/customize_cmdline.ml:293 msgid "METHOD" msgstr "" #: common/mltools/tools_utils.ml:426 msgid "Make output machine readable" msgstr "" #: common/mlcustomize/customize_run.ml:260 msgid "Making directory: %s" msgstr "" #: v2v/v2v.ml:226 inspector/inspector.ml:173 in-place/in_place.ml:182 msgid "Map NIC to network or bridge or assign static IP" msgstr "" #: v2v/v2v.ml:210 inspector/inspector.ml:159 in-place/in_place.ml:170 msgid "Map bridge ‘in’ to ‘out’" msgstr "" #: v2v/v2v.ml:230 inspector/inspector.ml:179 in-place/in_place.ml:186 msgid "Map network ‘in’ to ‘out’" msgstr "" #: common/mlcustomize/customize_cmdline.ml:333 msgid "Move files in disk image" msgstr "" #: common/mlcustomize/customize_run.ml:264 msgid "Moving: %s -> %s" msgstr "" #. input/input_vcenter_https.ml:45 #. input/input_ova.ml:35 #. input/input_libvirt.ml:233 #. input/input_libvirt.ml:221 #. input/input_disk.ml:35 #: input/input_xen_ssh.ml:43 input/input_vmx.ml:36 msgid "No input options can be used in this mode.\n" msgstr "" #: output/output_ovirt.ml:40 output/output_null.ml:38 #: output/output_glance.ml:40 msgid "No output options can be used in this mode.\n" msgstr "" #: output/output_vdsm.ml:166 msgid "OVF (metadata) directory (%s) does not exist or is not a directory" msgstr "" #: common/mlcustomize/firstboot.ml:268 msgid "" "One of rhsrvany.exe or pvvxsvc.exe is missing in %s. One of them is " "required in order to install Windows firstboot scripts. You can get one by " "building rhsrvany (https://github.com/rwmjones/rhsrvany)" msgstr "" #: v2v/v2v.ml:236 msgid "Output hypervisor connection" msgstr "" #: output/output_ovirt_upload.ml:51 msgid "" "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" "\n" "You can override the UUIDs of the disks, instead of using autogenerated " "UUIDs\n" "after their uploads (if you do, you must supply one for each disk):\n" "\n" " -oo ovirt-disk-uuid=UUID Disk UUID\n" msgstr "" #: output/output_qemu.ml:44 msgid "" "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" msgstr "" #: output/output_vdsm.ml:43 msgid "" "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" "\n" "For 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" msgstr "" #: output/output_disk.ml:44 msgid "" "Output options that can be used with -o disk:\n" "\n" " -oo compressed Compress the output file (used only with -of qcow2)\n" msgstr "" #: output/output_kubevirt.ml:51 msgid "" "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" msgstr "" #: output/output_libvirt.ml:47 msgid "" "Output options that can be used with -o libvirt:\n" "\n" " -oo compressed Compress the output file (used only with -of qcow2)\n" msgstr "" #. common/mlcustomize/customize_cmdline.ml:235 #: common/mlcustomize/customize_cmdline.ml:420 msgid "PATH" msgstr "" #: common/mlcustomize/customize_cmdline.ml:181 msgid "PERMISSIONS:FILE" msgstr "" #. common/mlcustomize/customize_cmdline.ml:300 #. common/mlcustomize/customize_cmdline.ml:265 #: common/mlcustomize/customize_cmdline.ml:427 msgid "PKG,PKG.." msgstr "" #: v2v/v2v.ml:263 in-place/in_place.ml:203 msgid "Prefer 'virtio-blk' or 'virtio-scsi'" msgstr "" #: v2v/v2v.ml:252 in-place/in_place.ml:192 msgid "Print source and stop" msgstr "" #: common/mlcustomize/customize_cmdline.ml:208 msgid "Read customize commands from file" msgstr "" #: common/mltools/tools_utils.ml:421 msgid "Read passphrases from stdin" msgstr "" #: common/mlcustomize/customize_cmdline.ml:421 #, fuzzy #| msgid "Delete a file or directory" msgid "Recursively truncate all files in directory" msgstr "Smazat soubor či složku" #: common/mlcustomize/customize_run.ml:298 #, fuzzy #| msgid "%s: warning: %s" msgid "Recursively truncating: %s" msgstr "%s: varování: %s%c" #: v2v/v2v.ml:240 msgid "Rename guest when converting" msgstr "" #: common/mlcustomize/customize_cmdline.ml:259 msgid "Run command at first guest boot" msgstr "" #: common/mlcustomize/customize_cmdline.ml:368 msgid "Run command in disk image" msgstr "" #: common/mlcustomize/customize_cmdline.ml:253 msgid "Run script at first guest boot" msgstr "" #: common/mlcustomize/customize_cmdline.ml:362 msgid "Run script in disk image" msgstr "" #: common/mlcustomize/customize_cmdline.ml:409 msgid "Run touch on a file" msgstr "" #: v2v/v2v.ml:250 msgid "Run up to N instances of nbdcopy in parallel" msgstr "" #: open/open.ml:188 msgid "Running external command" msgstr "" #: common/mlcustomize/customize_run.ml:307 #, fuzzy #| msgid "%s: warning: %s" msgid "Running touch: %s" msgstr "%s: varování: %s%c" #. common/mlcustomize/customize_run.ml:159 #: common/mlcustomize/customize_run.ml:274 #, fuzzy #| msgid "%s: warning: %s" msgid "Running: %s" msgstr "%s: varování: %s%c" #. common/mlcustomize/customize_cmdline.ml:252 #: common/mlcustomize/customize_cmdline.ml:361 msgid "SCRIPT" msgstr "SKRIPT" #: common/mltools/tools_utils.ml:422 #: common/mlcustomize/customize_cmdline.ml:351 msgid "SELECTOR" msgstr "" #: common/mlcustomize/customize_run.ml:363 msgid "SELinux relabelling" msgstr "" #. common/mlcustomize/customize_cmdline.ml:214 #: common/mlcustomize/customize_cmdline.ml:328 msgid "SOURCE:DEST" msgstr "" #: common/mlcustomize/customize_run.ml:287 msgid "SSH key could not be injected for this type of guest" msgstr "" #: common/mlcustomize/customize_run.ml:284 msgid "SSH key inject: %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:374 msgid "Scrub a file" msgstr "" #: common/mlcustomize/customize_cmdline.ml:466 msgid "Scrub build log file" msgstr "" #: common/mlcustomize/customize_run.ml:374 msgid "Scrubbing the log file" msgstr "" #: common/mlcustomize/customize_run.ml:279 #, fuzzy #| msgid "%s: warning: %s" msgid "Scrubbing: %s" msgstr "%s: varování: %s%c" #: v2v/v2v.ml:208 msgid "Set bandwidth dynamically from file" msgstr "" #: v2v/v2v.ml:206 msgid "Set bandwidth to bits per sec" msgstr "" #. in-place/in_place.ml:172 #: v2v/v2v.ml:212 open/open.ml:76 inspector/inspector.ml:161 msgid "Set input mode (default: libvirt)" msgstr "" #: v2v/v2v.ml:228 inspector/inspector.ml:175 in-place/in_place.ml:184 msgid "Set memory size" msgstr "" #: v2v/v2v.ml:256 inspector/inspector.ml:185 in-place/in_place.ml:196 msgid "Set number of vCPUs" msgstr "" #. in-place/in_place.ml:178 #: v2v/v2v.ml:218 open/open.ml:82 inspector/inspector.ml:167 msgid "Set option for input mode" msgstr "" #: v2v/v2v.ml:242 msgid "Set option for output mode" msgstr "" #: v2v/v2v.ml:234 msgid "Set output allocation mode" msgstr "" #: v2v/v2v.ml:238 #, fuzzy #| msgid "Input format" msgid "Set output format" msgstr "Vstupní formát" #: v2v/v2v.ml:232 msgid "Set output mode (default: libvirt)" msgstr "" #: v2v/v2v.ml:246 msgid "Set output storage location" msgstr "" #: common/mlcustomize/customize_cmdline.ml:476 msgid "Set password crypto" msgstr "" #: common/mltools/tools_utils.ml:430 msgid "Set program name" msgstr "" #: common/mlcustomize/customize_cmdline.ml:356 msgid "Set root password" msgstr "" #: common/mlcustomize/customize_cmdline.ml:403 msgid "Set the default timezone" msgstr "" #: common/mlcustomize/customize_cmdline.ml:276 msgid "Set the hostname" msgstr "" #: inspector/inspector.ml:181 in-place/in_place.ml:188 msgid "Set the output filename" msgstr "" #: common/mlcustomize/customize_cmdline.ml:345 msgid "Set user password" msgstr "" #: common/mlcustomize/customize_run.ml:75 msgid "Setting a random seed" msgstr "" #: common/mlcustomize/customize_run.ml:354 msgid "Setting passwords" msgstr "" #: common/mlcustomize/password.ml:113 msgid "Setting random password of %s to %s" msgstr "" #: common/mlcustomize/customize_run.ml:207 msgid "Setting the hostname: %s" msgstr "" #: common/mlcustomize/customize_run.ml:90 msgid "Setting the machine ID in %s" msgstr "" #: common/mlcustomize/customize_run.ml:302 msgid "Setting the timezone: %s" msgstr "" #: v2v/v2v.ml:481 msgid "Setting up the destination: %s" msgstr "" #. in-place/in_place.ml:342 #: v2v/v2v.ml:457 open/open.ml:184 inspector/inspector.ml:310 msgid "Setting up the source: %s" msgstr "" #: v2v/v2v.ml:463 in-place/in_place.ml:348 msgid "Source guest information (--print-source option):\n" msgstr "" #: common/mltools/tools_utils.ml:422 msgid "Specify a LUKS key" msgstr "" #: common/mlcustomize/customize_cmdline.ml:392 msgid "TARFILE:REMOTEDIR" msgstr "" #: common/mlcustomize/customize_cmdline.ml:311 msgid "TARGET:LINK[:LINK..]" msgstr "" #: common/mlcustomize/customize_cmdline.ml:402 msgid "TIMEZONE" msgstr "" #: v2v/v2v.ml:200 msgid "" "The --in-place option has been replaced by the ‘virt-v2v-in-place’ program" msgstr "" #: output/output_qemu.ml:251 msgid "" "The Virt machine has no support for IDE. Please report a bug for virt-v2v -- " "refer to virt-v2v(1) section \"BUGS\"." msgstr "" #: output/output_qemu.ml:272 msgid "" "The Virt machine has no support for floppies. Please report a bug for virt-" "v2v -- refer to virt-v2v(1) section \"BUGS\"." msgstr "" #: lib/create_ovf.ml:785 msgid "" "This guest required a password for connection to its display, but this is " "not supported by oVirt. Therefore the converted guest’s display will not " "require a separate password to connect." msgstr "" #: input/input_vmx.ml:111 msgid "" "This transport does not support guests with snapshots. Either collapse the " "snapshots for this guest and try the conversion again, or use one of the " "alternate conversion methods described in virt-v2v-input-vmware(1) section " "\"NOTES\"." msgstr "" #: common/mlcustomize/customize_cmdline.ml:415 msgid "Truncate a file to zero size" msgstr "" #: common/mlcustomize/customize_run.ml:294 #, fuzzy #| msgid "%s: warning: %s" msgid "Truncating: %s" msgstr "%s: varování: %s%c" #: common/mlcustomize/customize_cmdline.ml:192 msgid "UID:GID:PATH" msgstr "" #: common/mlcustomize/customize_cmdline.ml:339 msgid "USER:SELECTOR" msgstr "" #: common/mlcustomize/customize_cmdline.ml:380 msgid "USER[:SELECTOR]" msgstr "" #: common/mlcustomize/customize_cmdline.ml:432 msgid "Uninstall package(s)" msgstr "Odinstalovat balíčky" #: common/mlcustomize/customize_run.ml:311 #, fuzzy #| msgid "Uninstall package(s)" msgid "Uninstalling packages: %s" msgstr "Odinstalovat balíčky" #: common/mlcustomize/customize_run.ml:290 msgid "Unpack tar file: %s to %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:438 #, fuzzy #| msgid "Uninstall package(s)" msgid "Update packages" msgstr "Odinstalovat balíčky" #: common/mlcustomize/customize_run.ml:316 #, fuzzy #| msgid "Uninstall package(s)" msgid "Updating packages" msgstr "Odinstalovat balíčky" #: common/mlcustomize/customize_cmdline.ml:449 msgid "Upload local file to destination" msgstr "" #: common/mlcustomize/customize_run.ml:321 msgid "Uploading: %s to %s" msgstr "" #: common/mltools/tools_utils.ml:391 msgid "Use ANSI colour sequences even if not tty" msgstr "" #. in-place/in_place.ml:180 #: v2v/v2v.ml:220 open/open.ml:84 inspector/inspector.ml:169 msgid "Use password from file to connect to input hypervisor" msgstr "" #: v2v/v2v.ml:244 msgid "Use password from file to connect to output hypervisor" msgstr "" #: v2v/v2v.ml:224 msgid "Use virt-v2v-in-place instead" msgstr "" #: common/mltools/tools_utils.ml:392 msgid "Wrap log messages even if not tty" msgstr "" #: common/mlcustomize/customize_cmdline.ml:460 msgid "Write file" msgstr "" #: common/mlcustomize/customize_run.ml:346 #, fuzzy #| msgid "%s: warning: %s" msgid "Writing: %s" msgstr "%s: varování: %s%c" #: lib/YAML.ml:167 msgid "" "YAML block contains newline character. This should not happen, please " "report a bug against virt-v2v." msgstr "" #: output/output_libvirt.ml:96 msgid "" "a libvirt domain called ‘%s’ already exists on the target.\n" "\n" "If using virt-v2v directly, use the ‘-on’ option to select a different name. " "Or delete the existing domain on the target using the ‘virsh undefine’ " "command.\n" "\n" "If using virt-p2v, select a different ‘Name’ in the ‘Target properties’. Or " "delete the existing domain on the target using the ‘virsh undefine’ command." msgstr "" #: common/mlcustomize/append_line.ml:44 msgid "append_line: %s is not a file" msgstr "" #: input/input_libvirt.ml:206 msgid "" "bad checksum for disk %d/%d\n" "Expected checksum: %s\n" "Actual checksum: %s" msgstr "" #: lib/libvirt_utils.ml:59 msgid "cannot find libvirt domain ‘%s’: %s" msgstr "" #: lib/libvirt_utils.ml:96 msgid "" "cannot find libvirt pool ‘%s’: %s\n" "\n" "Use ‘virsh pool-list --all’ to list all available pools, and ‘virsh pool-" "dumpxml ’ to display details about a particular pool.\n" "\n" "To set the pool which virt-v2v uses, add the ‘-os ’ option." msgstr "" #: lib/libvirt_utils.ml:110 msgid "cannot find libvirt volume ‘%s’: %s" msgstr "" #: common/mlcustomize/firstboot.ml:235 msgid "" "cannot finish firstboot installation by running ‘%s’ because host cpu (%s) " "and guest arch (%s) are not compatible. The firstboot service may not run " "at boot." msgstr "" #: output/output_libvirt.ml:180 msgid "cannot get libvirt domain capabilities: %s" msgstr "" #: output/output_libvirt.ml:85 msgid "cannot get libvirt hypervisor capabilities: %s" msgstr "" #: v2v/v2v.ml:105 inspector/inspector.ml:95 in-place/in_place.ml:102 msgid "cannot parse --mac \"%s\" parameter" msgstr "" #: v2v/v2v.ml:129 inspector/inspector.ml:119 in-place/in_place.ml:126 msgid "cannot parse --mac ip %s: doesn’t look like “%s” is an IP address" msgstr "" #: v2v/v2v.ml:143 inspector/inspector.ml:133 in-place/in_place.ml:140 msgid "cannot parse --mac ip prefix length field as an integer: %s" msgstr "" #: common/mlcustomize/guest_packages.ml:29 msgid "" "cannot use ‘%s’ because no package manager has been detected for this guest " "OS.\n" "\n" "If this guest OS is a common one with ordinary package management then this " "may have been caused by a failure of libguestfs inspection.\n" "\n" "For OSes such as Windows that lack package management, this is not " "possible. Try using one of the ‘--firstboot*’ flags instead (described in " "the virt-customize(1) manual)." msgstr "" #: output/output_ovirt.ml:91 msgid "" "cannot write files to the NFS server as %d:%d, even though we appear to be " "running as root. This probably means the NFS client or idmapd is not " "configured properly.\n" "\n" "You will have to chown the files that virt-v2v creates after the run, " "otherwise oVirt will not be able to import the VM." msgstr "" #: output/output_ovirt.ml:99 msgid "" "cannot write files to the NFS server as %d:%d. You might want to stop virt-" "v2v (^C) and rerun it as root." msgstr "" #: common/mlcustomize/customize_cmdline.ml:508 msgid "command '%s' cannot be used in command files, see the man page" msgstr "" #: common/mlcustomize/customize_cmdline.ml:525 msgid "command '%s' not valid, see the man page" msgstr "" #: common/mldrivers/linux_bootloaders.ml:318 msgid "could not add grub2 serial console (ignored)" msgstr "" #: input/ssh.ml:52 msgid "" "could not copy the VMX file from the remote server, see earlier error " "messages" msgstr "" #: output/output_libvirt.ml:211 msgid "" "could not define libvirt domain: %s.\n" "The libvirt XML is still available in ‘%s’. Try running ‘virsh -c %s define " "%s’ yourself instead." msgstr "" #: common/mldrivers/linux_bootloaders.ml:221 msgid "could not determine a way to update the configuration of Grub2" msgstr "" #: input/input_vddk.ml:243 msgid "" "could not fetch thumbprint from the server, you mus use ‘-io vddk-" "thumbprint=XX:XX...’" msgstr "" #: common/mldrivers/linux_bootloaders.ml:376 msgid "could not find bootloader mount point (%s): %s" msgstr "" #: common/mldrivers/windows_drivers.ml:91 msgid "" "could not find registry entry " "HKEY_LOCAL_MACHINE\\SYSTEM\\DriverDatabase\\DeviceIds in this Windows " "guest. It may be either a very old or very new version of Windows that we " "cannot process." msgstr "" #: common/mlcustomize/firstboot.ml:232 msgid "" "could not finish firstboot installation by running ‘%s’ because the command " "failed: %s" msgstr "" #. input/input_vcenter_https.ml:94 #: input/select_input.ml:66 input/input_xen_ssh.ml:71 input/input_vddk.ml:151 msgid "could not parse '-ic %s'. Original error message was: %s" msgstr "" #: input/parse_libvirt_xml.ml:407 input/parse_libvirt_xml.ml:54 msgid "could not parse device name ‘%s’ from the source libvirt XML" msgstr "" #: input/OVF.ml:168 msgid "could not parse disk rasd:HostResource from OVF document" msgstr "" #: input/input_ova.ml:98 #, fuzzy #| msgid "could not read key from user" msgid "could not parse ovf:Name from OVF document" msgstr "nepodařilo se načíst klíč od uživatele" #: output/output_ovirt.ml:247 msgid "" "could not read the %s specified by the '-os %s' parameter on the command " "line. Is it really an OVirt %s? The original error is: %s" msgstr "" #: common/mldrivers/linux_bootloaders.ml:336 msgid "" "could not rebuild grub2 configuration file (%s). This may mean that grub " "output will not be sent to the serial port, but otherwise should be " "harmless. Original error message: %s" msgstr "" #: output/output_libvirt.ml:156 msgid "could not refresh libvirt pool ‘%s’: %s" msgstr "" #: common/mldrivers/linux_bootloaders.ml:320 msgid "could not remove grub2 serial console (ignored)" msgstr "" #: common/mltools/registry.ml:93 msgid "" "decode_utf16le: Windows UTF16-LE string contains non-7-bit characters. This " "is a bug in %s, please report it." msgstr "" #: common/mltools/registry.ml:87 msgid "" "decode_utf16le: Windows string does not appear to be in UTF16-LE encoding. " "This could be a bug in %s." msgstr "" #: common/mldrivers/linux_bootloaders.ml:126 msgid "didn't find grub entry for kernel %s" msgstr "" #: input/input_disk.ml:150 msgid "disks on the command line have mixed formats" msgstr "" #: input/parse_libvirt_xml.ml:194 msgid "display in the input libvirt XML was ignored" msgstr "" #: output/output_qemu.ml:147 msgid "don’t know how to convert UEFI guests for architecture %s" msgstr "" #: common/mldrivers/linux.ml:158 msgid "don’t know how to find file owner using %s" msgstr "" #: common/mldrivers/linux.ml:89 msgid "don’t know how to get list of files from package using %s" msgstr "" #: common/mltools/curl.ml:82 msgid "downloading %s" msgstr "" #: lib/networks.ml:84 msgid "" "duplicate --mac parameter. Duplicate mappings specified for MAC address %s." msgstr "" #: lib/networks.ml:102 msgid "" "duplicate -b/--bridge parameter. Duplicate mappings specified for bridge %s." msgstr "" #: lib/networks.ml:108 msgid "duplicate -b/--bridge parameter. Only one default mapping is allowed." msgstr "" #: lib/networks.ml:90 msgid "" "duplicate -n/--network parameter. Duplicate mappings specified for network " "%s." msgstr "" #: lib/networks.ml:96 msgid "duplicate -n/--network parameter. Only one default mapping is allowed." msgstr "" #: input/OVF.ml:143 msgid "error parsing disk fileRef" msgstr "" #: input/input_ova.ml:124 msgid "error uncompressing %s, see earlier error messages" msgstr "" #: input/OVA.ml:210 input/OVA.ml:112 msgid "error unpacking %s, see earlier error messages" msgstr "" #: common/mltools/tools_utils.ml:248 msgid "exception: %s" msgstr "" #: common/mltools/tools_utils.ml:455 #, fuzzy #| msgid "%s exited with error status %d" msgid "exited with error %d" msgstr "%s ukončeno s chybovým stavem %d" #: lib/utils.ml:34 #, fuzzy #| msgid "%s exited with error status %d" msgid "exited with non-zero error code %d" msgstr "%s ukončeno s chybovým stavem %d" #: input/input_disk.ml:147 msgid "expected >= 1 disk name on the command line" msgstr "" #: common/mltools/xpath_helpers.ml:36 msgid "" "expecting XML expression to return an integer (expression: %s, matching " "string: %s)" msgstr "" #: common/mltools/tools_utils.ml:440 msgid "external command" msgstr "" #: output/output_ovirt_upload.ml:265 msgid "failed server prechecks, see earlier errors" msgstr "" #: output/output_ovirt_upload.ml:507 msgid "failed to create virtual machine, see earlier errors" msgstr "" #: output/output_ovirt_upload.ml:479 msgid "failed to finalize the transfers, see earlier errors" msgstr "" #: common/mldrivers/linux_bootloaders.ml:208 msgid "failed to find grub2-mkconfig binary (but Grub2 was detected on guest)" msgstr "" #: input/OVA.ml:461 msgid "failed to parse line returned by tar: %S" msgstr "" #: output/output_ovirt_upload.ml:394 msgid "failed to start transfer, see earlier errors" msgstr "" #: output/output_ovirt_upload.ml:311 msgid "failed vmchecks, see earlier errors" msgstr "" #: common/mltools/tools_utils.ml:239 msgid "failure: %s" msgstr "nezdar: %s" #: input/input_ova.ml:134 msgid "file ‘%s’ not found in the ova" msgstr "" #: common/mlcustomize/firstboot.ml:143 msgid "" "firstboot: unknown version for old firstboot.service file %s (md5=%s), it " "will not be removed" msgstr "" #: common/mltools/tools_utils.ml:258 #, fuzzy #| msgid "%s killed by signal %d (%s)" msgid "generated by %s %s" msgstr "%s vynuceně ukončeno signálem %d (%s)" #: output/create_libvirt_xml.ml:39 msgid "get_osinfo_id: unknown guest operating system: %s" msgstr "" #: output/output_glance.ml:66 msgid "" "glance: glance client is not installed or set up correctly. You may need to " "set environment variables or source a script to enable authentication. See " "preceding messages for details." msgstr "" #: output/output_glance.ml:139 msgid "glance: image upload to glance failed, see earlier errors" msgstr "" #: common/mlcustomize/firstboot.ml:386 common/mlcustomize/firstboot.ml:164 msgid "guest type %s is not supported" msgstr "host typu %s není podporován" #: common/mlcustomize/firstboot.ml:413 #, fuzzy #| msgid "guest type %s is not supported" msgid "guest type %s/%s is not supported" msgstr "host typu %s není podporován" #: common/mltools/tools_utils.ml:749 msgid "" "host (%s/%s) and guest (%s/%s) are not compatible, so you cannot use command " "line options that involve running commands in the guest. Use --firstboot " "scripts instead." msgstr "" #: common/mlcustomize/customize_run.ml:209 msgid "hostname could not be set for this type of guest" msgstr "" #: common/mldrivers/linux_kernels.ml:342 msgid "ignoring kernel %s in bootloader, as it does not exist." msgstr "" #: output/output_vdsm.ml:160 msgid "image directory (%s) does not exist or is not a directory" msgstr "" #: input/parse_libvirt_xml.ml:81 msgid "in the libvirt XML metadata, is missing or empty" msgstr "" #: input/parse_libvirt_xml.ml:87 msgid "in the libvirt XML metadata, is missing or empty" msgstr "" #: input/input_vcenter_https.ml:52 input/input_libvirt.ml:107 msgid "in-place mode does not work with HTTP source" msgstr "" #: input/input_vddk.ml:146 msgid "in-place mode does not work with VDDK source" msgstr "" #: input/input_vmx.ml:43 msgid "in-place mode does not work with VMX source" msgstr "" #: input/input_xen_ssh.ml:50 msgid "in-place mode does not work with Xen over SSH source" msgstr "" #: output/output_kubevirt.ml:116 msgid "" "incorrect number of '-oo disk' parameters. This guest has %d disks, but the " "parameter was used %d times." msgstr "" #: input/input_xen_ssh.ml:119 msgid "" "input from xen over ssh does not support disks stored on remote block " "devices. See virt-v2v-input-xen(1) section \"Xen or ssh conversions from " "block devices\"." msgstr "" #. in-place/in_place.ml:397 #: v2v/v2v.ml:590 open/open.ml:238 inspector/inspector.ml:353 msgid "" "insufficient free space in the conversion server temporary directory %s " "(%s).\n" "\n" "Either free up space in that directory, or set the LIBGUESTFS_CACHEDIR " "environment variable to point to another directory with more than 1GB of " "free space.\n" "\n" "See also the virt-v2v(1) manual, section \"Minimum free space check in the " "host\"." msgstr "" #: common/mltools/tools_utils.ml:246 msgid "internal error: Not_found exception was thrown" msgstr "" #: common/mltools/tools_utils.ml:243 msgid "internal error: assertion failed at %s, line %d, char %d" msgstr "" #: common/mltools/tools_utils.ml:241 msgid "internal error: invalid argument: %s" msgstr "" #: common/mldrivers/linux.ml:128 msgid "internal error: is_file_owned: dpkg command returned no output" msgstr "" #: common/mldrivers/linux.ml:133 msgid "internal error: is_file_owned: unexpected output from dpkg command: %s" msgstr "" #: common/mldrivers/linux_bootloaders.ml:130 msgid "internal error: regular expression did not match ‘%s’" msgstr "" #: v2v/v2v.ml:548 msgid "internal error: wait returned unexpected process ID %d status \"%s\"" msgstr "" #: v2v/v2v.ml:114 inspector/inspector.ml:104 in-place/in_place.ml:111 msgid "invalid --mac ip option" msgstr "" #: v2v/v2v.ml:98 inspector/inspector.ml:88 in-place/in_place.ml:95 msgid "invalid -b/--bridge parameter" msgstr "" #: v2v/v2v.ml:90 inspector/inspector.ml:80 in-place/in_place.ml:87 msgid "invalid -n/--network parameter" msgstr "" #: input/parse_domain_from_vmx.ml:402 msgid "invalid cpuid.coresPerSocket < number of vCPUs" msgstr "" #. common/mlcustomize/customize_cmdline.ml:153 #. common/mlcustomize/customize_cmdline.ml:145 #: common/mlcustomize/customize_cmdline.ml:161 msgid "invalid format for '--%s' parameter, see the man page" msgstr "" #: common/mltools/tools_utils.ml:359 msgid "invalid format string for --machine-readable: %s" msgstr "" #: lib/utils.ml:279 msgid "invalid input filename (%s)" msgstr "" #: input/OVA.ml:445 msgid "invalid offset returned by tar: %S" msgstr "" #: common/mltools/tools_utils.ml:374 msgid "invalid output fd for --machine-readable: %s" msgstr "" #: common/mltools/tools_utils.ml:376 msgid "invalid output for --machine-readable: %s" msgstr "" #: common/mltools/tools_utils.ml:368 msgid "invalid output stream for --machine-readable: %s" msgstr "" #: common/mlcustomize/password.ml:73 msgid "invalid password selector ‘%s’; see the man page" msgstr "" #: input/OVA.ml:450 msgid "invalid size returned by tar: %S" msgstr "" #: common/mlcustomize/ssh_key.ml:45 msgid "invalid ssh-inject selector ‘%s’; see the man page" msgstr "" #: input/OVF.ml:82 msgid "invalid vmw:CoresPerSocket (%d) ignored" msgstr "" #: input/OVF.ml:88 msgid "invalid vmw:CoresPerSocket < number of cores" msgstr "" #: common/mldrivers/linux_bootloaders.ml:114 msgid "kernel %s is not under grub tree %s" msgstr "" #: common/mltools/tools_utils.ml:539 common/mltools/tools_utils.ml:458 #, fuzzy #| msgid "%s killed by signal %d (%s)" msgid "killed by signal %d" msgstr "%s vynuceně ukončeno signálem %d (%s)" #: common/mltools/tools_utils.ml:237 #, fuzzy #| msgid "%s: error: %s" msgid "libguestfs error: %s" msgstr "%s: chyba: %s%c" #: lib/libvirt_utils.ml:72 msgid "" "libvirt domain ‘%s’ is running or paused. Converting a live guest will " "result in corrupted output. However this is safe if you're converting from a " "snapshot" msgstr "" #: common/mlcustomize/customize_run.ml:47 msgid "log file %s: %s (ignored)" msgstr "" #: input/OVA.ml:147 msgid "" "making OVA directory public readable to work around libvirt bug https://" "bugzilla.redhat.com/1045069" msgstr "" #: input/input_ova.ml:86 msgid "manifest has a checksum for non-existent file %s (ignored)" msgstr "" #: common/mlcustomize/customize_cmdline.ml:472 msgid "md5|sha256|sha512" msgstr "" #: common/mlcustomize/customize_run.ml:119 #, fuzzy #| msgid "guest type %s is not supported" msgid "method '%s' is no longer supported" msgstr "host typu %s není podporován" #: common/mltools/JSON_parser.ml:39 msgid "missing value for the key ‘%s’" msgstr "" #: input/OVA.ml:276 msgid "more than one .ovf file was found in %s" msgstr "" #: common/mltools/JSON_parser.ml:34 msgid "more than value for the key ‘%s’" msgstr "" #: output/output_ovirt.ml:222 msgid "" "mount command failed, see earlier errors.\n" "\n" "This probably means you didn't specify the right %s path [-os %s], or else " "you need to rerun virt-v2v as root." msgstr "" #: common/mlcustomize/customize_run.ml:103 msgid "" "multiple --root-password/--password options set the password for user ‘%s’ " "twice" msgstr "" #: input/input_vddk.ml:319 msgid "" "nbdkit VDDK plugin is not installed or not working. It is required if you " "want to use VDDK.\n" "\n" "It 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 ’/%s/libvixDiskLib.so.?’.\n" "\n" "See also the virt-v2v-input-vmware(1) manual." msgstr "" #: input/input_vddk.ml:313 msgid "" "nbdkit VDDK plugin is not installed or not working. It is required if you " "want to use VDDK.\n" "\n" "The 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" "\n" "See also the virt-v2v-input-vmware(1) manual." msgstr "" #: lib/nbdkit.ml:223 msgid "nbdkit did not start up. See previous debugging messages for problems." msgstr "" #: lib/nbdkit.ml:225 msgid "" "nbdkit did not start up. There may be errors printed by nbdkit above.\n" "\n" "If the messages above are not sufficient to diagnose the problem then add " "the ‘virt-v2v -v -x’ options and examine the debugging output carefully." msgstr "" #: input/nbdkit_ssh.ml:36 input/nbdkit_curl.ml:32 input/input_vddk.ml:283 msgid "nbdkit is not installed or not working" msgstr "" #: input/input_disk.ml:92 msgid "" "nbdkit is not installed or not working. It is required to use ‘-i disk’." msgstr "" #: input/input_libvirt.ml:68 msgid "" "nbdkit is not installed or not working. It is required to use ‘-i libvirt|" "libvirtxml’." msgstr "" #: output/output.ml:178 output/output.ml:77 msgid "" "nbdkit is not installed or not working. It is required to use ‘-o disk’." msgstr "" #: output/output_null.ml:57 msgid "" "nbdkit is not installed or not working. It is required to use ‘-o null’." msgstr "" #: output/output_ovirt_upload.ml:163 msgid "" "nbdkit is not installed or not working. It is required to use ‘-o ovirt-" "upload’. See the virt-v2v-output-ovirt(1) manual." msgstr "" #: input/input_vddk.ml:285 msgid "nbdkit must be >= 1.45.11 for input from VDDK" msgstr "" #: output/output_ovirt_upload.ml:176 msgid "" "nbdkit python plugin is not installed or not working. It is required if you " "want to use ‘-o ovirt-upload’.\n" "\n" "See also the virt-v2v-output-ovirt(1) manual." msgstr "" #: output/output_ovirt_upload.ml:190 msgid "" "nbdkit was compiled without SELinux support. You will have to recompile " "nbdkit with libselinux-devel installed, or else set SELinux to Permissive " "mode while doing the conversion." msgstr "" #. input/input_libvirt.ml:76 #. input/input_disk.ml:98 #: input/nbdkit_ssh.ml:42 input/nbdkit_curl.ml:38 input/input_vddk.ml:289 msgid "nbdkit-cow-filter is not installed or not working" msgstr "" #: input/nbdkit_curl.ml:35 msgid "nbdkit-curl-plugin is not installed" msgstr "" #. input/input_disk.ml:96 #: output/output.ml:181 output/output.ml:80 input/input_libvirt.ml:72 msgid "nbdkit-file-plugin is not installed or not working" msgstr "" #: input/input_libvirt.ml:74 msgid "nbdkit-nbd-plugin is not installed or not working" msgstr "" #: output/output_null.ml:60 msgid "nbdkit-null-plugin is not installed or not working" msgstr "" #: input/nbdkit_ssh.ml:39 msgid "nbdkit-ssh-plugin is not installed" msgstr "" #: input/input_vddk.ml:287 msgid "nbdkit-vddk-plugin is not installed" msgstr "" #: lib/nbdkit.ml:56 msgid "nbdkit: unexpected version in --dump-config: %s" msgstr "" #. input/input_vcenter_https.ml:49 #. input/input_ova.ml:46 #. input/input_libvirt.ml:35 #. input/input_disk.ml:39 #: input/input_xen_ssh.ml:47 input/input_vmx.ml:40 msgid "no -io (input options) are allowed here" msgstr "" #: output/output_ovirt.ml:44 output/output_null.ml:42 #: output/output_glance.ml:44 msgid "no -oo (output options) are allowed here" msgstr "" #: input/OVA.ml:273 msgid "no .ovf file was found in %s" msgstr "" #: common/mldrivers/linux_bootloaders.ml:402 msgid "no bootloader detected" msgstr "" #: input/parse_domain_from_vmx.ml:359 msgid "no displayName key found in VMX file" msgstr "" #: input/OVF.ml:148 msgid "no href in ovf:File (id=%s)" msgstr "" #: common/mldrivers/linux_kernels.ml:194 msgid "no initrd was found in /boot matching %s %s." msgstr "" #: common/mldrivers/linux_kernels.ml:317 msgid "" "no installed kernel packages were found.\n" "\n" "This probably indicates that %s was unable to inspect this guest properly." msgstr "" #: common/mldrivers/linux_kernels.ml:354 msgid "" "no kernels were found in the bootloader configuration.\n" "\n" "This probably indicates that %s was unable to parse the bootloader " "configuration of this guest." msgstr "" #: output/python_script.ml:55 msgid "no python binary called ‘%s’ can be found on the $PATH" msgstr "" #: input/select_input.ml:106 msgid "" "no support for remote libvirt connections to '-ic %s'. The conversion may " "fail when it tries to read the source disks." msgstr "" #: lib/create_ovf.ml:1027 msgid "" "oVirt cannot emulate ‘%s’ sound cards. This sound card will be dropped from " "the output." msgstr "" #: lib/create_ovf.ml:875 lib/create_ovf.ml:512 msgid "oVirt does not support the output format ‘%s’, only raw or qcow2" msgstr "" #: output/output_openstack.ml:120 msgid "openstack: -oo server-id= not present" msgstr "" #: output/output_openstack.ml:338 msgid "" "openstack: failed to attach cinder volume to VM, see earlier error messages" msgstr "" #: output/output_openstack.ml:291 msgid "openstack: failed to create a cinder volume, see earlier error messages" msgstr "" #: output/output_openstack.ml:304 msgid "" "openstack: failed to query cinder volume status, see earlier error messages" msgstr "" #: output/output_openstack.ml:442 msgid "" "openstack: failed to set image properties on cinder volume, see earlier " "error messages" msgstr "" #: output/output_openstack.ml:199 msgid "" "openstack: precheck failed, there may be a problem with authentication, see " "earlier error messages" msgstr "" #: output/output_openstack.ml:311 msgid "" "openstack: unknown volume status \"%s\": expected \"creating\" or " "\"available\"" msgstr "" #: output/output.ml:133 msgid "output mode only supports raw or qcow2 format (format: %s)" msgstr "" #: input/OVF.ml:263 msgid "" "ova disk has an unknown VMware controller type (%d), please report this as a " "bug supplying the *.ovf file extracted from the ova" msgstr "" #: input/OVF.ml:259 msgid "" "ova disk has no parent controller, please report this as a bug supplying the " "*.ovf file extracted from the ova" msgstr "" #: output/output_ovirt_upload.ml:367 msgid "" "ovirt-upload: -of %s: Only output format ‘raw’ or ‘qcow2’ is supported. If " "the input is in a different format then force one of these output formats by " "adding either ‘-of raw’ or ‘-of qcow2’ on the command line." msgstr "" #: common/mlcustomize/password.ml:51 msgid "" "password-crypto: unknown algorithm %s, use \"md5\", \"sha256\", \"sha512\" " "or \"yescrypt\"" msgstr "" #: common/mlcustomize/password.ml:197 msgid "" "password: using insecure md5 password encryption for guest of type %s " "version %d.%d.\n" "If this is incorrect, use --password-crypto option and file a bug." msgstr "" #: common/mlcustomize/customize_run.ml:359 msgid "passwords could not be set for this type of guest" msgstr "" #: lib/qemuNBD.ml:125 msgid "" "qemu-nbd did not start up. See previous debugging messages for problems." msgstr "" #: lib/qemuNBD.ml:127 msgid "" "qemu-nbd did not start up. There may be errors printed by qemu-nbd above.\n" "\n" "If the messages above are not sufficient to diagnose the problem then add " "the ‘virt-v2v -v -x’ options and examine the debugging output carefully." msgstr "" #: lib/qemuNBD.ml:47 msgid "qemu-nbd: unexpected version in --version: %s" msgstr "" #: common/mlcustomize/customize_run.ml:77 msgid "random seed could not be set for this type of guest" msgstr "" #: input/parse_domain_from_vmx.ml:44 msgid "remote vmx ‘%s’ could not be parsed as a URI" msgstr "" #. common/mlcustomize/inject_virtio_win.ml:357 #. common/mlcustomize/inject_virtio_win.ml:352 #: common/mlcustomize/inject_virtio_win.ml:362 msgid "" "root directory ‘/’ is missing from the virtio-win directory or ISO.\n" "\n" "This should not happen and may indicate that virtio-win or virt-v2v is " "broken in some way. Please report this as a bug with a full debug log." msgstr "" #: common/mltools/tools_utils.ml:417 common/options/keys.c:264 #, c-format msgid "selector '%s': invalid TYPE" msgstr "" #: common/mltools/tools_utils.ml:409 common/options/keys.c:254 #, c-format msgid "selector '%s': missing FILENAME, or too many fields" msgstr "" #: common/mltools/tools_utils.ml:399 common/options/keys.c:232 #, c-format msgid "selector '%s': missing ID" msgstr "sektor „%s“: chybí identifikátor" #: common/mltools/tools_utils.ml:404 common/options/keys.c:245 #, c-format msgid "selector '%s': missing KEY_STRING, or too many fields" msgstr "" #: common/mltools/tools_utils.ml:401 common/options/keys.c:239 #, c-format msgid "selector '%s': missing TYPE" msgstr "" #: common/mltools/tools_utils.ml:413 common/options/keys.c:262 #, c-format msgid "selector '%s': too many fields" msgstr "" #: lib/utils.ml:35 #, fuzzy #| msgid "%s killed by signal %d (%s)" msgid "signalled by signal %d" msgstr "%s vynuceně ukončeno signálem %d (%s)" #: common/mlcustomize/guest_packages.ml:40 msgid "" "sorry, ‘%s’ with the ‘%s’ package manager has not been implemented yet.\n" "\n" "You can work around this by using one of the ‘--run*’ or ‘--firstboot*’ " "options instead (described in the virt-customize(1) manual)." msgstr "" #: common/mlcustomize/ssh_key.ml:57 msgid "ssh-inject: $HOME environment variable is not set" msgstr "" #: common/mlcustomize/ssh_key.ml:93 msgid "ssh-inject: key is an empty string" msgstr "" #: common/mlcustomize/ssh_key.ml:66 #, fuzzy #| msgid "Inject a public key into the guest" msgid "ssh-inject: no public key file found in %s" msgstr "Vpravit do hosta veřejný klíč" #: common/mlcustomize/ssh_key.ml:83 #, fuzzy #| msgid "Inject a public key into the guest" msgid "ssh-inject: public key file (%s) is empty" msgstr "Vpravit do hosta veřejný klíč" #: common/mlcustomize/ssh_key.ml:112 msgid "ssh-inject: the user %s does not exist on the guest" msgstr "" #. common/mltools/tools_utils.ml:461 #: lib/utils.ml:36 common/mltools/tools_utils.ml:542 #, fuzzy #| msgid "%s stopped by signal %d (%s)" msgid "stopped by signal %d" msgstr "%s zastaveno signálem %d (%s)" #: output/changeuid.ml:58 #, fuzzy #| msgid "%s exited with error status %d" msgid "subprocess exited with non-zero error code %d" msgstr "%s ukončeno s chybovým stavem %d" #: output/changeuid.ml:60 #, fuzzy #| msgid "%s killed by signal %d (%s)" msgid "subprocess signalled or stopped by signal %d" msgstr "%s vynuceně ukončeno signálem %d (%s)" #: lib/utils.ml:33 msgid "success" msgstr "" #: output/create_libvirt_xml.ml:297 msgid "" "target hypervisor does not support floppy devices, but floppy devices were " "found in the source guest" msgstr "" #: output/output_ovirt_upload.ml:156 msgid "" "the Python module ‘ovirtsdk4’ could not be loaded, is it installed? See " "previous messages for problems." msgstr "" #: output/output_ovirt_upload.ml:453 msgid "the cluster ‘%s’ does not support the architecture %s but %s" msgstr "" #: common/mlcustomize/customize_run.ml:59 msgid "" "the command may have failed because the network is disabled. Try either " "removing ‘--no-network’ or adding ‘--network’ on the command line." msgstr "" #: common/mltools/JSON_parser.ml:84 msgid "the key ‘%s’ was not found in a list of objects" msgstr "" #: output/output_ovirt_upload.ml:288 msgid "" "the number of ‘-oo ovirt-disk-uuid’ parameters passed on the command line " "has to match the number of guest disk images (for this guest: %d)" msgstr "" #: output/output_vdsm.ml:133 msgid "" "the number of ‘-oo vdsm-image-uuid’ and ‘-oo vdsm-vol-uuid’ parameters " "passed on the command line has to match the number of guest disk images (for " "this guest: %d)" msgstr "" #: output/output_libvirt.ml:239 msgid "the target hypervisor does not support a %s KVM guest" msgstr "" #: common/mltools/JSON_parser.ml:78 msgid "the value for key ‘%s’ is not a string as expected" msgstr "" #: common/mltools/JSON_parser.ml:50 msgid "the value for the key ‘%s’ is not a bool" msgstr "" #: common/mltools/JSON_parser.ml:45 msgid "the value for the key ‘%s’ is not a string" msgstr "" #: common/mltools/JSON_parser.ml:70 msgid "the value for the key ‘%s’ is not an integer" msgstr "" #: common/mltools/JSON_parser.ml:55 msgid "the value for the key ‘%s’ is not an object" msgstr "" #: common/mltools/JSON_parser.ml:59 msgid "the value is not an object" msgstr "" #: common/mltools/JSON_parser.ml:35 msgid "the value of the key ‘%s’ is not an object" msgstr "" #: lib/create_ovf.ml:519 msgid "" "the virtual size of the input disk %d is not an exact multiple of 512 " "bytes. The virtual size is: %Ld.\n" "\n" "This probably means something unexpected is going on, so please file a bug " "about this issue." msgstr "" #: output/output_openstack.ml:144 msgid "" "the ‘%s’ program is not available. It is needed to communicate with " "OpenStack." msgstr "" #: output/output_ovirt.ml:265 msgid "" "there are multiple UUIDs in the %s (%s). This is unexpected, and may be a " "bug in virt-v2v or OVirt." msgstr "" #: output/output_ovirt.ml:262 msgid "there are no UUIDs in the %s (%s). Is it really an OVirt %s?" msgstr "" #: common/mlcustomize/inject_virtio_win.ml:153 msgid "" "there are no virtio drivers available for this version of Windows (%d.%d %s " "%s %s). virt-v2v looks for drivers in %s\n" "\n" "The guest will be configured to use slower emulated devices." msgstr "" #: common/mlcustomize/inject_virtio_win.ml:175 msgid "" "there is no virtio block device driver for this version of Windows (%d.%d " "%s). virt-v2v looks for this driver in %s\n" "\n" "The guest will be configured to use a slower emulated device." msgstr "" #: common/mlcustomize/inject_virtio_win.ml:206 msgid "" "there is no virtio network driver for this version of Windows (%d.%d %s). " "virt-v2v looks for this driver in %s\n" "\n" "The guest will be configured to use a slower emulated device." msgstr "" #: input/parse_libvirt_xml.ml:545 msgid "this guest has a direct network interface which will be ignored" msgid_plural "this guest has direct network interfaces which will be ignored" msgstr[0] "" msgstr[1] "" msgstr[2] "" #: input/parse_libvirt_xml.ml:527 msgid "this guest has a passthrough host device which will be ignored" msgid_plural "this guest has passthrough host devices which will be ignored" msgstr[0] "" msgstr[1] "" msgstr[2] "" #: input/parse_libvirt_xml.ml:248 msgid "this guest has no non-removable disks" msgstr "" #: output/output.ml:65 msgid "this output module doesn't support copying more than %d disks" msgstr "" #: common/mlcustomize/timezone.ml:35 msgid "timezone '%s' does not exist, use a location like 'Europe/London'" msgstr "" #: common/mlcustomize/customize_run.ml:304 msgid "timezone could not be set for this type of guest" msgstr "" #: input/OVA.ml:318 msgid "unable to parse line from manifest file: %S" msgstr "" #: common/mltools/urandom.ml:37 msgid "unexpected end of file while reading /dev/urandom" msgstr "" #: input/input_libvirt.ml:196 msgid "unexpected output from the %s command" msgstr "" #: common/mltools/checksums.ml:58 msgid "unhandled checksum type ‘%s’" msgstr "" #: lib/types.ml:524 #, fuzzy #| msgid "unknown -o option: %s" msgid "unknown --root option: %s" msgstr "neznámá volba -o: %s" #: input/select_input.ml:51 msgid "unknown -i option: %s" msgstr "neznámá volba -i: %s" #: output/select_output.ml:74 msgid "unknown -o option: %s" msgstr "neznámá volba -o: %s" #: v2v/v2v.ml:164 #, fuzzy #| msgid "unknown -o option: %s" msgid "unknown -oa option: %s" msgstr "neznámá volba -o: %s" #: input/input_libvirt.ml:189 msgid "unknown method='%s'" msgstr "" #: input/OVF.ml:103 msgid "unknown Config:firmware value %s (expected \"bios\" or \"efi\")" msgstr "" #: lib/create_ovf.ml:446 lib/create_ovf.ml:247 msgid "unknown Windows 10 variant: %s (%s)" msgstr "" #: v2v/v2v.ml:319 in-place/in_place.ml:256 msgid "unknown block driver ‘--block-driver %s’" msgstr "" #: input/parse_domain_from_vmx.ml:415 msgid "unknown firmware value '%s', assuming BIOS" msgstr "" #: lib/create_ovf.ml:454 lib/create_ovf.ml:255 msgid "unknown guest operating system: %s %s %d.%d %s (%s)" msgstr "" #: v2v/v2v.ml:329 open/open.ml:132 inspector/inspector.ml:238 msgid "unknown input transport ‘-it %s’" msgstr "" #: input/parse_domain_from_vmx.ml:428 msgid "unknown sound device '%s' ignored" msgstr "" #: input/parse_libvirt_xml.ml:215 msgid "unknown sound model %s ignored" msgstr "" #: input/OVF.ml:156 msgid "unsupported compression in OVF: %s" msgstr "" #: input/input_vcenter_https.ml:123 msgid "" "vcenter: was not found in the XML. You need to " "upgrade to libvirt ≥ 1.2.20." msgstr "" #: input/vCenter.ml:79 msgid "vcenter: URL not found: %s" msgstr "" #: input/vCenter.ml:70 msgid "vcenter: incorrect username or password" msgstr "" #: input/vCenter.ml:72 msgid "" "vcenter: incorrect username or password. You might need to specify the " "username in the URI like this: [vpx|esx|..]://USERNAME@[etc]" msgstr "" #: input/vCenter.ml:84 msgid "vcenter: invalid response from server: %s" msgstr "" #: input/vCenter.ml:194 msgid "vcenter: no status code in output of ‘curl’ command." msgstr "" #: output/output_vdsm.ml:148 msgid "vdsm: invalid -os parameter does not contain a valid UUID: %s" msgstr "" #: output/output_openstack.ml:56 msgid "" "virt-v2v -oo server-id= [os-*=...]\n" "\n" "Specify the name or UUID of the conversion appliance using\n" "\n" " virt-v2v ... -o openstack -oo server-id=\n" "\n" "When virt-v2v runs it will attach the Cinder volumes to the\n" "conversion appliance, so this name or UUID must be the name\n" "of the virtual machine on OpenStack where virt-v2v is running.\n" "\n" "In addition, all usual OpenStack “os-*” parameters or “OS_*”\n" "environment variables can be used.\n" "\n" "Openstack “--os-*” parameters must be written as “virt-v2v -oo os-*”.\n" "\n" "For example:\n" "\n" " virt-v2v -oo os-username=\n" "\n" " equivalent to openstack: --os-username=\n" " or the environment variable: OS_USERNAME=\n" "\n" " virt-v2v -oo os-project-name=\n" "\n" " equivalent to openstack: --os-project-name=\n" " or the environment variable: OS_PROJECT_NAME=\n" "\n" "The os-* parameters and environment variables are optional.\n" msgstr "" #: input/parse_libvirt_xml.ml:189 msgid "" "virt-v2v does not support local displays, so in the " "input libvirt XML was ignored" msgstr "" #: input/select_input.ml:83 msgid "virt-v2v-in-place does not support remote libvirt URIs" msgstr "" #: input/parse_domain_from_vmx.ml:50 msgid "vmx URI path component looks incorrect" msgstr "" #: input/parse_domain_from_vmx.ml:48 msgid "vmx URI remote server name omitted" msgstr "" #: input/parse_domain_from_vmx.ml:46 msgid "vmx URI start with ‘ssh://...’" msgstr "" #: input/VMX.ml:313 msgid "vmx parser: cannot parse this line, ignoring: %s" msgstr "" #: input/VMX.ml:346 msgid "vmx parser: duplicate key '%s' ignored" msgstr "" #: output/output_openstack.ml:299 msgid "wait for cinder volume status to change to \"available\"" msgstr "" #: output/output_openstack.ml:360 msgid "waiting for cinder volume %s to attach to the conversion appliance" msgstr "" #: open/open.ml:136 msgid "you must supply the --run parameter" msgstr "" #: input/input_xen_ssh.ml:87 input/input_vddk.ml:189 msgid "‘-ic %s’ URL does not contain a host name field" msgstr "" #: input/input_vddk.ml:273 msgid "‘-io vddk-file=’ must be used exactly %d times" msgstr "" #: input/input_vddk.ml:297 msgid "" "‘-io vddk-libdir=%s’ does not point to a directory. See the virt-v2v-input-" "vmware(1) manual." msgstr "" #: output/output.ml:85 msgid "" "‘-oo compressed’ is only allowed when the output format is a local qcow2-" "format file, i.e. ‘-of qcow2’" msgstr "" #: input/input_vddk.ml:232 msgid "" "‘openssl’ command not found: automatically detecting thumbprint is not " "possible, so you must use ‘-io vddk-thumbprint=XX:XX...’" msgstr "" #: common/mltools/getopt-c.c:68 #, c-format msgid "Try ‘%s --help’ or consult %s(1) for more information.\n" msgstr "" #: common/mltools/getopt-c.c:187 #, c-format msgid "%s: ‘%s’ is not a numeric value.\n" msgstr "" # auto translated by TM merge from project: hivex, version: master, DocId: # hivex #: common/mltools/getopt-c.c:193 #, c-format msgid "%s: %s: integer out of range\n" msgstr "%s: %s: celé číslo mimo rozsah\n" #: common/mltools/getopt-c.c:383 #, c-format msgid "%s: ‘%s’ is not allowed for -%c; allowed values are:\n" msgstr "" #: common/mltools/getopt-c.c:386 #, c-format msgid "%s: ‘%s’ is not allowed for %s%s; allowed values are:\n" msgstr "" #: common/mltools/getopt-c.c:421 #, c-format msgid "Extra parameter on the command line: ‘%s’.\n" msgstr "" #: common/options/config.c:72 #, c-format msgid "%s: line %d: error parsing configuration file: %s" msgstr "" #: common/options/decrypt.c:52 #, c-format msgid "string size overflow" msgstr "" #: common/options/decrypt.c:170 #, c-format msgid "" "'clevis_luks_unlock', needed for decrypting %s, is unavailable in this " "libguestfs version" msgstr "" #: common/options/decrypt.c:184 #, c-format msgid "" "could not find key to open LUKS encrypted %s.\n" "\n" "Try using --key on the command line.\n" "\n" "Original error: %s (%d)" msgstr "" #: common/options/inspect.c:78 #, c-format msgid "" "%s: no operating system was found on this disk\n" "\n" "If using guestfish ‘-i’ option, remove this option and instead\n" "use the commands ‘run’ followed by ‘list-filesystems’.\n" "You can then mount filesystems you want by hand using the\n" "‘mount’ or ‘mount-ro’ command.\n" "\n" "If using guestmount ‘-i’, remove this option and choose the\n" "filesystem(s) you want to see by manually adding ‘-m’ option(s).\n" "Use ‘virt-filesystems’ to see what filesystems are available.\n" "\n" "If using other virt tools, this disk image won’t work\n" "with these tools. Use the guestfish equivalent commands\n" "(see the virt tool manual page).\n" msgstr "" #: common/options/inspect.c:99 #, c-format msgid "" "%s: multi-boot operating systems are not supported\n" "\n" "If using guestfish ‘-i’ option, remove this option and instead\n" "use the commands ‘run’ followed by ‘list-filesystems’.\n" "You can then mount filesystems you want by hand using the\n" "‘mount’ or ‘mount-ro’ command.\n" "\n" "If using guestmount ‘-i’, remove this option and choose the\n" "filesystem(s) you want to see by manually adding ‘-m’ option(s).\n" "Use ‘virt-filesystems’ to see what filesystems are available.\n" "\n" "If using other virt tools, multi-boot operating systems won’t work\n" "with these tools. Use the guestfish equivalent commands\n" "(see the virt tool manual page).\n" msgstr "" #: common/options/inspect.c:161 #, c-format msgid "%s: some filesystems could not be mounted (ignored)\n" msgstr "" #: common/options/inspect.c:178 #, c-format msgid "Operating system: %s\n" msgstr "Operační systém: %s\n" #: common/options/inspect.c:196 #, c-format msgid "%s mounted on %s\n" msgstr "%s připojeno na %s\n" #: common/options/keys.c:63 #, c-format msgid "Enter key or passphrase (\"%s\"): " msgstr "Zadejte klíč nebo heslovou frázi („%s“): " #: common/options/keys.c:146 #, c-format msgid "size_t overflow" msgstr "" #: common/options/keys.c:193 #, c-format msgid "could not read key from user" msgstr "nepodařilo se načíst klíč od uživatele" #: common/options/options.c:283 #, c-format msgid "%s: ‘%s’ could not be mounted.\n" msgstr "" #: common/options/options.c:287 #, c-format msgid "" "%s: Check mount(8) man page to ensure options ‘%s’\n" "%s: are supported by the filesystem that is being mounted.\n" msgstr "" #: common/options/options.c:291 #, c-format msgid "%s: Did you mean to mount one of these filesystems?\n" msgstr "" "%s: Měli jste na mysli připojení některého z těchto souborových systémů?\n" #: common/options/options.c:304 #, c-format msgid "cannot determine the subvolume for %s: %s (%d)" msgstr "nedaří se zjistit svazky pro %s: %s (%d)" #: common/options/uri.c:119 #, c-format msgid "%s: --add: could not parse URI ‘%s’\n" msgstr "" #: common/options/uri.c:130 #, c-format msgid "%s: %s: scheme of URI is NULL or empty\n" msgstr "" #: common/options/uri.c:138 #, c-format msgid "%s: %s: cannot have both a server name and a socket query parameter\n" msgstr "" #: common/utils/utils.c:107 #, c-format msgid "%s exited successfully" msgstr "%s úspěšně ukončeno" #: common/utils/utils.c:110 #, c-format msgid "%s exited with error status %d" msgstr "%s ukončeno s chybovým stavem %d" #: common/utils/utils.c:114 #, c-format msgid "%s killed by signal %d (%s)" msgstr "%s vynuceně ukončeno signálem %d (%s)" #: common/utils/utils.c:118 #, c-format msgid "%s stopped by signal %d (%s)" msgstr "%s zastaveno signálem %d (%s)" #: common/utils/utils.c:122 #, c-format msgid "%s exited for an unknown reason (status %d)" msgstr "%s ukončeno z neznámého důvodu (stav %d)" #~ msgid "Credentials for subscription-manager" #~ msgstr "Přihlašovací údaje pro subscription-manager" #~ msgid "Ignored for backwards compatibility" #~ msgstr "Ignorováno kvůli zpětné kompatibilitě" #, fuzzy #~| msgid "Credentials for subscription-manager" #~ msgid "Registering with subscription-manager" #~ msgstr "Přihlašovací údaje pro subscription-manager" #, fuzzy #~| msgid "Credentials for subscription-manager" #~ msgid "Unregistering with subscription-manager" #~ msgstr "Přihlašovací údaje pro subscription-manager" ================================================ FILE: po/de.po ================================================ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR Red Hat Inc. # This file is distributed under the same license as the PACKAGE package. # # Translators: # Fabian Affolter , 2011 # Mario Blättermann , 2011 # Mario Blättermann , 2011 msgid "" msgstr "" "Project-Id-Version: libguestfs 1.39.12\n" "Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?" "component=libguestfs&product=Virtualization+Tools\n" "POT-Creation-Date: 2025-02-16 17:05+0000\n" "PO-Revision-Date: 2015-02-21 10:48+0000\n" "Last-Translator: Copied by Zanata \n" "Language-Team: German (http://www.transifex.com/projects/p/libguestfs/" "language/de/)\n" "Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Zanata 4.6.2\n" #: input/input_ova.ml:135 common/mltools/tools_utils.ml:235 msgid "%s" msgstr "%s" #: common/mltools/getopt.ml:73 msgid "" "%s\n" "Options:\n" msgstr "" "%s\n" "Optionen:\n" #: common/mltools/tools_utils.ml:695 common/mlcustomize/customize_run.ml:390 msgid "%s (ignored)" msgstr "%s (ignoriert)" #: common/mltools/checksums.ml:71 msgid "%s did not return any output" msgstr "%s hat keine Ausgabe zurückgegeben" #: common/mlcustomize/customize_run.ml:183 msgid "%s does not exist in the guest" msgstr "" #: output/output_ovirt.ml:275 msgid "" "%s does not exist or is not a directory.\n" "\n" "Most likely cause: Either the %s (%s) has not been attached to any Data " "Center, or the path %s is not an %s at all.\n" "\n" "You have to attach the %s to a Data Center using the oVirt user interface " "first.\n" "\n" "If you don’t know what the %s mount point should be then you can also find " "this out through the oVirt user interface." msgstr "" #: common/mlcustomize/customize_run.ml:113 msgid "%s ignored for non-Windows guest" msgstr "" #: common/mlcustomize/customize_run.ml:186 msgid "%s is not a regular file in the guest" msgstr "" #. open/open.ml:39 #. inspector/inspector.ml:153 #. inspector/inspector.ml:40 #. in-place/in_place.ml:164 #. in-place/in_place.ml:45 #: v2v/v2v.ml:194 v2v/v2v.ml:183 v2v/v2v.ml:159 v2v/v2v.ml:44 open/open.ml:68 msgid "%s option used more than once on the command line" msgstr "" #: common/mltools/tools_utils.ml:231 common/mltools/tools_utils.ml:202 msgid "%s: %s" msgstr "%s: %s" #: common/mltools/tools_utils.ml:233 msgid "%s: %s: %s" msgstr "%s: %s: %s" #: common/mltools/on_exit.ml:77 msgid "" "%s: Exiting on signal %s\n" "%!" msgstr "" #: common/mlcustomize/inject_virtio_win.ml:411 msgid "%s: cannot open virtio-win ISO file: %s" msgstr "" #: common/mlcustomize/customize_run.ml:64 #, fuzzy #| msgid "%s exited with error status %d" msgid "%s: command exited with an error" msgstr "%s beendet mit Fehlerstatus %d" #: v2v/v2v.ml:277 msgid "" "%s: convert a guest to use KVM\n" "\n" "virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi -os imported " "esx_guest\n" "\n" "virt-v2v -i libvirtxml guest-domain.xml -o local -os /var/tmp\n" "\n" "virt-v2v -i disk disk.img -o local -os /var/tmp\n" "\n" "There is a companion front-end called \"virt-p2v\" which comes as an\n" "ISO or CD image that can be booted on physical machines.\n" "\n" "A short summary of the options is given below. For detailed help please\n" "read the man page virt-v2v(1).\n" msgstr "" #: in-place/in_place.ml:217 msgid "" "%s: convert a guest to use KVM in-place\n" "\n" "Note this program modifies the guest in-place with no backup.\n" "Normally you should use virt-v2v.\n" "\n" "virt-v2v-in-place -i libvirtxml guest-domain.xml\n" "\n" "virt-v2v-in-place -i disk disk.img\n" "\n" "A short summary of the options is given below. For detailed help please\n" "read the man page virt-v2v-in-place(1).\n" msgstr "" #: input/input_vddk.ml:207 msgid "%s: enter password for ‘%s’: " msgstr "" #: common/mltools/tools_utils.ml:172 msgid "%s: error: %s" msgstr "%s: Fehler: %s" #: inspector/inspector.ml:198 msgid "" "%s: estimate disk space needed before virt-v2v conversion\n" "\n" "virt-v2v-inspector -i disk disk.img [-O output.xml]\n" "\n" "A short summary of the options is given below. For detailed help please\n" "read the man page virt-v2v-inspector(1).\n" msgstr "" #: open/open.ml:94 msgid "" "%s: open the virt-v2v input and run a program on it\n" "\n" "virt-v2v-open -i disk disk.img --run 'virt-inspector --format=raw @@'\n" "\n" "A short summary of the options is given below. For detailed help please\n" "read the man page virt-v2v-open(1).\n" msgstr "" #: common/mltools/tools_utils.ml:726 msgid "%s: operation timed out" msgstr "" #: input/OVA.ml:127 input/OVA.ml:121 msgid "" "%s: unsupported file format\n" "\n" "Formats which we currently understand for '-i ova' are: tar (uncompressed, " "compress with gzip or xz), zip" msgstr "" #: common/mltools/tools_utils.ml:191 msgid "%s: warning: %s" msgstr "%s: Warnung: %s%c" #. common/mlcustomize/customize_cmdline.ml:258 #: common/mlcustomize/customize_cmdline.ml:367 msgid "'CMD+ARGS'" msgstr "" #: common/mlcustomize/customize_run.ml:133 msgid "" "--append-line: line must not contain newline characters. Use the --append-" "line option multiple times to add several lines." msgstr "" #: common/mlcustomize/customize_run.ml:152 msgid "--chown: could not parse numeric UID:GID from %s:%s" msgstr "" #: common/mlcustomize/customize_run.ml:216 msgid "" "--inject-blnsvr: blnsvr.exe not found in virtio-win source that you specified" msgstr "" #: common/mlcustomize/customize_run.ml:225 msgid "" "--inject-qemu-ga: QEMU Guest Agent MSI not found in virtio-win source that " "you specified" msgstr "" #: common/mlcustomize/customize_run.ml:241 msgid "" "--inject-virtio-win: virtio drivers were not found for this Windows version " "in the virtio-win source that you specified" msgstr "" #: v2v/v2v.ml:146 inspector/inspector.ml:136 in-place/in_place.ml:143 msgid "--mac ip prefix length field is out of range" msgstr "" #: v2v/v2v.ml:340 msgid "--parallel parameter must be >= 1" msgstr "" #: input/input_disk.ml:42 msgid "-i disk: expecting a disk image (filename) on the command line" msgstr "" #: input/input_xen_ssh.ml:65 msgid "-i libvirt: expecting -ic parameter for Xen over SSH connection" msgstr "" #: input/input_vddk.ml:142 input/input_vcenter_https.ml:88 msgid "-i libvirt: expecting -ic parameter for vcenter connection" msgstr "" #: input/input_vcenter_https.ml:101 msgid "-i libvirt: expecting -ic parameter to contain vcenter server name" msgstr "" #: input/input_vcenter_https.ml:78 msgid "-i libvirt: expecting -ip passwordfile parameter for vCenter connection" msgstr "" #. input/input_vcenter_https.ml:70 #. input/input_libvirt.ml:41 #: input/input_xen_ssh.ml:57 input/input_vddk.ml:132 msgid "-i libvirt: expecting a libvirt guest name on the command line" msgstr "" #: input/input_libvirt.ml:59 msgid "-i libvirtxml: expecting a libvirt XML filename on the command line" msgstr "" #: input/input_ova.ml:243 msgid "-i ova: OVF references file ‘%s’ which was not found in the OVA archive" msgstr "" #: input/input_ova.ml:78 msgid "" "-i ova: corrupt OVA: checksum of disk %s does not match manifest (actual = " "%s, expected = %s)" msgstr "" #: input/input_ova.ml:52 msgid "-i ova: expecting an OVA file name on the command line" msgstr "" #: input/OVA.ml:361 msgid "" "-i ova: invalid OVA file: path ‘%s’ references a file outside the archive" msgstr "" #: input/input_vmx.ml:57 msgid "-i vmx: cannot use -it vddk in this input mode" msgstr "" #: input/input_vmx.ml:60 msgid "-i vmx: expecting a VMX file or ssh:// URI" msgstr "" #: input/vCenter.ml:159 msgid "" "-ip PASSWORD_FILE parameter ignored because 'user@' was not given in the URL" msgstr "" #: input/input_vddk.ml:119 msgid "-it vddk: ‘-io %s’ is not a valid input option" msgstr "" #: output/output.ml:54 msgid "-o %s: %s option cannot be used in this output mode" msgstr "" #: output/output_disk.ml:66 msgid "-o disk: output directory was not specified, use '-os /dir'" msgstr "" #: output/output_libvirt.ml:59 output/output_disk.ml:56 msgid "-o disk: unknown output option ‘-oo %s’" msgstr "" #: output/output_kubevirt.ml:81 msgid "-o kubevirt: output directory was not specified, use '-os /dir'" msgstr "" #: output/output_kubevirt.ml:91 msgid "" "-o kubevirt: the guest name must contain only lowercase alphanumeric " "characters, '-' or '.', and must start and end with an alphanumeric " "character. Rerun virt-v2v with the '-on name' option to rename it." msgstr "" #: output/output_kubevirt.ml:71 msgid "-o kubevirt: unknown output option ‘-oo %s’" msgstr "" #: output/output_libvirt.ml:120 msgid "" "-o libvirt: output pool ‘%s’ does not have /pool/target/path element. See " "virt-v2v-output-local(1)" msgstr "" #: output/output_libvirt.ml:124 msgid "" "-o libvirt: output pool ‘%s’ has type='dir' but the /pool/target/path " "element is not a local directory. See virt-v2v-output-local(1)" msgstr "" #: output/output_libvirt.ml:116 msgid "" "-o libvirt: output pool ‘%s’ is not a directory (type='dir'). See virt-v2v-" "output-local(1)" msgstr "" #: output/output_openstack.ml:88 msgid "-o openstack mode only supports -oa sparse -of raw" msgstr "" #: output/output_openstack.ml:115 msgid "-o openstack: unknown output option ‘-oo %s’" msgstr "" #: output/output_ovirt_upload.ml:97 msgid "-o ovirt-upload: -oo ovirt-cafile set more than once" msgstr "" #: output/output_ovirt_upload.ml:101 msgid "-o ovirt-upload: -oo ovirt-cluster set more than once" msgstr "" #: output/output_ovirt_upload.ml:112 msgid "-o ovirt-upload: invalid UUID for -oo ovirt-disk-uuid" msgstr "" #: output/output_ovirt_upload.ml:76 msgid "" "-o ovirt-upload: output password file was not specified, use ‘-op’ to point " "to a file which contains the password used to connect to the oVirt server" msgstr "" #: output/output_ovirt_upload.ml:83 msgid "-o ovirt-upload: output storage was not specified, use ‘-os’" msgstr "" #: output/output_ovirt_upload.ml:116 msgid "-o ovirt-upload: unknown output option ‘-oo %s’" msgstr "" #: output/output_ovirt_upload.ml:68 msgid "" "-o ovirt-upload: use ‘-oc’ to point to the oVirt server REST API URL, which " "is usually https://servername/ovirt-engine/api" msgstr "" #: output/output_ovirt.ml:51 msgid "-o ovirt: -os option was not specified" msgstr "" #: output/output_qemu.ml:72 msgid "-o qemu: output directory was not specified, use '-os /dir'" msgstr "" #: output/output_qemu.ml:63 msgid "-o qemu: unknown output option ‘-oo %s’" msgstr "" #: output/output_vdsm.ml:102 msgid "-o vdsm: -oo vdsm-image-uuid was not specified" msgstr "" #: output/output_vdsm.ml:81 msgid "-o vdsm: -oo vdsm-ovf-output set more than once" msgstr "" #: output/output_vdsm.ml:77 msgid "-o vdsm: -oo vdsm-vm-uuid set more than once" msgstr "" #: output/output_vdsm.ml:110 msgid "-o vdsm: -os option was not specified" msgstr "" #: output/output_vdsm.ml:97 msgid "-o vdsm: either -oo vdsm-vol-uuid or -oo vdsm-vm-uuid was not specified" msgstr "" #: output/output_vdsm.ml:90 msgid "-o vdsm: unknown output option ‘-oo %s’" msgstr "" #: output/output_vdsm.ml:74 msgid "-o vdsm: unknown vdsm-compat level ‘%s’" msgstr "" #. output/output_kubevirt.ml:84 #. output/output_disk.ml:68 #: output/output_vdsm.ml:112 output/output_qemu.ml:74 msgid "-os %s: output directory does not exist or is not a directory" msgstr "" #: input/parse_libvirt_xml.ml:279 msgid " missing 'method' attribute, ignoring" msgstr "" #: input/parse_libvirt_xml.ml:291 msgid " unknown fail='%s' attribute, ignoring" msgstr "" #: input/parse_libvirt_xml.ml:370 input/parse_libvirt_xml.ml:317 msgid " was ignored" msgstr "" #: input/parse_libvirt_xml.ml:338 msgid " with was ignored" msgstr "" #: input/parse_libvirt_xml.ml:365 msgid " with was ignored" msgstr "" #: input/parse_libvirt_xml.ml:299 msgid " element with no type attribute ignored" msgstr "" #: input/parse_libvirt_xml.ml:167 msgid " in the input libvirt XML was ignored" msgstr "" #: input/parse_libvirt_xml.ml:414 msgid "" " was ignored because the device name could not be recognized" msgstr "" #: input/input_vddk.ml:176 msgid "" " was not found in the output of ‘virsh dumpxml \"%s\"’. The " "most likely reason is that libvirt is too old, try upgrading libvirt to ≥ " "3.7." msgstr "" #: common/mlcustomize/customize_cmdline.ml:305 msgid "Add package(s) to install" msgstr "" #: common/mlcustomize/customize_cmdline.ml:270 msgid "Add package(s) to install at first boot" msgstr "" #: common/mlcustomize/customize_cmdline.ml:175 msgid "Append line(s) to the file" msgstr "Zeile(n) an die Datei anhängen" #: common/mlcustomize/customize_run.ml:137 #, fuzzy #| msgid "Append line(s) to the file" msgid "Appending line to %s" msgstr "Zeile(n) an die Datei anhängen" #: common/mlcustomize/customize_cmdline.ml:197 msgid "Change the owner user and group ID of a file or directory" msgstr "" #: common/mlcustomize/customize_cmdline.ml:186 msgid "Change the permissions of a file" msgstr "Berechtigungen einer Datei ändern" #: common/mlcustomize/customize_run.ml:155 #, fuzzy #| msgid "Change the permissions of a file" msgid "Changing owner of %s to %d:%d" msgstr "Berechtigungen einer Datei ändern" #: common/mlcustomize/customize_run.ml:141 #, fuzzy #| msgid "Change the permissions of a file" msgid "Changing permissions of %s to %s" msgstr "Berechtigungen einer Datei ändern" #: input/input_libvirt.ml:174 input/input_libvirt.ml:157 msgid "Checking %s checksum of disk %d/%d" msgstr "" #: common/mlcustomize/customize_cmdline.ml:488 msgid "Compatibility option doing nothing" msgstr "" #: common/mlcustomize/customize_cmdline.ml:219 msgid "Copy files in disk image" msgstr "Dateien in Festplattenabbild kopieren" #: common/mlcustomize/customize_cmdline.ml:397 #, fuzzy #| msgid "Copy local files or directories into image" msgid "Copy local files or directories from a tarball into image" msgstr "Lokale Dateien oder Verzeichnisse in das Abbild kopieren" #: common/mlcustomize/customize_cmdline.ml:230 msgid "Copy local files or directories into image" msgstr "Lokale Dateien oder Verzeichnisse in das Abbild kopieren" #: common/mlcustomize/customize_run.ml:168 #, fuzzy #| msgid "Copying disk %d/%d" msgid "Copying (in image): %s to %s" msgstr "Festplatte %d/%d wird kopiert" #: v2v/v2v.ml:518 msgid "Copying disk %d/%d" msgstr "Festplatte %d/%d wird kopiert" #: common/mlcustomize/customize_run.ml:172 #, fuzzy #| msgid "Copying disk %d/%d" msgid "Copying: %s to %s" msgstr "Festplatte %d/%d wird kopiert" #: common/mlcustomize/customize_cmdline.ml:322 msgid "Create a directory" msgstr "Ein Verzeichnis erstellen" #: common/mlcustomize/customize_cmdline.ml:316 msgid "Create symbolic links" msgstr "Symbolische Verknüpfungen erstellen" #: v2v/v2v.ml:567 msgid "Creating output metadata" msgstr "Ausgabe-Metadaten erstellen" #: common/mlcustomize/customize_cmdline.ml:321 msgid "DIR" msgstr "VERZ" #: common/mlcustomize/customize_cmdline.ml:236 msgid "Delete a file or directory" msgstr "Eine Datei oder ein Verzeichnis löschen" #: common/mlcustomize/customize_run.ml:176 #, fuzzy #| msgid "exception: %s" msgid "Deleting: %s" msgstr "Ausnahme: %s" #: common/mltools/getopt.ml:225 msgid "Display brief help" msgstr "" #: common/mltools/tools_utils.ml:385 msgid "Display version and exit" msgstr "" #: common/mlcustomize/customize_cmdline.ml:482 msgid "Do not relabel files with correct SELinux labels" msgstr "" #: v2v/v2v.ml:248 inspector/inspector.ml:177 in-place/in_place.ml:190 msgid "Don't trim filesystems before conversion" msgstr "" #: common/mltools/tools_utils.ml:389 msgid "Don’t print progress messages" msgstr "" #: common/mltools/tools_utils.ml:420 msgid "Don’t turn off echo for passphrases" msgstr "" #: common/mlcustomize/customize_cmdline.ml:247 msgid "Edit file using Perl expression" msgstr "" #: common/mlcustomize/customize_run.ml:180 #, fuzzy #| msgid "%s: warning: %s" msgid "Editing: %s" msgstr "%s: Warnung: %s%c" #: common/mltools/tools_utils.ml:386 msgid "Enable libguestfs debugging messages" msgstr "" #: common/mltools/tools_utils.ml:387 msgid "Enable tracing of libguestfs calls" msgstr "" #: output/output_ovirt.ml:77 msgid "Export Storage Domain" msgstr "" #: open/open.ml:88 msgid "External command to run" msgstr "" #. common/mlcustomize/customize_cmdline.ml:408 #. common/mlcustomize/customize_cmdline.ml:373 #: common/mlcustomize/customize_cmdline.ml:414 msgid "FILE" msgstr "DATEI" #: common/mlcustomize/customize_cmdline.ml:455 msgid "FILE:CONTENT" msgstr "DATEI:INHALT" #: common/mlcustomize/customize_cmdline.ml:444 msgid "FILE:DEST" msgstr "DATEI:ZIEL" #: common/mlcustomize/customize_cmdline.ml:242 #, fuzzy #| msgid "FILE:DEST" msgid "FILE:EXPR" msgstr "DATEI:ZIEL" #: common/mlcustomize/customize_cmdline.ml:170 msgid "FILE:LINE" msgstr "DATEI:ZEILE" #: common/mlcustomize/customize_cmdline.ml:203 msgid "FILENAME" msgstr "DATEINAME" #. in-place/in_place.ml:378 #: v2v/v2v.ml:571 open/open.ml:220 inspector/inspector.ml:334 msgid "Finishing off" msgstr "" #: common/mlcustomize/customize_cmdline.ml:275 msgid "HOSTNAME" msgstr "HOSTNAME" #: v2v/v2v.ml:254 inspector/inspector.ml:183 in-place/in_place.ml:194 msgid "How to choose root filesystem" msgstr "" #: common/mltools/tools_utils.ml:177 msgid "" "If reporting bugs, run %s with debugging enabled and include the complete " "output:\n" "\n" " %s -v -x [...]" msgstr "" #: common/mlcustomize/customize_cmdline.ml:386 msgid "Inject a public key into the guest" msgstr "" #: common/mlcustomize/customize_cmdline.ml:282 msgid "Inject the Balloon Server into a Windows guest" msgstr "" #: common/mlcustomize/customize_cmdline.ml:288 msgid "Inject the QEMU Guest Agent into a Windows guest" msgstr "" #: common/mlcustomize/customize_cmdline.ml:294 msgid "Inject virtio-win drivers into a Windows guest" msgstr "" #. in-place/in_place.ml:176 #: v2v/v2v.ml:216 open/open.ml:80 inspector/inspector.ml:165 #, fuzzy #| msgid "Set output format" msgid "Input format" msgstr "Ausgabeformat festlegen" #: input/input_vddk.ml:77 msgid "" "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" "\n" "Refer to nbdkit-vddk-plugin(1) and the VDDK documentation for further\n" "information on these settings.\n" msgstr "" #: v2v/v2v.ml:222 open/open.ml:86 inspector/inspector.ml:171 #, fuzzy #| msgid "Set output format" msgid "Input transport" msgstr "Ausgabeformat festlegen" #: common/mlcustomize/customize_run.ml:191 msgid "Installing firstboot command: %s" msgstr "" #: common/mlcustomize/customize_run.ml:195 msgid "Installing firstboot packages: %s" msgstr "" #: common/mlcustomize/customize_run.ml:202 msgid "Installing firstboot script: %s" msgstr "" #: common/mlcustomize/customize_run.ml:248 #, fuzzy #| msgid "Update packages" msgid "Installing packages: %s" msgstr "Pakete aktualisieren" #: common/mlcustomize/customize_cmdline.ml:225 msgid "LOCALPATH:REMOTEDIR" msgstr "" #. in-place/in_place.ml:174 #: v2v/v2v.ml:214 open/open.ml:78 inspector/inspector.ml:163 msgid "Libvirt URI" msgstr "Libvirt-URI" #: common/mlcustomize/customize_run.ml:255 #, fuzzy #| msgid "Copying disk %d/%d" msgid "Linking: %s -> %s" msgstr "Festplatte %d/%d wird kopiert" #. common/mlcustomize/customize_cmdline.ml:287 #. common/mlcustomize/customize_cmdline.ml:281 #: common/mlcustomize/customize_cmdline.ml:293 msgid "METHOD" msgstr "" #: common/mltools/tools_utils.ml:426 msgid "Make output machine readable" msgstr "" #: common/mlcustomize/customize_run.ml:260 msgid "Making directory: %s" msgstr "" #: v2v/v2v.ml:226 inspector/inspector.ml:173 in-place/in_place.ml:182 msgid "Map NIC to network or bridge or assign static IP" msgstr "" #: v2v/v2v.ml:210 inspector/inspector.ml:159 in-place/in_place.ml:170 msgid "Map bridge ‘in’ to ‘out’" msgstr "" #: v2v/v2v.ml:230 inspector/inspector.ml:179 in-place/in_place.ml:186 msgid "Map network ‘in’ to ‘out’" msgstr "" #: common/mlcustomize/customize_cmdline.ml:333 msgid "Move files in disk image" msgstr "Dateien in Festplattenabbild verschieben" #: common/mlcustomize/customize_run.ml:264 #, fuzzy #| msgid "Copying disk %d/%d" msgid "Moving: %s -> %s" msgstr "Festplatte %d/%d wird kopiert" #. input/input_vcenter_https.ml:45 #. input/input_ova.ml:35 #. input/input_libvirt.ml:233 #. input/input_libvirt.ml:221 #. input/input_disk.ml:35 #: input/input_xen_ssh.ml:43 input/input_vmx.ml:36 msgid "No input options can be used in this mode.\n" msgstr "" #: output/output_ovirt.ml:40 output/output_null.ml:38 #: output/output_glance.ml:40 msgid "No output options can be used in this mode.\n" msgstr "" #: output/output_vdsm.ml:166 msgid "OVF (metadata) directory (%s) does not exist or is not a directory" msgstr "" #: common/mlcustomize/firstboot.ml:268 msgid "" "One of rhsrvany.exe or pvvxsvc.exe is missing in %s. One of them is " "required in order to install Windows firstboot scripts. You can get one by " "building rhsrvany (https://github.com/rwmjones/rhsrvany)" msgstr "" #: v2v/v2v.ml:236 msgid "Output hypervisor connection" msgstr "" #: output/output_ovirt_upload.ml:51 msgid "" "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" "\n" "You can override the UUIDs of the disks, instead of using autogenerated " "UUIDs\n" "after their uploads (if you do, you must supply one for each disk):\n" "\n" " -oo ovirt-disk-uuid=UUID Disk UUID\n" msgstr "" #: output/output_qemu.ml:44 msgid "" "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" msgstr "" #: output/output_vdsm.ml:43 msgid "" "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" "\n" "For 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" msgstr "" #: output/output_disk.ml:44 msgid "" "Output options that can be used with -o disk:\n" "\n" " -oo compressed Compress the output file (used only with -of qcow2)\n" msgstr "" #: output/output_kubevirt.ml:51 msgid "" "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" msgstr "" #: output/output_libvirt.ml:47 msgid "" "Output options that can be used with -o libvirt:\n" "\n" " -oo compressed Compress the output file (used only with -of qcow2)\n" msgstr "" #. common/mlcustomize/customize_cmdline.ml:235 #: common/mlcustomize/customize_cmdline.ml:420 msgid "PATH" msgstr "PFAD" #: common/mlcustomize/customize_cmdline.ml:181 msgid "PERMISSIONS:FILE" msgstr "BERECHTIGUNGEN:DATEI" #. common/mlcustomize/customize_cmdline.ml:300 #. common/mlcustomize/customize_cmdline.ml:265 #: common/mlcustomize/customize_cmdline.ml:427 msgid "PKG,PKG.." msgstr "" #: v2v/v2v.ml:263 in-place/in_place.ml:203 msgid "Prefer 'virtio-blk' or 'virtio-scsi'" msgstr "" #: v2v/v2v.ml:252 in-place/in_place.ml:192 msgid "Print source and stop" msgstr "" #: common/mlcustomize/customize_cmdline.ml:208 msgid "Read customize commands from file" msgstr "" #: common/mltools/tools_utils.ml:421 msgid "Read passphrases from stdin" msgstr "" #: common/mlcustomize/customize_cmdline.ml:421 #, fuzzy #| msgid "Delete a file or directory" msgid "Recursively truncate all files in directory" msgstr "Eine Datei oder ein Verzeichnis löschen" #: common/mlcustomize/customize_run.ml:298 #, fuzzy #| msgid "%s: warning: %s" msgid "Recursively truncating: %s" msgstr "%s: Warnung: %s%c" #: v2v/v2v.ml:240 msgid "Rename guest when converting" msgstr "" #: common/mlcustomize/customize_cmdline.ml:259 msgid "Run command at first guest boot" msgstr "" #: common/mlcustomize/customize_cmdline.ml:368 #, fuzzy #| msgid "Copy files in disk image" msgid "Run command in disk image" msgstr "Dateien in Festplattenabbild kopieren" #: common/mlcustomize/customize_cmdline.ml:253 msgid "Run script at first guest boot" msgstr "" #: common/mlcustomize/customize_cmdline.ml:362 #, fuzzy #| msgid "Copy files in disk image" msgid "Run script in disk image" msgstr "Dateien in Festplattenabbild kopieren" #: common/mlcustomize/customize_cmdline.ml:409 msgid "Run touch on a file" msgstr "" #: v2v/v2v.ml:250 msgid "Run up to N instances of nbdcopy in parallel" msgstr "" #: open/open.ml:188 msgid "Running external command" msgstr "" #: common/mlcustomize/customize_run.ml:307 #, fuzzy #| msgid "%s: warning: %s" msgid "Running touch: %s" msgstr "%s: Warnung: %s%c" #. common/mlcustomize/customize_run.ml:159 #: common/mlcustomize/customize_run.ml:274 #, fuzzy #| msgid "%s: warning: %s" msgid "Running: %s" msgstr "%s: Warnung: %s%c" #. common/mlcustomize/customize_cmdline.ml:252 #: common/mlcustomize/customize_cmdline.ml:361 msgid "SCRIPT" msgstr "SKRIPT" #: common/mltools/tools_utils.ml:422 #: common/mlcustomize/customize_cmdline.ml:351 msgid "SELECTOR" msgstr "" #: common/mlcustomize/customize_run.ml:363 msgid "SELinux relabelling" msgstr "" #. common/mlcustomize/customize_cmdline.ml:214 #: common/mlcustomize/customize_cmdline.ml:328 msgid "SOURCE:DEST" msgstr "QUELLE:ZIEL" #: common/mlcustomize/customize_run.ml:287 msgid "SSH key could not be injected for this type of guest" msgstr "" #: common/mlcustomize/customize_run.ml:284 msgid "SSH key inject: %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:374 msgid "Scrub a file" msgstr "" #: common/mlcustomize/customize_cmdline.ml:466 msgid "Scrub build log file" msgstr "" #: common/mlcustomize/customize_run.ml:374 msgid "Scrubbing the log file" msgstr "" #: common/mlcustomize/customize_run.ml:279 #, fuzzy #| msgid "%s: warning: %s" msgid "Scrubbing: %s" msgstr "%s: Warnung: %s%c" #: v2v/v2v.ml:208 msgid "Set bandwidth dynamically from file" msgstr "" #: v2v/v2v.ml:206 msgid "Set bandwidth to bits per sec" msgstr "" #. in-place/in_place.ml:172 #: v2v/v2v.ml:212 open/open.ml:76 inspector/inspector.ml:161 #, fuzzy #| msgid "Set output mode (default: libvirt)" msgid "Set input mode (default: libvirt)" msgstr "Ausgabemodus festlegen (Standard: libvirt)" #: v2v/v2v.ml:228 inspector/inspector.ml:175 in-place/in_place.ml:184 msgid "Set memory size" msgstr "" #: v2v/v2v.ml:256 inspector/inspector.ml:185 in-place/in_place.ml:196 msgid "Set number of vCPUs" msgstr "" #. in-place/in_place.ml:178 #: v2v/v2v.ml:218 open/open.ml:82 inspector/inspector.ml:167 msgid "Set option for input mode" msgstr "" #: v2v/v2v.ml:242 #, fuzzy #| msgid "Set output format" msgid "Set option for output mode" msgstr "Ausgabeformat festlegen" #: v2v/v2v.ml:234 #, fuzzy #| msgid "Set output format" msgid "Set output allocation mode" msgstr "Ausgabeformat festlegen" #: v2v/v2v.ml:238 msgid "Set output format" msgstr "Ausgabeformat festlegen" #: v2v/v2v.ml:232 msgid "Set output mode (default: libvirt)" msgstr "Ausgabemodus festlegen (Standard: libvirt)" #: v2v/v2v.ml:246 #, fuzzy #| msgid "Set output format" msgid "Set output storage location" msgstr "Ausgabeformat festlegen" #: common/mlcustomize/customize_cmdline.ml:476 #, fuzzy #| msgid "Set user password" msgid "Set password crypto" msgstr "Benutzerpasswort festlegen" #: common/mltools/tools_utils.ml:430 msgid "Set program name" msgstr "Programmname festlegen" #: common/mlcustomize/customize_cmdline.ml:356 #, fuzzy #| msgid "Set user password" msgid "Set root password" msgstr "Benutzerpasswort festlegen" #: common/mlcustomize/customize_cmdline.ml:403 msgid "Set the default timezone" msgstr "Standardzeitzone festlegen" #: common/mlcustomize/customize_cmdline.ml:276 #, fuzzy #| msgid "Set output format" msgid "Set the hostname" msgstr "Ausgabeformat festlegen" #: inspector/inspector.ml:181 in-place/in_place.ml:188 #, fuzzy #| msgid "Set output format" msgid "Set the output filename" msgstr "Ausgabeformat festlegen" #: common/mlcustomize/customize_cmdline.ml:345 msgid "Set user password" msgstr "Benutzerpasswort festlegen" #: common/mlcustomize/customize_run.ml:75 #, fuzzy #| msgid "Set user password" msgid "Setting a random seed" msgstr "Benutzerpasswort festlegen" #: common/mlcustomize/customize_run.ml:354 #, fuzzy #| msgid "Set user password" msgid "Setting passwords" msgstr "Benutzerpasswort festlegen" #: common/mlcustomize/password.ml:113 #, fuzzy #| msgid "Set user password" msgid "Setting random password of %s to %s" msgstr "Benutzerpasswort festlegen" #: common/mlcustomize/customize_run.ml:207 #, fuzzy #| msgid "Set the default timezone" msgid "Setting the hostname: %s" msgstr "Standardzeitzone festlegen" #: common/mlcustomize/customize_run.ml:90 #, fuzzy #| msgid "Set the default timezone" msgid "Setting the machine ID in %s" msgstr "Standardzeitzone festlegen" #: common/mlcustomize/customize_run.ml:302 #, fuzzy #| msgid "Set the default timezone" msgid "Setting the timezone: %s" msgstr "Standardzeitzone festlegen" #: v2v/v2v.ml:481 #, fuzzy #| msgid "Set the default timezone" msgid "Setting up the destination: %s" msgstr "Standardzeitzone festlegen" #. in-place/in_place.ml:342 #: v2v/v2v.ml:457 open/open.ml:184 inspector/inspector.ml:310 #, fuzzy #| msgid "Set the default timezone" msgid "Setting up the source: %s" msgstr "Standardzeitzone festlegen" #: v2v/v2v.ml:463 in-place/in_place.ml:348 msgid "Source guest information (--print-source option):\n" msgstr "" #: common/mltools/tools_utils.ml:422 msgid "Specify a LUKS key" msgstr "" #: common/mlcustomize/customize_cmdline.ml:392 msgid "TARFILE:REMOTEDIR" msgstr "" #: common/mlcustomize/customize_cmdline.ml:311 msgid "TARGET:LINK[:LINK..]" msgstr "" #: common/mlcustomize/customize_cmdline.ml:402 msgid "TIMEZONE" msgstr "ZEITZONE" #: v2v/v2v.ml:200 msgid "" "The --in-place option has been replaced by the ‘virt-v2v-in-place’ program" msgstr "" #: output/output_qemu.ml:251 msgid "" "The Virt machine has no support for IDE. Please report a bug for virt-v2v -- " "refer to virt-v2v(1) section \"BUGS\"." msgstr "" #: output/output_qemu.ml:272 msgid "" "The Virt machine has no support for floppies. Please report a bug for virt-" "v2v -- refer to virt-v2v(1) section \"BUGS\"." msgstr "" #: lib/create_ovf.ml:785 msgid "" "This guest required a password for connection to its display, but this is " "not supported by oVirt. Therefore the converted guest’s display will not " "require a separate password to connect." msgstr "" #: input/input_vmx.ml:111 msgid "" "This transport does not support guests with snapshots. Either collapse the " "snapshots for this guest and try the conversion again, or use one of the " "alternate conversion methods described in virt-v2v-input-vmware(1) section " "\"NOTES\"." msgstr "" #: common/mlcustomize/customize_cmdline.ml:415 msgid "Truncate a file to zero size" msgstr "" #: common/mlcustomize/customize_run.ml:294 #, fuzzy #| msgid "%s: warning: %s" msgid "Truncating: %s" msgstr "%s: Warnung: %s%c" #: common/mlcustomize/customize_cmdline.ml:192 msgid "UID:GID:PATH" msgstr "" #: common/mlcustomize/customize_cmdline.ml:339 msgid "USER:SELECTOR" msgstr "" #: common/mlcustomize/customize_cmdline.ml:380 msgid "USER[:SELECTOR]" msgstr "" #: common/mlcustomize/customize_cmdline.ml:432 #, fuzzy #| msgid "Update packages" msgid "Uninstall package(s)" msgstr "Pakete aktualisieren" #: common/mlcustomize/customize_run.ml:311 #, fuzzy #| msgid "Update packages" msgid "Uninstalling packages: %s" msgstr "Pakete aktualisieren" #: common/mlcustomize/customize_run.ml:290 msgid "Unpack tar file: %s to %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:438 msgid "Update packages" msgstr "Pakete aktualisieren" #: common/mlcustomize/customize_run.ml:316 #, fuzzy #| msgid "Update packages" msgid "Updating packages" msgstr "Pakete aktualisieren" #: common/mlcustomize/customize_cmdline.ml:449 msgid "Upload local file to destination" msgstr "" #: common/mlcustomize/customize_run.ml:321 #, fuzzy #| msgid "Copying disk %d/%d" msgid "Uploading: %s to %s" msgstr "Festplatte %d/%d wird kopiert" #: common/mltools/tools_utils.ml:391 msgid "Use ANSI colour sequences even if not tty" msgstr "" #. in-place/in_place.ml:180 #: v2v/v2v.ml:220 open/open.ml:84 inspector/inspector.ml:169 msgid "Use password from file to connect to input hypervisor" msgstr "" #: v2v/v2v.ml:244 msgid "Use password from file to connect to output hypervisor" msgstr "" #: v2v/v2v.ml:224 msgid "Use virt-v2v-in-place instead" msgstr "" #: common/mltools/tools_utils.ml:392 msgid "Wrap log messages even if not tty" msgstr "" #: common/mlcustomize/customize_cmdline.ml:460 msgid "Write file" msgstr "Datei schreiben" #: common/mlcustomize/customize_run.ml:346 #, fuzzy #| msgid "%s: warning: %s" msgid "Writing: %s" msgstr "%s: Warnung: %s%c" #: lib/YAML.ml:167 msgid "" "YAML block contains newline character. This should not happen, please " "report a bug against virt-v2v." msgstr "" #: output/output_libvirt.ml:96 msgid "" "a libvirt domain called ‘%s’ already exists on the target.\n" "\n" "If using virt-v2v directly, use the ‘-on’ option to select a different name. " "Or delete the existing domain on the target using the ‘virsh undefine’ " "command.\n" "\n" "If using virt-p2v, select a different ‘Name’ in the ‘Target properties’. Or " "delete the existing domain on the target using the ‘virsh undefine’ command." msgstr "" #: common/mlcustomize/append_line.ml:44 #, fuzzy #| msgid "Append line(s) to the file" msgid "append_line: %s is not a file" msgstr "Zeile(n) an die Datei anhängen" #: input/input_libvirt.ml:206 msgid "" "bad checksum for disk %d/%d\n" "Expected checksum: %s\n" "Actual checksum: %s" msgstr "" #: lib/libvirt_utils.ml:59 msgid "cannot find libvirt domain ‘%s’: %s" msgstr "" #: lib/libvirt_utils.ml:96 msgid "" "cannot find libvirt pool ‘%s’: %s\n" "\n" "Use ‘virsh pool-list --all’ to list all available pools, and ‘virsh pool-" "dumpxml ’ to display details about a particular pool.\n" "\n" "To set the pool which virt-v2v uses, add the ‘-os ’ option." msgstr "" #: lib/libvirt_utils.ml:110 msgid "cannot find libvirt volume ‘%s’: %s" msgstr "" #: common/mlcustomize/firstboot.ml:235 msgid "" "cannot finish firstboot installation by running ‘%s’ because host cpu (%s) " "and guest arch (%s) are not compatible. The firstboot service may not run " "at boot." msgstr "" #: output/output_libvirt.ml:180 msgid "cannot get libvirt domain capabilities: %s" msgstr "" #: output/output_libvirt.ml:85 msgid "cannot get libvirt hypervisor capabilities: %s" msgstr "" #: v2v/v2v.ml:105 inspector/inspector.ml:95 in-place/in_place.ml:102 msgid "cannot parse --mac \"%s\" parameter" msgstr "" #: v2v/v2v.ml:129 inspector/inspector.ml:119 in-place/in_place.ml:126 msgid "cannot parse --mac ip %s: doesn’t look like “%s” is an IP address" msgstr "" #: v2v/v2v.ml:143 inspector/inspector.ml:133 in-place/in_place.ml:140 msgid "cannot parse --mac ip prefix length field as an integer: %s" msgstr "" #: common/mlcustomize/guest_packages.ml:29 msgid "" "cannot use ‘%s’ because no package manager has been detected for this guest " "OS.\n" "\n" "If this guest OS is a common one with ordinary package management then this " "may have been caused by a failure of libguestfs inspection.\n" "\n" "For OSes such as Windows that lack package management, this is not " "possible. Try using one of the ‘--firstboot*’ flags instead (described in " "the virt-customize(1) manual)." msgstr "" #: output/output_ovirt.ml:91 msgid "" "cannot write files to the NFS server as %d:%d, even though we appear to be " "running as root. This probably means the NFS client or idmapd is not " "configured properly.\n" "\n" "You will have to chown the files that virt-v2v creates after the run, " "otherwise oVirt will not be able to import the VM." msgstr "" #: output/output_ovirt.ml:99 msgid "" "cannot write files to the NFS server as %d:%d. You might want to stop virt-" "v2v (^C) and rerun it as root." msgstr "" #: common/mlcustomize/customize_cmdline.ml:508 msgid "command '%s' cannot be used in command files, see the man page" msgstr "" #: common/mlcustomize/customize_cmdline.ml:525 msgid "command '%s' not valid, see the man page" msgstr "" #: common/mldrivers/linux_bootloaders.ml:318 msgid "could not add grub2 serial console (ignored)" msgstr "" #: input/ssh.ml:52 msgid "" "could not copy the VMX file from the remote server, see earlier error " "messages" msgstr "" #: output/output_libvirt.ml:211 msgid "" "could not define libvirt domain: %s.\n" "The libvirt XML is still available in ‘%s’. Try running ‘virsh -c %s define " "%s’ yourself instead." msgstr "" #: common/mldrivers/linux_bootloaders.ml:221 msgid "could not determine a way to update the configuration of Grub2" msgstr "" #: input/input_vddk.ml:243 msgid "" "could not fetch thumbprint from the server, you mus use ‘-io vddk-" "thumbprint=XX:XX...’" msgstr "" #: common/mldrivers/linux_bootloaders.ml:376 msgid "could not find bootloader mount point (%s): %s" msgstr "" #: common/mldrivers/windows_drivers.ml:91 msgid "" "could not find registry entry " "HKEY_LOCAL_MACHINE\\SYSTEM\\DriverDatabase\\DeviceIds in this Windows " "guest. It may be either a very old or very new version of Windows that we " "cannot process." msgstr "" #: common/mlcustomize/firstboot.ml:232 msgid "" "could not finish firstboot installation by running ‘%s’ because the command " "failed: %s" msgstr "" #. input/input_vcenter_https.ml:94 #: input/select_input.ml:66 input/input_xen_ssh.ml:71 input/input_vddk.ml:151 msgid "could not parse '-ic %s'. Original error message was: %s" msgstr "" #: input/parse_libvirt_xml.ml:407 input/parse_libvirt_xml.ml:54 msgid "could not parse device name ‘%s’ from the source libvirt XML" msgstr "" #: input/OVF.ml:168 msgid "could not parse disk rasd:HostResource from OVF document" msgstr "" #: input/input_ova.ml:98 msgid "could not parse ovf:Name from OVF document" msgstr "" #: output/output_ovirt.ml:247 msgid "" "could not read the %s specified by the '-os %s' parameter on the command " "line. Is it really an OVirt %s? The original error is: %s" msgstr "" #: common/mldrivers/linux_bootloaders.ml:336 msgid "" "could not rebuild grub2 configuration file (%s). This may mean that grub " "output will not be sent to the serial port, but otherwise should be " "harmless. Original error message: %s" msgstr "" #: output/output_libvirt.ml:156 msgid "could not refresh libvirt pool ‘%s’: %s" msgstr "" #: common/mldrivers/linux_bootloaders.ml:320 msgid "could not remove grub2 serial console (ignored)" msgstr "" #: common/mltools/registry.ml:93 msgid "" "decode_utf16le: Windows UTF16-LE string contains non-7-bit characters. This " "is a bug in %s, please report it." msgstr "" #: common/mltools/registry.ml:87 msgid "" "decode_utf16le: Windows string does not appear to be in UTF16-LE encoding. " "This could be a bug in %s." msgstr "" #: common/mldrivers/linux_bootloaders.ml:126 msgid "didn't find grub entry for kernel %s" msgstr "" #: input/input_disk.ml:150 msgid "disks on the command line have mixed formats" msgstr "" #: input/parse_libvirt_xml.ml:194 msgid "display in the input libvirt XML was ignored" msgstr "" #: output/output_qemu.ml:147 msgid "don’t know how to convert UEFI guests for architecture %s" msgstr "" #: common/mldrivers/linux.ml:158 msgid "don’t know how to find file owner using %s" msgstr "" #: common/mldrivers/linux.ml:89 msgid "don’t know how to get list of files from package using %s" msgstr "" #: common/mltools/curl.ml:82 msgid "downloading %s" msgstr "" #: lib/networks.ml:84 msgid "" "duplicate --mac parameter. Duplicate mappings specified for MAC address %s." msgstr "" #: lib/networks.ml:102 msgid "" "duplicate -b/--bridge parameter. Duplicate mappings specified for bridge %s." msgstr "" #: lib/networks.ml:108 msgid "duplicate -b/--bridge parameter. Only one default mapping is allowed." msgstr "" #: lib/networks.ml:90 msgid "" "duplicate -n/--network parameter. Duplicate mappings specified for network " "%s." msgstr "" #: lib/networks.ml:96 msgid "duplicate -n/--network parameter. Only one default mapping is allowed." msgstr "" #: input/OVF.ml:143 msgid "error parsing disk fileRef" msgstr "" #: input/input_ova.ml:124 msgid "error uncompressing %s, see earlier error messages" msgstr "" #: input/OVA.ml:210 input/OVA.ml:112 msgid "error unpacking %s, see earlier error messages" msgstr "" #: common/mltools/tools_utils.ml:248 msgid "exception: %s" msgstr "Ausnahme: %s" #: common/mltools/tools_utils.ml:455 #, fuzzy #| msgid "%s exited with error status %d" msgid "exited with error %d" msgstr "%s beendet mit Fehlerstatus %d" #: lib/utils.ml:34 #, fuzzy #| msgid "%s exited with error status %d" msgid "exited with non-zero error code %d" msgstr "%s beendet mit Fehlerstatus %d" #: input/input_disk.ml:147 msgid "expected >= 1 disk name on the command line" msgstr "" #: common/mltools/xpath_helpers.ml:36 msgid "" "expecting XML expression to return an integer (expression: %s, matching " "string: %s)" msgstr "" #: common/mltools/tools_utils.ml:440 msgid "external command" msgstr "" #: output/output_ovirt_upload.ml:265 msgid "failed server prechecks, see earlier errors" msgstr "" #: output/output_ovirt_upload.ml:507 msgid "failed to create virtual machine, see earlier errors" msgstr "" #: output/output_ovirt_upload.ml:479 msgid "failed to finalize the transfers, see earlier errors" msgstr "" #: common/mldrivers/linux_bootloaders.ml:208 msgid "failed to find grub2-mkconfig binary (but Grub2 was detected on guest)" msgstr "" #: input/OVA.ml:461 msgid "failed to parse line returned by tar: %S" msgstr "" #: output/output_ovirt_upload.ml:394 msgid "failed to start transfer, see earlier errors" msgstr "" #: output/output_ovirt_upload.ml:311 msgid "failed vmchecks, see earlier errors" msgstr "" #: common/mltools/tools_utils.ml:239 msgid "failure: %s" msgstr "" #: input/input_ova.ml:134 msgid "file ‘%s’ not found in the ova" msgstr "" #: common/mlcustomize/firstboot.ml:143 msgid "" "firstboot: unknown version for old firstboot.service file %s (md5=%s), it " "will not be removed" msgstr "" #: common/mltools/tools_utils.ml:258 #, fuzzy #| msgid "%s killed by signal %d (%s)" msgid "generated by %s %s" msgstr "%s abgewürgt durch Signal %d (%s)" #: output/create_libvirt_xml.ml:39 msgid "get_osinfo_id: unknown guest operating system: %s" msgstr "" #: output/output_glance.ml:66 msgid "" "glance: glance client is not installed or set up correctly. You may need to " "set environment variables or source a script to enable authentication. See " "preceding messages for details." msgstr "" #: output/output_glance.ml:139 msgid "glance: image upload to glance failed, see earlier errors" msgstr "" #: common/mlcustomize/firstboot.ml:386 common/mlcustomize/firstboot.ml:164 msgid "guest type %s is not supported" msgstr "" #: common/mlcustomize/firstboot.ml:413 msgid "guest type %s/%s is not supported" msgstr "" #: common/mltools/tools_utils.ml:749 msgid "" "host (%s/%s) and guest (%s/%s) are not compatible, so you cannot use command " "line options that involve running commands in the guest. Use --firstboot " "scripts instead." msgstr "" #: common/mlcustomize/customize_run.ml:209 msgid "hostname could not be set for this type of guest" msgstr "" #: common/mldrivers/linux_kernels.ml:342 msgid "ignoring kernel %s in bootloader, as it does not exist." msgstr "" #: output/output_vdsm.ml:160 msgid "image directory (%s) does not exist or is not a directory" msgstr "" #: input/parse_libvirt_xml.ml:81 msgid "in the libvirt XML metadata, is missing or empty" msgstr "" #: input/parse_libvirt_xml.ml:87 msgid "in the libvirt XML metadata, is missing or empty" msgstr "" #: input/input_vcenter_https.ml:52 input/input_libvirt.ml:107 msgid "in-place mode does not work with HTTP source" msgstr "" #: input/input_vddk.ml:146 msgid "in-place mode does not work with VDDK source" msgstr "" #: input/input_vmx.ml:43 msgid "in-place mode does not work with VMX source" msgstr "" #: input/input_xen_ssh.ml:50 msgid "in-place mode does not work with Xen over SSH source" msgstr "" #: output/output_kubevirt.ml:116 msgid "" "incorrect number of '-oo disk' parameters. This guest has %d disks, but the " "parameter was used %d times." msgstr "" #: input/input_xen_ssh.ml:119 msgid "" "input from xen over ssh does not support disks stored on remote block " "devices. See virt-v2v-input-xen(1) section \"Xen or ssh conversions from " "block devices\"." msgstr "" #. in-place/in_place.ml:397 #: v2v/v2v.ml:590 open/open.ml:238 inspector/inspector.ml:353 msgid "" "insufficient free space in the conversion server temporary directory %s " "(%s).\n" "\n" "Either free up space in that directory, or set the LIBGUESTFS_CACHEDIR " "environment variable to point to another directory with more than 1GB of " "free space.\n" "\n" "See also the virt-v2v(1) manual, section \"Minimum free space check in the " "host\"." msgstr "" #: common/mltools/tools_utils.ml:246 msgid "internal error: Not_found exception was thrown" msgstr "" #: common/mltools/tools_utils.ml:243 msgid "internal error: assertion failed at %s, line %d, char %d" msgstr "" #: common/mltools/tools_utils.ml:241 msgid "internal error: invalid argument: %s" msgstr "" #: common/mldrivers/linux.ml:128 msgid "internal error: is_file_owned: dpkg command returned no output" msgstr "" #: common/mldrivers/linux.ml:133 msgid "internal error: is_file_owned: unexpected output from dpkg command: %s" msgstr "" #: common/mldrivers/linux_bootloaders.ml:130 msgid "internal error: regular expression did not match ‘%s’" msgstr "" #: v2v/v2v.ml:548 msgid "internal error: wait returned unexpected process ID %d status \"%s\"" msgstr "" #: v2v/v2v.ml:114 inspector/inspector.ml:104 in-place/in_place.ml:111 msgid "invalid --mac ip option" msgstr "" #: v2v/v2v.ml:98 inspector/inspector.ml:88 in-place/in_place.ml:95 msgid "invalid -b/--bridge parameter" msgstr "" #: v2v/v2v.ml:90 inspector/inspector.ml:80 in-place/in_place.ml:87 msgid "invalid -n/--network parameter" msgstr "" #: input/parse_domain_from_vmx.ml:402 msgid "invalid cpuid.coresPerSocket < number of vCPUs" msgstr "" #. common/mlcustomize/customize_cmdline.ml:153 #. common/mlcustomize/customize_cmdline.ml:145 #: common/mlcustomize/customize_cmdline.ml:161 msgid "invalid format for '--%s' parameter, see the man page" msgstr "" #: common/mltools/tools_utils.ml:359 msgid "invalid format string for --machine-readable: %s" msgstr "" #: lib/utils.ml:279 msgid "invalid input filename (%s)" msgstr "" #: input/OVA.ml:445 msgid "invalid offset returned by tar: %S" msgstr "" #: common/mltools/tools_utils.ml:374 msgid "invalid output fd for --machine-readable: %s" msgstr "" #: common/mltools/tools_utils.ml:376 msgid "invalid output for --machine-readable: %s" msgstr "" #: common/mltools/tools_utils.ml:368 msgid "invalid output stream for --machine-readable: %s" msgstr "" #: common/mlcustomize/password.ml:73 msgid "invalid password selector ‘%s’; see the man page" msgstr "" #: input/OVA.ml:450 msgid "invalid size returned by tar: %S" msgstr "" #: common/mlcustomize/ssh_key.ml:45 msgid "invalid ssh-inject selector ‘%s’; see the man page" msgstr "" #: input/OVF.ml:82 msgid "invalid vmw:CoresPerSocket (%d) ignored" msgstr "" #: input/OVF.ml:88 msgid "invalid vmw:CoresPerSocket < number of cores" msgstr "" #: common/mldrivers/linux_bootloaders.ml:114 msgid "kernel %s is not under grub tree %s" msgstr "" #: common/mltools/tools_utils.ml:539 common/mltools/tools_utils.ml:458 #, fuzzy #| msgid "%s killed by signal %d (%s)" msgid "killed by signal %d" msgstr "%s abgewürgt durch Signal %d (%s)" #: common/mltools/tools_utils.ml:237 msgid "libguestfs error: %s" msgstr "libguestfs-Fehler: %s" #: lib/libvirt_utils.ml:72 msgid "" "libvirt domain ‘%s’ is running or paused. Converting a live guest will " "result in corrupted output. However this is safe if you're converting from a " "snapshot" msgstr "" #: common/mlcustomize/customize_run.ml:47 #, fuzzy #| msgid "%s (ignored)" msgid "log file %s: %s (ignored)" msgstr "%s (ignoriert)" #: input/OVA.ml:147 msgid "" "making OVA directory public readable to work around libvirt bug https://" "bugzilla.redhat.com/1045069" msgstr "" #: input/input_ova.ml:86 msgid "manifest has a checksum for non-existent file %s (ignored)" msgstr "" #: common/mlcustomize/customize_cmdline.ml:472 msgid "md5|sha256|sha512" msgstr "md5|sha256|sha512" #: common/mlcustomize/customize_run.ml:119 msgid "method '%s' is no longer supported" msgstr "" #: common/mltools/JSON_parser.ml:39 msgid "missing value for the key ‘%s’" msgstr "" #: input/OVA.ml:276 msgid "more than one .ovf file was found in %s" msgstr "" #: common/mltools/JSON_parser.ml:34 msgid "more than value for the key ‘%s’" msgstr "" #: output/output_ovirt.ml:222 msgid "" "mount command failed, see earlier errors.\n" "\n" "This probably means you didn't specify the right %s path [-os %s], or else " "you need to rerun virt-v2v as root." msgstr "" #: common/mlcustomize/customize_run.ml:103 msgid "" "multiple --root-password/--password options set the password for user ‘%s’ " "twice" msgstr "" #: input/input_vddk.ml:319 msgid "" "nbdkit VDDK plugin is not installed or not working. It is required if you " "want to use VDDK.\n" "\n" "It 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 ’/%s/libvixDiskLib.so.?’.\n" "\n" "See also the virt-v2v-input-vmware(1) manual." msgstr "" #: input/input_vddk.ml:313 msgid "" "nbdkit VDDK plugin is not installed or not working. It is required if you " "want to use VDDK.\n" "\n" "The 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" "\n" "See also the virt-v2v-input-vmware(1) manual." msgstr "" #: lib/nbdkit.ml:223 msgid "nbdkit did not start up. See previous debugging messages for problems." msgstr "" #: lib/nbdkit.ml:225 msgid "" "nbdkit did not start up. There may be errors printed by nbdkit above.\n" "\n" "If the messages above are not sufficient to diagnose the problem then add " "the ‘virt-v2v -v -x’ options and examine the debugging output carefully." msgstr "" #: input/nbdkit_ssh.ml:36 input/nbdkit_curl.ml:32 input/input_vddk.ml:283 msgid "nbdkit is not installed or not working" msgstr "" #: input/input_disk.ml:92 msgid "" "nbdkit is not installed or not working. It is required to use ‘-i disk’." msgstr "" #: input/input_libvirt.ml:68 msgid "" "nbdkit is not installed or not working. It is required to use ‘-i libvirt|" "libvirtxml’." msgstr "" #: output/output.ml:178 output/output.ml:77 msgid "" "nbdkit is not installed or not working. It is required to use ‘-o disk’." msgstr "" #: output/output_null.ml:57 msgid "" "nbdkit is not installed or not working. It is required to use ‘-o null’." msgstr "" #: output/output_ovirt_upload.ml:163 msgid "" "nbdkit is not installed or not working. It is required to use ‘-o ovirt-" "upload’. See the virt-v2v-output-ovirt(1) manual." msgstr "" #: input/input_vddk.ml:285 msgid "nbdkit must be >= 1.45.11 for input from VDDK" msgstr "" #: output/output_ovirt_upload.ml:176 msgid "" "nbdkit python plugin is not installed or not working. It is required if you " "want to use ‘-o ovirt-upload’.\n" "\n" "See also the virt-v2v-output-ovirt(1) manual." msgstr "" #: output/output_ovirt_upload.ml:190 msgid "" "nbdkit was compiled without SELinux support. You will have to recompile " "nbdkit with libselinux-devel installed, or else set SELinux to Permissive " "mode while doing the conversion." msgstr "" #. input/input_libvirt.ml:76 #. input/input_disk.ml:98 #: input/nbdkit_ssh.ml:42 input/nbdkit_curl.ml:38 input/input_vddk.ml:289 msgid "nbdkit-cow-filter is not installed or not working" msgstr "" #: input/nbdkit_curl.ml:35 msgid "nbdkit-curl-plugin is not installed" msgstr "" #. input/input_disk.ml:96 #: output/output.ml:181 output/output.ml:80 input/input_libvirt.ml:72 msgid "nbdkit-file-plugin is not installed or not working" msgstr "" #: input/input_libvirt.ml:74 msgid "nbdkit-nbd-plugin is not installed or not working" msgstr "" #: output/output_null.ml:60 msgid "nbdkit-null-plugin is not installed or not working" msgstr "" #: input/nbdkit_ssh.ml:39 msgid "nbdkit-ssh-plugin is not installed" msgstr "" #: input/input_vddk.ml:287 msgid "nbdkit-vddk-plugin is not installed" msgstr "" #: lib/nbdkit.ml:56 msgid "nbdkit: unexpected version in --dump-config: %s" msgstr "" #. input/input_vcenter_https.ml:49 #. input/input_ova.ml:46 #. input/input_libvirt.ml:35 #. input/input_disk.ml:39 #: input/input_xen_ssh.ml:47 input/input_vmx.ml:40 msgid "no -io (input options) are allowed here" msgstr "" #: output/output_ovirt.ml:44 output/output_null.ml:42 #: output/output_glance.ml:44 msgid "no -oo (output options) are allowed here" msgstr "" #: input/OVA.ml:273 msgid "no .ovf file was found in %s" msgstr "" #: common/mldrivers/linux_bootloaders.ml:402 msgid "no bootloader detected" msgstr "" #: input/parse_domain_from_vmx.ml:359 msgid "no displayName key found in VMX file" msgstr "" #: input/OVF.ml:148 msgid "no href in ovf:File (id=%s)" msgstr "" #: common/mldrivers/linux_kernels.ml:194 msgid "no initrd was found in /boot matching %s %s." msgstr "" #: common/mldrivers/linux_kernels.ml:317 msgid "" "no installed kernel packages were found.\n" "\n" "This probably indicates that %s was unable to inspect this guest properly." msgstr "" #: common/mldrivers/linux_kernels.ml:354 msgid "" "no kernels were found in the bootloader configuration.\n" "\n" "This probably indicates that %s was unable to parse the bootloader " "configuration of this guest." msgstr "" #: output/python_script.ml:55 msgid "no python binary called ‘%s’ can be found on the $PATH" msgstr "" #: input/select_input.ml:106 msgid "" "no support for remote libvirt connections to '-ic %s'. The conversion may " "fail when it tries to read the source disks." msgstr "" #: lib/create_ovf.ml:1027 msgid "" "oVirt cannot emulate ‘%s’ sound cards. This sound card will be dropped from " "the output." msgstr "" #: lib/create_ovf.ml:875 lib/create_ovf.ml:512 msgid "oVirt does not support the output format ‘%s’, only raw or qcow2" msgstr "" #: output/output_openstack.ml:120 msgid "openstack: -oo server-id= not present" msgstr "" #: output/output_openstack.ml:338 msgid "" "openstack: failed to attach cinder volume to VM, see earlier error messages" msgstr "" #: output/output_openstack.ml:291 msgid "openstack: failed to create a cinder volume, see earlier error messages" msgstr "" #: output/output_openstack.ml:304 msgid "" "openstack: failed to query cinder volume status, see earlier error messages" msgstr "" #: output/output_openstack.ml:442 msgid "" "openstack: failed to set image properties on cinder volume, see earlier " "error messages" msgstr "" #: output/output_openstack.ml:199 msgid "" "openstack: precheck failed, there may be a problem with authentication, see " "earlier error messages" msgstr "" #: output/output_openstack.ml:311 msgid "" "openstack: unknown volume status \"%s\": expected \"creating\" or " "\"available\"" msgstr "" #: output/output.ml:133 msgid "output mode only supports raw or qcow2 format (format: %s)" msgstr "" #: input/OVF.ml:263 msgid "" "ova disk has an unknown VMware controller type (%d), please report this as a " "bug supplying the *.ovf file extracted from the ova" msgstr "" #: input/OVF.ml:259 msgid "" "ova disk has no parent controller, please report this as a bug supplying the " "*.ovf file extracted from the ova" msgstr "" #: output/output_ovirt_upload.ml:367 msgid "" "ovirt-upload: -of %s: Only output format ‘raw’ or ‘qcow2’ is supported. If " "the input is in a different format then force one of these output formats by " "adding either ‘-of raw’ or ‘-of qcow2’ on the command line." msgstr "" #: common/mlcustomize/password.ml:51 msgid "" "password-crypto: unknown algorithm %s, use \"md5\", \"sha256\", \"sha512\" " "or \"yescrypt\"" msgstr "" #: common/mlcustomize/password.ml:197 msgid "" "password: using insecure md5 password encryption for guest of type %s " "version %d.%d.\n" "If this is incorrect, use --password-crypto option and file a bug." msgstr "" #: common/mlcustomize/customize_run.ml:359 msgid "passwords could not be set for this type of guest" msgstr "" #: lib/qemuNBD.ml:125 msgid "" "qemu-nbd did not start up. See previous debugging messages for problems." msgstr "" #: lib/qemuNBD.ml:127 msgid "" "qemu-nbd did not start up. There may be errors printed by qemu-nbd above.\n" "\n" "If the messages above are not sufficient to diagnose the problem then add " "the ‘virt-v2v -v -x’ options and examine the debugging output carefully." msgstr "" #: lib/qemuNBD.ml:47 msgid "qemu-nbd: unexpected version in --version: %s" msgstr "" #: common/mlcustomize/customize_run.ml:77 msgid "random seed could not be set for this type of guest" msgstr "" #: input/parse_domain_from_vmx.ml:44 msgid "remote vmx ‘%s’ could not be parsed as a URI" msgstr "" #. common/mlcustomize/inject_virtio_win.ml:357 #. common/mlcustomize/inject_virtio_win.ml:352 #: common/mlcustomize/inject_virtio_win.ml:362 msgid "" "root directory ‘/’ is missing from the virtio-win directory or ISO.\n" "\n" "This should not happen and may indicate that virtio-win or virt-v2v is " "broken in some way. Please report this as a bug with a full debug log." msgstr "" #: common/mltools/tools_utils.ml:417 common/options/keys.c:264 #, c-format msgid "selector '%s': invalid TYPE" msgstr "" #: common/mltools/tools_utils.ml:409 common/options/keys.c:254 #, c-format msgid "selector '%s': missing FILENAME, or too many fields" msgstr "" #: common/mltools/tools_utils.ml:399 common/options/keys.c:232 #, c-format msgid "selector '%s': missing ID" msgstr "" #: common/mltools/tools_utils.ml:404 common/options/keys.c:245 #, c-format msgid "selector '%s': missing KEY_STRING, or too many fields" msgstr "" #: common/mltools/tools_utils.ml:401 common/options/keys.c:239 #, c-format msgid "selector '%s': missing TYPE" msgstr "" #: common/mltools/tools_utils.ml:413 common/options/keys.c:262 #, c-format msgid "selector '%s': too many fields" msgstr "" #: lib/utils.ml:35 #, fuzzy #| msgid "%s killed by signal %d (%s)" msgid "signalled by signal %d" msgstr "%s abgewürgt durch Signal %d (%s)" #: common/mlcustomize/guest_packages.ml:40 msgid "" "sorry, ‘%s’ with the ‘%s’ package manager has not been implemented yet.\n" "\n" "You can work around this by using one of the ‘--run*’ or ‘--firstboot*’ " "options instead (described in the virt-customize(1) manual)." msgstr "" #: common/mlcustomize/ssh_key.ml:57 msgid "ssh-inject: $HOME environment variable is not set" msgstr "" #: common/mlcustomize/ssh_key.ml:93 msgid "ssh-inject: key is an empty string" msgstr "" #: common/mlcustomize/ssh_key.ml:66 msgid "ssh-inject: no public key file found in %s" msgstr "" #: common/mlcustomize/ssh_key.ml:83 msgid "ssh-inject: public key file (%s) is empty" msgstr "" #: common/mlcustomize/ssh_key.ml:112 msgid "ssh-inject: the user %s does not exist on the guest" msgstr "" #. common/mltools/tools_utils.ml:461 #: lib/utils.ml:36 common/mltools/tools_utils.ml:542 #, fuzzy #| msgid "%s stopped by signal %d (%s)" msgid "stopped by signal %d" msgstr "%s gestoppt durch Signal %d (%s)" #: output/changeuid.ml:58 #, fuzzy #| msgid "%s exited with error status %d" msgid "subprocess exited with non-zero error code %d" msgstr "%s beendet mit Fehlerstatus %d" #: output/changeuid.ml:60 #, fuzzy #| msgid "%s stopped by signal %d (%s)" msgid "subprocess signalled or stopped by signal %d" msgstr "%s gestoppt durch Signal %d (%s)" #: lib/utils.ml:33 msgid "success" msgstr "" #: output/create_libvirt_xml.ml:297 msgid "" "target hypervisor does not support floppy devices, but floppy devices were " "found in the source guest" msgstr "" #: output/output_ovirt_upload.ml:156 msgid "" "the Python module ‘ovirtsdk4’ could not be loaded, is it installed? See " "previous messages for problems." msgstr "" #: output/output_ovirt_upload.ml:453 msgid "the cluster ‘%s’ does not support the architecture %s but %s" msgstr "" #: common/mlcustomize/customize_run.ml:59 msgid "" "the command may have failed because the network is disabled. Try either " "removing ‘--no-network’ or adding ‘--network’ on the command line." msgstr "" #: common/mltools/JSON_parser.ml:84 msgid "the key ‘%s’ was not found in a list of objects" msgstr "" #: output/output_ovirt_upload.ml:288 msgid "" "the number of ‘-oo ovirt-disk-uuid’ parameters passed on the command line " "has to match the number of guest disk images (for this guest: %d)" msgstr "" #: output/output_vdsm.ml:133 msgid "" "the number of ‘-oo vdsm-image-uuid’ and ‘-oo vdsm-vol-uuid’ parameters " "passed on the command line has to match the number of guest disk images (for " "this guest: %d)" msgstr "" #: output/output_libvirt.ml:239 msgid "the target hypervisor does not support a %s KVM guest" msgstr "" #: common/mltools/JSON_parser.ml:78 msgid "the value for key ‘%s’ is not a string as expected" msgstr "" #: common/mltools/JSON_parser.ml:50 msgid "the value for the key ‘%s’ is not a bool" msgstr "" #: common/mltools/JSON_parser.ml:45 msgid "the value for the key ‘%s’ is not a string" msgstr "" #: common/mltools/JSON_parser.ml:70 msgid "the value for the key ‘%s’ is not an integer" msgstr "" #: common/mltools/JSON_parser.ml:55 msgid "the value for the key ‘%s’ is not an object" msgstr "" #: common/mltools/JSON_parser.ml:59 msgid "the value is not an object" msgstr "" #: common/mltools/JSON_parser.ml:35 msgid "the value of the key ‘%s’ is not an object" msgstr "" #: lib/create_ovf.ml:519 msgid "" "the virtual size of the input disk %d is not an exact multiple of 512 " "bytes. The virtual size is: %Ld.\n" "\n" "This probably means something unexpected is going on, so please file a bug " "about this issue." msgstr "" #: output/output_openstack.ml:144 msgid "" "the ‘%s’ program is not available. It is needed to communicate with " "OpenStack." msgstr "" #: output/output_ovirt.ml:265 msgid "" "there are multiple UUIDs in the %s (%s). This is unexpected, and may be a " "bug in virt-v2v or OVirt." msgstr "" #: output/output_ovirt.ml:262 msgid "there are no UUIDs in the %s (%s). Is it really an OVirt %s?" msgstr "" #: common/mlcustomize/inject_virtio_win.ml:153 msgid "" "there are no virtio drivers available for this version of Windows (%d.%d %s " "%s %s). virt-v2v looks for drivers in %s\n" "\n" "The guest will be configured to use slower emulated devices." msgstr "" #: common/mlcustomize/inject_virtio_win.ml:175 msgid "" "there is no virtio block device driver for this version of Windows (%d.%d " "%s). virt-v2v looks for this driver in %s\n" "\n" "The guest will be configured to use a slower emulated device." msgstr "" #: common/mlcustomize/inject_virtio_win.ml:206 msgid "" "there is no virtio network driver for this version of Windows (%d.%d %s). " "virt-v2v looks for this driver in %s\n" "\n" "The guest will be configured to use a slower emulated device." msgstr "" #: input/parse_libvirt_xml.ml:545 msgid "this guest has a direct network interface which will be ignored" msgid_plural "this guest has direct network interfaces which will be ignored" msgstr[0] "" msgstr[1] "" #: input/parse_libvirt_xml.ml:527 msgid "this guest has a passthrough host device which will be ignored" msgid_plural "this guest has passthrough host devices which will be ignored" msgstr[0] "" msgstr[1] "" #: input/parse_libvirt_xml.ml:248 msgid "this guest has no non-removable disks" msgstr "" #: output/output.ml:65 msgid "this output module doesn't support copying more than %d disks" msgstr "" #: common/mlcustomize/timezone.ml:35 msgid "timezone '%s' does not exist, use a location like 'Europe/London'" msgstr "" #: common/mlcustomize/customize_run.ml:304 msgid "timezone could not be set for this type of guest" msgstr "" #: input/OVA.ml:318 msgid "unable to parse line from manifest file: %S" msgstr "" #: common/mltools/urandom.ml:37 msgid "unexpected end of file while reading /dev/urandom" msgstr "" #: input/input_libvirt.ml:196 msgid "unexpected output from the %s command" msgstr "" #: common/mltools/checksums.ml:58 msgid "unhandled checksum type ‘%s’" msgstr "" #: lib/types.ml:524 msgid "unknown --root option: %s" msgstr "" #: input/select_input.ml:51 msgid "unknown -i option: %s" msgstr "" #: output/select_output.ml:74 msgid "unknown -o option: %s" msgstr "" #: v2v/v2v.ml:164 msgid "unknown -oa option: %s" msgstr "" #: input/input_libvirt.ml:189 msgid "unknown method='%s'" msgstr "" #: input/OVF.ml:103 msgid "unknown Config:firmware value %s (expected \"bios\" or \"efi\")" msgstr "" #: lib/create_ovf.ml:446 lib/create_ovf.ml:247 msgid "unknown Windows 10 variant: %s (%s)" msgstr "" #: v2v/v2v.ml:319 in-place/in_place.ml:256 msgid "unknown block driver ‘--block-driver %s’" msgstr "" #: input/parse_domain_from_vmx.ml:415 msgid "unknown firmware value '%s', assuming BIOS" msgstr "" #: lib/create_ovf.ml:454 lib/create_ovf.ml:255 msgid "unknown guest operating system: %s %s %d.%d %s (%s)" msgstr "" #: v2v/v2v.ml:329 open/open.ml:132 inspector/inspector.ml:238 msgid "unknown input transport ‘-it %s’" msgstr "" #: input/parse_domain_from_vmx.ml:428 msgid "unknown sound device '%s' ignored" msgstr "" #: input/parse_libvirt_xml.ml:215 msgid "unknown sound model %s ignored" msgstr "" #: input/OVF.ml:156 msgid "unsupported compression in OVF: %s" msgstr "" #: input/input_vcenter_https.ml:123 msgid "" "vcenter: was not found in the XML. You need to " "upgrade to libvirt ≥ 1.2.20." msgstr "" #: input/vCenter.ml:79 msgid "vcenter: URL not found: %s" msgstr "" #: input/vCenter.ml:70 msgid "vcenter: incorrect username or password" msgstr "" #: input/vCenter.ml:72 msgid "" "vcenter: incorrect username or password. You might need to specify the " "username in the URI like this: [vpx|esx|..]://USERNAME@[etc]" msgstr "" #: input/vCenter.ml:84 msgid "vcenter: invalid response from server: %s" msgstr "" #: input/vCenter.ml:194 msgid "vcenter: no status code in output of ‘curl’ command." msgstr "" #: output/output_vdsm.ml:148 msgid "vdsm: invalid -os parameter does not contain a valid UUID: %s" msgstr "" #: output/output_openstack.ml:56 msgid "" "virt-v2v -oo server-id= [os-*=...]\n" "\n" "Specify the name or UUID of the conversion appliance using\n" "\n" " virt-v2v ... -o openstack -oo server-id=\n" "\n" "When virt-v2v runs it will attach the Cinder volumes to the\n" "conversion appliance, so this name or UUID must be the name\n" "of the virtual machine on OpenStack where virt-v2v is running.\n" "\n" "In addition, all usual OpenStack “os-*” parameters or “OS_*”\n" "environment variables can be used.\n" "\n" "Openstack “--os-*” parameters must be written as “virt-v2v -oo os-*”.\n" "\n" "For example:\n" "\n" " virt-v2v -oo os-username=\n" "\n" " equivalent to openstack: --os-username=\n" " or the environment variable: OS_USERNAME=\n" "\n" " virt-v2v -oo os-project-name=\n" "\n" " equivalent to openstack: --os-project-name=\n" " or the environment variable: OS_PROJECT_NAME=\n" "\n" "The os-* parameters and environment variables are optional.\n" msgstr "" #: input/parse_libvirt_xml.ml:189 msgid "" "virt-v2v does not support local displays, so in the " "input libvirt XML was ignored" msgstr "" #: input/select_input.ml:83 msgid "virt-v2v-in-place does not support remote libvirt URIs" msgstr "" #: input/parse_domain_from_vmx.ml:50 msgid "vmx URI path component looks incorrect" msgstr "" #: input/parse_domain_from_vmx.ml:48 msgid "vmx URI remote server name omitted" msgstr "" #: input/parse_domain_from_vmx.ml:46 msgid "vmx URI start with ‘ssh://...’" msgstr "" #: input/VMX.ml:313 msgid "vmx parser: cannot parse this line, ignoring: %s" msgstr "" #: input/VMX.ml:346 msgid "vmx parser: duplicate key '%s' ignored" msgstr "" #: output/output_openstack.ml:299 msgid "wait for cinder volume status to change to \"available\"" msgstr "" #: output/output_openstack.ml:360 msgid "waiting for cinder volume %s to attach to the conversion appliance" msgstr "" #: open/open.ml:136 msgid "you must supply the --run parameter" msgstr "" #: input/input_xen_ssh.ml:87 input/input_vddk.ml:189 msgid "‘-ic %s’ URL does not contain a host name field" msgstr "" #: input/input_vddk.ml:273 msgid "‘-io vddk-file=’ must be used exactly %d times" msgstr "" #: input/input_vddk.ml:297 msgid "" "‘-io vddk-libdir=%s’ does not point to a directory. See the virt-v2v-input-" "vmware(1) manual." msgstr "" #: output/output.ml:85 msgid "" "‘-oo compressed’ is only allowed when the output format is a local qcow2-" "format file, i.e. ‘-of qcow2’" msgstr "" #: input/input_vddk.ml:232 msgid "" "‘openssl’ command not found: automatically detecting thumbprint is not " "possible, so you must use ‘-io vddk-thumbprint=XX:XX...’" msgstr "" #: common/mltools/getopt-c.c:68 #, c-format msgid "Try ‘%s --help’ or consult %s(1) for more information.\n" msgstr "" #: common/mltools/getopt-c.c:187 #, c-format msgid "%s: ‘%s’ is not a numeric value.\n" msgstr "" #: common/mltools/getopt-c.c:193 #, c-format msgid "%s: %s: integer out of range\n" msgstr "%s: %s: Ganzzahl außerhalb des Bereichs\n" #: common/mltools/getopt-c.c:383 #, c-format msgid "%s: ‘%s’ is not allowed for -%c; allowed values are:\n" msgstr "" #: common/mltools/getopt-c.c:386 #, c-format msgid "%s: ‘%s’ is not allowed for %s%s; allowed values are:\n" msgstr "" #: common/mltools/getopt-c.c:421 #, c-format msgid "Extra parameter on the command line: ‘%s’.\n" msgstr "" #: common/options/config.c:72 #, c-format msgid "%s: line %d: error parsing configuration file: %s" msgstr "" #: common/options/decrypt.c:52 #, c-format msgid "string size overflow" msgstr "" #: common/options/decrypt.c:170 #, c-format msgid "" "'clevis_luks_unlock', needed for decrypting %s, is unavailable in this " "libguestfs version" msgstr "" #: common/options/decrypt.c:184 #, c-format msgid "" "could not find key to open LUKS encrypted %s.\n" "\n" "Try using --key on the command line.\n" "\n" "Original error: %s (%d)" msgstr "" #: common/options/inspect.c:78 #, c-format msgid "" "%s: no operating system was found on this disk\n" "\n" "If using guestfish ‘-i’ option, remove this option and instead\n" "use the commands ‘run’ followed by ‘list-filesystems’.\n" "You can then mount filesystems you want by hand using the\n" "‘mount’ or ‘mount-ro’ command.\n" "\n" "If using guestmount ‘-i’, remove this option and choose the\n" "filesystem(s) you want to see by manually adding ‘-m’ option(s).\n" "Use ‘virt-filesystems’ to see what filesystems are available.\n" "\n" "If using other virt tools, this disk image won’t work\n" "with these tools. Use the guestfish equivalent commands\n" "(see the virt tool manual page).\n" msgstr "" #: common/options/inspect.c:99 #, c-format msgid "" "%s: multi-boot operating systems are not supported\n" "\n" "If using guestfish ‘-i’ option, remove this option and instead\n" "use the commands ‘run’ followed by ‘list-filesystems’.\n" "You can then mount filesystems you want by hand using the\n" "‘mount’ or ‘mount-ro’ command.\n" "\n" "If using guestmount ‘-i’, remove this option and choose the\n" "filesystem(s) you want to see by manually adding ‘-m’ option(s).\n" "Use ‘virt-filesystems’ to see what filesystems are available.\n" "\n" "If using other virt tools, multi-boot operating systems won’t work\n" "with these tools. Use the guestfish equivalent commands\n" "(see the virt tool manual page).\n" msgstr "" #: common/options/inspect.c:161 #, c-format msgid "%s: some filesystems could not be mounted (ignored)\n" msgstr "" #: common/options/inspect.c:178 #, c-format msgid "Operating system: %s\n" msgstr "Betriebssystem: %s\n" #: common/options/inspect.c:196 #, c-format msgid "%s mounted on %s\n" msgstr "%s eingehängt auf %s\n" #: common/options/keys.c:63 #, c-format msgid "Enter key or passphrase (\"%s\"): " msgstr "Schlüssel oder Passphrase eingeben („%s“): " #: common/options/keys.c:146 #, c-format msgid "size_t overflow" msgstr "" #: common/options/keys.c:193 #, c-format msgid "could not read key from user" msgstr "" #: common/options/options.c:283 #, c-format msgid "%s: ‘%s’ could not be mounted.\n" msgstr "" #: common/options/options.c:287 #, c-format msgid "" "%s: Check mount(8) man page to ensure options ‘%s’\n" "%s: are supported by the filesystem that is being mounted.\n" msgstr "" #: common/options/options.c:291 #, c-format msgid "%s: Did you mean to mount one of these filesystems?\n" msgstr "" #: common/options/options.c:304 #, c-format msgid "cannot determine the subvolume for %s: %s (%d)" msgstr "" #: common/options/uri.c:119 #, c-format msgid "%s: --add: could not parse URI ‘%s’\n" msgstr "" #: common/options/uri.c:130 #, c-format msgid "%s: %s: scheme of URI is NULL or empty\n" msgstr "" #: common/options/uri.c:138 #, c-format msgid "%s: %s: cannot have both a server name and a socket query parameter\n" msgstr "" #: common/utils/utils.c:107 #, c-format msgid "%s exited successfully" msgstr "%s erfolgreich beendet" #: common/utils/utils.c:110 #, c-format msgid "%s exited with error status %d" msgstr "%s beendet mit Fehlerstatus %d" #: common/utils/utils.c:114 #, c-format msgid "%s killed by signal %d (%s)" msgstr "%s abgewürgt durch Signal %d (%s)" #: common/utils/utils.c:118 #, c-format msgid "%s stopped by signal %d (%s)" msgstr "%s gestoppt durch Signal %d (%s)" #: common/utils/utils.c:122 #, c-format msgid "%s exited for an unknown reason (status %d)" msgstr "%s beendet aus unbekanntem Grund (Status %d)" #~ msgid "Compress output file (-of qcow2 only)" #~ msgstr "Ausgabedatei komprimieren (nur -of qcow2)" ================================================ FILE: po/en_GB.po ================================================ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR Red Hat Inc. # This file is distributed under the same license as the virt-v2v package. # FIRST AUTHOR , YEAR. # msgid "" msgstr "" "Project-Id-Version: virt-v2v 2.7.7\n" "Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?" "component=libguestfs&product=Virtualization+Tools\n" "POT-Creation-Date: 2025-02-16 17:05+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" "Language: en_GB\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" #: input/input_ova.ml:135 common/mltools/tools_utils.ml:235 msgid "%s" msgstr "" #: common/mltools/getopt.ml:73 msgid "" "%s\n" "Options:\n" msgstr "" #: common/mltools/tools_utils.ml:695 common/mlcustomize/customize_run.ml:390 msgid "%s (ignored)" msgstr "" #: common/mltools/checksums.ml:71 msgid "%s did not return any output" msgstr "" #: common/mlcustomize/customize_run.ml:183 msgid "%s does not exist in the guest" msgstr "" #: output/output_ovirt.ml:275 msgid "" "%s does not exist or is not a directory.\n" "\n" "Most likely cause: Either the %s (%s) has not been attached to any Data " "Center, or the path %s is not an %s at all.\n" "\n" "You have to attach the %s to a Data Center using the oVirt user interface " "first.\n" "\n" "If you don’t know what the %s mount point should be then you can also find " "this out through the oVirt user interface." msgstr "" #: common/mlcustomize/customize_run.ml:113 msgid "%s ignored for non-Windows guest" msgstr "" #: common/mlcustomize/customize_run.ml:186 msgid "%s is not a regular file in the guest" msgstr "" #. open/open.ml:39 #. inspector/inspector.ml:153 #. inspector/inspector.ml:40 #. in-place/in_place.ml:164 #. in-place/in_place.ml:45 #: v2v/v2v.ml:194 v2v/v2v.ml:183 v2v/v2v.ml:159 v2v/v2v.ml:44 open/open.ml:68 msgid "%s option used more than once on the command line" msgstr "" #: common/mltools/tools_utils.ml:231 common/mltools/tools_utils.ml:202 msgid "%s: %s" msgstr "" #: common/mltools/tools_utils.ml:233 msgid "%s: %s: %s" msgstr "" #: common/mltools/on_exit.ml:77 msgid "" "%s: Exiting on signal %s\n" "%!" msgstr "" #: common/mlcustomize/inject_virtio_win.ml:411 msgid "%s: cannot open virtio-win ISO file: %s" msgstr "" #: common/mlcustomize/customize_run.ml:64 msgid "%s: command exited with an error" msgstr "" #: v2v/v2v.ml:277 msgid "" "%s: convert a guest to use KVM\n" "\n" "virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi -os imported " "esx_guest\n" "\n" "virt-v2v -i libvirtxml guest-domain.xml -o local -os /var/tmp\n" "\n" "virt-v2v -i disk disk.img -o local -os /var/tmp\n" "\n" "There is a companion front-end called \"virt-p2v\" which comes as an\n" "ISO or CD image that can be booted on physical machines.\n" "\n" "A short summary of the options is given below. For detailed help please\n" "read the man page virt-v2v(1).\n" msgstr "" #: in-place/in_place.ml:217 msgid "" "%s: convert a guest to use KVM in-place\n" "\n" "Note this program modifies the guest in-place with no backup.\n" "Normally you should use virt-v2v.\n" "\n" "virt-v2v-in-place -i libvirtxml guest-domain.xml\n" "\n" "virt-v2v-in-place -i disk disk.img\n" "\n" "A short summary of the options is given below. For detailed help please\n" "read the man page virt-v2v-in-place(1).\n" msgstr "" #: input/input_vddk.ml:207 msgid "%s: enter password for ‘%s’: " msgstr "" #: common/mltools/tools_utils.ml:172 msgid "%s: error: %s" msgstr "" #: inspector/inspector.ml:198 msgid "" "%s: estimate disk space needed before virt-v2v conversion\n" "\n" "virt-v2v-inspector -i disk disk.img [-O output.xml]\n" "\n" "A short summary of the options is given below. For detailed help please\n" "read the man page virt-v2v-inspector(1).\n" msgstr "" #: open/open.ml:94 msgid "" "%s: open the virt-v2v input and run a program on it\n" "\n" "virt-v2v-open -i disk disk.img --run 'virt-inspector --format=raw @@'\n" "\n" "A short summary of the options is given below. For detailed help please\n" "read the man page virt-v2v-open(1).\n" msgstr "" #: common/mltools/tools_utils.ml:726 msgid "%s: operation timed out" msgstr "" #: input/OVA.ml:127 input/OVA.ml:121 msgid "" "%s: unsupported file format\n" "\n" "Formats which we currently understand for '-i ova' are: tar (uncompressed, " "compress with gzip or xz), zip" msgstr "" #: common/mltools/tools_utils.ml:191 msgid "%s: warning: %s" msgstr "" #. common/mlcustomize/customize_cmdline.ml:258 #: common/mlcustomize/customize_cmdline.ml:367 msgid "'CMD+ARGS'" msgstr "" #: common/mlcustomize/customize_run.ml:133 msgid "" "--append-line: line must not contain newline characters. Use the --append-" "line option multiple times to add several lines." msgstr "" #: common/mlcustomize/customize_run.ml:152 msgid "--chown: could not parse numeric UID:GID from %s:%s" msgstr "" #: common/mlcustomize/customize_run.ml:216 msgid "" "--inject-blnsvr: blnsvr.exe not found in virtio-win source that you specified" msgstr "" #: common/mlcustomize/customize_run.ml:225 msgid "" "--inject-qemu-ga: QEMU Guest Agent MSI not found in virtio-win source that " "you specified" msgstr "" #: common/mlcustomize/customize_run.ml:241 msgid "" "--inject-virtio-win: virtio drivers were not found for this Windows version " "in the virtio-win source that you specified" msgstr "" #: v2v/v2v.ml:146 inspector/inspector.ml:136 in-place/in_place.ml:143 msgid "--mac ip prefix length field is out of range" msgstr "" #: v2v/v2v.ml:340 msgid "--parallel parameter must be >= 1" msgstr "" #: input/input_disk.ml:42 msgid "-i disk: expecting a disk image (filename) on the command line" msgstr "" #: input/input_xen_ssh.ml:65 msgid "-i libvirt: expecting -ic parameter for Xen over SSH connection" msgstr "" #: input/input_vddk.ml:142 input/input_vcenter_https.ml:88 msgid "-i libvirt: expecting -ic parameter for vcenter connection" msgstr "" #: input/input_vcenter_https.ml:101 msgid "-i libvirt: expecting -ic parameter to contain vcenter server name" msgstr "" #: input/input_vcenter_https.ml:78 msgid "-i libvirt: expecting -ip passwordfile parameter for vCenter connection" msgstr "" #. input/input_vcenter_https.ml:70 #. input/input_libvirt.ml:41 #: input/input_xen_ssh.ml:57 input/input_vddk.ml:132 msgid "-i libvirt: expecting a libvirt guest name on the command line" msgstr "" #: input/input_libvirt.ml:59 msgid "-i libvirtxml: expecting a libvirt XML filename on the command line" msgstr "" #: input/input_ova.ml:243 msgid "-i ova: OVF references file ‘%s’ which was not found in the OVA archive" msgstr "" #: input/input_ova.ml:78 msgid "" "-i ova: corrupt OVA: checksum of disk %s does not match manifest (actual = " "%s, expected = %s)" msgstr "" #: input/input_ova.ml:52 msgid "-i ova: expecting an OVA file name on the command line" msgstr "" #: input/OVA.ml:361 msgid "" "-i ova: invalid OVA file: path ‘%s’ references a file outside the archive" msgstr "" #: input/input_vmx.ml:57 msgid "-i vmx: cannot use -it vddk in this input mode" msgstr "" #: input/input_vmx.ml:60 msgid "-i vmx: expecting a VMX file or ssh:// URI" msgstr "" #: input/vCenter.ml:159 msgid "" "-ip PASSWORD_FILE parameter ignored because 'user@' was not given in the URL" msgstr "" #: input/input_vddk.ml:119 msgid "-it vddk: ‘-io %s’ is not a valid input option" msgstr "" #: output/output.ml:54 msgid "-o %s: %s option cannot be used in this output mode" msgstr "" #: output/output_disk.ml:66 msgid "-o disk: output directory was not specified, use '-os /dir'" msgstr "" #: output/output_libvirt.ml:59 output/output_disk.ml:56 msgid "-o disk: unknown output option ‘-oo %s’" msgstr "" #: output/output_kubevirt.ml:81 msgid "-o kubevirt: output directory was not specified, use '-os /dir'" msgstr "" #: output/output_kubevirt.ml:91 msgid "" "-o kubevirt: the guest name must contain only lowercase alphanumeric " "characters, '-' or '.', and must start and end with an alphanumeric " "character. Rerun virt-v2v with the '-on name' option to rename it." msgstr "" #: output/output_kubevirt.ml:71 msgid "-o kubevirt: unknown output option ‘-oo %s’" msgstr "" #: output/output_libvirt.ml:120 msgid "" "-o libvirt: output pool ‘%s’ does not have /pool/target/path element. See " "virt-v2v-output-local(1)" msgstr "" #: output/output_libvirt.ml:124 msgid "" "-o libvirt: output pool ‘%s’ has type='dir' but the /pool/target/path " "element is not a local directory. See virt-v2v-output-local(1)" msgstr "" #: output/output_libvirt.ml:116 msgid "" "-o libvirt: output pool ‘%s’ is not a directory (type='dir'). See virt-v2v-" "output-local(1)" msgstr "" #: output/output_openstack.ml:88 msgid "-o openstack mode only supports -oa sparse -of raw" msgstr "" #: output/output_openstack.ml:115 msgid "-o openstack: unknown output option ‘-oo %s’" msgstr "" #: output/output_ovirt_upload.ml:97 msgid "-o ovirt-upload: -oo ovirt-cafile set more than once" msgstr "" #: output/output_ovirt_upload.ml:101 msgid "-o ovirt-upload: -oo ovirt-cluster set more than once" msgstr "" #: output/output_ovirt_upload.ml:112 msgid "-o ovirt-upload: invalid UUID for -oo ovirt-disk-uuid" msgstr "" #: output/output_ovirt_upload.ml:76 msgid "" "-o ovirt-upload: output password file was not specified, use ‘-op’ to point " "to a file which contains the password used to connect to the oVirt server" msgstr "" #: output/output_ovirt_upload.ml:83 msgid "-o ovirt-upload: output storage was not specified, use ‘-os’" msgstr "" #: output/output_ovirt_upload.ml:116 msgid "-o ovirt-upload: unknown output option ‘-oo %s’" msgstr "" #: output/output_ovirt_upload.ml:68 msgid "" "-o ovirt-upload: use ‘-oc’ to point to the oVirt server REST API URL, which " "is usually https://servername/ovirt-engine/api" msgstr "" #: output/output_ovirt.ml:51 msgid "-o ovirt: -os option was not specified" msgstr "" #: output/output_qemu.ml:72 msgid "-o qemu: output directory was not specified, use '-os /dir'" msgstr "" #: output/output_qemu.ml:63 msgid "-o qemu: unknown output option ‘-oo %s’" msgstr "" #: output/output_vdsm.ml:102 msgid "-o vdsm: -oo vdsm-image-uuid was not specified" msgstr "" #: output/output_vdsm.ml:81 msgid "-o vdsm: -oo vdsm-ovf-output set more than once" msgstr "" #: output/output_vdsm.ml:77 msgid "-o vdsm: -oo vdsm-vm-uuid set more than once" msgstr "" #: output/output_vdsm.ml:110 msgid "-o vdsm: -os option was not specified" msgstr "" #: output/output_vdsm.ml:97 msgid "-o vdsm: either -oo vdsm-vol-uuid or -oo vdsm-vm-uuid was not specified" msgstr "" #: output/output_vdsm.ml:90 msgid "-o vdsm: unknown output option ‘-oo %s’" msgstr "" #: output/output_vdsm.ml:74 msgid "-o vdsm: unknown vdsm-compat level ‘%s’" msgstr "" #. output/output_kubevirt.ml:84 #. output/output_disk.ml:68 #: output/output_vdsm.ml:112 output/output_qemu.ml:74 msgid "-os %s: output directory does not exist or is not a directory" msgstr "" #: input/parse_libvirt_xml.ml:279 msgid " missing 'method' attribute, ignoring" msgstr "" #: input/parse_libvirt_xml.ml:291 msgid " unknown fail='%s' attribute, ignoring" msgstr "" #: input/parse_libvirt_xml.ml:370 input/parse_libvirt_xml.ml:317 msgid " was ignored" msgstr "" #: input/parse_libvirt_xml.ml:338 msgid " with was ignored" msgstr "" #: input/parse_libvirt_xml.ml:365 msgid " with was ignored" msgstr "" #: input/parse_libvirt_xml.ml:299 msgid " element with no type attribute ignored" msgstr "" #: input/parse_libvirt_xml.ml:167 msgid " in the input libvirt XML was ignored" msgstr "" #: input/parse_libvirt_xml.ml:414 msgid "" " was ignored because the device name could not be recognized" msgstr "" #: input/input_vddk.ml:176 msgid "" " was not found in the output of ‘virsh dumpxml \"%s\"’. The " "most likely reason is that libvirt is too old, try upgrading libvirt to ≥ " "3.7." msgstr "" #: common/mlcustomize/customize_cmdline.ml:305 msgid "Add package(s) to install" msgstr "" #: common/mlcustomize/customize_cmdline.ml:270 msgid "Add package(s) to install at first boot" msgstr "" #: common/mlcustomize/customize_cmdline.ml:175 msgid "Append line(s) to the file" msgstr "" #: common/mlcustomize/customize_run.ml:137 msgid "Appending line to %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:197 msgid "Change the owner user and group ID of a file or directory" msgstr "" #: common/mlcustomize/customize_cmdline.ml:186 msgid "Change the permissions of a file" msgstr "" #: common/mlcustomize/customize_run.ml:155 msgid "Changing owner of %s to %d:%d" msgstr "" #: common/mlcustomize/customize_run.ml:141 msgid "Changing permissions of %s to %s" msgstr "" #: input/input_libvirt.ml:174 input/input_libvirt.ml:157 msgid "Checking %s checksum of disk %d/%d" msgstr "" #: common/mlcustomize/customize_cmdline.ml:488 msgid "Compatibility option doing nothing" msgstr "" #: common/mlcustomize/customize_cmdline.ml:219 msgid "Copy files in disk image" msgstr "" #: common/mlcustomize/customize_cmdline.ml:397 msgid "Copy local files or directories from a tarball into image" msgstr "" #: common/mlcustomize/customize_cmdline.ml:230 msgid "Copy local files or directories into image" msgstr "" #: common/mlcustomize/customize_run.ml:168 msgid "Copying (in image): %s to %s" msgstr "" #: v2v/v2v.ml:518 msgid "Copying disk %d/%d" msgstr "" #: common/mlcustomize/customize_run.ml:172 msgid "Copying: %s to %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:322 msgid "Create a directory" msgstr "" #: common/mlcustomize/customize_cmdline.ml:316 msgid "Create symbolic links" msgstr "" #: v2v/v2v.ml:567 msgid "Creating output metadata" msgstr "" #: common/mlcustomize/customize_cmdline.ml:321 msgid "DIR" msgstr "" #: common/mlcustomize/customize_cmdline.ml:236 msgid "Delete a file or directory" msgstr "" #: common/mlcustomize/customize_run.ml:176 msgid "Deleting: %s" msgstr "" #: common/mltools/getopt.ml:225 msgid "Display brief help" msgstr "" #: common/mltools/tools_utils.ml:385 msgid "Display version and exit" msgstr "" #: common/mlcustomize/customize_cmdline.ml:482 msgid "Do not relabel files with correct SELinux labels" msgstr "" #: v2v/v2v.ml:248 inspector/inspector.ml:177 in-place/in_place.ml:190 msgid "Don't trim filesystems before conversion" msgstr "" #: common/mltools/tools_utils.ml:389 msgid "Don’t print progress messages" msgstr "" #: common/mltools/tools_utils.ml:420 msgid "Don’t turn off echo for passphrases" msgstr "" #: common/mlcustomize/customize_cmdline.ml:247 msgid "Edit file using Perl expression" msgstr "" #: common/mlcustomize/customize_run.ml:180 msgid "Editing: %s" msgstr "" #: common/mltools/tools_utils.ml:386 msgid "Enable libguestfs debugging messages" msgstr "" #: common/mltools/tools_utils.ml:387 msgid "Enable tracing of libguestfs calls" msgstr "" #: output/output_ovirt.ml:77 msgid "Export Storage Domain" msgstr "" #: open/open.ml:88 msgid "External command to run" msgstr "" #. common/mlcustomize/customize_cmdline.ml:408 #. common/mlcustomize/customize_cmdline.ml:373 #: common/mlcustomize/customize_cmdline.ml:414 msgid "FILE" msgstr "" #: common/mlcustomize/customize_cmdline.ml:455 msgid "FILE:CONTENT" msgstr "" #: common/mlcustomize/customize_cmdline.ml:444 msgid "FILE:DEST" msgstr "" #: common/mlcustomize/customize_cmdline.ml:242 msgid "FILE:EXPR" msgstr "" #: common/mlcustomize/customize_cmdline.ml:170 msgid "FILE:LINE" msgstr "" #: common/mlcustomize/customize_cmdline.ml:203 msgid "FILENAME" msgstr "" #. in-place/in_place.ml:378 #: v2v/v2v.ml:571 open/open.ml:220 inspector/inspector.ml:334 msgid "Finishing off" msgstr "" #: common/mlcustomize/customize_cmdline.ml:275 msgid "HOSTNAME" msgstr "" #: v2v/v2v.ml:254 inspector/inspector.ml:183 in-place/in_place.ml:194 msgid "How to choose root filesystem" msgstr "" #: common/mltools/tools_utils.ml:177 msgid "" "If reporting bugs, run %s with debugging enabled and include the complete " "output:\n" "\n" " %s -v -x [...]" msgstr "" #: common/mlcustomize/customize_cmdline.ml:386 msgid "Inject a public key into the guest" msgstr "" #: common/mlcustomize/customize_cmdline.ml:282 msgid "Inject the Balloon Server into a Windows guest" msgstr "" #: common/mlcustomize/customize_cmdline.ml:288 msgid "Inject the QEMU Guest Agent into a Windows guest" msgstr "" #: common/mlcustomize/customize_cmdline.ml:294 msgid "Inject virtio-win drivers into a Windows guest" msgstr "" #. in-place/in_place.ml:176 #: v2v/v2v.ml:216 open/open.ml:80 inspector/inspector.ml:165 msgid "Input format" msgstr "" #: input/input_vddk.ml:77 msgid "" "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" "\n" "Refer to nbdkit-vddk-plugin(1) and the VDDK documentation for further\n" "information on these settings.\n" msgstr "" #: v2v/v2v.ml:222 open/open.ml:86 inspector/inspector.ml:171 msgid "Input transport" msgstr "" #: common/mlcustomize/customize_run.ml:191 msgid "Installing firstboot command: %s" msgstr "" #: common/mlcustomize/customize_run.ml:195 msgid "Installing firstboot packages: %s" msgstr "" #: common/mlcustomize/customize_run.ml:202 msgid "Installing firstboot script: %s" msgstr "" #: common/mlcustomize/customize_run.ml:248 msgid "Installing packages: %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:225 msgid "LOCALPATH:REMOTEDIR" msgstr "" #. in-place/in_place.ml:174 #: v2v/v2v.ml:214 open/open.ml:78 inspector/inspector.ml:163 msgid "Libvirt URI" msgstr "" #: common/mlcustomize/customize_run.ml:255 msgid "Linking: %s -> %s" msgstr "" #. common/mlcustomize/customize_cmdline.ml:287 #. common/mlcustomize/customize_cmdline.ml:281 #: common/mlcustomize/customize_cmdline.ml:293 msgid "METHOD" msgstr "" #: common/mltools/tools_utils.ml:426 msgid "Make output machine readable" msgstr "" #: common/mlcustomize/customize_run.ml:260 msgid "Making directory: %s" msgstr "" #: v2v/v2v.ml:226 inspector/inspector.ml:173 in-place/in_place.ml:182 msgid "Map NIC to network or bridge or assign static IP" msgstr "" #: v2v/v2v.ml:210 inspector/inspector.ml:159 in-place/in_place.ml:170 msgid "Map bridge ‘in’ to ‘out’" msgstr "" #: v2v/v2v.ml:230 inspector/inspector.ml:179 in-place/in_place.ml:186 msgid "Map network ‘in’ to ‘out’" msgstr "" #: common/mlcustomize/customize_cmdline.ml:333 msgid "Move files in disk image" msgstr "" #: common/mlcustomize/customize_run.ml:264 msgid "Moving: %s -> %s" msgstr "" #. input/input_vcenter_https.ml:45 #. input/input_ova.ml:35 #. input/input_libvirt.ml:233 #. input/input_libvirt.ml:221 #. input/input_disk.ml:35 #: input/input_xen_ssh.ml:43 input/input_vmx.ml:36 msgid "No input options can be used in this mode.\n" msgstr "" #: output/output_ovirt.ml:40 output/output_null.ml:38 #: output/output_glance.ml:40 msgid "No output options can be used in this mode.\n" msgstr "" #: output/output_vdsm.ml:166 msgid "OVF (metadata) directory (%s) does not exist or is not a directory" msgstr "" #: common/mlcustomize/firstboot.ml:268 msgid "" "One of rhsrvany.exe or pvvxsvc.exe is missing in %s. One of them is " "required in order to install Windows firstboot scripts. You can get one by " "building rhsrvany (https://github.com/rwmjones/rhsrvany)" msgstr "" #: v2v/v2v.ml:236 msgid "Output hypervisor connection" msgstr "" #: output/output_ovirt_upload.ml:51 msgid "" "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" "\n" "You can override the UUIDs of the disks, instead of using autogenerated " "UUIDs\n" "after their uploads (if you do, you must supply one for each disk):\n" "\n" " -oo ovirt-disk-uuid=UUID Disk UUID\n" msgstr "" #: output/output_qemu.ml:44 msgid "" "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" msgstr "" #: output/output_vdsm.ml:43 msgid "" "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" "\n" "For 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" msgstr "" #: output/output_disk.ml:44 msgid "" "Output options that can be used with -o disk:\n" "\n" " -oo compressed Compress the output file (used only with -of qcow2)\n" msgstr "" #: output/output_kubevirt.ml:51 msgid "" "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" msgstr "" #: output/output_libvirt.ml:47 msgid "" "Output options that can be used with -o libvirt:\n" "\n" " -oo compressed Compress the output file (used only with -of qcow2)\n" msgstr "" #. common/mlcustomize/customize_cmdline.ml:235 #: common/mlcustomize/customize_cmdline.ml:420 msgid "PATH" msgstr "" #: common/mlcustomize/customize_cmdline.ml:181 msgid "PERMISSIONS:FILE" msgstr "" #. common/mlcustomize/customize_cmdline.ml:300 #. common/mlcustomize/customize_cmdline.ml:265 #: common/mlcustomize/customize_cmdline.ml:427 msgid "PKG,PKG.." msgstr "" #: v2v/v2v.ml:263 in-place/in_place.ml:203 msgid "Prefer 'virtio-blk' or 'virtio-scsi'" msgstr "" #: v2v/v2v.ml:252 in-place/in_place.ml:192 msgid "Print source and stop" msgstr "" #: common/mlcustomize/customize_cmdline.ml:208 msgid "Read customize commands from file" msgstr "" #: common/mltools/tools_utils.ml:421 msgid "Read passphrases from stdin" msgstr "" #: common/mlcustomize/customize_cmdline.ml:421 msgid "Recursively truncate all files in directory" msgstr "" #: common/mlcustomize/customize_run.ml:298 msgid "Recursively truncating: %s" msgstr "" #: v2v/v2v.ml:240 msgid "Rename guest when converting" msgstr "" #: common/mlcustomize/customize_cmdline.ml:259 msgid "Run command at first guest boot" msgstr "" #: common/mlcustomize/customize_cmdline.ml:368 msgid "Run command in disk image" msgstr "" #: common/mlcustomize/customize_cmdline.ml:253 msgid "Run script at first guest boot" msgstr "" #: common/mlcustomize/customize_cmdline.ml:362 msgid "Run script in disk image" msgstr "" #: common/mlcustomize/customize_cmdline.ml:409 msgid "Run touch on a file" msgstr "" #: v2v/v2v.ml:250 msgid "Run up to N instances of nbdcopy in parallel" msgstr "" #: open/open.ml:188 msgid "Running external command" msgstr "" #: common/mlcustomize/customize_run.ml:307 msgid "Running touch: %s" msgstr "" #. common/mlcustomize/customize_run.ml:159 #: common/mlcustomize/customize_run.ml:274 msgid "Running: %s" msgstr "" #. common/mlcustomize/customize_cmdline.ml:252 #: common/mlcustomize/customize_cmdline.ml:361 msgid "SCRIPT" msgstr "" #: common/mltools/tools_utils.ml:422 #: common/mlcustomize/customize_cmdline.ml:351 msgid "SELECTOR" msgstr "" #: common/mlcustomize/customize_run.ml:363 msgid "SELinux relabelling" msgstr "" #. common/mlcustomize/customize_cmdline.ml:214 #: common/mlcustomize/customize_cmdline.ml:328 msgid "SOURCE:DEST" msgstr "" #: common/mlcustomize/customize_run.ml:287 msgid "SSH key could not be injected for this type of guest" msgstr "" #: common/mlcustomize/customize_run.ml:284 msgid "SSH key inject: %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:374 msgid "Scrub a file" msgstr "" #: common/mlcustomize/customize_cmdline.ml:466 msgid "Scrub build log file" msgstr "" #: common/mlcustomize/customize_run.ml:374 msgid "Scrubbing the log file" msgstr "" #: common/mlcustomize/customize_run.ml:279 msgid "Scrubbing: %s" msgstr "" #: v2v/v2v.ml:208 msgid "Set bandwidth dynamically from file" msgstr "" #: v2v/v2v.ml:206 msgid "Set bandwidth to bits per sec" msgstr "" #. in-place/in_place.ml:172 #: v2v/v2v.ml:212 open/open.ml:76 inspector/inspector.ml:161 msgid "Set input mode (default: libvirt)" msgstr "" #: v2v/v2v.ml:228 inspector/inspector.ml:175 in-place/in_place.ml:184 msgid "Set memory size" msgstr "" #: v2v/v2v.ml:256 inspector/inspector.ml:185 in-place/in_place.ml:196 msgid "Set number of vCPUs" msgstr "" #. in-place/in_place.ml:178 #: v2v/v2v.ml:218 open/open.ml:82 inspector/inspector.ml:167 msgid "Set option for input mode" msgstr "" #: v2v/v2v.ml:242 msgid "Set option for output mode" msgstr "" #: v2v/v2v.ml:234 msgid "Set output allocation mode" msgstr "" #: v2v/v2v.ml:238 msgid "Set output format" msgstr "" #: v2v/v2v.ml:232 msgid "Set output mode (default: libvirt)" msgstr "" #: v2v/v2v.ml:246 msgid "Set output storage location" msgstr "" #: common/mlcustomize/customize_cmdline.ml:476 msgid "Set password crypto" msgstr "" #: common/mltools/tools_utils.ml:430 msgid "Set program name" msgstr "" #: common/mlcustomize/customize_cmdline.ml:356 msgid "Set root password" msgstr "" #: common/mlcustomize/customize_cmdline.ml:403 msgid "Set the default timezone" msgstr "" #: common/mlcustomize/customize_cmdline.ml:276 msgid "Set the hostname" msgstr "" #: inspector/inspector.ml:181 in-place/in_place.ml:188 msgid "Set the output filename" msgstr "" #: common/mlcustomize/customize_cmdline.ml:345 msgid "Set user password" msgstr "" #: common/mlcustomize/customize_run.ml:75 msgid "Setting a random seed" msgstr "" #: common/mlcustomize/customize_run.ml:354 msgid "Setting passwords" msgstr "" #: common/mlcustomize/password.ml:113 msgid "Setting random password of %s to %s" msgstr "" #: common/mlcustomize/customize_run.ml:207 msgid "Setting the hostname: %s" msgstr "" #: common/mlcustomize/customize_run.ml:90 msgid "Setting the machine ID in %s" msgstr "" #: common/mlcustomize/customize_run.ml:302 msgid "Setting the timezone: %s" msgstr "" #: v2v/v2v.ml:481 msgid "Setting up the destination: %s" msgstr "" #. in-place/in_place.ml:342 #: v2v/v2v.ml:457 open/open.ml:184 inspector/inspector.ml:310 msgid "Setting up the source: %s" msgstr "" #: v2v/v2v.ml:463 in-place/in_place.ml:348 msgid "Source guest information (--print-source option):\n" msgstr "" #: common/mltools/tools_utils.ml:422 msgid "Specify a LUKS key" msgstr "" #: common/mlcustomize/customize_cmdline.ml:392 msgid "TARFILE:REMOTEDIR" msgstr "" #: common/mlcustomize/customize_cmdline.ml:311 msgid "TARGET:LINK[:LINK..]" msgstr "" #: common/mlcustomize/customize_cmdline.ml:402 msgid "TIMEZONE" msgstr "" #: v2v/v2v.ml:200 msgid "" "The --in-place option has been replaced by the ‘virt-v2v-in-place’ program" msgstr "" #: output/output_qemu.ml:251 msgid "" "The Virt machine has no support for IDE. Please report a bug for virt-v2v -- " "refer to virt-v2v(1) section \"BUGS\"." msgstr "" #: output/output_qemu.ml:272 msgid "" "The Virt machine has no support for floppies. Please report a bug for virt-" "v2v -- refer to virt-v2v(1) section \"BUGS\"." msgstr "" #: lib/create_ovf.ml:785 msgid "" "This guest required a password for connection to its display, but this is " "not supported by oVirt. Therefore the converted guest’s display will not " "require a separate password to connect." msgstr "" #: input/input_vmx.ml:111 msgid "" "This transport does not support guests with snapshots. Either collapse the " "snapshots for this guest and try the conversion again, or use one of the " "alternate conversion methods described in virt-v2v-input-vmware(1) section " "\"NOTES\"." msgstr "" #: common/mlcustomize/customize_cmdline.ml:415 msgid "Truncate a file to zero size" msgstr "" #: common/mlcustomize/customize_run.ml:294 msgid "Truncating: %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:192 msgid "UID:GID:PATH" msgstr "" #: common/mlcustomize/customize_cmdline.ml:339 msgid "USER:SELECTOR" msgstr "" #: common/mlcustomize/customize_cmdline.ml:380 msgid "USER[:SELECTOR]" msgstr "" #: common/mlcustomize/customize_cmdline.ml:432 msgid "Uninstall package(s)" msgstr "" #: common/mlcustomize/customize_run.ml:311 msgid "Uninstalling packages: %s" msgstr "" #: common/mlcustomize/customize_run.ml:290 msgid "Unpack tar file: %s to %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:438 msgid "Update packages" msgstr "" #: common/mlcustomize/customize_run.ml:316 msgid "Updating packages" msgstr "" #: common/mlcustomize/customize_cmdline.ml:449 msgid "Upload local file to destination" msgstr "" #: common/mlcustomize/customize_run.ml:321 msgid "Uploading: %s to %s" msgstr "" #: common/mltools/tools_utils.ml:391 msgid "Use ANSI colour sequences even if not tty" msgstr "" #. in-place/in_place.ml:180 #: v2v/v2v.ml:220 open/open.ml:84 inspector/inspector.ml:169 msgid "Use password from file to connect to input hypervisor" msgstr "" #: v2v/v2v.ml:244 msgid "Use password from file to connect to output hypervisor" msgstr "" #: v2v/v2v.ml:224 msgid "Use virt-v2v-in-place instead" msgstr "" #: common/mltools/tools_utils.ml:392 msgid "Wrap log messages even if not tty" msgstr "" #: common/mlcustomize/customize_cmdline.ml:460 msgid "Write file" msgstr "" #: common/mlcustomize/customize_run.ml:346 msgid "Writing: %s" msgstr "" #: lib/YAML.ml:167 msgid "" "YAML block contains newline character. This should not happen, please " "report a bug against virt-v2v." msgstr "" #: output/output_libvirt.ml:96 msgid "" "a libvirt domain called ‘%s’ already exists on the target.\n" "\n" "If using virt-v2v directly, use the ‘-on’ option to select a different name. " "Or delete the existing domain on the target using the ‘virsh undefine’ " "command.\n" "\n" "If using virt-p2v, select a different ‘Name’ in the ‘Target properties’. Or " "delete the existing domain on the target using the ‘virsh undefine’ command." msgstr "" #: common/mlcustomize/append_line.ml:44 msgid "append_line: %s is not a file" msgstr "" #: input/input_libvirt.ml:206 msgid "" "bad checksum for disk %d/%d\n" "Expected checksum: %s\n" "Actual checksum: %s" msgstr "" #: lib/libvirt_utils.ml:59 msgid "cannot find libvirt domain ‘%s’: %s" msgstr "" #: lib/libvirt_utils.ml:96 msgid "" "cannot find libvirt pool ‘%s’: %s\n" "\n" "Use ‘virsh pool-list --all’ to list all available pools, and ‘virsh pool-" "dumpxml ’ to display details about a particular pool.\n" "\n" "To set the pool which virt-v2v uses, add the ‘-os ’ option." msgstr "" #: lib/libvirt_utils.ml:110 msgid "cannot find libvirt volume ‘%s’: %s" msgstr "" #: common/mlcustomize/firstboot.ml:235 msgid "" "cannot finish firstboot installation by running ‘%s’ because host cpu (%s) " "and guest arch (%s) are not compatible. The firstboot service may not run " "at boot." msgstr "" #: output/output_libvirt.ml:180 msgid "cannot get libvirt domain capabilities: %s" msgstr "" #: output/output_libvirt.ml:85 msgid "cannot get libvirt hypervisor capabilities: %s" msgstr "" #: v2v/v2v.ml:105 inspector/inspector.ml:95 in-place/in_place.ml:102 msgid "cannot parse --mac \"%s\" parameter" msgstr "" #: v2v/v2v.ml:129 inspector/inspector.ml:119 in-place/in_place.ml:126 msgid "cannot parse --mac ip %s: doesn’t look like “%s” is an IP address" msgstr "" #: v2v/v2v.ml:143 inspector/inspector.ml:133 in-place/in_place.ml:140 msgid "cannot parse --mac ip prefix length field as an integer: %s" msgstr "" #: common/mlcustomize/guest_packages.ml:29 msgid "" "cannot use ‘%s’ because no package manager has been detected for this guest " "OS.\n" "\n" "If this guest OS is a common one with ordinary package management then this " "may have been caused by a failure of libguestfs inspection.\n" "\n" "For OSes such as Windows that lack package management, this is not " "possible. Try using one of the ‘--firstboot*’ flags instead (described in " "the virt-customize(1) manual)." msgstr "" #: output/output_ovirt.ml:91 msgid "" "cannot write files to the NFS server as %d:%d, even though we appear to be " "running as root. This probably means the NFS client or idmapd is not " "configured properly.\n" "\n" "You will have to chown the files that virt-v2v creates after the run, " "otherwise oVirt will not be able to import the VM." msgstr "" #: output/output_ovirt.ml:99 msgid "" "cannot write files to the NFS server as %d:%d. You might want to stop virt-" "v2v (^C) and rerun it as root." msgstr "" #: common/mlcustomize/customize_cmdline.ml:508 msgid "command '%s' cannot be used in command files, see the man page" msgstr "" #: common/mlcustomize/customize_cmdline.ml:525 msgid "command '%s' not valid, see the man page" msgstr "" #: common/mldrivers/linux_bootloaders.ml:318 msgid "could not add grub2 serial console (ignored)" msgstr "" #: input/ssh.ml:52 msgid "" "could not copy the VMX file from the remote server, see earlier error " "messages" msgstr "" #: output/output_libvirt.ml:211 msgid "" "could not define libvirt domain: %s.\n" "The libvirt XML is still available in ‘%s’. Try running ‘virsh -c %s define " "%s’ yourself instead." msgstr "" #: common/mldrivers/linux_bootloaders.ml:221 msgid "could not determine a way to update the configuration of Grub2" msgstr "" #: input/input_vddk.ml:243 msgid "" "could not fetch thumbprint from the server, you mus use ‘-io vddk-" "thumbprint=XX:XX...’" msgstr "" #: common/mldrivers/linux_bootloaders.ml:376 msgid "could not find bootloader mount point (%s): %s" msgstr "" #: common/mldrivers/windows_drivers.ml:91 msgid "" "could not find registry entry " "HKEY_LOCAL_MACHINE\\SYSTEM\\DriverDatabase\\DeviceIds in this Windows " "guest. It may be either a very old or very new version of Windows that we " "cannot process." msgstr "" #: common/mlcustomize/firstboot.ml:232 msgid "" "could not finish firstboot installation by running ‘%s’ because the command " "failed: %s" msgstr "" #. input/input_vcenter_https.ml:94 #: input/select_input.ml:66 input/input_xen_ssh.ml:71 input/input_vddk.ml:151 msgid "could not parse '-ic %s'. Original error message was: %s" msgstr "" #: input/parse_libvirt_xml.ml:407 input/parse_libvirt_xml.ml:54 msgid "could not parse device name ‘%s’ from the source libvirt XML" msgstr "" #: input/OVF.ml:168 msgid "could not parse disk rasd:HostResource from OVF document" msgstr "" #: input/input_ova.ml:98 msgid "could not parse ovf:Name from OVF document" msgstr "" #: output/output_ovirt.ml:247 msgid "" "could not read the %s specified by the '-os %s' parameter on the command " "line. Is it really an OVirt %s? The original error is: %s" msgstr "" #: common/mldrivers/linux_bootloaders.ml:336 msgid "" "could not rebuild grub2 configuration file (%s). This may mean that grub " "output will not be sent to the serial port, but otherwise should be " "harmless. Original error message: %s" msgstr "" #: output/output_libvirt.ml:156 msgid "could not refresh libvirt pool ‘%s’: %s" msgstr "" #: common/mldrivers/linux_bootloaders.ml:320 msgid "could not remove grub2 serial console (ignored)" msgstr "" #: common/mltools/registry.ml:93 msgid "" "decode_utf16le: Windows UTF16-LE string contains non-7-bit characters. This " "is a bug in %s, please report it." msgstr "" #: common/mltools/registry.ml:87 msgid "" "decode_utf16le: Windows string does not appear to be in UTF16-LE encoding. " "This could be a bug in %s." msgstr "" #: common/mldrivers/linux_bootloaders.ml:126 msgid "didn't find grub entry for kernel %s" msgstr "" #: input/input_disk.ml:150 msgid "disks on the command line have mixed formats" msgstr "" #: input/parse_libvirt_xml.ml:194 msgid "display in the input libvirt XML was ignored" msgstr "" #: output/output_qemu.ml:147 msgid "don’t know how to convert UEFI guests for architecture %s" msgstr "" #: common/mldrivers/linux.ml:158 msgid "don’t know how to find file owner using %s" msgstr "" #: common/mldrivers/linux.ml:89 msgid "don’t know how to get list of files from package using %s" msgstr "" #: common/mltools/curl.ml:82 msgid "downloading %s" msgstr "" #: lib/networks.ml:84 msgid "" "duplicate --mac parameter. Duplicate mappings specified for MAC address %s." msgstr "" #: lib/networks.ml:102 msgid "" "duplicate -b/--bridge parameter. Duplicate mappings specified for bridge %s." msgstr "" #: lib/networks.ml:108 msgid "duplicate -b/--bridge parameter. Only one default mapping is allowed." msgstr "" #: lib/networks.ml:90 msgid "" "duplicate -n/--network parameter. Duplicate mappings specified for network " "%s." msgstr "" #: lib/networks.ml:96 msgid "duplicate -n/--network parameter. Only one default mapping is allowed." msgstr "" #: input/OVF.ml:143 msgid "error parsing disk fileRef" msgstr "" #: input/input_ova.ml:124 msgid "error uncompressing %s, see earlier error messages" msgstr "" #: input/OVA.ml:210 input/OVA.ml:112 msgid "error unpacking %s, see earlier error messages" msgstr "" #: common/mltools/tools_utils.ml:248 msgid "exception: %s" msgstr "" #: common/mltools/tools_utils.ml:455 msgid "exited with error %d" msgstr "" #: lib/utils.ml:34 msgid "exited with non-zero error code %d" msgstr "" #: input/input_disk.ml:147 msgid "expected >= 1 disk name on the command line" msgstr "" #: common/mltools/xpath_helpers.ml:36 msgid "" "expecting XML expression to return an integer (expression: %s, matching " "string: %s)" msgstr "" #: common/mltools/tools_utils.ml:440 msgid "external command" msgstr "" #: output/output_ovirt_upload.ml:265 msgid "failed server prechecks, see earlier errors" msgstr "" #: output/output_ovirt_upload.ml:507 msgid "failed to create virtual machine, see earlier errors" msgstr "" #: output/output_ovirt_upload.ml:479 msgid "failed to finalize the transfers, see earlier errors" msgstr "" #: common/mldrivers/linux_bootloaders.ml:208 msgid "failed to find grub2-mkconfig binary (but Grub2 was detected on guest)" msgstr "" #: input/OVA.ml:461 msgid "failed to parse line returned by tar: %S" msgstr "" #: output/output_ovirt_upload.ml:394 msgid "failed to start transfer, see earlier errors" msgstr "" #: output/output_ovirt_upload.ml:311 msgid "failed vmchecks, see earlier errors" msgstr "" #: common/mltools/tools_utils.ml:239 msgid "failure: %s" msgstr "" #: input/input_ova.ml:134 msgid "file ‘%s’ not found in the ova" msgstr "" #: common/mlcustomize/firstboot.ml:143 msgid "" "firstboot: unknown version for old firstboot.service file %s (md5=%s), it " "will not be removed" msgstr "" #: common/mltools/tools_utils.ml:258 msgid "generated by %s %s" msgstr "" #: output/create_libvirt_xml.ml:39 msgid "get_osinfo_id: unknown guest operating system: %s" msgstr "" #: output/output_glance.ml:66 msgid "" "glance: glance client is not installed or set up correctly. You may need to " "set environment variables or source a script to enable authentication. See " "preceding messages for details." msgstr "" #: output/output_glance.ml:139 msgid "glance: image upload to glance failed, see earlier errors" msgstr "" #: common/mlcustomize/firstboot.ml:386 common/mlcustomize/firstboot.ml:164 msgid "guest type %s is not supported" msgstr "" #: common/mlcustomize/firstboot.ml:413 msgid "guest type %s/%s is not supported" msgstr "" #: common/mltools/tools_utils.ml:749 msgid "" "host (%s/%s) and guest (%s/%s) are not compatible, so you cannot use command " "line options that involve running commands in the guest. Use --firstboot " "scripts instead." msgstr "" #: common/mlcustomize/customize_run.ml:209 msgid "hostname could not be set for this type of guest" msgstr "" #: common/mldrivers/linux_kernels.ml:342 msgid "ignoring kernel %s in bootloader, as it does not exist." msgstr "" #: output/output_vdsm.ml:160 msgid "image directory (%s) does not exist or is not a directory" msgstr "" #: input/parse_libvirt_xml.ml:81 msgid "in the libvirt XML metadata, is missing or empty" msgstr "" #: input/parse_libvirt_xml.ml:87 msgid "in the libvirt XML metadata, is missing or empty" msgstr "" #: input/input_vcenter_https.ml:52 input/input_libvirt.ml:107 msgid "in-place mode does not work with HTTP source" msgstr "" #: input/input_vddk.ml:146 msgid "in-place mode does not work with VDDK source" msgstr "" #: input/input_vmx.ml:43 msgid "in-place mode does not work with VMX source" msgstr "" #: input/input_xen_ssh.ml:50 msgid "in-place mode does not work with Xen over SSH source" msgstr "" #: output/output_kubevirt.ml:116 msgid "" "incorrect number of '-oo disk' parameters. This guest has %d disks, but the " "parameter was used %d times." msgstr "" #: input/input_xen_ssh.ml:119 msgid "" "input from xen over ssh does not support disks stored on remote block " "devices. See virt-v2v-input-xen(1) section \"Xen or ssh conversions from " "block devices\"." msgstr "" #. in-place/in_place.ml:397 #: v2v/v2v.ml:590 open/open.ml:238 inspector/inspector.ml:353 msgid "" "insufficient free space in the conversion server temporary directory %s " "(%s).\n" "\n" "Either free up space in that directory, or set the LIBGUESTFS_CACHEDIR " "environment variable to point to another directory with more than 1GB of " "free space.\n" "\n" "See also the virt-v2v(1) manual, section \"Minimum free space check in the " "host\"." msgstr "" #: common/mltools/tools_utils.ml:246 msgid "internal error: Not_found exception was thrown" msgstr "" #: common/mltools/tools_utils.ml:243 msgid "internal error: assertion failed at %s, line %d, char %d" msgstr "" #: common/mltools/tools_utils.ml:241 msgid "internal error: invalid argument: %s" msgstr "" #: common/mldrivers/linux.ml:128 msgid "internal error: is_file_owned: dpkg command returned no output" msgstr "" #: common/mldrivers/linux.ml:133 msgid "internal error: is_file_owned: unexpected output from dpkg command: %s" msgstr "" #: common/mldrivers/linux_bootloaders.ml:130 msgid "internal error: regular expression did not match ‘%s’" msgstr "" #: v2v/v2v.ml:548 msgid "internal error: wait returned unexpected process ID %d status \"%s\"" msgstr "" #: v2v/v2v.ml:114 inspector/inspector.ml:104 in-place/in_place.ml:111 msgid "invalid --mac ip option" msgstr "" #: v2v/v2v.ml:98 inspector/inspector.ml:88 in-place/in_place.ml:95 msgid "invalid -b/--bridge parameter" msgstr "" #: v2v/v2v.ml:90 inspector/inspector.ml:80 in-place/in_place.ml:87 msgid "invalid -n/--network parameter" msgstr "" #: input/parse_domain_from_vmx.ml:402 msgid "invalid cpuid.coresPerSocket < number of vCPUs" msgstr "" #. common/mlcustomize/customize_cmdline.ml:153 #. common/mlcustomize/customize_cmdline.ml:145 #: common/mlcustomize/customize_cmdline.ml:161 msgid "invalid format for '--%s' parameter, see the man page" msgstr "" #: common/mltools/tools_utils.ml:359 msgid "invalid format string for --machine-readable: %s" msgstr "" #: lib/utils.ml:279 msgid "invalid input filename (%s)" msgstr "" #: input/OVA.ml:445 msgid "invalid offset returned by tar: %S" msgstr "" #: common/mltools/tools_utils.ml:374 msgid "invalid output fd for --machine-readable: %s" msgstr "" #: common/mltools/tools_utils.ml:376 msgid "invalid output for --machine-readable: %s" msgstr "" #: common/mltools/tools_utils.ml:368 msgid "invalid output stream for --machine-readable: %s" msgstr "" #: common/mlcustomize/password.ml:73 msgid "invalid password selector ‘%s’; see the man page" msgstr "" #: input/OVA.ml:450 msgid "invalid size returned by tar: %S" msgstr "" #: common/mlcustomize/ssh_key.ml:45 msgid "invalid ssh-inject selector ‘%s’; see the man page" msgstr "" #: input/OVF.ml:82 msgid "invalid vmw:CoresPerSocket (%d) ignored" msgstr "" #: input/OVF.ml:88 msgid "invalid vmw:CoresPerSocket < number of cores" msgstr "" #: common/mldrivers/linux_bootloaders.ml:114 msgid "kernel %s is not under grub tree %s" msgstr "" #: common/mltools/tools_utils.ml:539 common/mltools/tools_utils.ml:458 msgid "killed by signal %d" msgstr "" #: common/mltools/tools_utils.ml:237 msgid "libguestfs error: %s" msgstr "" #: lib/libvirt_utils.ml:72 msgid "" "libvirt domain ‘%s’ is running or paused. Converting a live guest will " "result in corrupted output. However this is safe if you're converting from a " "snapshot" msgstr "" #: common/mlcustomize/customize_run.ml:47 msgid "log file %s: %s (ignored)" msgstr "" #: input/OVA.ml:147 msgid "" "making OVA directory public readable to work around libvirt bug https://" "bugzilla.redhat.com/1045069" msgstr "" #: input/input_ova.ml:86 msgid "manifest has a checksum for non-existent file %s (ignored)" msgstr "" #: common/mlcustomize/customize_cmdline.ml:472 msgid "md5|sha256|sha512" msgstr "" #: common/mlcustomize/customize_run.ml:119 msgid "method '%s' is no longer supported" msgstr "" #: common/mltools/JSON_parser.ml:39 msgid "missing value for the key ‘%s’" msgstr "" #: input/OVA.ml:276 msgid "more than one .ovf file was found in %s" msgstr "" #: common/mltools/JSON_parser.ml:34 msgid "more than value for the key ‘%s’" msgstr "" #: output/output_ovirt.ml:222 msgid "" "mount command failed, see earlier errors.\n" "\n" "This probably means you didn't specify the right %s path [-os %s], or else " "you need to rerun virt-v2v as root." msgstr "" #: common/mlcustomize/customize_run.ml:103 msgid "" "multiple --root-password/--password options set the password for user ‘%s’ " "twice" msgstr "" #: input/input_vddk.ml:319 msgid "" "nbdkit VDDK plugin is not installed or not working. It is required if you " "want to use VDDK.\n" "\n" "It 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 ’/%s/libvixDiskLib.so.?’.\n" "\n" "See also the virt-v2v-input-vmware(1) manual." msgstr "" #: input/input_vddk.ml:313 msgid "" "nbdkit VDDK plugin is not installed or not working. It is required if you " "want to use VDDK.\n" "\n" "The 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" "\n" "See also the virt-v2v-input-vmware(1) manual." msgstr "" #: lib/nbdkit.ml:223 msgid "nbdkit did not start up. See previous debugging messages for problems." msgstr "" #: lib/nbdkit.ml:225 msgid "" "nbdkit did not start up. There may be errors printed by nbdkit above.\n" "\n" "If the messages above are not sufficient to diagnose the problem then add " "the ‘virt-v2v -v -x’ options and examine the debugging output carefully." msgstr "" #: input/nbdkit_ssh.ml:36 input/nbdkit_curl.ml:32 input/input_vddk.ml:283 msgid "nbdkit is not installed or not working" msgstr "" #: input/input_disk.ml:92 msgid "" "nbdkit is not installed or not working. It is required to use ‘-i disk’." msgstr "" #: input/input_libvirt.ml:68 msgid "" "nbdkit is not installed or not working. It is required to use ‘-i libvirt|" "libvirtxml’." msgstr "" #: output/output.ml:178 output/output.ml:77 msgid "" "nbdkit is not installed or not working. It is required to use ‘-o disk’." msgstr "" #: output/output_null.ml:57 msgid "" "nbdkit is not installed or not working. It is required to use ‘-o null’." msgstr "" #: output/output_ovirt_upload.ml:163 msgid "" "nbdkit is not installed or not working. It is required to use ‘-o ovirt-" "upload’. See the virt-v2v-output-ovirt(1) manual." msgstr "" #: input/input_vddk.ml:285 msgid "nbdkit must be >= 1.45.11 for input from VDDK" msgstr "" #: output/output_ovirt_upload.ml:176 msgid "" "nbdkit python plugin is not installed or not working. It is required if you " "want to use ‘-o ovirt-upload’.\n" "\n" "See also the virt-v2v-output-ovirt(1) manual." msgstr "" #: output/output_ovirt_upload.ml:190 msgid "" "nbdkit was compiled without SELinux support. You will have to recompile " "nbdkit with libselinux-devel installed, or else set SELinux to Permissive " "mode while doing the conversion." msgstr "" #. input/input_libvirt.ml:76 #. input/input_disk.ml:98 #: input/nbdkit_ssh.ml:42 input/nbdkit_curl.ml:38 input/input_vddk.ml:289 msgid "nbdkit-cow-filter is not installed or not working" msgstr "" #: input/nbdkit_curl.ml:35 msgid "nbdkit-curl-plugin is not installed" msgstr "" #. input/input_disk.ml:96 #: output/output.ml:181 output/output.ml:80 input/input_libvirt.ml:72 msgid "nbdkit-file-plugin is not installed or not working" msgstr "" #: input/input_libvirt.ml:74 msgid "nbdkit-nbd-plugin is not installed or not working" msgstr "" #: output/output_null.ml:60 msgid "nbdkit-null-plugin is not installed or not working" msgstr "" #: input/nbdkit_ssh.ml:39 msgid "nbdkit-ssh-plugin is not installed" msgstr "" #: input/input_vddk.ml:287 msgid "nbdkit-vddk-plugin is not installed" msgstr "" #: lib/nbdkit.ml:56 msgid "nbdkit: unexpected version in --dump-config: %s" msgstr "" #. input/input_vcenter_https.ml:49 #. input/input_ova.ml:46 #. input/input_libvirt.ml:35 #. input/input_disk.ml:39 #: input/input_xen_ssh.ml:47 input/input_vmx.ml:40 msgid "no -io (input options) are allowed here" msgstr "" #: output/output_ovirt.ml:44 output/output_null.ml:42 #: output/output_glance.ml:44 msgid "no -oo (output options) are allowed here" msgstr "" #: input/OVA.ml:273 msgid "no .ovf file was found in %s" msgstr "" #: common/mldrivers/linux_bootloaders.ml:402 msgid "no bootloader detected" msgstr "" #: input/parse_domain_from_vmx.ml:359 msgid "no displayName key found in VMX file" msgstr "" #: input/OVF.ml:148 msgid "no href in ovf:File (id=%s)" msgstr "" #: common/mldrivers/linux_kernels.ml:194 msgid "no initrd was found in /boot matching %s %s." msgstr "" #: common/mldrivers/linux_kernels.ml:317 msgid "" "no installed kernel packages were found.\n" "\n" "This probably indicates that %s was unable to inspect this guest properly." msgstr "" #: common/mldrivers/linux_kernels.ml:354 msgid "" "no kernels were found in the bootloader configuration.\n" "\n" "This probably indicates that %s was unable to parse the bootloader " "configuration of this guest." msgstr "" #: output/python_script.ml:55 msgid "no python binary called ‘%s’ can be found on the $PATH" msgstr "" #: input/select_input.ml:106 msgid "" "no support for remote libvirt connections to '-ic %s'. The conversion may " "fail when it tries to read the source disks." msgstr "" #: lib/create_ovf.ml:1027 msgid "" "oVirt cannot emulate ‘%s’ sound cards. This sound card will be dropped from " "the output." msgstr "" #: lib/create_ovf.ml:875 lib/create_ovf.ml:512 msgid "oVirt does not support the output format ‘%s’, only raw or qcow2" msgstr "" #: output/output_openstack.ml:120 msgid "openstack: -oo server-id= not present" msgstr "" #: output/output_openstack.ml:338 msgid "" "openstack: failed to attach cinder volume to VM, see earlier error messages" msgstr "" #: output/output_openstack.ml:291 msgid "openstack: failed to create a cinder volume, see earlier error messages" msgstr "" #: output/output_openstack.ml:304 msgid "" "openstack: failed to query cinder volume status, see earlier error messages" msgstr "" #: output/output_openstack.ml:442 msgid "" "openstack: failed to set image properties on cinder volume, see earlier " "error messages" msgstr "" #: output/output_openstack.ml:199 msgid "" "openstack: precheck failed, there may be a problem with authentication, see " "earlier error messages" msgstr "" #: output/output_openstack.ml:311 msgid "" "openstack: unknown volume status \"%s\": expected \"creating\" or " "\"available\"" msgstr "" #: output/output.ml:133 msgid "output mode only supports raw or qcow2 format (format: %s)" msgstr "" #: input/OVF.ml:263 msgid "" "ova disk has an unknown VMware controller type (%d), please report this as a " "bug supplying the *.ovf file extracted from the ova" msgstr "" #: input/OVF.ml:259 msgid "" "ova disk has no parent controller, please report this as a bug supplying the " "*.ovf file extracted from the ova" msgstr "" #: output/output_ovirt_upload.ml:367 msgid "" "ovirt-upload: -of %s: Only output format ‘raw’ or ‘qcow2’ is supported. If " "the input is in a different format then force one of these output formats by " "adding either ‘-of raw’ or ‘-of qcow2’ on the command line." msgstr "" #: common/mlcustomize/password.ml:51 msgid "" "password-crypto: unknown algorithm %s, use \"md5\", \"sha256\", \"sha512\" " "or \"yescrypt\"" msgstr "" #: common/mlcustomize/password.ml:197 msgid "" "password: using insecure md5 password encryption for guest of type %s " "version %d.%d.\n" "If this is incorrect, use --password-crypto option and file a bug." msgstr "" #: common/mlcustomize/customize_run.ml:359 msgid "passwords could not be set for this type of guest" msgstr "" #: lib/qemuNBD.ml:125 msgid "" "qemu-nbd did not start up. See previous debugging messages for problems." msgstr "" #: lib/qemuNBD.ml:127 msgid "" "qemu-nbd did not start up. There may be errors printed by qemu-nbd above.\n" "\n" "If the messages above are not sufficient to diagnose the problem then add " "the ‘virt-v2v -v -x’ options and examine the debugging output carefully." msgstr "" #: lib/qemuNBD.ml:47 msgid "qemu-nbd: unexpected version in --version: %s" msgstr "" #: common/mlcustomize/customize_run.ml:77 msgid "random seed could not be set for this type of guest" msgstr "" #: input/parse_domain_from_vmx.ml:44 msgid "remote vmx ‘%s’ could not be parsed as a URI" msgstr "" #. common/mlcustomize/inject_virtio_win.ml:357 #. common/mlcustomize/inject_virtio_win.ml:352 #: common/mlcustomize/inject_virtio_win.ml:362 msgid "" "root directory ‘/’ is missing from the virtio-win directory or ISO.\n" "\n" "This should not happen and may indicate that virtio-win or virt-v2v is " "broken in some way. Please report this as a bug with a full debug log." msgstr "" #: common/mltools/tools_utils.ml:417 common/options/keys.c:264 #, c-format msgid "selector '%s': invalid TYPE" msgstr "" #: common/mltools/tools_utils.ml:409 common/options/keys.c:254 #, c-format msgid "selector '%s': missing FILENAME, or too many fields" msgstr "" #: common/mltools/tools_utils.ml:399 common/options/keys.c:232 #, c-format msgid "selector '%s': missing ID" msgstr "" #: common/mltools/tools_utils.ml:404 common/options/keys.c:245 #, c-format msgid "selector '%s': missing KEY_STRING, or too many fields" msgstr "" #: common/mltools/tools_utils.ml:401 common/options/keys.c:239 #, c-format msgid "selector '%s': missing TYPE" msgstr "" #: common/mltools/tools_utils.ml:413 common/options/keys.c:262 #, c-format msgid "selector '%s': too many fields" msgstr "" #: lib/utils.ml:35 msgid "signalled by signal %d" msgstr "" #: common/mlcustomize/guest_packages.ml:40 msgid "" "sorry, ‘%s’ with the ‘%s’ package manager has not been implemented yet.\n" "\n" "You can work around this by using one of the ‘--run*’ or ‘--firstboot*’ " "options instead (described in the virt-customize(1) manual)." msgstr "" #: common/mlcustomize/ssh_key.ml:57 msgid "ssh-inject: $HOME environment variable is not set" msgstr "" #: common/mlcustomize/ssh_key.ml:93 msgid "ssh-inject: key is an empty string" msgstr "" #: common/mlcustomize/ssh_key.ml:66 msgid "ssh-inject: no public key file found in %s" msgstr "" #: common/mlcustomize/ssh_key.ml:83 msgid "ssh-inject: public key file (%s) is empty" msgstr "" #: common/mlcustomize/ssh_key.ml:112 msgid "ssh-inject: the user %s does not exist on the guest" msgstr "" #. common/mltools/tools_utils.ml:461 #: lib/utils.ml:36 common/mltools/tools_utils.ml:542 msgid "stopped by signal %d" msgstr "" #: output/changeuid.ml:58 msgid "subprocess exited with non-zero error code %d" msgstr "" #: output/changeuid.ml:60 msgid "subprocess signalled or stopped by signal %d" msgstr "" #: lib/utils.ml:33 msgid "success" msgstr "" #: output/create_libvirt_xml.ml:297 msgid "" "target hypervisor does not support floppy devices, but floppy devices were " "found in the source guest" msgstr "" #: output/output_ovirt_upload.ml:156 msgid "" "the Python module ‘ovirtsdk4’ could not be loaded, is it installed? See " "previous messages for problems." msgstr "" #: output/output_ovirt_upload.ml:453 msgid "the cluster ‘%s’ does not support the architecture %s but %s" msgstr "" #: common/mlcustomize/customize_run.ml:59 msgid "" "the command may have failed because the network is disabled. Try either " "removing ‘--no-network’ or adding ‘--network’ on the command line." msgstr "" #: common/mltools/JSON_parser.ml:84 msgid "the key ‘%s’ was not found in a list of objects" msgstr "" #: output/output_ovirt_upload.ml:288 msgid "" "the number of ‘-oo ovirt-disk-uuid’ parameters passed on the command line " "has to match the number of guest disk images (for this guest: %d)" msgstr "" #: output/output_vdsm.ml:133 msgid "" "the number of ‘-oo vdsm-image-uuid’ and ‘-oo vdsm-vol-uuid’ parameters " "passed on the command line has to match the number of guest disk images (for " "this guest: %d)" msgstr "" #: output/output_libvirt.ml:239 msgid "the target hypervisor does not support a %s KVM guest" msgstr "" #: common/mltools/JSON_parser.ml:78 msgid "the value for key ‘%s’ is not a string as expected" msgstr "" #: common/mltools/JSON_parser.ml:50 msgid "the value for the key ‘%s’ is not a bool" msgstr "" #: common/mltools/JSON_parser.ml:45 msgid "the value for the key ‘%s’ is not a string" msgstr "" #: common/mltools/JSON_parser.ml:70 msgid "the value for the key ‘%s’ is not an integer" msgstr "" #: common/mltools/JSON_parser.ml:55 msgid "the value for the key ‘%s’ is not an object" msgstr "" #: common/mltools/JSON_parser.ml:59 msgid "the value is not an object" msgstr "" #: common/mltools/JSON_parser.ml:35 msgid "the value of the key ‘%s’ is not an object" msgstr "" #: lib/create_ovf.ml:519 msgid "" "the virtual size of the input disk %d is not an exact multiple of 512 " "bytes. The virtual size is: %Ld.\n" "\n" "This probably means something unexpected is going on, so please file a bug " "about this issue." msgstr "" #: output/output_openstack.ml:144 msgid "" "the ‘%s’ program is not available. It is needed to communicate with " "OpenStack." msgstr "" #: output/output_ovirt.ml:265 msgid "" "there are multiple UUIDs in the %s (%s). This is unexpected, and may be a " "bug in virt-v2v or OVirt." msgstr "" #: output/output_ovirt.ml:262 msgid "there are no UUIDs in the %s (%s). Is it really an OVirt %s?" msgstr "" #: common/mlcustomize/inject_virtio_win.ml:153 msgid "" "there are no virtio drivers available for this version of Windows (%d.%d %s " "%s %s). virt-v2v looks for drivers in %s\n" "\n" "The guest will be configured to use slower emulated devices." msgstr "" #: common/mlcustomize/inject_virtio_win.ml:175 msgid "" "there is no virtio block device driver for this version of Windows (%d.%d " "%s). virt-v2v looks for this driver in %s\n" "\n" "The guest will be configured to use a slower emulated device." msgstr "" #: common/mlcustomize/inject_virtio_win.ml:206 msgid "" "there is no virtio network driver for this version of Windows (%d.%d %s). " "virt-v2v looks for this driver in %s\n" "\n" "The guest will be configured to use a slower emulated device." msgstr "" #: input/parse_libvirt_xml.ml:545 msgid "this guest has a direct network interface which will be ignored" msgid_plural "this guest has direct network interfaces which will be ignored" msgstr[0] "" msgstr[1] "" #: input/parse_libvirt_xml.ml:527 msgid "this guest has a passthrough host device which will be ignored" msgid_plural "this guest has passthrough host devices which will be ignored" msgstr[0] "" msgstr[1] "" #: input/parse_libvirt_xml.ml:248 msgid "this guest has no non-removable disks" msgstr "" #: output/output.ml:65 msgid "this output module doesn't support copying more than %d disks" msgstr "" #: common/mlcustomize/timezone.ml:35 msgid "timezone '%s' does not exist, use a location like 'Europe/London'" msgstr "" #: common/mlcustomize/customize_run.ml:304 msgid "timezone could not be set for this type of guest" msgstr "" #: input/OVA.ml:318 msgid "unable to parse line from manifest file: %S" msgstr "" #: common/mltools/urandom.ml:37 msgid "unexpected end of file while reading /dev/urandom" msgstr "" #: input/input_libvirt.ml:196 msgid "unexpected output from the %s command" msgstr "" #: common/mltools/checksums.ml:58 msgid "unhandled checksum type ‘%s’" msgstr "" #: lib/types.ml:524 msgid "unknown --root option: %s" msgstr "" #: input/select_input.ml:51 msgid "unknown -i option: %s" msgstr "" #: output/select_output.ml:74 msgid "unknown -o option: %s" msgstr "" #: v2v/v2v.ml:164 msgid "unknown -oa option: %s" msgstr "" #: input/input_libvirt.ml:189 msgid "unknown method='%s'" msgstr "" #: input/OVF.ml:103 msgid "unknown Config:firmware value %s (expected \"bios\" or \"efi\")" msgstr "" #: lib/create_ovf.ml:446 lib/create_ovf.ml:247 msgid "unknown Windows 10 variant: %s (%s)" msgstr "" #: v2v/v2v.ml:319 in-place/in_place.ml:256 msgid "unknown block driver ‘--block-driver %s’" msgstr "" #: input/parse_domain_from_vmx.ml:415 msgid "unknown firmware value '%s', assuming BIOS" msgstr "" #: lib/create_ovf.ml:454 lib/create_ovf.ml:255 msgid "unknown guest operating system: %s %s %d.%d %s (%s)" msgstr "" #: v2v/v2v.ml:329 open/open.ml:132 inspector/inspector.ml:238 msgid "unknown input transport ‘-it %s’" msgstr "" #: input/parse_domain_from_vmx.ml:428 msgid "unknown sound device '%s' ignored" msgstr "" #: input/parse_libvirt_xml.ml:215 msgid "unknown sound model %s ignored" msgstr "" #: input/OVF.ml:156 msgid "unsupported compression in OVF: %s" msgstr "" #: input/input_vcenter_https.ml:123 msgid "" "vcenter: was not found in the XML. You need to " "upgrade to libvirt ≥ 1.2.20." msgstr "" #: input/vCenter.ml:79 msgid "vcenter: URL not found: %s" msgstr "" #: input/vCenter.ml:70 msgid "vcenter: incorrect username or password" msgstr "" #: input/vCenter.ml:72 msgid "" "vcenter: incorrect username or password. You might need to specify the " "username in the URI like this: [vpx|esx|..]://USERNAME@[etc]" msgstr "" #: input/vCenter.ml:84 msgid "vcenter: invalid response from server: %s" msgstr "" #: input/vCenter.ml:194 msgid "vcenter: no status code in output of ‘curl’ command." msgstr "" #: output/output_vdsm.ml:148 msgid "vdsm: invalid -os parameter does not contain a valid UUID: %s" msgstr "" #: output/output_openstack.ml:56 msgid "" "virt-v2v -oo server-id= [os-*=...]\n" "\n" "Specify the name or UUID of the conversion appliance using\n" "\n" " virt-v2v ... -o openstack -oo server-id=\n" "\n" "When virt-v2v runs it will attach the Cinder volumes to the\n" "conversion appliance, so this name or UUID must be the name\n" "of the virtual machine on OpenStack where virt-v2v is running.\n" "\n" "In addition, all usual OpenStack “os-*” parameters or “OS_*”\n" "environment variables can be used.\n" "\n" "Openstack “--os-*” parameters must be written as “virt-v2v -oo os-*”.\n" "\n" "For example:\n" "\n" " virt-v2v -oo os-username=\n" "\n" " equivalent to openstack: --os-username=\n" " or the environment variable: OS_USERNAME=\n" "\n" " virt-v2v -oo os-project-name=\n" "\n" " equivalent to openstack: --os-project-name=\n" " or the environment variable: OS_PROJECT_NAME=\n" "\n" "The os-* parameters and environment variables are optional.\n" msgstr "" #: input/parse_libvirt_xml.ml:189 msgid "" "virt-v2v does not support local displays, so in the " "input libvirt XML was ignored" msgstr "" #: input/select_input.ml:83 msgid "virt-v2v-in-place does not support remote libvirt URIs" msgstr "" #: input/parse_domain_from_vmx.ml:50 msgid "vmx URI path component looks incorrect" msgstr "" #: input/parse_domain_from_vmx.ml:48 msgid "vmx URI remote server name omitted" msgstr "" #: input/parse_domain_from_vmx.ml:46 msgid "vmx URI start with ‘ssh://...’" msgstr "" #: input/VMX.ml:313 msgid "vmx parser: cannot parse this line, ignoring: %s" msgstr "" #: input/VMX.ml:346 msgid "vmx parser: duplicate key '%s' ignored" msgstr "" #: output/output_openstack.ml:299 msgid "wait for cinder volume status to change to \"available\"" msgstr "" #: output/output_openstack.ml:360 msgid "waiting for cinder volume %s to attach to the conversion appliance" msgstr "" #: open/open.ml:136 msgid "you must supply the --run parameter" msgstr "" #: input/input_xen_ssh.ml:87 input/input_vddk.ml:189 msgid "‘-ic %s’ URL does not contain a host name field" msgstr "" #: input/input_vddk.ml:273 msgid "‘-io vddk-file=’ must be used exactly %d times" msgstr "" #: input/input_vddk.ml:297 msgid "" "‘-io vddk-libdir=%s’ does not point to a directory. See the virt-v2v-input-" "vmware(1) manual." msgstr "" #: output/output.ml:85 msgid "" "‘-oo compressed’ is only allowed when the output format is a local qcow2-" "format file, i.e. ‘-of qcow2’" msgstr "" #: input/input_vddk.ml:232 msgid "" "‘openssl’ command not found: automatically detecting thumbprint is not " "possible, so you must use ‘-io vddk-thumbprint=XX:XX...’" msgstr "" #: common/mltools/getopt-c.c:68 #, c-format msgid "Try ‘%s --help’ or consult %s(1) for more information.\n" msgstr "" #: common/mltools/getopt-c.c:187 #, c-format msgid "%s: ‘%s’ is not a numeric value.\n" msgstr "" #: common/mltools/getopt-c.c:193 #, c-format msgid "%s: %s: integer out of range\n" msgstr "" #: common/mltools/getopt-c.c:383 #, c-format msgid "%s: ‘%s’ is not allowed for -%c; allowed values are:\n" msgstr "" #: common/mltools/getopt-c.c:386 #, c-format msgid "%s: ‘%s’ is not allowed for %s%s; allowed values are:\n" msgstr "" #: common/mltools/getopt-c.c:421 #, c-format msgid "Extra parameter on the command line: ‘%s’.\n" msgstr "" #: common/options/config.c:72 #, c-format msgid "%s: line %d: error parsing configuration file: %s" msgstr "" #: common/options/decrypt.c:52 #, c-format msgid "string size overflow" msgstr "" #: common/options/decrypt.c:170 #, c-format msgid "" "'clevis_luks_unlock', needed for decrypting %s, is unavailable in this " "libguestfs version" msgstr "" #: common/options/decrypt.c:184 #, c-format msgid "" "could not find key to open LUKS encrypted %s.\n" "\n" "Try using --key on the command line.\n" "\n" "Original error: %s (%d)" msgstr "" #: common/options/inspect.c:78 #, c-format msgid "" "%s: no operating system was found on this disk\n" "\n" "If using guestfish ‘-i’ option, remove this option and instead\n" "use the commands ‘run’ followed by ‘list-filesystems’.\n" "You can then mount filesystems you want by hand using the\n" "‘mount’ or ‘mount-ro’ command.\n" "\n" "If using guestmount ‘-i’, remove this option and choose the\n" "filesystem(s) you want to see by manually adding ‘-m’ option(s).\n" "Use ‘virt-filesystems’ to see what filesystems are available.\n" "\n" "If using other virt tools, this disk image won’t work\n" "with these tools. Use the guestfish equivalent commands\n" "(see the virt tool manual page).\n" msgstr "" #: common/options/inspect.c:99 #, c-format msgid "" "%s: multi-boot operating systems are not supported\n" "\n" "If using guestfish ‘-i’ option, remove this option and instead\n" "use the commands ‘run’ followed by ‘list-filesystems’.\n" "You can then mount filesystems you want by hand using the\n" "‘mount’ or ‘mount-ro’ command.\n" "\n" "If using guestmount ‘-i’, remove this option and choose the\n" "filesystem(s) you want to see by manually adding ‘-m’ option(s).\n" "Use ‘virt-filesystems’ to see what filesystems are available.\n" "\n" "If using other virt tools, multi-boot operating systems won’t work\n" "with these tools. Use the guestfish equivalent commands\n" "(see the virt tool manual page).\n" msgstr "" #: common/options/inspect.c:161 #, c-format msgid "%s: some filesystems could not be mounted (ignored)\n" msgstr "" #: common/options/inspect.c:178 #, c-format msgid "Operating system: %s\n" msgstr "" #: common/options/inspect.c:196 #, c-format msgid "%s mounted on %s\n" msgstr "" #: common/options/keys.c:63 #, c-format msgid "Enter key or passphrase (\"%s\"): " msgstr "" #: common/options/keys.c:146 #, c-format msgid "size_t overflow" msgstr "" #: common/options/keys.c:193 #, c-format msgid "could not read key from user" msgstr "" #: common/options/options.c:283 #, c-format msgid "%s: ‘%s’ could not be mounted.\n" msgstr "" #: common/options/options.c:287 #, c-format msgid "" "%s: Check mount(8) man page to ensure options ‘%s’\n" "%s: are supported by the filesystem that is being mounted.\n" msgstr "" #: common/options/options.c:291 #, c-format msgid "%s: Did you mean to mount one of these filesystems?\n" msgstr "" #: common/options/options.c:304 #, c-format msgid "cannot determine the subvolume for %s: %s (%d)" msgstr "" #: common/options/uri.c:119 #, c-format msgid "%s: --add: could not parse URI ‘%s’\n" msgstr "" #: common/options/uri.c:130 #, c-format msgid "%s: %s: scheme of URI is NULL or empty\n" msgstr "" #: common/options/uri.c:138 #, c-format msgid "%s: %s: cannot have both a server name and a socket query parameter\n" msgstr "" #: common/utils/utils.c:107 #, c-format msgid "%s exited successfully" msgstr "" #: common/utils/utils.c:110 #, c-format msgid "%s exited with error status %d" msgstr "" #: common/utils/utils.c:114 #, c-format msgid "%s killed by signal %d (%s)" msgstr "" #: common/utils/utils.c:118 #, c-format msgid "%s stopped by signal %d (%s)" msgstr "" #: common/utils/utils.c:122 #, c-format msgid "%s exited for an unknown reason (status %d)" msgstr "" ================================================ FILE: po/es.po ================================================ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR Red Hat Inc. # This file is distributed under the same license as the PACKAGE package. # # Translators: # Daniel Cabrera , 2011 # Hugo Jiménez Hernández , 2011 # rjones , 2011 # Alex Puchades , 2015. #zanata msgid "" msgstr "" "Project-Id-Version: libguestfs 1.39.12\n" "Report-Msgid-Bugs-To: https://bugzilla.redhat.com/" "enter_bug.cgi?component=libguestfs&product=Virtualization+Tools\n" "POT-Creation-Date: 2025-02-16 17:05+0000\n" "PO-Revision-Date: 2026-04-20 10:59+0000\n" "Last-Translator: \"Fco. Javier F. Serrador\" \n" "Language-Team: Spanish \n" "Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Weblate 5.17\n" #: input/input_ova.ml:135 common/mltools/tools_utils.ml:235 msgid "%s" msgstr "%s" #: common/mltools/getopt.ml:73 msgid "" "%s\n" "Options:\n" msgstr "" "%s\n" "Opciones:\n" #: common/mltools/tools_utils.ml:695 common/mlcustomize/customize_run.ml:390 msgid "%s (ignored)" msgstr "%s (descartado)" #: common/mltools/checksums.ml:71 msgid "%s did not return any output" msgstr "%s no devolvió ninguna salida" #: common/mlcustomize/customize_run.ml:183 msgid "%s does not exist in the guest" msgstr "%s no existe en el invitado" #: output/output_ovirt.ml:275 msgid "" "%s does not exist or is not a directory.\n" "\n" "Most likely cause: Either the %s (%s) has not been attached to any Data " "Center, or the path %s is not an %s at all.\n" "\n" "You have to attach the %s to a Data Center using the oVirt user interface " "first.\n" "\n" "If you don’t know what the %s mount point should be then you can also find " "this out through the oVirt user interface." msgstr "" "%s no existe o no es un directorio.\n" "\n" "Causa más probable: %s (%s) no se ha conectado a ningún centro de datos, o " "la ruta %s no es un directorio %s.\n" "\n" "Primero debe conectar %s a un centro de datos mediante la interfaz de " "usuario de oVirt.\n" "\n" "Si desconoce cuál debería ser el punto de montaje de %s, también puede " "averiguarlo a través de la interfaz de usuario de oVirt." #: common/mlcustomize/customize_run.ml:113 msgid "%s ignored for non-Windows guest" msgstr "%s se hace caso omiso para invitados distintos de Windows" #: common/mlcustomize/customize_run.ml:186 msgid "%s is not a regular file in the guest" msgstr "%s no es un archivo común dentro del invitado" #. open/open.ml:39 #. inspector/inspector.ml:153 #. inspector/inspector.ml:40 #. in-place/in_place.ml:164 #. in-place/in_place.ml:45 #: v2v/v2v.ml:194 v2v/v2v.ml:183 v2v/v2v.ml:159 v2v/v2v.ml:44 open/open.ml:68 msgid "%s option used more than once on the command line" msgstr "%s opción utilizada más de una vez en la línea de comando" #: common/mltools/tools_utils.ml:231 common/mltools/tools_utils.ml:202 msgid "%s: %s" msgstr "%s: %s" #: common/mltools/tools_utils.ml:233 msgid "%s: %s: %s" msgstr "%s: %s: %s" #: common/mltools/on_exit.ml:77 msgid "" "%s: Exiting on signal %s\n" "%!" msgstr "" "%s: Saliendo con señal %s\n" "%!" #: common/mlcustomize/inject_virtio_win.ml:411 msgid "%s: cannot open virtio-win ISO file: %s" msgstr "%s: no se puede abrir el archivo ISO virtio-win: %s" #: common/mlcustomize/customize_run.ml:64 msgid "%s: command exited with an error" msgstr "%s: comando terminado con un error" #: v2v/v2v.ml:277 msgid "" "%s: convert a guest to use KVM\n" "\n" "virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi -os imported " "esx_guest\n" "\n" "virt-v2v -i libvirtxml guest-domain.xml -o local -os /var/tmp\n" "\n" "virt-v2v -i disk disk.img -o local -os /var/tmp\n" "\n" "There is a companion front-end called \"virt-p2v\" which comes as an\n" "ISO or CD image that can be booted on physical machines.\n" "\n" "A short summary of the options is given below. For detailed help please\n" "read the man page virt-v2v(1).\n" msgstr "" "%s: convierte una invitado para usar KVM\n" "\n" "virt-v2v -ic vpx://vcenter.ejemplo.com/Datacenter/esxi -os imported " "esx_guest\n" "\n" "virt-v2v -i libvirtxml dominio-invitado.xml -o local -os /var/tmp\n" "\n" "virt-v2v -i disk disco.img -o local -os /var/tmp\n" "\n" "Hay una interfaz complementaria llamada \"virt-p2v\", disponible como\n" "una imagen ISO o CD que se puede ser arrancada en máquinas físicas.\n" "\n" "A continuación se ofrece un breve resumen de las opciones. Para obtener " "ayuda\n" "detallada, consulte la página man virt-v2v(1).\n" #: in-place/in_place.ml:217 msgid "" "%s: convert a guest to use KVM in-place\n" "\n" "Note this program modifies the guest in-place with no backup.\n" "Normally you should use virt-v2v.\n" "\n" "virt-v2v-in-place -i libvirtxml guest-domain.xml\n" "\n" "virt-v2v-in-place -i disk disk.img\n" "\n" "A short summary of the options is given below. For detailed help please\n" "read the man page virt-v2v-in-place(1).\n" msgstr "" "%s: convierte un invitado para usar KVM in situ\n" "\n" "Este programa modifica el invitado in situ sin realizar respaldo\n" "Normalmente utilizaría virt-v2v.\n" "\n" "virt-v2v-in-place -i libvirtxml guest-domain.xml\n" "\n" "virt-v2v-in-place -i disk disk.img\n" "\n" "A continuación se ofrece un breve resumen de las opciones. Para obtener\n" "ayuda detallada, consulte la página man de virt-v2v-in-place(1).\n" #: input/input_vddk.ml:207 msgid "%s: enter password for ‘%s’: " msgstr "%s: introduzca la contraseña para ‘%s’: " #: common/mltools/tools_utils.ml:172 msgid "%s: error: %s" msgstr "%s: error: %s" #: inspector/inspector.ml:198 msgid "" "%s: estimate disk space needed before virt-v2v conversion\n" "\n" "virt-v2v-inspector -i disk disk.img [-O output.xml]\n" "\n" "A short summary of the options is given below. For detailed help please\n" "read the man page virt-v2v-inspector(1).\n" msgstr "" "%s: estimación del espacio en disco necesario antes de la conversión de virt-" "v2v\n" "\n" "virt-v2v-inspector -i disk disco.img [-O salida.xml]\n" "\n" "A continuación se ofrece un breve resumen de las opciones. Para obtener " "ayuda\n" "detallada, consulte la página man de virt-v2v-inspector(1).\n" #: open/open.ml:94 msgid "" "%s: open the virt-v2v input and run a program on it\n" "\n" "virt-v2v-open -i disk disk.img --run 'virt-inspector --format=raw @@'\n" "\n" "A short summary of the options is given below. For detailed help please\n" "read the man page virt-v2v-open(1).\n" msgstr "" "%s: abre la entrada de virt-v2v y ejecuta un programa en ella.\n" "\n" "virt-v2v-open -i disk disco.img --run 'virt-inspector --format=raw @@'\n" "\n" "A continuación se ofrece un breve resumen de las opciones. Para obtener\n" "ayuda detallada, consulte la página man de virt-v2v-open(1).\n" #: common/mltools/tools_utils.ml:726 msgid "%s: operation timed out" msgstr "%s: operación vencida" #: input/OVA.ml:127 input/OVA.ml:121 msgid "" "%s: unsupported file format\n" "\n" "Formats which we currently understand for '-i ova' are: tar (uncompressed, " "compress with gzip or xz), zip" msgstr "" "%s: formato de archivo no mantenido\n" "\n" "Formatos los cuales actualmente entiende para '-i ova' son: tar " "(descomprimido, comprimido con gzip o xz), zip" #: common/mltools/tools_utils.ml:191 msgid "%s: warning: %s" msgstr "%s: advertencia: %s" #. common/mlcustomize/customize_cmdline.ml:258 #: common/mlcustomize/customize_cmdline.ml:367 msgid "'CMD+ARGS'" msgstr "'CMD+ARGS'" #: common/mlcustomize/customize_run.ml:133 msgid "" "--append-line: line must not contain newline characters. Use the --append-" "line option multiple times to add several lines." msgstr "" "--append-line: línea debe no contener caracteres de línea nueva. Utilice la " "opción --append-line múltiples veces para añadir varias líneas." #: common/mlcustomize/customize_run.ml:152 msgid "--chown: could not parse numeric UID:GID from %s:%s" msgstr "--chown: no pudo interpretar el UID:GID numérico desde %s:%s" #: common/mlcustomize/customize_run.ml:216 msgid "" "--inject-blnsvr: blnsvr.exe not found in virtio-win source that you specified" msgstr "" "--inject-blnsvr: blnsvr.exe no encontrado en fuente de virtio-win que " "especificó" #: common/mlcustomize/customize_run.ml:225 msgid "" "--inject-qemu-ga: QEMU Guest Agent MSI not found in virtio-win source that " "you specified" msgstr "" "--inject-qemu-ga: Agente de Invitado QEMU MSI no encontrado en origen virtio-" "win que especificó" #: common/mlcustomize/customize_run.ml:241 msgid "" "--inject-virtio-win: virtio drivers were not found for this Windows version " "in the virtio-win source that you specified" msgstr "" "--inject-virtio-win: las unidades virtio no fueron encontradas para esta " "versión de Windows en la fuente virtio que especificaste" #: v2v/v2v.ml:146 inspector/inspector.ml:136 in-place/in_place.ml:143 msgid "--mac ip prefix length field is out of range" msgstr "--mac ip prefijo de campo de longitud está fuera del intervalo" #: v2v/v2v.ml:340 msgid "--parallel parameter must be >= 1" msgstr "el parámetro --parallel debe ser >= 1" #: input/input_disk.ml:42 msgid "-i disk: expecting a disk image (filename) on the command line" msgstr "" "disco -i: esperaba una imagen de disco (nombre de archivo) en la línea de " "comando" #: input/input_xen_ssh.ml:65 msgid "-i libvirt: expecting -ic parameter for Xen over SSH connection" msgstr "-i libvirt: esperaba el parámetro -ic para Xen sobre conexión SSH" #: input/input_vddk.ml:142 input/input_vcenter_https.ml:88 msgid "-i libvirt: expecting -ic parameter for vcenter connection" msgstr "-i libvirt: esperaba el parámetro -ic para conexión vcenter" #: input/input_vcenter_https.ml:101 msgid "-i libvirt: expecting -ic parameter to contain vcenter server name" msgstr "" "-i libvirt: esperaba el parámetro -ic para contener el nombre del servidor " "vcenter" #: input/input_vcenter_https.ml:78 msgid "-i libvirt: expecting -ip passwordfile parameter for vCenter connection" msgstr "" "-i libvirt: esperaba el parámetro -ip passwordfile para conexión vCenter" #. input/input_vcenter_https.ml:70 #. input/input_libvirt.ml:41 #: input/input_xen_ssh.ml:57 input/input_vddk.ml:132 msgid "-i libvirt: expecting a libvirt guest name on the command line" msgstr "" "-i libvirt: esperaba un nombre de invitado libvirt sobre la línea de comando" #: input/input_libvirt.ml:59 msgid "-i libvirtxml: expecting a libvirt XML filename on the command line" msgstr "" "-i libvirtxml: esperaba un nombre de archivo XML de libvirt en la línea de " "comando" #: input/input_ova.ml:243 msgid "-i ova: OVF references file ‘%s’ which was not found in the OVA archive" msgstr "" "-i ova: OVF referencia el archivo ‘%s’ el cual no fue encontrado en el " "archivador OVA" #: input/input_ova.ml:78 msgid "" "-i ova: corrupt OVA: checksum of disk %s does not match manifest (actual = " "%s, expected = %s)" msgstr "" "-i ova: OVA corrompido: sumatorio comprobante de disco %s no coincide con " "manifiesto (actual = %s, esperado = %s)" #: input/input_ova.ml:52 msgid "-i ova: expecting an OVA file name on the command line" msgstr "-i ova: espera un nombre de archivo OVA en la línea de comando" #: input/OVA.ml:361 msgid "" "-i ova: invalid OVA file: path ‘%s’ references a file outside the archive" msgstr "" "-i ova: archivo OVA no válido: ruta ‘%s’ referencia a un archivo externo al " "archivador" #: input/input_vmx.ml:57 msgid "-i vmx: cannot use -it vddk in this input mode" msgstr "-i vmx: no se puede utilizar -it vddk dentro del modo de entrada" #: input/input_vmx.ml:60 msgid "-i vmx: expecting a VMX file or ssh:// URI" msgstr "-i vmx: se espera un archivo VMX o ssh:// URI" #: input/vCenter.ml:159 msgid "" "-ip PASSWORD_FILE parameter ignored because 'user@' was not given in the URL" msgstr "" "-ip con parámetro PASSWORD_FILE ignorado porque 'user@' no fue dado en la URL" #: input/input_vddk.ml:119 msgid "-it vddk: ‘-io %s’ is not a valid input option" msgstr "-it vddk: ‘-io %s’ no es una opción de entrada válida" #: output/output.ml:54 msgid "-o %s: %s option cannot be used in this output mode" msgstr "-o %s: la opción %s no puede ser utilizada en este modo de salida" #: output/output_disk.ml:66 msgid "-o disk: output directory was not specified, use '-os /dir'" msgstr "" "-o disco: no fue especificado el directorio de salida, utilice '-os /dir'" #: output/output_libvirt.ml:59 output/output_disk.ml:56 msgid "-o disk: unknown output option ‘-oo %s’" msgstr "-o disco: opción ‘-oo %s’ de salida desconocida" #: output/output_kubevirt.ml:81 msgid "-o kubevirt: output directory was not specified, use '-os /dir'" msgstr "" "-o kubevirt: directorio de salida no fue especificado, utilice ‘-os /dir’" #: output/output_kubevirt.ml:91 msgid "" "-o kubevirt: the guest name must contain only lowercase alphanumeric " "characters, '-' or '.', and must start and end with an alphanumeric " "character. Rerun virt-v2v with the '-on name' option to rename it." msgstr "" "-o kubevirt: el nombre del invitado debe contener solo caracteres " "alfanuméricos en minúsculas, ‘-’ o ‘.’, y debe comenzar y terminar con un " "carácter alfanumérico. Reejecute virt-v2v con la opción ‘-on nombre’ para " "renombrarlo." #: output/output_kubevirt.ml:71 msgid "-o kubevirt: unknown output option ‘-oo %s’" msgstr "-o kubevirt: opción ‘-oo %s’ de salida desconocida" #: output/output_libvirt.ml:120 msgid "" "-o libvirt: output pool ‘%s’ does not have /pool/target/path element. See " "virt-v2v-output-local(1)" msgstr "" "-o libvirt: consorcio de salida ‘%s' no tiene elemento de /pool/target/" "path. Consulte virt-v2v-output-local(1)" #: output/output_libvirt.ml:124 msgid "" "-o libvirt: output pool ‘%s’ has type='dir' but the /pool/target/path " "element is not a local directory. See virt-v2v-output-local(1)" msgstr "" "-o libvirt: grupo de salida ‘%s' tiene tipo='dir' excepto el /elemento/de/" "ruta de objetivo de grupo no es un directorio local. Consulte virt-v2v-" "salida-local(1)" #: output/output_libvirt.ml:116 msgid "" "-o libvirt: output pool ‘%s’ is not a directory (type='dir'). See virt-v2v-" "output-local(1)" msgstr "" "-o libvirt: consorcio de salida ‘%s' no es un directorio (tipo='dir'). " "Consulte virt-v2v-output-local(1)" #: output/output_openstack.ml:88 msgid "-o openstack mode only supports -oa sparse -of raw" msgstr "-o modo openstack solo admite -oa amplitud -of sin formato" #: output/output_openstack.ml:115 msgid "-o openstack: unknown output option ‘-oo %s’" msgstr "-o openstack: opción ‘-oo %s’ de salida desconocida" #: output/output_ovirt_upload.ml:97 msgid "-o ovirt-upload: -oo ovirt-cafile set more than once" msgstr "-o ovirt-upload: -oo ovirt-cafile establece más de una vez" #: output/output_ovirt_upload.ml:101 msgid "-o ovirt-upload: -oo ovirt-cluster set more than once" msgstr "-o ovirt-upload: -oo ovirt-cluster establece más de una vez" #: output/output_ovirt_upload.ml:112 msgid "-o ovirt-upload: invalid UUID for -oo ovirt-disk-uuid" msgstr "-o ovirt-upload: UUID no válido para -oo ovirt-disk-uuid" #: output/output_ovirt_upload.ml:76 msgid "" "-o ovirt-upload: output password file was not specified, use ‘-op’ to point " "to a file which contains the password used to connect to the oVirt server" msgstr "" "-o ovirt-upload: archivo de contraseña de salida no fue especificada, " "utilice ‘-op’ para apuntar a un archivo el cual contenga la contraseña " "utilizada para el servidor oVirt" #: output/output_ovirt_upload.ml:83 msgid "-o ovirt-upload: output storage was not specified, use ‘-os’" msgstr "" "-o ovirt-upload: no fue especificada la salida de almacén, utilce ‘-os’" #: output/output_ovirt_upload.ml:116 msgid "-o ovirt-upload: unknown output option ‘-oo %s’" msgstr "-o ovirt-upload: opción ‘-oo %s’ con salida desconocida" #: output/output_ovirt_upload.ml:68 msgid "" "-o ovirt-upload: use ‘-oc’ to point to the oVirt server REST API URL, which " "is usually https://servername/ovirt-engine/api" msgstr "" "-o ovirt-upload: utilce ‘-oc’ para apuntar al servidor oVirt REST API URL, " "el cual usualmente es https://servername/ovirt-engine/api" #: output/output_ovirt.ml:51 msgid "-o ovirt: -os option was not specified" msgstr "-o ovirt: no fue especificada la opción -os" #: output/output_qemu.ml:72 msgid "-o qemu: output directory was not specified, use '-os /dir'" msgstr "" "-o qemu: no fue especificada el directorio de salida, utilice '-os /dir'" #: output/output_qemu.ml:63 msgid "-o qemu: unknown output option ‘-oo %s’" msgstr "-o qemu: salida desconocida en la opción ‘-oo %s’" #: output/output_vdsm.ml:102 msgid "-o vdsm: -oo vdsm-image-uuid was not specified" msgstr "-o vdsm: no fue especificada -oo vdsm-image-uuid" #: output/output_vdsm.ml:81 msgid "-o vdsm: -oo vdsm-ovf-output set more than once" msgstr "-o vdsm: -oo vdsm-ovf-output se establece más de una vez" #: output/output_vdsm.ml:77 msgid "-o vdsm: -oo vdsm-vm-uuid set more than once" msgstr "-o vdsm: -oo vdsm-vm-uuid se establece más de una vez" #: output/output_vdsm.ml:110 msgid "-o vdsm: -os option was not specified" msgstr "-o vdsm: la opción -os no fue especificada" #: output/output_vdsm.ml:97 msgid "-o vdsm: either -oo vdsm-vol-uuid or -oo vdsm-vm-uuid was not specified" msgstr "" "-o vdsm: o bien -oo vdsm-vol-uuid o bien -oo vdsm-vm-uuid no fue especificado" #: output/output_vdsm.ml:90 msgid "-o vdsm: unknown output option ‘-oo %s’" msgstr "-o vdsm: opción ‘-oo %s’ de salida desconocida" #: output/output_vdsm.ml:74 msgid "-o vdsm: unknown vdsm-compat level ‘%s’" msgstr "-o vdsm: nivel vdsm-compat ‘%s’ desconocido" #. output/output_kubevirt.ml:84 #. output/output_disk.ml:68 #: output/output_vdsm.ml:112 output/output_qemu.ml:74 msgid "-os %s: output directory does not exist or is not a directory" msgstr "-os %s: directorio de salida no existe o no es un directorio" #: input/parse_libvirt_xml.ml:279 msgid " missing 'method' attribute, ignoring" msgstr " no tiene el atributo 'method', se descarta" #: input/parse_libvirt_xml.ml:291 msgid " unknown fail='%s' attribute, ignoring" msgstr " atributo con fallo='%s' desconocido, se hace caso omiso" #: input/parse_libvirt_xml.ml:370 input/parse_libvirt_xml.ml:317 msgid " was ignored" msgstr " fue ignorado" #: input/parse_libvirt_xml.ml:338 msgid " with was ignored" msgstr " con se hizo caso omiso" #: input/parse_libvirt_xml.ml:365 msgid " with was ignored" msgstr " con se hizo caso omiso" #: input/parse_libvirt_xml.ml:299 msgid " element with no type attribute ignored" msgstr "elemento con sin ningún tipo de atributo se hace caso omiso" #: input/parse_libvirt_xml.ml:167 msgid " in the input libvirt XML was ignored" msgstr " en el XML de libvirt de entrada se hace caso omiso" #: input/parse_libvirt_xml.ml:414 msgid "" " was ignored because the device name could not be recognized" msgstr "" " se hizo caso omiso porque el nombre del dispositivo no " "pudo ser reconocido" #: input/input_vddk.ml:176 msgid "" " was not found in the output of ‘virsh dumpxml \"%s\"’. The " "most likely reason is that libvirt is too old, try upgrading libvirt to ≥ " "3.7." msgstr "" " no fue encontrado en la salida de ‘virsh dumpxml \"%s\"’. La " "razón que más gusta es que libvirt es demasiado antiguo, intente " "modernizarlo a libvirt >= 3.7." #: common/mlcustomize/customize_cmdline.ml:305 msgid "Add package(s) to install" msgstr "Añade paquete(s) para instalar" #: common/mlcustomize/customize_cmdline.ml:270 msgid "Add package(s) to install at first boot" msgstr "Añade paquete(s) para instalar en el primer arranque" #: common/mlcustomize/customize_cmdline.ml:175 msgid "Append line(s) to the file" msgstr "Adjunta línea(s) para el archivo" #: common/mlcustomize/customize_run.ml:137 msgid "Appending line to %s" msgstr "Adjunta línea para %s" #: common/mlcustomize/customize_cmdline.ml:197 msgid "Change the owner user and group ID of a file or directory" msgstr "" "Cambia el ID del usuario y grupo del propietario de un archivo o directorio" #: common/mlcustomize/customize_cmdline.ml:186 msgid "Change the permissions of a file" msgstr "Cambia los permisos de un archivo" #: common/mlcustomize/customize_run.ml:155 msgid "Changing owner of %s to %d:%d" msgstr "Cambia el propietario de %s a %d:%d" #: common/mlcustomize/customize_run.ml:141 msgid "Changing permissions of %s to %s" msgstr "Cambiando permisos de %s a %s" #: input/input_libvirt.ml:174 input/input_libvirt.ml:157 msgid "Checking %s checksum of disk %d/%d" msgstr "Comprobando el sumatorio %s del disco %d/%d" #: common/mlcustomize/customize_cmdline.ml:488 msgid "Compatibility option doing nothing" msgstr "Opción de compatibilidad sin hacer nada" #: common/mlcustomize/customize_cmdline.ml:219 msgid "Copy files in disk image" msgstr "Copia archivos dentro de imagen de disco" #: common/mlcustomize/customize_cmdline.ml:397 msgid "Copy local files or directories from a tarball into image" msgstr "Copia archivos o directorios locales desde un tarball a imagen" #: common/mlcustomize/customize_cmdline.ml:230 msgid "Copy local files or directories into image" msgstr "Copia archivos o directorios locales en una imagen" #: common/mlcustomize/customize_run.ml:168 msgid "Copying (in image): %s to %s" msgstr "Copiando (en imagen): %s a %s" #: v2v/v2v.ml:518 msgid "Copying disk %d/%d" msgstr "Copiando disco %d/%d" #: common/mlcustomize/customize_run.ml:172 msgid "Copying: %s to %s" msgstr "Copiando: %s a %s" #: common/mlcustomize/customize_cmdline.ml:322 msgid "Create a directory" msgstr "Crea un directorio" #: common/mlcustomize/customize_cmdline.ml:316 msgid "Create symbolic links" msgstr "Crea enlaces simbólicos" #: v2v/v2v.ml:567 msgid "Creating output metadata" msgstr "Creando metadatos de salida" #: common/mlcustomize/customize_cmdline.ml:321 msgid "DIR" msgstr "DIR" #: common/mlcustomize/customize_cmdline.ml:236 msgid "Delete a file or directory" msgstr "Elimina un archivo o directorio" #: common/mlcustomize/customize_run.ml:176 msgid "Deleting: %s" msgstr "Eliminando: %s" #: common/mltools/getopt.ml:225 msgid "Display brief help" msgstr "Exhibe una breve ayuda" #: common/mltools/tools_utils.ml:385 msgid "Display version and exit" msgstr "Exhibe la versión y sale" #: common/mlcustomize/customize_cmdline.ml:482 msgid "Do not relabel files with correct SELinux labels" msgstr "No vuelva a etiquetar archivos con etiquetas correctas de SELinux" #: v2v/v2v.ml:248 inspector/inspector.ml:177 in-place/in_place.ml:190 msgid "Don't trim filesystems before conversion" msgstr "No recortar sistemas de archivo antes de conversión" #: common/mltools/tools_utils.ml:389 msgid "Don’t print progress messages" msgstr "No declara mensajes de progreso" #: common/mltools/tools_utils.ml:420 msgid "Don’t turn off echo for passphrases" msgstr "No apaga el eco para frases de contraseña" #: common/mlcustomize/customize_cmdline.ml:247 msgid "Edit file using Perl expression" msgstr "Edita el archivo utilizando expresión de Perl" #: common/mlcustomize/customize_run.ml:180 msgid "Editing: %s" msgstr "Editando: %s" #: common/mltools/tools_utils.ml:386 msgid "Enable libguestfs debugging messages" msgstr "Habilita mensajes de depuración en libguestfs" #: common/mltools/tools_utils.ml:387 msgid "Enable tracing of libguestfs calls" msgstr "Habilita traza de invocaciones de libguestfs" #: output/output_ovirt.ml:77 msgid "Export Storage Domain" msgstr "Exportar Dominio de Almacén" #: open/open.ml:88 msgid "External command to run" msgstr "Comando externo a ejecutar" #. common/mlcustomize/customize_cmdline.ml:408 #. common/mlcustomize/customize_cmdline.ml:373 #: common/mlcustomize/customize_cmdline.ml:414 msgid "FILE" msgstr "ARCHIVO" #: common/mlcustomize/customize_cmdline.ml:455 msgid "FILE:CONTENT" msgstr "ARCHIVO:CONTENIDO" #: common/mlcustomize/customize_cmdline.ml:444 msgid "FILE:DEST" msgstr "ARCHIVO:DESTINO" #: common/mlcustomize/customize_cmdline.ml:242 msgid "FILE:EXPR" msgstr "ARCHIVO:EXPR" #: common/mlcustomize/customize_cmdline.ml:170 msgid "FILE:LINE" msgstr "ARCHIVO:LÍNEA" #: common/mlcustomize/customize_cmdline.ml:203 msgid "FILENAME" msgstr "NOMBRE-ARCHIVO" #. in-place/in_place.ml:378 #: v2v/v2v.ml:571 open/open.ml:220 inspector/inspector.ml:334 msgid "Finishing off" msgstr "Terminando" #: common/mlcustomize/customize_cmdline.ml:275 msgid "HOSTNAME" msgstr "NOMBRE-HOSPEDAJE" #: v2v/v2v.ml:254 inspector/inspector.ml:183 in-place/in_place.ml:194 msgid "How to choose root filesystem" msgstr "Como elegir sistema de archivos raíz" #: common/mltools/tools_utils.ml:177 msgid "" "If reporting bugs, run %s with debugging enabled and include the complete " "output:\n" "\n" " %s -v -x [...]" msgstr "" "Si reporta defectos, ejecute %s con depuración habilitada e incluya la " "salida completa:\n" "\n" " %s -v -x […]" #: common/mlcustomize/customize_cmdline.ml:386 msgid "Inject a public key into the guest" msgstr "Inyecta una clave pública en el invitado" #: common/mlcustomize/customize_cmdline.ml:282 msgid "Inject the Balloon Server into a Windows guest" msgstr "Inyecta el Servidor Balloon en un invitado de Windows" #: common/mlcustomize/customize_cmdline.ml:288 msgid "Inject the QEMU Guest Agent into a Windows guest" msgstr "Inyecta el Agente Invitado de QEMU en un invitado de Windows" #: common/mlcustomize/customize_cmdline.ml:294 msgid "Inject virtio-win drivers into a Windows guest" msgstr "Inyecta unidades de virtio-win en un invitado de Windows" #. in-place/in_place.ml:176 #: v2v/v2v.ml:216 open/open.ml:80 inspector/inspector.ml:165 msgid "Input format" msgstr "Formato de entrada" #: input/input_vddk.ml:77 msgid "" "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" "\n" "Refer to nbdkit-vddk-plugin(1) and the VDDK documentation for further\n" "information on these settings.\n" msgstr "" "Opciones de entrada (-io) las cueles pueden ser utilizadas con -it vddk\n" "(todos los ajustes son opcionales):\n" "\n" " -io vddk-compression=COMPR Establece modo de compresión VDDK (consulte\n" " la documentación nbdkit-vddk-plugin)\n" " -io vddk-config=ARCHIVO Archivo de configuración VDDK\n" " -io vddk-cookie=COOKIE VDDK cookie\n" " -io vddk-file=ARCHIVO Override nbdkit-vddk-plugin file= " "parámetro\n" " -io vddk-libdir=LIBDIR biblioteca VDDK de directorio antecesor\n" " -io vddk-nfchostport=PUERTO VDDK nfchostport\n" " -io vddk-port=PUERTO puerto VDDK\n" " -io vddk-snapshot=CAPTURA-MOREF\n" " VDDK captura moref\n" " -io vddk-thumbprint=xx:xx:xx:…\n" " VDDK servidor thumbprint\n" " -io vddk-transports=MODO:MODO:…\n" " VDDK transportes\n" "\n" "Refiérase a nbdkit-vddk-plugin(1) y la documentación de VDDK para más\n" "información en estos ajustes.\n" #: v2v/v2v.ml:222 open/open.ml:86 inspector/inspector.ml:171 msgid "Input transport" msgstr "Transporte de entrada" #: common/mlcustomize/customize_run.ml:191 msgid "Installing firstboot command: %s" msgstr "Instalar comando de primer arranque: %s" #: common/mlcustomize/customize_run.ml:195 msgid "Installing firstboot packages: %s" msgstr "Instalar paquetes del primer arranque: %s" #: common/mlcustomize/customize_run.ml:202 msgid "Installing firstboot script: %s" msgstr "Instalando el guion del primer arranque: %s" #: common/mlcustomize/customize_run.ml:248 msgid "Installing packages: %s" msgstr "Instalando los paquetes: %s" #: common/mlcustomize/customize_cmdline.ml:225 msgid "LOCALPATH:REMOTEDIR" msgstr "LOCALPATH:REMOTEDIR" #. in-place/in_place.ml:174 #: v2v/v2v.ml:214 open/open.ml:78 inspector/inspector.ml:163 msgid "Libvirt URI" msgstr "URI de libvirt" #: common/mlcustomize/customize_run.ml:255 msgid "Linking: %s -> %s" msgstr "Enlazando: %s → %s" #. common/mlcustomize/customize_cmdline.ml:287 #. common/mlcustomize/customize_cmdline.ml:281 #: common/mlcustomize/customize_cmdline.ml:293 msgid "METHOD" msgstr "MÉTODO" #: common/mltools/tools_utils.ml:426 msgid "Make output machine readable" msgstr "Hacer que la salida de la máquina sea leíble" #: common/mlcustomize/customize_run.ml:260 msgid "Making directory: %s" msgstr "Creando directorio: %s" #: v2v/v2v.ml:226 inspector/inspector.ml:173 in-place/in_place.ml:182 msgid "Map NIC to network or bridge or assign static IP" msgstr "Asocia NIC a la red o puente o solicitando IP estática" #: v2v/v2v.ml:210 inspector/inspector.ml:159 in-place/in_place.ml:170 msgid "Map bridge ‘in’ to ‘out’" msgstr "Asocia puente de entrada ‘in’ a salida ‘out’" #: v2v/v2v.ml:230 inspector/inspector.ml:179 in-place/in_place.ml:186 msgid "Map network ‘in’ to ‘out’" msgstr "Asocia entrada de red ‘in’ a salida ‘out’" #: common/mlcustomize/customize_cmdline.ml:333 msgid "Move files in disk image" msgstr "Mueve archivos dentro de imagen del disco" #: common/mlcustomize/customize_run.ml:264 msgid "Moving: %s -> %s" msgstr "Moviendo: %s → %s" #. input/input_vcenter_https.ml:45 #. input/input_ova.ml:35 #. input/input_libvirt.ml:233 #. input/input_libvirt.ml:221 #. input/input_disk.ml:35 #: input/input_xen_ssh.ml:43 input/input_vmx.ml:36 msgid "No input options can be used in this mode.\n" msgstr "No hay opciones de entrada que pueden ser utilizadas en este modo.\n" #: output/output_ovirt.ml:40 output/output_null.ml:38 #: output/output_glance.ml:40 msgid "No output options can be used in this mode.\n" msgstr "No hay opciones de salida que puedan ser utilizadas en este modo.\n" #: output/output_vdsm.ml:166 msgid "OVF (metadata) directory (%s) does not exist or is not a directory" msgstr "Directorio OVF (metadatos) (%s) no existen o no es un directorio" #: common/mlcustomize/firstboot.ml:268 msgid "" "One of rhsrvany.exe or pvvxsvc.exe is missing in %s. One of them is " "required in order to install Windows firstboot scripts. You can get one by " "building rhsrvany (https://github.com/rwmjones/rhsrvany)" msgstr "" "Falta uno de los rhsrvany.exe o pvvxsvc.exe en %s. Se requiere uno de ellos " "con el fin de instalar los guiones de primer arranque de Windows. Puede " "obtener uno de rhsrvany (https://github.com/rwmjones/rhsrvany)" #: v2v/v2v.ml:236 msgid "Output hypervisor connection" msgstr "Conexión de salida de hipervisor" #: output/output_ovirt_upload.ml:51 msgid "" "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" "\n" "You can override the UUIDs of the disks, instead of using autogenerated " "UUIDs\n" "after their uploads (if you do, you must supply one for each disk):\n" "\n" " -oo ovirt-disk-uuid=UUID Disk UUID\n" msgstr "" "Opciones de salida (-oo) las cuáles pueden ser utilizados con -o ovirt-" "upload:\n" "\n" " -oo ovirt-cafile=CA.PEM Pone el certificado ‘ca.pem' de nombre de " "archivo envuelto.\n" " -oo ovirt-cluster=NOMBRECLUSTER Pone nombre de oVirt del cluster.\n" " -oo ovirt-proxy Conectar vía proxy oVirt Engine " "(predt.: false).\n" " -oo ovirt-verifypeer[=true|false] Verifica identidad de servidor (predt: " "false).\n" "\n" " Puedes superponer los UUID de los discos, en vez de utilizar los UUID auto‐" "generados\n" "tras su subida (si lo hace, tienes que suministrar uno por cada disco):\n" "\n" " -oo ovirt-disk-uuid=UUID Disco UUID\n" #: output/output_qemu.ml:44 msgid "" "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" msgstr "" "Opciones de salida (-oo) lo cual puede ser utilizado con -o qemu:\n" "\n" " -oo compressed Comprime el archivo de salida (utilizado soo con -of " "qcow2)\n" " -oo qemu-boot Arranca el invitado en qemu tras la conversión\n" #: output/output_vdsm.ml:43 msgid "" "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" "\n" "For 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" msgstr "" "Opciones de salida (-oo) los cuales pueden ser utilizados con -o vdsm:\n" "\n" " -oo vdsm-compat=0.10|1.1 Escribe qcow2 con compat=0.10|1.1\n" " (predet.: 0.10)\n" " -oo vdsm-vm-uuid=UUID VM UUID (requerido)\n" " -oo vdsm-ovf-salida=DIR OVF metadata directorio (requerido)\n" " -oo vdsm-ovf-sabor=%s\n" " Puso el tipo de OVF " "generado (predt.: ovirtexp)\n" "\n" "Para cada disco tienes que proporcionar una de cada de estas opciones:\n" "\n" " -oo vdsm-imagen-uuid=UUID directorio de Imagen UUID\n" " -oo vdsm-vol-uuid=UUID volumen de Disco UUID\n" #: output/output_disk.ml:44 msgid "" "Output options that can be used with -o disk:\n" "\n" " -oo compressed Compress the output file (used only with -of qcow2)\n" msgstr "" "Opciones de salida que pueden ser utilizadas con -o disco:\n" "\n" " -oo compressed Comprime el archivo de salida (utilizado solo con -of " "qcow2)\n" #: output/output_kubevirt.ml:51 msgid "" "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" msgstr "" "Las opciones de salida que puede ser utilizadas con -o kubevirt:\n" "\n" " -oo compressed Comprime el archivo de salida (utilizado sólo con -of " "qcow2)\n" " -oo create=false No crea los discos de salida\n" " -oo disk=disk1 Especificar nombre de archivo de disco de salida (si " "utilizado,\n" " tiene que ser dado una vez por cada disco, o bien será " "utilizada la ruta -os)\n" #: output/output_libvirt.ml:47 msgid "" "Output options that can be used with -o libvirt:\n" "\n" " -oo compressed Compress the output file (used only with -of qcow2)\n" msgstr "" "Opciones de salida que pueden ser utilizadas con -o libvirt:\n" "\n" " -oo compressed Comprime el archivo de salida (utilizado solo con -of " "qcow2)\n" #. common/mlcustomize/customize_cmdline.ml:235 #: common/mlcustomize/customize_cmdline.ml:420 msgid "PATH" msgstr "PATH" #: common/mlcustomize/customize_cmdline.ml:181 msgid "PERMISSIONS:FILE" msgstr "PERMISSIONS:FILE" #. common/mlcustomize/customize_cmdline.ml:300 #. common/mlcustomize/customize_cmdline.ml:265 #: common/mlcustomize/customize_cmdline.ml:427 msgid "PKG,PKG.." msgstr "PKG,PKG." #: v2v/v2v.ml:263 in-place/in_place.ml:203 msgid "Prefer 'virtio-blk' or 'virtio-scsi'" msgstr "Prefiere 'virtio-blk' o 'virtio-scsi'" #: v2v/v2v.ml:252 in-place/in_place.ml:192 msgid "Print source and stop" msgstr "Declara origen y detiene" #: common/mlcustomize/customize_cmdline.ml:208 msgid "Read customize commands from file" msgstr "Lee comandos de personalización desde archivo" #: common/mltools/tools_utils.ml:421 msgid "Read passphrases from stdin" msgstr "Lee frases de acceso desde stdin" #: common/mlcustomize/customize_cmdline.ml:421 msgid "Recursively truncate all files in directory" msgstr "Trunca recursivamente todos los archivos dentro del directorio" #: common/mlcustomize/customize_run.ml:298 msgid "Recursively truncating: %s" msgstr "Trunca recursivamente: %s" #: v2v/v2v.ml:240 msgid "Rename guest when converting" msgstr "Renombra invitado cuando convierta" #: common/mlcustomize/customize_cmdline.ml:259 msgid "Run command at first guest boot" msgstr "Ejecuta comando al primer arranque del invitado" #: common/mlcustomize/customize_cmdline.ml:368 msgid "Run command in disk image" msgstr "Ejecuta comando dentro de imagen de disco" #: common/mlcustomize/customize_cmdline.ml:253 msgid "Run script at first guest boot" msgstr "Ejecuta script en el primer arranque de invitado" #: common/mlcustomize/customize_cmdline.ml:362 msgid "Run script in disk image" msgstr "Ejecuta script en imagen de disco" #: common/mlcustomize/customize_cmdline.ml:409 msgid "Run touch on a file" msgstr "Ejecuta touch sobre un archivo" #: v2v/v2v.ml:250 msgid "Run up to N instances of nbdcopy in parallel" msgstr "Ejecuta hasta N instancias de nbdcopy en paralelo" #: open/open.ml:188 msgid "Running external command" msgstr "Ejecuta comando externo" #: common/mlcustomize/customize_run.ml:307 msgid "Running touch: %s" msgstr "Ejecuta ``touch``: %s" #. common/mlcustomize/customize_run.ml:159 #: common/mlcustomize/customize_run.ml:274 msgid "Running: %s" msgstr "Ejecuta: %s" #. common/mlcustomize/customize_cmdline.ml:252 #: common/mlcustomize/customize_cmdline.ml:361 msgid "SCRIPT" msgstr "SCRIPT" #: common/mltools/tools_utils.ml:422 #: common/mlcustomize/customize_cmdline.ml:351 msgid "SELECTOR" msgstr "SELECTOR" #: common/mlcustomize/customize_run.ml:363 msgid "SELinux relabelling" msgstr "Re‐etiquetando SELINUX" #. common/mlcustomize/customize_cmdline.ml:214 #: common/mlcustomize/customize_cmdline.ml:328 msgid "SOURCE:DEST" msgstr "ORIGEN:DEST" #: common/mlcustomize/customize_run.ml:287 msgid "SSH key could not be injected for this type of guest" msgstr "La clave SSH no pudo ser inyectada para este tipo de invitado" #: common/mlcustomize/customize_run.ml:284 msgid "SSH key inject: %s" msgstr "Inyectar clave SSH: %s" #: common/mlcustomize/customize_cmdline.ml:374 msgid "Scrub a file" msgstr "Restriega un archivo" #: common/mlcustomize/customize_cmdline.ml:466 msgid "Scrub build log file" msgstr "Restriega el archivo de bitácora construido" #: common/mlcustomize/customize_run.ml:374 msgid "Scrubbing the log file" msgstr "Restregando el archivo de bitácora" #: common/mlcustomize/customize_run.ml:279 msgid "Scrubbing: %s" msgstr "Restregando: %s" #: v2v/v2v.ml:208 msgid "Set bandwidth dynamically from file" msgstr "Establezca el ancho de banda dinámicamente desde el archivo" #: v2v/v2v.ml:206 msgid "Set bandwidth to bits per sec" msgstr "Establezca el ancho de banda de los bit por seg" #. in-place/in_place.ml:172 #: v2v/v2v.ml:212 open/open.ml:76 inspector/inspector.ml:161 msgid "Set input mode (default: libvirt)" msgstr "Establezca el modo de entrada (por defecto: libvirt)" #: v2v/v2v.ml:228 inspector/inspector.ml:175 in-place/in_place.ml:184 msgid "Set memory size" msgstr "Establecer tamaño de memoria" #: v2v/v2v.ml:256 inspector/inspector.ml:185 in-place/in_place.ml:196 msgid "Set number of vCPUs" msgstr "Establecer número de las vCPU" #. in-place/in_place.ml:178 #: v2v/v2v.ml:218 open/open.ml:82 inspector/inspector.ml:167 msgid "Set option for input mode" msgstr "Establecer opción para el modo de entrada" #: v2v/v2v.ml:242 msgid "Set option for output mode" msgstr "Establecer opción para el modo de salida" #: v2v/v2v.ml:234 msgid "Set output allocation mode" msgstr "Establecer modo de asignación de salida" #: v2v/v2v.ml:238 msgid "Set output format" msgstr "Establecer formato de salida" #: v2v/v2v.ml:232 msgid "Set output mode (default: libvirt)" msgstr "Establecer modo de salida (predet.: libvirt)" #: v2v/v2v.ml:246 msgid "Set output storage location" msgstr "Establecer lugar de almacén de salida" #: common/mlcustomize/customize_cmdline.ml:476 msgid "Set password crypto" msgstr "Establecer contraseña cifrada" #: common/mltools/tools_utils.ml:430 msgid "Set program name" msgstr "Establecer nombre del programa" #: common/mlcustomize/customize_cmdline.ml:356 msgid "Set root password" msgstr "Establecer la contraseña raíz" #: common/mlcustomize/customize_cmdline.ml:403 msgid "Set the default timezone" msgstr "Establecer la zona horaria por defecto" #: common/mlcustomize/customize_cmdline.ml:276 msgid "Set the hostname" msgstr "Establece el nombre del host" #: inspector/inspector.ml:181 in-place/in_place.ml:188 msgid "Set the output filename" msgstr "Establece el nombre de archivo de salida" #: common/mlcustomize/customize_cmdline.ml:345 msgid "Set user password" msgstr "Establece contraseña de usuario" #: common/mlcustomize/customize_run.ml:75 msgid "Setting a random seed" msgstr "Establece una semilla aleatoria" #: common/mlcustomize/customize_run.ml:354 msgid "Setting passwords" msgstr "Establece constraseñas" #: common/mlcustomize/password.ml:113 msgid "Setting random password of %s to %s" msgstr "Establece contraseña aleatoria de %s a %s" #: common/mlcustomize/customize_run.ml:207 msgid "Setting the hostname: %s" msgstr "Establece el nombre de host: %s" #: common/mlcustomize/customize_run.ml:90 msgid "Setting the machine ID in %s" msgstr "Establece el ID de máquina en %s" #: common/mlcustomize/customize_run.ml:302 msgid "Setting the timezone: %s" msgstr "Establece la zona horaria: %s" #: v2v/v2v.ml:481 msgid "Setting up the destination: %s" msgstr "Configura el destino: %s" #. in-place/in_place.ml:342 #: v2v/v2v.ml:457 open/open.ml:184 inspector/inspector.ml:310 msgid "Setting up the source: %s" msgstr "Configura el origen: %s" #: v2v/v2v.ml:463 in-place/in_place.ml:348 msgid "Source guest information (--print-source option):\n" msgstr "Información del invitado origen (opción --print-source):\n" #: common/mltools/tools_utils.ml:422 msgid "Specify a LUKS key" msgstr "Especifica una clave LUKS" #: common/mlcustomize/customize_cmdline.ml:392 msgid "TARFILE:REMOTEDIR" msgstr "TARFILE:REMOTEDIR" #: common/mlcustomize/customize_cmdline.ml:311 msgid "TARGET:LINK[:LINK..]" msgstr "TARGET:LINK[:LINK..]" #: common/mlcustomize/customize_cmdline.ml:402 msgid "TIMEZONE" msgstr "TIMEZONE" #: v2v/v2v.ml:200 msgid "" "The --in-place option has been replaced by the ‘virt-v2v-in-place’ program" msgstr "" "La opción --in-place ha sido sustituida por el programa ‘virt-v2v-in-place’" #: output/output_qemu.ml:251 msgid "" "The Virt machine has no support for IDE. Please report a bug for virt-v2v -- " "refer to virt-v2v(1) section \"BUGS\"." msgstr "" "La máquina Virt no tiene mantenimiento para IDE. Reporte un fallo para virt-" "v2v — refiérase a sección virt-v2v(1) en \"BUGS\"." #: output/output_qemu.ml:272 msgid "" "The Virt machine has no support for floppies. Please report a bug for virt-" "v2v -- refer to virt-v2v(1) section \"BUGS\"." msgstr "" "La máquina Virt no admite disquetes. Informe de un defecto para virt-v2v — " "refiérase a la sección virt-v2v(1) en \"BUGS\"." #: lib/create_ovf.ml:785 msgid "" "This guest required a password for connection to its display, but this is " "not supported by oVirt. Therefore the converted guest’s display will not " "require a separate password to connect." msgstr "" "Este invitado requería una contraseña para conectarse a su pantalla, pero " "esto no está admitido por oVirt. Por lo tanto la pantalla del invitado " "convertida no requerirá una contraseña independiente para conectarse." #: input/input_vmx.ml:111 msgid "" "This transport does not support guests with snapshots. Either collapse the " "snapshots for this guest and try the conversion again, or use one of the " "alternate conversion methods described in virt-v2v-input-vmware(1) section " "\"NOTES\"." msgstr "" "Este transporte no admite invitados con máquinas virtuales. Puede colapsar " "las instantáneas de este invitado e intentar la conversión de nuevo, o bien " "utilice uno de los métodos de conversión alternativos descritos en la " "sección \"NOTAS\" de virt-v2v-input-vmware(1)." #: common/mlcustomize/customize_cmdline.ml:415 msgid "Truncate a file to zero size" msgstr "Truncar un archivo a tamaño cero" #: common/mlcustomize/customize_run.ml:294 msgid "Truncating: %s" msgstr "Truncando: %s" #: common/mlcustomize/customize_cmdline.ml:192 msgid "UID:GID:PATH" msgstr "UID:GID:PATH" #: common/mlcustomize/customize_cmdline.ml:339 msgid "USER:SELECTOR" msgstr "USER:SELECTOR" #: common/mlcustomize/customize_cmdline.ml:380 msgid "USER[:SELECTOR]" msgstr "USER[:SELECTOR]" #: common/mlcustomize/customize_cmdline.ml:432 msgid "Uninstall package(s)" msgstr "Desinstalar paquete(s)" #: common/mlcustomize/customize_run.ml:311 msgid "Uninstalling packages: %s" msgstr "Desinstalando paquetes: %s" #: common/mlcustomize/customize_run.ml:290 msgid "Unpack tar file: %s to %s" msgstr "Desempaquetar archivo tar: %s a %s" #: common/mlcustomize/customize_cmdline.ml:438 msgid "Update packages" msgstr "Actualizar paquetes" #: common/mlcustomize/customize_run.ml:316 msgid "Updating packages" msgstr "Actualizando paquetes" #: common/mlcustomize/customize_cmdline.ml:449 msgid "Upload local file to destination" msgstr "Subir archivo local al destino" #: common/mlcustomize/customize_run.ml:321 msgid "Uploading: %s to %s" msgstr "Subir: %s a %s" #: common/mltools/tools_utils.ml:391 msgid "Use ANSI colour sequences even if not tty" msgstr "Utilice secuencias de colores ANSI incluso si no es tty" #. in-place/in_place.ml:180 #: v2v/v2v.ml:220 open/open.ml:84 inspector/inspector.ml:169 msgid "Use password from file to connect to input hypervisor" msgstr "" "Utilice la contraseña del archivo para conectarse al hipervisor de entrada" #: v2v/v2v.ml:244 msgid "Use password from file to connect to output hypervisor" msgstr "" "Utilice la contraseña del archivo para conectarse al hipervisor de entrada" #: v2v/v2v.ml:224 msgid "Use virt-v2v-in-place instead" msgstr "Utilice en su lugar virt-v2v-in-place" #: common/mltools/tools_utils.ml:392 msgid "Wrap log messages even if not tty" msgstr "Cubre los mensajes de bitácora incluso si no es por tty" #: common/mlcustomize/customize_cmdline.ml:460 msgid "Write file" msgstr "Escribe archivo" #: common/mlcustomize/customize_run.ml:346 msgid "Writing: %s" msgstr "Escribiendo: %s" #: lib/YAML.ml:167 msgid "" "YAML block contains newline character. This should not happen, please " "report a bug against virt-v2v." msgstr "" "El bloque YAML contiene un carácter de salto de línea. Esto no debería " "suceder; por favor, informe de este defecto en virt-v2v." #: output/output_libvirt.ml:96 msgid "" "a libvirt domain called ‘%s’ already exists on the target.\n" "\n" "If using virt-v2v directly, use the ‘-on’ option to select a different name. " "Or delete the existing domain on the target using the ‘virsh undefine’ " "command.\n" "\n" "If using virt-p2v, select a different ‘Name’ in the ‘Target properties’. Or " "delete the existing domain on the target using the ‘virsh undefine’ command." msgstr "" "ya existe un dominio libvirt llamado ‘%s' en el destino.\n" "\n" "Si utiliza virt-v2v directamente, emplee la opción ‘-on' para seleccionar un " "nombre diferente. O borre el dominio existente en el destino utilizando el " "comando ‘virsh undefine'.\n" "\n" "Si utilizando virt-p2v, selecciona el ‘Nombre’ diferente en las ‘propiedades " "del Destino’. O borre el dominio existente sobre destino que utiliza el " "comando ‘virsh undefine'." #: common/mlcustomize/append_line.ml:44 msgid "append_line: %s is not a file" msgstr "append_line: %s no es un archivo" #: input/input_libvirt.ml:206 msgid "" "bad checksum for disk %d/%d\n" "Expected checksum: %s\n" "Actual checksum: %s" msgstr "" "Suma de verificación incorrecta para el disco %d/%d\n" "Suma de verificación esperada: %s\n" "Suma de verificación real: %s" #: lib/libvirt_utils.ml:59 msgid "cannot find libvirt domain ‘%s’: %s" msgstr "no se puede encontrar el dominio libvirt ‘%s’: %s" #: lib/libvirt_utils.ml:96 msgid "" "cannot find libvirt pool ‘%s’: %s\n" "\n" "Use ‘virsh pool-list --all’ to list all available pools, and ‘virsh pool-" "dumpxml ’ to display details about a particular pool.\n" "\n" "To set the pool which virt-v2v uses, add the ‘-os ’ option." msgstr "" "no se puede encontrar el consorcio libvirt «%s>: %s\n" "\n" "Utilice «virsh pool-list --all» para enumerar todos los consorcios " "disponibles, y «virsh pool-dumpxml » para mostrar detalles sobre el " "consorcio particular.\n" "\n" "Para establecer el consorcio el cual utiliza virt-v2v, añada la opción ‘-os " "’." #: lib/libvirt_utils.ml:110 msgid "cannot find libvirt volume ‘%s’: %s" msgstr "no se puede encontrar el volumen libvirt ‘%s’: %s" #: common/mlcustomize/firstboot.ml:235 msgid "" "cannot finish firstboot installation by running ‘%s’ because host cpu (%s) " "and guest arch (%s) are not compatible. The firstboot service may not run " "at boot." msgstr "" "no se puede finalizar el primer arranque de instalación al ejecutar ‘%s’ " "porque la cpu huésped (%s) y la arquitectura invitara (%s) no son " "compatibles. Es posible que el servicio firstboot no se ejecute al iniciar " "el sistema." #: output/output_libvirt.ml:180 msgid "cannot get libvirt domain capabilities: %s" msgstr "no se pueden obtener las capacidades del dominio libvirt: %s" #: output/output_libvirt.ml:85 msgid "cannot get libvirt hypervisor capabilities: %s" msgstr "no se pueden obtener las capacidades de hipervisor libvirt: %s" #: v2v/v2v.ml:105 inspector/inspector.ml:95 in-place/in_place.ml:102 msgid "cannot parse --mac \"%s\" parameter" msgstr "no se pueden interpretar el parámetro --mac «%s»" #: v2v/v2v.ml:129 inspector/inspector.ml:119 in-place/in_place.ml:126 msgid "cannot parse --mac ip %s: doesn’t look like “%s” is an IP address" msgstr "" "no se puede interpretar la ip %s --mac: «%s» no parece ser una dirección IP" #: v2v/v2v.ml:143 inspector/inspector.ml:133 in-place/in_place.ml:140 msgid "cannot parse --mac ip prefix length field as an integer: %s" msgstr "" "no se puede interpretar ip --mac prefijo con campo de longitud como un " "entero: %s" #: common/mlcustomize/guest_packages.ml:29 msgid "" "cannot use ‘%s’ because no package manager has been detected for this guest " "OS.\n" "\n" "If this guest OS is a common one with ordinary package management then this " "may have been caused by a failure of libguestfs inspection.\n" "\n" "For OSes such as Windows that lack package management, this is not " "possible. Try using one of the ‘--firstboot*’ flags instead (described in " "the virt-customize(1) manual)." msgstr "" "No puede utilizar «%s» porque ninguna gestor de paquete ha sido detectado " "para este SO invitado.\n" "\n" "Si este SO invitado es uno usual con gestión de empaquetado ordinario " "entonces esto puede haber sido causado por un fallo de inspección en " "libguestfs.\n" "\n" "Para varios SO como Windows que les falta gestión de empaquetado, esto no es " "posible. Intenta utilizar un indicador '--firstboot' en su lugar (descrito " "en el manual de virt-customiza(1)." #: output/output_ovirt.ml:91 msgid "" "cannot write files to the NFS server as %d:%d, even though we appear to be " "running as root. This probably means the NFS client or idmapd is not " "configured properly.\n" "\n" "You will have to chown the files that virt-v2v creates after the run, " "otherwise oVirt will not be able to import the VM." msgstr "" "No se puede escribir archivos al servidor NFS como %d:%d, incluso aunque " "aparezca estar ejecutando como root. Esto probablemente significa que el " "cliente de NFS o idmapd no está configurado correctamente.\n" "\n" "Tendrás que hacer un chown a los archivos que cree virt-v2v tras ejecutar, " "en otro caso oVirt no será capaz de importar la MV." #: output/output_ovirt.ml:99 msgid "" "cannot write files to the NFS server as %d:%d. You might want to stop virt-" "v2v (^C) and rerun it as root." msgstr "" "no se pueden escribir archivos en el servidor NFS como %d:%d. Quizás quieras " "detener virt-v2v (^C) y volver a ejecutarlo como root." #: common/mlcustomize/customize_cmdline.ml:508 msgid "command '%s' cannot be used in command files, see the man page" msgstr "" "el comando '%s' no se puede usar en archivos de comandos, consulte la página " "de man" #: common/mlcustomize/customize_cmdline.ml:525 msgid "command '%s' not valid, see the man page" msgstr "el comando '%s' no es válido; consulte la página de man" #: common/mldrivers/linux_bootloaders.ml:318 msgid "could not add grub2 serial console (ignored)" msgstr "no se pudo agregar la consola serie de grub2 (ignorada)" #: input/ssh.ml:52 msgid "" "could not copy the VMX file from the remote server, see earlier error " "messages" msgstr "" "no se pudo copiar el archivo VMX desde el servidor remoto; consulte los " "mensajes de error más anteriores" #: output/output_libvirt.ml:211 msgid "" "could not define libvirt domain: %s.\n" "The libvirt XML is still available in ‘%s’. Try running ‘virsh -c %s define " "%s’ yourself instead." msgstr "" "no se pudo definir el dominio de libvirt: %s.\n" "El archivo XML de libvirt aún está disponible en %s. Intente ejecutar " "manualmente el comando `virsh -c %s define %s`." #: common/mldrivers/linux_bootloaders.ml:221 msgid "could not determine a way to update the configuration of Grub2" msgstr "" "no se pudo determinar una forma de actualizar la configuración de Grub2" #: input/input_vddk.ml:243 msgid "" "could not fetch thumbprint from the server, you mus use ‘-io vddk-" "thumbprint=XX:XX...’" msgstr "" "no se pudo obtener la huella digital del servidor, debe usar ‘-io vddk-" "thumbprint=XX:XX...’" #: common/mldrivers/linux_bootloaders.ml:376 msgid "could not find bootloader mount point (%s): %s" msgstr "" "no se pudo encontrar el punto de montaje del gestor de arranque (%s): %s" #: common/mldrivers/windows_drivers.ml:91 msgid "" "could not find registry entry " "HKEY_LOCAL_MACHINE\\SYSTEM\\DriverDatabase\\DeviceIds in this Windows " "guest. It may be either a very old or very new version of Windows that we " "cannot process." msgstr "" "no se pudo encontrar la entrada de registro " "HKEY_LOCAL_MACHINE\\SYSTEM\\DriverDatabase\\DeviceIds en este sistema " "operativo Windows. Es posible que se trate de una versión muy antigua o muy " "reciente de Windows que no podemos procesar." #: common/mlcustomize/firstboot.ml:232 msgid "" "could not finish firstboot installation by running ‘%s’ because the command " "failed: %s" msgstr "" "no se pudo finalizar la instalación de firstboot ejecutando '%s' porque el " "comando falló: %s" #. input/input_vcenter_https.ml:94 #: input/select_input.ml:66 input/input_xen_ssh.ml:71 input/input_vddk.ml:151 msgid "could not parse '-ic %s'. Original error message was: %s" msgstr "no se pudo interpretar '-ic %s'. El mensaje de error original fue: %s" #: input/parse_libvirt_xml.ml:407 input/parse_libvirt_xml.ml:54 msgid "could not parse device name ‘%s’ from the source libvirt XML" msgstr "" "no se pudo interpretar el nombre del dispositivo '%s' del archivo XML de " "origen de libvirt" #: input/OVF.ml:168 msgid "could not parse disk rasd:HostResource from OVF document" msgstr "" "no se pudo interpretar el disco de rasd:HostResource desde el documento OVF" #: input/input_ova.ml:98 msgid "could not parse ovf:Name from OVF document" msgstr "no se pudo interpretar ovf:Name desde el documento OVF" #: output/output_ovirt.ml:247 msgid "" "could not read the %s specified by the '-os %s' parameter on the command " "line. Is it really an OVirt %s? The original error is: %s" msgstr "" "no se pudo leer el %s especificado por el parámetro '-os %s' sobre la línea " "de comando. ¿Realmente es un OVirt %s? El error original es: %s" #: common/mldrivers/linux_bootloaders.ml:336 msgid "" "could not rebuild grub2 configuration file (%s). This may mean that grub " "output will not be sent to the serial port, but otherwise should be " "harmless. Original error message: %s" msgstr "" "no se pudo reconstruir el archivo de configuración de grub2 (%s). Esto " "puede significar que la salida de grub no se enviará al puerto serie, pero " "por lo demás no debería causar problemas. Mensaje de error original: %s" #: output/output_libvirt.ml:156 msgid "could not refresh libvirt pool ‘%s’: %s" msgstr "no se pudo refrescar el consorcio de libvirt '%s': %s" #: common/mldrivers/linux_bootloaders.ml:320 msgid "could not remove grub2 serial console (ignored)" msgstr "no se pudo retirar la consola serie de grub2 (ignorada)" #: common/mltools/registry.ml:93 msgid "" "decode_utf16le: Windows UTF16-LE string contains non-7-bit characters. This " "is a bug in %s, please report it." msgstr "" "decode_utf16le: La cadena UTF16-LE de Windows contiene caracteres que no son " "de 7-bit. Esto es un error en %s; por favor, repórtelo." #: common/mltools/registry.ml:87 msgid "" "decode_utf16le: Windows string does not appear to be in UTF16-LE encoding. " "This could be a bug in %s." msgstr "" "decode_utf16le: La cadena de Windows no parece estar codificada en UTF16-LE. " "Esto pudo ser un defecto en %s." #: common/mldrivers/linux_bootloaders.ml:126 msgid "didn't find grub entry for kernel %s" msgstr "no se encontró apunte de grub para el kernel %s" #: input/input_disk.ml:150 msgid "disks on the command line have mixed formats" msgstr "los discos en la línea de comandos tienen formatos mezclados" #: input/parse_libvirt_xml.ml:194 msgid "display in the input libvirt XML was ignored" msgstr "" "exhiba dentro del XML de entrada de libvirt fueron " "ignorados" #: output/output_qemu.ml:147 msgid "don’t know how to convert UEFI guests for architecture %s" msgstr "no conoce como convertir invitados de UEFI para arquitectura %s" #: common/mldrivers/linux.ml:158 msgid "don’t know how to find file owner using %s" msgstr "no sé cómo encontrar al propietario del archivo usando %s" #: common/mldrivers/linux.ml:89 msgid "don’t know how to get list of files from package using %s" msgstr "no sé cómo obtener la lista de archivos del paquete usando %s" #: common/mltools/curl.ml:82 msgid "downloading %s" msgstr "descargando %s" #: lib/networks.ml:84 msgid "" "duplicate --mac parameter. Duplicate mappings specified for MAC address %s." msgstr "" "parámetro --mac duplicado. Se especificaron asignaciones duplicadas para la " "dirección MAC %s." #: lib/networks.ml:102 msgid "" "duplicate -b/--bridge parameter. Duplicate mappings specified for bridge %s." msgstr "" "parámetro -b/--bridge duplicado. Se especificaron asignaciones duplicadas " "para el puente %s." #: lib/networks.ml:108 msgid "duplicate -b/--bridge parameter. Only one default mapping is allowed." msgstr "" "parámetro duplicado -b/--bridge. Solo se permite una asignación " "predeterminada." #: lib/networks.ml:90 msgid "" "duplicate -n/--network parameter. Duplicate mappings specified for network " "%s." msgstr "" "parámetro -n/--network duplicado. Se especificaron asignaciones duplicadas " "para la red %s." #: lib/networks.ml:96 msgid "duplicate -n/--network parameter. Only one default mapping is allowed." msgstr "" "parámetro -n/--network duplicado. Solo se concede una asignación " "predeterminada." #: input/OVF.ml:143 msgid "error parsing disk fileRef" msgstr "error al interpretar el archivo FileRef del disco" #: input/input_ova.ml:124 msgid "error uncompressing %s, see earlier error messages" msgstr "error al descomprimir %s, consulte los mensajes de error anteriores" #: input/OVA.ml:210 input/OVA.ml:112 msgid "error unpacking %s, see earlier error messages" msgstr "error al desempaquetar %s, consulte los mensajes de error anteriores" #: common/mltools/tools_utils.ml:248 msgid "exception: %s" msgstr "excepción: %s" #: common/mltools/tools_utils.ml:455 msgid "exited with error %d" msgstr "salido con error %d" #: lib/utils.ml:34 msgid "exited with non-zero error code %d" msgstr "salido con error sin cero con código %d" #: input/input_disk.ml:147 msgid "expected >= 1 disk name on the command line" msgstr "esperaba nombre del disco >= 1 en la línea de comando" #: common/mltools/xpath_helpers.ml:36 msgid "" "expecting XML expression to return an integer (expression: %s, matching " "string: %s)" msgstr "" "esperaba expresión en XML para devolver un entero (expresión: %s, cadena " "coincidente: %s)" #: common/mltools/tools_utils.ml:440 msgid "external command" msgstr "comando externo" #: output/output_ovirt_upload.ml:265 msgid "failed server prechecks, see earlier errors" msgstr "pre‐comprobante de servidor incorrecto, consulte errores anteriores" #: output/output_ovirt_upload.ml:507 msgid "failed to create virtual machine, see earlier errors" msgstr "ha fallado al crear máquina virtual, consulte errores anteriores" #: output/output_ovirt_upload.ml:479 msgid "failed to finalize the transfers, see earlier errors" msgstr "" "incorrecto al finalizar las transferencias, consulte errores anteriores" #: common/mldrivers/linux_bootloaders.ml:208 msgid "failed to find grub2-mkconfig binary (but Grub2 was detected on guest)" msgstr "" "incorrecto al encontrar el binario de grub2-mkconfig (pero Grub2 fue " "detectado en invitado)" #: input/OVA.ml:461 msgid "failed to parse line returned by tar: %S" msgstr "incorrecto al interpretar línea devuelta por tar: %S" #: output/output_ovirt_upload.ml:394 msgid "failed to start transfer, see earlier errors" msgstr "incorrecto al iniciar transferencia, consulte errores anteriores" #: output/output_ovirt_upload.ml:311 msgid "failed vmchecks, see earlier errors" msgstr "incorrecto al comprobar vmcheck, consulte errores anteriores" #: common/mltools/tools_utils.ml:239 msgid "failure: %s" msgstr "incorrecto: %s" #: input/input_ova.ml:134 msgid "file ‘%s’ not found in the ova" msgstr "archivo «%s» no encontrado en la ova" #: common/mlcustomize/firstboot.ml:143 msgid "" "firstboot: unknown version for old firstboot.service file %s (md5=%s), it " "will not be removed" msgstr "" "firstboot: versión desconocida para archivo firsboot.service anterior %s " "(md5=%s), no será eliminado" #: common/mltools/tools_utils.ml:258 msgid "generated by %s %s" msgstr "generado por %s %s" #: output/create_libvirt_xml.ml:39 msgid "get_osinfo_id: unknown guest operating system: %s" msgstr "get_osinfo_id: sistema operativo invitado desconocido: %s" #: output/output_glance.ml:66 msgid "" "glance: glance client is not installed or set up correctly. You may need to " "set environment variables or source a script to enable authentication. See " "preceding messages for details." msgstr "" "glance: cliente glance no está instalado o configurado apropiadamente. " "Puede necesitar establecer las variables del entorno o fuente de un script " "para habilitar autenticación. Consulte mensajes precedentes para detalles." #: output/output_glance.ml:139 msgid "glance: image upload to glance failed, see earlier errors" msgstr "glance: imagen subida a glance incorrecta, consulte errores anteriores" #: common/mlcustomize/firstboot.ml:386 common/mlcustomize/firstboot.ml:164 msgid "guest type %s is not supported" msgstr "tipo de invitado %s no está mantenido" #: common/mlcustomize/firstboot.ml:413 msgid "guest type %s/%s is not supported" msgstr "tipo invitado %s/%s no está mantenido" #: common/mltools/tools_utils.ml:749 msgid "" "host (%s/%s) and guest (%s/%s) are not compatible, so you cannot use command " "line options that involve running commands in the guest. Use --firstboot " "scripts instead." msgstr "" "host (%s/%s) e invitado (%s/%s) no son compatibles, por tanto no se puede " "utilizar las opciones de línea de comando que involucren ejecutar comandos " "en el invitado. Utilice los script de --firstboot en su lugar." #: common/mlcustomize/customize_run.ml:209 msgid "hostname could not be set for this type of guest" msgstr "nombre de host no pudo ser fijado para este tipo de invitado" #: common/mldrivers/linux_kernels.ml:342 msgid "ignoring kernel %s in bootloader, as it does not exist." msgstr "se hace caso omiso al kernel %s en bootloader, ya que no existe." #: output/output_vdsm.ml:160 msgid "image directory (%s) does not exist or is not a directory" msgstr "el directorio de imagen (%s) no existe o no es un directorio" #: input/parse_libvirt_xml.ml:81 msgid "in the libvirt XML metadata, is missing or empty" msgstr "" "en los metadatos XML de libvirt, está ausente o vacío" #: input/parse_libvirt_xml.ml:87 msgid "in the libvirt XML metadata, is missing or empty" msgstr "dentro de los metadatos XML de libvirt, está ausente o vacío" #: input/input_vcenter_https.ml:52 input/input_libvirt.ml:107 msgid "in-place mode does not work with HTTP source" msgstr "el modo in-place no funciona con origen HTTP" #: input/input_vddk.ml:146 msgid "in-place mode does not work with VDDK source" msgstr "modo in-place no funciona con origen VDDK" #: input/input_vmx.ml:43 msgid "in-place mode does not work with VMX source" msgstr "modo in-place no funciona con origen VMX" #: input/input_xen_ssh.ml:50 msgid "in-place mode does not work with Xen over SSH source" msgstr "modo in-place no funciona con Xen sobre origen SSH" #: output/output_kubevirt.ml:116 msgid "" "incorrect number of '-oo disk' parameters. This guest has %d disks, but the " "parameter was used %d times." msgstr "" "número incorrecto de parámetros ‘-oo disk’. Este invitado tiene %d discos, " "pero el parámetro fue utilizado %d veces." #: input/input_xen_ssh.ml:119 msgid "" "input from xen over ssh does not support disks stored on remote block " "devices. See virt-v2v-input-xen(1) section \"Xen or ssh conversions from " "block devices\"." msgstr "" "entrada desde xen sobre ssh no admite discos almacenados en dispositivos de " "bloque remoto. Consulte virt-v2v-input-xen(1) en la sección \"Xen or ssh " "conversions fron block devices\"." #. in-place/in_place.ml:397 #: v2v/v2v.ml:590 open/open.ml:238 inspector/inspector.ml:353 msgid "" "insufficient free space in the conversion server temporary directory %s " "(%s).\n" "\n" "Either free up space in that directory, or set the LIBGUESTFS_CACHEDIR " "environment variable to point to another directory with more than 1GB of " "free space.\n" "\n" "See also the virt-v2v(1) manual, section \"Minimum free space check in the " "host\"." msgstr "" "espacio libre insuficiente en la directorio %s temporal de conversión del " "servidor (%s).\n" "\n" "O bien libere espacio en ese directorio, o bien establezca la variable del " "entorno LIBGUESTFS_CACHEDIR para apuntar a otro directorio con más de 1Gb de " "espacio libre.\n" "\n" "Además consulte el manual virt-v2v(1), en la sección \"Minimum free space " "check in the host\"." #: common/mltools/tools_utils.ml:246 msgid "internal error: Not_found exception was thrown" msgstr "error interno: fue lanzada la excepción Not_found" #: common/mltools/tools_utils.ml:243 msgid "internal error: assertion failed at %s, line %d, char %d" msgstr "error interno: aserción incorrecta en %s, línea %d, char %d" #: common/mltools/tools_utils.ml:241 msgid "internal error: invalid argument: %s" msgstr "error interno: argumento no válido: %s" #: common/mldrivers/linux.ml:128 msgid "internal error: is_file_owned: dpkg command returned no output" msgstr "" "error interno: is_file_owned: el comando dpkg no devolvió ninguna salida" #: common/mldrivers/linux.ml:133 msgid "internal error: is_file_owned: unexpected output from dpkg command: %s" msgstr "error interno: is_file_owned: salida inesperada desde comando dpkg: %s" #: common/mldrivers/linux_bootloaders.ml:130 msgid "internal error: regular expression did not match ‘%s’" msgstr "error interno: expresión regular no coincidió con «%s»" #: v2v/v2v.ml:548 msgid "internal error: wait returned unexpected process ID %d status \"%s\"" msgstr "" "error interno: wait devolvió ID %d con estado «%s» el cual no es esperado" #: v2v/v2v.ml:114 inspector/inspector.ml:104 in-place/in_place.ml:111 msgid "invalid --mac ip option" msgstr "opción --mac no válida" #: v2v/v2v.ml:98 inspector/inspector.ml:88 in-place/in_place.ml:95 msgid "invalid -b/--bridge parameter" msgstr "parámetro -b/--bridge no válido" #: v2v/v2v.ml:90 inspector/inspector.ml:80 in-place/in_place.ml:87 msgid "invalid -n/--network parameter" msgstr "parámetro -n/--network no válido" #: input/parse_domain_from_vmx.ml:402 msgid "invalid cpuid.coresPerSocket < number of vCPUs" msgstr "cpu.coresPerSocket < número de vCPU no válido" #. common/mlcustomize/customize_cmdline.ml:153 #. common/mlcustomize/customize_cmdline.ml:145 #: common/mlcustomize/customize_cmdline.ml:161 msgid "invalid format for '--%s' parameter, see the man page" msgstr "formato no válido para parámetro ‘--%s’, consulte la página man" #: common/mltools/tools_utils.ml:359 msgid "invalid format string for --machine-readable: %s" msgstr "cadena con formato no válido para --machine-readable: %s" #: lib/utils.ml:279 msgid "invalid input filename (%s)" msgstr "entrada no válida del nombre de archivo (%s)" #: input/OVA.ml:445 msgid "invalid offset returned by tar: %S" msgstr "desplazamiento no válido devuelto por tar: %S" #: common/mltools/tools_utils.ml:374 msgid "invalid output fd for --machine-readable: %s" msgstr "salida fd no válida para --machine-readable: %s" #: common/mltools/tools_utils.ml:376 msgid "invalid output for --machine-readable: %s" msgstr "salida no válida para --machine-readable: %s" #: common/mltools/tools_utils.ml:368 msgid "invalid output stream for --machine-readable: %s" msgstr "flujo de salida no válido para --machine-readable: %s" #: common/mlcustomize/password.ml:73 msgid "invalid password selector ‘%s’; see the man page" msgstr "selector «%s» de contraseña no válida; consulte la página man" #: input/OVA.ml:450 msgid "invalid size returned by tar: %S" msgstr "tamaño no válido devuelto por tar: %S" #: common/mlcustomize/ssh_key.ml:45 msgid "invalid ssh-inject selector ‘%s’; see the man page" msgstr "selector ssh-inject «%s» no válido; consulte la página man" #: input/OVF.ml:82 msgid "invalid vmw:CoresPerSocket (%d) ignored" msgstr "vmw:CoresPerSocket no válido (%d) se hace caso omiso" #: input/OVF.ml:88 msgid "invalid vmw:CoresPerSocket < number of cores" msgstr "vmw:CoresPerSocket < número de núcleos no válido" #: common/mldrivers/linux_bootloaders.ml:114 msgid "kernel %s is not under grub tree %s" msgstr "el kernel %s no está debajo del árbol de grub %s" #: common/mltools/tools_utils.ml:539 common/mltools/tools_utils.ml:458 msgid "killed by signal %d" msgstr "matado por señal %d" #: common/mltools/tools_utils.ml:237 msgid "libguestfs error: %s" msgstr "error de libguestfs: %s" #: lib/libvirt_utils.ml:72 msgid "" "libvirt domain ‘%s’ is running or paused. Converting a live guest will " "result in corrupted output. However this is safe if you're converting from a " "snapshot" msgstr "" "dominio libvirt «%s» está ejecutándose o pausado. Convertir un invitado vivo " "resultará en salida corrupta. Sin embargo esto es seguro si está " "convirtiendo desde una captura de pantalla" #: common/mlcustomize/customize_run.ml:47 msgid "log file %s: %s (ignored)" msgstr "archivo bitácora %s: %s (se descarta)" #: input/OVA.ml:147 msgid "" "making OVA directory public readable to work around libvirt bug https://" "bugzilla.redhat.com/1045069" msgstr "" "haciendo legible el directorio OVA para que funcione rodeando de defecto de " "libvirt, https://bugzilla.redhat.com/1045069" #: input/input_ova.ml:86 msgid "manifest has a checksum for non-existent file %s (ignored)" msgstr "" "el manifiesto tiene un comprobante para archivo no existente %s (se descarta)" #: common/mlcustomize/customize_cmdline.ml:472 msgid "md5|sha256|sha512" msgstr "" #: common/mlcustomize/customize_run.ml:119 msgid "method '%s' is no longer supported" msgstr "el método '%s' no está mantenido por más tiempo" #: common/mltools/JSON_parser.ml:39 msgid "missing value for the key ‘%s’" msgstr "valor ausente para la clave ‘%s’" #: input/OVA.ml:276 msgid "more than one .ovf file was found in %s" msgstr "se encontraron más de un archivo .ovf en %s" #: common/mltools/JSON_parser.ml:34 msgid "more than value for the key ‘%s’" msgstr "más que el valor para la clave «%s»" #: output/output_ovirt.ml:222 msgid "" "mount command failed, see earlier errors.\n" "\n" "This probably means you didn't specify the right %s path [-os %s], or else " "you need to rerun virt-v2v as root." msgstr "" "el comando mount ha fallado, consulte errores anteriores.\n" "\n" "Esto probablemente significa que no especificó el derecho %s ruta [-os %s], " "o bien necesite volver a ejecutar virt-v2v como root." #: common/mlcustomize/customize_run.ml:103 msgid "" "multiple --root-password/--password options set the password for user ‘%s’ " "twice" msgstr "" "múltiples opciones --root-password/--password establecen la contraseña para " "el usuario «%s» dos veces" #: input/input_vddk.ml:319 msgid "" "nbdkit VDDK plugin is not installed or not working. It is required if you " "want to use VDDK.\n" "\n" "It 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 ’/%s/libvixDiskLib.so.?’.\n" "\n" "See also the virt-v2v-input-vmware(1) manual." msgstr "" "El complemento nbdkit VDDK no está instalado o no funciona. Está requerido " "si quieres utilizar VDDK.\n" "\n" " Parece que no especificó la ruta correcta en la opción '-io vddk-libdir', o " "su copia del directorio VDDK está incompleta. Tendría que haber una " "biblioteca llamada '/%s/libvixDiskLib.so.?'.\n" "\n" "Consulte además el manual de virt-v2v-input-vmware(1)." #: input/input_vddk.ml:313 msgid "" "nbdkit VDDK plugin is not installed or not working. It is required if you " "want to use VDDK.\n" "\n" "The 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" "\n" "See also the virt-v2v-input-vmware(1) manual." msgstr "" "El complemento nbdkit de VDDK no está instalado o no funciona. Está " "requerido si quieres utilizar VDDK.\n" "\n" "El complemento VDDK no está habilitado por defecto cuando compila nbdkit. " "Tiene que leer las instrucciones en las fuentes de nbdkit bajo 'plugins/vddk/" "README.VDDK' para encontrar como habilitar el complemento de VDDK.\n" "\n" "Consulte además el manual de virt-v2v-input-vmware(1)." #: lib/nbdkit.ml:223 msgid "nbdkit did not start up. See previous debugging messages for problems." msgstr "" "nbdkit no ha arrancado. Consulte los mensajes de depuración previos para " "problemas." #: lib/nbdkit.ml:225 msgid "" "nbdkit did not start up. There may be errors printed by nbdkit above.\n" "\n" "If the messages above are not sufficient to diagnose the problem then add " "the ‘virt-v2v -v -x’ options and examine the debugging output carefully." msgstr "" "nbdkit no ha arancado. Puede haber errores declarados por nbdkit encima.\n" "\n" "Si los mensajes encima no son suficientes para diagnosticar el problema " "entonces añade las opciones 'virt-v2v -v -x' y examine la salida de " "depuración cuidadosamente." #: input/nbdkit_ssh.ml:36 input/nbdkit_curl.ml:32 input/input_vddk.ml:283 msgid "nbdkit is not installed or not working" msgstr "nbdkit no está instalado o no funciona" #: input/input_disk.ml:92 msgid "" "nbdkit is not installed or not working. It is required to use ‘-i disk’." msgstr "" "nbdkit no está instalado o no funciona. Está requerido para utilizar '-i " "disco'." #: input/input_libvirt.ml:68 msgid "" "nbdkit is not installed or not working. It is required to use ‘-i libvirt|" "libvirtxml’." msgstr "" "nbdkit no está instalado o no funciona. Es requerido para utilizar '-i " "libvirt|libvirtxml'." #: output/output.ml:178 output/output.ml:77 msgid "" "nbdkit is not installed or not working. It is required to use ‘-o disk’." msgstr "" "nbdkit no está instalado o no funciona. Está requerido para utilizar '-i " "disk'." #: output/output_null.ml:57 msgid "" "nbdkit is not installed or not working. It is required to use ‘-o null’." msgstr "" "nbdkit no está instalado o no funciona. Está requerido para utilizar '-o " "null'." #: output/output_ovirt_upload.ml:163 msgid "" "nbdkit is not installed or not working. It is required to use ‘-o ovirt-" "upload’. See the virt-v2v-output-ovirt(1) manual." msgstr "" "nbdkit no es instalado o no funciona. Está requerido para utilizar ‘-o " "ovirt-upload'. Consulte el manual de virt-v2v-output-ovirt(1)." #: input/input_vddk.ml:285 msgid "nbdkit must be >= 1.45.11 for input from VDDK" msgstr "nbdkit debe ser >= 1.45.11 para entrada desde VDDK" #: output/output_ovirt_upload.ml:176 msgid "" "nbdkit python plugin is not installed or not working. It is required if you " "want to use ‘-o ovirt-upload’.\n" "\n" "See also the virt-v2v-output-ovirt(1) manual." msgstr "" "nbdkit con complemento en python no está instalado o no funciona. Está " "requerido si desea utilizar ‘-o ovirt-upload'.\n" "\n" "Consulte también el manual de virt-v2v-output-ovirt(1)." #: output/output_ovirt_upload.ml:190 msgid "" "nbdkit was compiled without SELinux support. You will have to recompile " "nbdkit with libselinux-devel installed, or else set SELinux to Permissive " "mode while doing the conversion." msgstr "" "nbdkit fue compilado sin mantenimiento de SELinux. Tendrá que recompile " "nbdkit con libselinux-devel instalado, o por otra parte establezca SELinux a " "modo Permissive mientras haga la conversión." #. input/input_libvirt.ml:76 #. input/input_disk.ml:98 #: input/nbdkit_ssh.ml:42 input/nbdkit_curl.ml:38 input/input_vddk.ml:289 msgid "nbdkit-cow-filter is not installed or not working" msgstr "nbdkit-cow-filter no está instalado o no funciona" #: input/nbdkit_curl.ml:35 msgid "nbdkit-curl-plugin is not installed" msgstr "nbdkit-curl-plugin no está instalado" #. input/input_disk.ml:96 #: output/output.ml:181 output/output.ml:80 input/input_libvirt.ml:72 msgid "nbdkit-file-plugin is not installed or not working" msgstr "nbdkit-file-plugin no está instalado o no funciona" #: input/input_libvirt.ml:74 msgid "nbdkit-nbd-plugin is not installed or not working" msgstr "nbdkit-nbd-plugin no está instalado o no funciona" #: output/output_null.ml:60 msgid "nbdkit-null-plugin is not installed or not working" msgstr "nbdkit-null-plugin no está instalado o no funciona" #: input/nbdkit_ssh.ml:39 msgid "nbdkit-ssh-plugin is not installed" msgstr "nbdkit-ssh-plugin no está instalado" #: input/input_vddk.ml:287 msgid "nbdkit-vddk-plugin is not installed" msgstr "nbdkit-vddk-plugin no está instalado" #: lib/nbdkit.ml:56 msgid "nbdkit: unexpected version in --dump-config: %s" msgstr "nbdkit: versión inesperada en --dump-config: %s" #. input/input_vcenter_https.ml:49 #. input/input_ova.ml:46 #. input/input_libvirt.ml:35 #. input/input_disk.ml:39 #: input/input_xen_ssh.ml:47 input/input_vmx.ml:40 msgid "no -io (input options) are allowed here" msgstr "no está concedido ningún -io (opciones de entrada) aquí" #: output/output_ovirt.ml:44 output/output_null.ml:42 #: output/output_glance.ml:44 msgid "no -oo (output options) are allowed here" msgstr "no está concedido ningún -oo (opciones de salida) aquí" #: input/OVA.ml:273 msgid "no .ovf file was found in %s" msgstr "no fue encontrado ningún archivo .ovf en %s" #: common/mldrivers/linux_bootloaders.ml:402 msgid "no bootloader detected" msgstr "ningún cargador de arranque detectado" #: input/parse_domain_from_vmx.ml:359 msgid "no displayName key found in VMX file" msgstr "ningún clave displayName encontrada dentro del archivo VMX" #: input/OVF.ml:148 msgid "no href in ovf:File (id=%s)" msgstr "ningún href en ovf:File (id=%s)" #: common/mldrivers/linux_kernels.ml:194 msgid "no initrd was found in /boot matching %s %s." msgstr "ningún initrd fue encontrado en /boot coincidiendo con %s %s." #: common/mldrivers/linux_kernels.ml:317 msgid "" "no installed kernel packages were found.\n" "\n" "This probably indicates that %s was unable to inspect this guest properly." msgstr "" "no fue encontrado ningún paquete del kernel instalado.\n" "\n" "Esto probablemente indica que %s era incapaz de inspeccionar este invitado " "apropiadamente." #: common/mldrivers/linux_kernels.ml:354 msgid "" "no kernels were found in the bootloader configuration.\n" "\n" "This probably indicates that %s was unable to parse the bootloader " "configuration of this guest." msgstr "" "no fue encontrado ningún kernel en la configuración del cargador de " "arranque.\n" "\n" "Esto indica probablemente que %s no fue capaz de interpretar la " "configuración del cargador de arranque de este invitado." #: output/python_script.ml:55 msgid "no python binary called ‘%s’ can be found on the $PATH" msgstr "" "ningún binario de python invocó a '%s' puede ser encontrado en la ruta $PATH" #: input/select_input.ml:106 msgid "" "no support for remote libvirt connections to '-ic %s'. The conversion may " "fail when it tries to read the source disks." msgstr "" "sin mantenimiento para conexiones remotas de libvirt a '-ic %s'. La " "conversión puede fallar cuando intenta leer los discos de fuente." #: lib/create_ovf.ml:1027 msgid "" "oVirt cannot emulate ‘%s’ sound cards. This sound card will be dropped from " "the output." msgstr "" "oVirt no se puede emular tarjetas de sonido ‘%s'. Esta tarjeta de sonido " "estará abandonada desde la salida." #: lib/create_ovf.ml:875 lib/create_ovf.ml:512 msgid "oVirt does not support the output format ‘%s’, only raw or qcow2" msgstr "oVirt no mantiene el formato ‘%s' de salida, solo en bruto o qcow2" #: output/output_openstack.ml:120 msgid "openstack: -oo server-id= not present" msgstr "openstack: -oo server-id= no presente" #: output/output_openstack.ml:338 msgid "" "openstack: failed to attach cinder volume to VM, see earlier error messages" msgstr "" "openstack: incorrecto al adjuntar la ceniza del volumen a MV, consulte los " "mensajes de error anteriores" #: output/output_openstack.ml:291 msgid "openstack: failed to create a cinder volume, see earlier error messages" msgstr "" "openstack: incorrecto al crear un volumen ceniza, consulte los mensajes de " "error más anteriores" #: output/output_openstack.ml:304 msgid "" "openstack: failed to query cinder volume status, see earlier error messages" msgstr "" "openstack: incorrecto al solicitar estado del volumen cenizo, consulte " "mensajes de error más anteriores" #: output/output_openstack.ml:442 msgid "" "openstack: failed to set image properties on cinder volume, see earlier " "error messages" msgstr "" "openstack: incorrecto al poner propiedades de imagen en volumen ceniza, " "consulte los mensajes de error más anteriores" #: output/output_openstack.ml:199 msgid "" "openstack: precheck failed, there may be a problem with authentication, see " "earlier error messages" msgstr "" "openstack: pre‐comprobante incorrecto, puede haber un problema con la " "autenticación, consulte los mensajes de error más anteriores" #: output/output_openstack.ml:311 msgid "" "openstack: unknown volume status \"%s\": expected \"creating\" or " "\"available\"" msgstr "" "openstack: estado de volumen «%s» desconocido: se esperaba «creating» o " "«available»" #: output/output.ml:133 msgid "output mode only supports raw or qcow2 format (format: %s)" msgstr "modo de salida solo admite formato en bruto o qcow2 (formato: %s)" #: input/OVF.ml:263 msgid "" "ova disk has an unknown VMware controller type (%d), please report this as a " "bug supplying the *.ovf file extracted from the ova" msgstr "" "disco ova tiene un tipo de controlador (%d) VMware desconocido, informe esto " "como un defecto proporcionando el archivo *.ovf extraído desde el ova" #: input/OVF.ml:259 msgid "" "ova disk has no parent controller, please report this as a bug supplying the " "*.ovf file extracted from the ova" msgstr "" "disco ova no tiene controlador de antecesor, informe esto como un defecto " "proporcionando el archivo *.ovf extraído desde el ova" #: output/output_ovirt_upload.ml:367 msgid "" "ovirt-upload: -of %s: Only output format ‘raw’ or ‘qcow2’ is supported. If " "the input is in a different format then force one of these output formats by " "adding either ‘-of raw’ or ‘-of qcow2’ on the command line." msgstr "" "ovirt-upload: -of %s: solo el formato de salida en bruto 'raw' o 'qcow2' " "está mantenido. Si la entrada está en un formato diferente entonces fuerza " "uno de estos formatos de salida para añadir o bien '-of raw' o '-of qcow2' " "en la línea de comando." #: common/mlcustomize/password.ml:51 msgid "" "password-crypto: unknown algorithm %s, use \"md5\", \"sha256\", \"sha512\" " "or \"yescrypt\"" msgstr "" "password-crypto: algoritmo %s desconocido, utilice \"md5\", \"sha256\", " "\"sha512\" o \"yescrypt\"" #: common/mlcustomize/password.ml:197 msgid "" "password: using insecure md5 password encryption for guest of type %s " "version %d.%d.\n" "If this is incorrect, use --password-crypto option and file a bug." msgstr "" "password: utilizando cifrado de contraseña md5 inseguro para invitado de " "tipo %s, versión %d.%d.\n" "Si esto es incorrecto, utilice la opción --password-crypto envíe un defecto." #: common/mlcustomize/customize_run.ml:359 msgid "passwords could not be set for this type of guest" msgstr "las contraseñas no pudieron ser fijados para este tipo de invitado" #: lib/qemuNBD.ml:125 msgid "" "qemu-nbd did not start up. See previous debugging messages for problems." msgstr "" "qemu-nbd no ha arrancado. Consulte los mensajes de depuración anteriores " "para problemas." #: lib/qemuNBD.ml:127 msgid "" "qemu-nbd did not start up. There may be errors printed by qemu-nbd above.\n" "\n" "If the messages above are not sufficient to diagnose the problem then add " "the ‘virt-v2v -v -x’ options and examine the debugging output carefully." msgstr "" "qemu-nbd no arrancó. Puede haber errores declarados por qemu-nbd antes.\n" "\n" "Si los mensajes anteriores no son suficientes para diagnosticar el problema " "entonces añade las opciones 'virt-v2v -v -x' y examinar la salida de " "depuración cuidadosamente." #: lib/qemuNBD.ml:47 msgid "qemu-nbd: unexpected version in --version: %s" msgstr "qemu-nbd: versión inesperada en --version: %s" #: common/mlcustomize/customize_run.ml:77 msgid "random seed could not be set for this type of guest" msgstr "" "la semilla aleatoria no pudo ser establecida para este tipo de invitado" #: input/parse_domain_from_vmx.ml:44 msgid "remote vmx ‘%s’ could not be parsed as a URI" msgstr "vmx '%s' remoto no pudo ser interpretado como un URI" #. common/mlcustomize/inject_virtio_win.ml:357 #. common/mlcustomize/inject_virtio_win.ml:352 #: common/mlcustomize/inject_virtio_win.ml:362 msgid "" "root directory ‘/’ is missing from the virtio-win directory or ISO.\n" "\n" "This should not happen and may indicate that virtio-win or virt-v2v is " "broken in some way. Please report this as a bug with a full debug log." msgstr "" "directorio raíz '/' falta desde el directorio virtio-win o ISO.\n" "\n" "Esto no sucedería y puede indicar que virtio-win o virt-v2v está estropeado " "de alguna manera. Informe esto como un defecto con una bitácora depurante " "completa." #: common/mltools/tools_utils.ml:417 common/options/keys.c:264 #, c-format msgid "selector '%s': invalid TYPE" msgstr "selector '%s': TYPE no válido" #: common/mltools/tools_utils.ml:409 common/options/keys.c:254 #, c-format msgid "selector '%s': missing FILENAME, or too many fields" msgstr "selector '%s': ausencia de FILENAME, o campos excesivos" #: common/mltools/tools_utils.ml:399 common/options/keys.c:232 #, c-format msgid "selector '%s': missing ID" msgstr "selector '%s': falta ID" #: common/mltools/tools_utils.ml:404 common/options/keys.c:245 #, c-format msgid "selector '%s': missing KEY_STRING, or too many fields" msgstr "selector '%s': KEY_STRING ausente, o demasiados campos" #: common/mltools/tools_utils.ml:401 common/options/keys.c:239 #, c-format msgid "selector '%s': missing TYPE" msgstr "Selector '%s': TIPO desaparecido" #: common/mltools/tools_utils.ml:413 common/options/keys.c:262 #, c-format msgid "selector '%s': too many fields" msgstr "selector '%s': campos excesivos" #: lib/utils.ml:35 msgid "signalled by signal %d" msgstr "señalado por señal %d" #: common/mlcustomize/guest_packages.ml:40 msgid "" "sorry, ‘%s’ with the ‘%s’ package manager has not been implemented yet.\n" "\n" "You can work around this by using one of the ‘--run*’ or ‘--firstboot*’ " "options instead (described in the virt-customize(1) manual)." msgstr "" "disculpe, ‘%s' con el gestor de paquete ‘%s' no ha sido implementada aún.\n" "\n" "Puedes funcionar alrededor de esto utilizando una de las opciones de '--run' " "o '--firstboot*' en su lugar (descritas en el manual de virt-customize(1))." #: common/mlcustomize/ssh_key.ml:57 msgid "ssh-inject: $HOME environment variable is not set" msgstr "ssh-inject: la variable del entorno $HOME no está establecida" #: common/mlcustomize/ssh_key.ml:93 msgid "ssh-inject: key is an empty string" msgstr "ssh-inject: la clave es una cadena vacía" #: common/mlcustomize/ssh_key.ml:66 msgid "ssh-inject: no public key file found in %s" msgstr "ssh-inject: ningún archivo de clave pública encontrado en %s" #: common/mlcustomize/ssh_key.ml:83 msgid "ssh-inject: public key file (%s) is empty" msgstr "ssh-inject: el archivo de clave pública (%s) está vacío" #: common/mlcustomize/ssh_key.ml:112 msgid "ssh-inject: the user %s does not exist on the guest" msgstr "ssh-inject: el usuario %s no existe en el invitado" #. common/mltools/tools_utils.ml:461 #: lib/utils.ml:36 common/mltools/tools_utils.ml:542 msgid "stopped by signal %d" msgstr "detenido por señal %d" #: output/changeuid.ml:58 msgid "subprocess exited with non-zero error code %d" msgstr "subproceso terminado con código de error %d distinto de cero" #: output/changeuid.ml:60 msgid "subprocess signalled or stopped by signal %d" msgstr "subproceso señalizado o detenido por señal %d" #: lib/utils.ml:33 msgid "success" msgstr "logrado" #: output/create_libvirt_xml.ml:297 msgid "" "target hypervisor does not support floppy devices, but floppy devices were " "found in the source guest" msgstr "" "hipervisor destino no admite dispositivos de disquete, pero los dispositivos " "de disquete se encontraron dentro del invitado origen" #: output/output_ovirt_upload.ml:156 msgid "" "the Python module ‘ovirtsdk4’ could not be loaded, is it installed? See " "previous messages for problems." msgstr "" "el módulo de Python 'ovirtsdk4' no pudo ser cargado, ¿está instalad? " "Consulte los mensajes anteriores para problemas." #: output/output_ovirt_upload.ml:453 msgid "the cluster ‘%s’ does not support the architecture %s but %s" msgstr "el cluster '%s' no admite la arquitectura %s pero sí %s" #: common/mlcustomize/customize_run.ml:59 msgid "" "the command may have failed because the network is disabled. Try either " "removing ‘--no-network’ or adding ‘--network’ on the command line." msgstr "" "el comando puede haber fallado porque la red está inhabilitada. Pruebe o " "bien retirando '--no-network' o añadiendo '--network' en la línea de comando." #: common/mltools/JSON_parser.ml:84 msgid "the key ‘%s’ was not found in a list of objects" msgstr "la clave '%s' no fue encontrada dentro de un listado de objetos" #: output/output_ovirt_upload.ml:288 msgid "" "the number of ‘-oo ovirt-disk-uuid’ parameters passed on the command line " "has to match the number of guest disk images (for this guest: %d)" msgstr "" "el número de los parámetros de '-oo ovirt-disk-uuid' son pasados a la línea " "de comando tiene que coincidir con el número de imágenes de disco invitados " "(para este invitado: %d)" #: output/output_vdsm.ml:133 msgid "" "the number of ‘-oo vdsm-image-uuid’ and ‘-oo vdsm-vol-uuid’ parameters " "passed on the command line has to match the number of guest disk images (for " "this guest: %d)" msgstr "" "el número de los parámetros de '-oo vdsm-image-uuid' y '-oo vdsm-vol-uuid’ " "son pasados a la línea de comando tiene que coincidir con el número de " "imágenes de disco invitados (para este invitado: %d)" #: output/output_libvirt.ml:239 msgid "the target hypervisor does not support a %s KVM guest" msgstr "el hypervisor destino no admite un invitado %s KVM" #: common/mltools/JSON_parser.ml:78 msgid "the value for key ‘%s’ is not a string as expected" msgstr "el valor para clave ‘%s' no es una cadena como esperaba" #: common/mltools/JSON_parser.ml:50 msgid "the value for the key ‘%s’ is not a bool" msgstr "el valor para la clave '%s' no es un arranque" #: common/mltools/JSON_parser.ml:45 msgid "the value for the key ‘%s’ is not a string" msgstr "el valor para la clave ‘%s' no es una cadena" #: common/mltools/JSON_parser.ml:70 msgid "the value for the key ‘%s’ is not an integer" msgstr "el valor para la clave '%s' no es un entero" #: common/mltools/JSON_parser.ml:55 msgid "the value for the key ‘%s’ is not an object" msgstr "el valor para la clave '%s' no es un objeto" #: common/mltools/JSON_parser.ml:59 msgid "the value is not an object" msgstr "el valor no es un objeto" #: common/mltools/JSON_parser.ml:35 msgid "the value of the key ‘%s’ is not an object" msgstr "el valor de la clave '%s' no es un objeto" #: lib/create_ovf.ml:519 msgid "" "the virtual size of the input disk %d is not an exact multiple of 512 " "bytes. The virtual size is: %Ld.\n" "\n" "This probably means something unexpected is going on, so please file a bug " "about this issue." msgstr "" "el tamaño virtual del disco de entrada %d no es un múltiplo exacto de 512 " "bytes. El tamaño virtual es: %Ld.\n" "\n" "Esta probablemente significa que algo no esperado está continuando, tal que " "envíe un defecto acerca del asunto." #: output/output_openstack.ml:144 msgid "" "the ‘%s’ program is not available. It is needed to communicate with " "OpenStack." msgstr "" "el programa '%s' no está disponible. Es necesario comunicar con OpenStack." #: output/output_ovirt.ml:265 msgid "" "there are multiple UUIDs in the %s (%s). This is unexpected, and may be a " "bug in virt-v2v or OVirt." msgstr "" "hay múltiples UUID en el %s (%s). Esto es inesperado, y puede ser un " "defecto en virt-v2v u OVirt." #: output/output_ovirt.ml:262 msgid "there are no UUIDs in the %s (%s). Is it really an OVirt %s?" msgstr "no hay ningún UUID en el %s (%s). ¿Realmente esto es un OVirt %s?" #: common/mlcustomize/inject_virtio_win.ml:153 msgid "" "there are no virtio drivers available for this version of Windows (%d.%d %s " "%s %s). virt-v2v looks for drivers in %s\n" "\n" "The guest will be configured to use slower emulated devices." msgstr "" "no hay disponible ninguna unidad virtio para esta versión de Windows (%d.%d " "%s %s %s). virt-v2v busca unidades en %s\n" "\n" "El invitado estará configurado para utilizar unidades emuladas más lentas." #: common/mlcustomize/inject_virtio_win.ml:175 msgid "" "there is no virtio block device driver for this version of Windows (%d.%d " "%s). virt-v2v looks for this driver in %s\n" "\n" "The guest will be configured to use a slower emulated device." msgstr "" "no hay ninguna unidad del dispositivo de bloque virtio para esta versión de " "Windows (%d.%d %s). virt-v2v busca esta unidad en %s\n" "\n" "El invitado será configurado para utilizar un dispositivo de emulador más " "lento." #: common/mlcustomize/inject_virtio_win.ml:206 msgid "" "there is no virtio network driver for this version of Windows (%d.%d %s). " "virt-v2v looks for this driver in %s\n" "\n" "The guest will be configured to use a slower emulated device." msgstr "" "no hay ninguna unidad de red virtio para esta versión de Windows (%d.%d " "%s). virt-v2v busca esta unidad en %s\n" "\n" "El invitado será configurado para utilizar una unidad emulada más lenta." #: input/parse_libvirt_xml.ml:545 msgid "this guest has a direct network interface which will be ignored" msgid_plural "this guest has direct network interfaces which will be ignored" msgstr[0] "" "este invitado tiene un interfaz de red directa la cual se hará caso omiso" msgstr[1] "" "este invitado tiene interfaces de red directa la cual se hará caso omiso" #: input/parse_libvirt_xml.ml:527 msgid "this guest has a passthrough host device which will be ignored" msgid_plural "this guest has passthrough host devices which will be ignored" msgstr[0] "" "este invitado tiene un dispositivo de hospedaje con traspaso la cual será " "ignorada" msgstr[1] "" "este invitado tiene dispositivos de hospedaje con traspaso la cual será " "ignorada" #: input/parse_libvirt_xml.ml:248 msgid "this guest has no non-removable disks" msgstr "este invitado no tiene ningún disco no extraíble" #: output/output.ml:65 msgid "this output module doesn't support copying more than %d disks" msgstr "esta salida del módulo no admite copia de más de %d discos" #: common/mlcustomize/timezone.ml:35 msgid "timezone '%s' does not exist, use a location like 'Europe/London'" msgstr "" "la zona horaria '%s' no existe, utilice una localización como 'Europe/Madrid'" #: common/mlcustomize/customize_run.ml:304 msgid "timezone could not be set for this type of guest" msgstr "la zona horaria no pudo ser establecida para este tipo de invitado" #: input/OVA.ml:318 msgid "unable to parse line from manifest file: %S" msgstr "no es capaz de interpretar línea desde archivo de declaración: %S" #: common/mltools/urandom.ml:37 msgid "unexpected end of file while reading /dev/urandom" msgstr "final inesperado del archivo mientras leía /dev/urandom" #: input/input_libvirt.ml:196 msgid "unexpected output from the %s command" msgstr "salida inesperada desde el comando %s" #: common/mltools/checksums.ml:58 msgid "unhandled checksum type ‘%s’" msgstr "comprobante sumatorio no manipulado de tipo '%s'" #: lib/types.ml:524 msgid "unknown --root option: %s" msgstr "opción --root desconocida: %s" #: input/select_input.ml:51 msgid "unknown -i option: %s" msgstr "opción -i desconocida: %s" #: output/select_output.ml:74 msgid "unknown -o option: %s" msgstr "opción -o desconocida: %s" #: v2v/v2v.ml:164 msgid "unknown -oa option: %s" msgstr "opción -oa desconocida: %s" #: input/input_libvirt.ml:189 msgid "unknown method='%s'" msgstr "desconoce con method='%s'" #: input/OVF.ml:103 msgid "unknown Config:firmware value %s (expected \"bios\" or \"efi\")" msgstr "valor %s de Config:firmware desconocida (esperaba \"bios\" o \"efi\")" #: lib/create_ovf.ml:446 lib/create_ovf.ml:247 msgid "unknown Windows 10 variant: %s (%s)" msgstr "variante de Windows 10 desconocida: %s (%s)" #: v2v/v2v.ml:319 in-place/in_place.ml:256 msgid "unknown block driver ‘--block-driver %s’" msgstr "bloque de unidad '--block-driver %s' desconocida" #: input/parse_domain_from_vmx.ml:415 msgid "unknown firmware value '%s', assuming BIOS" msgstr "valor desconocido del firmware '%s', se asume BIOS" #: lib/create_ovf.ml:454 lib/create_ovf.ml:255 msgid "unknown guest operating system: %s %s %d.%d %s (%s)" msgstr "sistema operativo de invitado desconocido: %s %s %d.%d %s (%s)" #: v2v/v2v.ml:329 open/open.ml:132 inspector/inspector.ml:238 msgid "unknown input transport ‘-it %s’" msgstr "transporte de entrada desconocido ‘-it %s'" #: input/parse_domain_from_vmx.ml:428 msgid "unknown sound device '%s' ignored" msgstr "dispositivo de sonido '%s' desconocido se hace caso omiso" #: input/parse_libvirt_xml.ml:215 msgid "unknown sound model %s ignored" msgstr "modelo de sonido %s desconocido se hace caso omiso" #: input/OVF.ml:156 msgid "unsupported compression in OVF: %s" msgstr "compresión no admitida en OVF: %s" #: input/input_vcenter_https.ml:123 msgid "" "vcenter: was not found in the XML. You need to " "upgrade to libvirt ≥ 1.2.20." msgstr "" "vcenter: no fue encontrado en el XML. Necesita " "mejorar a la versión de libvirt ≥ 1.2.20." #: input/vCenter.ml:79 msgid "vcenter: URL not found: %s" msgstr "vcenter: URL no encontrada: %s" #: input/vCenter.ml:70 msgid "vcenter: incorrect username or password" msgstr "vcenter: identificador de usuario o contraseña incorrecta" #: input/vCenter.ml:72 msgid "" "vcenter: incorrect username or password. You might need to specify the " "username in the URI like this: [vpx|esx|..]://USERNAME@[etc]" msgstr "" "vcenter: identificador de usuario o contraseña incorrecta. Tal vez necesite " "especificar el identificador de usuario en la URI como esta: [vpx|esx|..]://" "USERNAME@[etc]" #: input/vCenter.ml:84 msgid "vcenter: invalid response from server: %s" msgstr "vcenter: respuesta no válida desde servidor: %s" #: input/vCenter.ml:194 msgid "vcenter: no status code in output of ‘curl’ command." msgstr "vcenter: sin código de estado en salida de comando ‘curl’." #: output/output_vdsm.ml:148 msgid "vdsm: invalid -os parameter does not contain a valid UUID: %s" msgstr "vdsm: parámetro -os no válido no contiene un UUID válido: %s" #: output/output_openstack.ml:56 msgid "" "virt-v2v -oo server-id= [os-*=...]\n" "\n" "Specify the name or UUID of the conversion appliance using\n" "\n" " virt-v2v ... -o openstack -oo server-id=\n" "\n" "When virt-v2v runs it will attach the Cinder volumes to the\n" "conversion appliance, so this name or UUID must be the name\n" "of the virtual machine on OpenStack where virt-v2v is running.\n" "\n" "In addition, all usual OpenStack “os-*” parameters or “OS_*”\n" "environment variables can be used.\n" "\n" "Openstack “--os-*” parameters must be written as “virt-v2v -oo os-*”.\n" "\n" "For example:\n" "\n" " virt-v2v -oo os-username=\n" "\n" " equivalent to openstack: --os-username=\n" " or the environment variable: OS_USERNAME=\n" "\n" " virt-v2v -oo os-project-name=\n" "\n" " equivalent to openstack: --os-project-name=\n" " or the environment variable: OS_PROJECT_NAME=\n" "\n" "The os-* parameters and environment variables are optional.\n" msgstr "" "virt-v2v -oo servidor-id= [os-*=...]\n" "\n" "Especifique el nombre o el UUID de la conversión de aplicación utilizando\n" "\n" " virt-v2v ... -o openstack -oo server-id=\n" "\n" "Cuando se ejecuta virt-v2v, adjuntará los volúmenes de Cinder al\n" "aparato de conversión, por lo que este nombre o UUID debe ser el nombre\n" "de la máquina virtual OpenStack donde virt-v2v está ejecutándose.\n" "\n" "Además, se pueden utilizar todos los parámetros habituales de\n" "OpenStack \"os-*\" o las variables de entorno \"OS_*\".\n" "\n" "Los parámetros “--os-*” de Openstack deben ser escritos como “virt-v2v -oo " "os-*”.\n" "\n" "Por ejemplo:\n" "\n" " virt-v2v -oo os-username=\n" "\n" " equivalente a openstack: --os-username= o\n" " la variable del entorno: OS_USERNAME=\n" "\n" " virt-v2v -oo os-project-name=\n" "\n" " equivalente a openstack: --os-project-name= o\n" " la variable del entorno: OS_PROJECT_NAME=\n" "\n" "Los parámetros os-* y variables del entorno son opcionales.\n" #: input/parse_libvirt_xml.ml:189 msgid "" "virt-v2v does not support local displays, so in the " "input libvirt XML was ignored" msgstr "" "virt-v2v no mantiene pantallas locales, por tanto en el " "XML de libvirt de entrada se hizo caso omiso" #: input/select_input.ml:83 msgid "virt-v2v-in-place does not support remote libvirt URIs" msgstr "virt-v2v-in-place no admite las URI libvirt remotas" #: input/parse_domain_from_vmx.ml:50 msgid "vmx URI path component looks incorrect" msgstr "componente de ruta URI de vnx parece incorrecto" #: input/parse_domain_from_vmx.ml:48 msgid "vmx URI remote server name omitted" msgstr "nombre de servidor con URI vmx se hace caso omiso" #: input/parse_domain_from_vmx.ml:46 msgid "vmx URI start with ‘ssh://...’" msgstr "inicio de URI vmx con 'ssh://…'" #: input/VMX.ml:313 msgid "vmx parser: cannot parse this line, ignoring: %s" msgstr "intérprete vmx: esta línea no se puede interpretar, se descarta: %s" #: input/VMX.ml:346 msgid "vmx parser: duplicate key '%s' ignored" msgstr "intérprete vmx: clave '%s' duplicada se hace caso omiso" #: output/output_openstack.ml:299 msgid "wait for cinder volume status to change to \"available\"" msgstr "espera estado de volumen ceniza para cambiar a \"disponible\"" #: output/output_openstack.ml:360 msgid "waiting for cinder volume %s to attach to the conversion appliance" msgstr "esperando volumen ceniza %s para adjuntar al instrumento de conversión" #: open/open.ml:136 msgid "you must supply the --run parameter" msgstr "debe proporcionar el parámetro --run" #: input/input_xen_ssh.ml:87 input/input_vddk.ml:189 msgid "‘-ic %s’ URL does not contain a host name field" msgstr "‘-ic %s’ de URL no contiene un campo de nombre del host" #: input/input_vddk.ml:273 msgid "‘-io vddk-file=’ must be used exactly %d times" msgstr "‘-io vddk-file=’ debe ser utilizado exactamente %d veces" #: input/input_vddk.ml:297 msgid "" "‘-io vddk-libdir=%s’ does not point to a directory. See the virt-v2v-input-" "vmware(1) manual." msgstr "" "‘-io vddk-libdir=%s’ no apunta a un directorio. Consulte el manual virt-v2v-" "input-vmware(1)." #: output/output.ml:85 msgid "" "‘-oo compressed’ is only allowed when the output format is a local qcow2-" "format file, i.e. ‘-of qcow2’" msgstr "" "‘-oo compressed’ solo está concedido cuando el formato de salida es un " "archivo local de qcow2-format, p.e. ‘-of qcow2’" #: input/input_vddk.ml:232 msgid "" "‘openssl’ command not found: automatically detecting thumbprint is not " "possible, so you must use ‘-io vddk-thumbprint=XX:XX...’" msgstr "" "comando 'openssl' no encontrado: no es posible detectar automáticamente la " "impresión del pulgar, por tanto debe utilizar ‘-io vddk-thumbprint=XX:XX...’" #: common/mltools/getopt-c.c:68 #, c-format msgid "Try ‘%s --help’ or consult %s(1) for more information.\n" msgstr "Intente ‘%s --help' o consulte %s(1) para más información.\n" #: common/mltools/getopt-c.c:187 #, c-format msgid "%s: ‘%s’ is not a numeric value.\n" msgstr "%s: ‘%s' no es un valor numérico.\n" #: common/mltools/getopt-c.c:193 #, c-format msgid "%s: %s: integer out of range\n" msgstr "%s: %s: entero fuera de rango\n" #: common/mltools/getopt-c.c:383 #, c-format msgid "%s: ‘%s’ is not allowed for -%c; allowed values are:\n" msgstr "%s: ‘%s' no está concedido para -%c; los valores concedidos son:\n" #: common/mltools/getopt-c.c:386 #, c-format msgid "%s: ‘%s’ is not allowed for %s%s; allowed values are:\n" msgstr "%s: ‘%s' no está concedido para %s%s; los valores concedidos son:\n" #: common/mltools/getopt-c.c:421 #, c-format msgid "Extra parameter on the command line: ‘%s’.\n" msgstr "Parámetro adicional en la línea de comando: '%s'.\n" #: common/options/config.c:72 #, c-format msgid "%s: line %d: error parsing configuration file: %s" msgstr "%s: línea %d: error al interpretar archivo de configuración: %s" #: common/options/decrypt.c:52 #, c-format msgid "string size overflow" msgstr "tamaño de cadena desbordada" #: common/options/decrypt.c:170 #, c-format msgid "" "'clevis_luks_unlock', needed for decrypting %s, is unavailable in this " "libguestfs version" msgstr "" "'clevis_luks_unlock', necesario para descifrar %s, no está disponible en " "esta versión de libguestfs" #: common/options/decrypt.c:184 #, c-format msgid "" "could not find key to open LUKS encrypted %s.\n" "\n" "Try using --key on the command line.\n" "\n" "Original error: %s (%d)" msgstr "" "no se pudo encontrar clave para abrir LUKS %s cifrado.\n" "\n" "Intente utilizar --key en la línea de comando.\n" "\n" "Error original: %s (%d)" #: common/options/inspect.c:78 #, c-format msgid "" "%s: no operating system was found on this disk\n" "\n" "If using guestfish ‘-i’ option, remove this option and instead\n" "use the commands ‘run’ followed by ‘list-filesystems’.\n" "You can then mount filesystems you want by hand using the\n" "‘mount’ or ‘mount-ro’ command.\n" "\n" "If using guestmount ‘-i’, remove this option and choose the\n" "filesystem(s) you want to see by manually adding ‘-m’ option(s).\n" "Use ‘virt-filesystems’ to see what filesystems are available.\n" "\n" "If using other virt tools, this disk image won’t work\n" "with these tools. Use the guestfish equivalent commands\n" "(see the virt tool manual page).\n" msgstr "" "%s: ningún sistema operativo estuvo encontrado en este disco\n" "\n" "Si utilizando la opción guestfish ‘-i', retire esta opción y en su lugar\n" "utiliza las instrucciones ‘run’ seguidos por ‘list-filesystems'.\n" "Entonces puedes montar sistemas de archivos deseados a\n" "mano utilizando las instrucciones ‘mount’ o ‘mount-ro'.\n" "\n" "Si utiliza guestmount ‘-i', retire esta opción y escoja el sistema de\n" "archivos que desee ver manualmente añadiendo la opción '-m' .\n" "Emplee ‘virt-filesystems' para ver lo que sistema de archivos está\n" "disponible.\n" "\n" "Si utiliza otro de las herramientas virt, esta imagen de disco\n" "no funcionaría con estas herramientas. Emplee las instrucciones\n" "guestfish equivalentes (consulte la página del manual de la\n" "herramienta virt).\n" #: common/options/inspect.c:99 #, c-format msgid "" "%s: multi-boot operating systems are not supported\n" "\n" "If using guestfish ‘-i’ option, remove this option and instead\n" "use the commands ‘run’ followed by ‘list-filesystems’.\n" "You can then mount filesystems you want by hand using the\n" "‘mount’ or ‘mount-ro’ command.\n" "\n" "If using guestmount ‘-i’, remove this option and choose the\n" "filesystem(s) you want to see by manually adding ‘-m’ option(s).\n" "Use ‘virt-filesystems’ to see what filesystems are available.\n" "\n" "If using other virt tools, multi-boot operating systems won’t work\n" "with these tools. Use the guestfish equivalent commands\n" "(see the virt tool manual page).\n" msgstr "" "%s: los sistemas operativos multi‐arranque no están mantenidos\n" "\n" "Si emplea la opción ‘guestfish -i’, retire esta opción y utilice en\n" "su lugar las instrucciones ‘run’ seguido por ‘list-filesystems'.\n" "Entonces puedes montar sistemas de archivos deseados a mano\n" "utilizando las instrucciones ‘mount’ o ‘mount-ro'.\n" "\n" "Si utiliza guestmount ‘-i’, retire esta opción y elija el sistema de\n" "archivo deseado para verlo manualmente añadiendo la opción\n" "‘-m’. Utilice ‘virt‐filesystems' para ver qué sistema de archivos\n" "está disponible.\n" "\n" "Si utilizando otras herramientas de virt, los S.O. de multi‐arranque\n" "no funcionarían con estas herramientas. Utilice las instrucciones\n" "equivalentes de guestfish (consulte la página del manual de virt).\n" #: common/options/inspect.c:161 #, c-format msgid "%s: some filesystems could not be mounted (ignored)\n" msgstr "" "%s: algunos sistemas de archivos no han podido ser montados (se " "descartaron)\n" #: common/options/inspect.c:178 #, c-format msgid "Operating system: %s\n" msgstr "Sistema operativo: %s\n" #: common/options/inspect.c:196 #, c-format msgid "%s mounted on %s\n" msgstr "%s montado en %s\n" #: common/options/keys.c:63 #, c-format msgid "Enter key or passphrase (\"%s\"): " msgstr "Ingrese la llave o la frase de acceso (\"%s\"): " #: common/options/keys.c:146 #, c-format msgid "size_t overflow" msgstr "size_t desbordado" #: common/options/keys.c:193 #, c-format msgid "could not read key from user" msgstr "no se pudo leer tecla desde usuario" #: common/options/options.c:283 #, c-format msgid "%s: ‘%s’ could not be mounted.\n" msgstr "%s: ‘%s’ no pudo ser montado.\n" #: common/options/options.c:287 #, c-format msgid "" "%s: Check mount(8) man page to ensure options ‘%s’\n" "%s: are supported by the filesystem that is being mounted.\n" msgstr "" "%s: Compruebe la página man de mount(8) para asegurar las opciones ‘%s'\n" "%s: se mantiene con el sistema de archivos que esté siendo montando.\n" #: common/options/options.c:291 #, c-format msgid "%s: Did you mean to mount one of these filesystems?\n" msgstr "%s: ¿quiso decir montar uno de estos sistemas de archivos?\n" #: common/options/options.c:304 #, c-format msgid "cannot determine the subvolume for %s: %s (%d)" msgstr "no se puede determinar el sub‐volumen para %s: %s (%d)" #: common/options/uri.c:119 #, c-format msgid "%s: --add: could not parse URI ‘%s’\n" msgstr "%s: --add: no se pudo interpretar la URI ‘%s'\n" #: common/options/uri.c:130 #, c-format msgid "%s: %s: scheme of URI is NULL or empty\n" msgstr "%s: %s: esquema de URI es NULL o está vacío\n" #: common/options/uri.c:138 #, c-format msgid "%s: %s: cannot have both a server name and a socket query parameter\n" msgstr "" "%s: %s: no se puede tener ambos un nombre de servidor y un parámetro de " "consulta de zócalo\n" #: common/utils/utils.c:107 #, c-format msgid "%s exited successfully" msgstr "%s ha salido correctamente" #: common/utils/utils.c:110 #, c-format msgid "%s exited with error status %d" msgstr "%s ha salido con estado de error %d" #: common/utils/utils.c:114 #, c-format msgid "%s killed by signal %d (%s)" msgstr "%s muerto por señal %d (%s)" #: common/utils/utils.c:118 #, c-format msgid "%s stopped by signal %d (%s)" msgstr "%s detenido por señal %d (%s)" #: common/utils/utils.c:122 #, c-format msgid "%s exited for an unknown reason (status %d)" msgstr "%s salió por una razón desconocida (estado %d)" ================================================ FILE: po/eu.po ================================================ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR Red Hat Inc. # This file is distributed under the same license as the virt-v2v package. # FIRST AUTHOR , YEAR. # msgid "" msgstr "" "Project-Id-Version: virt-v2v 2.7.7\n" "Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?" "component=libguestfs&product=Virtualization+Tools\n" "POT-Creation-Date: 2025-02-16 17:05+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" "Language: eu\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" #: input/input_ova.ml:135 common/mltools/tools_utils.ml:235 msgid "%s" msgstr "" #: common/mltools/getopt.ml:73 msgid "" "%s\n" "Options:\n" msgstr "" #: common/mltools/tools_utils.ml:695 common/mlcustomize/customize_run.ml:390 msgid "%s (ignored)" msgstr "" #: common/mltools/checksums.ml:71 msgid "%s did not return any output" msgstr "" #: common/mlcustomize/customize_run.ml:183 msgid "%s does not exist in the guest" msgstr "" #: output/output_ovirt.ml:275 msgid "" "%s does not exist or is not a directory.\n" "\n" "Most likely cause: Either the %s (%s) has not been attached to any Data " "Center, or the path %s is not an %s at all.\n" "\n" "You have to attach the %s to a Data Center using the oVirt user interface " "first.\n" "\n" "If you don’t know what the %s mount point should be then you can also find " "this out through the oVirt user interface." msgstr "" #: common/mlcustomize/customize_run.ml:113 msgid "%s ignored for non-Windows guest" msgstr "" #: common/mlcustomize/customize_run.ml:186 msgid "%s is not a regular file in the guest" msgstr "" #. open/open.ml:39 #. inspector/inspector.ml:153 #. inspector/inspector.ml:40 #. in-place/in_place.ml:164 #. in-place/in_place.ml:45 #: v2v/v2v.ml:194 v2v/v2v.ml:183 v2v/v2v.ml:159 v2v/v2v.ml:44 open/open.ml:68 msgid "%s option used more than once on the command line" msgstr "" #: common/mltools/tools_utils.ml:231 common/mltools/tools_utils.ml:202 msgid "%s: %s" msgstr "" #: common/mltools/tools_utils.ml:233 msgid "%s: %s: %s" msgstr "" #: common/mltools/on_exit.ml:77 msgid "" "%s: Exiting on signal %s\n" "%!" msgstr "" #: common/mlcustomize/inject_virtio_win.ml:411 msgid "%s: cannot open virtio-win ISO file: %s" msgstr "" #: common/mlcustomize/customize_run.ml:64 msgid "%s: command exited with an error" msgstr "" #: v2v/v2v.ml:277 msgid "" "%s: convert a guest to use KVM\n" "\n" "virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi -os imported " "esx_guest\n" "\n" "virt-v2v -i libvirtxml guest-domain.xml -o local -os /var/tmp\n" "\n" "virt-v2v -i disk disk.img -o local -os /var/tmp\n" "\n" "There is a companion front-end called \"virt-p2v\" which comes as an\n" "ISO or CD image that can be booted on physical machines.\n" "\n" "A short summary of the options is given below. For detailed help please\n" "read the man page virt-v2v(1).\n" msgstr "" #: in-place/in_place.ml:217 msgid "" "%s: convert a guest to use KVM in-place\n" "\n" "Note this program modifies the guest in-place with no backup.\n" "Normally you should use virt-v2v.\n" "\n" "virt-v2v-in-place -i libvirtxml guest-domain.xml\n" "\n" "virt-v2v-in-place -i disk disk.img\n" "\n" "A short summary of the options is given below. For detailed help please\n" "read the man page virt-v2v-in-place(1).\n" msgstr "" #: input/input_vddk.ml:207 msgid "%s: enter password for ‘%s’: " msgstr "" #: common/mltools/tools_utils.ml:172 msgid "%s: error: %s" msgstr "" #: inspector/inspector.ml:198 msgid "" "%s: estimate disk space needed before virt-v2v conversion\n" "\n" "virt-v2v-inspector -i disk disk.img [-O output.xml]\n" "\n" "A short summary of the options is given below. For detailed help please\n" "read the man page virt-v2v-inspector(1).\n" msgstr "" #: open/open.ml:94 msgid "" "%s: open the virt-v2v input and run a program on it\n" "\n" "virt-v2v-open -i disk disk.img --run 'virt-inspector --format=raw @@'\n" "\n" "A short summary of the options is given below. For detailed help please\n" "read the man page virt-v2v-open(1).\n" msgstr "" #: common/mltools/tools_utils.ml:726 msgid "%s: operation timed out" msgstr "" #: input/OVA.ml:127 input/OVA.ml:121 msgid "" "%s: unsupported file format\n" "\n" "Formats which we currently understand for '-i ova' are: tar (uncompressed, " "compress with gzip or xz), zip" msgstr "" #: common/mltools/tools_utils.ml:191 msgid "%s: warning: %s" msgstr "" #. common/mlcustomize/customize_cmdline.ml:258 #: common/mlcustomize/customize_cmdline.ml:367 msgid "'CMD+ARGS'" msgstr "" #: common/mlcustomize/customize_run.ml:133 msgid "" "--append-line: line must not contain newline characters. Use the --append-" "line option multiple times to add several lines." msgstr "" #: common/mlcustomize/customize_run.ml:152 msgid "--chown: could not parse numeric UID:GID from %s:%s" msgstr "" #: common/mlcustomize/customize_run.ml:216 msgid "" "--inject-blnsvr: blnsvr.exe not found in virtio-win source that you specified" msgstr "" #: common/mlcustomize/customize_run.ml:225 msgid "" "--inject-qemu-ga: QEMU Guest Agent MSI not found in virtio-win source that " "you specified" msgstr "" #: common/mlcustomize/customize_run.ml:241 msgid "" "--inject-virtio-win: virtio drivers were not found for this Windows version " "in the virtio-win source that you specified" msgstr "" #: v2v/v2v.ml:146 inspector/inspector.ml:136 in-place/in_place.ml:143 msgid "--mac ip prefix length field is out of range" msgstr "" #: v2v/v2v.ml:340 msgid "--parallel parameter must be >= 1" msgstr "" #: input/input_disk.ml:42 msgid "-i disk: expecting a disk image (filename) on the command line" msgstr "" #: input/input_xen_ssh.ml:65 msgid "-i libvirt: expecting -ic parameter for Xen over SSH connection" msgstr "" #: input/input_vddk.ml:142 input/input_vcenter_https.ml:88 msgid "-i libvirt: expecting -ic parameter for vcenter connection" msgstr "" #: input/input_vcenter_https.ml:101 msgid "-i libvirt: expecting -ic parameter to contain vcenter server name" msgstr "" #: input/input_vcenter_https.ml:78 msgid "-i libvirt: expecting -ip passwordfile parameter for vCenter connection" msgstr "" #. input/input_vcenter_https.ml:70 #. input/input_libvirt.ml:41 #: input/input_xen_ssh.ml:57 input/input_vddk.ml:132 msgid "-i libvirt: expecting a libvirt guest name on the command line" msgstr "" #: input/input_libvirt.ml:59 msgid "-i libvirtxml: expecting a libvirt XML filename on the command line" msgstr "" #: input/input_ova.ml:243 msgid "-i ova: OVF references file ‘%s’ which was not found in the OVA archive" msgstr "" #: input/input_ova.ml:78 msgid "" "-i ova: corrupt OVA: checksum of disk %s does not match manifest (actual = " "%s, expected = %s)" msgstr "" #: input/input_ova.ml:52 msgid "-i ova: expecting an OVA file name on the command line" msgstr "" #: input/OVA.ml:361 msgid "" "-i ova: invalid OVA file: path ‘%s’ references a file outside the archive" msgstr "" #: input/input_vmx.ml:57 msgid "-i vmx: cannot use -it vddk in this input mode" msgstr "" #: input/input_vmx.ml:60 msgid "-i vmx: expecting a VMX file or ssh:// URI" msgstr "" #: input/vCenter.ml:159 msgid "" "-ip PASSWORD_FILE parameter ignored because 'user@' was not given in the URL" msgstr "" #: input/input_vddk.ml:119 msgid "-it vddk: ‘-io %s’ is not a valid input option" msgstr "" #: output/output.ml:54 msgid "-o %s: %s option cannot be used in this output mode" msgstr "" #: output/output_disk.ml:66 msgid "-o disk: output directory was not specified, use '-os /dir'" msgstr "" #: output/output_libvirt.ml:59 output/output_disk.ml:56 msgid "-o disk: unknown output option ‘-oo %s’" msgstr "" #: output/output_kubevirt.ml:81 msgid "-o kubevirt: output directory was not specified, use '-os /dir'" msgstr "" #: output/output_kubevirt.ml:91 msgid "" "-o kubevirt: the guest name must contain only lowercase alphanumeric " "characters, '-' or '.', and must start and end with an alphanumeric " "character. Rerun virt-v2v with the '-on name' option to rename it." msgstr "" #: output/output_kubevirt.ml:71 msgid "-o kubevirt: unknown output option ‘-oo %s’" msgstr "" #: output/output_libvirt.ml:120 msgid "" "-o libvirt: output pool ‘%s’ does not have /pool/target/path element. See " "virt-v2v-output-local(1)" msgstr "" #: output/output_libvirt.ml:124 msgid "" "-o libvirt: output pool ‘%s’ has type='dir' but the /pool/target/path " "element is not a local directory. See virt-v2v-output-local(1)" msgstr "" #: output/output_libvirt.ml:116 msgid "" "-o libvirt: output pool ‘%s’ is not a directory (type='dir'). See virt-v2v-" "output-local(1)" msgstr "" #: output/output_openstack.ml:88 msgid "-o openstack mode only supports -oa sparse -of raw" msgstr "" #: output/output_openstack.ml:115 msgid "-o openstack: unknown output option ‘-oo %s’" msgstr "" #: output/output_ovirt_upload.ml:97 msgid "-o ovirt-upload: -oo ovirt-cafile set more than once" msgstr "" #: output/output_ovirt_upload.ml:101 msgid "-o ovirt-upload: -oo ovirt-cluster set more than once" msgstr "" #: output/output_ovirt_upload.ml:112 msgid "-o ovirt-upload: invalid UUID for -oo ovirt-disk-uuid" msgstr "" #: output/output_ovirt_upload.ml:76 msgid "" "-o ovirt-upload: output password file was not specified, use ‘-op’ to point " "to a file which contains the password used to connect to the oVirt server" msgstr "" #: output/output_ovirt_upload.ml:83 msgid "-o ovirt-upload: output storage was not specified, use ‘-os’" msgstr "" #: output/output_ovirt_upload.ml:116 msgid "-o ovirt-upload: unknown output option ‘-oo %s’" msgstr "" #: output/output_ovirt_upload.ml:68 msgid "" "-o ovirt-upload: use ‘-oc’ to point to the oVirt server REST API URL, which " "is usually https://servername/ovirt-engine/api" msgstr "" #: output/output_ovirt.ml:51 msgid "-o ovirt: -os option was not specified" msgstr "" #: output/output_qemu.ml:72 msgid "-o qemu: output directory was not specified, use '-os /dir'" msgstr "" #: output/output_qemu.ml:63 msgid "-o qemu: unknown output option ‘-oo %s’" msgstr "" #: output/output_vdsm.ml:102 msgid "-o vdsm: -oo vdsm-image-uuid was not specified" msgstr "" #: output/output_vdsm.ml:81 msgid "-o vdsm: -oo vdsm-ovf-output set more than once" msgstr "" #: output/output_vdsm.ml:77 msgid "-o vdsm: -oo vdsm-vm-uuid set more than once" msgstr "" #: output/output_vdsm.ml:110 msgid "-o vdsm: -os option was not specified" msgstr "" #: output/output_vdsm.ml:97 msgid "-o vdsm: either -oo vdsm-vol-uuid or -oo vdsm-vm-uuid was not specified" msgstr "" #: output/output_vdsm.ml:90 msgid "-o vdsm: unknown output option ‘-oo %s’" msgstr "" #: output/output_vdsm.ml:74 msgid "-o vdsm: unknown vdsm-compat level ‘%s’" msgstr "" #. output/output_kubevirt.ml:84 #. output/output_disk.ml:68 #: output/output_vdsm.ml:112 output/output_qemu.ml:74 msgid "-os %s: output directory does not exist or is not a directory" msgstr "" #: input/parse_libvirt_xml.ml:279 msgid " missing 'method' attribute, ignoring" msgstr "" #: input/parse_libvirt_xml.ml:291 msgid " unknown fail='%s' attribute, ignoring" msgstr "" #: input/parse_libvirt_xml.ml:370 input/parse_libvirt_xml.ml:317 msgid " was ignored" msgstr "" #: input/parse_libvirt_xml.ml:338 msgid " with was ignored" msgstr "" #: input/parse_libvirt_xml.ml:365 msgid " with was ignored" msgstr "" #: input/parse_libvirt_xml.ml:299 msgid " element with no type attribute ignored" msgstr "" #: input/parse_libvirt_xml.ml:167 msgid " in the input libvirt XML was ignored" msgstr "" #: input/parse_libvirt_xml.ml:414 msgid "" " was ignored because the device name could not be recognized" msgstr "" #: input/input_vddk.ml:176 msgid "" " was not found in the output of ‘virsh dumpxml \"%s\"’. The " "most likely reason is that libvirt is too old, try upgrading libvirt to ≥ " "3.7." msgstr "" #: common/mlcustomize/customize_cmdline.ml:305 msgid "Add package(s) to install" msgstr "" #: common/mlcustomize/customize_cmdline.ml:270 msgid "Add package(s) to install at first boot" msgstr "" #: common/mlcustomize/customize_cmdline.ml:175 msgid "Append line(s) to the file" msgstr "" #: common/mlcustomize/customize_run.ml:137 msgid "Appending line to %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:197 msgid "Change the owner user and group ID of a file or directory" msgstr "" #: common/mlcustomize/customize_cmdline.ml:186 msgid "Change the permissions of a file" msgstr "" #: common/mlcustomize/customize_run.ml:155 msgid "Changing owner of %s to %d:%d" msgstr "" #: common/mlcustomize/customize_run.ml:141 msgid "Changing permissions of %s to %s" msgstr "" #: input/input_libvirt.ml:174 input/input_libvirt.ml:157 msgid "Checking %s checksum of disk %d/%d" msgstr "" #: common/mlcustomize/customize_cmdline.ml:488 msgid "Compatibility option doing nothing" msgstr "" #: common/mlcustomize/customize_cmdline.ml:219 msgid "Copy files in disk image" msgstr "" #: common/mlcustomize/customize_cmdline.ml:397 msgid "Copy local files or directories from a tarball into image" msgstr "" #: common/mlcustomize/customize_cmdline.ml:230 msgid "Copy local files or directories into image" msgstr "" #: common/mlcustomize/customize_run.ml:168 msgid "Copying (in image): %s to %s" msgstr "" #: v2v/v2v.ml:518 msgid "Copying disk %d/%d" msgstr "" #: common/mlcustomize/customize_run.ml:172 msgid "Copying: %s to %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:322 msgid "Create a directory" msgstr "" #: common/mlcustomize/customize_cmdline.ml:316 msgid "Create symbolic links" msgstr "" #: v2v/v2v.ml:567 msgid "Creating output metadata" msgstr "" #: common/mlcustomize/customize_cmdline.ml:321 msgid "DIR" msgstr "" #: common/mlcustomize/customize_cmdline.ml:236 msgid "Delete a file or directory" msgstr "" #: common/mlcustomize/customize_run.ml:176 msgid "Deleting: %s" msgstr "" #: common/mltools/getopt.ml:225 msgid "Display brief help" msgstr "" #: common/mltools/tools_utils.ml:385 msgid "Display version and exit" msgstr "" #: common/mlcustomize/customize_cmdline.ml:482 msgid "Do not relabel files with correct SELinux labels" msgstr "" #: v2v/v2v.ml:248 inspector/inspector.ml:177 in-place/in_place.ml:190 msgid "Don't trim filesystems before conversion" msgstr "" #: common/mltools/tools_utils.ml:389 msgid "Don’t print progress messages" msgstr "" #: common/mltools/tools_utils.ml:420 msgid "Don’t turn off echo for passphrases" msgstr "" #: common/mlcustomize/customize_cmdline.ml:247 msgid "Edit file using Perl expression" msgstr "" #: common/mlcustomize/customize_run.ml:180 msgid "Editing: %s" msgstr "" #: common/mltools/tools_utils.ml:386 msgid "Enable libguestfs debugging messages" msgstr "" #: common/mltools/tools_utils.ml:387 msgid "Enable tracing of libguestfs calls" msgstr "" #: output/output_ovirt.ml:77 msgid "Export Storage Domain" msgstr "" #: open/open.ml:88 msgid "External command to run" msgstr "" #. common/mlcustomize/customize_cmdline.ml:408 #. common/mlcustomize/customize_cmdline.ml:373 #: common/mlcustomize/customize_cmdline.ml:414 msgid "FILE" msgstr "" #: common/mlcustomize/customize_cmdline.ml:455 msgid "FILE:CONTENT" msgstr "" #: common/mlcustomize/customize_cmdline.ml:444 msgid "FILE:DEST" msgstr "" #: common/mlcustomize/customize_cmdline.ml:242 msgid "FILE:EXPR" msgstr "" #: common/mlcustomize/customize_cmdline.ml:170 msgid "FILE:LINE" msgstr "" #: common/mlcustomize/customize_cmdline.ml:203 msgid "FILENAME" msgstr "" #. in-place/in_place.ml:378 #: v2v/v2v.ml:571 open/open.ml:220 inspector/inspector.ml:334 msgid "Finishing off" msgstr "" #: common/mlcustomize/customize_cmdline.ml:275 msgid "HOSTNAME" msgstr "" #: v2v/v2v.ml:254 inspector/inspector.ml:183 in-place/in_place.ml:194 msgid "How to choose root filesystem" msgstr "" #: common/mltools/tools_utils.ml:177 msgid "" "If reporting bugs, run %s with debugging enabled and include the complete " "output:\n" "\n" " %s -v -x [...]" msgstr "" #: common/mlcustomize/customize_cmdline.ml:386 msgid "Inject a public key into the guest" msgstr "" #: common/mlcustomize/customize_cmdline.ml:282 msgid "Inject the Balloon Server into a Windows guest" msgstr "" #: common/mlcustomize/customize_cmdline.ml:288 msgid "Inject the QEMU Guest Agent into a Windows guest" msgstr "" #: common/mlcustomize/customize_cmdline.ml:294 msgid "Inject virtio-win drivers into a Windows guest" msgstr "" #. in-place/in_place.ml:176 #: v2v/v2v.ml:216 open/open.ml:80 inspector/inspector.ml:165 msgid "Input format" msgstr "" #: input/input_vddk.ml:77 msgid "" "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" "\n" "Refer to nbdkit-vddk-plugin(1) and the VDDK documentation for further\n" "information on these settings.\n" msgstr "" #: v2v/v2v.ml:222 open/open.ml:86 inspector/inspector.ml:171 msgid "Input transport" msgstr "" #: common/mlcustomize/customize_run.ml:191 msgid "Installing firstboot command: %s" msgstr "" #: common/mlcustomize/customize_run.ml:195 msgid "Installing firstboot packages: %s" msgstr "" #: common/mlcustomize/customize_run.ml:202 msgid "Installing firstboot script: %s" msgstr "" #: common/mlcustomize/customize_run.ml:248 msgid "Installing packages: %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:225 msgid "LOCALPATH:REMOTEDIR" msgstr "" #. in-place/in_place.ml:174 #: v2v/v2v.ml:214 open/open.ml:78 inspector/inspector.ml:163 msgid "Libvirt URI" msgstr "" #: common/mlcustomize/customize_run.ml:255 msgid "Linking: %s -> %s" msgstr "" #. common/mlcustomize/customize_cmdline.ml:287 #. common/mlcustomize/customize_cmdline.ml:281 #: common/mlcustomize/customize_cmdline.ml:293 msgid "METHOD" msgstr "" #: common/mltools/tools_utils.ml:426 msgid "Make output machine readable" msgstr "" #: common/mlcustomize/customize_run.ml:260 msgid "Making directory: %s" msgstr "" #: v2v/v2v.ml:226 inspector/inspector.ml:173 in-place/in_place.ml:182 msgid "Map NIC to network or bridge or assign static IP" msgstr "" #: v2v/v2v.ml:210 inspector/inspector.ml:159 in-place/in_place.ml:170 msgid "Map bridge ‘in’ to ‘out’" msgstr "" #: v2v/v2v.ml:230 inspector/inspector.ml:179 in-place/in_place.ml:186 msgid "Map network ‘in’ to ‘out’" msgstr "" #: common/mlcustomize/customize_cmdline.ml:333 msgid "Move files in disk image" msgstr "" #: common/mlcustomize/customize_run.ml:264 msgid "Moving: %s -> %s" msgstr "" #. input/input_vcenter_https.ml:45 #. input/input_ova.ml:35 #. input/input_libvirt.ml:233 #. input/input_libvirt.ml:221 #. input/input_disk.ml:35 #: input/input_xen_ssh.ml:43 input/input_vmx.ml:36 msgid "No input options can be used in this mode.\n" msgstr "" #: output/output_ovirt.ml:40 output/output_null.ml:38 #: output/output_glance.ml:40 msgid "No output options can be used in this mode.\n" msgstr "" #: output/output_vdsm.ml:166 msgid "OVF (metadata) directory (%s) does not exist or is not a directory" msgstr "" #: common/mlcustomize/firstboot.ml:268 msgid "" "One of rhsrvany.exe or pvvxsvc.exe is missing in %s. One of them is " "required in order to install Windows firstboot scripts. You can get one by " "building rhsrvany (https://github.com/rwmjones/rhsrvany)" msgstr "" #: v2v/v2v.ml:236 msgid "Output hypervisor connection" msgstr "" #: output/output_ovirt_upload.ml:51 msgid "" "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" "\n" "You can override the UUIDs of the disks, instead of using autogenerated " "UUIDs\n" "after their uploads (if you do, you must supply one for each disk):\n" "\n" " -oo ovirt-disk-uuid=UUID Disk UUID\n" msgstr "" #: output/output_qemu.ml:44 msgid "" "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" msgstr "" #: output/output_vdsm.ml:43 msgid "" "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" "\n" "For 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" msgstr "" #: output/output_disk.ml:44 msgid "" "Output options that can be used with -o disk:\n" "\n" " -oo compressed Compress the output file (used only with -of qcow2)\n" msgstr "" #: output/output_kubevirt.ml:51 msgid "" "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" msgstr "" #: output/output_libvirt.ml:47 msgid "" "Output options that can be used with -o libvirt:\n" "\n" " -oo compressed Compress the output file (used only with -of qcow2)\n" msgstr "" #. common/mlcustomize/customize_cmdline.ml:235 #: common/mlcustomize/customize_cmdline.ml:420 msgid "PATH" msgstr "" #: common/mlcustomize/customize_cmdline.ml:181 msgid "PERMISSIONS:FILE" msgstr "" #. common/mlcustomize/customize_cmdline.ml:300 #. common/mlcustomize/customize_cmdline.ml:265 #: common/mlcustomize/customize_cmdline.ml:427 msgid "PKG,PKG.." msgstr "" #: v2v/v2v.ml:263 in-place/in_place.ml:203 msgid "Prefer 'virtio-blk' or 'virtio-scsi'" msgstr "" #: v2v/v2v.ml:252 in-place/in_place.ml:192 msgid "Print source and stop" msgstr "" #: common/mlcustomize/customize_cmdline.ml:208 msgid "Read customize commands from file" msgstr "" #: common/mltools/tools_utils.ml:421 msgid "Read passphrases from stdin" msgstr "" #: common/mlcustomize/customize_cmdline.ml:421 msgid "Recursively truncate all files in directory" msgstr "" #: common/mlcustomize/customize_run.ml:298 msgid "Recursively truncating: %s" msgstr "" #: v2v/v2v.ml:240 msgid "Rename guest when converting" msgstr "" #: common/mlcustomize/customize_cmdline.ml:259 msgid "Run command at first guest boot" msgstr "" #: common/mlcustomize/customize_cmdline.ml:368 msgid "Run command in disk image" msgstr "" #: common/mlcustomize/customize_cmdline.ml:253 msgid "Run script at first guest boot" msgstr "" #: common/mlcustomize/customize_cmdline.ml:362 msgid "Run script in disk image" msgstr "" #: common/mlcustomize/customize_cmdline.ml:409 msgid "Run touch on a file" msgstr "" #: v2v/v2v.ml:250 msgid "Run up to N instances of nbdcopy in parallel" msgstr "" #: open/open.ml:188 msgid "Running external command" msgstr "" #: common/mlcustomize/customize_run.ml:307 msgid "Running touch: %s" msgstr "" #. common/mlcustomize/customize_run.ml:159 #: common/mlcustomize/customize_run.ml:274 msgid "Running: %s" msgstr "" #. common/mlcustomize/customize_cmdline.ml:252 #: common/mlcustomize/customize_cmdline.ml:361 msgid "SCRIPT" msgstr "" #: common/mltools/tools_utils.ml:422 #: common/mlcustomize/customize_cmdline.ml:351 msgid "SELECTOR" msgstr "" #: common/mlcustomize/customize_run.ml:363 msgid "SELinux relabelling" msgstr "" #. common/mlcustomize/customize_cmdline.ml:214 #: common/mlcustomize/customize_cmdline.ml:328 msgid "SOURCE:DEST" msgstr "" #: common/mlcustomize/customize_run.ml:287 msgid "SSH key could not be injected for this type of guest" msgstr "" #: common/mlcustomize/customize_run.ml:284 msgid "SSH key inject: %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:374 msgid "Scrub a file" msgstr "" #: common/mlcustomize/customize_cmdline.ml:466 msgid "Scrub build log file" msgstr "" #: common/mlcustomize/customize_run.ml:374 msgid "Scrubbing the log file" msgstr "" #: common/mlcustomize/customize_run.ml:279 msgid "Scrubbing: %s" msgstr "" #: v2v/v2v.ml:208 msgid "Set bandwidth dynamically from file" msgstr "" #: v2v/v2v.ml:206 msgid "Set bandwidth to bits per sec" msgstr "" #. in-place/in_place.ml:172 #: v2v/v2v.ml:212 open/open.ml:76 inspector/inspector.ml:161 msgid "Set input mode (default: libvirt)" msgstr "" #: v2v/v2v.ml:228 inspector/inspector.ml:175 in-place/in_place.ml:184 msgid "Set memory size" msgstr "" #: v2v/v2v.ml:256 inspector/inspector.ml:185 in-place/in_place.ml:196 msgid "Set number of vCPUs" msgstr "" #. in-place/in_place.ml:178 #: v2v/v2v.ml:218 open/open.ml:82 inspector/inspector.ml:167 msgid "Set option for input mode" msgstr "" #: v2v/v2v.ml:242 msgid "Set option for output mode" msgstr "" #: v2v/v2v.ml:234 msgid "Set output allocation mode" msgstr "" #: v2v/v2v.ml:238 msgid "Set output format" msgstr "" #: v2v/v2v.ml:232 msgid "Set output mode (default: libvirt)" msgstr "" #: v2v/v2v.ml:246 msgid "Set output storage location" msgstr "" #: common/mlcustomize/customize_cmdline.ml:476 msgid "Set password crypto" msgstr "" #: common/mltools/tools_utils.ml:430 msgid "Set program name" msgstr "" #: common/mlcustomize/customize_cmdline.ml:356 msgid "Set root password" msgstr "" #: common/mlcustomize/customize_cmdline.ml:403 msgid "Set the default timezone" msgstr "" #: common/mlcustomize/customize_cmdline.ml:276 msgid "Set the hostname" msgstr "" #: inspector/inspector.ml:181 in-place/in_place.ml:188 msgid "Set the output filename" msgstr "" #: common/mlcustomize/customize_cmdline.ml:345 msgid "Set user password" msgstr "" #: common/mlcustomize/customize_run.ml:75 msgid "Setting a random seed" msgstr "" #: common/mlcustomize/customize_run.ml:354 msgid "Setting passwords" msgstr "" #: common/mlcustomize/password.ml:113 msgid "Setting random password of %s to %s" msgstr "" #: common/mlcustomize/customize_run.ml:207 msgid "Setting the hostname: %s" msgstr "" #: common/mlcustomize/customize_run.ml:90 msgid "Setting the machine ID in %s" msgstr "" #: common/mlcustomize/customize_run.ml:302 msgid "Setting the timezone: %s" msgstr "" #: v2v/v2v.ml:481 msgid "Setting up the destination: %s" msgstr "" #. in-place/in_place.ml:342 #: v2v/v2v.ml:457 open/open.ml:184 inspector/inspector.ml:310 msgid "Setting up the source: %s" msgstr "" #: v2v/v2v.ml:463 in-place/in_place.ml:348 msgid "Source guest information (--print-source option):\n" msgstr "" #: common/mltools/tools_utils.ml:422 msgid "Specify a LUKS key" msgstr "" #: common/mlcustomize/customize_cmdline.ml:392 msgid "TARFILE:REMOTEDIR" msgstr "" #: common/mlcustomize/customize_cmdline.ml:311 msgid "TARGET:LINK[:LINK..]" msgstr "" #: common/mlcustomize/customize_cmdline.ml:402 msgid "TIMEZONE" msgstr "" #: v2v/v2v.ml:200 msgid "" "The --in-place option has been replaced by the ‘virt-v2v-in-place’ program" msgstr "" #: output/output_qemu.ml:251 msgid "" "The Virt machine has no support for IDE. Please report a bug for virt-v2v -- " "refer to virt-v2v(1) section \"BUGS\"." msgstr "" #: output/output_qemu.ml:272 msgid "" "The Virt machine has no support for floppies. Please report a bug for virt-" "v2v -- refer to virt-v2v(1) section \"BUGS\"." msgstr "" #: lib/create_ovf.ml:785 msgid "" "This guest required a password for connection to its display, but this is " "not supported by oVirt. Therefore the converted guest’s display will not " "require a separate password to connect." msgstr "" #: input/input_vmx.ml:111 msgid "" "This transport does not support guests with snapshots. Either collapse the " "snapshots for this guest and try the conversion again, or use one of the " "alternate conversion methods described in virt-v2v-input-vmware(1) section " "\"NOTES\"." msgstr "" #: common/mlcustomize/customize_cmdline.ml:415 msgid "Truncate a file to zero size" msgstr "" #: common/mlcustomize/customize_run.ml:294 msgid "Truncating: %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:192 msgid "UID:GID:PATH" msgstr "" #: common/mlcustomize/customize_cmdline.ml:339 msgid "USER:SELECTOR" msgstr "" #: common/mlcustomize/customize_cmdline.ml:380 msgid "USER[:SELECTOR]" msgstr "" #: common/mlcustomize/customize_cmdline.ml:432 msgid "Uninstall package(s)" msgstr "" #: common/mlcustomize/customize_run.ml:311 msgid "Uninstalling packages: %s" msgstr "" #: common/mlcustomize/customize_run.ml:290 msgid "Unpack tar file: %s to %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:438 msgid "Update packages" msgstr "" #: common/mlcustomize/customize_run.ml:316 msgid "Updating packages" msgstr "" #: common/mlcustomize/customize_cmdline.ml:449 msgid "Upload local file to destination" msgstr "" #: common/mlcustomize/customize_run.ml:321 msgid "Uploading: %s to %s" msgstr "" #: common/mltools/tools_utils.ml:391 msgid "Use ANSI colour sequences even if not tty" msgstr "" #. in-place/in_place.ml:180 #: v2v/v2v.ml:220 open/open.ml:84 inspector/inspector.ml:169 msgid "Use password from file to connect to input hypervisor" msgstr "" #: v2v/v2v.ml:244 msgid "Use password from file to connect to output hypervisor" msgstr "" #: v2v/v2v.ml:224 msgid "Use virt-v2v-in-place instead" msgstr "" #: common/mltools/tools_utils.ml:392 msgid "Wrap log messages even if not tty" msgstr "" #: common/mlcustomize/customize_cmdline.ml:460 msgid "Write file" msgstr "" #: common/mlcustomize/customize_run.ml:346 msgid "Writing: %s" msgstr "" #: lib/YAML.ml:167 msgid "" "YAML block contains newline character. This should not happen, please " "report a bug against virt-v2v." msgstr "" #: output/output_libvirt.ml:96 msgid "" "a libvirt domain called ‘%s’ already exists on the target.\n" "\n" "If using virt-v2v directly, use the ‘-on’ option to select a different name. " "Or delete the existing domain on the target using the ‘virsh undefine’ " "command.\n" "\n" "If using virt-p2v, select a different ‘Name’ in the ‘Target properties’. Or " "delete the existing domain on the target using the ‘virsh undefine’ command." msgstr "" #: common/mlcustomize/append_line.ml:44 msgid "append_line: %s is not a file" msgstr "" #: input/input_libvirt.ml:206 msgid "" "bad checksum for disk %d/%d\n" "Expected checksum: %s\n" "Actual checksum: %s" msgstr "" #: lib/libvirt_utils.ml:59 msgid "cannot find libvirt domain ‘%s’: %s" msgstr "" #: lib/libvirt_utils.ml:96 msgid "" "cannot find libvirt pool ‘%s’: %s\n" "\n" "Use ‘virsh pool-list --all’ to list all available pools, and ‘virsh pool-" "dumpxml ’ to display details about a particular pool.\n" "\n" "To set the pool which virt-v2v uses, add the ‘-os ’ option." msgstr "" #: lib/libvirt_utils.ml:110 msgid "cannot find libvirt volume ‘%s’: %s" msgstr "" #: common/mlcustomize/firstboot.ml:235 msgid "" "cannot finish firstboot installation by running ‘%s’ because host cpu (%s) " "and guest arch (%s) are not compatible. The firstboot service may not run " "at boot." msgstr "" #: output/output_libvirt.ml:180 msgid "cannot get libvirt domain capabilities: %s" msgstr "" #: output/output_libvirt.ml:85 msgid "cannot get libvirt hypervisor capabilities: %s" msgstr "" #: v2v/v2v.ml:105 inspector/inspector.ml:95 in-place/in_place.ml:102 msgid "cannot parse --mac \"%s\" parameter" msgstr "" #: v2v/v2v.ml:129 inspector/inspector.ml:119 in-place/in_place.ml:126 msgid "cannot parse --mac ip %s: doesn’t look like “%s” is an IP address" msgstr "" #: v2v/v2v.ml:143 inspector/inspector.ml:133 in-place/in_place.ml:140 msgid "cannot parse --mac ip prefix length field as an integer: %s" msgstr "" #: common/mlcustomize/guest_packages.ml:29 msgid "" "cannot use ‘%s’ because no package manager has been detected for this guest " "OS.\n" "\n" "If this guest OS is a common one with ordinary package management then this " "may have been caused by a failure of libguestfs inspection.\n" "\n" "For OSes such as Windows that lack package management, this is not " "possible. Try using one of the ‘--firstboot*’ flags instead (described in " "the virt-customize(1) manual)." msgstr "" #: output/output_ovirt.ml:91 msgid "" "cannot write files to the NFS server as %d:%d, even though we appear to be " "running as root. This probably means the NFS client or idmapd is not " "configured properly.\n" "\n" "You will have to chown the files that virt-v2v creates after the run, " "otherwise oVirt will not be able to import the VM." msgstr "" #: output/output_ovirt.ml:99 msgid "" "cannot write files to the NFS server as %d:%d. You might want to stop virt-" "v2v (^C) and rerun it as root." msgstr "" #: common/mlcustomize/customize_cmdline.ml:508 msgid "command '%s' cannot be used in command files, see the man page" msgstr "" #: common/mlcustomize/customize_cmdline.ml:525 msgid "command '%s' not valid, see the man page" msgstr "" #: common/mldrivers/linux_bootloaders.ml:318 msgid "could not add grub2 serial console (ignored)" msgstr "" #: input/ssh.ml:52 msgid "" "could not copy the VMX file from the remote server, see earlier error " "messages" msgstr "" #: output/output_libvirt.ml:211 msgid "" "could not define libvirt domain: %s.\n" "The libvirt XML is still available in ‘%s’. Try running ‘virsh -c %s define " "%s’ yourself instead." msgstr "" #: common/mldrivers/linux_bootloaders.ml:221 msgid "could not determine a way to update the configuration of Grub2" msgstr "" #: input/input_vddk.ml:243 msgid "" "could not fetch thumbprint from the server, you mus use ‘-io vddk-" "thumbprint=XX:XX...’" msgstr "" #: common/mldrivers/linux_bootloaders.ml:376 msgid "could not find bootloader mount point (%s): %s" msgstr "" #: common/mldrivers/windows_drivers.ml:91 msgid "" "could not find registry entry " "HKEY_LOCAL_MACHINE\\SYSTEM\\DriverDatabase\\DeviceIds in this Windows " "guest. It may be either a very old or very new version of Windows that we " "cannot process." msgstr "" #: common/mlcustomize/firstboot.ml:232 msgid "" "could not finish firstboot installation by running ‘%s’ because the command " "failed: %s" msgstr "" #. input/input_vcenter_https.ml:94 #: input/select_input.ml:66 input/input_xen_ssh.ml:71 input/input_vddk.ml:151 msgid "could not parse '-ic %s'. Original error message was: %s" msgstr "" #: input/parse_libvirt_xml.ml:407 input/parse_libvirt_xml.ml:54 msgid "could not parse device name ‘%s’ from the source libvirt XML" msgstr "" #: input/OVF.ml:168 msgid "could not parse disk rasd:HostResource from OVF document" msgstr "" #: input/input_ova.ml:98 msgid "could not parse ovf:Name from OVF document" msgstr "" #: output/output_ovirt.ml:247 msgid "" "could not read the %s specified by the '-os %s' parameter on the command " "line. Is it really an OVirt %s? The original error is: %s" msgstr "" #: common/mldrivers/linux_bootloaders.ml:336 msgid "" "could not rebuild grub2 configuration file (%s). This may mean that grub " "output will not be sent to the serial port, but otherwise should be " "harmless. Original error message: %s" msgstr "" #: output/output_libvirt.ml:156 msgid "could not refresh libvirt pool ‘%s’: %s" msgstr "" #: common/mldrivers/linux_bootloaders.ml:320 msgid "could not remove grub2 serial console (ignored)" msgstr "" #: common/mltools/registry.ml:93 msgid "" "decode_utf16le: Windows UTF16-LE string contains non-7-bit characters. This " "is a bug in %s, please report it." msgstr "" #: common/mltools/registry.ml:87 msgid "" "decode_utf16le: Windows string does not appear to be in UTF16-LE encoding. " "This could be a bug in %s." msgstr "" #: common/mldrivers/linux_bootloaders.ml:126 msgid "didn't find grub entry for kernel %s" msgstr "" #: input/input_disk.ml:150 msgid "disks on the command line have mixed formats" msgstr "" #: input/parse_libvirt_xml.ml:194 msgid "display in the input libvirt XML was ignored" msgstr "" #: output/output_qemu.ml:147 msgid "don’t know how to convert UEFI guests for architecture %s" msgstr "" #: common/mldrivers/linux.ml:158 msgid "don’t know how to find file owner using %s" msgstr "" #: common/mldrivers/linux.ml:89 msgid "don’t know how to get list of files from package using %s" msgstr "" #: common/mltools/curl.ml:82 msgid "downloading %s" msgstr "" #: lib/networks.ml:84 msgid "" "duplicate --mac parameter. Duplicate mappings specified for MAC address %s." msgstr "" #: lib/networks.ml:102 msgid "" "duplicate -b/--bridge parameter. Duplicate mappings specified for bridge %s." msgstr "" #: lib/networks.ml:108 msgid "duplicate -b/--bridge parameter. Only one default mapping is allowed." msgstr "" #: lib/networks.ml:90 msgid "" "duplicate -n/--network parameter. Duplicate mappings specified for network " "%s." msgstr "" #: lib/networks.ml:96 msgid "duplicate -n/--network parameter. Only one default mapping is allowed." msgstr "" #: input/OVF.ml:143 msgid "error parsing disk fileRef" msgstr "" #: input/input_ova.ml:124 msgid "error uncompressing %s, see earlier error messages" msgstr "" #: input/OVA.ml:210 input/OVA.ml:112 msgid "error unpacking %s, see earlier error messages" msgstr "" #: common/mltools/tools_utils.ml:248 msgid "exception: %s" msgstr "" #: common/mltools/tools_utils.ml:455 msgid "exited with error %d" msgstr "" #: lib/utils.ml:34 msgid "exited with non-zero error code %d" msgstr "" #: input/input_disk.ml:147 msgid "expected >= 1 disk name on the command line" msgstr "" #: common/mltools/xpath_helpers.ml:36 msgid "" "expecting XML expression to return an integer (expression: %s, matching " "string: %s)" msgstr "" #: common/mltools/tools_utils.ml:440 msgid "external command" msgstr "" #: output/output_ovirt_upload.ml:265 msgid "failed server prechecks, see earlier errors" msgstr "" #: output/output_ovirt_upload.ml:507 msgid "failed to create virtual machine, see earlier errors" msgstr "" #: output/output_ovirt_upload.ml:479 msgid "failed to finalize the transfers, see earlier errors" msgstr "" #: common/mldrivers/linux_bootloaders.ml:208 msgid "failed to find grub2-mkconfig binary (but Grub2 was detected on guest)" msgstr "" #: input/OVA.ml:461 msgid "failed to parse line returned by tar: %S" msgstr "" #: output/output_ovirt_upload.ml:394 msgid "failed to start transfer, see earlier errors" msgstr "" #: output/output_ovirt_upload.ml:311 msgid "failed vmchecks, see earlier errors" msgstr "" #: common/mltools/tools_utils.ml:239 msgid "failure: %s" msgstr "" #: input/input_ova.ml:134 msgid "file ‘%s’ not found in the ova" msgstr "" #: common/mlcustomize/firstboot.ml:143 msgid "" "firstboot: unknown version for old firstboot.service file %s (md5=%s), it " "will not be removed" msgstr "" #: common/mltools/tools_utils.ml:258 msgid "generated by %s %s" msgstr "" #: output/create_libvirt_xml.ml:39 msgid "get_osinfo_id: unknown guest operating system: %s" msgstr "" #: output/output_glance.ml:66 msgid "" "glance: glance client is not installed or set up correctly. You may need to " "set environment variables or source a script to enable authentication. See " "preceding messages for details." msgstr "" #: output/output_glance.ml:139 msgid "glance: image upload to glance failed, see earlier errors" msgstr "" #: common/mlcustomize/firstboot.ml:386 common/mlcustomize/firstboot.ml:164 msgid "guest type %s is not supported" msgstr "" #: common/mlcustomize/firstboot.ml:413 msgid "guest type %s/%s is not supported" msgstr "" #: common/mltools/tools_utils.ml:749 msgid "" "host (%s/%s) and guest (%s/%s) are not compatible, so you cannot use command " "line options that involve running commands in the guest. Use --firstboot " "scripts instead." msgstr "" #: common/mlcustomize/customize_run.ml:209 msgid "hostname could not be set for this type of guest" msgstr "" #: common/mldrivers/linux_kernels.ml:342 msgid "ignoring kernel %s in bootloader, as it does not exist." msgstr "" #: output/output_vdsm.ml:160 msgid "image directory (%s) does not exist or is not a directory" msgstr "" #: input/parse_libvirt_xml.ml:81 msgid "in the libvirt XML metadata, is missing or empty" msgstr "" #: input/parse_libvirt_xml.ml:87 msgid "in the libvirt XML metadata, is missing or empty" msgstr "" #: input/input_vcenter_https.ml:52 input/input_libvirt.ml:107 msgid "in-place mode does not work with HTTP source" msgstr "" #: input/input_vddk.ml:146 msgid "in-place mode does not work with VDDK source" msgstr "" #: input/input_vmx.ml:43 msgid "in-place mode does not work with VMX source" msgstr "" #: input/input_xen_ssh.ml:50 msgid "in-place mode does not work with Xen over SSH source" msgstr "" #: output/output_kubevirt.ml:116 msgid "" "incorrect number of '-oo disk' parameters. This guest has %d disks, but the " "parameter was used %d times." msgstr "" #: input/input_xen_ssh.ml:119 msgid "" "input from xen over ssh does not support disks stored on remote block " "devices. See virt-v2v-input-xen(1) section \"Xen or ssh conversions from " "block devices\"." msgstr "" #. in-place/in_place.ml:397 #: v2v/v2v.ml:590 open/open.ml:238 inspector/inspector.ml:353 msgid "" "insufficient free space in the conversion server temporary directory %s " "(%s).\n" "\n" "Either free up space in that directory, or set the LIBGUESTFS_CACHEDIR " "environment variable to point to another directory with more than 1GB of " "free space.\n" "\n" "See also the virt-v2v(1) manual, section \"Minimum free space check in the " "host\"." msgstr "" #: common/mltools/tools_utils.ml:246 msgid "internal error: Not_found exception was thrown" msgstr "" #: common/mltools/tools_utils.ml:243 msgid "internal error: assertion failed at %s, line %d, char %d" msgstr "" #: common/mltools/tools_utils.ml:241 msgid "internal error: invalid argument: %s" msgstr "" #: common/mldrivers/linux.ml:128 msgid "internal error: is_file_owned: dpkg command returned no output" msgstr "" #: common/mldrivers/linux.ml:133 msgid "internal error: is_file_owned: unexpected output from dpkg command: %s" msgstr "" #: common/mldrivers/linux_bootloaders.ml:130 msgid "internal error: regular expression did not match ‘%s’" msgstr "" #: v2v/v2v.ml:548 msgid "internal error: wait returned unexpected process ID %d status \"%s\"" msgstr "" #: v2v/v2v.ml:114 inspector/inspector.ml:104 in-place/in_place.ml:111 msgid "invalid --mac ip option" msgstr "" #: v2v/v2v.ml:98 inspector/inspector.ml:88 in-place/in_place.ml:95 msgid "invalid -b/--bridge parameter" msgstr "" #: v2v/v2v.ml:90 inspector/inspector.ml:80 in-place/in_place.ml:87 msgid "invalid -n/--network parameter" msgstr "" #: input/parse_domain_from_vmx.ml:402 msgid "invalid cpuid.coresPerSocket < number of vCPUs" msgstr "" #. common/mlcustomize/customize_cmdline.ml:153 #. common/mlcustomize/customize_cmdline.ml:145 #: common/mlcustomize/customize_cmdline.ml:161 msgid "invalid format for '--%s' parameter, see the man page" msgstr "" #: common/mltools/tools_utils.ml:359 msgid "invalid format string for --machine-readable: %s" msgstr "" #: lib/utils.ml:279 msgid "invalid input filename (%s)" msgstr "" #: input/OVA.ml:445 msgid "invalid offset returned by tar: %S" msgstr "" #: common/mltools/tools_utils.ml:374 msgid "invalid output fd for --machine-readable: %s" msgstr "" #: common/mltools/tools_utils.ml:376 msgid "invalid output for --machine-readable: %s" msgstr "" #: common/mltools/tools_utils.ml:368 msgid "invalid output stream for --machine-readable: %s" msgstr "" #: common/mlcustomize/password.ml:73 msgid "invalid password selector ‘%s’; see the man page" msgstr "" #: input/OVA.ml:450 msgid "invalid size returned by tar: %S" msgstr "" #: common/mlcustomize/ssh_key.ml:45 msgid "invalid ssh-inject selector ‘%s’; see the man page" msgstr "" #: input/OVF.ml:82 msgid "invalid vmw:CoresPerSocket (%d) ignored" msgstr "" #: input/OVF.ml:88 msgid "invalid vmw:CoresPerSocket < number of cores" msgstr "" #: common/mldrivers/linux_bootloaders.ml:114 msgid "kernel %s is not under grub tree %s" msgstr "" #: common/mltools/tools_utils.ml:539 common/mltools/tools_utils.ml:458 msgid "killed by signal %d" msgstr "" #: common/mltools/tools_utils.ml:237 msgid "libguestfs error: %s" msgstr "" #: lib/libvirt_utils.ml:72 msgid "" "libvirt domain ‘%s’ is running or paused. Converting a live guest will " "result in corrupted output. However this is safe if you're converting from a " "snapshot" msgstr "" #: common/mlcustomize/customize_run.ml:47 msgid "log file %s: %s (ignored)" msgstr "" #: input/OVA.ml:147 msgid "" "making OVA directory public readable to work around libvirt bug https://" "bugzilla.redhat.com/1045069" msgstr "" #: input/input_ova.ml:86 msgid "manifest has a checksum for non-existent file %s (ignored)" msgstr "" #: common/mlcustomize/customize_cmdline.ml:472 msgid "md5|sha256|sha512" msgstr "" #: common/mlcustomize/customize_run.ml:119 msgid "method '%s' is no longer supported" msgstr "" #: common/mltools/JSON_parser.ml:39 msgid "missing value for the key ‘%s’" msgstr "" #: input/OVA.ml:276 msgid "more than one .ovf file was found in %s" msgstr "" #: common/mltools/JSON_parser.ml:34 msgid "more than value for the key ‘%s’" msgstr "" #: output/output_ovirt.ml:222 msgid "" "mount command failed, see earlier errors.\n" "\n" "This probably means you didn't specify the right %s path [-os %s], or else " "you need to rerun virt-v2v as root." msgstr "" #: common/mlcustomize/customize_run.ml:103 msgid "" "multiple --root-password/--password options set the password for user ‘%s’ " "twice" msgstr "" #: input/input_vddk.ml:319 msgid "" "nbdkit VDDK plugin is not installed or not working. It is required if you " "want to use VDDK.\n" "\n" "It 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 ’/%s/libvixDiskLib.so.?’.\n" "\n" "See also the virt-v2v-input-vmware(1) manual." msgstr "" #: input/input_vddk.ml:313 msgid "" "nbdkit VDDK plugin is not installed or not working. It is required if you " "want to use VDDK.\n" "\n" "The 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" "\n" "See also the virt-v2v-input-vmware(1) manual." msgstr "" #: lib/nbdkit.ml:223 msgid "nbdkit did not start up. See previous debugging messages for problems." msgstr "" #: lib/nbdkit.ml:225 msgid "" "nbdkit did not start up. There may be errors printed by nbdkit above.\n" "\n" "If the messages above are not sufficient to diagnose the problem then add " "the ‘virt-v2v -v -x’ options and examine the debugging output carefully." msgstr "" #: input/nbdkit_ssh.ml:36 input/nbdkit_curl.ml:32 input/input_vddk.ml:283 msgid "nbdkit is not installed or not working" msgstr "" #: input/input_disk.ml:92 msgid "" "nbdkit is not installed or not working. It is required to use ‘-i disk’." msgstr "" #: input/input_libvirt.ml:68 msgid "" "nbdkit is not installed or not working. It is required to use ‘-i libvirt|" "libvirtxml’." msgstr "" #: output/output.ml:178 output/output.ml:77 msgid "" "nbdkit is not installed or not working. It is required to use ‘-o disk’." msgstr "" #: output/output_null.ml:57 msgid "" "nbdkit is not installed or not working. It is required to use ‘-o null’." msgstr "" #: output/output_ovirt_upload.ml:163 msgid "" "nbdkit is not installed or not working. It is required to use ‘-o ovirt-" "upload’. See the virt-v2v-output-ovirt(1) manual." msgstr "" #: input/input_vddk.ml:285 msgid "nbdkit must be >= 1.45.11 for input from VDDK" msgstr "" #: output/output_ovirt_upload.ml:176 msgid "" "nbdkit python plugin is not installed or not working. It is required if you " "want to use ‘-o ovirt-upload’.\n" "\n" "See also the virt-v2v-output-ovirt(1) manual." msgstr "" #: output/output_ovirt_upload.ml:190 msgid "" "nbdkit was compiled without SELinux support. You will have to recompile " "nbdkit with libselinux-devel installed, or else set SELinux to Permissive " "mode while doing the conversion." msgstr "" #. input/input_libvirt.ml:76 #. input/input_disk.ml:98 #: input/nbdkit_ssh.ml:42 input/nbdkit_curl.ml:38 input/input_vddk.ml:289 msgid "nbdkit-cow-filter is not installed or not working" msgstr "" #: input/nbdkit_curl.ml:35 msgid "nbdkit-curl-plugin is not installed" msgstr "" #. input/input_disk.ml:96 #: output/output.ml:181 output/output.ml:80 input/input_libvirt.ml:72 msgid "nbdkit-file-plugin is not installed or not working" msgstr "" #: input/input_libvirt.ml:74 msgid "nbdkit-nbd-plugin is not installed or not working" msgstr "" #: output/output_null.ml:60 msgid "nbdkit-null-plugin is not installed or not working" msgstr "" #: input/nbdkit_ssh.ml:39 msgid "nbdkit-ssh-plugin is not installed" msgstr "" #: input/input_vddk.ml:287 msgid "nbdkit-vddk-plugin is not installed" msgstr "" #: lib/nbdkit.ml:56 msgid "nbdkit: unexpected version in --dump-config: %s" msgstr "" #. input/input_vcenter_https.ml:49 #. input/input_ova.ml:46 #. input/input_libvirt.ml:35 #. input/input_disk.ml:39 #: input/input_xen_ssh.ml:47 input/input_vmx.ml:40 msgid "no -io (input options) are allowed here" msgstr "" #: output/output_ovirt.ml:44 output/output_null.ml:42 #: output/output_glance.ml:44 msgid "no -oo (output options) are allowed here" msgstr "" #: input/OVA.ml:273 msgid "no .ovf file was found in %s" msgstr "" #: common/mldrivers/linux_bootloaders.ml:402 msgid "no bootloader detected" msgstr "" #: input/parse_domain_from_vmx.ml:359 msgid "no displayName key found in VMX file" msgstr "" #: input/OVF.ml:148 msgid "no href in ovf:File (id=%s)" msgstr "" #: common/mldrivers/linux_kernels.ml:194 msgid "no initrd was found in /boot matching %s %s." msgstr "" #: common/mldrivers/linux_kernels.ml:317 msgid "" "no installed kernel packages were found.\n" "\n" "This probably indicates that %s was unable to inspect this guest properly." msgstr "" #: common/mldrivers/linux_kernels.ml:354 msgid "" "no kernels were found in the bootloader configuration.\n" "\n" "This probably indicates that %s was unable to parse the bootloader " "configuration of this guest." msgstr "" #: output/python_script.ml:55 msgid "no python binary called ‘%s’ can be found on the $PATH" msgstr "" #: input/select_input.ml:106 msgid "" "no support for remote libvirt connections to '-ic %s'. The conversion may " "fail when it tries to read the source disks." msgstr "" #: lib/create_ovf.ml:1027 msgid "" "oVirt cannot emulate ‘%s’ sound cards. This sound card will be dropped from " "the output." msgstr "" #: lib/create_ovf.ml:875 lib/create_ovf.ml:512 msgid "oVirt does not support the output format ‘%s’, only raw or qcow2" msgstr "" #: output/output_openstack.ml:120 msgid "openstack: -oo server-id= not present" msgstr "" #: output/output_openstack.ml:338 msgid "" "openstack: failed to attach cinder volume to VM, see earlier error messages" msgstr "" #: output/output_openstack.ml:291 msgid "openstack: failed to create a cinder volume, see earlier error messages" msgstr "" #: output/output_openstack.ml:304 msgid "" "openstack: failed to query cinder volume status, see earlier error messages" msgstr "" #: output/output_openstack.ml:442 msgid "" "openstack: failed to set image properties on cinder volume, see earlier " "error messages" msgstr "" #: output/output_openstack.ml:199 msgid "" "openstack: precheck failed, there may be a problem with authentication, see " "earlier error messages" msgstr "" #: output/output_openstack.ml:311 msgid "" "openstack: unknown volume status \"%s\": expected \"creating\" or " "\"available\"" msgstr "" #: output/output.ml:133 msgid "output mode only supports raw or qcow2 format (format: %s)" msgstr "" #: input/OVF.ml:263 msgid "" "ova disk has an unknown VMware controller type (%d), please report this as a " "bug supplying the *.ovf file extracted from the ova" msgstr "" #: input/OVF.ml:259 msgid "" "ova disk has no parent controller, please report this as a bug supplying the " "*.ovf file extracted from the ova" msgstr "" #: output/output_ovirt_upload.ml:367 msgid "" "ovirt-upload: -of %s: Only output format ‘raw’ or ‘qcow2’ is supported. If " "the input is in a different format then force one of these output formats by " "adding either ‘-of raw’ or ‘-of qcow2’ on the command line." msgstr "" #: common/mlcustomize/password.ml:51 msgid "" "password-crypto: unknown algorithm %s, use \"md5\", \"sha256\", \"sha512\" " "or \"yescrypt\"" msgstr "" #: common/mlcustomize/password.ml:197 msgid "" "password: using insecure md5 password encryption for guest of type %s " "version %d.%d.\n" "If this is incorrect, use --password-crypto option and file a bug." msgstr "" #: common/mlcustomize/customize_run.ml:359 msgid "passwords could not be set for this type of guest" msgstr "" #: lib/qemuNBD.ml:125 msgid "" "qemu-nbd did not start up. See previous debugging messages for problems." msgstr "" #: lib/qemuNBD.ml:127 msgid "" "qemu-nbd did not start up. There may be errors printed by qemu-nbd above.\n" "\n" "If the messages above are not sufficient to diagnose the problem then add " "the ‘virt-v2v -v -x’ options and examine the debugging output carefully." msgstr "" #: lib/qemuNBD.ml:47 msgid "qemu-nbd: unexpected version in --version: %s" msgstr "" #: common/mlcustomize/customize_run.ml:77 msgid "random seed could not be set for this type of guest" msgstr "" #: input/parse_domain_from_vmx.ml:44 msgid "remote vmx ‘%s’ could not be parsed as a URI" msgstr "" #. common/mlcustomize/inject_virtio_win.ml:357 #. common/mlcustomize/inject_virtio_win.ml:352 #: common/mlcustomize/inject_virtio_win.ml:362 msgid "" "root directory ‘/’ is missing from the virtio-win directory or ISO.\n" "\n" "This should not happen and may indicate that virtio-win or virt-v2v is " "broken in some way. Please report this as a bug with a full debug log." msgstr "" #: common/mltools/tools_utils.ml:417 common/options/keys.c:264 #, c-format msgid "selector '%s': invalid TYPE" msgstr "" #: common/mltools/tools_utils.ml:409 common/options/keys.c:254 #, c-format msgid "selector '%s': missing FILENAME, or too many fields" msgstr "" #: common/mltools/tools_utils.ml:399 common/options/keys.c:232 #, c-format msgid "selector '%s': missing ID" msgstr "" #: common/mltools/tools_utils.ml:404 common/options/keys.c:245 #, c-format msgid "selector '%s': missing KEY_STRING, or too many fields" msgstr "" #: common/mltools/tools_utils.ml:401 common/options/keys.c:239 #, c-format msgid "selector '%s': missing TYPE" msgstr "" #: common/mltools/tools_utils.ml:413 common/options/keys.c:262 #, c-format msgid "selector '%s': too many fields" msgstr "" #: lib/utils.ml:35 msgid "signalled by signal %d" msgstr "" #: common/mlcustomize/guest_packages.ml:40 msgid "" "sorry, ‘%s’ with the ‘%s’ package manager has not been implemented yet.\n" "\n" "You can work around this by using one of the ‘--run*’ or ‘--firstboot*’ " "options instead (described in the virt-customize(1) manual)." msgstr "" #: common/mlcustomize/ssh_key.ml:57 msgid "ssh-inject: $HOME environment variable is not set" msgstr "" #: common/mlcustomize/ssh_key.ml:93 msgid "ssh-inject: key is an empty string" msgstr "" #: common/mlcustomize/ssh_key.ml:66 msgid "ssh-inject: no public key file found in %s" msgstr "" #: common/mlcustomize/ssh_key.ml:83 msgid "ssh-inject: public key file (%s) is empty" msgstr "" #: common/mlcustomize/ssh_key.ml:112 msgid "ssh-inject: the user %s does not exist on the guest" msgstr "" #. common/mltools/tools_utils.ml:461 #: lib/utils.ml:36 common/mltools/tools_utils.ml:542 msgid "stopped by signal %d" msgstr "" #: output/changeuid.ml:58 msgid "subprocess exited with non-zero error code %d" msgstr "" #: output/changeuid.ml:60 msgid "subprocess signalled or stopped by signal %d" msgstr "" #: lib/utils.ml:33 msgid "success" msgstr "" #: output/create_libvirt_xml.ml:297 msgid "" "target hypervisor does not support floppy devices, but floppy devices were " "found in the source guest" msgstr "" #: output/output_ovirt_upload.ml:156 msgid "" "the Python module ‘ovirtsdk4’ could not be loaded, is it installed? See " "previous messages for problems." msgstr "" #: output/output_ovirt_upload.ml:453 msgid "the cluster ‘%s’ does not support the architecture %s but %s" msgstr "" #: common/mlcustomize/customize_run.ml:59 msgid "" "the command may have failed because the network is disabled. Try either " "removing ‘--no-network’ or adding ‘--network’ on the command line." msgstr "" #: common/mltools/JSON_parser.ml:84 msgid "the key ‘%s’ was not found in a list of objects" msgstr "" #: output/output_ovirt_upload.ml:288 msgid "" "the number of ‘-oo ovirt-disk-uuid’ parameters passed on the command line " "has to match the number of guest disk images (for this guest: %d)" msgstr "" #: output/output_vdsm.ml:133 msgid "" "the number of ‘-oo vdsm-image-uuid’ and ‘-oo vdsm-vol-uuid’ parameters " "passed on the command line has to match the number of guest disk images (for " "this guest: %d)" msgstr "" #: output/output_libvirt.ml:239 msgid "the target hypervisor does not support a %s KVM guest" msgstr "" #: common/mltools/JSON_parser.ml:78 msgid "the value for key ‘%s’ is not a string as expected" msgstr "" #: common/mltools/JSON_parser.ml:50 msgid "the value for the key ‘%s’ is not a bool" msgstr "" #: common/mltools/JSON_parser.ml:45 msgid "the value for the key ‘%s’ is not a string" msgstr "" #: common/mltools/JSON_parser.ml:70 msgid "the value for the key ‘%s’ is not an integer" msgstr "" #: common/mltools/JSON_parser.ml:55 msgid "the value for the key ‘%s’ is not an object" msgstr "" #: common/mltools/JSON_parser.ml:59 msgid "the value is not an object" msgstr "" #: common/mltools/JSON_parser.ml:35 msgid "the value of the key ‘%s’ is not an object" msgstr "" #: lib/create_ovf.ml:519 msgid "" "the virtual size of the input disk %d is not an exact multiple of 512 " "bytes. The virtual size is: %Ld.\n" "\n" "This probably means something unexpected is going on, so please file a bug " "about this issue." msgstr "" #: output/output_openstack.ml:144 msgid "" "the ‘%s’ program is not available. It is needed to communicate with " "OpenStack." msgstr "" #: output/output_ovirt.ml:265 msgid "" "there are multiple UUIDs in the %s (%s). This is unexpected, and may be a " "bug in virt-v2v or OVirt." msgstr "" #: output/output_ovirt.ml:262 msgid "there are no UUIDs in the %s (%s). Is it really an OVirt %s?" msgstr "" #: common/mlcustomize/inject_virtio_win.ml:153 msgid "" "there are no virtio drivers available for this version of Windows (%d.%d %s " "%s %s). virt-v2v looks for drivers in %s\n" "\n" "The guest will be configured to use slower emulated devices." msgstr "" #: common/mlcustomize/inject_virtio_win.ml:175 msgid "" "there is no virtio block device driver for this version of Windows (%d.%d " "%s). virt-v2v looks for this driver in %s\n" "\n" "The guest will be configured to use a slower emulated device." msgstr "" #: common/mlcustomize/inject_virtio_win.ml:206 msgid "" "there is no virtio network driver for this version of Windows (%d.%d %s). " "virt-v2v looks for this driver in %s\n" "\n" "The guest will be configured to use a slower emulated device." msgstr "" #: input/parse_libvirt_xml.ml:545 msgid "this guest has a direct network interface which will be ignored" msgid_plural "this guest has direct network interfaces which will be ignored" msgstr[0] "" msgstr[1] "" #: input/parse_libvirt_xml.ml:527 msgid "this guest has a passthrough host device which will be ignored" msgid_plural "this guest has passthrough host devices which will be ignored" msgstr[0] "" msgstr[1] "" #: input/parse_libvirt_xml.ml:248 msgid "this guest has no non-removable disks" msgstr "" #: output/output.ml:65 msgid "this output module doesn't support copying more than %d disks" msgstr "" #: common/mlcustomize/timezone.ml:35 msgid "timezone '%s' does not exist, use a location like 'Europe/London'" msgstr "" #: common/mlcustomize/customize_run.ml:304 msgid "timezone could not be set for this type of guest" msgstr "" #: input/OVA.ml:318 msgid "unable to parse line from manifest file: %S" msgstr "" #: common/mltools/urandom.ml:37 msgid "unexpected end of file while reading /dev/urandom" msgstr "" #: input/input_libvirt.ml:196 msgid "unexpected output from the %s command" msgstr "" #: common/mltools/checksums.ml:58 msgid "unhandled checksum type ‘%s’" msgstr "" #: lib/types.ml:524 msgid "unknown --root option: %s" msgstr "" #: input/select_input.ml:51 msgid "unknown -i option: %s" msgstr "" #: output/select_output.ml:74 msgid "unknown -o option: %s" msgstr "" #: v2v/v2v.ml:164 msgid "unknown -oa option: %s" msgstr "" #: input/input_libvirt.ml:189 msgid "unknown method='%s'" msgstr "" #: input/OVF.ml:103 msgid "unknown Config:firmware value %s (expected \"bios\" or \"efi\")" msgstr "" #: lib/create_ovf.ml:446 lib/create_ovf.ml:247 msgid "unknown Windows 10 variant: %s (%s)" msgstr "" #: v2v/v2v.ml:319 in-place/in_place.ml:256 msgid "unknown block driver ‘--block-driver %s’" msgstr "" #: input/parse_domain_from_vmx.ml:415 msgid "unknown firmware value '%s', assuming BIOS" msgstr "" #: lib/create_ovf.ml:454 lib/create_ovf.ml:255 msgid "unknown guest operating system: %s %s %d.%d %s (%s)" msgstr "" #: v2v/v2v.ml:329 open/open.ml:132 inspector/inspector.ml:238 msgid "unknown input transport ‘-it %s’" msgstr "" #: input/parse_domain_from_vmx.ml:428 msgid "unknown sound device '%s' ignored" msgstr "" #: input/parse_libvirt_xml.ml:215 msgid "unknown sound model %s ignored" msgstr "" #: input/OVF.ml:156 msgid "unsupported compression in OVF: %s" msgstr "" #: input/input_vcenter_https.ml:123 msgid "" "vcenter: was not found in the XML. You need to " "upgrade to libvirt ≥ 1.2.20." msgstr "" #: input/vCenter.ml:79 msgid "vcenter: URL not found: %s" msgstr "" #: input/vCenter.ml:70 msgid "vcenter: incorrect username or password" msgstr "" #: input/vCenter.ml:72 msgid "" "vcenter: incorrect username or password. You might need to specify the " "username in the URI like this: [vpx|esx|..]://USERNAME@[etc]" msgstr "" #: input/vCenter.ml:84 msgid "vcenter: invalid response from server: %s" msgstr "" #: input/vCenter.ml:194 msgid "vcenter: no status code in output of ‘curl’ command." msgstr "" #: output/output_vdsm.ml:148 msgid "vdsm: invalid -os parameter does not contain a valid UUID: %s" msgstr "" #: output/output_openstack.ml:56 msgid "" "virt-v2v -oo server-id= [os-*=...]\n" "\n" "Specify the name or UUID of the conversion appliance using\n" "\n" " virt-v2v ... -o openstack -oo server-id=\n" "\n" "When virt-v2v runs it will attach the Cinder volumes to the\n" "conversion appliance, so this name or UUID must be the name\n" "of the virtual machine on OpenStack where virt-v2v is running.\n" "\n" "In addition, all usual OpenStack “os-*” parameters or “OS_*”\n" "environment variables can be used.\n" "\n" "Openstack “--os-*” parameters must be written as “virt-v2v -oo os-*”.\n" "\n" "For example:\n" "\n" " virt-v2v -oo os-username=\n" "\n" " equivalent to openstack: --os-username=\n" " or the environment variable: OS_USERNAME=\n" "\n" " virt-v2v -oo os-project-name=\n" "\n" " equivalent to openstack: --os-project-name=\n" " or the environment variable: OS_PROJECT_NAME=\n" "\n" "The os-* parameters and environment variables are optional.\n" msgstr "" #: input/parse_libvirt_xml.ml:189 msgid "" "virt-v2v does not support local displays, so in the " "input libvirt XML was ignored" msgstr "" #: input/select_input.ml:83 msgid "virt-v2v-in-place does not support remote libvirt URIs" msgstr "" #: input/parse_domain_from_vmx.ml:50 msgid "vmx URI path component looks incorrect" msgstr "" #: input/parse_domain_from_vmx.ml:48 msgid "vmx URI remote server name omitted" msgstr "" #: input/parse_domain_from_vmx.ml:46 msgid "vmx URI start with ‘ssh://...’" msgstr "" #: input/VMX.ml:313 msgid "vmx parser: cannot parse this line, ignoring: %s" msgstr "" #: input/VMX.ml:346 msgid "vmx parser: duplicate key '%s' ignored" msgstr "" #: output/output_openstack.ml:299 msgid "wait for cinder volume status to change to \"available\"" msgstr "" #: output/output_openstack.ml:360 msgid "waiting for cinder volume %s to attach to the conversion appliance" msgstr "" #: open/open.ml:136 msgid "you must supply the --run parameter" msgstr "" #: input/input_xen_ssh.ml:87 input/input_vddk.ml:189 msgid "‘-ic %s’ URL does not contain a host name field" msgstr "" #: input/input_vddk.ml:273 msgid "‘-io vddk-file=’ must be used exactly %d times" msgstr "" #: input/input_vddk.ml:297 msgid "" "‘-io vddk-libdir=%s’ does not point to a directory. See the virt-v2v-input-" "vmware(1) manual." msgstr "" #: output/output.ml:85 msgid "" "‘-oo compressed’ is only allowed when the output format is a local qcow2-" "format file, i.e. ‘-of qcow2’" msgstr "" #: input/input_vddk.ml:232 msgid "" "‘openssl’ command not found: automatically detecting thumbprint is not " "possible, so you must use ‘-io vddk-thumbprint=XX:XX...’" msgstr "" #: common/mltools/getopt-c.c:68 #, c-format msgid "Try ‘%s --help’ or consult %s(1) for more information.\n" msgstr "" #: common/mltools/getopt-c.c:187 #, c-format msgid "%s: ‘%s’ is not a numeric value.\n" msgstr "" #: common/mltools/getopt-c.c:193 #, c-format msgid "%s: %s: integer out of range\n" msgstr "" #: common/mltools/getopt-c.c:383 #, c-format msgid "%s: ‘%s’ is not allowed for -%c; allowed values are:\n" msgstr "" #: common/mltools/getopt-c.c:386 #, c-format msgid "%s: ‘%s’ is not allowed for %s%s; allowed values are:\n" msgstr "" #: common/mltools/getopt-c.c:421 #, c-format msgid "Extra parameter on the command line: ‘%s’.\n" msgstr "" #: common/options/config.c:72 #, c-format msgid "%s: line %d: error parsing configuration file: %s" msgstr "" #: common/options/decrypt.c:52 #, c-format msgid "string size overflow" msgstr "" #: common/options/decrypt.c:170 #, c-format msgid "" "'clevis_luks_unlock', needed for decrypting %s, is unavailable in this " "libguestfs version" msgstr "" #: common/options/decrypt.c:184 #, c-format msgid "" "could not find key to open LUKS encrypted %s.\n" "\n" "Try using --key on the command line.\n" "\n" "Original error: %s (%d)" msgstr "" #: common/options/inspect.c:78 #, c-format msgid "" "%s: no operating system was found on this disk\n" "\n" "If using guestfish ‘-i’ option, remove this option and instead\n" "use the commands ‘run’ followed by ‘list-filesystems’.\n" "You can then mount filesystems you want by hand using the\n" "‘mount’ or ‘mount-ro’ command.\n" "\n" "If using guestmount ‘-i’, remove this option and choose the\n" "filesystem(s) you want to see by manually adding ‘-m’ option(s).\n" "Use ‘virt-filesystems’ to see what filesystems are available.\n" "\n" "If using other virt tools, this disk image won’t work\n" "with these tools. Use the guestfish equivalent commands\n" "(see the virt tool manual page).\n" msgstr "" #: common/options/inspect.c:99 #, c-format msgid "" "%s: multi-boot operating systems are not supported\n" "\n" "If using guestfish ‘-i’ option, remove this option and instead\n" "use the commands ‘run’ followed by ‘list-filesystems’.\n" "You can then mount filesystems you want by hand using the\n" "‘mount’ or ‘mount-ro’ command.\n" "\n" "If using guestmount ‘-i’, remove this option and choose the\n" "filesystem(s) you want to see by manually adding ‘-m’ option(s).\n" "Use ‘virt-filesystems’ to see what filesystems are available.\n" "\n" "If using other virt tools, multi-boot operating systems won’t work\n" "with these tools. Use the guestfish equivalent commands\n" "(see the virt tool manual page).\n" msgstr "" #: common/options/inspect.c:161 #, c-format msgid "%s: some filesystems could not be mounted (ignored)\n" msgstr "" #: common/options/inspect.c:178 #, c-format msgid "Operating system: %s\n" msgstr "" #: common/options/inspect.c:196 #, c-format msgid "%s mounted on %s\n" msgstr "" #: common/options/keys.c:63 #, c-format msgid "Enter key or passphrase (\"%s\"): " msgstr "" #: common/options/keys.c:146 #, c-format msgid "size_t overflow" msgstr "" #: common/options/keys.c:193 #, c-format msgid "could not read key from user" msgstr "" #: common/options/options.c:283 #, c-format msgid "%s: ‘%s’ could not be mounted.\n" msgstr "" #: common/options/options.c:287 #, c-format msgid "" "%s: Check mount(8) man page to ensure options ‘%s’\n" "%s: are supported by the filesystem that is being mounted.\n" msgstr "" #: common/options/options.c:291 #, c-format msgid "%s: Did you mean to mount one of these filesystems?\n" msgstr "" #: common/options/options.c:304 #, c-format msgid "cannot determine the subvolume for %s: %s (%d)" msgstr "" #: common/options/uri.c:119 #, c-format msgid "%s: --add: could not parse URI ‘%s’\n" msgstr "" #: common/options/uri.c:130 #, c-format msgid "%s: %s: scheme of URI is NULL or empty\n" msgstr "" #: common/options/uri.c:138 #, c-format msgid "%s: %s: cannot have both a server name and a socket query parameter\n" msgstr "" #: common/utils/utils.c:107 #, c-format msgid "%s exited successfully" msgstr "" #: common/utils/utils.c:110 #, c-format msgid "%s exited with error status %d" msgstr "" #: common/utils/utils.c:114 #, c-format msgid "%s killed by signal %d (%s)" msgstr "" #: common/utils/utils.c:118 #, c-format msgid "%s stopped by signal %d (%s)" msgstr "" #: common/utils/utils.c:122 #, c-format msgid "%s exited for an unknown reason (status %d)" msgstr "" ================================================ FILE: po/fi.po ================================================ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR Red Hat Inc. # This file is distributed under the same license as the virt-v2v package. # FIRST AUTHOR , YEAR. # msgid "" msgstr "" "Project-Id-Version: virt-v2v 1.43.4\n" "Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?" "component=libguestfs&product=Virtualization+Tools\n" "POT-Creation-Date: 2025-02-16 17:05+0000\n" "PO-Revision-Date: 2025-01-09 11:33+0000\n" "Last-Translator: Ricky Tigg \n" "Language-Team: Finnish \n" "Language: fi\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Weblate 5.9.2\n" #: input/input_ova.ml:135 common/mltools/tools_utils.ml:235 msgid "%s" msgstr "%s" #: common/mltools/getopt.ml:73 msgid "" "%s\n" "Options:\n" msgstr "" "%s\n" "Vaihtoehdot:\n" #: common/mltools/tools_utils.ml:695 common/mlcustomize/customize_run.ml:390 msgid "%s (ignored)" msgstr "%s (ohitettu)" #: common/mltools/checksums.ml:71 msgid "%s did not return any output" msgstr "%s ei palauttanut mitään ulostuloa" #: common/mlcustomize/customize_run.ml:183 msgid "%s does not exist in the guest" msgstr "%s:ta ei ole olemassa vieraassa" #: output/output_ovirt.ml:275 #, fuzzy #| msgid "" #| "%s does not exist or is not a directory.\n" #| "\n" #| "Most likely cause: Either the %s (%s) has not been attached to any Data " #| "Center, or the path %s is not an %s at all.\n" #| "\n" #| "You have to attach the %s to a Data Center using the RHV-M / OVirt user " #| "interface first.\n" #| "\n" #| "If you don’t know what the %s mount point should be then you can also " #| "find this out through the RHV-M user interface." msgid "" "%s does not exist or is not a directory.\n" "\n" "Most likely cause: Either the %s (%s) has not been attached to any Data " "Center, or the path %s is not an %s at all.\n" "\n" "You have to attach the %s to a Data Center using the oVirt user interface " "first.\n" "\n" "If you don’t know what the %s mount point should be then you can also find " "this out through the oVirt user interface." msgstr "" "%s ei ole olemassa tai se ei ole hakemisto.\n" "\n" "Todennäköisin syy: %s (%s) ei ole liitetty mihinkään palvelinkeskukseen tai " "polku %s ei ole ollenkaan %s.\n" "\n" "Sinun on ensin liitettävä %s tietokeskukseen käyttämällä RHV-M / OVirt " "käyttöliittymää.\n" "\n" "Jos et tiedä mikä %s-liitoskohdan pitäisi olla, voit selvittää tämän myös " "RHV-M-käyttöliittymän kautta." #: common/mlcustomize/customize_run.ml:113 msgid "%s ignored for non-Windows guest" msgstr "%s jätettiin huomioimatta ei-Windows-vieraille" #: common/mlcustomize/customize_run.ml:186 msgid "%s is not a regular file in the guest" msgstr "%s ei ole tavallinen tiedosto vieraassa" #. open/open.ml:39 #. inspector/inspector.ml:153 #. inspector/inspector.ml:40 #. in-place/in_place.ml:164 #. in-place/in_place.ml:45 #: v2v/v2v.ml:194 v2v/v2v.ml:183 v2v/v2v.ml:159 v2v/v2v.ml:44 open/open.ml:68 msgid "%s option used more than once on the command line" msgstr "%s-vaihtoehtoa käytetään useammin kuin kerran komentorivillä" #: common/mltools/tools_utils.ml:231 common/mltools/tools_utils.ml:202 msgid "%s: %s" msgstr "%s: %s" #: common/mltools/tools_utils.ml:233 msgid "%s: %s: %s" msgstr "%s: %s: %s" #: common/mltools/on_exit.ml:77 msgid "" "%s: Exiting on signal %s\n" "%!" msgstr "" "%s: Poistutaan signaalilla %s\n" "%!" #: common/mlcustomize/inject_virtio_win.ml:411 msgid "%s: cannot open virtio-win ISO file: %s" msgstr "%s: ei voi avata virtio-win ISO -tiedostoa: %s" #: common/mlcustomize/customize_run.ml:64 msgid "%s: command exited with an error" msgstr "%s: komento poistui virheellä" #: v2v/v2v.ml:277 #, fuzzy #| msgid "" #| "%s: convert a guest to use KVM\n" #| "\n" #| "virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi -os imported " #| "esx_guest\n" #| "\n" #| "virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi esx_guest -o rhv " #| "-os rhv.nfs:/export_domain --network ovirtmgmt\n" #| "\n" #| "virt-v2v -i libvirtxml guest-domain.xml -o local -os /var/tmp\n" #| "\n" #| "virt-v2v -i disk disk.img -o local -os /var/tmp\n" #| "\n" #| "virt-v2v -i disk disk.img -o glance\n" #| "\n" #| "There is a companion front-end called \"virt-p2v\" which comes as an\n" #| "ISO or CD image that can be booted on physical machines.\n" #| "\n" #| "A short summary of the options is given below. For detailed help please\n" #| "read the man page virt-v2v(1).\n" msgid "" "%s: convert a guest to use KVM\n" "\n" "virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi -os imported " "esx_guest\n" "\n" "virt-v2v -i libvirtxml guest-domain.xml -o local -os /var/tmp\n" "\n" "virt-v2v -i disk disk.img -o local -os /var/tmp\n" "\n" "There is a companion front-end called \"virt-p2v\" which comes as an\n" "ISO or CD image that can be booted on physical machines.\n" "\n" "A short summary of the options is given below. For detailed help please\n" "read the man page virt-v2v(1).\n" msgstr "" "%s: muunna vieras käyttämään KVM:aa\n" "\n" "virt-v2v -ic vpx://v-keskus.esimerkki.com/datakeskus/esxi -os tuotu_esx-" "vieras\n" "\n" "virt-v2v -ic vpx://v-keskus.esimerkki.com/datakeskus/esxi esx-vieras -o rhv " "-os rhv.nfs:/export_domain --network ovirt_hallinta\n" "\n" "virt-v2v -i libvirtxml vieraan_verkkotunnus.xml -o local -os /var/tmp\n" "\n" "virt-v2v -i disk levy.img -o local -os /var/tmp\n" "\n" "virt-v2v -i disk levy.img -o glance\n" "\n" "On olemassa kumppanikäyttöliittymä nimeltä \"virt-p2v\", joka tulee nimellä\n" "ISO- tai CD-kuva, joka voidaan käynnistää fyysisillä koneilla.\n" "\n" "Alla on lyhyt yhteenveto vaihtoehdoista. Yksityiskohtaista apua saat " "lukemalla\n" "man-sivu virt-v2v(1).\n" #: in-place/in_place.ml:217 msgid "" "%s: convert a guest to use KVM in-place\n" "\n" "Note this program modifies the guest in-place with no backup.\n" "Normally you should use virt-v2v.\n" "\n" "virt-v2v-in-place -i libvirtxml guest-domain.xml\n" "\n" "virt-v2v-in-place -i disk disk.img\n" "\n" "A short summary of the options is given below. For detailed help please\n" "read the man page virt-v2v-in-place(1).\n" msgstr "" "%s: muunna vieras käyttämään olemassa olevaa KVM:aa\n" "\n" "Huomaa, että tämä ohjelma muokkaa paikallaan olevaa vierasta, ilman\n" "varmuuskopiota. Normaalisti sinun tulee käyttää virt-v2v.\n" "\n" "virt-v2v-in-place -i libvirtxml vieraan_verkkotunnus.xml\n" "\n" "virt-v2v-in-place -i disk levy.img\n" "\n" "Alla on lyhyt yhteenveto vaihtoehdoista. Yksityiskohtaista apua saat " "lukemalla\n" "man-sivu virt-v2v-in-place(1).\n" #: input/input_vddk.ml:207 msgid "%s: enter password for ‘%s’: " msgstr "" #: common/mltools/tools_utils.ml:172 msgid "%s: error: %s" msgstr "%s: virhe: %s" #: inspector/inspector.ml:198 msgid "" "%s: estimate disk space needed before virt-v2v conversion\n" "\n" "virt-v2v-inspector -i disk disk.img [-O output.xml]\n" "\n" "A short summary of the options is given below. For detailed help please\n" "read the man page virt-v2v-inspector(1).\n" msgstr "" "%s: arvio levytilan tarpeesta ennen virt-v2v:n muuntamista\n" "\n" "virt-v2v-inspector -i disk levy.img [-O ulostulo.xml]\n" "\n" "Alla on lyhyt yhteenveto vaihtoehdoista. Yksityiskohtaista apua saat " "lukemalla\n" "man-sivu virt-v2v-inspector(1).\n" #: open/open.ml:94 #, fuzzy #| msgid "" #| "%s: estimate disk space needed before virt-v2v conversion\n" #| "\n" #| "virt-v2v-inspector -i disk disk.img [-O output.xml]\n" #| "\n" #| "A short summary of the options is given below. For detailed help please\n" #| "read the man page virt-v2v-inspector(1).\n" msgid "" "%s: open the virt-v2v input and run a program on it\n" "\n" "virt-v2v-open -i disk disk.img --run 'virt-inspector --format=raw @@'\n" "\n" "A short summary of the options is given below. For detailed help please\n" "read the man page virt-v2v-open(1).\n" msgstr "" "%s: arvio levytilan tarpeesta ennen virt-v2v:n muuntamista\n" "\n" "virt-v2v-inspector -i disk levy.img [-O ulostulo.xml]\n" "\n" "Alla on lyhyt yhteenveto vaihtoehdoista. Yksityiskohtaista apua saat " "lukemalla\n" "man-sivu virt-v2v-inspector(1).\n" #: common/mltools/tools_utils.ml:726 msgid "%s: operation timed out" msgstr "%s: toiminta aikakatkaistiin" #: input/OVA.ml:127 input/OVA.ml:121 msgid "" "%s: unsupported file format\n" "\n" "Formats which we currently understand for '-i ova' are: tar (uncompressed, " "compress with gzip or xz), zip" msgstr "" "%s: ei-tuettu tiedostomuoto\n" "\n" "Muodot, joita ymmärrämme tällä hetkellä '-i ova':lle ovat: tar (pakkaamaton, " "pakkaaminen gzip:llä tai xz:lla), zip" #: common/mltools/tools_utils.ml:191 msgid "%s: warning: %s" msgstr "%s: varoitus: %s" #. common/mlcustomize/customize_cmdline.ml:258 #: common/mlcustomize/customize_cmdline.ml:367 msgid "'CMD+ARGS'" msgstr "'CMD+ARGS'" #: common/mlcustomize/customize_run.ml:133 msgid "" "--append-line: line must not contain newline characters. Use the --append-" "line option multiple times to add several lines." msgstr "" "--append-line: rivi ei saa sisältää uuden rivin merkkejä. Käytä '--append-" "line' -vaihtoehtoa useita kertoja lisätäksesi useita rivejä." #: common/mlcustomize/customize_run.ml:152 msgid "--chown: could not parse numeric UID:GID from %s:%s" msgstr "--chown: numeerista UID:GID:tä ei voitu jäsentää %s:%s:sta" #: common/mlcustomize/customize_run.ml:216 msgid "" "--inject-blnsvr: blnsvr.exe not found in virtio-win source that you specified" msgstr "" "--inject-blnsvr: blnsvr.exe:ta ei löytynyt määrittämästäsi virtio-win-" "lähteestä" #: common/mlcustomize/customize_run.ml:225 msgid "" "--inject-qemu-ga: QEMU Guest Agent MSI not found in virtio-win source that " "you specified" msgstr "" "--inject-qemu-ga: QEMU Vierasagentin MSI:ta ei löytynyt määrittämästäsi " "virtio-win-lähteestä" #: common/mlcustomize/customize_run.ml:241 msgid "" "--inject-virtio-win: virtio drivers were not found for this Windows version " "in the virtio-win source that you specified" msgstr "" "--inject-virtio-win: virtio-ohjaimia ei löytynyt tälle Windows-versiolle " "määrittämästäsi virtio-win-lähteestä" #: v2v/v2v.ml:146 inspector/inspector.ml:136 in-place/in_place.ml:143 msgid "--mac ip prefix length field is out of range" msgstr "--mac IP-etuliitepituuskenttä on alueen ulkopuolella" #: v2v/v2v.ml:340 msgid "--parallel parameter must be >= 1" msgstr "--parallel-parametrin on oltava >= 1" #: input/input_disk.ml:42 msgid "-i disk: expecting a disk image (filename) on the command line" msgstr "-i disk: odotetaan levykuvan (tiedostonimen) komentorivillä" #: input/input_xen_ssh.ml:65 msgid "-i libvirt: expecting -ic parameter for Xen over SSH connection" msgstr "-i libvirt: odotetaan -ic-parametria Xenille SSH-yhteyden välityksellä" #: input/input_vddk.ml:142 input/input_vcenter_https.ml:88 #, fuzzy #| msgid "-i libvirt: expecting -ic parameter for Xen over SSH connection" msgid "-i libvirt: expecting -ic parameter for vcenter connection" msgstr "-i libvirt: odotetaan -ic-parametria Xenille SSH-yhteyden välityksellä" #: input/input_vcenter_https.ml:101 #, fuzzy #| msgid "-i libvirt: expecting -ic parameter for Xen over SSH connection" msgid "-i libvirt: expecting -ic parameter to contain vcenter server name" msgstr "-i libvirt: odotetaan -ic-parametria Xenille SSH-yhteyden välityksellä" #: input/input_vcenter_https.ml:78 #, fuzzy #| msgid "-i libvirt: expecting -ic parameter for Xen over SSH connection" msgid "-i libvirt: expecting -ip passwordfile parameter for vCenter connection" msgstr "-i libvirt: odotetaan -ic-parametria Xenille SSH-yhteyden välityksellä" #. input/input_vcenter_https.ml:70 #. input/input_libvirt.ml:41 #: input/input_xen_ssh.ml:57 input/input_vddk.ml:132 #, fuzzy #| msgid "-i disk: expecting a disk image (filename) on the command line" msgid "-i libvirt: expecting a libvirt guest name on the command line" msgstr "-i disk: odotetaan levykuvan (tiedostonimen) komentorivillä" #: input/input_libvirt.ml:59 #, fuzzy #| msgid "-i disk: expecting a disk image (filename) on the command line" msgid "-i libvirtxml: expecting a libvirt XML filename on the command line" msgstr "-i disk: odotetaan levykuvan (tiedostonimen) komentorivillä" #: input/input_ova.ml:243 msgid "-i ova: OVF references file ‘%s’ which was not found in the OVA archive" msgstr "" #: input/input_ova.ml:78 msgid "" "-i ova: corrupt OVA: checksum of disk %s does not match manifest (actual = " "%s, expected = %s)" msgstr "" #: input/input_ova.ml:52 #, fuzzy #| msgid "-i disk: expecting a disk image (filename) on the command line" msgid "-i ova: expecting an OVA file name on the command line" msgstr "-i disk: odotetaan levykuvan (tiedostonimen) komentorivillä" #: input/OVA.ml:361 msgid "" "-i ova: invalid OVA file: path ‘%s’ references a file outside the archive" msgstr "" #: input/input_vmx.ml:57 #, fuzzy #| msgid "-o %s: %s option cannot be used in this output mode" msgid "-i vmx: cannot use -it vddk in this input mode" msgstr "-o %s: %s-vaihtoehtoa ei voi käyttää tässä lähtötilassa" #: input/input_vmx.ml:60 msgid "-i vmx: expecting a VMX file or ssh:// URI" msgstr "" #: input/vCenter.ml:159 msgid "" "-ip PASSWORD_FILE parameter ignored because 'user@' was not given in the URL" msgstr "" #: input/input_vddk.ml:119 msgid "-it vddk: ‘-io %s’ is not a valid input option" msgstr "" #: output/output.ml:54 msgid "-o %s: %s option cannot be used in this output mode" msgstr "-o %s: %s-vaihtoehtoa ei voi käyttää tässä lähtötilassa" #: output/output_disk.ml:66 msgid "-o disk: output directory was not specified, use '-os /dir'" msgstr "-o disk: lähtöhakemistoa ei määritetty, käytä '-os /dir'" #: output/output_libvirt.ml:59 output/output_disk.ml:56 msgid "-o disk: unknown output option ‘-oo %s’" msgstr "-o disk: tuntematon lähtövaihtoehto '-oo %s'" #: output/output_kubevirt.ml:81 #, fuzzy #| msgid "-o disk: output directory was not specified, use '-os /dir'" msgid "-o kubevirt: output directory was not specified, use '-os /dir'" msgstr "-o disk: lähtöhakemistoa ei määritetty, käytä '-os /dir'" #: output/output_kubevirt.ml:91 msgid "" "-o kubevirt: the guest name must contain only lowercase alphanumeric " "characters, '-' or '.', and must start and end with an alphanumeric " "character. Rerun virt-v2v with the '-on name' option to rename it." msgstr "" "-o kubevirt: vieraan nimessä saa olla vain pieniä aakkosnumeerisia merkkejä, " "'-' or '.', ja sen tulee alkaa ja päättyä aakkosnumeeriseen merkkiin. Nimeä " "se uudelleen suorittamalla virt-v2v \"-on name\" -vaihtoehdolla." #: output/output_kubevirt.ml:71 #, fuzzy #| msgid "-o disk: unknown output option ‘-oo %s’" msgid "-o kubevirt: unknown output option ‘-oo %s’" msgstr "-o disk: tuntematon lähtövaihtoehto '-oo %s'" #: output/output_libvirt.ml:120 msgid "" "-o libvirt: output pool ‘%s’ does not have /pool/target/path element. See " "virt-v2v-output-local(1)" msgstr "" #: output/output_libvirt.ml:124 msgid "" "-o libvirt: output pool ‘%s’ has type='dir' but the /pool/target/path " "element is not a local directory. See virt-v2v-output-local(1)" msgstr "" #: output/output_libvirt.ml:116 msgid "" "-o libvirt: output pool ‘%s’ is not a directory (type='dir'). See virt-v2v-" "output-local(1)" msgstr "" #: output/output_openstack.ml:88 msgid "-o openstack mode only supports -oa sparse -of raw" msgstr "" #: output/output_openstack.ml:115 #, fuzzy #| msgid "-o disk: unknown output option ‘-oo %s’" msgid "-o openstack: unknown output option ‘-oo %s’" msgstr "-o disk: tuntematon lähtövaihtoehto '-oo %s'" #: output/output_ovirt_upload.ml:97 #, fuzzy #| msgid "-o vdsm: -oo vdsm-vm-uuid set more than once" msgid "-o ovirt-upload: -oo ovirt-cafile set more than once" msgstr "-o vdsm: -oo vdsm-vm-uuid asetettu useammin kuin kerran" #: output/output_ovirt_upload.ml:101 #, fuzzy #| msgid "-o vdsm: -oo vdsm-ovf-output set more than once" msgid "-o ovirt-upload: -oo ovirt-cluster set more than once" msgstr "-o vdsm: -oo vdsm-ovf-output asetettu useammin kuin kerran" #: output/output_ovirt_upload.ml:112 msgid "-o ovirt-upload: invalid UUID for -oo ovirt-disk-uuid" msgstr "" #: output/output_ovirt_upload.ml:76 #, fuzzy #| msgid "" #| "-o rhv-upload: output password file was not specified, use ‘-op’ to point " #| "to a file which contains the password used to connect to the oVirt or RHV " #| "server" msgid "" "-o ovirt-upload: output password file was not specified, use ‘-op’ to point " "to a file which contains the password used to connect to the oVirt server" msgstr "" "-o rhv-upload: lähtösalasanatiedostoa ei määritetty, käytä '-op' " "osoittaaksesi tiedostoon, joka sisältää salasanan, jota käytetään yhteyden " "muodostamiseen oVirt- tai RHV-palvelimeen" #: output/output_ovirt_upload.ml:83 #, fuzzy #| msgid "-o rhv-upload: output storage was not specified, use ‘-os’" msgid "-o ovirt-upload: output storage was not specified, use ‘-os’" msgstr "-o rhv-upload: lähdön tallennustilaa ei ole määritetty, käytä '-os'" #: output/output_ovirt_upload.ml:116 #, fuzzy #| msgid "-o disk: unknown output option ‘-oo %s’" msgid "-o ovirt-upload: unknown output option ‘-oo %s’" msgstr "-o disk: tuntematon lähtövaihtoehto '-oo %s'" #: output/output_ovirt_upload.ml:68 #, fuzzy #| msgid "" #| "-o rhv-upload: use ‘-oc’ to point to the oVirt or RHV server REST API " #| "URL, which is usually https://servername/ovirt-engine/api" msgid "" "-o ovirt-upload: use ‘-oc’ to point to the oVirt server REST API URL, which " "is usually https://servername/ovirt-engine/api" msgstr "" "-o rhv-upload: käytä '-oc' osoittaaksesi oVirt- tai RHV-palvelimen REST API " "URL-osoitteeseen, joka on yleensä https://palvelimen_nimi/ovirt-kone/api" #: output/output_ovirt.ml:51 #, fuzzy #| msgid "-o rhv: -os option was not specified" msgid "-o ovirt: -os option was not specified" msgstr "-o rhv: '-os':n vaihtoehtoa ei ole määritetty" #: output/output_qemu.ml:72 #, fuzzy #| msgid "-o disk: output directory was not specified, use '-os /dir'" msgid "-o qemu: output directory was not specified, use '-os /dir'" msgstr "-o disk: lähtöhakemistoa ei määritetty, käytä '-os /dir'" #: output/output_qemu.ml:63 #, fuzzy #| msgid "-o disk: unknown output option ‘-oo %s’" msgid "-o qemu: unknown output option ‘-oo %s’" msgstr "-o disk: tuntematon lähtövaihtoehto '-oo %s'" #: output/output_vdsm.ml:102 msgid "-o vdsm: -oo vdsm-image-uuid was not specified" msgstr "-o vdsm: -oo vdsm-image-uuid:ta ei ole määritelty" #: output/output_vdsm.ml:81 msgid "-o vdsm: -oo vdsm-ovf-output set more than once" msgstr "-o vdsm: -oo vdsm-ovf-output asetettu useammin kuin kerran" #: output/output_vdsm.ml:77 msgid "-o vdsm: -oo vdsm-vm-uuid set more than once" msgstr "-o vdsm: -oo vdsm-vm-uuid asetettu useammin kuin kerran" #: output/output_vdsm.ml:110 #, fuzzy #| msgid "-o rhv: -os option was not specified" msgid "-o vdsm: -os option was not specified" msgstr "-o rhv: '-os':n vaihtoehtoa ei ole määritetty" #: output/output_vdsm.ml:97 #, fuzzy #| msgid "-o vdsm: -oo vdsm-image-uuid was not specified" msgid "-o vdsm: either -oo vdsm-vol-uuid or -oo vdsm-vm-uuid was not specified" msgstr "-o vdsm: -oo vdsm-image-uuid:ta ei ole määritelty" #: output/output_vdsm.ml:90 #, fuzzy #| msgid "-o disk: unknown output option ‘-oo %s’" msgid "-o vdsm: unknown output option ‘-oo %s’" msgstr "-o disk: tuntematon lähtövaihtoehto '-oo %s'" #: output/output_vdsm.ml:74 #, fuzzy #| msgid "-o disk: unknown output option ‘-oo %s’" msgid "-o vdsm: unknown vdsm-compat level ‘%s’" msgstr "-o disk: tuntematon lähtövaihtoehto '-oo %s'" #. output/output_kubevirt.ml:84 #. output/output_disk.ml:68 #: output/output_vdsm.ml:112 output/output_qemu.ml:74 #, fuzzy #| msgid "OVF (metadata) directory (%s) does not exist or is not a directory" msgid "-os %s: output directory does not exist or is not a directory" msgstr "" "OVF (metatieto) -hakemistoa (%s) ei ole olemassa tai se ei ole hakemisto" #: input/parse_libvirt_xml.ml:279 msgid " missing 'method' attribute, ignoring" msgstr "" #: input/parse_libvirt_xml.ml:291 msgid " unknown fail='%s' attribute, ignoring" msgstr "" #: input/parse_libvirt_xml.ml:370 input/parse_libvirt_xml.ml:317 msgid " was ignored" msgstr "" #: input/parse_libvirt_xml.ml:338 msgid " with was ignored" msgstr "" #: input/parse_libvirt_xml.ml:365 msgid " with was ignored" msgstr "" #: input/parse_libvirt_xml.ml:299 msgid " element with no type attribute ignored" msgstr "" #: input/parse_libvirt_xml.ml:167 msgid " in the input libvirt XML was ignored" msgstr "" #: input/parse_libvirt_xml.ml:414 msgid "" " was ignored because the device name could not be recognized" msgstr "" #: input/input_vddk.ml:176 msgid "" " was not found in the output of ‘virsh dumpxml \"%s\"’. The " "most likely reason is that libvirt is too old, try upgrading libvirt to ≥ " "3.7." msgstr "" #: common/mlcustomize/customize_cmdline.ml:305 msgid "Add package(s) to install" msgstr "Lisää asennettavat paketit" #: common/mlcustomize/customize_cmdline.ml:270 msgid "Add package(s) to install at first boot" msgstr "Lisää ensimmäisen käynnistyksen yhteydessä asennettavat paketit" #: common/mlcustomize/customize_cmdline.ml:175 msgid "Append line(s) to the file" msgstr "Liitä tiedostoon rivit" #: common/mlcustomize/customize_run.ml:137 msgid "Appending line to %s" msgstr "Liitetään rivi %s:een" #: common/mlcustomize/customize_cmdline.ml:197 msgid "Change the owner user and group ID of a file or directory" msgstr "" #: common/mlcustomize/customize_cmdline.ml:186 msgid "Change the permissions of a file" msgstr "Muuta tiedoston käyttöoikeuksia" #: common/mlcustomize/customize_run.ml:155 #, fuzzy #| msgid "Changing permissions of %s to %s" msgid "Changing owner of %s to %d:%d" msgstr "Muuta %s:n käyttöoikeuksia %s:ksi" #: common/mlcustomize/customize_run.ml:141 msgid "Changing permissions of %s to %s" msgstr "Muuta %s:n käyttöoikeuksia %s:ksi" #: input/input_libvirt.ml:174 input/input_libvirt.ml:157 msgid "Checking %s checksum of disk %d/%d" msgstr "" #: common/mlcustomize/customize_cmdline.ml:488 msgid "Compatibility option doing nothing" msgstr "Yhteensopivuusvaihtoehto, ei tee mitään" #: common/mlcustomize/customize_cmdline.ml:219 msgid "Copy files in disk image" msgstr "Kopioi levykuvan tiedostot" #: common/mlcustomize/customize_cmdline.ml:397 #, fuzzy msgid "Copy local files or directories from a tarball into image" msgstr "Kopioi paikalliset tiedostot tai hakemistot kuvaan" #: common/mlcustomize/customize_cmdline.ml:230 msgid "Copy local files or directories into image" msgstr "Kopioi paikalliset tiedostot tai hakemistot kuvaan" #: common/mlcustomize/customize_run.ml:168 msgid "Copying (in image): %s to %s" msgstr "Kopioidaan (kuvassa): %s %s:een" #: v2v/v2v.ml:518 #, fuzzy #| msgid "Copying: %s to %s" msgid "Copying disk %d/%d" msgstr "Kopioidaan: %s %s:een" #: common/mlcustomize/customize_run.ml:172 msgid "Copying: %s to %s" msgstr "Kopioidaan: %s %s:een" #: common/mlcustomize/customize_cmdline.ml:322 msgid "Create a directory" msgstr "Luo hakemisto" #: common/mlcustomize/customize_cmdline.ml:316 msgid "Create symbolic links" msgstr "Luo symbolisia linkkejä" #: v2v/v2v.ml:567 msgid "Creating output metadata" msgstr "Tulosteen metatietojen luominen" #: common/mlcustomize/customize_cmdline.ml:321 msgid "DIR" msgstr "HAKEMISTO" #: common/mlcustomize/customize_cmdline.ml:236 msgid "Delete a file or directory" msgstr "Poista tiedosto tai hakemisto" #: common/mlcustomize/customize_run.ml:176 msgid "Deleting: %s" msgstr "Poistetaan: %s" #: common/mltools/getopt.ml:225 msgid "Display brief help" msgstr "Näytä lyhyt ohje" #: common/mltools/tools_utils.ml:385 msgid "Display version and exit" msgstr "Näytä versio ja poistu" #: common/mlcustomize/customize_cmdline.ml:482 msgid "Do not relabel files with correct SELinux labels" msgstr "Älä nimeä tiedostoja uudelleen oikeilla SELinux-nimiöillä" #: v2v/v2v.ml:248 inspector/inspector.ml:177 in-place/in_place.ml:190 msgid "Don't trim filesystems before conversion" msgstr "" #: common/mltools/tools_utils.ml:389 msgid "Don’t print progress messages" msgstr "Älä tulosta etenemisviestejä" #: common/mltools/tools_utils.ml:420 msgid "Don’t turn off echo for passphrases" msgstr "Älä poista tunnuslauseiden kaikua käytöstä" #: common/mlcustomize/customize_cmdline.ml:247 msgid "Edit file using Perl expression" msgstr "Muokkaa tiedostoa käyttämällä Perl-lauseketta" #: common/mlcustomize/customize_run.ml:180 msgid "Editing: %s" msgstr "Muokkaus: %s" #: common/mltools/tools_utils.ml:386 msgid "Enable libguestfs debugging messages" msgstr "Ota libguestfs-viankorjausviestit käyttöön" #: common/mltools/tools_utils.ml:387 msgid "Enable tracing of libguestfs calls" msgstr "Ota libguestfs-kutsujen jäljitys käyttöön" #: output/output_ovirt.ml:77 msgid "Export Storage Domain" msgstr "Vie tallennustilaverkkotunnus" #: open/open.ml:88 msgid "External command to run" msgstr "" #. common/mlcustomize/customize_cmdline.ml:408 #. common/mlcustomize/customize_cmdline.ml:373 #: common/mlcustomize/customize_cmdline.ml:414 msgid "FILE" msgstr "TIEDOSTO" #: common/mlcustomize/customize_cmdline.ml:455 msgid "FILE:CONTENT" msgstr "" #: common/mlcustomize/customize_cmdline.ml:444 #, fuzzy #| msgid "FILE" msgid "FILE:DEST" msgstr "TIEDOSTO" #: common/mlcustomize/customize_cmdline.ml:242 #, fuzzy #| msgid "FILE" msgid "FILE:EXPR" msgstr "TIEDOSTO" #: common/mlcustomize/customize_cmdline.ml:170 #, fuzzy #| msgid "FILE" msgid "FILE:LINE" msgstr "TIEDOSTO" #: common/mlcustomize/customize_cmdline.ml:203 #, fuzzy #| msgid "FILE" msgid "FILENAME" msgstr "TIEDOSTO" #. in-place/in_place.ml:378 #: v2v/v2v.ml:571 open/open.ml:220 inspector/inspector.ml:334 msgid "Finishing off" msgstr "Viimeistellään" #: common/mlcustomize/customize_cmdline.ml:275 msgid "HOSTNAME" msgstr "" #: v2v/v2v.ml:254 inspector/inspector.ml:183 in-place/in_place.ml:194 msgid "How to choose root filesystem" msgstr "Kuinka valita juuritiedostojärjestelmä" #: common/mltools/tools_utils.ml:177 msgid "" "If reporting bugs, run %s with debugging enabled and include the complete " "output:\n" "\n" " %s -v -x [...]" msgstr "" "Jos ilmoitat vioista, suorita %s viankorjauksen ollessa käytössä ja " "sisällytä koko tulos:\n" "\n" " %s -v -x [...]" #: common/mlcustomize/customize_cmdline.ml:386 msgid "Inject a public key into the guest" msgstr "Sisällytä julkinen avain vieraaseen" #: common/mlcustomize/customize_cmdline.ml:282 msgid "Inject the Balloon Server into a Windows guest" msgstr "Sisällytä Balloon-palvelin Windows-vieraaseen" #: common/mlcustomize/customize_cmdline.ml:288 msgid "Inject the QEMU Guest Agent into a Windows guest" msgstr "Sisällytä QEMU-vierasagentti Windows-vieraaseen" #: common/mlcustomize/customize_cmdline.ml:294 msgid "Inject virtio-win drivers into a Windows guest" msgstr "Sisällytä virtio-win-ajurit Windows-vieraaseen" #. in-place/in_place.ml:176 #: v2v/v2v.ml:216 open/open.ml:80 inspector/inspector.ml:165 msgid "Input format" msgstr "Syöttömuoto" #: input/input_vddk.ml:77 msgid "" "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" "\n" "Refer to nbdkit-vddk-plugin(1) and the VDDK documentation for further\n" "information on these settings.\n" msgstr "" #: v2v/v2v.ml:222 open/open.ml:86 inspector/inspector.ml:171 msgid "Input transport" msgstr "Syöttökuljetus" #: common/mlcustomize/customize_run.ml:191 msgid "Installing firstboot command: %s" msgstr "firstboot-komennon asentaminen: %s" #: common/mlcustomize/customize_run.ml:195 msgid "Installing firstboot packages: %s" msgstr "Firstboot-pakettien asentaminen: %s" #: common/mlcustomize/customize_run.ml:202 msgid "Installing firstboot script: %s" msgstr "Firstboot-skriptin asentaminen: %s" #: common/mlcustomize/customize_run.ml:248 msgid "Installing packages: %s" msgstr "Asennetaan paketteja: %s" #: common/mlcustomize/customize_cmdline.ml:225 msgid "LOCALPATH:REMOTEDIR" msgstr "" #. in-place/in_place.ml:174 #: v2v/v2v.ml:214 open/open.ml:78 inspector/inspector.ml:163 msgid "Libvirt URI" msgstr "Libvirt:n URI" #: common/mlcustomize/customize_run.ml:255 msgid "Linking: %s -> %s" msgstr "Linkittäminen: %s -> %s" #. common/mlcustomize/customize_cmdline.ml:287 #. common/mlcustomize/customize_cmdline.ml:281 #: common/mlcustomize/customize_cmdline.ml:293 msgid "METHOD" msgstr "" #: common/mltools/tools_utils.ml:426 msgid "Make output machine readable" msgstr "Tee tulosteesta koneella luettava" #: common/mlcustomize/customize_run.ml:260 msgid "Making directory: %s" msgstr "Luodaan hakemistoa: %s" #: v2v/v2v.ml:226 inspector/inspector.ml:173 in-place/in_place.ml:182 msgid "Map NIC to network or bridge or assign static IP" msgstr "Yhdistä NIC verkkoon tai siltaan tai määritä staattinen IP" #: v2v/v2v.ml:210 inspector/inspector.ml:159 in-place/in_place.ml:170 msgid "Map bridge ‘in’ to ‘out’" msgstr "" #: v2v/v2v.ml:230 inspector/inspector.ml:179 in-place/in_place.ml:186 msgid "Map network ‘in’ to ‘out’" msgstr "" #: common/mlcustomize/customize_cmdline.ml:333 msgid "Move files in disk image" msgstr "Siirrä levykuvassa olevia tiedostoja" #: common/mlcustomize/customize_run.ml:264 msgid "Moving: %s -> %s" msgstr "Siirretään: %s -> %s" #. input/input_vcenter_https.ml:45 #. input/input_ova.ml:35 #. input/input_libvirt.ml:233 #. input/input_libvirt.ml:221 #. input/input_disk.ml:35 #: input/input_xen_ssh.ml:43 input/input_vmx.ml:36 msgid "No input options can be used in this mode.\n" msgstr "Tässä tilassa ei voi käyttää syöttövaihtoehtoja.\n" #: output/output_ovirt.ml:40 output/output_null.ml:38 #: output/output_glance.ml:40 msgid "No output options can be used in this mode.\n" msgstr "Tässä tilassa ei voi käyttää lähtövaihtoehtoja.\n" #: output/output_vdsm.ml:166 msgid "OVF (metadata) directory (%s) does not exist or is not a directory" msgstr "" "OVF (metatieto) -hakemistoa (%s) ei ole olemassa tai se ei ole hakemisto" #: common/mlcustomize/firstboot.ml:268 msgid "" "One of rhsrvany.exe or pvvxsvc.exe is missing in %s. One of them is " "required in order to install Windows firstboot scripts. You can get one by " "building rhsrvany (https://github.com/rwmjones/rhsrvany)" msgstr "" "Yksi tiedostoista rhsrvany.exe tai pvvxsvc.exe puuttuu %s:sta. Yksi niistä " "tarvitaan Windowsin firstboot-komentosarjojen asentamiseen. Voit hankkia " "sellaisen rakentamalla rhsrvany (https://github.com/rwmjones/rhsrvany)" #: v2v/v2v.ml:236 msgid "Output hypervisor connection" msgstr "" #: output/output_ovirt_upload.ml:51 msgid "" "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" "\n" "You can override the UUIDs of the disks, instead of using autogenerated " "UUIDs\n" "after their uploads (if you do, you must supply one for each disk):\n" "\n" " -oo ovirt-disk-uuid=UUID Disk UUID\n" msgstr "" #: output/output_qemu.ml:44 msgid "" "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" msgstr "" #: output/output_vdsm.ml:43 msgid "" "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" "\n" "For 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" msgstr "" #: output/output_disk.ml:44 msgid "" "Output options that can be used with -o disk:\n" "\n" " -oo compressed Compress the output file (used only with -of qcow2)\n" msgstr "" #: output/output_kubevirt.ml:51 msgid "" "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" msgstr "" #: output/output_libvirt.ml:47 msgid "" "Output options that can be used with -o libvirt:\n" "\n" " -oo compressed Compress the output file (used only with -of qcow2)\n" msgstr "" #. common/mlcustomize/customize_cmdline.ml:235 #: common/mlcustomize/customize_cmdline.ml:420 msgid "PATH" msgstr "" #: common/mlcustomize/customize_cmdline.ml:181 msgid "PERMISSIONS:FILE" msgstr "" #. common/mlcustomize/customize_cmdline.ml:300 #. common/mlcustomize/customize_cmdline.ml:265 #: common/mlcustomize/customize_cmdline.ml:427 msgid "PKG,PKG.." msgstr "" #: v2v/v2v.ml:263 in-place/in_place.ml:203 msgid "Prefer 'virtio-blk' or 'virtio-scsi'" msgstr "" #: v2v/v2v.ml:252 in-place/in_place.ml:192 msgid "Print source and stop" msgstr "" #: common/mlcustomize/customize_cmdline.ml:208 msgid "Read customize commands from file" msgstr "Lue mukautuskomennot tiedostosta" #: common/mltools/tools_utils.ml:421 msgid "Read passphrases from stdin" msgstr "" #: common/mlcustomize/customize_cmdline.ml:421 #, fuzzy #| msgid "Delete a file or directory" msgid "Recursively truncate all files in directory" msgstr "Poista tiedosto tai hakemisto" #: common/mlcustomize/customize_run.ml:298 #, fuzzy msgid "Recursively truncating: %s" msgstr "%s: varoitus: %s" #: v2v/v2v.ml:240 msgid "Rename guest when converting" msgstr "Nimeä vieras uudelleen muunnettaessa" #: common/mlcustomize/customize_cmdline.ml:259 msgid "Run command at first guest boot" msgstr "Suorita komento ensimmäisen vieraskäynnistyksen yhteydessä" #: common/mlcustomize/customize_cmdline.ml:368 msgid "Run command in disk image" msgstr "Suorita komento levykuvassa" #: common/mlcustomize/customize_cmdline.ml:253 msgid "Run script at first guest boot" msgstr "Suorita skripti ensimmäisen vieraskäynnistyksen yhteydessä" #: common/mlcustomize/customize_cmdline.ml:362 msgid "Run script in disk image" msgstr "Suorita skripti levykuvassa" #: common/mlcustomize/customize_cmdline.ml:409 msgid "Run touch on a file" msgstr "" #: v2v/v2v.ml:250 msgid "Run up to N instances of nbdcopy in parallel" msgstr "" #: open/open.ml:188 msgid "Running external command" msgstr "" #: common/mlcustomize/customize_run.ml:307 #, fuzzy #| msgid "Running: %s" msgid "Running touch: %s" msgstr "Suoritetaan: %s" #. common/mlcustomize/customize_run.ml:159 #: common/mlcustomize/customize_run.ml:274 msgid "Running: %s" msgstr "Suoritetaan: %s" #. common/mlcustomize/customize_cmdline.ml:252 #: common/mlcustomize/customize_cmdline.ml:361 msgid "SCRIPT" msgstr "KOMENTOSARJA" #: common/mltools/tools_utils.ml:422 #: common/mlcustomize/customize_cmdline.ml:351 msgid "SELECTOR" msgstr "" #: common/mlcustomize/customize_run.ml:363 msgid "SELinux relabelling" msgstr "SELinuxin nimiön uudelleenmäärittäminen" #. common/mlcustomize/customize_cmdline.ml:214 #: common/mlcustomize/customize_cmdline.ml:328 msgid "SOURCE:DEST" msgstr "" #: common/mlcustomize/customize_run.ml:287 msgid "SSH key could not be injected for this type of guest" msgstr "SSH-avainta ei voitu sisällyttää tämän tyyppiselle vieraalle" #: common/mlcustomize/customize_run.ml:284 msgid "SSH key inject: %s" msgstr "SSH-avaimen sisällyttäminen: %s" #: common/mlcustomize/customize_cmdline.ml:374 msgid "Scrub a file" msgstr "" #: common/mlcustomize/customize_cmdline.ml:466 msgid "Scrub build log file" msgstr "" #: common/mlcustomize/customize_run.ml:374 msgid "Scrubbing the log file" msgstr "" #: common/mlcustomize/customize_run.ml:279 #, fuzzy #| msgid "Running: %s" msgid "Scrubbing: %s" msgstr "Suoritetaan: %s" #: v2v/v2v.ml:208 msgid "Set bandwidth dynamically from file" msgstr "" #: v2v/v2v.ml:206 msgid "Set bandwidth to bits per sec" msgstr "" #. in-place/in_place.ml:172 #: v2v/v2v.ml:212 open/open.ml:76 inspector/inspector.ml:161 #, fuzzy #| msgid "Set output mode (default: libvirt)" msgid "Set input mode (default: libvirt)" msgstr "Aseta lähtötila (oletus: libvirt)" #: v2v/v2v.ml:228 inspector/inspector.ml:175 in-place/in_place.ml:184 msgid "Set memory size" msgstr "" #: v2v/v2v.ml:256 inspector/inspector.ml:185 in-place/in_place.ml:196 msgid "Set number of vCPUs" msgstr "" #. in-place/in_place.ml:178 #: v2v/v2v.ml:218 open/open.ml:82 inspector/inspector.ml:167 msgid "Set option for input mode" msgstr "" #: v2v/v2v.ml:242 #, fuzzy #| msgid "Set the output filename" msgid "Set option for output mode" msgstr "Aseta tulostetiedoston nimi" #: v2v/v2v.ml:234 #, fuzzy #| msgid "Set output storage location" msgid "Set output allocation mode" msgstr "Aseta tulosteiden tallennustilan paikka" #: v2v/v2v.ml:238 #, fuzzy #| msgid "Input format" msgid "Set output format" msgstr "Syöttömuoto" #: v2v/v2v.ml:232 msgid "Set output mode (default: libvirt)" msgstr "Aseta lähtötila (oletus: libvirt)" #: v2v/v2v.ml:246 msgid "Set output storage location" msgstr "Aseta tulosteiden tallennustilan paikka" #: common/mlcustomize/customize_cmdline.ml:476 msgid "Set password crypto" msgstr "Aseta krypton salasana" #: common/mltools/tools_utils.ml:430 msgid "Set program name" msgstr "Aseta ohjelman nimi" #: common/mlcustomize/customize_cmdline.ml:356 msgid "Set root password" msgstr "Aseta rootin salasana" #: common/mlcustomize/customize_cmdline.ml:403 msgid "Set the default timezone" msgstr "Aseta oletusaikavyöhyke" #: common/mlcustomize/customize_cmdline.ml:276 msgid "Set the hostname" msgstr "Aseta isäntänimi" #: inspector/inspector.ml:181 in-place/in_place.ml:188 msgid "Set the output filename" msgstr "Aseta tulostetiedoston nimi" #: common/mlcustomize/customize_cmdline.ml:345 msgid "Set user password" msgstr "Aseta käyttäjän salasana" #: common/mlcustomize/customize_run.ml:75 msgid "Setting a random seed" msgstr "Satunnaisen siemenen asettaminen" #: common/mlcustomize/customize_run.ml:354 msgid "Setting passwords" msgstr "Salasanojen asettaminen" #: common/mlcustomize/password.ml:113 msgid "Setting random password of %s to %s" msgstr "Asetetaan %s:n satunnainen salasana %s:ksi" #: common/mlcustomize/customize_run.ml:207 msgid "Setting the hostname: %s" msgstr "Isäntänimen asettaminen: %s" #: common/mlcustomize/customize_run.ml:90 msgid "Setting the machine ID in %s" msgstr "Konetunnuksen asettaminen %s:ssa" #: common/mlcustomize/customize_run.ml:302 msgid "Setting the timezone: %s" msgstr "Aikavyöhykkeen asettaminen: %s" #: v2v/v2v.ml:481 msgid "Setting up the destination: %s" msgstr "Asetetaan määränpäätä: %s" #. in-place/in_place.ml:342 #: v2v/v2v.ml:457 open/open.ml:184 inspector/inspector.ml:310 msgid "Setting up the source: %s" msgstr "Asetetaan lähdettä: %s" #: v2v/v2v.ml:463 in-place/in_place.ml:348 msgid "Source guest information (--print-source option):\n" msgstr "Vieraan lähdetiedot (--print-source option):\n" #: common/mltools/tools_utils.ml:422 msgid "Specify a LUKS key" msgstr "Määritä LUKS-avain" #: common/mlcustomize/customize_cmdline.ml:392 msgid "TARFILE:REMOTEDIR" msgstr "" #: common/mlcustomize/customize_cmdline.ml:311 msgid "TARGET:LINK[:LINK..]" msgstr "" #: common/mlcustomize/customize_cmdline.ml:402 msgid "TIMEZONE" msgstr "" #: v2v/v2v.ml:200 msgid "" "The --in-place option has been replaced by the ‘virt-v2v-in-place’ program" msgstr "Vaihtoehto --in-place on korvattu \"virt-v2v-in-place\" -ohjelmalla" #: output/output_qemu.ml:251 msgid "" "The Virt machine has no support for IDE. Please report a bug for virt-v2v -- " "refer to virt-v2v(1) section \"BUGS\"." msgstr "" "Virtuaalikoneella ei ole tukea IDE:lle. Ilmoita virt-v2v:n viasta -- katso " "virt-v2v(1) osio \"BUGS\"." #: output/output_qemu.ml:272 msgid "" "The Virt machine has no support for floppies. Please report a bug for virt-" "v2v -- refer to virt-v2v(1) section \"BUGS\"." msgstr "" "Virtuaalikoneella ei ole tukea levykkeille. Ilmoita virt-v2v:n viasta -- " "katso virt-v2v(1) osio \"BUGS\"." #: lib/create_ovf.ml:785 #, fuzzy #| msgid "" #| "This guest required a password for connection to its display, but this is " #| "not supported by RHV. Therefore the converted guest’s display will not " #| "require a separate password to connect." msgid "" "This guest required a password for connection to its display, but this is " "not supported by oVirt. Therefore the converted guest’s display will not " "require a separate password to connect." msgstr "" "Tämä vieras vaati salasanan muodostaakseen yhteyden näyttöönsä, mutta RHV ei " "tue tätä. Siksi muunnetun vieraan näyttö ei vaadi erillistä salasanaa " "yhteyden muodostamiseen." #: input/input_vmx.ml:111 msgid "" "This transport does not support guests with snapshots. Either collapse the " "snapshots for this guest and try the conversion again, or use one of the " "alternate conversion methods described in virt-v2v-input-vmware(1) section " "\"NOTES\"." msgstr "" "Tämä kuljetus ei tue vieraita tilannekuvien kanssa. Joko tiivistä tämän " "vieraan tilannevedokset ja yritä muuntamista uudelleen tai käytä jotakin " "vaihtoehtoisista muunnosmenetelmistä, jotka on kuvattu virt-v2v-input-" "vmware(1) -osiossa \"HUOMAUTUKSET\"." #: common/mlcustomize/customize_cmdline.ml:415 msgid "Truncate a file to zero size" msgstr "Katkaise tiedosto nollakokoon" #: common/mlcustomize/customize_run.ml:294 #, fuzzy msgid "Truncating: %s" msgstr "%s: varoitus: %s" #: common/mlcustomize/customize_cmdline.ml:192 msgid "UID:GID:PATH" msgstr "" #: common/mlcustomize/customize_cmdline.ml:339 msgid "USER:SELECTOR" msgstr "" #: common/mlcustomize/customize_cmdline.ml:380 msgid "USER[:SELECTOR]" msgstr "" #: common/mlcustomize/customize_cmdline.ml:432 msgid "Uninstall package(s)" msgstr "Poista paketteja" #: common/mlcustomize/customize_run.ml:311 #, fuzzy msgid "Uninstalling packages: %s" msgstr "Poista paketteja" #: common/mlcustomize/customize_run.ml:290 msgid "Unpack tar file: %s to %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:438 #, fuzzy msgid "Update packages" msgstr "Poista paketteja" #: common/mlcustomize/customize_run.ml:316 #, fuzzy msgid "Updating packages" msgstr "Poista paketteja" #: common/mlcustomize/customize_cmdline.ml:449 msgid "Upload local file to destination" msgstr "" #: common/mlcustomize/customize_run.ml:321 #, fuzzy #| msgid "Copying: %s to %s" msgid "Uploading: %s to %s" msgstr "Kopioidaan: %s %s:een" #: common/mltools/tools_utils.ml:391 msgid "Use ANSI colour sequences even if not tty" msgstr "" #. in-place/in_place.ml:180 #: v2v/v2v.ml:220 open/open.ml:84 inspector/inspector.ml:169 msgid "Use password from file to connect to input hypervisor" msgstr "" #: v2v/v2v.ml:244 msgid "Use password from file to connect to output hypervisor" msgstr "" #: v2v/v2v.ml:224 msgid "Use virt-v2v-in-place instead" msgstr "" #: common/mltools/tools_utils.ml:392 msgid "Wrap log messages even if not tty" msgstr "" #: common/mlcustomize/customize_cmdline.ml:460 msgid "Write file" msgstr "" #: common/mlcustomize/customize_run.ml:346 #, fuzzy msgid "Writing: %s" msgstr "%s: varoitus: %s" #: lib/YAML.ml:167 msgid "" "YAML block contains newline character. This should not happen, please " "report a bug against virt-v2v." msgstr "" #: output/output_libvirt.ml:96 msgid "" "a libvirt domain called ‘%s’ already exists on the target.\n" "\n" "If using virt-v2v directly, use the ‘-on’ option to select a different name. " "Or delete the existing domain on the target using the ‘virsh undefine’ " "command.\n" "\n" "If using virt-p2v, select a different ‘Name’ in the ‘Target properties’. Or " "delete the existing domain on the target using the ‘virsh undefine’ command." msgstr "" #: common/mlcustomize/append_line.ml:44 #, fuzzy msgid "append_line: %s is not a file" msgstr "Liitä tiedostoon rivit" #: input/input_libvirt.ml:206 msgid "" "bad checksum for disk %d/%d\n" "Expected checksum: %s\n" "Actual checksum: %s" msgstr "" #: lib/libvirt_utils.ml:59 msgid "cannot find libvirt domain ‘%s’: %s" msgstr "" #: lib/libvirt_utils.ml:96 msgid "" "cannot find libvirt pool ‘%s’: %s\n" "\n" "Use ‘virsh pool-list --all’ to list all available pools, and ‘virsh pool-" "dumpxml ’ to display details about a particular pool.\n" "\n" "To set the pool which virt-v2v uses, add the ‘-os ’ option." msgstr "" #: lib/libvirt_utils.ml:110 msgid "cannot find libvirt volume ‘%s’: %s" msgstr "" #: common/mlcustomize/firstboot.ml:235 #, fuzzy #| msgid "" #| "could not finish firstboot installation by running ‘%s’ because the " #| "command failed: %s" msgid "" "cannot finish firstboot installation by running ‘%s’ because host cpu (%s) " "and guest arch (%s) are not compatible. The firstboot service may not run " "at boot." msgstr "" "firstboot-asennusta ei voitu suorittaa loppuun suorittamalla '%s', koska " "komento epäonnistui: %s" #: output/output_libvirt.ml:180 msgid "cannot get libvirt domain capabilities: %s" msgstr "" #: output/output_libvirt.ml:85 msgid "cannot get libvirt hypervisor capabilities: %s" msgstr "" #: v2v/v2v.ml:105 inspector/inspector.ml:95 in-place/in_place.ml:102 msgid "cannot parse --mac \"%s\" parameter" msgstr "" #: v2v/v2v.ml:129 inspector/inspector.ml:119 in-place/in_place.ml:126 msgid "cannot parse --mac ip %s: doesn’t look like “%s” is an IP address" msgstr "" #: v2v/v2v.ml:143 inspector/inspector.ml:133 in-place/in_place.ml:140 #, fuzzy #| msgid "--mac ip prefix length field is out of range" msgid "cannot parse --mac ip prefix length field as an integer: %s" msgstr "--mac IP-etuliitepituuskenttä on alueen ulkopuolella" #: common/mlcustomize/guest_packages.ml:29 msgid "" "cannot use ‘%s’ because no package manager has been detected for this guest " "OS.\n" "\n" "If this guest OS is a common one with ordinary package management then this " "may have been caused by a failure of libguestfs inspection.\n" "\n" "For OSes such as Windows that lack package management, this is not " "possible. Try using one of the ‘--firstboot*’ flags instead (described in " "the virt-customize(1) manual)." msgstr "" #: output/output_ovirt.ml:91 msgid "" "cannot write files to the NFS server as %d:%d, even though we appear to be " "running as root. This probably means the NFS client or idmapd is not " "configured properly.\n" "\n" "You will have to chown the files that virt-v2v creates after the run, " "otherwise oVirt will not be able to import the VM." msgstr "" #: output/output_ovirt.ml:99 msgid "" "cannot write files to the NFS server as %d:%d. You might want to stop virt-" "v2v (^C) and rerun it as root." msgstr "" #: common/mlcustomize/customize_cmdline.ml:508 msgid "command '%s' cannot be used in command files, see the man page" msgstr "komentoa '%s' ei voi käyttää komentotiedostoissa, katso man-sivu" #: common/mlcustomize/customize_cmdline.ml:525 msgid "command '%s' not valid, see the man page" msgstr "komentoa '%s'ei kelpaa, katso man-sivua" #: common/mldrivers/linux_bootloaders.ml:318 msgid "could not add grub2 serial console (ignored)" msgstr "" #: input/ssh.ml:52 msgid "" "could not copy the VMX file from the remote server, see earlier error " "messages" msgstr "" #: output/output_libvirt.ml:211 msgid "" "could not define libvirt domain: %s.\n" "The libvirt XML is still available in ‘%s’. Try running ‘virsh -c %s define " "%s’ yourself instead." msgstr "" #: common/mldrivers/linux_bootloaders.ml:221 msgid "could not determine a way to update the configuration of Grub2" msgstr "" #: input/input_vddk.ml:243 msgid "" "could not fetch thumbprint from the server, you mus use ‘-io vddk-" "thumbprint=XX:XX...’" msgstr "" #: common/mldrivers/linux_bootloaders.ml:376 msgid "could not find bootloader mount point (%s): %s" msgstr "" #: common/mldrivers/windows_drivers.ml:91 msgid "" "could not find registry entry " "HKEY_LOCAL_MACHINE\\SYSTEM\\DriverDatabase\\DeviceIds in this Windows " "guest. It may be either a very old or very new version of Windows that we " "cannot process." msgstr "" #: common/mlcustomize/firstboot.ml:232 msgid "" "could not finish firstboot installation by running ‘%s’ because the command " "failed: %s" msgstr "" "firstboot-asennusta ei voitu suorittaa loppuun suorittamalla '%s', koska " "komento epäonnistui: %s" #. input/input_vcenter_https.ml:94 #: input/select_input.ml:66 input/input_xen_ssh.ml:71 input/input_vddk.ml:151 msgid "could not parse '-ic %s'. Original error message was: %s" msgstr "" #: input/parse_libvirt_xml.ml:407 input/parse_libvirt_xml.ml:54 msgid "could not parse device name ‘%s’ from the source libvirt XML" msgstr "" #: input/OVF.ml:168 msgid "could not parse disk rasd:HostResource from OVF document" msgstr "" #: input/input_ova.ml:98 msgid "could not parse ovf:Name from OVF document" msgstr "" #: output/output_ovirt.ml:247 msgid "" "could not read the %s specified by the '-os %s' parameter on the command " "line. Is it really an OVirt %s? The original error is: %s" msgstr "" #: common/mldrivers/linux_bootloaders.ml:336 msgid "" "could not rebuild grub2 configuration file (%s). This may mean that grub " "output will not be sent to the serial port, but otherwise should be " "harmless. Original error message: %s" msgstr "" #: output/output_libvirt.ml:156 msgid "could not refresh libvirt pool ‘%s’: %s" msgstr "" #: common/mldrivers/linux_bootloaders.ml:320 msgid "could not remove grub2 serial console (ignored)" msgstr "" #: common/mltools/registry.ml:93 msgid "" "decode_utf16le: Windows UTF16-LE string contains non-7-bit characters. This " "is a bug in %s, please report it." msgstr "" #: common/mltools/registry.ml:87 msgid "" "decode_utf16le: Windows string does not appear to be in UTF16-LE encoding. " "This could be a bug in %s." msgstr "" #: common/mldrivers/linux_bootloaders.ml:126 msgid "didn't find grub entry for kernel %s" msgstr "" #: input/input_disk.ml:150 msgid "disks on the command line have mixed formats" msgstr "" #: input/parse_libvirt_xml.ml:194 msgid "display in the input libvirt XML was ignored" msgstr "" #: output/output_qemu.ml:147 msgid "don’t know how to convert UEFI guests for architecture %s" msgstr "" #: common/mldrivers/linux.ml:158 msgid "don’t know how to find file owner using %s" msgstr "" #: common/mldrivers/linux.ml:89 msgid "don’t know how to get list of files from package using %s" msgstr "" #: common/mltools/curl.ml:82 msgid "downloading %s" msgstr "ladataan %s" #: lib/networks.ml:84 msgid "" "duplicate --mac parameter. Duplicate mappings specified for MAC address %s." msgstr "" #: lib/networks.ml:102 msgid "" "duplicate -b/--bridge parameter. Duplicate mappings specified for bridge %s." msgstr "" #: lib/networks.ml:108 msgid "duplicate -b/--bridge parameter. Only one default mapping is allowed." msgstr "" #: lib/networks.ml:90 msgid "" "duplicate -n/--network parameter. Duplicate mappings specified for network " "%s." msgstr "" #: lib/networks.ml:96 msgid "duplicate -n/--network parameter. Only one default mapping is allowed." msgstr "" #: input/OVF.ml:143 msgid "error parsing disk fileRef" msgstr "" #: input/input_ova.ml:124 msgid "error uncompressing %s, see earlier error messages" msgstr "" #: input/OVA.ml:210 input/OVA.ml:112 msgid "error unpacking %s, see earlier error messages" msgstr "" #: common/mltools/tools_utils.ml:248 #, fuzzy #| msgid "Deleting: %s" msgid "exception: %s" msgstr "Poistetaan: %s" #: common/mltools/tools_utils.ml:455 #, fuzzy msgid "exited with error %d" msgstr "ulkoinen komento '%s' poistui virheellä %d" #: lib/utils.ml:34 #, fuzzy msgid "exited with non-zero error code %d" msgstr "ulkoinen komento '%s' poistui virheellä %d" #: input/input_disk.ml:147 #, fuzzy #| msgid "-i disk: expecting a disk image (filename) on the command line" msgid "expected >= 1 disk name on the command line" msgstr "-i disk: odotetaan levykuvan (tiedostonimen) komentorivillä" #: common/mltools/xpath_helpers.ml:36 msgid "" "expecting XML expression to return an integer (expression: %s, matching " "string: %s)" msgstr "" #: common/mltools/tools_utils.ml:440 msgid "external command" msgstr "" #: output/output_ovirt_upload.ml:265 msgid "failed server prechecks, see earlier errors" msgstr "" #: output/output_ovirt_upload.ml:507 msgid "failed to create virtual machine, see earlier errors" msgstr "" #: output/output_ovirt_upload.ml:479 msgid "failed to finalize the transfers, see earlier errors" msgstr "" #: common/mldrivers/linux_bootloaders.ml:208 msgid "failed to find grub2-mkconfig binary (but Grub2 was detected on guest)" msgstr "" #: input/OVA.ml:461 msgid "failed to parse line returned by tar: %S" msgstr "" #: output/output_ovirt_upload.ml:394 msgid "failed to start transfer, see earlier errors" msgstr "" #: output/output_ovirt_upload.ml:311 msgid "failed vmchecks, see earlier errors" msgstr "" #: common/mltools/tools_utils.ml:239 msgid "failure: %s" msgstr "epäonnistuminen: %s" #: input/input_ova.ml:134 msgid "file ‘%s’ not found in the ova" msgstr "" #: common/mlcustomize/firstboot.ml:143 msgid "" "firstboot: unknown version for old firstboot.service file %s (md5=%s), it " "will not be removed" msgstr "" #: common/mltools/tools_utils.ml:258 #, fuzzy msgid "generated by %s %s" msgstr "aliprosessi, joka on signaloitu tai pysäytetty signaalilla %d" #: output/create_libvirt_xml.ml:39 msgid "get_osinfo_id: unknown guest operating system: %s" msgstr "" #: output/output_glance.ml:66 msgid "" "glance: glance client is not installed or set up correctly. You may need to " "set environment variables or source a script to enable authentication. See " "preceding messages for details." msgstr "" #: output/output_glance.ml:139 msgid "glance: image upload to glance failed, see earlier errors" msgstr "" #: common/mlcustomize/firstboot.ml:386 common/mlcustomize/firstboot.ml:164 msgid "guest type %s is not supported" msgstr "" #: common/mlcustomize/firstboot.ml:413 msgid "guest type %s/%s is not supported" msgstr "" #: common/mltools/tools_utils.ml:749 msgid "" "host (%s/%s) and guest (%s/%s) are not compatible, so you cannot use command " "line options that involve running commands in the guest. Use --firstboot " "scripts instead." msgstr "" #: common/mlcustomize/customize_run.ml:209 #, fuzzy #| msgid "SSH key could not be injected for this type of guest" msgid "hostname could not be set for this type of guest" msgstr "SSH-avainta ei voitu sisällyttää tämän tyyppiselle vieraalle" #: common/mldrivers/linux_kernels.ml:342 msgid "ignoring kernel %s in bootloader, as it does not exist." msgstr "" #: output/output_vdsm.ml:160 #, fuzzy #| msgid "OVF (metadata) directory (%s) does not exist or is not a directory" msgid "image directory (%s) does not exist or is not a directory" msgstr "" "OVF (metatieto) -hakemistoa (%s) ei ole olemassa tai se ei ole hakemisto" #: input/parse_libvirt_xml.ml:81 msgid "in the libvirt XML metadata, is missing or empty" msgstr "" #: input/parse_libvirt_xml.ml:87 msgid "in the libvirt XML metadata, is missing or empty" msgstr "" #: input/input_vcenter_https.ml:52 input/input_libvirt.ml:107 msgid "in-place mode does not work with HTTP source" msgstr "" #: input/input_vddk.ml:146 msgid "in-place mode does not work with VDDK source" msgstr "" #: input/input_vmx.ml:43 msgid "in-place mode does not work with VMX source" msgstr "" #: input/input_xen_ssh.ml:50 msgid "in-place mode does not work with Xen over SSH source" msgstr "" #: output/output_kubevirt.ml:116 msgid "" "incorrect number of '-oo disk' parameters. This guest has %d disks, but the " "parameter was used %d times." msgstr "" #: input/input_xen_ssh.ml:119 msgid "" "input from xen over ssh does not support disks stored on remote block " "devices. See virt-v2v-input-xen(1) section \"Xen or ssh conversions from " "block devices\"." msgstr "" #. in-place/in_place.ml:397 #: v2v/v2v.ml:590 open/open.ml:238 inspector/inspector.ml:353 msgid "" "insufficient free space in the conversion server temporary directory %s " "(%s).\n" "\n" "Either free up space in that directory, or set the LIBGUESTFS_CACHEDIR " "environment variable to point to another directory with more than 1GB of " "free space.\n" "\n" "See also the virt-v2v(1) manual, section \"Minimum free space check in the " "host\"." msgstr "" #: common/mltools/tools_utils.ml:246 msgid "internal error: Not_found exception was thrown" msgstr "" #: common/mltools/tools_utils.ml:243 msgid "internal error: assertion failed at %s, line %d, char %d" msgstr "" #: common/mltools/tools_utils.ml:241 msgid "internal error: invalid argument: %s" msgstr "" #: common/mldrivers/linux.ml:128 msgid "internal error: is_file_owned: dpkg command returned no output" msgstr "" #: common/mldrivers/linux.ml:133 msgid "internal error: is_file_owned: unexpected output from dpkg command: %s" msgstr "" #: common/mldrivers/linux_bootloaders.ml:130 msgid "internal error: regular expression did not match ‘%s’" msgstr "" #: v2v/v2v.ml:548 msgid "internal error: wait returned unexpected process ID %d status \"%s\"" msgstr "" #: v2v/v2v.ml:114 inspector/inspector.ml:104 in-place/in_place.ml:111 msgid "invalid --mac ip option" msgstr "" #: v2v/v2v.ml:98 inspector/inspector.ml:88 in-place/in_place.ml:95 msgid "invalid -b/--bridge parameter" msgstr "" #: v2v/v2v.ml:90 inspector/inspector.ml:80 in-place/in_place.ml:87 msgid "invalid -n/--network parameter" msgstr "" #: input/parse_domain_from_vmx.ml:402 msgid "invalid cpuid.coresPerSocket < number of vCPUs" msgstr "" #. common/mlcustomize/customize_cmdline.ml:153 #. common/mlcustomize/customize_cmdline.ml:145 #: common/mlcustomize/customize_cmdline.ml:161 #, fuzzy #| msgid "command '%s' not valid, see the man page" msgid "invalid format for '--%s' parameter, see the man page" msgstr "komentoa '%s'ei kelpaa, katso man-sivua" #: common/mltools/tools_utils.ml:359 msgid "invalid format string for --machine-readable: %s" msgstr "" #: lib/utils.ml:279 msgid "invalid input filename (%s)" msgstr "" #: input/OVA.ml:445 msgid "invalid offset returned by tar: %S" msgstr "" #: common/mltools/tools_utils.ml:374 #, fuzzy #| msgid "Make output machine readable" msgid "invalid output fd for --machine-readable: %s" msgstr "Tee tulosteesta koneella luettava" #: common/mltools/tools_utils.ml:376 #, fuzzy #| msgid "Make output machine readable" msgid "invalid output for --machine-readable: %s" msgstr "Tee tulosteesta koneella luettava" #: common/mltools/tools_utils.ml:368 #, fuzzy #| msgid "Make output machine readable" msgid "invalid output stream for --machine-readable: %s" msgstr "Tee tulosteesta koneella luettava" #: common/mlcustomize/password.ml:73 msgid "invalid password selector ‘%s’; see the man page" msgstr "" #: input/OVA.ml:450 msgid "invalid size returned by tar: %S" msgstr "" #: common/mlcustomize/ssh_key.ml:45 msgid "invalid ssh-inject selector ‘%s’; see the man page" msgstr "" #: input/OVF.ml:82 msgid "invalid vmw:CoresPerSocket (%d) ignored" msgstr "" #: input/OVF.ml:88 msgid "invalid vmw:CoresPerSocket < number of cores" msgstr "" #: common/mldrivers/linux_bootloaders.ml:114 msgid "kernel %s is not under grub tree %s" msgstr "" #: common/mltools/tools_utils.ml:539 common/mltools/tools_utils.ml:458 #, fuzzy msgid "killed by signal %d" msgstr "aliprosessi, joka on signaloitu tai pysäytetty signaalilla %d" #: common/mltools/tools_utils.ml:237 #, fuzzy #| msgid "%s: error: %s" msgid "libguestfs error: %s" msgstr "%s: virhe: %s" #: lib/libvirt_utils.ml:72 msgid "" "libvirt domain ‘%s’ is running or paused. Converting a live guest will " "result in corrupted output. However this is safe if you're converting from a " "snapshot" msgstr "" #: common/mlcustomize/customize_run.ml:47 #, fuzzy msgid "log file %s: %s (ignored)" msgstr "%s (ohitettu)" #: input/OVA.ml:147 msgid "" "making OVA directory public readable to work around libvirt bug https://" "bugzilla.redhat.com/1045069" msgstr "" #: input/input_ova.ml:86 msgid "manifest has a checksum for non-existent file %s (ignored)" msgstr "" #: common/mlcustomize/customize_cmdline.ml:472 msgid "md5|sha256|sha512" msgstr "" #: common/mlcustomize/customize_run.ml:119 msgid "method '%s' is no longer supported" msgstr "" #: common/mltools/JSON_parser.ml:39 msgid "missing value for the key ‘%s’" msgstr "" #: input/OVA.ml:276 msgid "more than one .ovf file was found in %s" msgstr "" #: common/mltools/JSON_parser.ml:34 msgid "more than value for the key ‘%s’" msgstr "" #: output/output_ovirt.ml:222 msgid "" "mount command failed, see earlier errors.\n" "\n" "This probably means you didn't specify the right %s path [-os %s], or else " "you need to rerun virt-v2v as root." msgstr "" #: common/mlcustomize/customize_run.ml:103 msgid "" "multiple --root-password/--password options set the password for user ‘%s’ " "twice" msgstr "" #: input/input_vddk.ml:319 msgid "" "nbdkit VDDK plugin is not installed or not working. It is required if you " "want to use VDDK.\n" "\n" "It 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 ’/%s/libvixDiskLib.so.?’.\n" "\n" "See also the virt-v2v-input-vmware(1) manual." msgstr "" #: input/input_vddk.ml:313 msgid "" "nbdkit VDDK plugin is not installed or not working. It is required if you " "want to use VDDK.\n" "\n" "The 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" "\n" "See also the virt-v2v-input-vmware(1) manual." msgstr "" #: lib/nbdkit.ml:223 msgid "nbdkit did not start up. See previous debugging messages for problems." msgstr "" #: lib/nbdkit.ml:225 msgid "" "nbdkit did not start up. There may be errors printed by nbdkit above.\n" "\n" "If the messages above are not sufficient to diagnose the problem then add " "the ‘virt-v2v -v -x’ options and examine the debugging output carefully." msgstr "" #: input/nbdkit_ssh.ml:36 input/nbdkit_curl.ml:32 input/input_vddk.ml:283 msgid "nbdkit is not installed or not working" msgstr "" #: input/input_disk.ml:92 msgid "" "nbdkit is not installed or not working. It is required to use ‘-i disk’." msgstr "" #: input/input_libvirt.ml:68 msgid "" "nbdkit is not installed or not working. It is required to use ‘-i libvirt|" "libvirtxml’." msgstr "" #: output/output.ml:178 output/output.ml:77 msgid "" "nbdkit is not installed or not working. It is required to use ‘-o disk’." msgstr "" #: output/output_null.ml:57 msgid "" "nbdkit is not installed or not working. It is required to use ‘-o null’." msgstr "" #: output/output_ovirt_upload.ml:163 msgid "" "nbdkit is not installed or not working. It is required to use ‘-o ovirt-" "upload’. See the virt-v2v-output-ovirt(1) manual." msgstr "" #: input/input_vddk.ml:285 msgid "nbdkit must be >= 1.45.11 for input from VDDK" msgstr "" #: output/output_ovirt_upload.ml:176 msgid "" "nbdkit python plugin is not installed or not working. It is required if you " "want to use ‘-o ovirt-upload’.\n" "\n" "See also the virt-v2v-output-ovirt(1) manual." msgstr "" #: output/output_ovirt_upload.ml:190 msgid "" "nbdkit was compiled without SELinux support. You will have to recompile " "nbdkit with libselinux-devel installed, or else set SELinux to Permissive " "mode while doing the conversion." msgstr "" #. input/input_libvirt.ml:76 #. input/input_disk.ml:98 #: input/nbdkit_ssh.ml:42 input/nbdkit_curl.ml:38 input/input_vddk.ml:289 msgid "nbdkit-cow-filter is not installed or not working" msgstr "" #: input/nbdkit_curl.ml:35 msgid "nbdkit-curl-plugin is not installed" msgstr "" #. input/input_disk.ml:96 #: output/output.ml:181 output/output.ml:80 input/input_libvirt.ml:72 msgid "nbdkit-file-plugin is not installed or not working" msgstr "" #: input/input_libvirt.ml:74 msgid "nbdkit-nbd-plugin is not installed or not working" msgstr "" #: output/output_null.ml:60 msgid "nbdkit-null-plugin is not installed or not working" msgstr "" #: input/nbdkit_ssh.ml:39 msgid "nbdkit-ssh-plugin is not installed" msgstr "" #: input/input_vddk.ml:287 msgid "nbdkit-vddk-plugin is not installed" msgstr "" #: lib/nbdkit.ml:56 msgid "nbdkit: unexpected version in --dump-config: %s" msgstr "" #. input/input_vcenter_https.ml:49 #. input/input_ova.ml:46 #. input/input_libvirt.ml:35 #. input/input_disk.ml:39 #: input/input_xen_ssh.ml:47 input/input_vmx.ml:40 msgid "no -io (input options) are allowed here" msgstr "" #: output/output_ovirt.ml:44 output/output_null.ml:42 #: output/output_glance.ml:44 msgid "no -oo (output options) are allowed here" msgstr "" #: input/OVA.ml:273 msgid "no .ovf file was found in %s" msgstr "" #: common/mldrivers/linux_bootloaders.ml:402 msgid "no bootloader detected" msgstr "" #: input/parse_domain_from_vmx.ml:359 msgid "no displayName key found in VMX file" msgstr "" #: input/OVF.ml:148 msgid "no href in ovf:File (id=%s)" msgstr "" #: common/mldrivers/linux_kernels.ml:194 msgid "no initrd was found in /boot matching %s %s." msgstr "" #: common/mldrivers/linux_kernels.ml:317 msgid "" "no installed kernel packages were found.\n" "\n" "This probably indicates that %s was unable to inspect this guest properly." msgstr "" #: common/mldrivers/linux_kernels.ml:354 msgid "" "no kernels were found in the bootloader configuration.\n" "\n" "This probably indicates that %s was unable to parse the bootloader " "configuration of this guest." msgstr "" #: output/python_script.ml:55 msgid "no python binary called ‘%s’ can be found on the $PATH" msgstr "" #: input/select_input.ml:106 msgid "" "no support for remote libvirt connections to '-ic %s'. The conversion may " "fail when it tries to read the source disks." msgstr "" #: lib/create_ovf.ml:1027 msgid "" "oVirt cannot emulate ‘%s’ sound cards. This sound card will be dropped from " "the output." msgstr "" #: lib/create_ovf.ml:875 lib/create_ovf.ml:512 msgid "oVirt does not support the output format ‘%s’, only raw or qcow2" msgstr "" #: output/output_openstack.ml:120 msgid "openstack: -oo server-id= not present" msgstr "" #: output/output_openstack.ml:338 msgid "" "openstack: failed to attach cinder volume to VM, see earlier error messages" msgstr "" #: output/output_openstack.ml:291 msgid "openstack: failed to create a cinder volume, see earlier error messages" msgstr "" #: output/output_openstack.ml:304 msgid "" "openstack: failed to query cinder volume status, see earlier error messages" msgstr "" #: output/output_openstack.ml:442 msgid "" "openstack: failed to set image properties on cinder volume, see earlier " "error messages" msgstr "" #: output/output_openstack.ml:199 msgid "" "openstack: precheck failed, there may be a problem with authentication, see " "earlier error messages" msgstr "" #: output/output_openstack.ml:311 msgid "" "openstack: unknown volume status \"%s\": expected \"creating\" or " "\"available\"" msgstr "" #: output/output.ml:133 msgid "output mode only supports raw or qcow2 format (format: %s)" msgstr "" #: input/OVF.ml:263 msgid "" "ova disk has an unknown VMware controller type (%d), please report this as a " "bug supplying the *.ovf file extracted from the ova" msgstr "" #: input/OVF.ml:259 msgid "" "ova disk has no parent controller, please report this as a bug supplying the " "*.ovf file extracted from the ova" msgstr "" #: output/output_ovirt_upload.ml:367 msgid "" "ovirt-upload: -of %s: Only output format ‘raw’ or ‘qcow2’ is supported. If " "the input is in a different format then force one of these output formats by " "adding either ‘-of raw’ or ‘-of qcow2’ on the command line." msgstr "" #: common/mlcustomize/password.ml:51 msgid "" "password-crypto: unknown algorithm %s, use \"md5\", \"sha256\", \"sha512\" " "or \"yescrypt\"" msgstr "" "password-crypto: tuntematon algoritmi %s, käytä \"md5\", \"sha256\", " "\"sha512\" tai \"yescrypt\"" #: common/mlcustomize/password.ml:197 msgid "" "password: using insecure md5 password encryption for guest of type %s " "version %d.%d.\n" "If this is incorrect, use --password-crypto option and file a bug." msgstr "" #: common/mlcustomize/customize_run.ml:359 #, fuzzy #| msgid "SSH key could not be injected for this type of guest" msgid "passwords could not be set for this type of guest" msgstr "SSH-avainta ei voitu sisällyttää tämän tyyppiselle vieraalle" #: lib/qemuNBD.ml:125 msgid "" "qemu-nbd did not start up. See previous debugging messages for problems." msgstr "" #: lib/qemuNBD.ml:127 msgid "" "qemu-nbd did not start up. There may be errors printed by qemu-nbd above.\n" "\n" "If the messages above are not sufficient to diagnose the problem then add " "the ‘virt-v2v -v -x’ options and examine the debugging output carefully." msgstr "" #: lib/qemuNBD.ml:47 msgid "qemu-nbd: unexpected version in --version: %s" msgstr "" #: common/mlcustomize/customize_run.ml:77 #, fuzzy #| msgid "SSH key could not be injected for this type of guest" msgid "random seed could not be set for this type of guest" msgstr "SSH-avainta ei voitu sisällyttää tämän tyyppiselle vieraalle" #: input/parse_domain_from_vmx.ml:44 msgid "remote vmx ‘%s’ could not be parsed as a URI" msgstr "" #. common/mlcustomize/inject_virtio_win.ml:357 #. common/mlcustomize/inject_virtio_win.ml:352 #: common/mlcustomize/inject_virtio_win.ml:362 msgid "" "root directory ‘/’ is missing from the virtio-win directory or ISO.\n" "\n" "This should not happen and may indicate that virtio-win or virt-v2v is " "broken in some way. Please report this as a bug with a full debug log." msgstr "" #: common/mltools/tools_utils.ml:417 common/options/keys.c:264 #, c-format msgid "selector '%s': invalid TYPE" msgstr "" #: common/mltools/tools_utils.ml:409 common/options/keys.c:254 #, c-format msgid "selector '%s': missing FILENAME, or too many fields" msgstr "" #: common/mltools/tools_utils.ml:399 common/options/keys.c:232 #, c-format msgid "selector '%s': missing ID" msgstr "" #: common/mltools/tools_utils.ml:404 common/options/keys.c:245 #, c-format msgid "selector '%s': missing KEY_STRING, or too many fields" msgstr "" #: common/mltools/tools_utils.ml:401 common/options/keys.c:239 #, c-format msgid "selector '%s': missing TYPE" msgstr "" #: common/mltools/tools_utils.ml:413 common/options/keys.c:262 #, c-format msgid "selector '%s': too many fields" msgstr "" #: lib/utils.ml:35 #, fuzzy msgid "signalled by signal %d" msgstr "aliprosessi, joka on signaloitu tai pysäytetty signaalilla %d" #: common/mlcustomize/guest_packages.ml:40 msgid "" "sorry, ‘%s’ with the ‘%s’ package manager has not been implemented yet.\n" "\n" "You can work around this by using one of the ‘--run*’ or ‘--firstboot*’ " "options instead (described in the virt-customize(1) manual)." msgstr "" #: common/mlcustomize/ssh_key.ml:57 msgid "ssh-inject: $HOME environment variable is not set" msgstr "" #: common/mlcustomize/ssh_key.ml:93 msgid "ssh-inject: key is an empty string" msgstr "" #: common/mlcustomize/ssh_key.ml:66 #, fuzzy #| msgid "Inject a public key into the guest" msgid "ssh-inject: no public key file found in %s" msgstr "Sisällytä julkinen avain vieraaseen" #: common/mlcustomize/ssh_key.ml:83 msgid "ssh-inject: public key file (%s) is empty" msgstr "" #: common/mlcustomize/ssh_key.ml:112 #, fuzzy #| msgid "%s does not exist in the guest" msgid "ssh-inject: the user %s does not exist on the guest" msgstr "%s:ta ei ole olemassa vieraassa" #. common/mltools/tools_utils.ml:461 #: lib/utils.ml:36 common/mltools/tools_utils.ml:542 #, fuzzy msgid "stopped by signal %d" msgstr "aliprosessi, joka on signaloitu tai pysäytetty signaalilla %d" #: output/changeuid.ml:58 #, fuzzy msgid "subprocess exited with non-zero error code %d" msgstr "ulkoinen komento '%s' poistui virheellä %d" #: output/changeuid.ml:60 msgid "subprocess signalled or stopped by signal %d" msgstr "aliprosessi, joka on signaloitu tai pysäytetty signaalilla %d" #: lib/utils.ml:33 msgid "success" msgstr "onnistui" #: output/create_libvirt_xml.ml:297 msgid "" "target hypervisor does not support floppy devices, but floppy devices were " "found in the source guest" msgstr "" #: output/output_ovirt_upload.ml:156 msgid "" "the Python module ‘ovirtsdk4’ could not be loaded, is it installed? See " "previous messages for problems." msgstr "" #: output/output_ovirt_upload.ml:453 msgid "the cluster ‘%s’ does not support the architecture %s but %s" msgstr "" #: common/mlcustomize/customize_run.ml:59 msgid "" "the command may have failed because the network is disabled. Try either " "removing ‘--no-network’ or adding ‘--network’ on the command line." msgstr "" "komento on saattanut epäonnistua, koska verkko on poistettu käytöstä. Yritä " "joko poistaa ”--no-network” tai lisätä ”--network” komentoriville." #: common/mltools/JSON_parser.ml:84 msgid "the key ‘%s’ was not found in a list of objects" msgstr "" #: output/output_ovirt_upload.ml:288 msgid "" "the number of ‘-oo ovirt-disk-uuid’ parameters passed on the command line " "has to match the number of guest disk images (for this guest: %d)" msgstr "" #: output/output_vdsm.ml:133 msgid "" "the number of ‘-oo vdsm-image-uuid’ and ‘-oo vdsm-vol-uuid’ parameters " "passed on the command line has to match the number of guest disk images (for " "this guest: %d)" msgstr "" #: output/output_libvirt.ml:239 msgid "the target hypervisor does not support a %s KVM guest" msgstr "" #: common/mltools/JSON_parser.ml:78 msgid "the value for key ‘%s’ is not a string as expected" msgstr "" #: common/mltools/JSON_parser.ml:50 msgid "the value for the key ‘%s’ is not a bool" msgstr "" #: common/mltools/JSON_parser.ml:45 msgid "the value for the key ‘%s’ is not a string" msgstr "" #: common/mltools/JSON_parser.ml:70 msgid "the value for the key ‘%s’ is not an integer" msgstr "" #: common/mltools/JSON_parser.ml:55 msgid "the value for the key ‘%s’ is not an object" msgstr "" #: common/mltools/JSON_parser.ml:59 msgid "the value is not an object" msgstr "" #: common/mltools/JSON_parser.ml:35 msgid "the value of the key ‘%s’ is not an object" msgstr "" #: lib/create_ovf.ml:519 msgid "" "the virtual size of the input disk %d is not an exact multiple of 512 " "bytes. The virtual size is: %Ld.\n" "\n" "This probably means something unexpected is going on, so please file a bug " "about this issue." msgstr "" #: output/output_openstack.ml:144 msgid "" "the ‘%s’ program is not available. It is needed to communicate with " "OpenStack." msgstr "" #: output/output_ovirt.ml:265 msgid "" "there are multiple UUIDs in the %s (%s). This is unexpected, and may be a " "bug in virt-v2v or OVirt." msgstr "" #: output/output_ovirt.ml:262 msgid "there are no UUIDs in the %s (%s). Is it really an OVirt %s?" msgstr "" #: common/mlcustomize/inject_virtio_win.ml:153 msgid "" "there are no virtio drivers available for this version of Windows (%d.%d %s " "%s %s). virt-v2v looks for drivers in %s\n" "\n" "The guest will be configured to use slower emulated devices." msgstr "" #: common/mlcustomize/inject_virtio_win.ml:175 msgid "" "there is no virtio block device driver for this version of Windows (%d.%d " "%s). virt-v2v looks for this driver in %s\n" "\n" "The guest will be configured to use a slower emulated device." msgstr "" #: common/mlcustomize/inject_virtio_win.ml:206 msgid "" "there is no virtio network driver for this version of Windows (%d.%d %s). " "virt-v2v looks for this driver in %s\n" "\n" "The guest will be configured to use a slower emulated device." msgstr "" #: input/parse_libvirt_xml.ml:545 msgid "this guest has a direct network interface which will be ignored" msgid_plural "this guest has direct network interfaces which will be ignored" msgstr[0] "" msgstr[1] "" #: input/parse_libvirt_xml.ml:527 msgid "this guest has a passthrough host device which will be ignored" msgid_plural "this guest has passthrough host devices which will be ignored" msgstr[0] "" msgstr[1] "" #: input/parse_libvirt_xml.ml:248 msgid "this guest has no non-removable disks" msgstr "" #: output/output.ml:65 msgid "this output module doesn't support copying more than %d disks" msgstr "" #: common/mlcustomize/timezone.ml:35 msgid "timezone '%s' does not exist, use a location like 'Europe/London'" msgstr "" #: common/mlcustomize/customize_run.ml:304 #, fuzzy #| msgid "SSH key could not be injected for this type of guest" msgid "timezone could not be set for this type of guest" msgstr "SSH-avainta ei voitu sisällyttää tämän tyyppiselle vieraalle" #: input/OVA.ml:318 msgid "unable to parse line from manifest file: %S" msgstr "" #: common/mltools/urandom.ml:37 msgid "unexpected end of file while reading /dev/urandom" msgstr "" #: input/input_libvirt.ml:196 msgid "unexpected output from the %s command" msgstr "" #: common/mltools/checksums.ml:58 msgid "unhandled checksum type ‘%s’" msgstr "" #: lib/types.ml:524 msgid "unknown --root option: %s" msgstr "tuntematon --root vaihtoehto: %s" #: input/select_input.ml:51 msgid "unknown -i option: %s" msgstr "tuntematon -i vaihtoehto: %s" #: output/select_output.ml:74 msgid "unknown -o option: %s" msgstr "tuntematon -o vaihtoehto: %s" #: v2v/v2v.ml:164 msgid "unknown -oa option: %s" msgstr "tuntematon -oa vaihtoehto: %s" #: input/input_libvirt.ml:189 msgid "unknown method='%s'" msgstr "" #: input/OVF.ml:103 msgid "unknown Config:firmware value %s (expected \"bios\" or \"efi\")" msgstr "" #: lib/create_ovf.ml:446 lib/create_ovf.ml:247 msgid "unknown Windows 10 variant: %s (%s)" msgstr "" #: v2v/v2v.ml:319 in-place/in_place.ml:256 msgid "unknown block driver ‘--block-driver %s’" msgstr "" #: input/parse_domain_from_vmx.ml:415 msgid "unknown firmware value '%s', assuming BIOS" msgstr "" #: lib/create_ovf.ml:454 lib/create_ovf.ml:255 msgid "unknown guest operating system: %s %s %d.%d %s (%s)" msgstr "" #: v2v/v2v.ml:329 open/open.ml:132 inspector/inspector.ml:238 #, fuzzy #| msgid "-o disk: unknown output option ‘-oo %s’" msgid "unknown input transport ‘-it %s’" msgstr "-o disk: tuntematon lähtövaihtoehto '-oo %s'" #: input/parse_domain_from_vmx.ml:428 msgid "unknown sound device '%s' ignored" msgstr "" #: input/parse_libvirt_xml.ml:215 msgid "unknown sound model %s ignored" msgstr "" #: input/OVF.ml:156 msgid "unsupported compression in OVF: %s" msgstr "" #: input/input_vcenter_https.ml:123 msgid "" "vcenter: was not found in the XML. You need to " "upgrade to libvirt ≥ 1.2.20." msgstr "" #: input/vCenter.ml:79 msgid "vcenter: URL not found: %s" msgstr "" #: input/vCenter.ml:70 msgid "vcenter: incorrect username or password" msgstr "" #: input/vCenter.ml:72 msgid "" "vcenter: incorrect username or password. You might need to specify the " "username in the URI like this: [vpx|esx|..]://USERNAME@[etc]" msgstr "" #: input/vCenter.ml:84 msgid "vcenter: invalid response from server: %s" msgstr "" #: input/vCenter.ml:194 msgid "vcenter: no status code in output of ‘curl’ command." msgstr "" #: output/output_vdsm.ml:148 msgid "vdsm: invalid -os parameter does not contain a valid UUID: %s" msgstr "" #: output/output_openstack.ml:56 msgid "" "virt-v2v -oo server-id= [os-*=...]\n" "\n" "Specify the name or UUID of the conversion appliance using\n" "\n" " virt-v2v ... -o openstack -oo server-id=\n" "\n" "When virt-v2v runs it will attach the Cinder volumes to the\n" "conversion appliance, so this name or UUID must be the name\n" "of the virtual machine on OpenStack where virt-v2v is running.\n" "\n" "In addition, all usual OpenStack “os-*” parameters or “OS_*”\n" "environment variables can be used.\n" "\n" "Openstack “--os-*” parameters must be written as “virt-v2v -oo os-*”.\n" "\n" "For example:\n" "\n" " virt-v2v -oo os-username=\n" "\n" " equivalent to openstack: --os-username=\n" " or the environment variable: OS_USERNAME=\n" "\n" " virt-v2v -oo os-project-name=\n" "\n" " equivalent to openstack: --os-project-name=\n" " or the environment variable: OS_PROJECT_NAME=\n" "\n" "The os-* parameters and environment variables are optional.\n" msgstr "" #: input/parse_libvirt_xml.ml:189 msgid "" "virt-v2v does not support local displays, so in the " "input libvirt XML was ignored" msgstr "" #: input/select_input.ml:83 msgid "virt-v2v-in-place does not support remote libvirt URIs" msgstr "" #: input/parse_domain_from_vmx.ml:50 msgid "vmx URI path component looks incorrect" msgstr "" #: input/parse_domain_from_vmx.ml:48 msgid "vmx URI remote server name omitted" msgstr "" #: input/parse_domain_from_vmx.ml:46 msgid "vmx URI start with ‘ssh://...’" msgstr "" #: input/VMX.ml:313 msgid "vmx parser: cannot parse this line, ignoring: %s" msgstr "" #: input/VMX.ml:346 msgid "vmx parser: duplicate key '%s' ignored" msgstr "" #: output/output_openstack.ml:299 msgid "wait for cinder volume status to change to \"available\"" msgstr "" #: output/output_openstack.ml:360 msgid "waiting for cinder volume %s to attach to the conversion appliance" msgstr "" #: open/open.ml:136 msgid "you must supply the --run parameter" msgstr "" #: input/input_xen_ssh.ml:87 input/input_vddk.ml:189 msgid "‘-ic %s’ URL does not contain a host name field" msgstr "" #: input/input_vddk.ml:273 msgid "‘-io vddk-file=’ must be used exactly %d times" msgstr "" #: input/input_vddk.ml:297 msgid "" "‘-io vddk-libdir=%s’ does not point to a directory. See the virt-v2v-input-" "vmware(1) manual." msgstr "" #: output/output.ml:85 msgid "" "‘-oo compressed’ is only allowed when the output format is a local qcow2-" "format file, i.e. ‘-of qcow2’" msgstr "" #: input/input_vddk.ml:232 msgid "" "‘openssl’ command not found: automatically detecting thumbprint is not " "possible, so you must use ‘-io vddk-thumbprint=XX:XX...’" msgstr "" #: common/mltools/getopt-c.c:68 #, c-format msgid "Try ‘%s --help’ or consult %s(1) for more information.\n" msgstr "" #: common/mltools/getopt-c.c:187 #, c-format msgid "%s: ‘%s’ is not a numeric value.\n" msgstr "" #: common/mltools/getopt-c.c:193 #, c-format msgid "%s: %s: integer out of range\n" msgstr "" #: common/mltools/getopt-c.c:383 #, c-format msgid "%s: ‘%s’ is not allowed for -%c; allowed values are:\n" msgstr "" #: common/mltools/getopt-c.c:386 #, c-format msgid "%s: ‘%s’ is not allowed for %s%s; allowed values are:\n" msgstr "" #: common/mltools/getopt-c.c:421 #, c-format msgid "Extra parameter on the command line: ‘%s’.\n" msgstr "Ylimääräinen parametri komentorivillä: ‘%s’.\n" #: common/options/config.c:72 #, c-format msgid "%s: line %d: error parsing configuration file: %s" msgstr "" #: common/options/decrypt.c:52 #, c-format msgid "string size overflow" msgstr "" #: common/options/decrypt.c:170 #, c-format msgid "" "'clevis_luks_unlock', needed for decrypting %s, is unavailable in this " "libguestfs version" msgstr "" #: common/options/decrypt.c:184 #, c-format msgid "" "could not find key to open LUKS encrypted %s.\n" "\n" "Try using --key on the command line.\n" "\n" "Original error: %s (%d)" msgstr "" "ei löytynyt avainta salatun LUKS %s avaamiseen.\n" "\n" "Yritä käyttää '--key' komentorivillä.\n" "\n" "Alkuperäinen virhe: %s (%d)" #: common/options/inspect.c:78 #, c-format msgid "" "%s: no operating system was found on this disk\n" "\n" "If using guestfish ‘-i’ option, remove this option and instead\n" "use the commands ‘run’ followed by ‘list-filesystems’.\n" "You can then mount filesystems you want by hand using the\n" "‘mount’ or ‘mount-ro’ command.\n" "\n" "If using guestmount ‘-i’, remove this option and choose the\n" "filesystem(s) you want to see by manually adding ‘-m’ option(s).\n" "Use ‘virt-filesystems’ to see what filesystems are available.\n" "\n" "If using other virt tools, this disk image won’t work\n" "with these tools. Use the guestfish equivalent commands\n" "(see the virt tool manual page).\n" msgstr "" "%s: tältä levyltä ei löytynyt käyttöjärjestelmää\n" "\n" "Jos käytät guestfish ‘-i’ -vaihtoehtoa, poista tämä vaihtoehto ja\n" "sen sijaan käytä komentoja 'run' ja sitten 'list-filesystems'.\n" "Tämän jälkeen voit liittää haluamasi tiedostojärjestelmät käsin\n" "'Mount' tai 'mount-ro' -komento.\n" "\n" "Jos käytät guestmount ‘-i’, poista tämä vaihtoehto ja valitse\n" "tiedostojärjestelmät, jotka haluat nähdä lisäämällä manuaalisesti\n" "'-m' -vaihtoehdot. Käytä virt-filesystems-sovellusta nähdäksesi\n" "käytettävissä olevat tiedostojärjestelmät.\n" "\n" "Jos käytät muita virt-työkaluja, tämä levykuva ei toimi näiden\n" "työkalujen avulla. Käytä guestfish-vastaavia komentoja\n" "(katso virt-työkalun käyttöoppaan sivu).\n" #: common/options/inspect.c:99 #, c-format msgid "" "%s: multi-boot operating systems are not supported\n" "\n" "If using guestfish ‘-i’ option, remove this option and instead\n" "use the commands ‘run’ followed by ‘list-filesystems’.\n" "You can then mount filesystems you want by hand using the\n" "‘mount’ or ‘mount-ro’ command.\n" "\n" "If using guestmount ‘-i’, remove this option and choose the\n" "filesystem(s) you want to see by manually adding ‘-m’ option(s).\n" "Use ‘virt-filesystems’ to see what filesystems are available.\n" "\n" "If using other virt tools, multi-boot operating systems won’t work\n" "with these tools. Use the guestfish equivalent commands\n" "(see the virt tool manual page).\n" msgstr "" "%s: monikäynnistyskäyttöjärjestelmiä ei tueta\n" "\n" "Jos käytät guestfish ‘-i’ -vaihtoehtoa, poista tämä vaihtoehto ja\n" "sen sijaan käytä komentoja 'run' ja sitten 'list-filesystems'.\n" "Tämän jälkeen voit liittää haluamasi tiedostojärjestelmät käsin\n" "'Mount' tai 'mount-ro' -komento.\n" "\n" "Jos käytät guestmount ‘-i’, poista tämä vaihtoehto ja valitse\n" "tiedostojärjestelmät, jotka haluat nähdä lisäämällä manuaalisesti\n" "'-m' -vaihtoehdot. Käytä virt-filesystems-sovellusta nähdäksesi\n" "käytettävissä olevat tiedostojärjestelmät.\n" "\n" "Jos käytät muita virt-työkaluja, monikäynnistyskäyttöjärjestelmät\n" "eivät toimi näiden työkalujen avulla. Käytä guestfish-vastaavia komentoja\n" "(katso virt-työkalun käyttöoppaan sivu).\n" #: common/options/inspect.c:161 #, c-format msgid "%s: some filesystems could not be mounted (ignored)\n" msgstr "" #: common/options/inspect.c:178 #, c-format msgid "Operating system: %s\n" msgstr "" #: common/options/inspect.c:196 #, c-format msgid "%s mounted on %s\n" msgstr "" #: common/options/keys.c:63 #, c-format msgid "Enter key or passphrase (\"%s\"): " msgstr "" #: common/options/keys.c:146 #, c-format msgid "size_t overflow" msgstr "" #: common/options/keys.c:193 #, c-format msgid "could not read key from user" msgstr "" #: common/options/options.c:283 #, c-format msgid "%s: ‘%s’ could not be mounted.\n" msgstr "" #: common/options/options.c:287 #, c-format msgid "" "%s: Check mount(8) man page to ensure options ‘%s’\n" "%s: are supported by the filesystem that is being mounted.\n" msgstr "" #: common/options/options.c:291 #, c-format msgid "%s: Did you mean to mount one of these filesystems?\n" msgstr "" #: common/options/options.c:304 #, c-format msgid "cannot determine the subvolume for %s: %s (%d)" msgstr "" #: common/options/uri.c:119 #, c-format msgid "%s: --add: could not parse URI ‘%s’\n" msgstr "" #: common/options/uri.c:130 #, c-format msgid "%s: %s: scheme of URI is NULL or empty\n" msgstr "" #: common/options/uri.c:138 #, c-format msgid "%s: %s: cannot have both a server name and a socket query parameter\n" msgstr "" #: common/utils/utils.c:107 #, c-format msgid "%s exited successfully" msgstr "" #: common/utils/utils.c:110 #, c-format msgid "%s exited with error status %d" msgstr "" #: common/utils/utils.c:114 #, c-format msgid "%s killed by signal %d (%s)" msgstr "" #: common/utils/utils.c:118 #, c-format msgid "%s stopped by signal %d (%s)" msgstr "" #: common/utils/utils.c:122 #, c-format msgid "%s exited for an unknown reason (status %d)" msgstr "" #~ msgid "Attach to a subscription-manager pool" #~ msgstr "Liitä tilaus-manager-varantoon" #~ msgid "Attaching to compatible subscriptions" #~ msgstr "Liittäminen yhteensopiviin tilauksiin" #~ msgid "Attaching to the pool %s" #~ msgstr "Liittäminen varantoon %s" #~ msgid "Credentials for subscription-manager" #~ msgstr "Tilausvastaavan tunnistetiedot" #~ msgid "Ignored for backwards compatibility" #~ msgstr "Jätetty huomioimatta taaksepäin yhteensopivuuden vuoksi" #~ msgid "Registering with subscription-manager" #~ msgstr "Rekisteröityminen tilausten hallinnan kanssa" #~ msgid "Remove all the subscriptions" #~ msgstr "Poista kaikki tilaukset" #~ msgid "Removing all the subscriptions" #~ msgstr "Poistetaan kaikki tilaukset" #, fuzzy #~ msgid "Unregistering with subscription-manager" #~ msgstr "Liitä tilaus-manager-varantoon" #~ msgid "external command ‘%s’ killed by signal %d" #~ msgstr "signaalin %d tappamana ulkoinen komento '%s'" #~ msgid "external command ‘%s’ stopped by signal %d" #~ msgstr "signaalin %d pyrähtämänä ulkoinen komento '%s'" ================================================ FILE: po/fr.po ================================================ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR Red Hat Inc. # This file is distributed under the same license as the PACKAGE package. # # Translators: # Jérôme Fenal , 2013-2014 # Αικατερίνη Χ. Καταπόδη , 2013 # Kévin Raymond , 2012 # Αικατερίνη Χ. Καταπόδη , 2013 msgid "" msgstr "" "Project-Id-Version: libguestfs 1.39.12\n" "Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?" "component=libguestfs&product=Virtualization+Tools\n" "POT-Creation-Date: 2025-02-16 17:05+0000\n" "PO-Revision-Date: 2023-03-21 09:20+0000\n" "Last-Translator: grimst \n" "Language-Team: French \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" "X-Generator: Weblate 4.15.2\n" #: input/input_ova.ml:135 common/mltools/tools_utils.ml:235 msgid "%s" msgstr "" #: common/mltools/getopt.ml:73 msgid "" "%s\n" "Options:\n" msgstr "" #: common/mltools/tools_utils.ml:695 common/mlcustomize/customize_run.ml:390 msgid "%s (ignored)" msgstr "" #: common/mltools/checksums.ml:71 msgid "%s did not return any output" msgstr "" #: common/mlcustomize/customize_run.ml:183 msgid "%s does not exist in the guest" msgstr "" #: output/output_ovirt.ml:275 msgid "" "%s does not exist or is not a directory.\n" "\n" "Most likely cause: Either the %s (%s) has not been attached to any Data " "Center, or the path %s is not an %s at all.\n" "\n" "You have to attach the %s to a Data Center using the oVirt user interface " "first.\n" "\n" "If you don’t know what the %s mount point should be then you can also find " "this out through the oVirt user interface." msgstr "" #: common/mlcustomize/customize_run.ml:113 msgid "%s ignored for non-Windows guest" msgstr "" #: common/mlcustomize/customize_run.ml:186 msgid "%s is not a regular file in the guest" msgstr "" #. open/open.ml:39 #. inspector/inspector.ml:153 #. inspector/inspector.ml:40 #. in-place/in_place.ml:164 #. in-place/in_place.ml:45 #: v2v/v2v.ml:194 v2v/v2v.ml:183 v2v/v2v.ml:159 v2v/v2v.ml:44 open/open.ml:68 msgid "%s option used more than once on the command line" msgstr "" #: common/mltools/tools_utils.ml:231 common/mltools/tools_utils.ml:202 msgid "%s: %s" msgstr "" #: common/mltools/tools_utils.ml:233 msgid "%s: %s: %s" msgstr "" #: common/mltools/on_exit.ml:77 msgid "" "%s: Exiting on signal %s\n" "%!" msgstr "" #: common/mlcustomize/inject_virtio_win.ml:411 msgid "%s: cannot open virtio-win ISO file: %s" msgstr "" #: common/mlcustomize/customize_run.ml:64 #, fuzzy #| msgid "%s exited with error status %d" msgid "%s: command exited with an error" msgstr "%s s'est terminé avec l'état d'erreur %d" #: v2v/v2v.ml:277 msgid "" "%s: convert a guest to use KVM\n" "\n" "virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi -os imported " "esx_guest\n" "\n" "virt-v2v -i libvirtxml guest-domain.xml -o local -os /var/tmp\n" "\n" "virt-v2v -i disk disk.img -o local -os /var/tmp\n" "\n" "There is a companion front-end called \"virt-p2v\" which comes as an\n" "ISO or CD image that can be booted on physical machines.\n" "\n" "A short summary of the options is given below. For detailed help please\n" "read the man page virt-v2v(1).\n" msgstr "" #: in-place/in_place.ml:217 msgid "" "%s: convert a guest to use KVM in-place\n" "\n" "Note this program modifies the guest in-place with no backup.\n" "Normally you should use virt-v2v.\n" "\n" "virt-v2v-in-place -i libvirtxml guest-domain.xml\n" "\n" "virt-v2v-in-place -i disk disk.img\n" "\n" "A short summary of the options is given below. For detailed help please\n" "read the man page virt-v2v-in-place(1).\n" msgstr "" #: input/input_vddk.ml:207 msgid "%s: enter password for ‘%s’: " msgstr "" #: common/mltools/tools_utils.ml:172 msgid "%s: error: %s" msgstr "" #: inspector/inspector.ml:198 msgid "" "%s: estimate disk space needed before virt-v2v conversion\n" "\n" "virt-v2v-inspector -i disk disk.img [-O output.xml]\n" "\n" "A short summary of the options is given below. For detailed help please\n" "read the man page virt-v2v-inspector(1).\n" msgstr "" #: open/open.ml:94 msgid "" "%s: open the virt-v2v input and run a program on it\n" "\n" "virt-v2v-open -i disk disk.img --run 'virt-inspector --format=raw @@'\n" "\n" "A short summary of the options is given below. For detailed help please\n" "read the man page virt-v2v-open(1).\n" msgstr "" #: common/mltools/tools_utils.ml:726 msgid "%s: operation timed out" msgstr "" #: input/OVA.ml:127 input/OVA.ml:121 msgid "" "%s: unsupported file format\n" "\n" "Formats which we currently understand for '-i ova' are: tar (uncompressed, " "compress with gzip or xz), zip" msgstr "" #: common/mltools/tools_utils.ml:191 msgid "%s: warning: %s" msgstr "" #. common/mlcustomize/customize_cmdline.ml:258 #: common/mlcustomize/customize_cmdline.ml:367 msgid "'CMD+ARGS'" msgstr "" #: common/mlcustomize/customize_run.ml:133 msgid "" "--append-line: line must not contain newline characters. Use the --append-" "line option multiple times to add several lines." msgstr "" #: common/mlcustomize/customize_run.ml:152 msgid "--chown: could not parse numeric UID:GID from %s:%s" msgstr "" #: common/mlcustomize/customize_run.ml:216 msgid "" "--inject-blnsvr: blnsvr.exe not found in virtio-win source that you specified" msgstr "" #: common/mlcustomize/customize_run.ml:225 msgid "" "--inject-qemu-ga: QEMU Guest Agent MSI not found in virtio-win source that " "you specified" msgstr "" #: common/mlcustomize/customize_run.ml:241 msgid "" "--inject-virtio-win: virtio drivers were not found for this Windows version " "in the virtio-win source that you specified" msgstr "" #: v2v/v2v.ml:146 inspector/inspector.ml:136 in-place/in_place.ml:143 #, fuzzy #| msgid "credential index out of range" msgid "--mac ip prefix length field is out of range" msgstr "index de données d'identification hors limite" #: v2v/v2v.ml:340 msgid "--parallel parameter must be >= 1" msgstr "" #: input/input_disk.ml:42 msgid "-i disk: expecting a disk image (filename) on the command line" msgstr "" #: input/input_xen_ssh.ml:65 msgid "-i libvirt: expecting -ic parameter for Xen over SSH connection" msgstr "" #: input/input_vddk.ml:142 input/input_vcenter_https.ml:88 msgid "-i libvirt: expecting -ic parameter for vcenter connection" msgstr "" #: input/input_vcenter_https.ml:101 msgid "-i libvirt: expecting -ic parameter to contain vcenter server name" msgstr "" #: input/input_vcenter_https.ml:78 msgid "-i libvirt: expecting -ip passwordfile parameter for vCenter connection" msgstr "" #. input/input_vcenter_https.ml:70 #. input/input_libvirt.ml:41 #: input/input_xen_ssh.ml:57 input/input_vddk.ml:132 msgid "-i libvirt: expecting a libvirt guest name on the command line" msgstr "" #: input/input_libvirt.ml:59 msgid "-i libvirtxml: expecting a libvirt XML filename on the command line" msgstr "" #: input/input_ova.ml:243 msgid "-i ova: OVF references file ‘%s’ which was not found in the OVA archive" msgstr "" #: input/input_ova.ml:78 msgid "" "-i ova: corrupt OVA: checksum of disk %s does not match manifest (actual = " "%s, expected = %s)" msgstr "" #: input/input_ova.ml:52 msgid "-i ova: expecting an OVA file name on the command line" msgstr "" #: input/OVA.ml:361 msgid "" "-i ova: invalid OVA file: path ‘%s’ references a file outside the archive" msgstr "" #: input/input_vmx.ml:57 msgid "-i vmx: cannot use -it vddk in this input mode" msgstr "" #: input/input_vmx.ml:60 msgid "-i vmx: expecting a VMX file or ssh:// URI" msgstr "" #: input/vCenter.ml:159 msgid "" "-ip PASSWORD_FILE parameter ignored because 'user@' was not given in the URL" msgstr "" #: input/input_vddk.ml:119 msgid "-it vddk: ‘-io %s’ is not a valid input option" msgstr "" #: output/output.ml:54 msgid "-o %s: %s option cannot be used in this output mode" msgstr "" #: output/output_disk.ml:66 msgid "-o disk: output directory was not specified, use '-os /dir'" msgstr "" #: output/output_libvirt.ml:59 output/output_disk.ml:56 msgid "-o disk: unknown output option ‘-oo %s’" msgstr "" #: output/output_kubevirt.ml:81 msgid "-o kubevirt: output directory was not specified, use '-os /dir'" msgstr "" #: output/output_kubevirt.ml:91 msgid "" "-o kubevirt: the guest name must contain only lowercase alphanumeric " "characters, '-' or '.', and must start and end with an alphanumeric " "character. Rerun virt-v2v with the '-on name' option to rename it." msgstr "" #: output/output_kubevirt.ml:71 msgid "-o kubevirt: unknown output option ‘-oo %s’" msgstr "" #: output/output_libvirt.ml:120 msgid "" "-o libvirt: output pool ‘%s’ does not have /pool/target/path element. See " "virt-v2v-output-local(1)" msgstr "" #: output/output_libvirt.ml:124 msgid "" "-o libvirt: output pool ‘%s’ has type='dir' but the /pool/target/path " "element is not a local directory. See virt-v2v-output-local(1)" msgstr "" #: output/output_libvirt.ml:116 msgid "" "-o libvirt: output pool ‘%s’ is not a directory (type='dir'). See virt-v2v-" "output-local(1)" msgstr "" #: output/output_openstack.ml:88 msgid "-o openstack mode only supports -oa sparse -of raw" msgstr "" #: output/output_openstack.ml:115 msgid "-o openstack: unknown output option ‘-oo %s’" msgstr "" #: output/output_ovirt_upload.ml:97 msgid "-o ovirt-upload: -oo ovirt-cafile set more than once" msgstr "" #: output/output_ovirt_upload.ml:101 msgid "-o ovirt-upload: -oo ovirt-cluster set more than once" msgstr "" #: output/output_ovirt_upload.ml:112 msgid "-o ovirt-upload: invalid UUID for -oo ovirt-disk-uuid" msgstr "" #: output/output_ovirt_upload.ml:76 msgid "" "-o ovirt-upload: output password file was not specified, use ‘-op’ to point " "to a file which contains the password used to connect to the oVirt server" msgstr "" #: output/output_ovirt_upload.ml:83 msgid "-o ovirt-upload: output storage was not specified, use ‘-os’" msgstr "" #: output/output_ovirt_upload.ml:116 msgid "-o ovirt-upload: unknown output option ‘-oo %s’" msgstr "" #: output/output_ovirt_upload.ml:68 msgid "" "-o ovirt-upload: use ‘-oc’ to point to the oVirt server REST API URL, which " "is usually https://servername/ovirt-engine/api" msgstr "" #: output/output_ovirt.ml:51 msgid "-o ovirt: -os option was not specified" msgstr "" #: output/output_qemu.ml:72 msgid "-o qemu: output directory was not specified, use '-os /dir'" msgstr "" #: output/output_qemu.ml:63 msgid "-o qemu: unknown output option ‘-oo %s’" msgstr "" #: output/output_vdsm.ml:102 msgid "-o vdsm: -oo vdsm-image-uuid was not specified" msgstr "" #: output/output_vdsm.ml:81 msgid "-o vdsm: -oo vdsm-ovf-output set more than once" msgstr "" #: output/output_vdsm.ml:77 msgid "-o vdsm: -oo vdsm-vm-uuid set more than once" msgstr "" #: output/output_vdsm.ml:110 msgid "-o vdsm: -os option was not specified" msgstr "" #: output/output_vdsm.ml:97 msgid "-o vdsm: either -oo vdsm-vol-uuid or -oo vdsm-vm-uuid was not specified" msgstr "" #: output/output_vdsm.ml:90 msgid "-o vdsm: unknown output option ‘-oo %s’" msgstr "" #: output/output_vdsm.ml:74 msgid "-o vdsm: unknown vdsm-compat level ‘%s’" msgstr "" #. output/output_kubevirt.ml:84 #. output/output_disk.ml:68 #: output/output_vdsm.ml:112 output/output_qemu.ml:74 msgid "-os %s: output directory does not exist or is not a directory" msgstr "" #: input/parse_libvirt_xml.ml:279 msgid " missing 'method' attribute, ignoring" msgstr "" #: input/parse_libvirt_xml.ml:291 msgid " unknown fail='%s' attribute, ignoring" msgstr "" #: input/parse_libvirt_xml.ml:370 input/parse_libvirt_xml.ml:317 msgid " was ignored" msgstr "" #: input/parse_libvirt_xml.ml:338 msgid " with was ignored" msgstr "" #: input/parse_libvirt_xml.ml:365 msgid " with was ignored" msgstr "" #: input/parse_libvirt_xml.ml:299 msgid " element with no type attribute ignored" msgstr "" #: input/parse_libvirt_xml.ml:167 msgid " in the input libvirt XML was ignored" msgstr "" #: input/parse_libvirt_xml.ml:414 msgid "" " was ignored because the device name could not be recognized" msgstr "" #: input/input_vddk.ml:176 msgid "" " was not found in the output of ‘virsh dumpxml \"%s\"’. The " "most likely reason is that libvirt is too old, try upgrading libvirt to ≥ " "3.7." msgstr "" #: common/mlcustomize/customize_cmdline.ml:305 msgid "Add package(s) to install" msgstr "" #: common/mlcustomize/customize_cmdline.ml:270 msgid "Add package(s) to install at first boot" msgstr "" #: common/mlcustomize/customize_cmdline.ml:175 msgid "Append line(s) to the file" msgstr "" #: common/mlcustomize/customize_run.ml:137 msgid "Appending line to %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:197 msgid "Change the owner user and group ID of a file or directory" msgstr "" #: common/mlcustomize/customize_cmdline.ml:186 msgid "Change the permissions of a file" msgstr "" #: common/mlcustomize/customize_run.ml:155 msgid "Changing owner of %s to %d:%d" msgstr "" #: common/mlcustomize/customize_run.ml:141 msgid "Changing permissions of %s to %s" msgstr "" #: input/input_libvirt.ml:174 input/input_libvirt.ml:157 msgid "Checking %s checksum of disk %d/%d" msgstr "" #: common/mlcustomize/customize_cmdline.ml:488 msgid "Compatibility option doing nothing" msgstr "" #: common/mlcustomize/customize_cmdline.ml:219 msgid "Copy files in disk image" msgstr "" #: common/mlcustomize/customize_cmdline.ml:397 msgid "Copy local files or directories from a tarball into image" msgstr "" #: common/mlcustomize/customize_cmdline.ml:230 msgid "Copy local files or directories into image" msgstr "" #: common/mlcustomize/customize_run.ml:168 msgid "Copying (in image): %s to %s" msgstr "" #: v2v/v2v.ml:518 msgid "Copying disk %d/%d" msgstr "" #: common/mlcustomize/customize_run.ml:172 msgid "Copying: %s to %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:322 msgid "Create a directory" msgstr "" #: common/mlcustomize/customize_cmdline.ml:316 msgid "Create symbolic links" msgstr "" #: v2v/v2v.ml:567 msgid "Creating output metadata" msgstr "" #: common/mlcustomize/customize_cmdline.ml:321 msgid "DIR" msgstr "" #: common/mlcustomize/customize_cmdline.ml:236 msgid "Delete a file or directory" msgstr "" #: common/mlcustomize/customize_run.ml:176 msgid "Deleting: %s" msgstr "" #: common/mltools/getopt.ml:225 msgid "Display brief help" msgstr "" #: common/mltools/tools_utils.ml:385 msgid "Display version and exit" msgstr "" #: common/mlcustomize/customize_cmdline.ml:482 msgid "Do not relabel files with correct SELinux labels" msgstr "" #: v2v/v2v.ml:248 inspector/inspector.ml:177 in-place/in_place.ml:190 msgid "Don't trim filesystems before conversion" msgstr "" #: common/mltools/tools_utils.ml:389 msgid "Don’t print progress messages" msgstr "" #: common/mltools/tools_utils.ml:420 msgid "Don’t turn off echo for passphrases" msgstr "" #: common/mlcustomize/customize_cmdline.ml:247 msgid "Edit file using Perl expression" msgstr "" #: common/mlcustomize/customize_run.ml:180 msgid "Editing: %s" msgstr "" #: common/mltools/tools_utils.ml:386 msgid "Enable libguestfs debugging messages" msgstr "" #: common/mltools/tools_utils.ml:387 msgid "Enable tracing of libguestfs calls" msgstr "" #: output/output_ovirt.ml:77 msgid "Export Storage Domain" msgstr "" #: open/open.ml:88 msgid "External command to run" msgstr "" #. common/mlcustomize/customize_cmdline.ml:408 #. common/mlcustomize/customize_cmdline.ml:373 #: common/mlcustomize/customize_cmdline.ml:414 msgid "FILE" msgstr "" #: common/mlcustomize/customize_cmdline.ml:455 msgid "FILE:CONTENT" msgstr "" #: common/mlcustomize/customize_cmdline.ml:444 msgid "FILE:DEST" msgstr "" #: common/mlcustomize/customize_cmdline.ml:242 msgid "FILE:EXPR" msgstr "" #: common/mlcustomize/customize_cmdline.ml:170 msgid "FILE:LINE" msgstr "" #: common/mlcustomize/customize_cmdline.ml:203 msgid "FILENAME" msgstr "" #. in-place/in_place.ml:378 #: v2v/v2v.ml:571 open/open.ml:220 inspector/inspector.ml:334 msgid "Finishing off" msgstr "" #: common/mlcustomize/customize_cmdline.ml:275 msgid "HOSTNAME" msgstr "" #: v2v/v2v.ml:254 inspector/inspector.ml:183 in-place/in_place.ml:194 msgid "How to choose root filesystem" msgstr "" #: common/mltools/tools_utils.ml:177 msgid "" "If reporting bugs, run %s with debugging enabled and include the complete " "output:\n" "\n" " %s -v -x [...]" msgstr "" #: common/mlcustomize/customize_cmdline.ml:386 msgid "Inject a public key into the guest" msgstr "" #: common/mlcustomize/customize_cmdline.ml:282 msgid "Inject the Balloon Server into a Windows guest" msgstr "" #: common/mlcustomize/customize_cmdline.ml:288 msgid "Inject the QEMU Guest Agent into a Windows guest" msgstr "" #: common/mlcustomize/customize_cmdline.ml:294 msgid "Inject virtio-win drivers into a Windows guest" msgstr "" #. in-place/in_place.ml:176 #: v2v/v2v.ml:216 open/open.ml:80 inspector/inspector.ml:165 msgid "Input format" msgstr "" #: input/input_vddk.ml:77 msgid "" "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" "\n" "Refer to nbdkit-vddk-plugin(1) and the VDDK documentation for further\n" "information on these settings.\n" msgstr "" #: v2v/v2v.ml:222 open/open.ml:86 inspector/inspector.ml:171 msgid "Input transport" msgstr "" #: common/mlcustomize/customize_run.ml:191 msgid "Installing firstboot command: %s" msgstr "" #: common/mlcustomize/customize_run.ml:195 msgid "Installing firstboot packages: %s" msgstr "" #: common/mlcustomize/customize_run.ml:202 msgid "Installing firstboot script: %s" msgstr "" #: common/mlcustomize/customize_run.ml:248 msgid "Installing packages: %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:225 msgid "LOCALPATH:REMOTEDIR" msgstr "" #. in-place/in_place.ml:174 #: v2v/v2v.ml:214 open/open.ml:78 inspector/inspector.ml:163 msgid "Libvirt URI" msgstr "" #: common/mlcustomize/customize_run.ml:255 msgid "Linking: %s -> %s" msgstr "" #. common/mlcustomize/customize_cmdline.ml:287 #. common/mlcustomize/customize_cmdline.ml:281 #: common/mlcustomize/customize_cmdline.ml:293 msgid "METHOD" msgstr "" #: common/mltools/tools_utils.ml:426 msgid "Make output machine readable" msgstr "" #: common/mlcustomize/customize_run.ml:260 msgid "Making directory: %s" msgstr "" #: v2v/v2v.ml:226 inspector/inspector.ml:173 in-place/in_place.ml:182 msgid "Map NIC to network or bridge or assign static IP" msgstr "" #: v2v/v2v.ml:210 inspector/inspector.ml:159 in-place/in_place.ml:170 msgid "Map bridge ‘in’ to ‘out’" msgstr "" #: v2v/v2v.ml:230 inspector/inspector.ml:179 in-place/in_place.ml:186 msgid "Map network ‘in’ to ‘out’" msgstr "" #: common/mlcustomize/customize_cmdline.ml:333 msgid "Move files in disk image" msgstr "" #: common/mlcustomize/customize_run.ml:264 msgid "Moving: %s -> %s" msgstr "" #. input/input_vcenter_https.ml:45 #. input/input_ova.ml:35 #. input/input_libvirt.ml:233 #. input/input_libvirt.ml:221 #. input/input_disk.ml:35 #: input/input_xen_ssh.ml:43 input/input_vmx.ml:36 msgid "No input options can be used in this mode.\n" msgstr "" #: output/output_ovirt.ml:40 output/output_null.ml:38 #: output/output_glance.ml:40 msgid "No output options can be used in this mode.\n" msgstr "" #: output/output_vdsm.ml:166 msgid "OVF (metadata) directory (%s) does not exist or is not a directory" msgstr "" #: common/mlcustomize/firstboot.ml:268 msgid "" "One of rhsrvany.exe or pvvxsvc.exe is missing in %s. One of them is " "required in order to install Windows firstboot scripts. You can get one by " "building rhsrvany (https://github.com/rwmjones/rhsrvany)" msgstr "" #: v2v/v2v.ml:236 msgid "Output hypervisor connection" msgstr "" #: output/output_ovirt_upload.ml:51 msgid "" "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" "\n" "You can override the UUIDs of the disks, instead of using autogenerated " "UUIDs\n" "after their uploads (if you do, you must supply one for each disk):\n" "\n" " -oo ovirt-disk-uuid=UUID Disk UUID\n" msgstr "" #: output/output_qemu.ml:44 msgid "" "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" msgstr "" #: output/output_vdsm.ml:43 msgid "" "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" "\n" "For 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" msgstr "" #: output/output_disk.ml:44 msgid "" "Output options that can be used with -o disk:\n" "\n" " -oo compressed Compress the output file (used only with -of qcow2)\n" msgstr "" #: output/output_kubevirt.ml:51 msgid "" "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" msgstr "" #: output/output_libvirt.ml:47 msgid "" "Output options that can be used with -o libvirt:\n" "\n" " -oo compressed Compress the output file (used only with -of qcow2)\n" msgstr "" #. common/mlcustomize/customize_cmdline.ml:235 #: common/mlcustomize/customize_cmdline.ml:420 msgid "PATH" msgstr "CHEMIN" #: common/mlcustomize/customize_cmdline.ml:181 msgid "PERMISSIONS:FILE" msgstr "" #. common/mlcustomize/customize_cmdline.ml:300 #. common/mlcustomize/customize_cmdline.ml:265 #: common/mlcustomize/customize_cmdline.ml:427 msgid "PKG,PKG.." msgstr "" #: v2v/v2v.ml:263 in-place/in_place.ml:203 msgid "Prefer 'virtio-blk' or 'virtio-scsi'" msgstr "" #: v2v/v2v.ml:252 in-place/in_place.ml:192 msgid "Print source and stop" msgstr "" #: common/mlcustomize/customize_cmdline.ml:208 msgid "Read customize commands from file" msgstr "" #: common/mltools/tools_utils.ml:421 msgid "Read passphrases from stdin" msgstr "" #: common/mlcustomize/customize_cmdline.ml:421 msgid "Recursively truncate all files in directory" msgstr "" #: common/mlcustomize/customize_run.ml:298 msgid "Recursively truncating: %s" msgstr "" #: v2v/v2v.ml:240 msgid "Rename guest when converting" msgstr "" #: common/mlcustomize/customize_cmdline.ml:259 msgid "Run command at first guest boot" msgstr "" #: common/mlcustomize/customize_cmdline.ml:368 msgid "Run command in disk image" msgstr "" #: common/mlcustomize/customize_cmdline.ml:253 msgid "Run script at first guest boot" msgstr "" #: common/mlcustomize/customize_cmdline.ml:362 msgid "Run script in disk image" msgstr "" #: common/mlcustomize/customize_cmdline.ml:409 msgid "Run touch on a file" msgstr "" #: v2v/v2v.ml:250 msgid "Run up to N instances of nbdcopy in parallel" msgstr "" #: open/open.ml:188 msgid "Running external command" msgstr "" #: common/mlcustomize/customize_run.ml:307 msgid "Running touch: %s" msgstr "" #. common/mlcustomize/customize_run.ml:159 #: common/mlcustomize/customize_run.ml:274 msgid "Running: %s" msgstr "" #. common/mlcustomize/customize_cmdline.ml:252 #: common/mlcustomize/customize_cmdline.ml:361 msgid "SCRIPT" msgstr "" #: common/mltools/tools_utils.ml:422 #: common/mlcustomize/customize_cmdline.ml:351 msgid "SELECTOR" msgstr "" #: common/mlcustomize/customize_run.ml:363 msgid "SELinux relabelling" msgstr "" #. common/mlcustomize/customize_cmdline.ml:214 #: common/mlcustomize/customize_cmdline.ml:328 msgid "SOURCE:DEST" msgstr "" #: common/mlcustomize/customize_run.ml:287 msgid "SSH key could not be injected for this type of guest" msgstr "" #: common/mlcustomize/customize_run.ml:284 msgid "SSH key inject: %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:374 msgid "Scrub a file" msgstr "" #: common/mlcustomize/customize_cmdline.ml:466 msgid "Scrub build log file" msgstr "" #: common/mlcustomize/customize_run.ml:374 msgid "Scrubbing the log file" msgstr "" #: common/mlcustomize/customize_run.ml:279 msgid "Scrubbing: %s" msgstr "" #: v2v/v2v.ml:208 msgid "Set bandwidth dynamically from file" msgstr "" #: v2v/v2v.ml:206 msgid "Set bandwidth to bits per sec" msgstr "" #. in-place/in_place.ml:172 #: v2v/v2v.ml:212 open/open.ml:76 inspector/inspector.ml:161 msgid "Set input mode (default: libvirt)" msgstr "" #: v2v/v2v.ml:228 inspector/inspector.ml:175 in-place/in_place.ml:184 msgid "Set memory size" msgstr "" #: v2v/v2v.ml:256 inspector/inspector.ml:185 in-place/in_place.ml:196 msgid "Set number of vCPUs" msgstr "" #. in-place/in_place.ml:178 #: v2v/v2v.ml:218 open/open.ml:82 inspector/inspector.ml:167 msgid "Set option for input mode" msgstr "" #: v2v/v2v.ml:242 msgid "Set option for output mode" msgstr "" #: v2v/v2v.ml:234 msgid "Set output allocation mode" msgstr "" #: v2v/v2v.ml:238 msgid "Set output format" msgstr "" #: v2v/v2v.ml:232 msgid "Set output mode (default: libvirt)" msgstr "" #: v2v/v2v.ml:246 msgid "Set output storage location" msgstr "" #: common/mlcustomize/customize_cmdline.ml:476 msgid "Set password crypto" msgstr "" #: common/mltools/tools_utils.ml:430 msgid "Set program name" msgstr "" #: common/mlcustomize/customize_cmdline.ml:356 msgid "Set root password" msgstr "" #: common/mlcustomize/customize_cmdline.ml:403 msgid "Set the default timezone" msgstr "" #: common/mlcustomize/customize_cmdline.ml:276 msgid "Set the hostname" msgstr "" #: inspector/inspector.ml:181 in-place/in_place.ml:188 msgid "Set the output filename" msgstr "" #: common/mlcustomize/customize_cmdline.ml:345 msgid "Set user password" msgstr "" #: common/mlcustomize/customize_run.ml:75 msgid "Setting a random seed" msgstr "" #: common/mlcustomize/customize_run.ml:354 msgid "Setting passwords" msgstr "" #: common/mlcustomize/password.ml:113 msgid "Setting random password of %s to %s" msgstr "" #: common/mlcustomize/customize_run.ml:207 msgid "Setting the hostname: %s" msgstr "" #: common/mlcustomize/customize_run.ml:90 msgid "Setting the machine ID in %s" msgstr "" #: common/mlcustomize/customize_run.ml:302 msgid "Setting the timezone: %s" msgstr "" #: v2v/v2v.ml:481 msgid "Setting up the destination: %s" msgstr "" #. in-place/in_place.ml:342 #: v2v/v2v.ml:457 open/open.ml:184 inspector/inspector.ml:310 msgid "Setting up the source: %s" msgstr "" #: v2v/v2v.ml:463 in-place/in_place.ml:348 msgid "Source guest information (--print-source option):\n" msgstr "" #: common/mltools/tools_utils.ml:422 msgid "Specify a LUKS key" msgstr "" #: common/mlcustomize/customize_cmdline.ml:392 msgid "TARFILE:REMOTEDIR" msgstr "" #: common/mlcustomize/customize_cmdline.ml:311 msgid "TARGET:LINK[:LINK..]" msgstr "" #: common/mlcustomize/customize_cmdline.ml:402 msgid "TIMEZONE" msgstr "" #: v2v/v2v.ml:200 msgid "" "The --in-place option has been replaced by the ‘virt-v2v-in-place’ program" msgstr "" #: output/output_qemu.ml:251 msgid "" "The Virt machine has no support for IDE. Please report a bug for virt-v2v -- " "refer to virt-v2v(1) section \"BUGS\"." msgstr "" #: output/output_qemu.ml:272 msgid "" "The Virt machine has no support for floppies. Please report a bug for virt-" "v2v -- refer to virt-v2v(1) section \"BUGS\"." msgstr "" #: lib/create_ovf.ml:785 msgid "" "This guest required a password for connection to its display, but this is " "not supported by oVirt. Therefore the converted guest’s display will not " "require a separate password to connect." msgstr "" #: input/input_vmx.ml:111 msgid "" "This transport does not support guests with snapshots. Either collapse the " "snapshots for this guest and try the conversion again, or use one of the " "alternate conversion methods described in virt-v2v-input-vmware(1) section " "\"NOTES\"." msgstr "" #: common/mlcustomize/customize_cmdline.ml:415 msgid "Truncate a file to zero size" msgstr "" #: common/mlcustomize/customize_run.ml:294 msgid "Truncating: %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:192 msgid "UID:GID:PATH" msgstr "" #: common/mlcustomize/customize_cmdline.ml:339 msgid "USER:SELECTOR" msgstr "" #: common/mlcustomize/customize_cmdline.ml:380 msgid "USER[:SELECTOR]" msgstr "" #: common/mlcustomize/customize_cmdline.ml:432 msgid "Uninstall package(s)" msgstr "" #: common/mlcustomize/customize_run.ml:311 msgid "Uninstalling packages: %s" msgstr "" #: common/mlcustomize/customize_run.ml:290 msgid "Unpack tar file: %s to %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:438 msgid "Update packages" msgstr "" #: common/mlcustomize/customize_run.ml:316 msgid "Updating packages" msgstr "" #: common/mlcustomize/customize_cmdline.ml:449 msgid "Upload local file to destination" msgstr "" #: common/mlcustomize/customize_run.ml:321 msgid "Uploading: %s to %s" msgstr "" #: common/mltools/tools_utils.ml:391 msgid "Use ANSI colour sequences even if not tty" msgstr "" #. in-place/in_place.ml:180 #: v2v/v2v.ml:220 open/open.ml:84 inspector/inspector.ml:169 msgid "Use password from file to connect to input hypervisor" msgstr "" #: v2v/v2v.ml:244 msgid "Use password from file to connect to output hypervisor" msgstr "" #: v2v/v2v.ml:224 msgid "Use virt-v2v-in-place instead" msgstr "" #: common/mltools/tools_utils.ml:392 msgid "Wrap log messages even if not tty" msgstr "" #: common/mlcustomize/customize_cmdline.ml:460 msgid "Write file" msgstr "" #: common/mlcustomize/customize_run.ml:346 msgid "Writing: %s" msgstr "" #: lib/YAML.ml:167 msgid "" "YAML block contains newline character. This should not happen, please " "report a bug against virt-v2v." msgstr "" #: output/output_libvirt.ml:96 msgid "" "a libvirt domain called ‘%s’ already exists on the target.\n" "\n" "If using virt-v2v directly, use the ‘-on’ option to select a different name. " "Or delete the existing domain on the target using the ‘virsh undefine’ " "command.\n" "\n" "If using virt-p2v, select a different ‘Name’ in the ‘Target properties’. Or " "delete the existing domain on the target using the ‘virsh undefine’ command." msgstr "" #: common/mlcustomize/append_line.ml:44 msgid "append_line: %s is not a file" msgstr "" #: input/input_libvirt.ml:206 msgid "" "bad checksum for disk %d/%d\n" "Expected checksum: %s\n" "Actual checksum: %s" msgstr "" #: lib/libvirt_utils.ml:59 msgid "cannot find libvirt domain ‘%s’: %s" msgstr "" #: lib/libvirt_utils.ml:96 msgid "" "cannot find libvirt pool ‘%s’: %s\n" "\n" "Use ‘virsh pool-list --all’ to list all available pools, and ‘virsh pool-" "dumpxml ’ to display details about a particular pool.\n" "\n" "To set the pool which virt-v2v uses, add the ‘-os ’ option." msgstr "" #: lib/libvirt_utils.ml:110 msgid "cannot find libvirt volume ‘%s’: %s" msgstr "" #: common/mlcustomize/firstboot.ml:235 msgid "" "cannot finish firstboot installation by running ‘%s’ because host cpu (%s) " "and guest arch (%s) are not compatible. The firstboot service may not run " "at boot." msgstr "" #: output/output_libvirt.ml:180 msgid "cannot get libvirt domain capabilities: %s" msgstr "" #: output/output_libvirt.ml:85 msgid "cannot get libvirt hypervisor capabilities: %s" msgstr "" #: v2v/v2v.ml:105 inspector/inspector.ml:95 in-place/in_place.ml:102 msgid "cannot parse --mac \"%s\" parameter" msgstr "" #: v2v/v2v.ml:129 inspector/inspector.ml:119 in-place/in_place.ml:126 msgid "cannot parse --mac ip %s: doesn’t look like “%s” is an IP address" msgstr "" #: v2v/v2v.ml:143 inspector/inspector.ml:133 in-place/in_place.ml:140 #, fuzzy #| msgid "credential index out of range" msgid "cannot parse --mac ip prefix length field as an integer: %s" msgstr "index de données d'identification hors limite" #: common/mlcustomize/guest_packages.ml:29 msgid "" "cannot use ‘%s’ because no package manager has been detected for this guest " "OS.\n" "\n" "If this guest OS is a common one with ordinary package management then this " "may have been caused by a failure of libguestfs inspection.\n" "\n" "For OSes such as Windows that lack package management, this is not " "possible. Try using one of the ‘--firstboot*’ flags instead (described in " "the virt-customize(1) manual)." msgstr "" #: output/output_ovirt.ml:91 msgid "" "cannot write files to the NFS server as %d:%d, even though we appear to be " "running as root. This probably means the NFS client or idmapd is not " "configured properly.\n" "\n" "You will have to chown the files that virt-v2v creates after the run, " "otherwise oVirt will not be able to import the VM." msgstr "" #: output/output_ovirt.ml:99 msgid "" "cannot write files to the NFS server as %d:%d. You might want to stop virt-" "v2v (^C) and rerun it as root." msgstr "" #: common/mlcustomize/customize_cmdline.ml:508 msgid "command '%s' cannot be used in command files, see the man page" msgstr "" #: common/mlcustomize/customize_cmdline.ml:525 msgid "command '%s' not valid, see the man page" msgstr "" #: common/mldrivers/linux_bootloaders.ml:318 msgid "could not add grub2 serial console (ignored)" msgstr "" #: input/ssh.ml:52 msgid "" "could not copy the VMX file from the remote server, see earlier error " "messages" msgstr "" #: output/output_libvirt.ml:211 msgid "" "could not define libvirt domain: %s.\n" "The libvirt XML is still available in ‘%s’. Try running ‘virsh -c %s define " "%s’ yourself instead." msgstr "" #: common/mldrivers/linux_bootloaders.ml:221 msgid "could not determine a way to update the configuration of Grub2" msgstr "" #: input/input_vddk.ml:243 msgid "" "could not fetch thumbprint from the server, you mus use ‘-io vddk-" "thumbprint=XX:XX...’" msgstr "" #: common/mldrivers/linux_bootloaders.ml:376 msgid "could not find bootloader mount point (%s): %s" msgstr "" #: common/mldrivers/windows_drivers.ml:91 msgid "" "could not find registry entry " "HKEY_LOCAL_MACHINE\\SYSTEM\\DriverDatabase\\DeviceIds in this Windows " "guest. It may be either a very old or very new version of Windows that we " "cannot process." msgstr "" #: common/mlcustomize/firstboot.ml:232 msgid "" "could not finish firstboot installation by running ‘%s’ because the command " "failed: %s" msgstr "" #. input/input_vcenter_https.ml:94 #: input/select_input.ml:66 input/input_xen_ssh.ml:71 input/input_vddk.ml:151 msgid "could not parse '-ic %s'. Original error message was: %s" msgstr "" #: input/parse_libvirt_xml.ml:407 input/parse_libvirt_xml.ml:54 msgid "could not parse device name ‘%s’ from the source libvirt XML" msgstr "" #: input/OVF.ml:168 #, fuzzy #| msgid "could not parse boot size" msgid "could not parse disk rasd:HostResource from OVF document" msgstr "n'a pas pu analyser la taille de démarrage" #: input/input_ova.ml:98 #, fuzzy #| msgid "could not parse boot size" msgid "could not parse ovf:Name from OVF document" msgstr "n'a pas pu analyser la taille de démarrage" #: output/output_ovirt.ml:247 msgid "" "could not read the %s specified by the '-os %s' parameter on the command " "line. Is it really an OVirt %s? The original error is: %s" msgstr "" #: common/mldrivers/linux_bootloaders.ml:336 msgid "" "could not rebuild grub2 configuration file (%s). This may mean that grub " "output will not be sent to the serial port, but otherwise should be " "harmless. Original error message: %s" msgstr "" #: output/output_libvirt.ml:156 msgid "could not refresh libvirt pool ‘%s’: %s" msgstr "" #: common/mldrivers/linux_bootloaders.ml:320 msgid "could not remove grub2 serial console (ignored)" msgstr "" #: common/mltools/registry.ml:93 msgid "" "decode_utf16le: Windows UTF16-LE string contains non-7-bit characters. This " "is a bug in %s, please report it." msgstr "" #: common/mltools/registry.ml:87 msgid "" "decode_utf16le: Windows string does not appear to be in UTF16-LE encoding. " "This could be a bug in %s." msgstr "" #: common/mldrivers/linux_bootloaders.ml:126 msgid "didn't find grub entry for kernel %s" msgstr "" #: input/input_disk.ml:150 msgid "disks on the command line have mixed formats" msgstr "" #: input/parse_libvirt_xml.ml:194 msgid "display in the input libvirt XML was ignored" msgstr "" #: output/output_qemu.ml:147 msgid "don’t know how to convert UEFI guests for architecture %s" msgstr "" #: common/mldrivers/linux.ml:158 msgid "don’t know how to find file owner using %s" msgstr "" #: common/mldrivers/linux.ml:89 msgid "don’t know how to get list of files from package using %s" msgstr "" #: common/mltools/curl.ml:82 msgid "downloading %s" msgstr "" #: lib/networks.ml:84 msgid "" "duplicate --mac parameter. Duplicate mappings specified for MAC address %s." msgstr "" #: lib/networks.ml:102 msgid "" "duplicate -b/--bridge parameter. Duplicate mappings specified for bridge %s." msgstr "" #: lib/networks.ml:108 msgid "duplicate -b/--bridge parameter. Only one default mapping is allowed." msgstr "" #: lib/networks.ml:90 msgid "" "duplicate -n/--network parameter. Duplicate mappings specified for network " "%s." msgstr "" #: lib/networks.ml:96 msgid "duplicate -n/--network parameter. Only one default mapping is allowed." msgstr "" #: input/OVF.ml:143 msgid "error parsing disk fileRef" msgstr "" #: input/input_ova.ml:124 msgid "error uncompressing %s, see earlier error messages" msgstr "" #: input/OVA.ml:210 input/OVA.ml:112 msgid "error unpacking %s, see earlier error messages" msgstr "" #: common/mltools/tools_utils.ml:248 msgid "exception: %s" msgstr "" #: common/mltools/tools_utils.ml:455 #, fuzzy #| msgid "%s exited with error status %d" msgid "exited with error %d" msgstr "%s s'est terminé avec l'état d'erreur %d" #: lib/utils.ml:34 #, fuzzy #| msgid "%s exited with error status %d" msgid "exited with non-zero error code %d" msgstr "%s s'est terminé avec l'état d'erreur %d" #: input/input_disk.ml:147 msgid "expected >= 1 disk name on the command line" msgstr "" #: common/mltools/xpath_helpers.ml:36 msgid "" "expecting XML expression to return an integer (expression: %s, matching " "string: %s)" msgstr "" #: common/mltools/tools_utils.ml:440 msgid "external command" msgstr "" #: output/output_ovirt_upload.ml:265 msgid "failed server prechecks, see earlier errors" msgstr "" #: output/output_ovirt_upload.ml:507 msgid "failed to create virtual machine, see earlier errors" msgstr "" #: output/output_ovirt_upload.ml:479 msgid "failed to finalize the transfers, see earlier errors" msgstr "" #: common/mldrivers/linux_bootloaders.ml:208 msgid "failed to find grub2-mkconfig binary (but Grub2 was detected on guest)" msgstr "" #: input/OVA.ml:461 msgid "failed to parse line returned by tar: %S" msgstr "" #: output/output_ovirt_upload.ml:394 msgid "failed to start transfer, see earlier errors" msgstr "" #: output/output_ovirt_upload.ml:311 msgid "failed vmchecks, see earlier errors" msgstr "" #: common/mltools/tools_utils.ml:239 msgid "failure: %s" msgstr "" #: input/input_ova.ml:134 msgid "file ‘%s’ not found in the ova" msgstr "" #: common/mlcustomize/firstboot.ml:143 msgid "" "firstboot: unknown version for old firstboot.service file %s (md5=%s), it " "will not be removed" msgstr "" #: common/mltools/tools_utils.ml:258 #, fuzzy #| msgid "%s killed by signal %d (%s)" msgid "generated by %s %s" msgstr "%s a été tué par le signal %d (%s) " #: output/create_libvirt_xml.ml:39 msgid "get_osinfo_id: unknown guest operating system: %s" msgstr "" #: output/output_glance.ml:66 msgid "" "glance: glance client is not installed or set up correctly. You may need to " "set environment variables or source a script to enable authentication. See " "preceding messages for details." msgstr "" #: output/output_glance.ml:139 msgid "glance: image upload to glance failed, see earlier errors" msgstr "" #: common/mlcustomize/firstboot.ml:386 common/mlcustomize/firstboot.ml:164 msgid "guest type %s is not supported" msgstr "" #: common/mlcustomize/firstboot.ml:413 msgid "guest type %s/%s is not supported" msgstr "" #: common/mltools/tools_utils.ml:749 msgid "" "host (%s/%s) and guest (%s/%s) are not compatible, so you cannot use command " "line options that involve running commands in the guest. Use --firstboot " "scripts instead." msgstr "" #: common/mlcustomize/customize_run.ml:209 msgid "hostname could not be set for this type of guest" msgstr "" #: common/mldrivers/linux_kernels.ml:342 msgid "ignoring kernel %s in bootloader, as it does not exist." msgstr "" #: output/output_vdsm.ml:160 msgid "image directory (%s) does not exist or is not a directory" msgstr "" #: input/parse_libvirt_xml.ml:81 msgid "in the libvirt XML metadata, is missing or empty" msgstr "" #: input/parse_libvirt_xml.ml:87 msgid "in the libvirt XML metadata, is missing or empty" msgstr "" #: input/input_vcenter_https.ml:52 input/input_libvirt.ml:107 msgid "in-place mode does not work with HTTP source" msgstr "" #: input/input_vddk.ml:146 msgid "in-place mode does not work with VDDK source" msgstr "" #: input/input_vmx.ml:43 msgid "in-place mode does not work with VMX source" msgstr "" #: input/input_xen_ssh.ml:50 msgid "in-place mode does not work with Xen over SSH source" msgstr "" #: output/output_kubevirt.ml:116 msgid "" "incorrect number of '-oo disk' parameters. This guest has %d disks, but the " "parameter was used %d times." msgstr "" #: input/input_xen_ssh.ml:119 msgid "" "input from xen over ssh does not support disks stored on remote block " "devices. See virt-v2v-input-xen(1) section \"Xen or ssh conversions from " "block devices\"." msgstr "" #. in-place/in_place.ml:397 #: v2v/v2v.ml:590 open/open.ml:238 inspector/inspector.ml:353 msgid "" "insufficient free space in the conversion server temporary directory %s " "(%s).\n" "\n" "Either free up space in that directory, or set the LIBGUESTFS_CACHEDIR " "environment variable to point to another directory with more than 1GB of " "free space.\n" "\n" "See also the virt-v2v(1) manual, section \"Minimum free space check in the " "host\"." msgstr "" #: common/mltools/tools_utils.ml:246 msgid "internal error: Not_found exception was thrown" msgstr "" #: common/mltools/tools_utils.ml:243 msgid "internal error: assertion failed at %s, line %d, char %d" msgstr "" #: common/mltools/tools_utils.ml:241 msgid "internal error: invalid argument: %s" msgstr "" #: common/mldrivers/linux.ml:128 msgid "internal error: is_file_owned: dpkg command returned no output" msgstr "" #: common/mldrivers/linux.ml:133 msgid "internal error: is_file_owned: unexpected output from dpkg command: %s" msgstr "" #: common/mldrivers/linux_bootloaders.ml:130 msgid "internal error: regular expression did not match ‘%s’" msgstr "" #: v2v/v2v.ml:548 msgid "internal error: wait returned unexpected process ID %d status \"%s\"" msgstr "" #: v2v/v2v.ml:114 inspector/inspector.ml:104 in-place/in_place.ml:111 msgid "invalid --mac ip option" msgstr "" #: v2v/v2v.ml:98 inspector/inspector.ml:88 in-place/in_place.ml:95 msgid "invalid -b/--bridge parameter" msgstr "" #: v2v/v2v.ml:90 inspector/inspector.ml:80 in-place/in_place.ml:87 msgid "invalid -n/--network parameter" msgstr "" #: input/parse_domain_from_vmx.ml:402 msgid "invalid cpuid.coresPerSocket < number of vCPUs" msgstr "" #. common/mlcustomize/customize_cmdline.ml:153 #. common/mlcustomize/customize_cmdline.ml:145 #: common/mlcustomize/customize_cmdline.ml:161 msgid "invalid format for '--%s' parameter, see the man page" msgstr "" #: common/mltools/tools_utils.ml:359 msgid "invalid format string for --machine-readable: %s" msgstr "" #: lib/utils.ml:279 msgid "invalid input filename (%s)" msgstr "" #: input/OVA.ml:445 msgid "invalid offset returned by tar: %S" msgstr "" #: common/mltools/tools_utils.ml:374 msgid "invalid output fd for --machine-readable: %s" msgstr "" #: common/mltools/tools_utils.ml:376 msgid "invalid output for --machine-readable: %s" msgstr "" #: common/mltools/tools_utils.ml:368 msgid "invalid output stream for --machine-readable: %s" msgstr "" #: common/mlcustomize/password.ml:73 msgid "invalid password selector ‘%s’; see the man page" msgstr "" #: input/OVA.ml:450 msgid "invalid size returned by tar: %S" msgstr "" #: common/mlcustomize/ssh_key.ml:45 msgid "invalid ssh-inject selector ‘%s’; see the man page" msgstr "" #: input/OVF.ml:82 msgid "invalid vmw:CoresPerSocket (%d) ignored" msgstr "" #: input/OVF.ml:88 msgid "invalid vmw:CoresPerSocket < number of cores" msgstr "" #: common/mldrivers/linux_bootloaders.ml:114 msgid "kernel %s is not under grub tree %s" msgstr "" #: common/mltools/tools_utils.ml:539 common/mltools/tools_utils.ml:458 #, fuzzy #| msgid "%s killed by signal %d (%s)" msgid "killed by signal %d" msgstr "%s a été tué par le signal %d (%s) " #: common/mltools/tools_utils.ml:237 msgid "libguestfs error: %s" msgstr "" #: lib/libvirt_utils.ml:72 msgid "" "libvirt domain ‘%s’ is running or paused. Converting a live guest will " "result in corrupted output. However this is safe if you're converting from a " "snapshot" msgstr "" #: common/mlcustomize/customize_run.ml:47 msgid "log file %s: %s (ignored)" msgstr "" #: input/OVA.ml:147 msgid "" "making OVA directory public readable to work around libvirt bug https://" "bugzilla.redhat.com/1045069" msgstr "" #: input/input_ova.ml:86 msgid "manifest has a checksum for non-existent file %s (ignored)" msgstr "" #: common/mlcustomize/customize_cmdline.ml:472 msgid "md5|sha256|sha512" msgstr "" #: common/mlcustomize/customize_run.ml:119 msgid "method '%s' is no longer supported" msgstr "" #: common/mltools/JSON_parser.ml:39 msgid "missing value for the key ‘%s’" msgstr "" #: input/OVA.ml:276 msgid "more than one .ovf file was found in %s" msgstr "" #: common/mltools/JSON_parser.ml:34 msgid "more than value for the key ‘%s’" msgstr "" #: output/output_ovirt.ml:222 msgid "" "mount command failed, see earlier errors.\n" "\n" "This probably means you didn't specify the right %s path [-os %s], or else " "you need to rerun virt-v2v as root." msgstr "" #: common/mlcustomize/customize_run.ml:103 msgid "" "multiple --root-password/--password options set the password for user ‘%s’ " "twice" msgstr "" #: input/input_vddk.ml:319 msgid "" "nbdkit VDDK plugin is not installed or not working. It is required if you " "want to use VDDK.\n" "\n" "It 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 ’/%s/libvixDiskLib.so.?’.\n" "\n" "See also the virt-v2v-input-vmware(1) manual." msgstr "" #: input/input_vddk.ml:313 msgid "" "nbdkit VDDK plugin is not installed or not working. It is required if you " "want to use VDDK.\n" "\n" "The 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" "\n" "See also the virt-v2v-input-vmware(1) manual." msgstr "" #: lib/nbdkit.ml:223 msgid "nbdkit did not start up. See previous debugging messages for problems." msgstr "" #: lib/nbdkit.ml:225 msgid "" "nbdkit did not start up. There may be errors printed by nbdkit above.\n" "\n" "If the messages above are not sufficient to diagnose the problem then add " "the ‘virt-v2v -v -x’ options and examine the debugging output carefully." msgstr "" #: input/nbdkit_ssh.ml:36 input/nbdkit_curl.ml:32 input/input_vddk.ml:283 msgid "nbdkit is not installed or not working" msgstr "" #: input/input_disk.ml:92 msgid "" "nbdkit is not installed or not working. It is required to use ‘-i disk’." msgstr "" #: input/input_libvirt.ml:68 msgid "" "nbdkit is not installed or not working. It is required to use ‘-i libvirt|" "libvirtxml’." msgstr "" #: output/output.ml:178 output/output.ml:77 msgid "" "nbdkit is not installed or not working. It is required to use ‘-o disk’." msgstr "" #: output/output_null.ml:57 msgid "" "nbdkit is not installed or not working. It is required to use ‘-o null’." msgstr "" #: output/output_ovirt_upload.ml:163 msgid "" "nbdkit is not installed or not working. It is required to use ‘-o ovirt-" "upload’. See the virt-v2v-output-ovirt(1) manual." msgstr "" #: input/input_vddk.ml:285 msgid "nbdkit must be >= 1.45.11 for input from VDDK" msgstr "" #: output/output_ovirt_upload.ml:176 msgid "" "nbdkit python plugin is not installed or not working. It is required if you " "want to use ‘-o ovirt-upload’.\n" "\n" "See also the virt-v2v-output-ovirt(1) manual." msgstr "" #: output/output_ovirt_upload.ml:190 msgid "" "nbdkit was compiled without SELinux support. You will have to recompile " "nbdkit with libselinux-devel installed, or else set SELinux to Permissive " "mode while doing the conversion." msgstr "" #. input/input_libvirt.ml:76 #. input/input_disk.ml:98 #: input/nbdkit_ssh.ml:42 input/nbdkit_curl.ml:38 input/input_vddk.ml:289 msgid "nbdkit-cow-filter is not installed or not working" msgstr "" #: input/nbdkit_curl.ml:35 msgid "nbdkit-curl-plugin is not installed" msgstr "" #. input/input_disk.ml:96 #: output/output.ml:181 output/output.ml:80 input/input_libvirt.ml:72 msgid "nbdkit-file-plugin is not installed or not working" msgstr "" #: input/input_libvirt.ml:74 msgid "nbdkit-nbd-plugin is not installed or not working" msgstr "" #: output/output_null.ml:60 msgid "nbdkit-null-plugin is not installed or not working" msgstr "" #: input/nbdkit_ssh.ml:39 msgid "nbdkit-ssh-plugin is not installed" msgstr "" #: input/input_vddk.ml:287 msgid "nbdkit-vddk-plugin is not installed" msgstr "" #: lib/nbdkit.ml:56 msgid "nbdkit: unexpected version in --dump-config: %s" msgstr "" #. input/input_vcenter_https.ml:49 #. input/input_ova.ml:46 #. input/input_libvirt.ml:35 #. input/input_disk.ml:39 #: input/input_xen_ssh.ml:47 input/input_vmx.ml:40 msgid "no -io (input options) are allowed here" msgstr "" #: output/output_ovirt.ml:44 output/output_null.ml:42 #: output/output_glance.ml:44 msgid "no -oo (output options) are allowed here" msgstr "" #: input/OVA.ml:273 msgid "no .ovf file was found in %s" msgstr "" #: common/mldrivers/linux_bootloaders.ml:402 msgid "no bootloader detected" msgstr "" #: input/parse_domain_from_vmx.ml:359 msgid "no displayName key found in VMX file" msgstr "" #: input/OVF.ml:148 msgid "no href in ovf:File (id=%s)" msgstr "" #: common/mldrivers/linux_kernels.ml:194 msgid "no initrd was found in /boot matching %s %s." msgstr "" #: common/mldrivers/linux_kernels.ml:317 msgid "" "no installed kernel packages were found.\n" "\n" "This probably indicates that %s was unable to inspect this guest properly." msgstr "" #: common/mldrivers/linux_kernels.ml:354 msgid "" "no kernels were found in the bootloader configuration.\n" "\n" "This probably indicates that %s was unable to parse the bootloader " "configuration of this guest." msgstr "" #: output/python_script.ml:55 msgid "no python binary called ‘%s’ can be found on the $PATH" msgstr "" #: input/select_input.ml:106 msgid "" "no support for remote libvirt connections to '-ic %s'. The conversion may " "fail when it tries to read the source disks." msgstr "" #: lib/create_ovf.ml:1027 msgid "" "oVirt cannot emulate ‘%s’ sound cards. This sound card will be dropped from " "the output." msgstr "" #: lib/create_ovf.ml:875 lib/create_ovf.ml:512 msgid "oVirt does not support the output format ‘%s’, only raw or qcow2" msgstr "" #: output/output_openstack.ml:120 msgid "openstack: -oo server-id= not present" msgstr "" #: output/output_openstack.ml:338 msgid "" "openstack: failed to attach cinder volume to VM, see earlier error messages" msgstr "" #: output/output_openstack.ml:291 msgid "openstack: failed to create a cinder volume, see earlier error messages" msgstr "" #: output/output_openstack.ml:304 msgid "" "openstack: failed to query cinder volume status, see earlier error messages" msgstr "" #: output/output_openstack.ml:442 msgid "" "openstack: failed to set image properties on cinder volume, see earlier " "error messages" msgstr "" #: output/output_openstack.ml:199 msgid "" "openstack: precheck failed, there may be a problem with authentication, see " "earlier error messages" msgstr "" #: output/output_openstack.ml:311 msgid "" "openstack: unknown volume status \"%s\": expected \"creating\" or " "\"available\"" msgstr "" #: output/output.ml:133 msgid "output mode only supports raw or qcow2 format (format: %s)" msgstr "" #: input/OVF.ml:263 msgid "" "ova disk has an unknown VMware controller type (%d), please report this as a " "bug supplying the *.ovf file extracted from the ova" msgstr "" #: input/OVF.ml:259 msgid "" "ova disk has no parent controller, please report this as a bug supplying the " "*.ovf file extracted from the ova" msgstr "" #: output/output_ovirt_upload.ml:367 msgid "" "ovirt-upload: -of %s: Only output format ‘raw’ or ‘qcow2’ is supported. If " "the input is in a different format then force one of these output formats by " "adding either ‘-of raw’ or ‘-of qcow2’ on the command line." msgstr "" #: common/mlcustomize/password.ml:51 msgid "" "password-crypto: unknown algorithm %s, use \"md5\", \"sha256\", \"sha512\" " "or \"yescrypt\"" msgstr "" #: common/mlcustomize/password.ml:197 msgid "" "password: using insecure md5 password encryption for guest of type %s " "version %d.%d.\n" "If this is incorrect, use --password-crypto option and file a bug." msgstr "" #: common/mlcustomize/customize_run.ml:359 msgid "passwords could not be set for this type of guest" msgstr "" #: lib/qemuNBD.ml:125 msgid "" "qemu-nbd did not start up. See previous debugging messages for problems." msgstr "" #: lib/qemuNBD.ml:127 msgid "" "qemu-nbd did not start up. There may be errors printed by qemu-nbd above.\n" "\n" "If the messages above are not sufficient to diagnose the problem then add " "the ‘virt-v2v -v -x’ options and examine the debugging output carefully." msgstr "" #: lib/qemuNBD.ml:47 msgid "qemu-nbd: unexpected version in --version: %s" msgstr "" #: common/mlcustomize/customize_run.ml:77 msgid "random seed could not be set for this type of guest" msgstr "" #: input/parse_domain_from_vmx.ml:44 msgid "remote vmx ‘%s’ could not be parsed as a URI" msgstr "" #. common/mlcustomize/inject_virtio_win.ml:357 #. common/mlcustomize/inject_virtio_win.ml:352 #: common/mlcustomize/inject_virtio_win.ml:362 msgid "" "root directory ‘/’ is missing from the virtio-win directory or ISO.\n" "\n" "This should not happen and may indicate that virtio-win or virt-v2v is " "broken in some way. Please report this as a bug with a full debug log." msgstr "" #: common/mltools/tools_utils.ml:417 common/options/keys.c:264 #, c-format msgid "selector '%s': invalid TYPE" msgstr "" #: common/mltools/tools_utils.ml:409 common/options/keys.c:254 #, c-format msgid "selector '%s': missing FILENAME, or too many fields" msgstr "" #: common/mltools/tools_utils.ml:399 common/options/keys.c:232 #, c-format msgid "selector '%s': missing ID" msgstr "" #: common/mltools/tools_utils.ml:404 common/options/keys.c:245 #, c-format msgid "selector '%s': missing KEY_STRING, or too many fields" msgstr "" #: common/mltools/tools_utils.ml:401 common/options/keys.c:239 #, c-format msgid "selector '%s': missing TYPE" msgstr "" #: common/mltools/tools_utils.ml:413 common/options/keys.c:262 #, c-format msgid "selector '%s': too many fields" msgstr "" #: lib/utils.ml:35 #, fuzzy #| msgid "%s killed by signal %d (%s)" msgid "signalled by signal %d" msgstr "%s a été tué par le signal %d (%s) " #: common/mlcustomize/guest_packages.ml:40 msgid "" "sorry, ‘%s’ with the ‘%s’ package manager has not been implemented yet.\n" "\n" "You can work around this by using one of the ‘--run*’ or ‘--firstboot*’ " "options instead (described in the virt-customize(1) manual)." msgstr "" #: common/mlcustomize/ssh_key.ml:57 msgid "ssh-inject: $HOME environment variable is not set" msgstr "" #: common/mlcustomize/ssh_key.ml:93 msgid "ssh-inject: key is an empty string" msgstr "" #: common/mlcustomize/ssh_key.ml:66 msgid "ssh-inject: no public key file found in %s" msgstr "" #: common/mlcustomize/ssh_key.ml:83 msgid "ssh-inject: public key file (%s) is empty" msgstr "" #: common/mlcustomize/ssh_key.ml:112 msgid "ssh-inject: the user %s does not exist on the guest" msgstr "" #. common/mltools/tools_utils.ml:461 #: lib/utils.ml:36 common/mltools/tools_utils.ml:542 #, fuzzy #| msgid "%s stopped by signal %d (%s)" msgid "stopped by signal %d" msgstr "%s a été arrêté par le signal %d (%s)" #: output/changeuid.ml:58 #, fuzzy #| msgid "%s exited with error status %d" msgid "subprocess exited with non-zero error code %d" msgstr "%s s'est terminé avec l'état d'erreur %d" #: output/changeuid.ml:60 #, fuzzy #| msgid "%s stopped by signal %d (%s)" msgid "subprocess signalled or stopped by signal %d" msgstr "%s a été arrêté par le signal %d (%s)" #: lib/utils.ml:33 msgid "success" msgstr "" #: output/create_libvirt_xml.ml:297 msgid "" "target hypervisor does not support floppy devices, but floppy devices were " "found in the source guest" msgstr "" #: output/output_ovirt_upload.ml:156 msgid "" "the Python module ‘ovirtsdk4’ could not be loaded, is it installed? See " "previous messages for problems." msgstr "" #: output/output_ovirt_upload.ml:453 msgid "the cluster ‘%s’ does not support the architecture %s but %s" msgstr "" #: common/mlcustomize/customize_run.ml:59 msgid "" "the command may have failed because the network is disabled. Try either " "removing ‘--no-network’ or adding ‘--network’ on the command line." msgstr "" #: common/mltools/JSON_parser.ml:84 msgid "the key ‘%s’ was not found in a list of objects" msgstr "" #: output/output_ovirt_upload.ml:288 msgid "" "the number of ‘-oo ovirt-disk-uuid’ parameters passed on the command line " "has to match the number of guest disk images (for this guest: %d)" msgstr "" #: output/output_vdsm.ml:133 msgid "" "the number of ‘-oo vdsm-image-uuid’ and ‘-oo vdsm-vol-uuid’ parameters " "passed on the command line has to match the number of guest disk images (for " "this guest: %d)" msgstr "" #: output/output_libvirt.ml:239 msgid "the target hypervisor does not support a %s KVM guest" msgstr "" #: common/mltools/JSON_parser.ml:78 msgid "the value for key ‘%s’ is not a string as expected" msgstr "" #: common/mltools/JSON_parser.ml:50 msgid "the value for the key ‘%s’ is not a bool" msgstr "" #: common/mltools/JSON_parser.ml:45 msgid "the value for the key ‘%s’ is not a string" msgstr "" #: common/mltools/JSON_parser.ml:70 msgid "the value for the key ‘%s’ is not an integer" msgstr "" #: common/mltools/JSON_parser.ml:55 msgid "the value for the key ‘%s’ is not an object" msgstr "" #: common/mltools/JSON_parser.ml:59 msgid "the value is not an object" msgstr "" #: common/mltools/JSON_parser.ml:35 msgid "the value of the key ‘%s’ is not an object" msgstr "" #: lib/create_ovf.ml:519 msgid "" "the virtual size of the input disk %d is not an exact multiple of 512 " "bytes. The virtual size is: %Ld.\n" "\n" "This probably means something unexpected is going on, so please file a bug " "about this issue." msgstr "" #: output/output_openstack.ml:144 msgid "" "the ‘%s’ program is not available. It is needed to communicate with " "OpenStack." msgstr "" #: output/output_ovirt.ml:265 msgid "" "there are multiple UUIDs in the %s (%s). This is unexpected, and may be a " "bug in virt-v2v or OVirt." msgstr "" #: output/output_ovirt.ml:262 msgid "there are no UUIDs in the %s (%s). Is it really an OVirt %s?" msgstr "" #: common/mlcustomize/inject_virtio_win.ml:153 msgid "" "there are no virtio drivers available for this version of Windows (%d.%d %s " "%s %s). virt-v2v looks for drivers in %s\n" "\n" "The guest will be configured to use slower emulated devices." msgstr "" #: common/mlcustomize/inject_virtio_win.ml:175 msgid "" "there is no virtio block device driver for this version of Windows (%d.%d " "%s). virt-v2v looks for this driver in %s\n" "\n" "The guest will be configured to use a slower emulated device." msgstr "" #: common/mlcustomize/inject_virtio_win.ml:206 msgid "" "there is no virtio network driver for this version of Windows (%d.%d %s). " "virt-v2v looks for this driver in %s\n" "\n" "The guest will be configured to use a slower emulated device." msgstr "" #: input/parse_libvirt_xml.ml:545 msgid "this guest has a direct network interface which will be ignored" msgid_plural "this guest has direct network interfaces which will be ignored" msgstr[0] "" msgstr[1] "" #: input/parse_libvirt_xml.ml:527 msgid "this guest has a passthrough host device which will be ignored" msgid_plural "this guest has passthrough host devices which will be ignored" msgstr[0] "" msgstr[1] "" #: input/parse_libvirt_xml.ml:248 msgid "this guest has no non-removable disks" msgstr "" #: output/output.ml:65 msgid "this output module doesn't support copying more than %d disks" msgstr "" #: common/mlcustomize/timezone.ml:35 msgid "timezone '%s' does not exist, use a location like 'Europe/London'" msgstr "" #: common/mlcustomize/customize_run.ml:304 msgid "timezone could not be set for this type of guest" msgstr "" #: input/OVA.ml:318 msgid "unable to parse line from manifest file: %S" msgstr "" #: common/mltools/urandom.ml:37 msgid "unexpected end of file while reading /dev/urandom" msgstr "" #: input/input_libvirt.ml:196 msgid "unexpected output from the %s command" msgstr "" #: common/mltools/checksums.ml:58 msgid "unhandled checksum type ‘%s’" msgstr "" #: lib/types.ml:524 msgid "unknown --root option: %s" msgstr "" #: input/select_input.ml:51 msgid "unknown -i option: %s" msgstr "" #: output/select_output.ml:74 msgid "unknown -o option: %s" msgstr "" #: v2v/v2v.ml:164 msgid "unknown -oa option: %s" msgstr "" #: input/input_libvirt.ml:189 msgid "unknown method='%s'" msgstr "" #: input/OVF.ml:103 msgid "unknown Config:firmware value %s (expected \"bios\" or \"efi\")" msgstr "" #: lib/create_ovf.ml:446 lib/create_ovf.ml:247 msgid "unknown Windows 10 variant: %s (%s)" msgstr "" #: v2v/v2v.ml:319 in-place/in_place.ml:256 msgid "unknown block driver ‘--block-driver %s’" msgstr "" #: input/parse_domain_from_vmx.ml:415 msgid "unknown firmware value '%s', assuming BIOS" msgstr "" #: lib/create_ovf.ml:454 lib/create_ovf.ml:255 msgid "unknown guest operating system: %s %s %d.%d %s (%s)" msgstr "" #: v2v/v2v.ml:329 open/open.ml:132 inspector/inspector.ml:238 msgid "unknown input transport ‘-it %s’" msgstr "" #: input/parse_domain_from_vmx.ml:428 msgid "unknown sound device '%s' ignored" msgstr "" #: input/parse_libvirt_xml.ml:215 msgid "unknown sound model %s ignored" msgstr "" #: input/OVF.ml:156 msgid "unsupported compression in OVF: %s" msgstr "" #: input/input_vcenter_https.ml:123 msgid "" "vcenter: was not found in the XML. You need to " "upgrade to libvirt ≥ 1.2.20." msgstr "" #: input/vCenter.ml:79 msgid "vcenter: URL not found: %s" msgstr "" #: input/vCenter.ml:70 msgid "vcenter: incorrect username or password" msgstr "" #: input/vCenter.ml:72 msgid "" "vcenter: incorrect username or password. You might need to specify the " "username in the URI like this: [vpx|esx|..]://USERNAME@[etc]" msgstr "" #: input/vCenter.ml:84 msgid "vcenter: invalid response from server: %s" msgstr "" #: input/vCenter.ml:194 msgid "vcenter: no status code in output of ‘curl’ command." msgstr "" #: output/output_vdsm.ml:148 msgid "vdsm: invalid -os parameter does not contain a valid UUID: %s" msgstr "" #: output/output_openstack.ml:56 msgid "" "virt-v2v -oo server-id= [os-*=...]\n" "\n" "Specify the name or UUID of the conversion appliance using\n" "\n" " virt-v2v ... -o openstack -oo server-id=\n" "\n" "When virt-v2v runs it will attach the Cinder volumes to the\n" "conversion appliance, so this name or UUID must be the name\n" "of the virtual machine on OpenStack where virt-v2v is running.\n" "\n" "In addition, all usual OpenStack “os-*” parameters or “OS_*”\n" "environment variables can be used.\n" "\n" "Openstack “--os-*” parameters must be written as “virt-v2v -oo os-*”.\n" "\n" "For example:\n" "\n" " virt-v2v -oo os-username=\n" "\n" " equivalent to openstack: --os-username=\n" " or the environment variable: OS_USERNAME=\n" "\n" " virt-v2v -oo os-project-name=\n" "\n" " equivalent to openstack: --os-project-name=\n" " or the environment variable: OS_PROJECT_NAME=\n" "\n" "The os-* parameters and environment variables are optional.\n" msgstr "" #: input/parse_libvirt_xml.ml:189 msgid "" "virt-v2v does not support local displays, so in the " "input libvirt XML was ignored" msgstr "" #: input/select_input.ml:83 msgid "virt-v2v-in-place does not support remote libvirt URIs" msgstr "" #: input/parse_domain_from_vmx.ml:50 msgid "vmx URI path component looks incorrect" msgstr "" #: input/parse_domain_from_vmx.ml:48 msgid "vmx URI remote server name omitted" msgstr "" #: input/parse_domain_from_vmx.ml:46 msgid "vmx URI start with ‘ssh://...’" msgstr "" #: input/VMX.ml:313 msgid "vmx parser: cannot parse this line, ignoring: %s" msgstr "" #: input/VMX.ml:346 msgid "vmx parser: duplicate key '%s' ignored" msgstr "" #: output/output_openstack.ml:299 msgid "wait for cinder volume status to change to \"available\"" msgstr "" #: output/output_openstack.ml:360 msgid "waiting for cinder volume %s to attach to the conversion appliance" msgstr "" #: open/open.ml:136 msgid "you must supply the --run parameter" msgstr "" #: input/input_xen_ssh.ml:87 input/input_vddk.ml:189 msgid "‘-ic %s’ URL does not contain a host name field" msgstr "" #: input/input_vddk.ml:273 msgid "‘-io vddk-file=’ must be used exactly %d times" msgstr "" #: input/input_vddk.ml:297 msgid "" "‘-io vddk-libdir=%s’ does not point to a directory. See the virt-v2v-input-" "vmware(1) manual." msgstr "" #: output/output.ml:85 msgid "" "‘-oo compressed’ is only allowed when the output format is a local qcow2-" "format file, i.e. ‘-of qcow2’" msgstr "" #: input/input_vddk.ml:232 msgid "" "‘openssl’ command not found: automatically detecting thumbprint is not " "possible, so you must use ‘-io vddk-thumbprint=XX:XX...’" msgstr "" #: common/mltools/getopt-c.c:68 #, c-format msgid "Try ‘%s --help’ or consult %s(1) for more information.\n" msgstr "" #: common/mltools/getopt-c.c:187 #, c-format msgid "%s: ‘%s’ is not a numeric value.\n" msgstr "" #: common/mltools/getopt-c.c:193 #, c-format msgid "%s: %s: integer out of range\n" msgstr "%s : %s : nombre entier hors plage\n" #: common/mltools/getopt-c.c:383 #, c-format msgid "%s: ‘%s’ is not allowed for -%c; allowed values are:\n" msgstr "" #: common/mltools/getopt-c.c:386 #, c-format msgid "%s: ‘%s’ is not allowed for %s%s; allowed values are:\n" msgstr "" #: common/mltools/getopt-c.c:421 #, c-format msgid "Extra parameter on the command line: ‘%s’.\n" msgstr "" #: common/options/config.c:72 #, c-format msgid "%s: line %d: error parsing configuration file: %s" msgstr "" #: common/options/decrypt.c:52 #, c-format msgid "string size overflow" msgstr "" #: common/options/decrypt.c:170 #, c-format msgid "" "'clevis_luks_unlock', needed for decrypting %s, is unavailable in this " "libguestfs version" msgstr "" #: common/options/decrypt.c:184 #, c-format msgid "" "could not find key to open LUKS encrypted %s.\n" "\n" "Try using --key on the command line.\n" "\n" "Original error: %s (%d)" msgstr "" #: common/options/inspect.c:78 #, c-format msgid "" "%s: no operating system was found on this disk\n" "\n" "If using guestfish ‘-i’ option, remove this option and instead\n" "use the commands ‘run’ followed by ‘list-filesystems’.\n" "You can then mount filesystems you want by hand using the\n" "‘mount’ or ‘mount-ro’ command.\n" "\n" "If using guestmount ‘-i’, remove this option and choose the\n" "filesystem(s) you want to see by manually adding ‘-m’ option(s).\n" "Use ‘virt-filesystems’ to see what filesystems are available.\n" "\n" "If using other virt tools, this disk image won’t work\n" "with these tools. Use the guestfish equivalent commands\n" "(see the virt tool manual page).\n" msgstr "" #: common/options/inspect.c:99 #, c-format msgid "" "%s: multi-boot operating systems are not supported\n" "\n" "If using guestfish ‘-i’ option, remove this option and instead\n" "use the commands ‘run’ followed by ‘list-filesystems’.\n" "You can then mount filesystems you want by hand using the\n" "‘mount’ or ‘mount-ro’ command.\n" "\n" "If using guestmount ‘-i’, remove this option and choose the\n" "filesystem(s) you want to see by manually adding ‘-m’ option(s).\n" "Use ‘virt-filesystems’ to see what filesystems are available.\n" "\n" "If using other virt tools, multi-boot operating systems won’t work\n" "with these tools. Use the guestfish equivalent commands\n" "(see the virt tool manual page).\n" msgstr "" #: common/options/inspect.c:161 #, c-format msgid "%s: some filesystems could not be mounted (ignored)\n" msgstr "" "%s : certains systèmes de fichiers n'ont pas pu être montés (ignorés)\n" #: common/options/inspect.c:178 #, c-format msgid "Operating system: %s\n" msgstr "Système d'exploitation : %s\n" #: common/options/inspect.c:196 #, c-format msgid "%s mounted on %s\n" msgstr "%s monté sur %s\n" #: common/options/keys.c:63 #, c-format msgid "Enter key or passphrase (\"%s\"): " msgstr "Saisir une phrase de passe (« %s ») : " #: common/options/keys.c:146 #, c-format msgid "size_t overflow" msgstr "" #: common/options/keys.c:193 #, c-format msgid "could not read key from user" msgstr "Impossible de lire la clé de l'utilisateur" #: common/options/options.c:283 #, c-format msgid "%s: ‘%s’ could not be mounted.\n" msgstr "" #: common/options/options.c:287 #, c-format msgid "" "%s: Check mount(8) man page to ensure options ‘%s’\n" "%s: are supported by the filesystem that is being mounted.\n" msgstr "" #: common/options/options.c:291 #, c-format msgid "%s: Did you mean to mount one of these filesystems?\n" msgstr "%s : Vouliez-vous monter l'un de ces systèmes de fichiers ?\n" #: common/options/options.c:304 #, c-format msgid "cannot determine the subvolume for %s: %s (%d)" msgstr "" #: common/options/uri.c:119 #, c-format msgid "%s: --add: could not parse URI ‘%s’\n" msgstr "" #: common/options/uri.c:130 #, c-format msgid "%s: %s: scheme of URI is NULL or empty\n" msgstr "" #: common/options/uri.c:138 #, c-format msgid "%s: %s: cannot have both a server name and a socket query parameter\n" msgstr "" #: common/utils/utils.c:107 #, c-format msgid "%s exited successfully" msgstr "%s s'est terminé avec succès" #: common/utils/utils.c:110 #, c-format msgid "%s exited with error status %d" msgstr "%s s'est terminé avec l'état d'erreur %d" #: common/utils/utils.c:114 #, c-format msgid "%s killed by signal %d (%s)" msgstr "%s a été tué par le signal %d (%s) " #: common/utils/utils.c:118 #, c-format msgid "%s stopped by signal %d (%s)" msgstr "%s a été arrêté par le signal %d (%s)" #: common/utils/utils.c:122 #, c-format msgid "%s exited for an unknown reason (status %d)" msgstr "%s s'est terminé pour une raison inconnue (état %d)" ================================================ FILE: po/gu.po ================================================ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR Red Hat Inc. # This file is distributed under the same license as the PACKAGE package. # # Translators: # rjones , 2011 # sweta , 2011 msgid "" msgstr "" "Project-Id-Version: libguestfs 1.39.12\n" "Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?" "component=libguestfs&product=Virtualization+Tools\n" "POT-Creation-Date: 2025-02-16 17:05+0000\n" "PO-Revision-Date: 2015-02-21 10:49+0000\n" "Last-Translator: Copied by Zanata \n" "Language-Team: Gujarati (http://www.transifex.com/projects/p/libguestfs/" "language/gu/)\n" "Language: gu\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Zanata 4.6.2\n" #: input/input_ova.ml:135 common/mltools/tools_utils.ml:235 msgid "%s" msgstr "" #: common/mltools/getopt.ml:73 msgid "" "%s\n" "Options:\n" msgstr "" #: common/mltools/tools_utils.ml:695 common/mlcustomize/customize_run.ml:390 msgid "%s (ignored)" msgstr "" #: common/mltools/checksums.ml:71 msgid "%s did not return any output" msgstr "" #: common/mlcustomize/customize_run.ml:183 msgid "%s does not exist in the guest" msgstr "" #: output/output_ovirt.ml:275 msgid "" "%s does not exist or is not a directory.\n" "\n" "Most likely cause: Either the %s (%s) has not been attached to any Data " "Center, or the path %s is not an %s at all.\n" "\n" "You have to attach the %s to a Data Center using the oVirt user interface " "first.\n" "\n" "If you don’t know what the %s mount point should be then you can also find " "this out through the oVirt user interface." msgstr "" #: common/mlcustomize/customize_run.ml:113 msgid "%s ignored for non-Windows guest" msgstr "" #: common/mlcustomize/customize_run.ml:186 msgid "%s is not a regular file in the guest" msgstr "" #. open/open.ml:39 #. inspector/inspector.ml:153 #. inspector/inspector.ml:40 #. in-place/in_place.ml:164 #. in-place/in_place.ml:45 #: v2v/v2v.ml:194 v2v/v2v.ml:183 v2v/v2v.ml:159 v2v/v2v.ml:44 open/open.ml:68 msgid "%s option used more than once on the command line" msgstr "" #: common/mltools/tools_utils.ml:231 common/mltools/tools_utils.ml:202 msgid "%s: %s" msgstr "" #: common/mltools/tools_utils.ml:233 msgid "%s: %s: %s" msgstr "" #: common/mltools/on_exit.ml:77 msgid "" "%s: Exiting on signal %s\n" "%!" msgstr "" #: common/mlcustomize/inject_virtio_win.ml:411 msgid "%s: cannot open virtio-win ISO file: %s" msgstr "" #: common/mlcustomize/customize_run.ml:64 msgid "%s: command exited with an error" msgstr "" #: v2v/v2v.ml:277 msgid "" "%s: convert a guest to use KVM\n" "\n" "virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi -os imported " "esx_guest\n" "\n" "virt-v2v -i libvirtxml guest-domain.xml -o local -os /var/tmp\n" "\n" "virt-v2v -i disk disk.img -o local -os /var/tmp\n" "\n" "There is a companion front-end called \"virt-p2v\" which comes as an\n" "ISO or CD image that can be booted on physical machines.\n" "\n" "A short summary of the options is given below. For detailed help please\n" "read the man page virt-v2v(1).\n" msgstr "" #: in-place/in_place.ml:217 msgid "" "%s: convert a guest to use KVM in-place\n" "\n" "Note this program modifies the guest in-place with no backup.\n" "Normally you should use virt-v2v.\n" "\n" "virt-v2v-in-place -i libvirtxml guest-domain.xml\n" "\n" "virt-v2v-in-place -i disk disk.img\n" "\n" "A short summary of the options is given below. For detailed help please\n" "read the man page virt-v2v-in-place(1).\n" msgstr "" #: input/input_vddk.ml:207 msgid "%s: enter password for ‘%s’: " msgstr "" #: common/mltools/tools_utils.ml:172 msgid "%s: error: %s" msgstr "" #: inspector/inspector.ml:198 msgid "" "%s: estimate disk space needed before virt-v2v conversion\n" "\n" "virt-v2v-inspector -i disk disk.img [-O output.xml]\n" "\n" "A short summary of the options is given below. For detailed help please\n" "read the man page virt-v2v-inspector(1).\n" msgstr "" #: open/open.ml:94 msgid "" "%s: open the virt-v2v input and run a program on it\n" "\n" "virt-v2v-open -i disk disk.img --run 'virt-inspector --format=raw @@'\n" "\n" "A short summary of the options is given below. For detailed help please\n" "read the man page virt-v2v-open(1).\n" msgstr "" #: common/mltools/tools_utils.ml:726 msgid "%s: operation timed out" msgstr "" #: input/OVA.ml:127 input/OVA.ml:121 msgid "" "%s: unsupported file format\n" "\n" "Formats which we currently understand for '-i ova' are: tar (uncompressed, " "compress with gzip or xz), zip" msgstr "" #: common/mltools/tools_utils.ml:191 msgid "%s: warning: %s" msgstr "" #. common/mlcustomize/customize_cmdline.ml:258 #: common/mlcustomize/customize_cmdline.ml:367 msgid "'CMD+ARGS'" msgstr "" #: common/mlcustomize/customize_run.ml:133 msgid "" "--append-line: line must not contain newline characters. Use the --append-" "line option multiple times to add several lines." msgstr "" #: common/mlcustomize/customize_run.ml:152 msgid "--chown: could not parse numeric UID:GID from %s:%s" msgstr "" #: common/mlcustomize/customize_run.ml:216 msgid "" "--inject-blnsvr: blnsvr.exe not found in virtio-win source that you specified" msgstr "" #: common/mlcustomize/customize_run.ml:225 msgid "" "--inject-qemu-ga: QEMU Guest Agent MSI not found in virtio-win source that " "you specified" msgstr "" #: common/mlcustomize/customize_run.ml:241 msgid "" "--inject-virtio-win: virtio drivers were not found for this Windows version " "in the virtio-win source that you specified" msgstr "" #: v2v/v2v.ml:146 inspector/inspector.ml:136 in-place/in_place.ml:143 msgid "--mac ip prefix length field is out of range" msgstr "" #: v2v/v2v.ml:340 msgid "--parallel parameter must be >= 1" msgstr "" #: input/input_disk.ml:42 msgid "-i disk: expecting a disk image (filename) on the command line" msgstr "" #: input/input_xen_ssh.ml:65 msgid "-i libvirt: expecting -ic parameter for Xen over SSH connection" msgstr "" #: input/input_vddk.ml:142 input/input_vcenter_https.ml:88 msgid "-i libvirt: expecting -ic parameter for vcenter connection" msgstr "" #: input/input_vcenter_https.ml:101 msgid "-i libvirt: expecting -ic parameter to contain vcenter server name" msgstr "" #: input/input_vcenter_https.ml:78 msgid "-i libvirt: expecting -ip passwordfile parameter for vCenter connection" msgstr "" #. input/input_vcenter_https.ml:70 #. input/input_libvirt.ml:41 #: input/input_xen_ssh.ml:57 input/input_vddk.ml:132 msgid "-i libvirt: expecting a libvirt guest name on the command line" msgstr "" #: input/input_libvirt.ml:59 msgid "-i libvirtxml: expecting a libvirt XML filename on the command line" msgstr "" #: input/input_ova.ml:243 msgid "-i ova: OVF references file ‘%s’ which was not found in the OVA archive" msgstr "" #: input/input_ova.ml:78 msgid "" "-i ova: corrupt OVA: checksum of disk %s does not match manifest (actual = " "%s, expected = %s)" msgstr "" #: input/input_ova.ml:52 msgid "-i ova: expecting an OVA file name on the command line" msgstr "" #: input/OVA.ml:361 msgid "" "-i ova: invalid OVA file: path ‘%s’ references a file outside the archive" msgstr "" #: input/input_vmx.ml:57 msgid "-i vmx: cannot use -it vddk in this input mode" msgstr "" #: input/input_vmx.ml:60 msgid "-i vmx: expecting a VMX file or ssh:// URI" msgstr "" #: input/vCenter.ml:159 msgid "" "-ip PASSWORD_FILE parameter ignored because 'user@' was not given in the URL" msgstr "" #: input/input_vddk.ml:119 msgid "-it vddk: ‘-io %s’ is not a valid input option" msgstr "" #: output/output.ml:54 msgid "-o %s: %s option cannot be used in this output mode" msgstr "" #: output/output_disk.ml:66 msgid "-o disk: output directory was not specified, use '-os /dir'" msgstr "" #: output/output_libvirt.ml:59 output/output_disk.ml:56 msgid "-o disk: unknown output option ‘-oo %s’" msgstr "" #: output/output_kubevirt.ml:81 msgid "-o kubevirt: output directory was not specified, use '-os /dir'" msgstr "" #: output/output_kubevirt.ml:91 msgid "" "-o kubevirt: the guest name must contain only lowercase alphanumeric " "characters, '-' or '.', and must start and end with an alphanumeric " "character. Rerun virt-v2v with the '-on name' option to rename it." msgstr "" #: output/output_kubevirt.ml:71 msgid "-o kubevirt: unknown output option ‘-oo %s’" msgstr "" #: output/output_libvirt.ml:120 msgid "" "-o libvirt: output pool ‘%s’ does not have /pool/target/path element. See " "virt-v2v-output-local(1)" msgstr "" #: output/output_libvirt.ml:124 msgid "" "-o libvirt: output pool ‘%s’ has type='dir' but the /pool/target/path " "element is not a local directory. See virt-v2v-output-local(1)" msgstr "" #: output/output_libvirt.ml:116 msgid "" "-o libvirt: output pool ‘%s’ is not a directory (type='dir'). See virt-v2v-" "output-local(1)" msgstr "" #: output/output_openstack.ml:88 msgid "-o openstack mode only supports -oa sparse -of raw" msgstr "" #: output/output_openstack.ml:115 msgid "-o openstack: unknown output option ‘-oo %s’" msgstr "" #: output/output_ovirt_upload.ml:97 msgid "-o ovirt-upload: -oo ovirt-cafile set more than once" msgstr "" #: output/output_ovirt_upload.ml:101 msgid "-o ovirt-upload: -oo ovirt-cluster set more than once" msgstr "" #: output/output_ovirt_upload.ml:112 msgid "-o ovirt-upload: invalid UUID for -oo ovirt-disk-uuid" msgstr "" #: output/output_ovirt_upload.ml:76 msgid "" "-o ovirt-upload: output password file was not specified, use ‘-op’ to point " "to a file which contains the password used to connect to the oVirt server" msgstr "" #: output/output_ovirt_upload.ml:83 msgid "-o ovirt-upload: output storage was not specified, use ‘-os’" msgstr "" #: output/output_ovirt_upload.ml:116 msgid "-o ovirt-upload: unknown output option ‘-oo %s’" msgstr "" #: output/output_ovirt_upload.ml:68 msgid "" "-o ovirt-upload: use ‘-oc’ to point to the oVirt server REST API URL, which " "is usually https://servername/ovirt-engine/api" msgstr "" #: output/output_ovirt.ml:51 msgid "-o ovirt: -os option was not specified" msgstr "" #: output/output_qemu.ml:72 msgid "-o qemu: output directory was not specified, use '-os /dir'" msgstr "" #: output/output_qemu.ml:63 msgid "-o qemu: unknown output option ‘-oo %s’" msgstr "" #: output/output_vdsm.ml:102 msgid "-o vdsm: -oo vdsm-image-uuid was not specified" msgstr "" #: output/output_vdsm.ml:81 msgid "-o vdsm: -oo vdsm-ovf-output set more than once" msgstr "" #: output/output_vdsm.ml:77 msgid "-o vdsm: -oo vdsm-vm-uuid set more than once" msgstr "" #: output/output_vdsm.ml:110 msgid "-o vdsm: -os option was not specified" msgstr "" #: output/output_vdsm.ml:97 msgid "-o vdsm: either -oo vdsm-vol-uuid or -oo vdsm-vm-uuid was not specified" msgstr "" #: output/output_vdsm.ml:90 msgid "-o vdsm: unknown output option ‘-oo %s’" msgstr "" #: output/output_vdsm.ml:74 msgid "-o vdsm: unknown vdsm-compat level ‘%s’" msgstr "" #. output/output_kubevirt.ml:84 #. output/output_disk.ml:68 #: output/output_vdsm.ml:112 output/output_qemu.ml:74 msgid "-os %s: output directory does not exist or is not a directory" msgstr "" #: input/parse_libvirt_xml.ml:279 msgid " missing 'method' attribute, ignoring" msgstr "" #: input/parse_libvirt_xml.ml:291 msgid " unknown fail='%s' attribute, ignoring" msgstr "" #: input/parse_libvirt_xml.ml:370 input/parse_libvirt_xml.ml:317 msgid " was ignored" msgstr "" #: input/parse_libvirt_xml.ml:338 msgid " with was ignored" msgstr "" #: input/parse_libvirt_xml.ml:365 msgid " with was ignored" msgstr "" #: input/parse_libvirt_xml.ml:299 msgid " element with no type attribute ignored" msgstr "" #: input/parse_libvirt_xml.ml:167 msgid " in the input libvirt XML was ignored" msgstr "" #: input/parse_libvirt_xml.ml:414 msgid "" " was ignored because the device name could not be recognized" msgstr "" #: input/input_vddk.ml:176 msgid "" " was not found in the output of ‘virsh dumpxml \"%s\"’. The " "most likely reason is that libvirt is too old, try upgrading libvirt to ≥ " "3.7." msgstr "" #: common/mlcustomize/customize_cmdline.ml:305 msgid "Add package(s) to install" msgstr "" #: common/mlcustomize/customize_cmdline.ml:270 msgid "Add package(s) to install at first boot" msgstr "" #: common/mlcustomize/customize_cmdline.ml:175 msgid "Append line(s) to the file" msgstr "" #: common/mlcustomize/customize_run.ml:137 msgid "Appending line to %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:197 msgid "Change the owner user and group ID of a file or directory" msgstr "" #: common/mlcustomize/customize_cmdline.ml:186 msgid "Change the permissions of a file" msgstr "" #: common/mlcustomize/customize_run.ml:155 msgid "Changing owner of %s to %d:%d" msgstr "" #: common/mlcustomize/customize_run.ml:141 msgid "Changing permissions of %s to %s" msgstr "" #: input/input_libvirt.ml:174 input/input_libvirt.ml:157 msgid "Checking %s checksum of disk %d/%d" msgstr "" #: common/mlcustomize/customize_cmdline.ml:488 msgid "Compatibility option doing nothing" msgstr "" #: common/mlcustomize/customize_cmdline.ml:219 msgid "Copy files in disk image" msgstr "" #: common/mlcustomize/customize_cmdline.ml:397 msgid "Copy local files or directories from a tarball into image" msgstr "" #: common/mlcustomize/customize_cmdline.ml:230 msgid "Copy local files or directories into image" msgstr "" #: common/mlcustomize/customize_run.ml:168 msgid "Copying (in image): %s to %s" msgstr "" #: v2v/v2v.ml:518 msgid "Copying disk %d/%d" msgstr "" #: common/mlcustomize/customize_run.ml:172 msgid "Copying: %s to %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:322 msgid "Create a directory" msgstr "" #: common/mlcustomize/customize_cmdline.ml:316 msgid "Create symbolic links" msgstr "" #: v2v/v2v.ml:567 msgid "Creating output metadata" msgstr "" #: common/mlcustomize/customize_cmdline.ml:321 msgid "DIR" msgstr "" #: common/mlcustomize/customize_cmdline.ml:236 msgid "Delete a file or directory" msgstr "" #: common/mlcustomize/customize_run.ml:176 msgid "Deleting: %s" msgstr "" #: common/mltools/getopt.ml:225 msgid "Display brief help" msgstr "" #: common/mltools/tools_utils.ml:385 msgid "Display version and exit" msgstr "" #: common/mlcustomize/customize_cmdline.ml:482 msgid "Do not relabel files with correct SELinux labels" msgstr "" #: v2v/v2v.ml:248 inspector/inspector.ml:177 in-place/in_place.ml:190 msgid "Don't trim filesystems before conversion" msgstr "" #: common/mltools/tools_utils.ml:389 msgid "Don’t print progress messages" msgstr "" #: common/mltools/tools_utils.ml:420 msgid "Don’t turn off echo for passphrases" msgstr "" #: common/mlcustomize/customize_cmdline.ml:247 msgid "Edit file using Perl expression" msgstr "" #: common/mlcustomize/customize_run.ml:180 msgid "Editing: %s" msgstr "" #: common/mltools/tools_utils.ml:386 msgid "Enable libguestfs debugging messages" msgstr "" #: common/mltools/tools_utils.ml:387 msgid "Enable tracing of libguestfs calls" msgstr "" #: output/output_ovirt.ml:77 msgid "Export Storage Domain" msgstr "" #: open/open.ml:88 msgid "External command to run" msgstr "" #. common/mlcustomize/customize_cmdline.ml:408 #. common/mlcustomize/customize_cmdline.ml:373 #: common/mlcustomize/customize_cmdline.ml:414 msgid "FILE" msgstr "" #: common/mlcustomize/customize_cmdline.ml:455 msgid "FILE:CONTENT" msgstr "" #: common/mlcustomize/customize_cmdline.ml:444 msgid "FILE:DEST" msgstr "" #: common/mlcustomize/customize_cmdline.ml:242 msgid "FILE:EXPR" msgstr "" #: common/mlcustomize/customize_cmdline.ml:170 msgid "FILE:LINE" msgstr "" #: common/mlcustomize/customize_cmdline.ml:203 msgid "FILENAME" msgstr "" #. in-place/in_place.ml:378 #: v2v/v2v.ml:571 open/open.ml:220 inspector/inspector.ml:334 msgid "Finishing off" msgstr "" #: common/mlcustomize/customize_cmdline.ml:275 msgid "HOSTNAME" msgstr "" #: v2v/v2v.ml:254 inspector/inspector.ml:183 in-place/in_place.ml:194 msgid "How to choose root filesystem" msgstr "" #: common/mltools/tools_utils.ml:177 msgid "" "If reporting bugs, run %s with debugging enabled and include the complete " "output:\n" "\n" " %s -v -x [...]" msgstr "" #: common/mlcustomize/customize_cmdline.ml:386 msgid "Inject a public key into the guest" msgstr "" #: common/mlcustomize/customize_cmdline.ml:282 msgid "Inject the Balloon Server into a Windows guest" msgstr "" #: common/mlcustomize/customize_cmdline.ml:288 msgid "Inject the QEMU Guest Agent into a Windows guest" msgstr "" #: common/mlcustomize/customize_cmdline.ml:294 msgid "Inject virtio-win drivers into a Windows guest" msgstr "" #. in-place/in_place.ml:176 #: v2v/v2v.ml:216 open/open.ml:80 inspector/inspector.ml:165 msgid "Input format" msgstr "" #: input/input_vddk.ml:77 msgid "" "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" "\n" "Refer to nbdkit-vddk-plugin(1) and the VDDK documentation for further\n" "information on these settings.\n" msgstr "" #: v2v/v2v.ml:222 open/open.ml:86 inspector/inspector.ml:171 msgid "Input transport" msgstr "" #: common/mlcustomize/customize_run.ml:191 msgid "Installing firstboot command: %s" msgstr "" #: common/mlcustomize/customize_run.ml:195 msgid "Installing firstboot packages: %s" msgstr "" #: common/mlcustomize/customize_run.ml:202 msgid "Installing firstboot script: %s" msgstr "" #: common/mlcustomize/customize_run.ml:248 msgid "Installing packages: %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:225 msgid "LOCALPATH:REMOTEDIR" msgstr "" #. in-place/in_place.ml:174 #: v2v/v2v.ml:214 open/open.ml:78 inspector/inspector.ml:163 msgid "Libvirt URI" msgstr "" #: common/mlcustomize/customize_run.ml:255 msgid "Linking: %s -> %s" msgstr "" #. common/mlcustomize/customize_cmdline.ml:287 #. common/mlcustomize/customize_cmdline.ml:281 #: common/mlcustomize/customize_cmdline.ml:293 msgid "METHOD" msgstr "" #: common/mltools/tools_utils.ml:426 msgid "Make output machine readable" msgstr "" #: common/mlcustomize/customize_run.ml:260 msgid "Making directory: %s" msgstr "" #: v2v/v2v.ml:226 inspector/inspector.ml:173 in-place/in_place.ml:182 msgid "Map NIC to network or bridge or assign static IP" msgstr "" #: v2v/v2v.ml:210 inspector/inspector.ml:159 in-place/in_place.ml:170 msgid "Map bridge ‘in’ to ‘out’" msgstr "" #: v2v/v2v.ml:230 inspector/inspector.ml:179 in-place/in_place.ml:186 msgid "Map network ‘in’ to ‘out’" msgstr "" #: common/mlcustomize/customize_cmdline.ml:333 msgid "Move files in disk image" msgstr "" #: common/mlcustomize/customize_run.ml:264 msgid "Moving: %s -> %s" msgstr "" #. input/input_vcenter_https.ml:45 #. input/input_ova.ml:35 #. input/input_libvirt.ml:233 #. input/input_libvirt.ml:221 #. input/input_disk.ml:35 #: input/input_xen_ssh.ml:43 input/input_vmx.ml:36 msgid "No input options can be used in this mode.\n" msgstr "" #: output/output_ovirt.ml:40 output/output_null.ml:38 #: output/output_glance.ml:40 msgid "No output options can be used in this mode.\n" msgstr "" #: output/output_vdsm.ml:166 msgid "OVF (metadata) directory (%s) does not exist or is not a directory" msgstr "" #: common/mlcustomize/firstboot.ml:268 msgid "" "One of rhsrvany.exe or pvvxsvc.exe is missing in %s. One of them is " "required in order to install Windows firstboot scripts. You can get one by " "building rhsrvany (https://github.com/rwmjones/rhsrvany)" msgstr "" #: v2v/v2v.ml:236 msgid "Output hypervisor connection" msgstr "" #: output/output_ovirt_upload.ml:51 msgid "" "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" "\n" "You can override the UUIDs of the disks, instead of using autogenerated " "UUIDs\n" "after their uploads (if you do, you must supply one for each disk):\n" "\n" " -oo ovirt-disk-uuid=UUID Disk UUID\n" msgstr "" #: output/output_qemu.ml:44 msgid "" "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" msgstr "" #: output/output_vdsm.ml:43 msgid "" "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" "\n" "For 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" msgstr "" #: output/output_disk.ml:44 msgid "" "Output options that can be used with -o disk:\n" "\n" " -oo compressed Compress the output file (used only with -of qcow2)\n" msgstr "" #: output/output_kubevirt.ml:51 msgid "" "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" msgstr "" #: output/output_libvirt.ml:47 msgid "" "Output options that can be used with -o libvirt:\n" "\n" " -oo compressed Compress the output file (used only with -of qcow2)\n" msgstr "" #. common/mlcustomize/customize_cmdline.ml:235 #: common/mlcustomize/customize_cmdline.ml:420 msgid "PATH" msgstr "" #: common/mlcustomize/customize_cmdline.ml:181 msgid "PERMISSIONS:FILE" msgstr "" #. common/mlcustomize/customize_cmdline.ml:300 #. common/mlcustomize/customize_cmdline.ml:265 #: common/mlcustomize/customize_cmdline.ml:427 msgid "PKG,PKG.." msgstr "" #: v2v/v2v.ml:263 in-place/in_place.ml:203 msgid "Prefer 'virtio-blk' or 'virtio-scsi'" msgstr "" #: v2v/v2v.ml:252 in-place/in_place.ml:192 msgid "Print source and stop" msgstr "" #: common/mlcustomize/customize_cmdline.ml:208 msgid "Read customize commands from file" msgstr "" #: common/mltools/tools_utils.ml:421 msgid "Read passphrases from stdin" msgstr "" #: common/mlcustomize/customize_cmdline.ml:421 msgid "Recursively truncate all files in directory" msgstr "" #: common/mlcustomize/customize_run.ml:298 msgid "Recursively truncating: %s" msgstr "" #: v2v/v2v.ml:240 msgid "Rename guest when converting" msgstr "" #: common/mlcustomize/customize_cmdline.ml:259 msgid "Run command at first guest boot" msgstr "" #: common/mlcustomize/customize_cmdline.ml:368 msgid "Run command in disk image" msgstr "" #: common/mlcustomize/customize_cmdline.ml:253 msgid "Run script at first guest boot" msgstr "" #: common/mlcustomize/customize_cmdline.ml:362 msgid "Run script in disk image" msgstr "" #: common/mlcustomize/customize_cmdline.ml:409 msgid "Run touch on a file" msgstr "" #: v2v/v2v.ml:250 msgid "Run up to N instances of nbdcopy in parallel" msgstr "" #: open/open.ml:188 msgid "Running external command" msgstr "" #: common/mlcustomize/customize_run.ml:307 msgid "Running touch: %s" msgstr "" #. common/mlcustomize/customize_run.ml:159 #: common/mlcustomize/customize_run.ml:274 msgid "Running: %s" msgstr "" #. common/mlcustomize/customize_cmdline.ml:252 #: common/mlcustomize/customize_cmdline.ml:361 msgid "SCRIPT" msgstr "" #: common/mltools/tools_utils.ml:422 #: common/mlcustomize/customize_cmdline.ml:351 msgid "SELECTOR" msgstr "" #: common/mlcustomize/customize_run.ml:363 msgid "SELinux relabelling" msgstr "" #. common/mlcustomize/customize_cmdline.ml:214 #: common/mlcustomize/customize_cmdline.ml:328 msgid "SOURCE:DEST" msgstr "" #: common/mlcustomize/customize_run.ml:287 msgid "SSH key could not be injected for this type of guest" msgstr "" #: common/mlcustomize/customize_run.ml:284 msgid "SSH key inject: %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:374 msgid "Scrub a file" msgstr "" #: common/mlcustomize/customize_cmdline.ml:466 msgid "Scrub build log file" msgstr "" #: common/mlcustomize/customize_run.ml:374 msgid "Scrubbing the log file" msgstr "" #: common/mlcustomize/customize_run.ml:279 msgid "Scrubbing: %s" msgstr "" #: v2v/v2v.ml:208 msgid "Set bandwidth dynamically from file" msgstr "" #: v2v/v2v.ml:206 msgid "Set bandwidth to bits per sec" msgstr "" #. in-place/in_place.ml:172 #: v2v/v2v.ml:212 open/open.ml:76 inspector/inspector.ml:161 msgid "Set input mode (default: libvirt)" msgstr "" #: v2v/v2v.ml:228 inspector/inspector.ml:175 in-place/in_place.ml:184 msgid "Set memory size" msgstr "" #: v2v/v2v.ml:256 inspector/inspector.ml:185 in-place/in_place.ml:196 msgid "Set number of vCPUs" msgstr "" #. in-place/in_place.ml:178 #: v2v/v2v.ml:218 open/open.ml:82 inspector/inspector.ml:167 msgid "Set option for input mode" msgstr "" #: v2v/v2v.ml:242 msgid "Set option for output mode" msgstr "" #: v2v/v2v.ml:234 msgid "Set output allocation mode" msgstr "" #: v2v/v2v.ml:238 msgid "Set output format" msgstr "" #: v2v/v2v.ml:232 msgid "Set output mode (default: libvirt)" msgstr "" #: v2v/v2v.ml:246 msgid "Set output storage location" msgstr "" #: common/mlcustomize/customize_cmdline.ml:476 msgid "Set password crypto" msgstr "" #: common/mltools/tools_utils.ml:430 msgid "Set program name" msgstr "" #: common/mlcustomize/customize_cmdline.ml:356 msgid "Set root password" msgstr "" #: common/mlcustomize/customize_cmdline.ml:403 msgid "Set the default timezone" msgstr "" #: common/mlcustomize/customize_cmdline.ml:276 msgid "Set the hostname" msgstr "" #: inspector/inspector.ml:181 in-place/in_place.ml:188 msgid "Set the output filename" msgstr "" #: common/mlcustomize/customize_cmdline.ml:345 msgid "Set user password" msgstr "" #: common/mlcustomize/customize_run.ml:75 msgid "Setting a random seed" msgstr "" #: common/mlcustomize/customize_run.ml:354 msgid "Setting passwords" msgstr "" #: common/mlcustomize/password.ml:113 msgid "Setting random password of %s to %s" msgstr "" #: common/mlcustomize/customize_run.ml:207 msgid "Setting the hostname: %s" msgstr "" #: common/mlcustomize/customize_run.ml:90 msgid "Setting the machine ID in %s" msgstr "" #: common/mlcustomize/customize_run.ml:302 msgid "Setting the timezone: %s" msgstr "" #: v2v/v2v.ml:481 msgid "Setting up the destination: %s" msgstr "" #. in-place/in_place.ml:342 #: v2v/v2v.ml:457 open/open.ml:184 inspector/inspector.ml:310 msgid "Setting up the source: %s" msgstr "" #: v2v/v2v.ml:463 in-place/in_place.ml:348 msgid "Source guest information (--print-source option):\n" msgstr "" #: common/mltools/tools_utils.ml:422 msgid "Specify a LUKS key" msgstr "" #: common/mlcustomize/customize_cmdline.ml:392 msgid "TARFILE:REMOTEDIR" msgstr "" #: common/mlcustomize/customize_cmdline.ml:311 msgid "TARGET:LINK[:LINK..]" msgstr "" #: common/mlcustomize/customize_cmdline.ml:402 msgid "TIMEZONE" msgstr "" #: v2v/v2v.ml:200 msgid "" "The --in-place option has been replaced by the ‘virt-v2v-in-place’ program" msgstr "" #: output/output_qemu.ml:251 msgid "" "The Virt machine has no support for IDE. Please report a bug for virt-v2v -- " "refer to virt-v2v(1) section \"BUGS\"." msgstr "" #: output/output_qemu.ml:272 msgid "" "The Virt machine has no support for floppies. Please report a bug for virt-" "v2v -- refer to virt-v2v(1) section \"BUGS\"." msgstr "" #: lib/create_ovf.ml:785 msgid "" "This guest required a password for connection to its display, but this is " "not supported by oVirt. Therefore the converted guest’s display will not " "require a separate password to connect." msgstr "" #: input/input_vmx.ml:111 msgid "" "This transport does not support guests with snapshots. Either collapse the " "snapshots for this guest and try the conversion again, or use one of the " "alternate conversion methods described in virt-v2v-input-vmware(1) section " "\"NOTES\"." msgstr "" #: common/mlcustomize/customize_cmdline.ml:415 msgid "Truncate a file to zero size" msgstr "" #: common/mlcustomize/customize_run.ml:294 msgid "Truncating: %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:192 msgid "UID:GID:PATH" msgstr "" #: common/mlcustomize/customize_cmdline.ml:339 msgid "USER:SELECTOR" msgstr "" #: common/mlcustomize/customize_cmdline.ml:380 msgid "USER[:SELECTOR]" msgstr "" #: common/mlcustomize/customize_cmdline.ml:432 msgid "Uninstall package(s)" msgstr "" #: common/mlcustomize/customize_run.ml:311 msgid "Uninstalling packages: %s" msgstr "" #: common/mlcustomize/customize_run.ml:290 msgid "Unpack tar file: %s to %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:438 msgid "Update packages" msgstr "" #: common/mlcustomize/customize_run.ml:316 msgid "Updating packages" msgstr "" #: common/mlcustomize/customize_cmdline.ml:449 msgid "Upload local file to destination" msgstr "" #: common/mlcustomize/customize_run.ml:321 msgid "Uploading: %s to %s" msgstr "" #: common/mltools/tools_utils.ml:391 msgid "Use ANSI colour sequences even if not tty" msgstr "" #. in-place/in_place.ml:180 #: v2v/v2v.ml:220 open/open.ml:84 inspector/inspector.ml:169 msgid "Use password from file to connect to input hypervisor" msgstr "" #: v2v/v2v.ml:244 msgid "Use password from file to connect to output hypervisor" msgstr "" #: v2v/v2v.ml:224 msgid "Use virt-v2v-in-place instead" msgstr "" #: common/mltools/tools_utils.ml:392 msgid "Wrap log messages even if not tty" msgstr "" #: common/mlcustomize/customize_cmdline.ml:460 msgid "Write file" msgstr "" #: common/mlcustomize/customize_run.ml:346 msgid "Writing: %s" msgstr "" #: lib/YAML.ml:167 msgid "" "YAML block contains newline character. This should not happen, please " "report a bug against virt-v2v." msgstr "" #: output/output_libvirt.ml:96 msgid "" "a libvirt domain called ‘%s’ already exists on the target.\n" "\n" "If using virt-v2v directly, use the ‘-on’ option to select a different name. " "Or delete the existing domain on the target using the ‘virsh undefine’ " "command.\n" "\n" "If using virt-p2v, select a different ‘Name’ in the ‘Target properties’. Or " "delete the existing domain on the target using the ‘virsh undefine’ command." msgstr "" #: common/mlcustomize/append_line.ml:44 msgid "append_line: %s is not a file" msgstr "" #: input/input_libvirt.ml:206 msgid "" "bad checksum for disk %d/%d\n" "Expected checksum: %s\n" "Actual checksum: %s" msgstr "" #: lib/libvirt_utils.ml:59 msgid "cannot find libvirt domain ‘%s’: %s" msgstr "" #: lib/libvirt_utils.ml:96 msgid "" "cannot find libvirt pool ‘%s’: %s\n" "\n" "Use ‘virsh pool-list --all’ to list all available pools, and ‘virsh pool-" "dumpxml ’ to display details about a particular pool.\n" "\n" "To set the pool which virt-v2v uses, add the ‘-os ’ option." msgstr "" #: lib/libvirt_utils.ml:110 msgid "cannot find libvirt volume ‘%s’: %s" msgstr "" #: common/mlcustomize/firstboot.ml:235 msgid "" "cannot finish firstboot installation by running ‘%s’ because host cpu (%s) " "and guest arch (%s) are not compatible. The firstboot service may not run " "at boot." msgstr "" #: output/output_libvirt.ml:180 msgid "cannot get libvirt domain capabilities: %s" msgstr "" #: output/output_libvirt.ml:85 msgid "cannot get libvirt hypervisor capabilities: %s" msgstr "" #: v2v/v2v.ml:105 inspector/inspector.ml:95 in-place/in_place.ml:102 msgid "cannot parse --mac \"%s\" parameter" msgstr "" #: v2v/v2v.ml:129 inspector/inspector.ml:119 in-place/in_place.ml:126 msgid "cannot parse --mac ip %s: doesn’t look like “%s” is an IP address" msgstr "" #: v2v/v2v.ml:143 inspector/inspector.ml:133 in-place/in_place.ml:140 msgid "cannot parse --mac ip prefix length field as an integer: %s" msgstr "" #: common/mlcustomize/guest_packages.ml:29 msgid "" "cannot use ‘%s’ because no package manager has been detected for this guest " "OS.\n" "\n" "If this guest OS is a common one with ordinary package management then this " "may have been caused by a failure of libguestfs inspection.\n" "\n" "For OSes such as Windows that lack package management, this is not " "possible. Try using one of the ‘--firstboot*’ flags instead (described in " "the virt-customize(1) manual)." msgstr "" #: output/output_ovirt.ml:91 msgid "" "cannot write files to the NFS server as %d:%d, even though we appear to be " "running as root. This probably means the NFS client or idmapd is not " "configured properly.\n" "\n" "You will have to chown the files that virt-v2v creates after the run, " "otherwise oVirt will not be able to import the VM." msgstr "" #: output/output_ovirt.ml:99 msgid "" "cannot write files to the NFS server as %d:%d. You might want to stop virt-" "v2v (^C) and rerun it as root." msgstr "" #: common/mlcustomize/customize_cmdline.ml:508 msgid "command '%s' cannot be used in command files, see the man page" msgstr "" #: common/mlcustomize/customize_cmdline.ml:525 msgid "command '%s' not valid, see the man page" msgstr "" #: common/mldrivers/linux_bootloaders.ml:318 msgid "could not add grub2 serial console (ignored)" msgstr "" #: input/ssh.ml:52 msgid "" "could not copy the VMX file from the remote server, see earlier error " "messages" msgstr "" #: output/output_libvirt.ml:211 msgid "" "could not define libvirt domain: %s.\n" "The libvirt XML is still available in ‘%s’. Try running ‘virsh -c %s define " "%s’ yourself instead." msgstr "" #: common/mldrivers/linux_bootloaders.ml:221 msgid "could not determine a way to update the configuration of Grub2" msgstr "" #: input/input_vddk.ml:243 msgid "" "could not fetch thumbprint from the server, you mus use ‘-io vddk-" "thumbprint=XX:XX...’" msgstr "" #: common/mldrivers/linux_bootloaders.ml:376 msgid "could not find bootloader mount point (%s): %s" msgstr "" #: common/mldrivers/windows_drivers.ml:91 msgid "" "could not find registry entry " "HKEY_LOCAL_MACHINE\\SYSTEM\\DriverDatabase\\DeviceIds in this Windows " "guest. It may be either a very old or very new version of Windows that we " "cannot process." msgstr "" #: common/mlcustomize/firstboot.ml:232 msgid "" "could not finish firstboot installation by running ‘%s’ because the command " "failed: %s" msgstr "" #. input/input_vcenter_https.ml:94 #: input/select_input.ml:66 input/input_xen_ssh.ml:71 input/input_vddk.ml:151 msgid "could not parse '-ic %s'. Original error message was: %s" msgstr "" #: input/parse_libvirt_xml.ml:407 input/parse_libvirt_xml.ml:54 msgid "could not parse device name ‘%s’ from the source libvirt XML" msgstr "" #: input/OVF.ml:168 #, fuzzy #| msgid "could not parse boot size" msgid "could not parse disk rasd:HostResource from OVF document" msgstr "બુટ માપનું પદચ્છેદન કરી શક્યા નહિં" #: input/input_ova.ml:98 #, fuzzy #| msgid "could not parse boot size" msgid "could not parse ovf:Name from OVF document" msgstr "બુટ માપનું પદચ્છેદન કરી શક્યા નહિં" #: output/output_ovirt.ml:247 msgid "" "could not read the %s specified by the '-os %s' parameter on the command " "line. Is it really an OVirt %s? The original error is: %s" msgstr "" #: common/mldrivers/linux_bootloaders.ml:336 msgid "" "could not rebuild grub2 configuration file (%s). This may mean that grub " "output will not be sent to the serial port, but otherwise should be " "harmless. Original error message: %s" msgstr "" #: output/output_libvirt.ml:156 msgid "could not refresh libvirt pool ‘%s’: %s" msgstr "" #: common/mldrivers/linux_bootloaders.ml:320 msgid "could not remove grub2 serial console (ignored)" msgstr "" #: common/mltools/registry.ml:93 msgid "" "decode_utf16le: Windows UTF16-LE string contains non-7-bit characters. This " "is a bug in %s, please report it." msgstr "" #: common/mltools/registry.ml:87 msgid "" "decode_utf16le: Windows string does not appear to be in UTF16-LE encoding. " "This could be a bug in %s." msgstr "" #: common/mldrivers/linux_bootloaders.ml:126 msgid "didn't find grub entry for kernel %s" msgstr "" #: input/input_disk.ml:150 msgid "disks on the command line have mixed formats" msgstr "" #: input/parse_libvirt_xml.ml:194 msgid "display in the input libvirt XML was ignored" msgstr "" #: output/output_qemu.ml:147 msgid "don’t know how to convert UEFI guests for architecture %s" msgstr "" #: common/mldrivers/linux.ml:158 msgid "don’t know how to find file owner using %s" msgstr "" #: common/mldrivers/linux.ml:89 msgid "don’t know how to get list of files from package using %s" msgstr "" #: common/mltools/curl.ml:82 msgid "downloading %s" msgstr "" #: lib/networks.ml:84 msgid "" "duplicate --mac parameter. Duplicate mappings specified for MAC address %s." msgstr "" #: lib/networks.ml:102 msgid "" "duplicate -b/--bridge parameter. Duplicate mappings specified for bridge %s." msgstr "" #: lib/networks.ml:108 msgid "duplicate -b/--bridge parameter. Only one default mapping is allowed." msgstr "" #: lib/networks.ml:90 msgid "" "duplicate -n/--network parameter. Duplicate mappings specified for network " "%s." msgstr "" #: lib/networks.ml:96 msgid "duplicate -n/--network parameter. Only one default mapping is allowed." msgstr "" #: input/OVF.ml:143 msgid "error parsing disk fileRef" msgstr "" #: input/input_ova.ml:124 msgid "error uncompressing %s, see earlier error messages" msgstr "" #: input/OVA.ml:210 input/OVA.ml:112 msgid "error unpacking %s, see earlier error messages" msgstr "" #: common/mltools/tools_utils.ml:248 msgid "exception: %s" msgstr "" #: common/mltools/tools_utils.ml:455 msgid "exited with error %d" msgstr "" #: lib/utils.ml:34 msgid "exited with non-zero error code %d" msgstr "" #: input/input_disk.ml:147 msgid "expected >= 1 disk name on the command line" msgstr "" #: common/mltools/xpath_helpers.ml:36 msgid "" "expecting XML expression to return an integer (expression: %s, matching " "string: %s)" msgstr "" #: common/mltools/tools_utils.ml:440 msgid "external command" msgstr "" #: output/output_ovirt_upload.ml:265 msgid "failed server prechecks, see earlier errors" msgstr "" #: output/output_ovirt_upload.ml:507 msgid "failed to create virtual machine, see earlier errors" msgstr "" #: output/output_ovirt_upload.ml:479 msgid "failed to finalize the transfers, see earlier errors" msgstr "" #: common/mldrivers/linux_bootloaders.ml:208 msgid "failed to find grub2-mkconfig binary (but Grub2 was detected on guest)" msgstr "" #: input/OVA.ml:461 msgid "failed to parse line returned by tar: %S" msgstr "" #: output/output_ovirt_upload.ml:394 msgid "failed to start transfer, see earlier errors" msgstr "" #: output/output_ovirt_upload.ml:311 msgid "failed vmchecks, see earlier errors" msgstr "" #: common/mltools/tools_utils.ml:239 msgid "failure: %s" msgstr "" #: input/input_ova.ml:134 msgid "file ‘%s’ not found in the ova" msgstr "" #: common/mlcustomize/firstboot.ml:143 msgid "" "firstboot: unknown version for old firstboot.service file %s (md5=%s), it " "will not be removed" msgstr "" #: common/mltools/tools_utils.ml:258 msgid "generated by %s %s" msgstr "" #: output/create_libvirt_xml.ml:39 msgid "get_osinfo_id: unknown guest operating system: %s" msgstr "" #: output/output_glance.ml:66 msgid "" "glance: glance client is not installed or set up correctly. You may need to " "set environment variables or source a script to enable authentication. See " "preceding messages for details." msgstr "" #: output/output_glance.ml:139 msgid "glance: image upload to glance failed, see earlier errors" msgstr "" #: common/mlcustomize/firstboot.ml:386 common/mlcustomize/firstboot.ml:164 msgid "guest type %s is not supported" msgstr "" #: common/mlcustomize/firstboot.ml:413 msgid "guest type %s/%s is not supported" msgstr "" #: common/mltools/tools_utils.ml:749 msgid "" "host (%s/%s) and guest (%s/%s) are not compatible, so you cannot use command " "line options that involve running commands in the guest. Use --firstboot " "scripts instead." msgstr "" #: common/mlcustomize/customize_run.ml:209 msgid "hostname could not be set for this type of guest" msgstr "" #: common/mldrivers/linux_kernels.ml:342 msgid "ignoring kernel %s in bootloader, as it does not exist." msgstr "" #: output/output_vdsm.ml:160 msgid "image directory (%s) does not exist or is not a directory" msgstr "" #: input/parse_libvirt_xml.ml:81 msgid "in the libvirt XML metadata, is missing or empty" msgstr "" #: input/parse_libvirt_xml.ml:87 msgid "in the libvirt XML metadata, is missing or empty" msgstr "" #: input/input_vcenter_https.ml:52 input/input_libvirt.ml:107 msgid "in-place mode does not work with HTTP source" msgstr "" #: input/input_vddk.ml:146 msgid "in-place mode does not work with VDDK source" msgstr "" #: input/input_vmx.ml:43 msgid "in-place mode does not work with VMX source" msgstr "" #: input/input_xen_ssh.ml:50 msgid "in-place mode does not work with Xen over SSH source" msgstr "" #: output/output_kubevirt.ml:116 msgid "" "incorrect number of '-oo disk' parameters. This guest has %d disks, but the " "parameter was used %d times." msgstr "" #: input/input_xen_ssh.ml:119 msgid "" "input from xen over ssh does not support disks stored on remote block " "devices. See virt-v2v-input-xen(1) section \"Xen or ssh conversions from " "block devices\"." msgstr "" #. in-place/in_place.ml:397 #: v2v/v2v.ml:590 open/open.ml:238 inspector/inspector.ml:353 msgid "" "insufficient free space in the conversion server temporary directory %s " "(%s).\n" "\n" "Either free up space in that directory, or set the LIBGUESTFS_CACHEDIR " "environment variable to point to another directory with more than 1GB of " "free space.\n" "\n" "See also the virt-v2v(1) manual, section \"Minimum free space check in the " "host\"." msgstr "" #: common/mltools/tools_utils.ml:246 msgid "internal error: Not_found exception was thrown" msgstr "" #: common/mltools/tools_utils.ml:243 msgid "internal error: assertion failed at %s, line %d, char %d" msgstr "" #: common/mltools/tools_utils.ml:241 msgid "internal error: invalid argument: %s" msgstr "" #: common/mldrivers/linux.ml:128 msgid "internal error: is_file_owned: dpkg command returned no output" msgstr "" #: common/mldrivers/linux.ml:133 msgid "internal error: is_file_owned: unexpected output from dpkg command: %s" msgstr "" #: common/mldrivers/linux_bootloaders.ml:130 msgid "internal error: regular expression did not match ‘%s’" msgstr "" #: v2v/v2v.ml:548 msgid "internal error: wait returned unexpected process ID %d status \"%s\"" msgstr "" #: v2v/v2v.ml:114 inspector/inspector.ml:104 in-place/in_place.ml:111 msgid "invalid --mac ip option" msgstr "" #: v2v/v2v.ml:98 inspector/inspector.ml:88 in-place/in_place.ml:95 msgid "invalid -b/--bridge parameter" msgstr "" #: v2v/v2v.ml:90 inspector/inspector.ml:80 in-place/in_place.ml:87 msgid "invalid -n/--network parameter" msgstr "" #: input/parse_domain_from_vmx.ml:402 msgid "invalid cpuid.coresPerSocket < number of vCPUs" msgstr "" #. common/mlcustomize/customize_cmdline.ml:153 #. common/mlcustomize/customize_cmdline.ml:145 #: common/mlcustomize/customize_cmdline.ml:161 msgid "invalid format for '--%s' parameter, see the man page" msgstr "" #: common/mltools/tools_utils.ml:359 msgid "invalid format string for --machine-readable: %s" msgstr "" #: lib/utils.ml:279 msgid "invalid input filename (%s)" msgstr "" #: input/OVA.ml:445 msgid "invalid offset returned by tar: %S" msgstr "" #: common/mltools/tools_utils.ml:374 msgid "invalid output fd for --machine-readable: %s" msgstr "" #: common/mltools/tools_utils.ml:376 msgid "invalid output for --machine-readable: %s" msgstr "" #: common/mltools/tools_utils.ml:368 msgid "invalid output stream for --machine-readable: %s" msgstr "" #: common/mlcustomize/password.ml:73 msgid "invalid password selector ‘%s’; see the man page" msgstr "" #: input/OVA.ml:450 msgid "invalid size returned by tar: %S" msgstr "" #: common/mlcustomize/ssh_key.ml:45 msgid "invalid ssh-inject selector ‘%s’; see the man page" msgstr "" #: input/OVF.ml:82 msgid "invalid vmw:CoresPerSocket (%d) ignored" msgstr "" #: input/OVF.ml:88 msgid "invalid vmw:CoresPerSocket < number of cores" msgstr "" #: common/mldrivers/linux_bootloaders.ml:114 msgid "kernel %s is not under grub tree %s" msgstr "" #: common/mltools/tools_utils.ml:539 common/mltools/tools_utils.ml:458 msgid "killed by signal %d" msgstr "" #: common/mltools/tools_utils.ml:237 msgid "libguestfs error: %s" msgstr "" #: lib/libvirt_utils.ml:72 msgid "" "libvirt domain ‘%s’ is running or paused. Converting a live guest will " "result in corrupted output. However this is safe if you're converting from a " "snapshot" msgstr "" #: common/mlcustomize/customize_run.ml:47 msgid "log file %s: %s (ignored)" msgstr "" #: input/OVA.ml:147 msgid "" "making OVA directory public readable to work around libvirt bug https://" "bugzilla.redhat.com/1045069" msgstr "" #: input/input_ova.ml:86 msgid "manifest has a checksum for non-existent file %s (ignored)" msgstr "" #: common/mlcustomize/customize_cmdline.ml:472 msgid "md5|sha256|sha512" msgstr "" #: common/mlcustomize/customize_run.ml:119 msgid "method '%s' is no longer supported" msgstr "" #: common/mltools/JSON_parser.ml:39 msgid "missing value for the key ‘%s’" msgstr "" #: input/OVA.ml:276 msgid "more than one .ovf file was found in %s" msgstr "" #: common/mltools/JSON_parser.ml:34 msgid "more than value for the key ‘%s’" msgstr "" #: output/output_ovirt.ml:222 msgid "" "mount command failed, see earlier errors.\n" "\n" "This probably means you didn't specify the right %s path [-os %s], or else " "you need to rerun virt-v2v as root." msgstr "" #: common/mlcustomize/customize_run.ml:103 msgid "" "multiple --root-password/--password options set the password for user ‘%s’ " "twice" msgstr "" #: input/input_vddk.ml:319 msgid "" "nbdkit VDDK plugin is not installed or not working. It is required if you " "want to use VDDK.\n" "\n" "It 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 ’/%s/libvixDiskLib.so.?’.\n" "\n" "See also the virt-v2v-input-vmware(1) manual." msgstr "" #: input/input_vddk.ml:313 msgid "" "nbdkit VDDK plugin is not installed or not working. It is required if you " "want to use VDDK.\n" "\n" "The 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" "\n" "See also the virt-v2v-input-vmware(1) manual." msgstr "" #: lib/nbdkit.ml:223 msgid "nbdkit did not start up. See previous debugging messages for problems." msgstr "" #: lib/nbdkit.ml:225 msgid "" "nbdkit did not start up. There may be errors printed by nbdkit above.\n" "\n" "If the messages above are not sufficient to diagnose the problem then add " "the ‘virt-v2v -v -x’ options and examine the debugging output carefully." msgstr "" #: input/nbdkit_ssh.ml:36 input/nbdkit_curl.ml:32 input/input_vddk.ml:283 msgid "nbdkit is not installed or not working" msgstr "" #: input/input_disk.ml:92 msgid "" "nbdkit is not installed or not working. It is required to use ‘-i disk’." msgstr "" #: input/input_libvirt.ml:68 msgid "" "nbdkit is not installed or not working. It is required to use ‘-i libvirt|" "libvirtxml’." msgstr "" #: output/output.ml:178 output/output.ml:77 msgid "" "nbdkit is not installed or not working. It is required to use ‘-o disk’." msgstr "" #: output/output_null.ml:57 msgid "" "nbdkit is not installed or not working. It is required to use ‘-o null’." msgstr "" #: output/output_ovirt_upload.ml:163 msgid "" "nbdkit is not installed or not working. It is required to use ‘-o ovirt-" "upload’. See the virt-v2v-output-ovirt(1) manual." msgstr "" #: input/input_vddk.ml:285 msgid "nbdkit must be >= 1.45.11 for input from VDDK" msgstr "" #: output/output_ovirt_upload.ml:176 msgid "" "nbdkit python plugin is not installed or not working. It is required if you " "want to use ‘-o ovirt-upload’.\n" "\n" "See also the virt-v2v-output-ovirt(1) manual." msgstr "" #: output/output_ovirt_upload.ml:190 msgid "" "nbdkit was compiled without SELinux support. You will have to recompile " "nbdkit with libselinux-devel installed, or else set SELinux to Permissive " "mode while doing the conversion." msgstr "" #. input/input_libvirt.ml:76 #. input/input_disk.ml:98 #: input/nbdkit_ssh.ml:42 input/nbdkit_curl.ml:38 input/input_vddk.ml:289 msgid "nbdkit-cow-filter is not installed or not working" msgstr "" #: input/nbdkit_curl.ml:35 msgid "nbdkit-curl-plugin is not installed" msgstr "" #. input/input_disk.ml:96 #: output/output.ml:181 output/output.ml:80 input/input_libvirt.ml:72 msgid "nbdkit-file-plugin is not installed or not working" msgstr "" #: input/input_libvirt.ml:74 msgid "nbdkit-nbd-plugin is not installed or not working" msgstr "" #: output/output_null.ml:60 msgid "nbdkit-null-plugin is not installed or not working" msgstr "" #: input/nbdkit_ssh.ml:39 msgid "nbdkit-ssh-plugin is not installed" msgstr "" #: input/input_vddk.ml:287 msgid "nbdkit-vddk-plugin is not installed" msgstr "" #: lib/nbdkit.ml:56 msgid "nbdkit: unexpected version in --dump-config: %s" msgstr "" #. input/input_vcenter_https.ml:49 #. input/input_ova.ml:46 #. input/input_libvirt.ml:35 #. input/input_disk.ml:39 #: input/input_xen_ssh.ml:47 input/input_vmx.ml:40 msgid "no -io (input options) are allowed here" msgstr "" #: output/output_ovirt.ml:44 output/output_null.ml:42 #: output/output_glance.ml:44 msgid "no -oo (output options) are allowed here" msgstr "" #: input/OVA.ml:273 msgid "no .ovf file was found in %s" msgstr "" #: common/mldrivers/linux_bootloaders.ml:402 msgid "no bootloader detected" msgstr "" #: input/parse_domain_from_vmx.ml:359 msgid "no displayName key found in VMX file" msgstr "" #: input/OVF.ml:148 msgid "no href in ovf:File (id=%s)" msgstr "" #: common/mldrivers/linux_kernels.ml:194 msgid "no initrd was found in /boot matching %s %s." msgstr "" #: common/mldrivers/linux_kernels.ml:317 msgid "" "no installed kernel packages were found.\n" "\n" "This probably indicates that %s was unable to inspect this guest properly." msgstr "" #: common/mldrivers/linux_kernels.ml:354 msgid "" "no kernels were found in the bootloader configuration.\n" "\n" "This probably indicates that %s was unable to parse the bootloader " "configuration of this guest." msgstr "" #: output/python_script.ml:55 msgid "no python binary called ‘%s’ can be found on the $PATH" msgstr "" #: input/select_input.ml:106 msgid "" "no support for remote libvirt connections to '-ic %s'. The conversion may " "fail when it tries to read the source disks." msgstr "" #: lib/create_ovf.ml:1027 msgid "" "oVirt cannot emulate ‘%s’ sound cards. This sound card will be dropped from " "the output." msgstr "" #: lib/create_ovf.ml:875 lib/create_ovf.ml:512 msgid "oVirt does not support the output format ‘%s’, only raw or qcow2" msgstr "" #: output/output_openstack.ml:120 msgid "openstack: -oo server-id= not present" msgstr "" #: output/output_openstack.ml:338 msgid "" "openstack: failed to attach cinder volume to VM, see earlier error messages" msgstr "" #: output/output_openstack.ml:291 msgid "openstack: failed to create a cinder volume, see earlier error messages" msgstr "" #: output/output_openstack.ml:304 msgid "" "openstack: failed to query cinder volume status, see earlier error messages" msgstr "" #: output/output_openstack.ml:442 msgid "" "openstack: failed to set image properties on cinder volume, see earlier " "error messages" msgstr "" #: output/output_openstack.ml:199 msgid "" "openstack: precheck failed, there may be a problem with authentication, see " "earlier error messages" msgstr "" #: output/output_openstack.ml:311 msgid "" "openstack: unknown volume status \"%s\": expected \"creating\" or " "\"available\"" msgstr "" #: output/output.ml:133 msgid "output mode only supports raw or qcow2 format (format: %s)" msgstr "" #: input/OVF.ml:263 msgid "" "ova disk has an unknown VMware controller type (%d), please report this as a " "bug supplying the *.ovf file extracted from the ova" msgstr "" #: input/OVF.ml:259 msgid "" "ova disk has no parent controller, please report this as a bug supplying the " "*.ovf file extracted from the ova" msgstr "" #: output/output_ovirt_upload.ml:367 msgid "" "ovirt-upload: -of %s: Only output format ‘raw’ or ‘qcow2’ is supported. If " "the input is in a different format then force one of these output formats by " "adding either ‘-of raw’ or ‘-of qcow2’ on the command line." msgstr "" #: common/mlcustomize/password.ml:51 msgid "" "password-crypto: unknown algorithm %s, use \"md5\", \"sha256\", \"sha512\" " "or \"yescrypt\"" msgstr "" #: common/mlcustomize/password.ml:197 msgid "" "password: using insecure md5 password encryption for guest of type %s " "version %d.%d.\n" "If this is incorrect, use --password-crypto option and file a bug." msgstr "" #: common/mlcustomize/customize_run.ml:359 msgid "passwords could not be set for this type of guest" msgstr "" #: lib/qemuNBD.ml:125 msgid "" "qemu-nbd did not start up. See previous debugging messages for problems." msgstr "" #: lib/qemuNBD.ml:127 msgid "" "qemu-nbd did not start up. There may be errors printed by qemu-nbd above.\n" "\n" "If the messages above are not sufficient to diagnose the problem then add " "the ‘virt-v2v -v -x’ options and examine the debugging output carefully." msgstr "" #: lib/qemuNBD.ml:47 msgid "qemu-nbd: unexpected version in --version: %s" msgstr "" #: common/mlcustomize/customize_run.ml:77 msgid "random seed could not be set for this type of guest" msgstr "" #: input/parse_domain_from_vmx.ml:44 msgid "remote vmx ‘%s’ could not be parsed as a URI" msgstr "" #. common/mlcustomize/inject_virtio_win.ml:357 #. common/mlcustomize/inject_virtio_win.ml:352 #: common/mlcustomize/inject_virtio_win.ml:362 msgid "" "root directory ‘/’ is missing from the virtio-win directory or ISO.\n" "\n" "This should not happen and may indicate that virtio-win or virt-v2v is " "broken in some way. Please report this as a bug with a full debug log." msgstr "" #: common/mltools/tools_utils.ml:417 common/options/keys.c:264 #, c-format msgid "selector '%s': invalid TYPE" msgstr "" #: common/mltools/tools_utils.ml:409 common/options/keys.c:254 #, c-format msgid "selector '%s': missing FILENAME, or too many fields" msgstr "" #: common/mltools/tools_utils.ml:399 common/options/keys.c:232 #, c-format msgid "selector '%s': missing ID" msgstr "" #: common/mltools/tools_utils.ml:404 common/options/keys.c:245 #, c-format msgid "selector '%s': missing KEY_STRING, or too many fields" msgstr "" #: common/mltools/tools_utils.ml:401 common/options/keys.c:239 #, c-format msgid "selector '%s': missing TYPE" msgstr "" #: common/mltools/tools_utils.ml:413 common/options/keys.c:262 #, c-format msgid "selector '%s': too many fields" msgstr "" #: lib/utils.ml:35 msgid "signalled by signal %d" msgstr "" #: common/mlcustomize/guest_packages.ml:40 msgid "" "sorry, ‘%s’ with the ‘%s’ package manager has not been implemented yet.\n" "\n" "You can work around this by using one of the ‘--run*’ or ‘--firstboot*’ " "options instead (described in the virt-customize(1) manual)." msgstr "" #: common/mlcustomize/ssh_key.ml:57 msgid "ssh-inject: $HOME environment variable is not set" msgstr "" #: common/mlcustomize/ssh_key.ml:93 msgid "ssh-inject: key is an empty string" msgstr "" #: common/mlcustomize/ssh_key.ml:66 msgid "ssh-inject: no public key file found in %s" msgstr "" #: common/mlcustomize/ssh_key.ml:83 msgid "ssh-inject: public key file (%s) is empty" msgstr "" #: common/mlcustomize/ssh_key.ml:112 msgid "ssh-inject: the user %s does not exist on the guest" msgstr "" #. common/mltools/tools_utils.ml:461 #: lib/utils.ml:36 common/mltools/tools_utils.ml:542 msgid "stopped by signal %d" msgstr "" #: output/changeuid.ml:58 msgid "subprocess exited with non-zero error code %d" msgstr "" #: output/changeuid.ml:60 msgid "subprocess signalled or stopped by signal %d" msgstr "" #: lib/utils.ml:33 msgid "success" msgstr "" #: output/create_libvirt_xml.ml:297 msgid "" "target hypervisor does not support floppy devices, but floppy devices were " "found in the source guest" msgstr "" #: output/output_ovirt_upload.ml:156 msgid "" "the Python module ‘ovirtsdk4’ could not be loaded, is it installed? See " "previous messages for problems." msgstr "" #: output/output_ovirt_upload.ml:453 msgid "the cluster ‘%s’ does not support the architecture %s but %s" msgstr "" #: common/mlcustomize/customize_run.ml:59 msgid "" "the command may have failed because the network is disabled. Try either " "removing ‘--no-network’ or adding ‘--network’ on the command line." msgstr "" #: common/mltools/JSON_parser.ml:84 msgid "the key ‘%s’ was not found in a list of objects" msgstr "" #: output/output_ovirt_upload.ml:288 msgid "" "the number of ‘-oo ovirt-disk-uuid’ parameters passed on the command line " "has to match the number of guest disk images (for this guest: %d)" msgstr "" #: output/output_vdsm.ml:133 msgid "" "the number of ‘-oo vdsm-image-uuid’ and ‘-oo vdsm-vol-uuid’ parameters " "passed on the command line has to match the number of guest disk images (for " "this guest: %d)" msgstr "" #: output/output_libvirt.ml:239 msgid "the target hypervisor does not support a %s KVM guest" msgstr "" #: common/mltools/JSON_parser.ml:78 msgid "the value for key ‘%s’ is not a string as expected" msgstr "" #: common/mltools/JSON_parser.ml:50 msgid "the value for the key ‘%s’ is not a bool" msgstr "" #: common/mltools/JSON_parser.ml:45 msgid "the value for the key ‘%s’ is not a string" msgstr "" #: common/mltools/JSON_parser.ml:70 msgid "the value for the key ‘%s’ is not an integer" msgstr "" #: common/mltools/JSON_parser.ml:55 msgid "the value for the key ‘%s’ is not an object" msgstr "" #: common/mltools/JSON_parser.ml:59 msgid "the value is not an object" msgstr "" #: common/mltools/JSON_parser.ml:35 msgid "the value of the key ‘%s’ is not an object" msgstr "" #: lib/create_ovf.ml:519 msgid "" "the virtual size of the input disk %d is not an exact multiple of 512 " "bytes. The virtual size is: %Ld.\n" "\n" "This probably means something unexpected is going on, so please file a bug " "about this issue." msgstr "" #: output/output_openstack.ml:144 msgid "" "the ‘%s’ program is not available. It is needed to communicate with " "OpenStack." msgstr "" #: output/output_ovirt.ml:265 msgid "" "there are multiple UUIDs in the %s (%s). This is unexpected, and may be a " "bug in virt-v2v or OVirt." msgstr "" #: output/output_ovirt.ml:262 msgid "there are no UUIDs in the %s (%s). Is it really an OVirt %s?" msgstr "" #: common/mlcustomize/inject_virtio_win.ml:153 msgid "" "there are no virtio drivers available for this version of Windows (%d.%d %s " "%s %s). virt-v2v looks for drivers in %s\n" "\n" "The guest will be configured to use slower emulated devices." msgstr "" #: common/mlcustomize/inject_virtio_win.ml:175 msgid "" "there is no virtio block device driver for this version of Windows (%d.%d " "%s). virt-v2v looks for this driver in %s\n" "\n" "The guest will be configured to use a slower emulated device." msgstr "" #: common/mlcustomize/inject_virtio_win.ml:206 msgid "" "there is no virtio network driver for this version of Windows (%d.%d %s). " "virt-v2v looks for this driver in %s\n" "\n" "The guest will be configured to use a slower emulated device." msgstr "" #: input/parse_libvirt_xml.ml:545 msgid "this guest has a direct network interface which will be ignored" msgid_plural "this guest has direct network interfaces which will be ignored" msgstr[0] "" msgstr[1] "" #: input/parse_libvirt_xml.ml:527 msgid "this guest has a passthrough host device which will be ignored" msgid_plural "this guest has passthrough host devices which will be ignored" msgstr[0] "" msgstr[1] "" #: input/parse_libvirt_xml.ml:248 msgid "this guest has no non-removable disks" msgstr "" #: output/output.ml:65 msgid "this output module doesn't support copying more than %d disks" msgstr "" #: common/mlcustomize/timezone.ml:35 msgid "timezone '%s' does not exist, use a location like 'Europe/London'" msgstr "" #: common/mlcustomize/customize_run.ml:304 msgid "timezone could not be set for this type of guest" msgstr "" #: input/OVA.ml:318 msgid "unable to parse line from manifest file: %S" msgstr "" #: common/mltools/urandom.ml:37 msgid "unexpected end of file while reading /dev/urandom" msgstr "" #: input/input_libvirt.ml:196 msgid "unexpected output from the %s command" msgstr "" #: common/mltools/checksums.ml:58 msgid "unhandled checksum type ‘%s’" msgstr "" #: lib/types.ml:524 msgid "unknown --root option: %s" msgstr "" #: input/select_input.ml:51 msgid "unknown -i option: %s" msgstr "" #: output/select_output.ml:74 msgid "unknown -o option: %s" msgstr "" #: v2v/v2v.ml:164 msgid "unknown -oa option: %s" msgstr "" #: input/input_libvirt.ml:189 msgid "unknown method='%s'" msgstr "" #: input/OVF.ml:103 msgid "unknown Config:firmware value %s (expected \"bios\" or \"efi\")" msgstr "" #: lib/create_ovf.ml:446 lib/create_ovf.ml:247 msgid "unknown Windows 10 variant: %s (%s)" msgstr "" #: v2v/v2v.ml:319 in-place/in_place.ml:256 msgid "unknown block driver ‘--block-driver %s’" msgstr "" #: input/parse_domain_from_vmx.ml:415 msgid "unknown firmware value '%s', assuming BIOS" msgstr "" #: lib/create_ovf.ml:454 lib/create_ovf.ml:255 msgid "unknown guest operating system: %s %s %d.%d %s (%s)" msgstr "" #: v2v/v2v.ml:329 open/open.ml:132 inspector/inspector.ml:238 msgid "unknown input transport ‘-it %s’" msgstr "" #: input/parse_domain_from_vmx.ml:428 msgid "unknown sound device '%s' ignored" msgstr "" #: input/parse_libvirt_xml.ml:215 msgid "unknown sound model %s ignored" msgstr "" #: input/OVF.ml:156 msgid "unsupported compression in OVF: %s" msgstr "" #: input/input_vcenter_https.ml:123 msgid "" "vcenter: was not found in the XML. You need to " "upgrade to libvirt ≥ 1.2.20." msgstr "" #: input/vCenter.ml:79 msgid "vcenter: URL not found: %s" msgstr "" #: input/vCenter.ml:70 msgid "vcenter: incorrect username or password" msgstr "" #: input/vCenter.ml:72 msgid "" "vcenter: incorrect username or password. You might need to specify the " "username in the URI like this: [vpx|esx|..]://USERNAME@[etc]" msgstr "" #: input/vCenter.ml:84 msgid "vcenter: invalid response from server: %s" msgstr "" #: input/vCenter.ml:194 msgid "vcenter: no status code in output of ‘curl’ command." msgstr "" #: output/output_vdsm.ml:148 msgid "vdsm: invalid -os parameter does not contain a valid UUID: %s" msgstr "" #: output/output_openstack.ml:56 msgid "" "virt-v2v -oo server-id= [os-*=...]\n" "\n" "Specify the name or UUID of the conversion appliance using\n" "\n" " virt-v2v ... -o openstack -oo server-id=\n" "\n" "When virt-v2v runs it will attach the Cinder volumes to the\n" "conversion appliance, so this name or UUID must be the name\n" "of the virtual machine on OpenStack where virt-v2v is running.\n" "\n" "In addition, all usual OpenStack “os-*” parameters or “OS_*”\n" "environment variables can be used.\n" "\n" "Openstack “--os-*” parameters must be written as “virt-v2v -oo os-*”.\n" "\n" "For example:\n" "\n" " virt-v2v -oo os-username=\n" "\n" " equivalent to openstack: --os-username=\n" " or the environment variable: OS_USERNAME=\n" "\n" " virt-v2v -oo os-project-name=\n" "\n" " equivalent to openstack: --os-project-name=\n" " or the environment variable: OS_PROJECT_NAME=\n" "\n" "The os-* parameters and environment variables are optional.\n" msgstr "" #: input/parse_libvirt_xml.ml:189 msgid "" "virt-v2v does not support local displays, so in the " "input libvirt XML was ignored" msgstr "" #: input/select_input.ml:83 msgid "virt-v2v-in-place does not support remote libvirt URIs" msgstr "" #: input/parse_domain_from_vmx.ml:50 msgid "vmx URI path component looks incorrect" msgstr "" #: input/parse_domain_from_vmx.ml:48 msgid "vmx URI remote server name omitted" msgstr "" #: input/parse_domain_from_vmx.ml:46 msgid "vmx URI start with ‘ssh://...’" msgstr "" #: input/VMX.ml:313 msgid "vmx parser: cannot parse this line, ignoring: %s" msgstr "" #: input/VMX.ml:346 msgid "vmx parser: duplicate key '%s' ignored" msgstr "" #: output/output_openstack.ml:299 msgid "wait for cinder volume status to change to \"available\"" msgstr "" #: output/output_openstack.ml:360 msgid "waiting for cinder volume %s to attach to the conversion appliance" msgstr "" #: open/open.ml:136 msgid "you must supply the --run parameter" msgstr "" #: input/input_xen_ssh.ml:87 input/input_vddk.ml:189 msgid "‘-ic %s’ URL does not contain a host name field" msgstr "" #: input/input_vddk.ml:273 msgid "‘-io vddk-file=’ must be used exactly %d times" msgstr "" #: input/input_vddk.ml:297 msgid "" "‘-io vddk-libdir=%s’ does not point to a directory. See the virt-v2v-input-" "vmware(1) manual." msgstr "" #: output/output.ml:85 msgid "" "‘-oo compressed’ is only allowed when the output format is a local qcow2-" "format file, i.e. ‘-of qcow2’" msgstr "" #: input/input_vddk.ml:232 msgid "" "‘openssl’ command not found: automatically detecting thumbprint is not " "possible, so you must use ‘-io vddk-thumbprint=XX:XX...’" msgstr "" #: common/mltools/getopt-c.c:68 #, c-format msgid "Try ‘%s --help’ or consult %s(1) for more information.\n" msgstr "" #: common/mltools/getopt-c.c:187 #, c-format msgid "%s: ‘%s’ is not a numeric value.\n" msgstr "" #: common/mltools/getopt-c.c:193 #, c-format msgid "%s: %s: integer out of range\n" msgstr "%s: %s: સીમાની બહાર ઇંટિજર\n" #: common/mltools/getopt-c.c:383 #, c-format msgid "%s: ‘%s’ is not allowed for -%c; allowed values are:\n" msgstr "" #: common/mltools/getopt-c.c:386 #, c-format msgid "%s: ‘%s’ is not allowed for %s%s; allowed values are:\n" msgstr "" #: common/mltools/getopt-c.c:421 #, c-format msgid "Extra parameter on the command line: ‘%s’.\n" msgstr "" #: common/options/config.c:72 #, c-format msgid "%s: line %d: error parsing configuration file: %s" msgstr "" #: common/options/decrypt.c:52 #, c-format msgid "string size overflow" msgstr "" #: common/options/decrypt.c:170 #, c-format msgid "" "'clevis_luks_unlock', needed for decrypting %s, is unavailable in this " "libguestfs version" msgstr "" #: common/options/decrypt.c:184 #, c-format msgid "" "could not find key to open LUKS encrypted %s.\n" "\n" "Try using --key on the command line.\n" "\n" "Original error: %s (%d)" msgstr "" #: common/options/inspect.c:78 #, c-format msgid "" "%s: no operating system was found on this disk\n" "\n" "If using guestfish ‘-i’ option, remove this option and instead\n" "use the commands ‘run’ followed by ‘list-filesystems’.\n" "You can then mount filesystems you want by hand using the\n" "‘mount’ or ‘mount-ro’ command.\n" "\n" "If using guestmount ‘-i’, remove this option and choose the\n" "filesystem(s) you want to see by manually adding ‘-m’ option(s).\n" "Use ‘virt-filesystems’ to see what filesystems are available.\n" "\n" "If using other virt tools, this disk image won’t work\n" "with these tools. Use the guestfish equivalent commands\n" "(see the virt tool manual page).\n" msgstr "" #: common/options/inspect.c:99 #, c-format msgid "" "%s: multi-boot operating systems are not supported\n" "\n" "If using guestfish ‘-i’ option, remove this option and instead\n" "use the commands ‘run’ followed by ‘list-filesystems’.\n" "You can then mount filesystems you want by hand using the\n" "‘mount’ or ‘mount-ro’ command.\n" "\n" "If using guestmount ‘-i’, remove this option and choose the\n" "filesystem(s) you want to see by manually adding ‘-m’ option(s).\n" "Use ‘virt-filesystems’ to see what filesystems are available.\n" "\n" "If using other virt tools, multi-boot operating systems won’t work\n" "with these tools. Use the guestfish equivalent commands\n" "(see the virt tool manual page).\n" msgstr "" #: common/options/inspect.c:161 #, c-format msgid "%s: some filesystems could not be mounted (ignored)\n" msgstr "%s: અમુક ફાઇલસિસ્ટમોને માઉન્ટ કરી શક્યા નહિં (અવગણેલ)\n" #: common/options/inspect.c:178 #, c-format msgid "Operating system: %s\n" msgstr "ઓપરેટીંગ સિસ્ટમ: %s\n" #: common/options/inspect.c:196 #, c-format msgid "%s mounted on %s\n" msgstr "" #: common/options/keys.c:63 #, c-format msgid "Enter key or passphrase (\"%s\"): " msgstr "કી અથવા પાસફ્રેઝને દાખલ કરો (\"%s\"): " #: common/options/keys.c:146 #, c-format msgid "size_t overflow" msgstr "" #: common/options/keys.c:193 #, fuzzy, c-format #| msgid "could not parse boot size" msgid "could not read key from user" msgstr "બુટ માપનું પદચ્છેદન કરી શક્યા નહિં" #: common/options/options.c:283 #, c-format msgid "%s: ‘%s’ could not be mounted.\n" msgstr "" #: common/options/options.c:287 #, c-format msgid "" "%s: Check mount(8) man page to ensure options ‘%s’\n" "%s: are supported by the filesystem that is being mounted.\n" msgstr "" #: common/options/options.c:291 #, c-format msgid "%s: Did you mean to mount one of these filesystems?\n" msgstr "" #: common/options/options.c:304 #, c-format msgid "cannot determine the subvolume for %s: %s (%d)" msgstr "" #: common/options/uri.c:119 #, c-format msgid "%s: --add: could not parse URI ‘%s’\n" msgstr "" #: common/options/uri.c:130 #, c-format msgid "%s: %s: scheme of URI is NULL or empty\n" msgstr "" #: common/options/uri.c:138 #, c-format msgid "%s: %s: cannot have both a server name and a socket query parameter\n" msgstr "" #: common/utils/utils.c:107 #, c-format msgid "%s exited successfully" msgstr "" #: common/utils/utils.c:110 #, c-format msgid "%s exited with error status %d" msgstr "" #: common/utils/utils.c:114 #, c-format msgid "%s killed by signal %d (%s)" msgstr "" #: common/utils/utils.c:118 #, c-format msgid "%s stopped by signal %d (%s)" msgstr "" #: common/utils/utils.c:122 #, c-format msgid "%s exited for an unknown reason (status %d)" msgstr "" ================================================ FILE: po/hi.po ================================================ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR Red Hat Inc. # This file is distributed under the same license as the PACKAGE package. # # Translators: # Rajesh Ranjan , 2011 # rjones , 2011 msgid "" msgstr "" "Project-Id-Version: libguestfs 1.39.12\n" "Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?" "component=libguestfs&product=Virtualization+Tools\n" "POT-Creation-Date: 2025-02-16 17:05+0000\n" "PO-Revision-Date: 2015-02-21 10:49+0000\n" "Last-Translator: Copied by Zanata \n" "Language-Team: Hindi (http://www.transifex.com/projects/p/libguestfs/" "language/hi/)\n" "Language: hi\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Zanata 4.6.2\n" #: input/input_ova.ml:135 common/mltools/tools_utils.ml:235 msgid "%s" msgstr "" #: common/mltools/getopt.ml:73 msgid "" "%s\n" "Options:\n" msgstr "" #: common/mltools/tools_utils.ml:695 common/mlcustomize/customize_run.ml:390 msgid "%s (ignored)" msgstr "" #: common/mltools/checksums.ml:71 msgid "%s did not return any output" msgstr "" #: common/mlcustomize/customize_run.ml:183 msgid "%s does not exist in the guest" msgstr "" #: output/output_ovirt.ml:275 msgid "" "%s does not exist or is not a directory.\n" "\n" "Most likely cause: Either the %s (%s) has not been attached to any Data " "Center, or the path %s is not an %s at all.\n" "\n" "You have to attach the %s to a Data Center using the oVirt user interface " "first.\n" "\n" "If you don’t know what the %s mount point should be then you can also find " "this out through the oVirt user interface." msgstr "" #: common/mlcustomize/customize_run.ml:113 msgid "%s ignored for non-Windows guest" msgstr "" #: common/mlcustomize/customize_run.ml:186 msgid "%s is not a regular file in the guest" msgstr "" #. open/open.ml:39 #. inspector/inspector.ml:153 #. inspector/inspector.ml:40 #. in-place/in_place.ml:164 #. in-place/in_place.ml:45 #: v2v/v2v.ml:194 v2v/v2v.ml:183 v2v/v2v.ml:159 v2v/v2v.ml:44 open/open.ml:68 msgid "%s option used more than once on the command line" msgstr "" #: common/mltools/tools_utils.ml:231 common/mltools/tools_utils.ml:202 msgid "%s: %s" msgstr "" #: common/mltools/tools_utils.ml:233 msgid "%s: %s: %s" msgstr "" #: common/mltools/on_exit.ml:77 msgid "" "%s: Exiting on signal %s\n" "%!" msgstr "" #: common/mlcustomize/inject_virtio_win.ml:411 msgid "%s: cannot open virtio-win ISO file: %s" msgstr "" #: common/mlcustomize/customize_run.ml:64 msgid "%s: command exited with an error" msgstr "" #: v2v/v2v.ml:277 msgid "" "%s: convert a guest to use KVM\n" "\n" "virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi -os imported " "esx_guest\n" "\n" "virt-v2v -i libvirtxml guest-domain.xml -o local -os /var/tmp\n" "\n" "virt-v2v -i disk disk.img -o local -os /var/tmp\n" "\n" "There is a companion front-end called \"virt-p2v\" which comes as an\n" "ISO or CD image that can be booted on physical machines.\n" "\n" "A short summary of the options is given below. For detailed help please\n" "read the man page virt-v2v(1).\n" msgstr "" #: in-place/in_place.ml:217 msgid "" "%s: convert a guest to use KVM in-place\n" "\n" "Note this program modifies the guest in-place with no backup.\n" "Normally you should use virt-v2v.\n" "\n" "virt-v2v-in-place -i libvirtxml guest-domain.xml\n" "\n" "virt-v2v-in-place -i disk disk.img\n" "\n" "A short summary of the options is given below. For detailed help please\n" "read the man page virt-v2v-in-place(1).\n" msgstr "" #: input/input_vddk.ml:207 msgid "%s: enter password for ‘%s’: " msgstr "" #: common/mltools/tools_utils.ml:172 msgid "%s: error: %s" msgstr "" #: inspector/inspector.ml:198 msgid "" "%s: estimate disk space needed before virt-v2v conversion\n" "\n" "virt-v2v-inspector -i disk disk.img [-O output.xml]\n" "\n" "A short summary of the options is given below. For detailed help please\n" "read the man page virt-v2v-inspector(1).\n" msgstr "" #: open/open.ml:94 msgid "" "%s: open the virt-v2v input and run a program on it\n" "\n" "virt-v2v-open -i disk disk.img --run 'virt-inspector --format=raw @@'\n" "\n" "A short summary of the options is given below. For detailed help please\n" "read the man page virt-v2v-open(1).\n" msgstr "" #: common/mltools/tools_utils.ml:726 msgid "%s: operation timed out" msgstr "" #: input/OVA.ml:127 input/OVA.ml:121 msgid "" "%s: unsupported file format\n" "\n" "Formats which we currently understand for '-i ova' are: tar (uncompressed, " "compress with gzip or xz), zip" msgstr "" #: common/mltools/tools_utils.ml:191 msgid "%s: warning: %s" msgstr "" #. common/mlcustomize/customize_cmdline.ml:258 #: common/mlcustomize/customize_cmdline.ml:367 msgid "'CMD+ARGS'" msgstr "" #: common/mlcustomize/customize_run.ml:133 msgid "" "--append-line: line must not contain newline characters. Use the --append-" "line option multiple times to add several lines." msgstr "" #: common/mlcustomize/customize_run.ml:152 msgid "--chown: could not parse numeric UID:GID from %s:%s" msgstr "" #: common/mlcustomize/customize_run.ml:216 msgid "" "--inject-blnsvr: blnsvr.exe not found in virtio-win source that you specified" msgstr "" #: common/mlcustomize/customize_run.ml:225 msgid "" "--inject-qemu-ga: QEMU Guest Agent MSI not found in virtio-win source that " "you specified" msgstr "" #: common/mlcustomize/customize_run.ml:241 msgid "" "--inject-virtio-win: virtio drivers were not found for this Windows version " "in the virtio-win source that you specified" msgstr "" #: v2v/v2v.ml:146 inspector/inspector.ml:136 in-place/in_place.ml:143 msgid "--mac ip prefix length field is out of range" msgstr "" #: v2v/v2v.ml:340 msgid "--parallel parameter must be >= 1" msgstr "" #: input/input_disk.ml:42 msgid "-i disk: expecting a disk image (filename) on the command line" msgstr "" #: input/input_xen_ssh.ml:65 msgid "-i libvirt: expecting -ic parameter for Xen over SSH connection" msgstr "" #: input/input_vddk.ml:142 input/input_vcenter_https.ml:88 msgid "-i libvirt: expecting -ic parameter for vcenter connection" msgstr "" #: input/input_vcenter_https.ml:101 msgid "-i libvirt: expecting -ic parameter to contain vcenter server name" msgstr "" #: input/input_vcenter_https.ml:78 msgid "-i libvirt: expecting -ip passwordfile parameter for vCenter connection" msgstr "" #. input/input_vcenter_https.ml:70 #. input/input_libvirt.ml:41 #: input/input_xen_ssh.ml:57 input/input_vddk.ml:132 msgid "-i libvirt: expecting a libvirt guest name on the command line" msgstr "" #: input/input_libvirt.ml:59 msgid "-i libvirtxml: expecting a libvirt XML filename on the command line" msgstr "" #: input/input_ova.ml:243 msgid "-i ova: OVF references file ‘%s’ which was not found in the OVA archive" msgstr "" #: input/input_ova.ml:78 msgid "" "-i ova: corrupt OVA: checksum of disk %s does not match manifest (actual = " "%s, expected = %s)" msgstr "" #: input/input_ova.ml:52 msgid "-i ova: expecting an OVA file name on the command line" msgstr "" #: input/OVA.ml:361 msgid "" "-i ova: invalid OVA file: path ‘%s’ references a file outside the archive" msgstr "" #: input/input_vmx.ml:57 msgid "-i vmx: cannot use -it vddk in this input mode" msgstr "" #: input/input_vmx.ml:60 msgid "-i vmx: expecting a VMX file or ssh:// URI" msgstr "" #: input/vCenter.ml:159 msgid "" "-ip PASSWORD_FILE parameter ignored because 'user@' was not given in the URL" msgstr "" #: input/input_vddk.ml:119 msgid "-it vddk: ‘-io %s’ is not a valid input option" msgstr "" #: output/output.ml:54 msgid "-o %s: %s option cannot be used in this output mode" msgstr "" #: output/output_disk.ml:66 msgid "-o disk: output directory was not specified, use '-os /dir'" msgstr "" #: output/output_libvirt.ml:59 output/output_disk.ml:56 msgid "-o disk: unknown output option ‘-oo %s’" msgstr "" #: output/output_kubevirt.ml:81 msgid "-o kubevirt: output directory was not specified, use '-os /dir'" msgstr "" #: output/output_kubevirt.ml:91 msgid "" "-o kubevirt: the guest name must contain only lowercase alphanumeric " "characters, '-' or '.', and must start and end with an alphanumeric " "character. Rerun virt-v2v with the '-on name' option to rename it." msgstr "" #: output/output_kubevirt.ml:71 msgid "-o kubevirt: unknown output option ‘-oo %s’" msgstr "" #: output/output_libvirt.ml:120 msgid "" "-o libvirt: output pool ‘%s’ does not have /pool/target/path element. See " "virt-v2v-output-local(1)" msgstr "" #: output/output_libvirt.ml:124 msgid "" "-o libvirt: output pool ‘%s’ has type='dir' but the /pool/target/path " "element is not a local directory. See virt-v2v-output-local(1)" msgstr "" #: output/output_libvirt.ml:116 msgid "" "-o libvirt: output pool ‘%s’ is not a directory (type='dir'). See virt-v2v-" "output-local(1)" msgstr "" #: output/output_openstack.ml:88 msgid "-o openstack mode only supports -oa sparse -of raw" msgstr "" #: output/output_openstack.ml:115 msgid "-o openstack: unknown output option ‘-oo %s’" msgstr "" #: output/output_ovirt_upload.ml:97 msgid "-o ovirt-upload: -oo ovirt-cafile set more than once" msgstr "" #: output/output_ovirt_upload.ml:101 msgid "-o ovirt-upload: -oo ovirt-cluster set more than once" msgstr "" #: output/output_ovirt_upload.ml:112 msgid "-o ovirt-upload: invalid UUID for -oo ovirt-disk-uuid" msgstr "" #: output/output_ovirt_upload.ml:76 msgid "" "-o ovirt-upload: output password file was not specified, use ‘-op’ to point " "to a file which contains the password used to connect to the oVirt server" msgstr "" #: output/output_ovirt_upload.ml:83 msgid "-o ovirt-upload: output storage was not specified, use ‘-os’" msgstr "" #: output/output_ovirt_upload.ml:116 msgid "-o ovirt-upload: unknown output option ‘-oo %s’" msgstr "" #: output/output_ovirt_upload.ml:68 msgid "" "-o ovirt-upload: use ‘-oc’ to point to the oVirt server REST API URL, which " "is usually https://servername/ovirt-engine/api" msgstr "" #: output/output_ovirt.ml:51 msgid "-o ovirt: -os option was not specified" msgstr "" #: output/output_qemu.ml:72 msgid "-o qemu: output directory was not specified, use '-os /dir'" msgstr "" #: output/output_qemu.ml:63 msgid "-o qemu: unknown output option ‘-oo %s’" msgstr "" #: output/output_vdsm.ml:102 msgid "-o vdsm: -oo vdsm-image-uuid was not specified" msgstr "" #: output/output_vdsm.ml:81 msgid "-o vdsm: -oo vdsm-ovf-output set more than once" msgstr "" #: output/output_vdsm.ml:77 msgid "-o vdsm: -oo vdsm-vm-uuid set more than once" msgstr "" #: output/output_vdsm.ml:110 msgid "-o vdsm: -os option was not specified" msgstr "" #: output/output_vdsm.ml:97 msgid "-o vdsm: either -oo vdsm-vol-uuid or -oo vdsm-vm-uuid was not specified" msgstr "" #: output/output_vdsm.ml:90 msgid "-o vdsm: unknown output option ‘-oo %s’" msgstr "" #: output/output_vdsm.ml:74 msgid "-o vdsm: unknown vdsm-compat level ‘%s’" msgstr "" #. output/output_kubevirt.ml:84 #. output/output_disk.ml:68 #: output/output_vdsm.ml:112 output/output_qemu.ml:74 msgid "-os %s: output directory does not exist or is not a directory" msgstr "" #: input/parse_libvirt_xml.ml:279 msgid " missing 'method' attribute, ignoring" msgstr "" #: input/parse_libvirt_xml.ml:291 msgid " unknown fail='%s' attribute, ignoring" msgstr "" #: input/parse_libvirt_xml.ml:370 input/parse_libvirt_xml.ml:317 msgid " was ignored" msgstr "" #: input/parse_libvirt_xml.ml:338 msgid " with was ignored" msgstr "" #: input/parse_libvirt_xml.ml:365 msgid " with was ignored" msgstr "" #: input/parse_libvirt_xml.ml:299 msgid " element with no type attribute ignored" msgstr "" #: input/parse_libvirt_xml.ml:167 msgid " in the input libvirt XML was ignored" msgstr "" #: input/parse_libvirt_xml.ml:414 msgid "" " was ignored because the device name could not be recognized" msgstr "" #: input/input_vddk.ml:176 msgid "" " was not found in the output of ‘virsh dumpxml \"%s\"’. The " "most likely reason is that libvirt is too old, try upgrading libvirt to ≥ " "3.7." msgstr "" #: common/mlcustomize/customize_cmdline.ml:305 msgid "Add package(s) to install" msgstr "" #: common/mlcustomize/customize_cmdline.ml:270 msgid "Add package(s) to install at first boot" msgstr "" #: common/mlcustomize/customize_cmdline.ml:175 msgid "Append line(s) to the file" msgstr "" #: common/mlcustomize/customize_run.ml:137 msgid "Appending line to %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:197 msgid "Change the owner user and group ID of a file or directory" msgstr "" #: common/mlcustomize/customize_cmdline.ml:186 msgid "Change the permissions of a file" msgstr "" #: common/mlcustomize/customize_run.ml:155 msgid "Changing owner of %s to %d:%d" msgstr "" #: common/mlcustomize/customize_run.ml:141 msgid "Changing permissions of %s to %s" msgstr "" #: input/input_libvirt.ml:174 input/input_libvirt.ml:157 msgid "Checking %s checksum of disk %d/%d" msgstr "" #: common/mlcustomize/customize_cmdline.ml:488 msgid "Compatibility option doing nothing" msgstr "" #: common/mlcustomize/customize_cmdline.ml:219 msgid "Copy files in disk image" msgstr "" #: common/mlcustomize/customize_cmdline.ml:397 msgid "Copy local files or directories from a tarball into image" msgstr "" #: common/mlcustomize/customize_cmdline.ml:230 msgid "Copy local files or directories into image" msgstr "" #: common/mlcustomize/customize_run.ml:168 msgid "Copying (in image): %s to %s" msgstr "" #: v2v/v2v.ml:518 msgid "Copying disk %d/%d" msgstr "" #: common/mlcustomize/customize_run.ml:172 msgid "Copying: %s to %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:322 msgid "Create a directory" msgstr "" #: common/mlcustomize/customize_cmdline.ml:316 msgid "Create symbolic links" msgstr "" #: v2v/v2v.ml:567 msgid "Creating output metadata" msgstr "" #: common/mlcustomize/customize_cmdline.ml:321 msgid "DIR" msgstr "" #: common/mlcustomize/customize_cmdline.ml:236 msgid "Delete a file or directory" msgstr "" #: common/mlcustomize/customize_run.ml:176 msgid "Deleting: %s" msgstr "" #: common/mltools/getopt.ml:225 msgid "Display brief help" msgstr "" #: common/mltools/tools_utils.ml:385 msgid "Display version and exit" msgstr "" #: common/mlcustomize/customize_cmdline.ml:482 msgid "Do not relabel files with correct SELinux labels" msgstr "" #: v2v/v2v.ml:248 inspector/inspector.ml:177 in-place/in_place.ml:190 msgid "Don't trim filesystems before conversion" msgstr "" #: common/mltools/tools_utils.ml:389 msgid "Don’t print progress messages" msgstr "" #: common/mltools/tools_utils.ml:420 msgid "Don’t turn off echo for passphrases" msgstr "" #: common/mlcustomize/customize_cmdline.ml:247 msgid "Edit file using Perl expression" msgstr "" #: common/mlcustomize/customize_run.ml:180 msgid "Editing: %s" msgstr "" #: common/mltools/tools_utils.ml:386 msgid "Enable libguestfs debugging messages" msgstr "" #: common/mltools/tools_utils.ml:387 msgid "Enable tracing of libguestfs calls" msgstr "" #: output/output_ovirt.ml:77 msgid "Export Storage Domain" msgstr "" #: open/open.ml:88 msgid "External command to run" msgstr "" #. common/mlcustomize/customize_cmdline.ml:408 #. common/mlcustomize/customize_cmdline.ml:373 #: common/mlcustomize/customize_cmdline.ml:414 msgid "FILE" msgstr "" #: common/mlcustomize/customize_cmdline.ml:455 msgid "FILE:CONTENT" msgstr "" #: common/mlcustomize/customize_cmdline.ml:444 msgid "FILE:DEST" msgstr "" #: common/mlcustomize/customize_cmdline.ml:242 msgid "FILE:EXPR" msgstr "" #: common/mlcustomize/customize_cmdline.ml:170 msgid "FILE:LINE" msgstr "" #: common/mlcustomize/customize_cmdline.ml:203 msgid "FILENAME" msgstr "" #. in-place/in_place.ml:378 #: v2v/v2v.ml:571 open/open.ml:220 inspector/inspector.ml:334 msgid "Finishing off" msgstr "" #: common/mlcustomize/customize_cmdline.ml:275 msgid "HOSTNAME" msgstr "" #: v2v/v2v.ml:254 inspector/inspector.ml:183 in-place/in_place.ml:194 msgid "How to choose root filesystem" msgstr "" #: common/mltools/tools_utils.ml:177 msgid "" "If reporting bugs, run %s with debugging enabled and include the complete " "output:\n" "\n" " %s -v -x [...]" msgstr "" #: common/mlcustomize/customize_cmdline.ml:386 msgid "Inject a public key into the guest" msgstr "" #: common/mlcustomize/customize_cmdline.ml:282 msgid "Inject the Balloon Server into a Windows guest" msgstr "" #: common/mlcustomize/customize_cmdline.ml:288 msgid "Inject the QEMU Guest Agent into a Windows guest" msgstr "" #: common/mlcustomize/customize_cmdline.ml:294 msgid "Inject virtio-win drivers into a Windows guest" msgstr "" #. in-place/in_place.ml:176 #: v2v/v2v.ml:216 open/open.ml:80 inspector/inspector.ml:165 msgid "Input format" msgstr "" #: input/input_vddk.ml:77 msgid "" "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" "\n" "Refer to nbdkit-vddk-plugin(1) and the VDDK documentation for further\n" "information on these settings.\n" msgstr "" #: v2v/v2v.ml:222 open/open.ml:86 inspector/inspector.ml:171 msgid "Input transport" msgstr "" #: common/mlcustomize/customize_run.ml:191 msgid "Installing firstboot command: %s" msgstr "" #: common/mlcustomize/customize_run.ml:195 msgid "Installing firstboot packages: %s" msgstr "" #: common/mlcustomize/customize_run.ml:202 msgid "Installing firstboot script: %s" msgstr "" #: common/mlcustomize/customize_run.ml:248 msgid "Installing packages: %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:225 msgid "LOCALPATH:REMOTEDIR" msgstr "" #. in-place/in_place.ml:174 #: v2v/v2v.ml:214 open/open.ml:78 inspector/inspector.ml:163 msgid "Libvirt URI" msgstr "" #: common/mlcustomize/customize_run.ml:255 msgid "Linking: %s -> %s" msgstr "" #. common/mlcustomize/customize_cmdline.ml:287 #. common/mlcustomize/customize_cmdline.ml:281 #: common/mlcustomize/customize_cmdline.ml:293 msgid "METHOD" msgstr "" #: common/mltools/tools_utils.ml:426 msgid "Make output machine readable" msgstr "" #: common/mlcustomize/customize_run.ml:260 msgid "Making directory: %s" msgstr "" #: v2v/v2v.ml:226 inspector/inspector.ml:173 in-place/in_place.ml:182 msgid "Map NIC to network or bridge or assign static IP" msgstr "" #: v2v/v2v.ml:210 inspector/inspector.ml:159 in-place/in_place.ml:170 msgid "Map bridge ‘in’ to ‘out’" msgstr "" #: v2v/v2v.ml:230 inspector/inspector.ml:179 in-place/in_place.ml:186 msgid "Map network ‘in’ to ‘out’" msgstr "" #: common/mlcustomize/customize_cmdline.ml:333 msgid "Move files in disk image" msgstr "" #: common/mlcustomize/customize_run.ml:264 msgid "Moving: %s -> %s" msgstr "" #. input/input_vcenter_https.ml:45 #. input/input_ova.ml:35 #. input/input_libvirt.ml:233 #. input/input_libvirt.ml:221 #. input/input_disk.ml:35 #: input/input_xen_ssh.ml:43 input/input_vmx.ml:36 msgid "No input options can be used in this mode.\n" msgstr "" #: output/output_ovirt.ml:40 output/output_null.ml:38 #: output/output_glance.ml:40 msgid "No output options can be used in this mode.\n" msgstr "" #: output/output_vdsm.ml:166 msgid "OVF (metadata) directory (%s) does not exist or is not a directory" msgstr "" #: common/mlcustomize/firstboot.ml:268 msgid "" "One of rhsrvany.exe or pvvxsvc.exe is missing in %s. One of them is " "required in order to install Windows firstboot scripts. You can get one by " "building rhsrvany (https://github.com/rwmjones/rhsrvany)" msgstr "" #: v2v/v2v.ml:236 msgid "Output hypervisor connection" msgstr "" #: output/output_ovirt_upload.ml:51 msgid "" "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" "\n" "You can override the UUIDs of the disks, instead of using autogenerated " "UUIDs\n" "after their uploads (if you do, you must supply one for each disk):\n" "\n" " -oo ovirt-disk-uuid=UUID Disk UUID\n" msgstr "" #: output/output_qemu.ml:44 msgid "" "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" msgstr "" #: output/output_vdsm.ml:43 msgid "" "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" "\n" "For 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" msgstr "" #: output/output_disk.ml:44 msgid "" "Output options that can be used with -o disk:\n" "\n" " -oo compressed Compress the output file (used only with -of qcow2)\n" msgstr "" #: output/output_kubevirt.ml:51 msgid "" "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" msgstr "" #: output/output_libvirt.ml:47 msgid "" "Output options that can be used with -o libvirt:\n" "\n" " -oo compressed Compress the output file (used only with -of qcow2)\n" msgstr "" #. common/mlcustomize/customize_cmdline.ml:235 #: common/mlcustomize/customize_cmdline.ml:420 msgid "PATH" msgstr "" #: common/mlcustomize/customize_cmdline.ml:181 msgid "PERMISSIONS:FILE" msgstr "" #. common/mlcustomize/customize_cmdline.ml:300 #. common/mlcustomize/customize_cmdline.ml:265 #: common/mlcustomize/customize_cmdline.ml:427 msgid "PKG,PKG.." msgstr "" #: v2v/v2v.ml:263 in-place/in_place.ml:203 msgid "Prefer 'virtio-blk' or 'virtio-scsi'" msgstr "" #: v2v/v2v.ml:252 in-place/in_place.ml:192 msgid "Print source and stop" msgstr "" #: common/mlcustomize/customize_cmdline.ml:208 msgid "Read customize commands from file" msgstr "" #: common/mltools/tools_utils.ml:421 msgid "Read passphrases from stdin" msgstr "" #: common/mlcustomize/customize_cmdline.ml:421 msgid "Recursively truncate all files in directory" msgstr "" #: common/mlcustomize/customize_run.ml:298 msgid "Recursively truncating: %s" msgstr "" #: v2v/v2v.ml:240 msgid "Rename guest when converting" msgstr "" #: common/mlcustomize/customize_cmdline.ml:259 msgid "Run command at first guest boot" msgstr "" #: common/mlcustomize/customize_cmdline.ml:368 msgid "Run command in disk image" msgstr "" #: common/mlcustomize/customize_cmdline.ml:253 msgid "Run script at first guest boot" msgstr "" #: common/mlcustomize/customize_cmdline.ml:362 msgid "Run script in disk image" msgstr "" #: common/mlcustomize/customize_cmdline.ml:409 msgid "Run touch on a file" msgstr "" #: v2v/v2v.ml:250 msgid "Run up to N instances of nbdcopy in parallel" msgstr "" #: open/open.ml:188 msgid "Running external command" msgstr "" #: common/mlcustomize/customize_run.ml:307 msgid "Running touch: %s" msgstr "" #. common/mlcustomize/customize_run.ml:159 #: common/mlcustomize/customize_run.ml:274 msgid "Running: %s" msgstr "" #. common/mlcustomize/customize_cmdline.ml:252 #: common/mlcustomize/customize_cmdline.ml:361 msgid "SCRIPT" msgstr "" #: common/mltools/tools_utils.ml:422 #: common/mlcustomize/customize_cmdline.ml:351 msgid "SELECTOR" msgstr "" #: common/mlcustomize/customize_run.ml:363 msgid "SELinux relabelling" msgstr "" #. common/mlcustomize/customize_cmdline.ml:214 #: common/mlcustomize/customize_cmdline.ml:328 msgid "SOURCE:DEST" msgstr "" #: common/mlcustomize/customize_run.ml:287 msgid "SSH key could not be injected for this type of guest" msgstr "" #: common/mlcustomize/customize_run.ml:284 msgid "SSH key inject: %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:374 msgid "Scrub a file" msgstr "" #: common/mlcustomize/customize_cmdline.ml:466 msgid "Scrub build log file" msgstr "" #: common/mlcustomize/customize_run.ml:374 msgid "Scrubbing the log file" msgstr "" #: common/mlcustomize/customize_run.ml:279 msgid "Scrubbing: %s" msgstr "" #: v2v/v2v.ml:208 msgid "Set bandwidth dynamically from file" msgstr "" #: v2v/v2v.ml:206 msgid "Set bandwidth to bits per sec" msgstr "" #. in-place/in_place.ml:172 #: v2v/v2v.ml:212 open/open.ml:76 inspector/inspector.ml:161 msgid "Set input mode (default: libvirt)" msgstr "" #: v2v/v2v.ml:228 inspector/inspector.ml:175 in-place/in_place.ml:184 msgid "Set memory size" msgstr "" #: v2v/v2v.ml:256 inspector/inspector.ml:185 in-place/in_place.ml:196 msgid "Set number of vCPUs" msgstr "" #. in-place/in_place.ml:178 #: v2v/v2v.ml:218 open/open.ml:82 inspector/inspector.ml:167 msgid "Set option for input mode" msgstr "" #: v2v/v2v.ml:242 msgid "Set option for output mode" msgstr "" #: v2v/v2v.ml:234 msgid "Set output allocation mode" msgstr "" #: v2v/v2v.ml:238 msgid "Set output format" msgstr "" #: v2v/v2v.ml:232 msgid "Set output mode (default: libvirt)" msgstr "" #: v2v/v2v.ml:246 msgid "Set output storage location" msgstr "" #: common/mlcustomize/customize_cmdline.ml:476 msgid "Set password crypto" msgstr "" #: common/mltools/tools_utils.ml:430 msgid "Set program name" msgstr "" #: common/mlcustomize/customize_cmdline.ml:356 msgid "Set root password" msgstr "" #: common/mlcustomize/customize_cmdline.ml:403 msgid "Set the default timezone" msgstr "" #: common/mlcustomize/customize_cmdline.ml:276 msgid "Set the hostname" msgstr "" #: inspector/inspector.ml:181 in-place/in_place.ml:188 msgid "Set the output filename" msgstr "" #: common/mlcustomize/customize_cmdline.ml:345 msgid "Set user password" msgstr "" #: common/mlcustomize/customize_run.ml:75 msgid "Setting a random seed" msgstr "" #: common/mlcustomize/customize_run.ml:354 msgid "Setting passwords" msgstr "" #: common/mlcustomize/password.ml:113 msgid "Setting random password of %s to %s" msgstr "" #: common/mlcustomize/customize_run.ml:207 msgid "Setting the hostname: %s" msgstr "" #: common/mlcustomize/customize_run.ml:90 msgid "Setting the machine ID in %s" msgstr "" #: common/mlcustomize/customize_run.ml:302 msgid "Setting the timezone: %s" msgstr "" #: v2v/v2v.ml:481 msgid "Setting up the destination: %s" msgstr "" #. in-place/in_place.ml:342 #: v2v/v2v.ml:457 open/open.ml:184 inspector/inspector.ml:310 msgid "Setting up the source: %s" msgstr "" #: v2v/v2v.ml:463 in-place/in_place.ml:348 msgid "Source guest information (--print-source option):\n" msgstr "" #: common/mltools/tools_utils.ml:422 msgid "Specify a LUKS key" msgstr "" #: common/mlcustomize/customize_cmdline.ml:392 msgid "TARFILE:REMOTEDIR" msgstr "" #: common/mlcustomize/customize_cmdline.ml:311 msgid "TARGET:LINK[:LINK..]" msgstr "" #: common/mlcustomize/customize_cmdline.ml:402 msgid "TIMEZONE" msgstr "" #: v2v/v2v.ml:200 msgid "" "The --in-place option has been replaced by the ‘virt-v2v-in-place’ program" msgstr "" #: output/output_qemu.ml:251 msgid "" "The Virt machine has no support for IDE. Please report a bug for virt-v2v -- " "refer to virt-v2v(1) section \"BUGS\"." msgstr "" #: output/output_qemu.ml:272 msgid "" "The Virt machine has no support for floppies. Please report a bug for virt-" "v2v -- refer to virt-v2v(1) section \"BUGS\"." msgstr "" #: lib/create_ovf.ml:785 msgid "" "This guest required a password for connection to its display, but this is " "not supported by oVirt. Therefore the converted guest’s display will not " "require a separate password to connect." msgstr "" #: input/input_vmx.ml:111 msgid "" "This transport does not support guests with snapshots. Either collapse the " "snapshots for this guest and try the conversion again, or use one of the " "alternate conversion methods described in virt-v2v-input-vmware(1) section " "\"NOTES\"." msgstr "" #: common/mlcustomize/customize_cmdline.ml:415 msgid "Truncate a file to zero size" msgstr "" #: common/mlcustomize/customize_run.ml:294 msgid "Truncating: %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:192 msgid "UID:GID:PATH" msgstr "" #: common/mlcustomize/customize_cmdline.ml:339 msgid "USER:SELECTOR" msgstr "" #: common/mlcustomize/customize_cmdline.ml:380 msgid "USER[:SELECTOR]" msgstr "" #: common/mlcustomize/customize_cmdline.ml:432 msgid "Uninstall package(s)" msgstr "" #: common/mlcustomize/customize_run.ml:311 msgid "Uninstalling packages: %s" msgstr "" #: common/mlcustomize/customize_run.ml:290 msgid "Unpack tar file: %s to %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:438 msgid "Update packages" msgstr "" #: common/mlcustomize/customize_run.ml:316 msgid "Updating packages" msgstr "" #: common/mlcustomize/customize_cmdline.ml:449 msgid "Upload local file to destination" msgstr "" #: common/mlcustomize/customize_run.ml:321 msgid "Uploading: %s to %s" msgstr "" #: common/mltools/tools_utils.ml:391 msgid "Use ANSI colour sequences even if not tty" msgstr "" #. in-place/in_place.ml:180 #: v2v/v2v.ml:220 open/open.ml:84 inspector/inspector.ml:169 msgid "Use password from file to connect to input hypervisor" msgstr "" #: v2v/v2v.ml:244 msgid "Use password from file to connect to output hypervisor" msgstr "" #: v2v/v2v.ml:224 msgid "Use virt-v2v-in-place instead" msgstr "" #: common/mltools/tools_utils.ml:392 msgid "Wrap log messages even if not tty" msgstr "" #: common/mlcustomize/customize_cmdline.ml:460 msgid "Write file" msgstr "" #: common/mlcustomize/customize_run.ml:346 msgid "Writing: %s" msgstr "" #: lib/YAML.ml:167 msgid "" "YAML block contains newline character. This should not happen, please " "report a bug against virt-v2v." msgstr "" #: output/output_libvirt.ml:96 msgid "" "a libvirt domain called ‘%s’ already exists on the target.\n" "\n" "If using virt-v2v directly, use the ‘-on’ option to select a different name. " "Or delete the existing domain on the target using the ‘virsh undefine’ " "command.\n" "\n" "If using virt-p2v, select a different ‘Name’ in the ‘Target properties’. Or " "delete the existing domain on the target using the ‘virsh undefine’ command." msgstr "" #: common/mlcustomize/append_line.ml:44 msgid "append_line: %s is not a file" msgstr "" #: input/input_libvirt.ml:206 msgid "" "bad checksum for disk %d/%d\n" "Expected checksum: %s\n" "Actual checksum: %s" msgstr "" #: lib/libvirt_utils.ml:59 msgid "cannot find libvirt domain ‘%s’: %s" msgstr "" #: lib/libvirt_utils.ml:96 msgid "" "cannot find libvirt pool ‘%s’: %s\n" "\n" "Use ‘virsh pool-list --all’ to list all available pools, and ‘virsh pool-" "dumpxml ’ to display details about a particular pool.\n" "\n" "To set the pool which virt-v2v uses, add the ‘-os ’ option." msgstr "" #: lib/libvirt_utils.ml:110 msgid "cannot find libvirt volume ‘%s’: %s" msgstr "" #: common/mlcustomize/firstboot.ml:235 msgid "" "cannot finish firstboot installation by running ‘%s’ because host cpu (%s) " "and guest arch (%s) are not compatible. The firstboot service may not run " "at boot." msgstr "" #: output/output_libvirt.ml:180 msgid "cannot get libvirt domain capabilities: %s" msgstr "" #: output/output_libvirt.ml:85 msgid "cannot get libvirt hypervisor capabilities: %s" msgstr "" #: v2v/v2v.ml:105 inspector/inspector.ml:95 in-place/in_place.ml:102 msgid "cannot parse --mac \"%s\" parameter" msgstr "" #: v2v/v2v.ml:129 inspector/inspector.ml:119 in-place/in_place.ml:126 msgid "cannot parse --mac ip %s: doesn’t look like “%s” is an IP address" msgstr "" #: v2v/v2v.ml:143 inspector/inspector.ml:133 in-place/in_place.ml:140 msgid "cannot parse --mac ip prefix length field as an integer: %s" msgstr "" #: common/mlcustomize/guest_packages.ml:29 msgid "" "cannot use ‘%s’ because no package manager has been detected for this guest " "OS.\n" "\n" "If this guest OS is a common one with ordinary package management then this " "may have been caused by a failure of libguestfs inspection.\n" "\n" "For OSes such as Windows that lack package management, this is not " "possible. Try using one of the ‘--firstboot*’ flags instead (described in " "the virt-customize(1) manual)." msgstr "" #: output/output_ovirt.ml:91 msgid "" "cannot write files to the NFS server as %d:%d, even though we appear to be " "running as root. This probably means the NFS client or idmapd is not " "configured properly.\n" "\n" "You will have to chown the files that virt-v2v creates after the run, " "otherwise oVirt will not be able to import the VM." msgstr "" #: output/output_ovirt.ml:99 msgid "" "cannot write files to the NFS server as %d:%d. You might want to stop virt-" "v2v (^C) and rerun it as root." msgstr "" #: common/mlcustomize/customize_cmdline.ml:508 msgid "command '%s' cannot be used in command files, see the man page" msgstr "" #: common/mlcustomize/customize_cmdline.ml:525 msgid "command '%s' not valid, see the man page" msgstr "" #: common/mldrivers/linux_bootloaders.ml:318 msgid "could not add grub2 serial console (ignored)" msgstr "" #: input/ssh.ml:52 msgid "" "could not copy the VMX file from the remote server, see earlier error " "messages" msgstr "" #: output/output_libvirt.ml:211 msgid "" "could not define libvirt domain: %s.\n" "The libvirt XML is still available in ‘%s’. Try running ‘virsh -c %s define " "%s’ yourself instead." msgstr "" #: common/mldrivers/linux_bootloaders.ml:221 msgid "could not determine a way to update the configuration of Grub2" msgstr "" #: input/input_vddk.ml:243 msgid "" "could not fetch thumbprint from the server, you mus use ‘-io vddk-" "thumbprint=XX:XX...’" msgstr "" #: common/mldrivers/linux_bootloaders.ml:376 msgid "could not find bootloader mount point (%s): %s" msgstr "" #: common/mldrivers/windows_drivers.ml:91 msgid "" "could not find registry entry " "HKEY_LOCAL_MACHINE\\SYSTEM\\DriverDatabase\\DeviceIds in this Windows " "guest. It may be either a very old or very new version of Windows that we " "cannot process." msgstr "" #: common/mlcustomize/firstboot.ml:232 msgid "" "could not finish firstboot installation by running ‘%s’ because the command " "failed: %s" msgstr "" #. input/input_vcenter_https.ml:94 #: input/select_input.ml:66 input/input_xen_ssh.ml:71 input/input_vddk.ml:151 msgid "could not parse '-ic %s'. Original error message was: %s" msgstr "" #: input/parse_libvirt_xml.ml:407 input/parse_libvirt_xml.ml:54 msgid "could not parse device name ‘%s’ from the source libvirt XML" msgstr "" #: input/OVF.ml:168 msgid "could not parse disk rasd:HostResource from OVF document" msgstr "" #: input/input_ova.ml:98 msgid "could not parse ovf:Name from OVF document" msgstr "" #: output/output_ovirt.ml:247 msgid "" "could not read the %s specified by the '-os %s' parameter on the command " "line. Is it really an OVirt %s? The original error is: %s" msgstr "" #: common/mldrivers/linux_bootloaders.ml:336 msgid "" "could not rebuild grub2 configuration file (%s). This may mean that grub " "output will not be sent to the serial port, but otherwise should be " "harmless. Original error message: %s" msgstr "" #: output/output_libvirt.ml:156 msgid "could not refresh libvirt pool ‘%s’: %s" msgstr "" #: common/mldrivers/linux_bootloaders.ml:320 msgid "could not remove grub2 serial console (ignored)" msgstr "" #: common/mltools/registry.ml:93 msgid "" "decode_utf16le: Windows UTF16-LE string contains non-7-bit characters. This " "is a bug in %s, please report it." msgstr "" #: common/mltools/registry.ml:87 msgid "" "decode_utf16le: Windows string does not appear to be in UTF16-LE encoding. " "This could be a bug in %s." msgstr "" #: common/mldrivers/linux_bootloaders.ml:126 msgid "didn't find grub entry for kernel %s" msgstr "" #: input/input_disk.ml:150 msgid "disks on the command line have mixed formats" msgstr "" #: input/parse_libvirt_xml.ml:194 msgid "display in the input libvirt XML was ignored" msgstr "" #: output/output_qemu.ml:147 msgid "don’t know how to convert UEFI guests for architecture %s" msgstr "" #: common/mldrivers/linux.ml:158 msgid "don’t know how to find file owner using %s" msgstr "" #: common/mldrivers/linux.ml:89 msgid "don’t know how to get list of files from package using %s" msgstr "" #: common/mltools/curl.ml:82 msgid "downloading %s" msgstr "" #: lib/networks.ml:84 msgid "" "duplicate --mac parameter. Duplicate mappings specified for MAC address %s." msgstr "" #: lib/networks.ml:102 msgid "" "duplicate -b/--bridge parameter. Duplicate mappings specified for bridge %s." msgstr "" #: lib/networks.ml:108 msgid "duplicate -b/--bridge parameter. Only one default mapping is allowed." msgstr "" #: lib/networks.ml:90 msgid "" "duplicate -n/--network parameter. Duplicate mappings specified for network " "%s." msgstr "" #: lib/networks.ml:96 msgid "duplicate -n/--network parameter. Only one default mapping is allowed." msgstr "" #: input/OVF.ml:143 msgid "error parsing disk fileRef" msgstr "" #: input/input_ova.ml:124 msgid "error uncompressing %s, see earlier error messages" msgstr "" #: input/OVA.ml:210 input/OVA.ml:112 msgid "error unpacking %s, see earlier error messages" msgstr "" #: common/mltools/tools_utils.ml:248 msgid "exception: %s" msgstr "" #: common/mltools/tools_utils.ml:455 msgid "exited with error %d" msgstr "" #: lib/utils.ml:34 msgid "exited with non-zero error code %d" msgstr "" #: input/input_disk.ml:147 msgid "expected >= 1 disk name on the command line" msgstr "" #: common/mltools/xpath_helpers.ml:36 msgid "" "expecting XML expression to return an integer (expression: %s, matching " "string: %s)" msgstr "" #: common/mltools/tools_utils.ml:440 msgid "external command" msgstr "" #: output/output_ovirt_upload.ml:265 msgid "failed server prechecks, see earlier errors" msgstr "" #: output/output_ovirt_upload.ml:507 msgid "failed to create virtual machine, see earlier errors" msgstr "" #: output/output_ovirt_upload.ml:479 msgid "failed to finalize the transfers, see earlier errors" msgstr "" #: common/mldrivers/linux_bootloaders.ml:208 msgid "failed to find grub2-mkconfig binary (but Grub2 was detected on guest)" msgstr "" #: input/OVA.ml:461 msgid "failed to parse line returned by tar: %S" msgstr "" #: output/output_ovirt_upload.ml:394 msgid "failed to start transfer, see earlier errors" msgstr "" #: output/output_ovirt_upload.ml:311 msgid "failed vmchecks, see earlier errors" msgstr "" #: common/mltools/tools_utils.ml:239 msgid "failure: %s" msgstr "" #: input/input_ova.ml:134 msgid "file ‘%s’ not found in the ova" msgstr "" #: common/mlcustomize/firstboot.ml:143 msgid "" "firstboot: unknown version for old firstboot.service file %s (md5=%s), it " "will not be removed" msgstr "" #: common/mltools/tools_utils.ml:258 msgid "generated by %s %s" msgstr "" #: output/create_libvirt_xml.ml:39 msgid "get_osinfo_id: unknown guest operating system: %s" msgstr "" #: output/output_glance.ml:66 msgid "" "glance: glance client is not installed or set up correctly. You may need to " "set environment variables or source a script to enable authentication. See " "preceding messages for details." msgstr "" #: output/output_glance.ml:139 msgid "glance: image upload to glance failed, see earlier errors" msgstr "" #: common/mlcustomize/firstboot.ml:386 common/mlcustomize/firstboot.ml:164 msgid "guest type %s is not supported" msgstr "" #: common/mlcustomize/firstboot.ml:413 msgid "guest type %s/%s is not supported" msgstr "" #: common/mltools/tools_utils.ml:749 msgid "" "host (%s/%s) and guest (%s/%s) are not compatible, so you cannot use command " "line options that involve running commands in the guest. Use --firstboot " "scripts instead." msgstr "" #: common/mlcustomize/customize_run.ml:209 msgid "hostname could not be set for this type of guest" msgstr "" #: common/mldrivers/linux_kernels.ml:342 msgid "ignoring kernel %s in bootloader, as it does not exist." msgstr "" #: output/output_vdsm.ml:160 msgid "image directory (%s) does not exist or is not a directory" msgstr "" #: input/parse_libvirt_xml.ml:81 msgid "in the libvirt XML metadata, is missing or empty" msgstr "" #: input/parse_libvirt_xml.ml:87 msgid "in the libvirt XML metadata, is missing or empty" msgstr "" #: input/input_vcenter_https.ml:52 input/input_libvirt.ml:107 msgid "in-place mode does not work with HTTP source" msgstr "" #: input/input_vddk.ml:146 msgid "in-place mode does not work with VDDK source" msgstr "" #: input/input_vmx.ml:43 msgid "in-place mode does not work with VMX source" msgstr "" #: input/input_xen_ssh.ml:50 msgid "in-place mode does not work with Xen over SSH source" msgstr "" #: output/output_kubevirt.ml:116 msgid "" "incorrect number of '-oo disk' parameters. This guest has %d disks, but the " "parameter was used %d times." msgstr "" #: input/input_xen_ssh.ml:119 msgid "" "input from xen over ssh does not support disks stored on remote block " "devices. See virt-v2v-input-xen(1) section \"Xen or ssh conversions from " "block devices\"." msgstr "" #. in-place/in_place.ml:397 #: v2v/v2v.ml:590 open/open.ml:238 inspector/inspector.ml:353 msgid "" "insufficient free space in the conversion server temporary directory %s " "(%s).\n" "\n" "Either free up space in that directory, or set the LIBGUESTFS_CACHEDIR " "environment variable to point to another directory with more than 1GB of " "free space.\n" "\n" "See also the virt-v2v(1) manual, section \"Minimum free space check in the " "host\"." msgstr "" #: common/mltools/tools_utils.ml:246 msgid "internal error: Not_found exception was thrown" msgstr "" #: common/mltools/tools_utils.ml:243 msgid "internal error: assertion failed at %s, line %d, char %d" msgstr "" #: common/mltools/tools_utils.ml:241 msgid "internal error: invalid argument: %s" msgstr "" #: common/mldrivers/linux.ml:128 msgid "internal error: is_file_owned: dpkg command returned no output" msgstr "" #: common/mldrivers/linux.ml:133 msgid "internal error: is_file_owned: unexpected output from dpkg command: %s" msgstr "" #: common/mldrivers/linux_bootloaders.ml:130 msgid "internal error: regular expression did not match ‘%s’" msgstr "" #: v2v/v2v.ml:548 msgid "internal error: wait returned unexpected process ID %d status \"%s\"" msgstr "" #: v2v/v2v.ml:114 inspector/inspector.ml:104 in-place/in_place.ml:111 msgid "invalid --mac ip option" msgstr "" #: v2v/v2v.ml:98 inspector/inspector.ml:88 in-place/in_place.ml:95 msgid "invalid -b/--bridge parameter" msgstr "" #: v2v/v2v.ml:90 inspector/inspector.ml:80 in-place/in_place.ml:87 msgid "invalid -n/--network parameter" msgstr "" #: input/parse_domain_from_vmx.ml:402 msgid "invalid cpuid.coresPerSocket < number of vCPUs" msgstr "" #. common/mlcustomize/customize_cmdline.ml:153 #. common/mlcustomize/customize_cmdline.ml:145 #: common/mlcustomize/customize_cmdline.ml:161 msgid "invalid format for '--%s' parameter, see the man page" msgstr "" #: common/mltools/tools_utils.ml:359 msgid "invalid format string for --machine-readable: %s" msgstr "" #: lib/utils.ml:279 msgid "invalid input filename (%s)" msgstr "" #: input/OVA.ml:445 msgid "invalid offset returned by tar: %S" msgstr "" #: common/mltools/tools_utils.ml:374 msgid "invalid output fd for --machine-readable: %s" msgstr "" #: common/mltools/tools_utils.ml:376 msgid "invalid output for --machine-readable: %s" msgstr "" #: common/mltools/tools_utils.ml:368 msgid "invalid output stream for --machine-readable: %s" msgstr "" #: common/mlcustomize/password.ml:73 msgid "invalid password selector ‘%s’; see the man page" msgstr "" #: input/OVA.ml:450 msgid "invalid size returned by tar: %S" msgstr "" #: common/mlcustomize/ssh_key.ml:45 msgid "invalid ssh-inject selector ‘%s’; see the man page" msgstr "" #: input/OVF.ml:82 msgid "invalid vmw:CoresPerSocket (%d) ignored" msgstr "" #: input/OVF.ml:88 msgid "invalid vmw:CoresPerSocket < number of cores" msgstr "" #: common/mldrivers/linux_bootloaders.ml:114 msgid "kernel %s is not under grub tree %s" msgstr "" #: common/mltools/tools_utils.ml:539 common/mltools/tools_utils.ml:458 msgid "killed by signal %d" msgstr "" #: common/mltools/tools_utils.ml:237 msgid "libguestfs error: %s" msgstr "" #: lib/libvirt_utils.ml:72 msgid "" "libvirt domain ‘%s’ is running or paused. Converting a live guest will " "result in corrupted output. However this is safe if you're converting from a " "snapshot" msgstr "" #: common/mlcustomize/customize_run.ml:47 msgid "log file %s: %s (ignored)" msgstr "" #: input/OVA.ml:147 msgid "" "making OVA directory public readable to work around libvirt bug https://" "bugzilla.redhat.com/1045069" msgstr "" #: input/input_ova.ml:86 msgid "manifest has a checksum for non-existent file %s (ignored)" msgstr "" #: common/mlcustomize/customize_cmdline.ml:472 msgid "md5|sha256|sha512" msgstr "" #: common/mlcustomize/customize_run.ml:119 msgid "method '%s' is no longer supported" msgstr "" #: common/mltools/JSON_parser.ml:39 msgid "missing value for the key ‘%s’" msgstr "" #: input/OVA.ml:276 msgid "more than one .ovf file was found in %s" msgstr "" #: common/mltools/JSON_parser.ml:34 msgid "more than value for the key ‘%s’" msgstr "" #: output/output_ovirt.ml:222 msgid "" "mount command failed, see earlier errors.\n" "\n" "This probably means you didn't specify the right %s path [-os %s], or else " "you need to rerun virt-v2v as root." msgstr "" #: common/mlcustomize/customize_run.ml:103 msgid "" "multiple --root-password/--password options set the password for user ‘%s’ " "twice" msgstr "" #: input/input_vddk.ml:319 msgid "" "nbdkit VDDK plugin is not installed or not working. It is required if you " "want to use VDDK.\n" "\n" "It 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 ’/%s/libvixDiskLib.so.?’.\n" "\n" "See also the virt-v2v-input-vmware(1) manual." msgstr "" #: input/input_vddk.ml:313 msgid "" "nbdkit VDDK plugin is not installed or not working. It is required if you " "want to use VDDK.\n" "\n" "The 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" "\n" "See also the virt-v2v-input-vmware(1) manual." msgstr "" #: lib/nbdkit.ml:223 msgid "nbdkit did not start up. See previous debugging messages for problems." msgstr "" #: lib/nbdkit.ml:225 msgid "" "nbdkit did not start up. There may be errors printed by nbdkit above.\n" "\n" "If the messages above are not sufficient to diagnose the problem then add " "the ‘virt-v2v -v -x’ options and examine the debugging output carefully." msgstr "" #: input/nbdkit_ssh.ml:36 input/nbdkit_curl.ml:32 input/input_vddk.ml:283 msgid "nbdkit is not installed or not working" msgstr "" #: input/input_disk.ml:92 msgid "" "nbdkit is not installed or not working. It is required to use ‘-i disk’." msgstr "" #: input/input_libvirt.ml:68 msgid "" "nbdkit is not installed or not working. It is required to use ‘-i libvirt|" "libvirtxml’." msgstr "" #: output/output.ml:178 output/output.ml:77 msgid "" "nbdkit is not installed or not working. It is required to use ‘-o disk’." msgstr "" #: output/output_null.ml:57 msgid "" "nbdkit is not installed or not working. It is required to use ‘-o null’." msgstr "" #: output/output_ovirt_upload.ml:163 msgid "" "nbdkit is not installed or not working. It is required to use ‘-o ovirt-" "upload’. See the virt-v2v-output-ovirt(1) manual." msgstr "" #: input/input_vddk.ml:285 msgid "nbdkit must be >= 1.45.11 for input from VDDK" msgstr "" #: output/output_ovirt_upload.ml:176 msgid "" "nbdkit python plugin is not installed or not working. It is required if you " "want to use ‘-o ovirt-upload’.\n" "\n" "See also the virt-v2v-output-ovirt(1) manual." msgstr "" #: output/output_ovirt_upload.ml:190 msgid "" "nbdkit was compiled without SELinux support. You will have to recompile " "nbdkit with libselinux-devel installed, or else set SELinux to Permissive " "mode while doing the conversion." msgstr "" #. input/input_libvirt.ml:76 #. input/input_disk.ml:98 #: input/nbdkit_ssh.ml:42 input/nbdkit_curl.ml:38 input/input_vddk.ml:289 msgid "nbdkit-cow-filter is not installed or not working" msgstr "" #: input/nbdkit_curl.ml:35 msgid "nbdkit-curl-plugin is not installed" msgstr "" #. input/input_disk.ml:96 #: output/output.ml:181 output/output.ml:80 input/input_libvirt.ml:72 msgid "nbdkit-file-plugin is not installed or not working" msgstr "" #: input/input_libvirt.ml:74 msgid "nbdkit-nbd-plugin is not installed or not working" msgstr "" #: output/output_null.ml:60 msgid "nbdkit-null-plugin is not installed or not working" msgstr "" #: input/nbdkit_ssh.ml:39 msgid "nbdkit-ssh-plugin is not installed" msgstr "" #: input/input_vddk.ml:287 msgid "nbdkit-vddk-plugin is not installed" msgstr "" #: lib/nbdkit.ml:56 msgid "nbdkit: unexpected version in --dump-config: %s" msgstr "" #. input/input_vcenter_https.ml:49 #. input/input_ova.ml:46 #. input/input_libvirt.ml:35 #. input/input_disk.ml:39 #: input/input_xen_ssh.ml:47 input/input_vmx.ml:40 msgid "no -io (input options) are allowed here" msgstr "" #: output/output_ovirt.ml:44 output/output_null.ml:42 #: output/output_glance.ml:44 msgid "no -oo (output options) are allowed here" msgstr "" #: input/OVA.ml:273 msgid "no .ovf file was found in %s" msgstr "" #: common/mldrivers/linux_bootloaders.ml:402 msgid "no bootloader detected" msgstr "" #: input/parse_domain_from_vmx.ml:359 msgid "no displayName key found in VMX file" msgstr "" #: input/OVF.ml:148 msgid "no href in ovf:File (id=%s)" msgstr "" #: common/mldrivers/linux_kernels.ml:194 msgid "no initrd was found in /boot matching %s %s." msgstr "" #: common/mldrivers/linux_kernels.ml:317 msgid "" "no installed kernel packages were found.\n" "\n" "This probably indicates that %s was unable to inspect this guest properly." msgstr "" #: common/mldrivers/linux_kernels.ml:354 msgid "" "no kernels were found in the bootloader configuration.\n" "\n" "This probably indicates that %s was unable to parse the bootloader " "configuration of this guest." msgstr "" #: output/python_script.ml:55 msgid "no python binary called ‘%s’ can be found on the $PATH" msgstr "" #: input/select_input.ml:106 msgid "" "no support for remote libvirt connections to '-ic %s'. The conversion may " "fail when it tries to read the source disks." msgstr "" #: lib/create_ovf.ml:1027 msgid "" "oVirt cannot emulate ‘%s’ sound cards. This sound card will be dropped from " "the output." msgstr "" #: lib/create_ovf.ml:875 lib/create_ovf.ml:512 msgid "oVirt does not support the output format ‘%s’, only raw or qcow2" msgstr "" #: output/output_openstack.ml:120 msgid "openstack: -oo server-id= not present" msgstr "" #: output/output_openstack.ml:338 msgid "" "openstack: failed to attach cinder volume to VM, see earlier error messages" msgstr "" #: output/output_openstack.ml:291 msgid "openstack: failed to create a cinder volume, see earlier error messages" msgstr "" #: output/output_openstack.ml:304 msgid "" "openstack: failed to query cinder volume status, see earlier error messages" msgstr "" #: output/output_openstack.ml:442 msgid "" "openstack: failed to set image properties on cinder volume, see earlier " "error messages" msgstr "" #: output/output_openstack.ml:199 msgid "" "openstack: precheck failed, there may be a problem with authentication, see " "earlier error messages" msgstr "" #: output/output_openstack.ml:311 msgid "" "openstack: unknown volume status \"%s\": expected \"creating\" or " "\"available\"" msgstr "" #: output/output.ml:133 msgid "output mode only supports raw or qcow2 format (format: %s)" msgstr "" #: input/OVF.ml:263 msgid "" "ova disk has an unknown VMware controller type (%d), please report this as a " "bug supplying the *.ovf file extracted from the ova" msgstr "" #: input/OVF.ml:259 msgid "" "ova disk has no parent controller, please report this as a bug supplying the " "*.ovf file extracted from the ova" msgstr "" #: output/output_ovirt_upload.ml:367 msgid "" "ovirt-upload: -of %s: Only output format ‘raw’ or ‘qcow2’ is supported. If " "the input is in a different format then force one of these output formats by " "adding either ‘-of raw’ or ‘-of qcow2’ on the command line." msgstr "" #: common/mlcustomize/password.ml:51 msgid "" "password-crypto: unknown algorithm %s, use \"md5\", \"sha256\", \"sha512\" " "or \"yescrypt\"" msgstr "" #: common/mlcustomize/password.ml:197 msgid "" "password: using insecure md5 password encryption for guest of type %s " "version %d.%d.\n" "If this is incorrect, use --password-crypto option and file a bug." msgstr "" #: common/mlcustomize/customize_run.ml:359 msgid "passwords could not be set for this type of guest" msgstr "" #: lib/qemuNBD.ml:125 msgid "" "qemu-nbd did not start up. See previous debugging messages for problems." msgstr "" #: lib/qemuNBD.ml:127 msgid "" "qemu-nbd did not start up. There may be errors printed by qemu-nbd above.\n" "\n" "If the messages above are not sufficient to diagnose the problem then add " "the ‘virt-v2v -v -x’ options and examine the debugging output carefully." msgstr "" #: lib/qemuNBD.ml:47 msgid "qemu-nbd: unexpected version in --version: %s" msgstr "" #: common/mlcustomize/customize_run.ml:77 msgid "random seed could not be set for this type of guest" msgstr "" #: input/parse_domain_from_vmx.ml:44 msgid "remote vmx ‘%s’ could not be parsed as a URI" msgstr "" #. common/mlcustomize/inject_virtio_win.ml:357 #. common/mlcustomize/inject_virtio_win.ml:352 #: common/mlcustomize/inject_virtio_win.ml:362 msgid "" "root directory ‘/’ is missing from the virtio-win directory or ISO.\n" "\n" "This should not happen and may indicate that virtio-win or virt-v2v is " "broken in some way. Please report this as a bug with a full debug log." msgstr "" #: common/mltools/tools_utils.ml:417 common/options/keys.c:264 #, c-format msgid "selector '%s': invalid TYPE" msgstr "" #: common/mltools/tools_utils.ml:409 common/options/keys.c:254 #, c-format msgid "selector '%s': missing FILENAME, or too many fields" msgstr "" #: common/mltools/tools_utils.ml:399 common/options/keys.c:232 #, c-format msgid "selector '%s': missing ID" msgstr "" #: common/mltools/tools_utils.ml:404 common/options/keys.c:245 #, c-format msgid "selector '%s': missing KEY_STRING, or too many fields" msgstr "" #: common/mltools/tools_utils.ml:401 common/options/keys.c:239 #, c-format msgid "selector '%s': missing TYPE" msgstr "" #: common/mltools/tools_utils.ml:413 common/options/keys.c:262 #, c-format msgid "selector '%s': too many fields" msgstr "" #: lib/utils.ml:35 msgid "signalled by signal %d" msgstr "" #: common/mlcustomize/guest_packages.ml:40 msgid "" "sorry, ‘%s’ with the ‘%s’ package manager has not been implemented yet.\n" "\n" "You can work around this by using one of the ‘--run*’ or ‘--firstboot*’ " "options instead (described in the virt-customize(1) manual)." msgstr "" #: common/mlcustomize/ssh_key.ml:57 msgid "ssh-inject: $HOME environment variable is not set" msgstr "" #: common/mlcustomize/ssh_key.ml:93 msgid "ssh-inject: key is an empty string" msgstr "" #: common/mlcustomize/ssh_key.ml:66 msgid "ssh-inject: no public key file found in %s" msgstr "" #: common/mlcustomize/ssh_key.ml:83 msgid "ssh-inject: public key file (%s) is empty" msgstr "" #: common/mlcustomize/ssh_key.ml:112 msgid "ssh-inject: the user %s does not exist on the guest" msgstr "" #. common/mltools/tools_utils.ml:461 #: lib/utils.ml:36 common/mltools/tools_utils.ml:542 msgid "stopped by signal %d" msgstr "" #: output/changeuid.ml:58 msgid "subprocess exited with non-zero error code %d" msgstr "" #: output/changeuid.ml:60 msgid "subprocess signalled or stopped by signal %d" msgstr "" #: lib/utils.ml:33 msgid "success" msgstr "" #: output/create_libvirt_xml.ml:297 msgid "" "target hypervisor does not support floppy devices, but floppy devices were " "found in the source guest" msgstr "" #: output/output_ovirt_upload.ml:156 msgid "" "the Python module ‘ovirtsdk4’ could not be loaded, is it installed? See " "previous messages for problems." msgstr "" #: output/output_ovirt_upload.ml:453 msgid "the cluster ‘%s’ does not support the architecture %s but %s" msgstr "" #: common/mlcustomize/customize_run.ml:59 msgid "" "the command may have failed because the network is disabled. Try either " "removing ‘--no-network’ or adding ‘--network’ on the command line." msgstr "" #: common/mltools/JSON_parser.ml:84 msgid "the key ‘%s’ was not found in a list of objects" msgstr "" #: output/output_ovirt_upload.ml:288 msgid "" "the number of ‘-oo ovirt-disk-uuid’ parameters passed on the command line " "has to match the number of guest disk images (for this guest: %d)" msgstr "" #: output/output_vdsm.ml:133 msgid "" "the number of ‘-oo vdsm-image-uuid’ and ‘-oo vdsm-vol-uuid’ parameters " "passed on the command line has to match the number of guest disk images (for " "this guest: %d)" msgstr "" #: output/output_libvirt.ml:239 msgid "the target hypervisor does not support a %s KVM guest" msgstr "" #: common/mltools/JSON_parser.ml:78 msgid "the value for key ‘%s’ is not a string as expected" msgstr "" #: common/mltools/JSON_parser.ml:50 msgid "the value for the key ‘%s’ is not a bool" msgstr "" #: common/mltools/JSON_parser.ml:45 msgid "the value for the key ‘%s’ is not a string" msgstr "" #: common/mltools/JSON_parser.ml:70 msgid "the value for the key ‘%s’ is not an integer" msgstr "" #: common/mltools/JSON_parser.ml:55 msgid "the value for the key ‘%s’ is not an object" msgstr "" #: common/mltools/JSON_parser.ml:59 msgid "the value is not an object" msgstr "" #: common/mltools/JSON_parser.ml:35 msgid "the value of the key ‘%s’ is not an object" msgstr "" #: lib/create_ovf.ml:519 msgid "" "the virtual size of the input disk %d is not an exact multiple of 512 " "bytes. The virtual size is: %Ld.\n" "\n" "This probably means something unexpected is going on, so please file a bug " "about this issue." msgstr "" #: output/output_openstack.ml:144 msgid "" "the ‘%s’ program is not available. It is needed to communicate with " "OpenStack." msgstr "" #: output/output_ovirt.ml:265 msgid "" "there are multiple UUIDs in the %s (%s). This is unexpected, and may be a " "bug in virt-v2v or OVirt." msgstr "" #: output/output_ovirt.ml:262 msgid "there are no UUIDs in the %s (%s). Is it really an OVirt %s?" msgstr "" #: common/mlcustomize/inject_virtio_win.ml:153 msgid "" "there are no virtio drivers available for this version of Windows (%d.%d %s " "%s %s). virt-v2v looks for drivers in %s\n" "\n" "The guest will be configured to use slower emulated devices." msgstr "" #: common/mlcustomize/inject_virtio_win.ml:175 msgid "" "there is no virtio block device driver for this version of Windows (%d.%d " "%s). virt-v2v looks for this driver in %s\n" "\n" "The guest will be configured to use a slower emulated device." msgstr "" #: common/mlcustomize/inject_virtio_win.ml:206 msgid "" "there is no virtio network driver for this version of Windows (%d.%d %s). " "virt-v2v looks for this driver in %s\n" "\n" "The guest will be configured to use a slower emulated device." msgstr "" #: input/parse_libvirt_xml.ml:545 msgid "this guest has a direct network interface which will be ignored" msgid_plural "this guest has direct network interfaces which will be ignored" msgstr[0] "" msgstr[1] "" #: input/parse_libvirt_xml.ml:527 msgid "this guest has a passthrough host device which will be ignored" msgid_plural "this guest has passthrough host devices which will be ignored" msgstr[0] "" msgstr[1] "" #: input/parse_libvirt_xml.ml:248 msgid "this guest has no non-removable disks" msgstr "" #: output/output.ml:65 msgid "this output module doesn't support copying more than %d disks" msgstr "" #: common/mlcustomize/timezone.ml:35 msgid "timezone '%s' does not exist, use a location like 'Europe/London'" msgstr "" #: common/mlcustomize/customize_run.ml:304 msgid "timezone could not be set for this type of guest" msgstr "" #: input/OVA.ml:318 msgid "unable to parse line from manifest file: %S" msgstr "" #: common/mltools/urandom.ml:37 msgid "unexpected end of file while reading /dev/urandom" msgstr "" #: input/input_libvirt.ml:196 msgid "unexpected output from the %s command" msgstr "" #: common/mltools/checksums.ml:58 msgid "unhandled checksum type ‘%s’" msgstr "" #: lib/types.ml:524 msgid "unknown --root option: %s" msgstr "" #: input/select_input.ml:51 msgid "unknown -i option: %s" msgstr "" #: output/select_output.ml:74 msgid "unknown -o option: %s" msgstr "" #: v2v/v2v.ml:164 msgid "unknown -oa option: %s" msgstr "" #: input/input_libvirt.ml:189 msgid "unknown method='%s'" msgstr "" #: input/OVF.ml:103 msgid "unknown Config:firmware value %s (expected \"bios\" or \"efi\")" msgstr "" #: lib/create_ovf.ml:446 lib/create_ovf.ml:247 msgid "unknown Windows 10 variant: %s (%s)" msgstr "" #: v2v/v2v.ml:319 in-place/in_place.ml:256 msgid "unknown block driver ‘--block-driver %s’" msgstr "" #: input/parse_domain_from_vmx.ml:415 msgid "unknown firmware value '%s', assuming BIOS" msgstr "" #: lib/create_ovf.ml:454 lib/create_ovf.ml:255 msgid "unknown guest operating system: %s %s %d.%d %s (%s)" msgstr "" #: v2v/v2v.ml:329 open/open.ml:132 inspector/inspector.ml:238 msgid "unknown input transport ‘-it %s’" msgstr "" #: input/parse_domain_from_vmx.ml:428 msgid "unknown sound device '%s' ignored" msgstr "" #: input/parse_libvirt_xml.ml:215 msgid "unknown sound model %s ignored" msgstr "" #: input/OVF.ml:156 msgid "unsupported compression in OVF: %s" msgstr "" #: input/input_vcenter_https.ml:123 msgid "" "vcenter: was not found in the XML. You need to " "upgrade to libvirt ≥ 1.2.20." msgstr "" #: input/vCenter.ml:79 msgid "vcenter: URL not found: %s" msgstr "" #: input/vCenter.ml:70 msgid "vcenter: incorrect username or password" msgstr "" #: input/vCenter.ml:72 msgid "" "vcenter: incorrect username or password. You might need to specify the " "username in the URI like this: [vpx|esx|..]://USERNAME@[etc]" msgstr "" #: input/vCenter.ml:84 msgid "vcenter: invalid response from server: %s" msgstr "" #: input/vCenter.ml:194 msgid "vcenter: no status code in output of ‘curl’ command." msgstr "" #: output/output_vdsm.ml:148 msgid "vdsm: invalid -os parameter does not contain a valid UUID: %s" msgstr "" #: output/output_openstack.ml:56 msgid "" "virt-v2v -oo server-id= [os-*=...]\n" "\n" "Specify the name or UUID of the conversion appliance using\n" "\n" " virt-v2v ... -o openstack -oo server-id=\n" "\n" "When virt-v2v runs it will attach the Cinder volumes to the\n" "conversion appliance, so this name or UUID must be the name\n" "of the virtual machine on OpenStack where virt-v2v is running.\n" "\n" "In addition, all usual OpenStack “os-*” parameters or “OS_*”\n" "environment variables can be used.\n" "\n" "Openstack “--os-*” parameters must be written as “virt-v2v -oo os-*”.\n" "\n" "For example:\n" "\n" " virt-v2v -oo os-username=\n" "\n" " equivalent to openstack: --os-username=\n" " or the environment variable: OS_USERNAME=\n" "\n" " virt-v2v -oo os-project-name=\n" "\n" " equivalent to openstack: --os-project-name=\n" " or the environment variable: OS_PROJECT_NAME=\n" "\n" "The os-* parameters and environment variables are optional.\n" msgstr "" #: input/parse_libvirt_xml.ml:189 msgid "" "virt-v2v does not support local displays, so in the " "input libvirt XML was ignored" msgstr "" #: input/select_input.ml:83 msgid "virt-v2v-in-place does not support remote libvirt URIs" msgstr "" #: input/parse_domain_from_vmx.ml:50 msgid "vmx URI path component looks incorrect" msgstr "" #: input/parse_domain_from_vmx.ml:48 msgid "vmx URI remote server name omitted" msgstr "" #: input/parse_domain_from_vmx.ml:46 msgid "vmx URI start with ‘ssh://...’" msgstr "" #: input/VMX.ml:313 msgid "vmx parser: cannot parse this line, ignoring: %s" msgstr "" #: input/VMX.ml:346 msgid "vmx parser: duplicate key '%s' ignored" msgstr "" #: output/output_openstack.ml:299 msgid "wait for cinder volume status to change to \"available\"" msgstr "" #: output/output_openstack.ml:360 msgid "waiting for cinder volume %s to attach to the conversion appliance" msgstr "" #: open/open.ml:136 msgid "you must supply the --run parameter" msgstr "" #: input/input_xen_ssh.ml:87 input/input_vddk.ml:189 msgid "‘-ic %s’ URL does not contain a host name field" msgstr "" #: input/input_vddk.ml:273 msgid "‘-io vddk-file=’ must be used exactly %d times" msgstr "" #: input/input_vddk.ml:297 msgid "" "‘-io vddk-libdir=%s’ does not point to a directory. See the virt-v2v-input-" "vmware(1) manual." msgstr "" #: output/output.ml:85 msgid "" "‘-oo compressed’ is only allowed when the output format is a local qcow2-" "format file, i.e. ‘-of qcow2’" msgstr "" #: input/input_vddk.ml:232 msgid "" "‘openssl’ command not found: automatically detecting thumbprint is not " "possible, so you must use ‘-io vddk-thumbprint=XX:XX...’" msgstr "" #: common/mltools/getopt-c.c:68 #, c-format msgid "Try ‘%s --help’ or consult %s(1) for more information.\n" msgstr "" #: common/mltools/getopt-c.c:187 #, c-format msgid "%s: ‘%s’ is not a numeric value.\n" msgstr "" #: common/mltools/getopt-c.c:193 #, c-format msgid "%s: %s: integer out of range\n" msgstr "%s: %s: परिसर के बाहर पूर्णांक\n" #: common/mltools/getopt-c.c:383 #, c-format msgid "%s: ‘%s’ is not allowed for -%c; allowed values are:\n" msgstr "" #: common/mltools/getopt-c.c:386 #, c-format msgid "%s: ‘%s’ is not allowed for %s%s; allowed values are:\n" msgstr "" #: common/mltools/getopt-c.c:421 #, c-format msgid "Extra parameter on the command line: ‘%s’.\n" msgstr "" #: common/options/config.c:72 #, c-format msgid "%s: line %d: error parsing configuration file: %s" msgstr "" #: common/options/decrypt.c:52 #, c-format msgid "string size overflow" msgstr "" #: common/options/decrypt.c:170 #, c-format msgid "" "'clevis_luks_unlock', needed for decrypting %s, is unavailable in this " "libguestfs version" msgstr "" #: common/options/decrypt.c:184 #, c-format msgid "" "could not find key to open LUKS encrypted %s.\n" "\n" "Try using --key on the command line.\n" "\n" "Original error: %s (%d)" msgstr "" #: common/options/inspect.c:78 #, c-format msgid "" "%s: no operating system was found on this disk\n" "\n" "If using guestfish ‘-i’ option, remove this option and instead\n" "use the commands ‘run’ followed by ‘list-filesystems’.\n" "You can then mount filesystems you want by hand using the\n" "‘mount’ or ‘mount-ro’ command.\n" "\n" "If using guestmount ‘-i’, remove this option and choose the\n" "filesystem(s) you want to see by manually adding ‘-m’ option(s).\n" "Use ‘virt-filesystems’ to see what filesystems are available.\n" "\n" "If using other virt tools, this disk image won’t work\n" "with these tools. Use the guestfish equivalent commands\n" "(see the virt tool manual page).\n" msgstr "" #: common/options/inspect.c:99 #, c-format msgid "" "%s: multi-boot operating systems are not supported\n" "\n" "If using guestfish ‘-i’ option, remove this option and instead\n" "use the commands ‘run’ followed by ‘list-filesystems’.\n" "You can then mount filesystems you want by hand using the\n" "‘mount’ or ‘mount-ro’ command.\n" "\n" "If using guestmount ‘-i’, remove this option and choose the\n" "filesystem(s) you want to see by manually adding ‘-m’ option(s).\n" "Use ‘virt-filesystems’ to see what filesystems are available.\n" "\n" "If using other virt tools, multi-boot operating systems won’t work\n" "with these tools. Use the guestfish equivalent commands\n" "(see the virt tool manual page).\n" msgstr "" #: common/options/inspect.c:161 #, c-format msgid "%s: some filesystems could not be mounted (ignored)\n" msgstr "" #: common/options/inspect.c:178 #, c-format msgid "Operating system: %s\n" msgstr "" #: common/options/inspect.c:196 #, c-format msgid "%s mounted on %s\n" msgstr "" #: common/options/keys.c:63 #, c-format msgid "Enter key or passphrase (\"%s\"): " msgstr "" #: common/options/keys.c:146 #, c-format msgid "size_t overflow" msgstr "" #: common/options/keys.c:193 #, c-format msgid "could not read key from user" msgstr "" #: common/options/options.c:283 #, c-format msgid "%s: ‘%s’ could not be mounted.\n" msgstr "" #: common/options/options.c:287 #, c-format msgid "" "%s: Check mount(8) man page to ensure options ‘%s’\n" "%s: are supported by the filesystem that is being mounted.\n" msgstr "" #: common/options/options.c:291 #, c-format msgid "%s: Did you mean to mount one of these filesystems?\n" msgstr "" #: common/options/options.c:304 #, c-format msgid "cannot determine the subvolume for %s: %s (%d)" msgstr "" #: common/options/uri.c:119 #, c-format msgid "%s: --add: could not parse URI ‘%s’\n" msgstr "" #: common/options/uri.c:130 #, c-format msgid "%s: %s: scheme of URI is NULL or empty\n" msgstr "" #: common/options/uri.c:138 #, c-format msgid "%s: %s: cannot have both a server name and a socket query parameter\n" msgstr "" #: common/utils/utils.c:107 #, c-format msgid "%s exited successfully" msgstr "" #: common/utils/utils.c:110 #, c-format msgid "%s exited with error status %d" msgstr "" #: common/utils/utils.c:114 #, c-format msgid "%s killed by signal %d (%s)" msgstr "" #: common/utils/utils.c:118 #, c-format msgid "%s stopped by signal %d (%s)" msgstr "" #: common/utils/utils.c:122 #, c-format msgid "%s exited for an unknown reason (status %d)" msgstr "" ================================================ FILE: po/id.po ================================================ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR Red Hat Inc. # This file is distributed under the same license as the virt-v2v package. # FIRST AUTHOR , YEAR. # msgid "" msgstr "" "Project-Id-Version: virt-v2v 2.7.7\n" "Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?" "component=libguestfs&product=Virtualization+Tools\n" "POT-Creation-Date: 2025-02-16 17:05+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" "Language: id\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" #: input/input_ova.ml:135 common/mltools/tools_utils.ml:235 msgid "%s" msgstr "" #: common/mltools/getopt.ml:73 msgid "" "%s\n" "Options:\n" msgstr "" #: common/mltools/tools_utils.ml:695 common/mlcustomize/customize_run.ml:390 msgid "%s (ignored)" msgstr "" #: common/mltools/checksums.ml:71 msgid "%s did not return any output" msgstr "" #: common/mlcustomize/customize_run.ml:183 msgid "%s does not exist in the guest" msgstr "" #: output/output_ovirt.ml:275 msgid "" "%s does not exist or is not a directory.\n" "\n" "Most likely cause: Either the %s (%s) has not been attached to any Data " "Center, or the path %s is not an %s at all.\n" "\n" "You have to attach the %s to a Data Center using the oVirt user interface " "first.\n" "\n" "If you don’t know what the %s mount point should be then you can also find " "this out through the oVirt user interface." msgstr "" #: common/mlcustomize/customize_run.ml:113 msgid "%s ignored for non-Windows guest" msgstr "" #: common/mlcustomize/customize_run.ml:186 msgid "%s is not a regular file in the guest" msgstr "" #. open/open.ml:39 #. inspector/inspector.ml:153 #. inspector/inspector.ml:40 #. in-place/in_place.ml:164 #. in-place/in_place.ml:45 #: v2v/v2v.ml:194 v2v/v2v.ml:183 v2v/v2v.ml:159 v2v/v2v.ml:44 open/open.ml:68 msgid "%s option used more than once on the command line" msgstr "" #: common/mltools/tools_utils.ml:231 common/mltools/tools_utils.ml:202 msgid "%s: %s" msgstr "" #: common/mltools/tools_utils.ml:233 msgid "%s: %s: %s" msgstr "" #: common/mltools/on_exit.ml:77 msgid "" "%s: Exiting on signal %s\n" "%!" msgstr "" #: common/mlcustomize/inject_virtio_win.ml:411 msgid "%s: cannot open virtio-win ISO file: %s" msgstr "" #: common/mlcustomize/customize_run.ml:64 msgid "%s: command exited with an error" msgstr "" #: v2v/v2v.ml:277 msgid "" "%s: convert a guest to use KVM\n" "\n" "virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi -os imported " "esx_guest\n" "\n" "virt-v2v -i libvirtxml guest-domain.xml -o local -os /var/tmp\n" "\n" "virt-v2v -i disk disk.img -o local -os /var/tmp\n" "\n" "There is a companion front-end called \"virt-p2v\" which comes as an\n" "ISO or CD image that can be booted on physical machines.\n" "\n" "A short summary of the options is given below. For detailed help please\n" "read the man page virt-v2v(1).\n" msgstr "" #: in-place/in_place.ml:217 msgid "" "%s: convert a guest to use KVM in-place\n" "\n" "Note this program modifies the guest in-place with no backup.\n" "Normally you should use virt-v2v.\n" "\n" "virt-v2v-in-place -i libvirtxml guest-domain.xml\n" "\n" "virt-v2v-in-place -i disk disk.img\n" "\n" "A short summary of the options is given below. For detailed help please\n" "read the man page virt-v2v-in-place(1).\n" msgstr "" #: input/input_vddk.ml:207 msgid "%s: enter password for ‘%s’: " msgstr "" #: common/mltools/tools_utils.ml:172 msgid "%s: error: %s" msgstr "" #: inspector/inspector.ml:198 msgid "" "%s: estimate disk space needed before virt-v2v conversion\n" "\n" "virt-v2v-inspector -i disk disk.img [-O output.xml]\n" "\n" "A short summary of the options is given below. For detailed help please\n" "read the man page virt-v2v-inspector(1).\n" msgstr "" #: open/open.ml:94 msgid "" "%s: open the virt-v2v input and run a program on it\n" "\n" "virt-v2v-open -i disk disk.img --run 'virt-inspector --format=raw @@'\n" "\n" "A short summary of the options is given below. For detailed help please\n" "read the man page virt-v2v-open(1).\n" msgstr "" #: common/mltools/tools_utils.ml:726 msgid "%s: operation timed out" msgstr "" #: input/OVA.ml:127 input/OVA.ml:121 msgid "" "%s: unsupported file format\n" "\n" "Formats which we currently understand for '-i ova' are: tar (uncompressed, " "compress with gzip or xz), zip" msgstr "" #: common/mltools/tools_utils.ml:191 msgid "%s: warning: %s" msgstr "" #. common/mlcustomize/customize_cmdline.ml:258 #: common/mlcustomize/customize_cmdline.ml:367 msgid "'CMD+ARGS'" msgstr "" #: common/mlcustomize/customize_run.ml:133 msgid "" "--append-line: line must not contain newline characters. Use the --append-" "line option multiple times to add several lines." msgstr "" #: common/mlcustomize/customize_run.ml:152 msgid "--chown: could not parse numeric UID:GID from %s:%s" msgstr "" #: common/mlcustomize/customize_run.ml:216 msgid "" "--inject-blnsvr: blnsvr.exe not found in virtio-win source that you specified" msgstr "" #: common/mlcustomize/customize_run.ml:225 msgid "" "--inject-qemu-ga: QEMU Guest Agent MSI not found in virtio-win source that " "you specified" msgstr "" #: common/mlcustomize/customize_run.ml:241 msgid "" "--inject-virtio-win: virtio drivers were not found for this Windows version " "in the virtio-win source that you specified" msgstr "" #: v2v/v2v.ml:146 inspector/inspector.ml:136 in-place/in_place.ml:143 msgid "--mac ip prefix length field is out of range" msgstr "" #: v2v/v2v.ml:340 msgid "--parallel parameter must be >= 1" msgstr "" #: input/input_disk.ml:42 msgid "-i disk: expecting a disk image (filename) on the command line" msgstr "" #: input/input_xen_ssh.ml:65 msgid "-i libvirt: expecting -ic parameter for Xen over SSH connection" msgstr "" #: input/input_vddk.ml:142 input/input_vcenter_https.ml:88 msgid "-i libvirt: expecting -ic parameter for vcenter connection" msgstr "" #: input/input_vcenter_https.ml:101 msgid "-i libvirt: expecting -ic parameter to contain vcenter server name" msgstr "" #: input/input_vcenter_https.ml:78 msgid "-i libvirt: expecting -ip passwordfile parameter for vCenter connection" msgstr "" #. input/input_vcenter_https.ml:70 #. input/input_libvirt.ml:41 #: input/input_xen_ssh.ml:57 input/input_vddk.ml:132 msgid "-i libvirt: expecting a libvirt guest name on the command line" msgstr "" #: input/input_libvirt.ml:59 msgid "-i libvirtxml: expecting a libvirt XML filename on the command line" msgstr "" #: input/input_ova.ml:243 msgid "-i ova: OVF references file ‘%s’ which was not found in the OVA archive" msgstr "" #: input/input_ova.ml:78 msgid "" "-i ova: corrupt OVA: checksum of disk %s does not match manifest (actual = " "%s, expected = %s)" msgstr "" #: input/input_ova.ml:52 msgid "-i ova: expecting an OVA file name on the command line" msgstr "" #: input/OVA.ml:361 msgid "" "-i ova: invalid OVA file: path ‘%s’ references a file outside the archive" msgstr "" #: input/input_vmx.ml:57 msgid "-i vmx: cannot use -it vddk in this input mode" msgstr "" #: input/input_vmx.ml:60 msgid "-i vmx: expecting a VMX file or ssh:// URI" msgstr "" #: input/vCenter.ml:159 msgid "" "-ip PASSWORD_FILE parameter ignored because 'user@' was not given in the URL" msgstr "" #: input/input_vddk.ml:119 msgid "-it vddk: ‘-io %s’ is not a valid input option" msgstr "" #: output/output.ml:54 msgid "-o %s: %s option cannot be used in this output mode" msgstr "" #: output/output_disk.ml:66 msgid "-o disk: output directory was not specified, use '-os /dir'" msgstr "" #: output/output_libvirt.ml:59 output/output_disk.ml:56 msgid "-o disk: unknown output option ‘-oo %s’" msgstr "" #: output/output_kubevirt.ml:81 msgid "-o kubevirt: output directory was not specified, use '-os /dir'" msgstr "" #: output/output_kubevirt.ml:91 msgid "" "-o kubevirt: the guest name must contain only lowercase alphanumeric " "characters, '-' or '.', and must start and end with an alphanumeric " "character. Rerun virt-v2v with the '-on name' option to rename it." msgstr "" #: output/output_kubevirt.ml:71 msgid "-o kubevirt: unknown output option ‘-oo %s’" msgstr "" #: output/output_libvirt.ml:120 msgid "" "-o libvirt: output pool ‘%s’ does not have /pool/target/path element. See " "virt-v2v-output-local(1)" msgstr "" #: output/output_libvirt.ml:124 msgid "" "-o libvirt: output pool ‘%s’ has type='dir' but the /pool/target/path " "element is not a local directory. See virt-v2v-output-local(1)" msgstr "" #: output/output_libvirt.ml:116 msgid "" "-o libvirt: output pool ‘%s’ is not a directory (type='dir'). See virt-v2v-" "output-local(1)" msgstr "" #: output/output_openstack.ml:88 msgid "-o openstack mode only supports -oa sparse -of raw" msgstr "" #: output/output_openstack.ml:115 msgid "-o openstack: unknown output option ‘-oo %s’" msgstr "" #: output/output_ovirt_upload.ml:97 msgid "-o ovirt-upload: -oo ovirt-cafile set more than once" msgstr "" #: output/output_ovirt_upload.ml:101 msgid "-o ovirt-upload: -oo ovirt-cluster set more than once" msgstr "" #: output/output_ovirt_upload.ml:112 msgid "-o ovirt-upload: invalid UUID for -oo ovirt-disk-uuid" msgstr "" #: output/output_ovirt_upload.ml:76 msgid "" "-o ovirt-upload: output password file was not specified, use ‘-op’ to point " "to a file which contains the password used to connect to the oVirt server" msgstr "" #: output/output_ovirt_upload.ml:83 msgid "-o ovirt-upload: output storage was not specified, use ‘-os’" msgstr "" #: output/output_ovirt_upload.ml:116 msgid "-o ovirt-upload: unknown output option ‘-oo %s’" msgstr "" #: output/output_ovirt_upload.ml:68 msgid "" "-o ovirt-upload: use ‘-oc’ to point to the oVirt server REST API URL, which " "is usually https://servername/ovirt-engine/api" msgstr "" #: output/output_ovirt.ml:51 msgid "-o ovirt: -os option was not specified" msgstr "" #: output/output_qemu.ml:72 msgid "-o qemu: output directory was not specified, use '-os /dir'" msgstr "" #: output/output_qemu.ml:63 msgid "-o qemu: unknown output option ‘-oo %s’" msgstr "" #: output/output_vdsm.ml:102 msgid "-o vdsm: -oo vdsm-image-uuid was not specified" msgstr "" #: output/output_vdsm.ml:81 msgid "-o vdsm: -oo vdsm-ovf-output set more than once" msgstr "" #: output/output_vdsm.ml:77 msgid "-o vdsm: -oo vdsm-vm-uuid set more than once" msgstr "" #: output/output_vdsm.ml:110 msgid "-o vdsm: -os option was not specified" msgstr "" #: output/output_vdsm.ml:97 msgid "-o vdsm: either -oo vdsm-vol-uuid or -oo vdsm-vm-uuid was not specified" msgstr "" #: output/output_vdsm.ml:90 msgid "-o vdsm: unknown output option ‘-oo %s’" msgstr "" #: output/output_vdsm.ml:74 msgid "-o vdsm: unknown vdsm-compat level ‘%s’" msgstr "" #. output/output_kubevirt.ml:84 #. output/output_disk.ml:68 #: output/output_vdsm.ml:112 output/output_qemu.ml:74 msgid "-os %s: output directory does not exist or is not a directory" msgstr "" #: input/parse_libvirt_xml.ml:279 msgid " missing 'method' attribute, ignoring" msgstr "" #: input/parse_libvirt_xml.ml:291 msgid " unknown fail='%s' attribute, ignoring" msgstr "" #: input/parse_libvirt_xml.ml:370 input/parse_libvirt_xml.ml:317 msgid " was ignored" msgstr "" #: input/parse_libvirt_xml.ml:338 msgid " with was ignored" msgstr "" #: input/parse_libvirt_xml.ml:365 msgid " with was ignored" msgstr "" #: input/parse_libvirt_xml.ml:299 msgid " element with no type attribute ignored" msgstr "" #: input/parse_libvirt_xml.ml:167 msgid " in the input libvirt XML was ignored" msgstr "" #: input/parse_libvirt_xml.ml:414 msgid "" " was ignored because the device name could not be recognized" msgstr "" #: input/input_vddk.ml:176 msgid "" " was not found in the output of ‘virsh dumpxml \"%s\"’. The " "most likely reason is that libvirt is too old, try upgrading libvirt to ≥ " "3.7." msgstr "" #: common/mlcustomize/customize_cmdline.ml:305 msgid "Add package(s) to install" msgstr "" #: common/mlcustomize/customize_cmdline.ml:270 msgid "Add package(s) to install at first boot" msgstr "" #: common/mlcustomize/customize_cmdline.ml:175 msgid "Append line(s) to the file" msgstr "" #: common/mlcustomize/customize_run.ml:137 msgid "Appending line to %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:197 msgid "Change the owner user and group ID of a file or directory" msgstr "" #: common/mlcustomize/customize_cmdline.ml:186 msgid "Change the permissions of a file" msgstr "" #: common/mlcustomize/customize_run.ml:155 msgid "Changing owner of %s to %d:%d" msgstr "" #: common/mlcustomize/customize_run.ml:141 msgid "Changing permissions of %s to %s" msgstr "" #: input/input_libvirt.ml:174 input/input_libvirt.ml:157 msgid "Checking %s checksum of disk %d/%d" msgstr "" #: common/mlcustomize/customize_cmdline.ml:488 msgid "Compatibility option doing nothing" msgstr "" #: common/mlcustomize/customize_cmdline.ml:219 msgid "Copy files in disk image" msgstr "" #: common/mlcustomize/customize_cmdline.ml:397 msgid "Copy local files or directories from a tarball into image" msgstr "" #: common/mlcustomize/customize_cmdline.ml:230 msgid "Copy local files or directories into image" msgstr "" #: common/mlcustomize/customize_run.ml:168 msgid "Copying (in image): %s to %s" msgstr "" #: v2v/v2v.ml:518 msgid "Copying disk %d/%d" msgstr "" #: common/mlcustomize/customize_run.ml:172 msgid "Copying: %s to %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:322 msgid "Create a directory" msgstr "" #: common/mlcustomize/customize_cmdline.ml:316 msgid "Create symbolic links" msgstr "" #: v2v/v2v.ml:567 msgid "Creating output metadata" msgstr "" #: common/mlcustomize/customize_cmdline.ml:321 msgid "DIR" msgstr "" #: common/mlcustomize/customize_cmdline.ml:236 msgid "Delete a file or directory" msgstr "" #: common/mlcustomize/customize_run.ml:176 msgid "Deleting: %s" msgstr "" #: common/mltools/getopt.ml:225 msgid "Display brief help" msgstr "" #: common/mltools/tools_utils.ml:385 msgid "Display version and exit" msgstr "" #: common/mlcustomize/customize_cmdline.ml:482 msgid "Do not relabel files with correct SELinux labels" msgstr "" #: v2v/v2v.ml:248 inspector/inspector.ml:177 in-place/in_place.ml:190 msgid "Don't trim filesystems before conversion" msgstr "" #: common/mltools/tools_utils.ml:389 msgid "Don’t print progress messages" msgstr "" #: common/mltools/tools_utils.ml:420 msgid "Don’t turn off echo for passphrases" msgstr "" #: common/mlcustomize/customize_cmdline.ml:247 msgid "Edit file using Perl expression" msgstr "" #: common/mlcustomize/customize_run.ml:180 msgid "Editing: %s" msgstr "" #: common/mltools/tools_utils.ml:386 msgid "Enable libguestfs debugging messages" msgstr "" #: common/mltools/tools_utils.ml:387 msgid "Enable tracing of libguestfs calls" msgstr "" #: output/output_ovirt.ml:77 msgid "Export Storage Domain" msgstr "" #: open/open.ml:88 msgid "External command to run" msgstr "" #. common/mlcustomize/customize_cmdline.ml:408 #. common/mlcustomize/customize_cmdline.ml:373 #: common/mlcustomize/customize_cmdline.ml:414 msgid "FILE" msgstr "" #: common/mlcustomize/customize_cmdline.ml:455 msgid "FILE:CONTENT" msgstr "" #: common/mlcustomize/customize_cmdline.ml:444 msgid "FILE:DEST" msgstr "" #: common/mlcustomize/customize_cmdline.ml:242 msgid "FILE:EXPR" msgstr "" #: common/mlcustomize/customize_cmdline.ml:170 msgid "FILE:LINE" msgstr "" #: common/mlcustomize/customize_cmdline.ml:203 msgid "FILENAME" msgstr "" #. in-place/in_place.ml:378 #: v2v/v2v.ml:571 open/open.ml:220 inspector/inspector.ml:334 msgid "Finishing off" msgstr "" #: common/mlcustomize/customize_cmdline.ml:275 msgid "HOSTNAME" msgstr "" #: v2v/v2v.ml:254 inspector/inspector.ml:183 in-place/in_place.ml:194 msgid "How to choose root filesystem" msgstr "" #: common/mltools/tools_utils.ml:177 msgid "" "If reporting bugs, run %s with debugging enabled and include the complete " "output:\n" "\n" " %s -v -x [...]" msgstr "" #: common/mlcustomize/customize_cmdline.ml:386 msgid "Inject a public key into the guest" msgstr "" #: common/mlcustomize/customize_cmdline.ml:282 msgid "Inject the Balloon Server into a Windows guest" msgstr "" #: common/mlcustomize/customize_cmdline.ml:288 msgid "Inject the QEMU Guest Agent into a Windows guest" msgstr "" #: common/mlcustomize/customize_cmdline.ml:294 msgid "Inject virtio-win drivers into a Windows guest" msgstr "" #. in-place/in_place.ml:176 #: v2v/v2v.ml:216 open/open.ml:80 inspector/inspector.ml:165 msgid "Input format" msgstr "" #: input/input_vddk.ml:77 msgid "" "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" "\n" "Refer to nbdkit-vddk-plugin(1) and the VDDK documentation for further\n" "information on these settings.\n" msgstr "" #: v2v/v2v.ml:222 open/open.ml:86 inspector/inspector.ml:171 msgid "Input transport" msgstr "" #: common/mlcustomize/customize_run.ml:191 msgid "Installing firstboot command: %s" msgstr "" #: common/mlcustomize/customize_run.ml:195 msgid "Installing firstboot packages: %s" msgstr "" #: common/mlcustomize/customize_run.ml:202 msgid "Installing firstboot script: %s" msgstr "" #: common/mlcustomize/customize_run.ml:248 msgid "Installing packages: %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:225 msgid "LOCALPATH:REMOTEDIR" msgstr "" #. in-place/in_place.ml:174 #: v2v/v2v.ml:214 open/open.ml:78 inspector/inspector.ml:163 msgid "Libvirt URI" msgstr "" #: common/mlcustomize/customize_run.ml:255 msgid "Linking: %s -> %s" msgstr "" #. common/mlcustomize/customize_cmdline.ml:287 #. common/mlcustomize/customize_cmdline.ml:281 #: common/mlcustomize/customize_cmdline.ml:293 msgid "METHOD" msgstr "" #: common/mltools/tools_utils.ml:426 msgid "Make output machine readable" msgstr "" #: common/mlcustomize/customize_run.ml:260 msgid "Making directory: %s" msgstr "" #: v2v/v2v.ml:226 inspector/inspector.ml:173 in-place/in_place.ml:182 msgid "Map NIC to network or bridge or assign static IP" msgstr "" #: v2v/v2v.ml:210 inspector/inspector.ml:159 in-place/in_place.ml:170 msgid "Map bridge ‘in’ to ‘out’" msgstr "" #: v2v/v2v.ml:230 inspector/inspector.ml:179 in-place/in_place.ml:186 msgid "Map network ‘in’ to ‘out’" msgstr "" #: common/mlcustomize/customize_cmdline.ml:333 msgid "Move files in disk image" msgstr "" #: common/mlcustomize/customize_run.ml:264 msgid "Moving: %s -> %s" msgstr "" #. input/input_vcenter_https.ml:45 #. input/input_ova.ml:35 #. input/input_libvirt.ml:233 #. input/input_libvirt.ml:221 #. input/input_disk.ml:35 #: input/input_xen_ssh.ml:43 input/input_vmx.ml:36 msgid "No input options can be used in this mode.\n" msgstr "" #: output/output_ovirt.ml:40 output/output_null.ml:38 #: output/output_glance.ml:40 msgid "No output options can be used in this mode.\n" msgstr "" #: output/output_vdsm.ml:166 msgid "OVF (metadata) directory (%s) does not exist or is not a directory" msgstr "" #: common/mlcustomize/firstboot.ml:268 msgid "" "One of rhsrvany.exe or pvvxsvc.exe is missing in %s. One of them is " "required in order to install Windows firstboot scripts. You can get one by " "building rhsrvany (https://github.com/rwmjones/rhsrvany)" msgstr "" #: v2v/v2v.ml:236 msgid "Output hypervisor connection" msgstr "" #: output/output_ovirt_upload.ml:51 msgid "" "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" "\n" "You can override the UUIDs of the disks, instead of using autogenerated " "UUIDs\n" "after their uploads (if you do, you must supply one for each disk):\n" "\n" " -oo ovirt-disk-uuid=UUID Disk UUID\n" msgstr "" #: output/output_qemu.ml:44 msgid "" "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" msgstr "" #: output/output_vdsm.ml:43 msgid "" "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" "\n" "For 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" msgstr "" #: output/output_disk.ml:44 msgid "" "Output options that can be used with -o disk:\n" "\n" " -oo compressed Compress the output file (used only with -of qcow2)\n" msgstr "" #: output/output_kubevirt.ml:51 msgid "" "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" msgstr "" #: output/output_libvirt.ml:47 msgid "" "Output options that can be used with -o libvirt:\n" "\n" " -oo compressed Compress the output file (used only with -of qcow2)\n" msgstr "" #. common/mlcustomize/customize_cmdline.ml:235 #: common/mlcustomize/customize_cmdline.ml:420 msgid "PATH" msgstr "" #: common/mlcustomize/customize_cmdline.ml:181 msgid "PERMISSIONS:FILE" msgstr "" #. common/mlcustomize/customize_cmdline.ml:300 #. common/mlcustomize/customize_cmdline.ml:265 #: common/mlcustomize/customize_cmdline.ml:427 msgid "PKG,PKG.." msgstr "" #: v2v/v2v.ml:263 in-place/in_place.ml:203 msgid "Prefer 'virtio-blk' or 'virtio-scsi'" msgstr "" #: v2v/v2v.ml:252 in-place/in_place.ml:192 msgid "Print source and stop" msgstr "" #: common/mlcustomize/customize_cmdline.ml:208 msgid "Read customize commands from file" msgstr "" #: common/mltools/tools_utils.ml:421 msgid "Read passphrases from stdin" msgstr "" #: common/mlcustomize/customize_cmdline.ml:421 msgid "Recursively truncate all files in directory" msgstr "" #: common/mlcustomize/customize_run.ml:298 msgid "Recursively truncating: %s" msgstr "" #: v2v/v2v.ml:240 msgid "Rename guest when converting" msgstr "" #: common/mlcustomize/customize_cmdline.ml:259 msgid "Run command at first guest boot" msgstr "" #: common/mlcustomize/customize_cmdline.ml:368 msgid "Run command in disk image" msgstr "" #: common/mlcustomize/customize_cmdline.ml:253 msgid "Run script at first guest boot" msgstr "" #: common/mlcustomize/customize_cmdline.ml:362 msgid "Run script in disk image" msgstr "" #: common/mlcustomize/customize_cmdline.ml:409 msgid "Run touch on a file" msgstr "" #: v2v/v2v.ml:250 msgid "Run up to N instances of nbdcopy in parallel" msgstr "" #: open/open.ml:188 msgid "Running external command" msgstr "" #: common/mlcustomize/customize_run.ml:307 msgid "Running touch: %s" msgstr "" #. common/mlcustomize/customize_run.ml:159 #: common/mlcustomize/customize_run.ml:274 msgid "Running: %s" msgstr "" #. common/mlcustomize/customize_cmdline.ml:252 #: common/mlcustomize/customize_cmdline.ml:361 msgid "SCRIPT" msgstr "" #: common/mltools/tools_utils.ml:422 #: common/mlcustomize/customize_cmdline.ml:351 msgid "SELECTOR" msgstr "" #: common/mlcustomize/customize_run.ml:363 msgid "SELinux relabelling" msgstr "" #. common/mlcustomize/customize_cmdline.ml:214 #: common/mlcustomize/customize_cmdline.ml:328 msgid "SOURCE:DEST" msgstr "" #: common/mlcustomize/customize_run.ml:287 msgid "SSH key could not be injected for this type of guest" msgstr "" #: common/mlcustomize/customize_run.ml:284 msgid "SSH key inject: %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:374 msgid "Scrub a file" msgstr "" #: common/mlcustomize/customize_cmdline.ml:466 msgid "Scrub build log file" msgstr "" #: common/mlcustomize/customize_run.ml:374 msgid "Scrubbing the log file" msgstr "" #: common/mlcustomize/customize_run.ml:279 msgid "Scrubbing: %s" msgstr "" #: v2v/v2v.ml:208 msgid "Set bandwidth dynamically from file" msgstr "" #: v2v/v2v.ml:206 msgid "Set bandwidth to bits per sec" msgstr "" #. in-place/in_place.ml:172 #: v2v/v2v.ml:212 open/open.ml:76 inspector/inspector.ml:161 msgid "Set input mode (default: libvirt)" msgstr "" #: v2v/v2v.ml:228 inspector/inspector.ml:175 in-place/in_place.ml:184 msgid "Set memory size" msgstr "" #: v2v/v2v.ml:256 inspector/inspector.ml:185 in-place/in_place.ml:196 msgid "Set number of vCPUs" msgstr "" #. in-place/in_place.ml:178 #: v2v/v2v.ml:218 open/open.ml:82 inspector/inspector.ml:167 msgid "Set option for input mode" msgstr "" #: v2v/v2v.ml:242 msgid "Set option for output mode" msgstr "" #: v2v/v2v.ml:234 msgid "Set output allocation mode" msgstr "" #: v2v/v2v.ml:238 msgid "Set output format" msgstr "" #: v2v/v2v.ml:232 msgid "Set output mode (default: libvirt)" msgstr "" #: v2v/v2v.ml:246 msgid "Set output storage location" msgstr "" #: common/mlcustomize/customize_cmdline.ml:476 msgid "Set password crypto" msgstr "" #: common/mltools/tools_utils.ml:430 msgid "Set program name" msgstr "" #: common/mlcustomize/customize_cmdline.ml:356 msgid "Set root password" msgstr "" #: common/mlcustomize/customize_cmdline.ml:403 msgid "Set the default timezone" msgstr "" #: common/mlcustomize/customize_cmdline.ml:276 msgid "Set the hostname" msgstr "" #: inspector/inspector.ml:181 in-place/in_place.ml:188 msgid "Set the output filename" msgstr "" #: common/mlcustomize/customize_cmdline.ml:345 msgid "Set user password" msgstr "" #: common/mlcustomize/customize_run.ml:75 msgid "Setting a random seed" msgstr "" #: common/mlcustomize/customize_run.ml:354 msgid "Setting passwords" msgstr "" #: common/mlcustomize/password.ml:113 msgid "Setting random password of %s to %s" msgstr "" #: common/mlcustomize/customize_run.ml:207 msgid "Setting the hostname: %s" msgstr "" #: common/mlcustomize/customize_run.ml:90 msgid "Setting the machine ID in %s" msgstr "" #: common/mlcustomize/customize_run.ml:302 msgid "Setting the timezone: %s" msgstr "" #: v2v/v2v.ml:481 msgid "Setting up the destination: %s" msgstr "" #. in-place/in_place.ml:342 #: v2v/v2v.ml:457 open/open.ml:184 inspector/inspector.ml:310 msgid "Setting up the source: %s" msgstr "" #: v2v/v2v.ml:463 in-place/in_place.ml:348 msgid "Source guest information (--print-source option):\n" msgstr "" #: common/mltools/tools_utils.ml:422 msgid "Specify a LUKS key" msgstr "" #: common/mlcustomize/customize_cmdline.ml:392 msgid "TARFILE:REMOTEDIR" msgstr "" #: common/mlcustomize/customize_cmdline.ml:311 msgid "TARGET:LINK[:LINK..]" msgstr "" #: common/mlcustomize/customize_cmdline.ml:402 msgid "TIMEZONE" msgstr "" #: v2v/v2v.ml:200 msgid "" "The --in-place option has been replaced by the ‘virt-v2v-in-place’ program" msgstr "" #: output/output_qemu.ml:251 msgid "" "The Virt machine has no support for IDE. Please report a bug for virt-v2v -- " "refer to virt-v2v(1) section \"BUGS\"." msgstr "" #: output/output_qemu.ml:272 msgid "" "The Virt machine has no support for floppies. Please report a bug for virt-" "v2v -- refer to virt-v2v(1) section \"BUGS\"." msgstr "" #: lib/create_ovf.ml:785 msgid "" "This guest required a password for connection to its display, but this is " "not supported by oVirt. Therefore the converted guest’s display will not " "require a separate password to connect." msgstr "" #: input/input_vmx.ml:111 msgid "" "This transport does not support guests with snapshots. Either collapse the " "snapshots for this guest and try the conversion again, or use one of the " "alternate conversion methods described in virt-v2v-input-vmware(1) section " "\"NOTES\"." msgstr "" #: common/mlcustomize/customize_cmdline.ml:415 msgid "Truncate a file to zero size" msgstr "" #: common/mlcustomize/customize_run.ml:294 msgid "Truncating: %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:192 msgid "UID:GID:PATH" msgstr "" #: common/mlcustomize/customize_cmdline.ml:339 msgid "USER:SELECTOR" msgstr "" #: common/mlcustomize/customize_cmdline.ml:380 msgid "USER[:SELECTOR]" msgstr "" #: common/mlcustomize/customize_cmdline.ml:432 msgid "Uninstall package(s)" msgstr "" #: common/mlcustomize/customize_run.ml:311 msgid "Uninstalling packages: %s" msgstr "" #: common/mlcustomize/customize_run.ml:290 msgid "Unpack tar file: %s to %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:438 msgid "Update packages" msgstr "" #: common/mlcustomize/customize_run.ml:316 msgid "Updating packages" msgstr "" #: common/mlcustomize/customize_cmdline.ml:449 msgid "Upload local file to destination" msgstr "" #: common/mlcustomize/customize_run.ml:321 msgid "Uploading: %s to %s" msgstr "" #: common/mltools/tools_utils.ml:391 msgid "Use ANSI colour sequences even if not tty" msgstr "" #. in-place/in_place.ml:180 #: v2v/v2v.ml:220 open/open.ml:84 inspector/inspector.ml:169 msgid "Use password from file to connect to input hypervisor" msgstr "" #: v2v/v2v.ml:244 msgid "Use password from file to connect to output hypervisor" msgstr "" #: v2v/v2v.ml:224 msgid "Use virt-v2v-in-place instead" msgstr "" #: common/mltools/tools_utils.ml:392 msgid "Wrap log messages even if not tty" msgstr "" #: common/mlcustomize/customize_cmdline.ml:460 msgid "Write file" msgstr "" #: common/mlcustomize/customize_run.ml:346 msgid "Writing: %s" msgstr "" #: lib/YAML.ml:167 msgid "" "YAML block contains newline character. This should not happen, please " "report a bug against virt-v2v." msgstr "" #: output/output_libvirt.ml:96 msgid "" "a libvirt domain called ‘%s’ already exists on the target.\n" "\n" "If using virt-v2v directly, use the ‘-on’ option to select a different name. " "Or delete the existing domain on the target using the ‘virsh undefine’ " "command.\n" "\n" "If using virt-p2v, select a different ‘Name’ in the ‘Target properties’. Or " "delete the existing domain on the target using the ‘virsh undefine’ command." msgstr "" #: common/mlcustomize/append_line.ml:44 msgid "append_line: %s is not a file" msgstr "" #: input/input_libvirt.ml:206 msgid "" "bad checksum for disk %d/%d\n" "Expected checksum: %s\n" "Actual checksum: %s" msgstr "" #: lib/libvirt_utils.ml:59 msgid "cannot find libvirt domain ‘%s’: %s" msgstr "" #: lib/libvirt_utils.ml:96 msgid "" "cannot find libvirt pool ‘%s’: %s\n" "\n" "Use ‘virsh pool-list --all’ to list all available pools, and ‘virsh pool-" "dumpxml ’ to display details about a particular pool.\n" "\n" "To set the pool which virt-v2v uses, add the ‘-os ’ option." msgstr "" #: lib/libvirt_utils.ml:110 msgid "cannot find libvirt volume ‘%s’: %s" msgstr "" #: common/mlcustomize/firstboot.ml:235 msgid "" "cannot finish firstboot installation by running ‘%s’ because host cpu (%s) " "and guest arch (%s) are not compatible. The firstboot service may not run " "at boot." msgstr "" #: output/output_libvirt.ml:180 msgid "cannot get libvirt domain capabilities: %s" msgstr "" #: output/output_libvirt.ml:85 msgid "cannot get libvirt hypervisor capabilities: %s" msgstr "" #: v2v/v2v.ml:105 inspector/inspector.ml:95 in-place/in_place.ml:102 msgid "cannot parse --mac \"%s\" parameter" msgstr "" #: v2v/v2v.ml:129 inspector/inspector.ml:119 in-place/in_place.ml:126 msgid "cannot parse --mac ip %s: doesn’t look like “%s” is an IP address" msgstr "" #: v2v/v2v.ml:143 inspector/inspector.ml:133 in-place/in_place.ml:140 msgid "cannot parse --mac ip prefix length field as an integer: %s" msgstr "" #: common/mlcustomize/guest_packages.ml:29 msgid "" "cannot use ‘%s’ because no package manager has been detected for this guest " "OS.\n" "\n" "If this guest OS is a common one with ordinary package management then this " "may have been caused by a failure of libguestfs inspection.\n" "\n" "For OSes such as Windows that lack package management, this is not " "possible. Try using one of the ‘--firstboot*’ flags instead (described in " "the virt-customize(1) manual)." msgstr "" #: output/output_ovirt.ml:91 msgid "" "cannot write files to the NFS server as %d:%d, even though we appear to be " "running as root. This probably means the NFS client or idmapd is not " "configured properly.\n" "\n" "You will have to chown the files that virt-v2v creates after the run, " "otherwise oVirt will not be able to import the VM." msgstr "" #: output/output_ovirt.ml:99 msgid "" "cannot write files to the NFS server as %d:%d. You might want to stop virt-" "v2v (^C) and rerun it as root." msgstr "" #: common/mlcustomize/customize_cmdline.ml:508 msgid "command '%s' cannot be used in command files, see the man page" msgstr "" #: common/mlcustomize/customize_cmdline.ml:525 msgid "command '%s' not valid, see the man page" msgstr "" #: common/mldrivers/linux_bootloaders.ml:318 msgid "could not add grub2 serial console (ignored)" msgstr "" #: input/ssh.ml:52 msgid "" "could not copy the VMX file from the remote server, see earlier error " "messages" msgstr "" #: output/output_libvirt.ml:211 msgid "" "could not define libvirt domain: %s.\n" "The libvirt XML is still available in ‘%s’. Try running ‘virsh -c %s define " "%s’ yourself instead." msgstr "" #: common/mldrivers/linux_bootloaders.ml:221 msgid "could not determine a way to update the configuration of Grub2" msgstr "" #: input/input_vddk.ml:243 msgid "" "could not fetch thumbprint from the server, you mus use ‘-io vddk-" "thumbprint=XX:XX...’" msgstr "" #: common/mldrivers/linux_bootloaders.ml:376 msgid "could not find bootloader mount point (%s): %s" msgstr "" #: common/mldrivers/windows_drivers.ml:91 msgid "" "could not find registry entry " "HKEY_LOCAL_MACHINE\\SYSTEM\\DriverDatabase\\DeviceIds in this Windows " "guest. It may be either a very old or very new version of Windows that we " "cannot process." msgstr "" #: common/mlcustomize/firstboot.ml:232 msgid "" "could not finish firstboot installation by running ‘%s’ because the command " "failed: %s" msgstr "" #. input/input_vcenter_https.ml:94 #: input/select_input.ml:66 input/input_xen_ssh.ml:71 input/input_vddk.ml:151 msgid "could not parse '-ic %s'. Original error message was: %s" msgstr "" #: input/parse_libvirt_xml.ml:407 input/parse_libvirt_xml.ml:54 msgid "could not parse device name ‘%s’ from the source libvirt XML" msgstr "" #: input/OVF.ml:168 msgid "could not parse disk rasd:HostResource from OVF document" msgstr "" #: input/input_ova.ml:98 msgid "could not parse ovf:Name from OVF document" msgstr "" #: output/output_ovirt.ml:247 msgid "" "could not read the %s specified by the '-os %s' parameter on the command " "line. Is it really an OVirt %s? The original error is: %s" msgstr "" #: common/mldrivers/linux_bootloaders.ml:336 msgid "" "could not rebuild grub2 configuration file (%s). This may mean that grub " "output will not be sent to the serial port, but otherwise should be " "harmless. Original error message: %s" msgstr "" #: output/output_libvirt.ml:156 msgid "could not refresh libvirt pool ‘%s’: %s" msgstr "" #: common/mldrivers/linux_bootloaders.ml:320 msgid "could not remove grub2 serial console (ignored)" msgstr "" #: common/mltools/registry.ml:93 msgid "" "decode_utf16le: Windows UTF16-LE string contains non-7-bit characters. This " "is a bug in %s, please report it." msgstr "" #: common/mltools/registry.ml:87 msgid "" "decode_utf16le: Windows string does not appear to be in UTF16-LE encoding. " "This could be a bug in %s." msgstr "" #: common/mldrivers/linux_bootloaders.ml:126 msgid "didn't find grub entry for kernel %s" msgstr "" #: input/input_disk.ml:150 msgid "disks on the command line have mixed formats" msgstr "" #: input/parse_libvirt_xml.ml:194 msgid "display in the input libvirt XML was ignored" msgstr "" #: output/output_qemu.ml:147 msgid "don’t know how to convert UEFI guests for architecture %s" msgstr "" #: common/mldrivers/linux.ml:158 msgid "don’t know how to find file owner using %s" msgstr "" #: common/mldrivers/linux.ml:89 msgid "don’t know how to get list of files from package using %s" msgstr "" #: common/mltools/curl.ml:82 msgid "downloading %s" msgstr "" #: lib/networks.ml:84 msgid "" "duplicate --mac parameter. Duplicate mappings specified for MAC address %s." msgstr "" #: lib/networks.ml:102 msgid "" "duplicate -b/--bridge parameter. Duplicate mappings specified for bridge %s." msgstr "" #: lib/networks.ml:108 msgid "duplicate -b/--bridge parameter. Only one default mapping is allowed." msgstr "" #: lib/networks.ml:90 msgid "" "duplicate -n/--network parameter. Duplicate mappings specified for network " "%s." msgstr "" #: lib/networks.ml:96 msgid "duplicate -n/--network parameter. Only one default mapping is allowed." msgstr "" #: input/OVF.ml:143 msgid "error parsing disk fileRef" msgstr "" #: input/input_ova.ml:124 msgid "error uncompressing %s, see earlier error messages" msgstr "" #: input/OVA.ml:210 input/OVA.ml:112 msgid "error unpacking %s, see earlier error messages" msgstr "" #: common/mltools/tools_utils.ml:248 msgid "exception: %s" msgstr "" #: common/mltools/tools_utils.ml:455 msgid "exited with error %d" msgstr "" #: lib/utils.ml:34 msgid "exited with non-zero error code %d" msgstr "" #: input/input_disk.ml:147 msgid "expected >= 1 disk name on the command line" msgstr "" #: common/mltools/xpath_helpers.ml:36 msgid "" "expecting XML expression to return an integer (expression: %s, matching " "string: %s)" msgstr "" #: common/mltools/tools_utils.ml:440 msgid "external command" msgstr "" #: output/output_ovirt_upload.ml:265 msgid "failed server prechecks, see earlier errors" msgstr "" #: output/output_ovirt_upload.ml:507 msgid "failed to create virtual machine, see earlier errors" msgstr "" #: output/output_ovirt_upload.ml:479 msgid "failed to finalize the transfers, see earlier errors" msgstr "" #: common/mldrivers/linux_bootloaders.ml:208 msgid "failed to find grub2-mkconfig binary (but Grub2 was detected on guest)" msgstr "" #: input/OVA.ml:461 msgid "failed to parse line returned by tar: %S" msgstr "" #: output/output_ovirt_upload.ml:394 msgid "failed to start transfer, see earlier errors" msgstr "" #: output/output_ovirt_upload.ml:311 msgid "failed vmchecks, see earlier errors" msgstr "" #: common/mltools/tools_utils.ml:239 msgid "failure: %s" msgstr "" #: input/input_ova.ml:134 msgid "file ‘%s’ not found in the ova" msgstr "" #: common/mlcustomize/firstboot.ml:143 msgid "" "firstboot: unknown version for old firstboot.service file %s (md5=%s), it " "will not be removed" msgstr "" #: common/mltools/tools_utils.ml:258 msgid "generated by %s %s" msgstr "" #: output/create_libvirt_xml.ml:39 msgid "get_osinfo_id: unknown guest operating system: %s" msgstr "" #: output/output_glance.ml:66 msgid "" "glance: glance client is not installed or set up correctly. You may need to " "set environment variables or source a script to enable authentication. See " "preceding messages for details." msgstr "" #: output/output_glance.ml:139 msgid "glance: image upload to glance failed, see earlier errors" msgstr "" #: common/mlcustomize/firstboot.ml:386 common/mlcustomize/firstboot.ml:164 msgid "guest type %s is not supported" msgstr "" #: common/mlcustomize/firstboot.ml:413 msgid "guest type %s/%s is not supported" msgstr "" #: common/mltools/tools_utils.ml:749 msgid "" "host (%s/%s) and guest (%s/%s) are not compatible, so you cannot use command " "line options that involve running commands in the guest. Use --firstboot " "scripts instead." msgstr "" #: common/mlcustomize/customize_run.ml:209 msgid "hostname could not be set for this type of guest" msgstr "" #: common/mldrivers/linux_kernels.ml:342 msgid "ignoring kernel %s in bootloader, as it does not exist." msgstr "" #: output/output_vdsm.ml:160 msgid "image directory (%s) does not exist or is not a directory" msgstr "" #: input/parse_libvirt_xml.ml:81 msgid "in the libvirt XML metadata, is missing or empty" msgstr "" #: input/parse_libvirt_xml.ml:87 msgid "in the libvirt XML metadata, is missing or empty" msgstr "" #: input/input_vcenter_https.ml:52 input/input_libvirt.ml:107 msgid "in-place mode does not work with HTTP source" msgstr "" #: input/input_vddk.ml:146 msgid "in-place mode does not work with VDDK source" msgstr "" #: input/input_vmx.ml:43 msgid "in-place mode does not work with VMX source" msgstr "" #: input/input_xen_ssh.ml:50 msgid "in-place mode does not work with Xen over SSH source" msgstr "" #: output/output_kubevirt.ml:116 msgid "" "incorrect number of '-oo disk' parameters. This guest has %d disks, but the " "parameter was used %d times." msgstr "" #: input/input_xen_ssh.ml:119 msgid "" "input from xen over ssh does not support disks stored on remote block " "devices. See virt-v2v-input-xen(1) section \"Xen or ssh conversions from " "block devices\"." msgstr "" #. in-place/in_place.ml:397 #: v2v/v2v.ml:590 open/open.ml:238 inspector/inspector.ml:353 msgid "" "insufficient free space in the conversion server temporary directory %s " "(%s).\n" "\n" "Either free up space in that directory, or set the LIBGUESTFS_CACHEDIR " "environment variable to point to another directory with more than 1GB of " "free space.\n" "\n" "See also the virt-v2v(1) manual, section \"Minimum free space check in the " "host\"." msgstr "" #: common/mltools/tools_utils.ml:246 msgid "internal error: Not_found exception was thrown" msgstr "" #: common/mltools/tools_utils.ml:243 msgid "internal error: assertion failed at %s, line %d, char %d" msgstr "" #: common/mltools/tools_utils.ml:241 msgid "internal error: invalid argument: %s" msgstr "" #: common/mldrivers/linux.ml:128 msgid "internal error: is_file_owned: dpkg command returned no output" msgstr "" #: common/mldrivers/linux.ml:133 msgid "internal error: is_file_owned: unexpected output from dpkg command: %s" msgstr "" #: common/mldrivers/linux_bootloaders.ml:130 msgid "internal error: regular expression did not match ‘%s’" msgstr "" #: v2v/v2v.ml:548 msgid "internal error: wait returned unexpected process ID %d status \"%s\"" msgstr "" #: v2v/v2v.ml:114 inspector/inspector.ml:104 in-place/in_place.ml:111 msgid "invalid --mac ip option" msgstr "" #: v2v/v2v.ml:98 inspector/inspector.ml:88 in-place/in_place.ml:95 msgid "invalid -b/--bridge parameter" msgstr "" #: v2v/v2v.ml:90 inspector/inspector.ml:80 in-place/in_place.ml:87 msgid "invalid -n/--network parameter" msgstr "" #: input/parse_domain_from_vmx.ml:402 msgid "invalid cpuid.coresPerSocket < number of vCPUs" msgstr "" #. common/mlcustomize/customize_cmdline.ml:153 #. common/mlcustomize/customize_cmdline.ml:145 #: common/mlcustomize/customize_cmdline.ml:161 msgid "invalid format for '--%s' parameter, see the man page" msgstr "" #: common/mltools/tools_utils.ml:359 msgid "invalid format string for --machine-readable: %s" msgstr "" #: lib/utils.ml:279 msgid "invalid input filename (%s)" msgstr "" #: input/OVA.ml:445 msgid "invalid offset returned by tar: %S" msgstr "" #: common/mltools/tools_utils.ml:374 msgid "invalid output fd for --machine-readable: %s" msgstr "" #: common/mltools/tools_utils.ml:376 msgid "invalid output for --machine-readable: %s" msgstr "" #: common/mltools/tools_utils.ml:368 msgid "invalid output stream for --machine-readable: %s" msgstr "" #: common/mlcustomize/password.ml:73 msgid "invalid password selector ‘%s’; see the man page" msgstr "" #: input/OVA.ml:450 msgid "invalid size returned by tar: %S" msgstr "" #: common/mlcustomize/ssh_key.ml:45 msgid "invalid ssh-inject selector ‘%s’; see the man page" msgstr "" #: input/OVF.ml:82 msgid "invalid vmw:CoresPerSocket (%d) ignored" msgstr "" #: input/OVF.ml:88 msgid "invalid vmw:CoresPerSocket < number of cores" msgstr "" #: common/mldrivers/linux_bootloaders.ml:114 msgid "kernel %s is not under grub tree %s" msgstr "" #: common/mltools/tools_utils.ml:539 common/mltools/tools_utils.ml:458 msgid "killed by signal %d" msgstr "" #: common/mltools/tools_utils.ml:237 msgid "libguestfs error: %s" msgstr "" #: lib/libvirt_utils.ml:72 msgid "" "libvirt domain ‘%s’ is running or paused. Converting a live guest will " "result in corrupted output. However this is safe if you're converting from a " "snapshot" msgstr "" #: common/mlcustomize/customize_run.ml:47 msgid "log file %s: %s (ignored)" msgstr "" #: input/OVA.ml:147 msgid "" "making OVA directory public readable to work around libvirt bug https://" "bugzilla.redhat.com/1045069" msgstr "" #: input/input_ova.ml:86 msgid "manifest has a checksum for non-existent file %s (ignored)" msgstr "" #: common/mlcustomize/customize_cmdline.ml:472 msgid "md5|sha256|sha512" msgstr "" #: common/mlcustomize/customize_run.ml:119 msgid "method '%s' is no longer supported" msgstr "" #: common/mltools/JSON_parser.ml:39 msgid "missing value for the key ‘%s’" msgstr "" #: input/OVA.ml:276 msgid "more than one .ovf file was found in %s" msgstr "" #: common/mltools/JSON_parser.ml:34 msgid "more than value for the key ‘%s’" msgstr "" #: output/output_ovirt.ml:222 msgid "" "mount command failed, see earlier errors.\n" "\n" "This probably means you didn't specify the right %s path [-os %s], or else " "you need to rerun virt-v2v as root." msgstr "" #: common/mlcustomize/customize_run.ml:103 msgid "" "multiple --root-password/--password options set the password for user ‘%s’ " "twice" msgstr "" #: input/input_vddk.ml:319 msgid "" "nbdkit VDDK plugin is not installed or not working. It is required if you " "want to use VDDK.\n" "\n" "It 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 ’/%s/libvixDiskLib.so.?’.\n" "\n" "See also the virt-v2v-input-vmware(1) manual." msgstr "" #: input/input_vddk.ml:313 msgid "" "nbdkit VDDK plugin is not installed or not working. It is required if you " "want to use VDDK.\n" "\n" "The 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" "\n" "See also the virt-v2v-input-vmware(1) manual." msgstr "" #: lib/nbdkit.ml:223 msgid "nbdkit did not start up. See previous debugging messages for problems." msgstr "" #: lib/nbdkit.ml:225 msgid "" "nbdkit did not start up. There may be errors printed by nbdkit above.\n" "\n" "If the messages above are not sufficient to diagnose the problem then add " "the ‘virt-v2v -v -x’ options and examine the debugging output carefully." msgstr "" #: input/nbdkit_ssh.ml:36 input/nbdkit_curl.ml:32 input/input_vddk.ml:283 msgid "nbdkit is not installed or not working" msgstr "" #: input/input_disk.ml:92 msgid "" "nbdkit is not installed or not working. It is required to use ‘-i disk’." msgstr "" #: input/input_libvirt.ml:68 msgid "" "nbdkit is not installed or not working. It is required to use ‘-i libvirt|" "libvirtxml’." msgstr "" #: output/output.ml:178 output/output.ml:77 msgid "" "nbdkit is not installed or not working. It is required to use ‘-o disk’." msgstr "" #: output/output_null.ml:57 msgid "" "nbdkit is not installed or not working. It is required to use ‘-o null’." msgstr "" #: output/output_ovirt_upload.ml:163 msgid "" "nbdkit is not installed or not working. It is required to use ‘-o ovirt-" "upload’. See the virt-v2v-output-ovirt(1) manual." msgstr "" #: input/input_vddk.ml:285 msgid "nbdkit must be >= 1.45.11 for input from VDDK" msgstr "" #: output/output_ovirt_upload.ml:176 msgid "" "nbdkit python plugin is not installed or not working. It is required if you " "want to use ‘-o ovirt-upload’.\n" "\n" "See also the virt-v2v-output-ovirt(1) manual." msgstr "" #: output/output_ovirt_upload.ml:190 msgid "" "nbdkit was compiled without SELinux support. You will have to recompile " "nbdkit with libselinux-devel installed, or else set SELinux to Permissive " "mode while doing the conversion." msgstr "" #. input/input_libvirt.ml:76 #. input/input_disk.ml:98 #: input/nbdkit_ssh.ml:42 input/nbdkit_curl.ml:38 input/input_vddk.ml:289 msgid "nbdkit-cow-filter is not installed or not working" msgstr "" #: input/nbdkit_curl.ml:35 msgid "nbdkit-curl-plugin is not installed" msgstr "" #. input/input_disk.ml:96 #: output/output.ml:181 output/output.ml:80 input/input_libvirt.ml:72 msgid "nbdkit-file-plugin is not installed or not working" msgstr "" #: input/input_libvirt.ml:74 msgid "nbdkit-nbd-plugin is not installed or not working" msgstr "" #: output/output_null.ml:60 msgid "nbdkit-null-plugin is not installed or not working" msgstr "" #: input/nbdkit_ssh.ml:39 msgid "nbdkit-ssh-plugin is not installed" msgstr "" #: input/input_vddk.ml:287 msgid "nbdkit-vddk-plugin is not installed" msgstr "" #: lib/nbdkit.ml:56 msgid "nbdkit: unexpected version in --dump-config: %s" msgstr "" #. input/input_vcenter_https.ml:49 #. input/input_ova.ml:46 #. input/input_libvirt.ml:35 #. input/input_disk.ml:39 #: input/input_xen_ssh.ml:47 input/input_vmx.ml:40 msgid "no -io (input options) are allowed here" msgstr "" #: output/output_ovirt.ml:44 output/output_null.ml:42 #: output/output_glance.ml:44 msgid "no -oo (output options) are allowed here" msgstr "" #: input/OVA.ml:273 msgid "no .ovf file was found in %s" msgstr "" #: common/mldrivers/linux_bootloaders.ml:402 msgid "no bootloader detected" msgstr "" #: input/parse_domain_from_vmx.ml:359 msgid "no displayName key found in VMX file" msgstr "" #: input/OVF.ml:148 msgid "no href in ovf:File (id=%s)" msgstr "" #: common/mldrivers/linux_kernels.ml:194 msgid "no initrd was found in /boot matching %s %s." msgstr "" #: common/mldrivers/linux_kernels.ml:317 msgid "" "no installed kernel packages were found.\n" "\n" "This probably indicates that %s was unable to inspect this guest properly." msgstr "" #: common/mldrivers/linux_kernels.ml:354 msgid "" "no kernels were found in the bootloader configuration.\n" "\n" "This probably indicates that %s was unable to parse the bootloader " "configuration of this guest." msgstr "" #: output/python_script.ml:55 msgid "no python binary called ‘%s’ can be found on the $PATH" msgstr "" #: input/select_input.ml:106 msgid "" "no support for remote libvirt connections to '-ic %s'. The conversion may " "fail when it tries to read the source disks." msgstr "" #: lib/create_ovf.ml:1027 msgid "" "oVirt cannot emulate ‘%s’ sound cards. This sound card will be dropped from " "the output." msgstr "" #: lib/create_ovf.ml:875 lib/create_ovf.ml:512 msgid "oVirt does not support the output format ‘%s’, only raw or qcow2" msgstr "" #: output/output_openstack.ml:120 msgid "openstack: -oo server-id= not present" msgstr "" #: output/output_openstack.ml:338 msgid "" "openstack: failed to attach cinder volume to VM, see earlier error messages" msgstr "" #: output/output_openstack.ml:291 msgid "openstack: failed to create a cinder volume, see earlier error messages" msgstr "" #: output/output_openstack.ml:304 msgid "" "openstack: failed to query cinder volume status, see earlier error messages" msgstr "" #: output/output_openstack.ml:442 msgid "" "openstack: failed to set image properties on cinder volume, see earlier " "error messages" msgstr "" #: output/output_openstack.ml:199 msgid "" "openstack: precheck failed, there may be a problem with authentication, see " "earlier error messages" msgstr "" #: output/output_openstack.ml:311 msgid "" "openstack: unknown volume status \"%s\": expected \"creating\" or " "\"available\"" msgstr "" #: output/output.ml:133 msgid "output mode only supports raw or qcow2 format (format: %s)" msgstr "" #: input/OVF.ml:263 msgid "" "ova disk has an unknown VMware controller type (%d), please report this as a " "bug supplying the *.ovf file extracted from the ova" msgstr "" #: input/OVF.ml:259 msgid "" "ova disk has no parent controller, please report this as a bug supplying the " "*.ovf file extracted from the ova" msgstr "" #: output/output_ovirt_upload.ml:367 msgid "" "ovirt-upload: -of %s: Only output format ‘raw’ or ‘qcow2’ is supported. If " "the input is in a different format then force one of these output formats by " "adding either ‘-of raw’ or ‘-of qcow2’ on the command line." msgstr "" #: common/mlcustomize/password.ml:51 msgid "" "password-crypto: unknown algorithm %s, use \"md5\", \"sha256\", \"sha512\" " "or \"yescrypt\"" msgstr "" #: common/mlcustomize/password.ml:197 msgid "" "password: using insecure md5 password encryption for guest of type %s " "version %d.%d.\n" "If this is incorrect, use --password-crypto option and file a bug." msgstr "" #: common/mlcustomize/customize_run.ml:359 msgid "passwords could not be set for this type of guest" msgstr "" #: lib/qemuNBD.ml:125 msgid "" "qemu-nbd did not start up. See previous debugging messages for problems." msgstr "" #: lib/qemuNBD.ml:127 msgid "" "qemu-nbd did not start up. There may be errors printed by qemu-nbd above.\n" "\n" "If the messages above are not sufficient to diagnose the problem then add " "the ‘virt-v2v -v -x’ options and examine the debugging output carefully." msgstr "" #: lib/qemuNBD.ml:47 msgid "qemu-nbd: unexpected version in --version: %s" msgstr "" #: common/mlcustomize/customize_run.ml:77 msgid "random seed could not be set for this type of guest" msgstr "" #: input/parse_domain_from_vmx.ml:44 msgid "remote vmx ‘%s’ could not be parsed as a URI" msgstr "" #. common/mlcustomize/inject_virtio_win.ml:357 #. common/mlcustomize/inject_virtio_win.ml:352 #: common/mlcustomize/inject_virtio_win.ml:362 msgid "" "root directory ‘/’ is missing from the virtio-win directory or ISO.\n" "\n" "This should not happen and may indicate that virtio-win or virt-v2v is " "broken in some way. Please report this as a bug with a full debug log." msgstr "" #: common/mltools/tools_utils.ml:417 common/options/keys.c:264 #, c-format msgid "selector '%s': invalid TYPE" msgstr "" #: common/mltools/tools_utils.ml:409 common/options/keys.c:254 #, c-format msgid "selector '%s': missing FILENAME, or too many fields" msgstr "" #: common/mltools/tools_utils.ml:399 common/options/keys.c:232 #, c-format msgid "selector '%s': missing ID" msgstr "" #: common/mltools/tools_utils.ml:404 common/options/keys.c:245 #, c-format msgid "selector '%s': missing KEY_STRING, or too many fields" msgstr "" #: common/mltools/tools_utils.ml:401 common/options/keys.c:239 #, c-format msgid "selector '%s': missing TYPE" msgstr "" #: common/mltools/tools_utils.ml:413 common/options/keys.c:262 #, c-format msgid "selector '%s': too many fields" msgstr "" #: lib/utils.ml:35 msgid "signalled by signal %d" msgstr "" #: common/mlcustomize/guest_packages.ml:40 msgid "" "sorry, ‘%s’ with the ‘%s’ package manager has not been implemented yet.\n" "\n" "You can work around this by using one of the ‘--run*’ or ‘--firstboot*’ " "options instead (described in the virt-customize(1) manual)." msgstr "" #: common/mlcustomize/ssh_key.ml:57 msgid "ssh-inject: $HOME environment variable is not set" msgstr "" #: common/mlcustomize/ssh_key.ml:93 msgid "ssh-inject: key is an empty string" msgstr "" #: common/mlcustomize/ssh_key.ml:66 msgid "ssh-inject: no public key file found in %s" msgstr "" #: common/mlcustomize/ssh_key.ml:83 msgid "ssh-inject: public key file (%s) is empty" msgstr "" #: common/mlcustomize/ssh_key.ml:112 msgid "ssh-inject: the user %s does not exist on the guest" msgstr "" #. common/mltools/tools_utils.ml:461 #: lib/utils.ml:36 common/mltools/tools_utils.ml:542 msgid "stopped by signal %d" msgstr "" #: output/changeuid.ml:58 msgid "subprocess exited with non-zero error code %d" msgstr "" #: output/changeuid.ml:60 msgid "subprocess signalled or stopped by signal %d" msgstr "" #: lib/utils.ml:33 msgid "success" msgstr "" #: output/create_libvirt_xml.ml:297 msgid "" "target hypervisor does not support floppy devices, but floppy devices were " "found in the source guest" msgstr "" #: output/output_ovirt_upload.ml:156 msgid "" "the Python module ‘ovirtsdk4’ could not be loaded, is it installed? See " "previous messages for problems." msgstr "" #: output/output_ovirt_upload.ml:453 msgid "the cluster ‘%s’ does not support the architecture %s but %s" msgstr "" #: common/mlcustomize/customize_run.ml:59 msgid "" "the command may have failed because the network is disabled. Try either " "removing ‘--no-network’ or adding ‘--network’ on the command line." msgstr "" #: common/mltools/JSON_parser.ml:84 msgid "the key ‘%s’ was not found in a list of objects" msgstr "" #: output/output_ovirt_upload.ml:288 msgid "" "the number of ‘-oo ovirt-disk-uuid’ parameters passed on the command line " "has to match the number of guest disk images (for this guest: %d)" msgstr "" #: output/output_vdsm.ml:133 msgid "" "the number of ‘-oo vdsm-image-uuid’ and ‘-oo vdsm-vol-uuid’ parameters " "passed on the command line has to match the number of guest disk images (for " "this guest: %d)" msgstr "" #: output/output_libvirt.ml:239 msgid "the target hypervisor does not support a %s KVM guest" msgstr "" #: common/mltools/JSON_parser.ml:78 msgid "the value for key ‘%s’ is not a string as expected" msgstr "" #: common/mltools/JSON_parser.ml:50 msgid "the value for the key ‘%s’ is not a bool" msgstr "" #: common/mltools/JSON_parser.ml:45 msgid "the value for the key ‘%s’ is not a string" msgstr "" #: common/mltools/JSON_parser.ml:70 msgid "the value for the key ‘%s’ is not an integer" msgstr "" #: common/mltools/JSON_parser.ml:55 msgid "the value for the key ‘%s’ is not an object" msgstr "" #: common/mltools/JSON_parser.ml:59 msgid "the value is not an object" msgstr "" #: common/mltools/JSON_parser.ml:35 msgid "the value of the key ‘%s’ is not an object" msgstr "" #: lib/create_ovf.ml:519 msgid "" "the virtual size of the input disk %d is not an exact multiple of 512 " "bytes. The virtual size is: %Ld.\n" "\n" "This probably means something unexpected is going on, so please file a bug " "about this issue." msgstr "" #: output/output_openstack.ml:144 msgid "" "the ‘%s’ program is not available. It is needed to communicate with " "OpenStack." msgstr "" #: output/output_ovirt.ml:265 msgid "" "there are multiple UUIDs in the %s (%s). This is unexpected, and may be a " "bug in virt-v2v or OVirt." msgstr "" #: output/output_ovirt.ml:262 msgid "there are no UUIDs in the %s (%s). Is it really an OVirt %s?" msgstr "" #: common/mlcustomize/inject_virtio_win.ml:153 msgid "" "there are no virtio drivers available for this version of Windows (%d.%d %s " "%s %s). virt-v2v looks for drivers in %s\n" "\n" "The guest will be configured to use slower emulated devices." msgstr "" #: common/mlcustomize/inject_virtio_win.ml:175 msgid "" "there is no virtio block device driver for this version of Windows (%d.%d " "%s). virt-v2v looks for this driver in %s\n" "\n" "The guest will be configured to use a slower emulated device." msgstr "" #: common/mlcustomize/inject_virtio_win.ml:206 msgid "" "there is no virtio network driver for this version of Windows (%d.%d %s). " "virt-v2v looks for this driver in %s\n" "\n" "The guest will be configured to use a slower emulated device." msgstr "" #: input/parse_libvirt_xml.ml:545 msgid "this guest has a direct network interface which will be ignored" msgid_plural "this guest has direct network interfaces which will be ignored" msgstr[0] "" #: input/parse_libvirt_xml.ml:527 msgid "this guest has a passthrough host device which will be ignored" msgid_plural "this guest has passthrough host devices which will be ignored" msgstr[0] "" #: input/parse_libvirt_xml.ml:248 msgid "this guest has no non-removable disks" msgstr "" #: output/output.ml:65 msgid "this output module doesn't support copying more than %d disks" msgstr "" #: common/mlcustomize/timezone.ml:35 msgid "timezone '%s' does not exist, use a location like 'Europe/London'" msgstr "" #: common/mlcustomize/customize_run.ml:304 msgid "timezone could not be set for this type of guest" msgstr "" #: input/OVA.ml:318 msgid "unable to parse line from manifest file: %S" msgstr "" #: common/mltools/urandom.ml:37 msgid "unexpected end of file while reading /dev/urandom" msgstr "" #: input/input_libvirt.ml:196 msgid "unexpected output from the %s command" msgstr "" #: common/mltools/checksums.ml:58 msgid "unhandled checksum type ‘%s’" msgstr "" #: lib/types.ml:524 msgid "unknown --root option: %s" msgstr "" #: input/select_input.ml:51 msgid "unknown -i option: %s" msgstr "" #: output/select_output.ml:74 msgid "unknown -o option: %s" msgstr "" #: v2v/v2v.ml:164 msgid "unknown -oa option: %s" msgstr "" #: input/input_libvirt.ml:189 msgid "unknown method='%s'" msgstr "" #: input/OVF.ml:103 msgid "unknown Config:firmware value %s (expected \"bios\" or \"efi\")" msgstr "" #: lib/create_ovf.ml:446 lib/create_ovf.ml:247 msgid "unknown Windows 10 variant: %s (%s)" msgstr "" #: v2v/v2v.ml:319 in-place/in_place.ml:256 msgid "unknown block driver ‘--block-driver %s’" msgstr "" #: input/parse_domain_from_vmx.ml:415 msgid "unknown firmware value '%s', assuming BIOS" msgstr "" #: lib/create_ovf.ml:454 lib/create_ovf.ml:255 msgid "unknown guest operating system: %s %s %d.%d %s (%s)" msgstr "" #: v2v/v2v.ml:329 open/open.ml:132 inspector/inspector.ml:238 msgid "unknown input transport ‘-it %s’" msgstr "" #: input/parse_domain_from_vmx.ml:428 msgid "unknown sound device '%s' ignored" msgstr "" #: input/parse_libvirt_xml.ml:215 msgid "unknown sound model %s ignored" msgstr "" #: input/OVF.ml:156 msgid "unsupported compression in OVF: %s" msgstr "" #: input/input_vcenter_https.ml:123 msgid "" "vcenter: was not found in the XML. You need to " "upgrade to libvirt ≥ 1.2.20." msgstr "" #: input/vCenter.ml:79 msgid "vcenter: URL not found: %s" msgstr "" #: input/vCenter.ml:70 msgid "vcenter: incorrect username or password" msgstr "" #: input/vCenter.ml:72 msgid "" "vcenter: incorrect username or password. You might need to specify the " "username in the URI like this: [vpx|esx|..]://USERNAME@[etc]" msgstr "" #: input/vCenter.ml:84 msgid "vcenter: invalid response from server: %s" msgstr "" #: input/vCenter.ml:194 msgid "vcenter: no status code in output of ‘curl’ command." msgstr "" #: output/output_vdsm.ml:148 msgid "vdsm: invalid -os parameter does not contain a valid UUID: %s" msgstr "" #: output/output_openstack.ml:56 msgid "" "virt-v2v -oo server-id= [os-*=...]\n" "\n" "Specify the name or UUID of the conversion appliance using\n" "\n" " virt-v2v ... -o openstack -oo server-id=\n" "\n" "When virt-v2v runs it will attach the Cinder volumes to the\n" "conversion appliance, so this name or UUID must be the name\n" "of the virtual machine on OpenStack where virt-v2v is running.\n" "\n" "In addition, all usual OpenStack “os-*” parameters or “OS_*”\n" "environment variables can be used.\n" "\n" "Openstack “--os-*” parameters must be written as “virt-v2v -oo os-*”.\n" "\n" "For example:\n" "\n" " virt-v2v -oo os-username=\n" "\n" " equivalent to openstack: --os-username=\n" " or the environment variable: OS_USERNAME=\n" "\n" " virt-v2v -oo os-project-name=\n" "\n" " equivalent to openstack: --os-project-name=\n" " or the environment variable: OS_PROJECT_NAME=\n" "\n" "The os-* parameters and environment variables are optional.\n" msgstr "" #: input/parse_libvirt_xml.ml:189 msgid "" "virt-v2v does not support local displays, so in the " "input libvirt XML was ignored" msgstr "" #: input/select_input.ml:83 msgid "virt-v2v-in-place does not support remote libvirt URIs" msgstr "" #: input/parse_domain_from_vmx.ml:50 msgid "vmx URI path component looks incorrect" msgstr "" #: input/parse_domain_from_vmx.ml:48 msgid "vmx URI remote server name omitted" msgstr "" #: input/parse_domain_from_vmx.ml:46 msgid "vmx URI start with ‘ssh://...’" msgstr "" #: input/VMX.ml:313 msgid "vmx parser: cannot parse this line, ignoring: %s" msgstr "" #: input/VMX.ml:346 msgid "vmx parser: duplicate key '%s' ignored" msgstr "" #: output/output_openstack.ml:299 msgid "wait for cinder volume status to change to \"available\"" msgstr "" #: output/output_openstack.ml:360 msgid "waiting for cinder volume %s to attach to the conversion appliance" msgstr "" #: open/open.ml:136 msgid "you must supply the --run parameter" msgstr "" #: input/input_xen_ssh.ml:87 input/input_vddk.ml:189 msgid "‘-ic %s’ URL does not contain a host name field" msgstr "" #: input/input_vddk.ml:273 msgid "‘-io vddk-file=’ must be used exactly %d times" msgstr "" #: input/input_vddk.ml:297 msgid "" "‘-io vddk-libdir=%s’ does not point to a directory. See the virt-v2v-input-" "vmware(1) manual." msgstr "" #: output/output.ml:85 msgid "" "‘-oo compressed’ is only allowed when the output format is a local qcow2-" "format file, i.e. ‘-of qcow2’" msgstr "" #: input/input_vddk.ml:232 msgid "" "‘openssl’ command not found: automatically detecting thumbprint is not " "possible, so you must use ‘-io vddk-thumbprint=XX:XX...’" msgstr "" #: common/mltools/getopt-c.c:68 #, c-format msgid "Try ‘%s --help’ or consult %s(1) for more information.\n" msgstr "" #: common/mltools/getopt-c.c:187 #, c-format msgid "%s: ‘%s’ is not a numeric value.\n" msgstr "" #: common/mltools/getopt-c.c:193 #, c-format msgid "%s: %s: integer out of range\n" msgstr "" #: common/mltools/getopt-c.c:383 #, c-format msgid "%s: ‘%s’ is not allowed for -%c; allowed values are:\n" msgstr "" #: common/mltools/getopt-c.c:386 #, c-format msgid "%s: ‘%s’ is not allowed for %s%s; allowed values are:\n" msgstr "" #: common/mltools/getopt-c.c:421 #, c-format msgid "Extra parameter on the command line: ‘%s’.\n" msgstr "" #: common/options/config.c:72 #, c-format msgid "%s: line %d: error parsing configuration file: %s" msgstr "" #: common/options/decrypt.c:52 #, c-format msgid "string size overflow" msgstr "" #: common/options/decrypt.c:170 #, c-format msgid "" "'clevis_luks_unlock', needed for decrypting %s, is unavailable in this " "libguestfs version" msgstr "" #: common/options/decrypt.c:184 #, c-format msgid "" "could not find key to open LUKS encrypted %s.\n" "\n" "Try using --key on the command line.\n" "\n" "Original error: %s (%d)" msgstr "" #: common/options/inspect.c:78 #, c-format msgid "" "%s: no operating system was found on this disk\n" "\n" "If using guestfish ‘-i’ option, remove this option and instead\n" "use the commands ‘run’ followed by ‘list-filesystems’.\n" "You can then mount filesystems you want by hand using the\n" "‘mount’ or ‘mount-ro’ command.\n" "\n" "If using guestmount ‘-i’, remove this option and choose the\n" "filesystem(s) you want to see by manually adding ‘-m’ option(s).\n" "Use ‘virt-filesystems’ to see what filesystems are available.\n" "\n" "If using other virt tools, this disk image won’t work\n" "with these tools. Use the guestfish equivalent commands\n" "(see the virt tool manual page).\n" msgstr "" #: common/options/inspect.c:99 #, c-format msgid "" "%s: multi-boot operating systems are not supported\n" "\n" "If using guestfish ‘-i’ option, remove this option and instead\n" "use the commands ‘run’ followed by ‘list-filesystems’.\n" "You can then mount filesystems you want by hand using the\n" "‘mount’ or ‘mount-ro’ command.\n" "\n" "If using guestmount ‘-i’, remove this option and choose the\n" "filesystem(s) you want to see by manually adding ‘-m’ option(s).\n" "Use ‘virt-filesystems’ to see what filesystems are available.\n" "\n" "If using other virt tools, multi-boot operating systems won’t work\n" "with these tools. Use the guestfish equivalent commands\n" "(see the virt tool manual page).\n" msgstr "" #: common/options/inspect.c:161 #, c-format msgid "%s: some filesystems could not be mounted (ignored)\n" msgstr "" #: common/options/inspect.c:178 #, c-format msgid "Operating system: %s\n" msgstr "" #: common/options/inspect.c:196 #, c-format msgid "%s mounted on %s\n" msgstr "" #: common/options/keys.c:63 #, c-format msgid "Enter key or passphrase (\"%s\"): " msgstr "" #: common/options/keys.c:146 #, c-format msgid "size_t overflow" msgstr "" #: common/options/keys.c:193 #, c-format msgid "could not read key from user" msgstr "" #: common/options/options.c:283 #, c-format msgid "%s: ‘%s’ could not be mounted.\n" msgstr "" #: common/options/options.c:287 #, c-format msgid "" "%s: Check mount(8) man page to ensure options ‘%s’\n" "%s: are supported by the filesystem that is being mounted.\n" msgstr "" #: common/options/options.c:291 #, c-format msgid "%s: Did you mean to mount one of these filesystems?\n" msgstr "" #: common/options/options.c:304 #, c-format msgid "cannot determine the subvolume for %s: %s (%d)" msgstr "" #: common/options/uri.c:119 #, c-format msgid "%s: --add: could not parse URI ‘%s’\n" msgstr "" #: common/options/uri.c:130 #, c-format msgid "%s: %s: scheme of URI is NULL or empty\n" msgstr "" #: common/options/uri.c:138 #, c-format msgid "%s: %s: cannot have both a server name and a socket query parameter\n" msgstr "" #: common/utils/utils.c:107 #, c-format msgid "%s exited successfully" msgstr "" #: common/utils/utils.c:110 #, c-format msgid "%s exited with error status %d" msgstr "" #: common/utils/utils.c:114 #, c-format msgid "%s killed by signal %d (%s)" msgstr "" #: common/utils/utils.c:118 #, c-format msgid "%s stopped by signal %d (%s)" msgstr "" #: common/utils/utils.c:122 #, c-format msgid "%s exited for an unknown reason (status %d)" msgstr "" ================================================ FILE: po/it.po ================================================ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR Red Hat Inc. # This file is distributed under the same license as the virt-v2v package. # FIRST AUTHOR , YEAR. # msgid "" msgstr "" "Project-Id-Version: virt-v2v 2.7.7\n" "Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?" "component=libguestfs&product=Virtualization+Tools\n" "POT-Creation-Date: 2025-02-16 17:05+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" "Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" #: input/input_ova.ml:135 common/mltools/tools_utils.ml:235 msgid "%s" msgstr "" #: common/mltools/getopt.ml:73 msgid "" "%s\n" "Options:\n" msgstr "" #: common/mltools/tools_utils.ml:695 common/mlcustomize/customize_run.ml:390 msgid "%s (ignored)" msgstr "" #: common/mltools/checksums.ml:71 msgid "%s did not return any output" msgstr "" #: common/mlcustomize/customize_run.ml:183 msgid "%s does not exist in the guest" msgstr "" #: output/output_ovirt.ml:275 msgid "" "%s does not exist or is not a directory.\n" "\n" "Most likely cause: Either the %s (%s) has not been attached to any Data " "Center, or the path %s is not an %s at all.\n" "\n" "You have to attach the %s to a Data Center using the oVirt user interface " "first.\n" "\n" "If you don’t know what the %s mount point should be then you can also find " "this out through the oVirt user interface." msgstr "" #: common/mlcustomize/customize_run.ml:113 msgid "%s ignored for non-Windows guest" msgstr "" #: common/mlcustomize/customize_run.ml:186 msgid "%s is not a regular file in the guest" msgstr "" #. open/open.ml:39 #. inspector/inspector.ml:153 #. inspector/inspector.ml:40 #. in-place/in_place.ml:164 #. in-place/in_place.ml:45 #: v2v/v2v.ml:194 v2v/v2v.ml:183 v2v/v2v.ml:159 v2v/v2v.ml:44 open/open.ml:68 msgid "%s option used more than once on the command line" msgstr "" #: common/mltools/tools_utils.ml:231 common/mltools/tools_utils.ml:202 msgid "%s: %s" msgstr "" #: common/mltools/tools_utils.ml:233 msgid "%s: %s: %s" msgstr "" #: common/mltools/on_exit.ml:77 msgid "" "%s: Exiting on signal %s\n" "%!" msgstr "" #: common/mlcustomize/inject_virtio_win.ml:411 msgid "%s: cannot open virtio-win ISO file: %s" msgstr "" #: common/mlcustomize/customize_run.ml:64 msgid "%s: command exited with an error" msgstr "" #: v2v/v2v.ml:277 msgid "" "%s: convert a guest to use KVM\n" "\n" "virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi -os imported " "esx_guest\n" "\n" "virt-v2v -i libvirtxml guest-domain.xml -o local -os /var/tmp\n" "\n" "virt-v2v -i disk disk.img -o local -os /var/tmp\n" "\n" "There is a companion front-end called \"virt-p2v\" which comes as an\n" "ISO or CD image that can be booted on physical machines.\n" "\n" "A short summary of the options is given below. For detailed help please\n" "read the man page virt-v2v(1).\n" msgstr "" #: in-place/in_place.ml:217 msgid "" "%s: convert a guest to use KVM in-place\n" "\n" "Note this program modifies the guest in-place with no backup.\n" "Normally you should use virt-v2v.\n" "\n" "virt-v2v-in-place -i libvirtxml guest-domain.xml\n" "\n" "virt-v2v-in-place -i disk disk.img\n" "\n" "A short summary of the options is given below. For detailed help please\n" "read the man page virt-v2v-in-place(1).\n" msgstr "" #: input/input_vddk.ml:207 msgid "%s: enter password for ‘%s’: " msgstr "" #: common/mltools/tools_utils.ml:172 msgid "%s: error: %s" msgstr "" #: inspector/inspector.ml:198 msgid "" "%s: estimate disk space needed before virt-v2v conversion\n" "\n" "virt-v2v-inspector -i disk disk.img [-O output.xml]\n" "\n" "A short summary of the options is given below. For detailed help please\n" "read the man page virt-v2v-inspector(1).\n" msgstr "" #: open/open.ml:94 msgid "" "%s: open the virt-v2v input and run a program on it\n" "\n" "virt-v2v-open -i disk disk.img --run 'virt-inspector --format=raw @@'\n" "\n" "A short summary of the options is given below. For detailed help please\n" "read the man page virt-v2v-open(1).\n" msgstr "" #: common/mltools/tools_utils.ml:726 msgid "%s: operation timed out" msgstr "" #: input/OVA.ml:127 input/OVA.ml:121 msgid "" "%s: unsupported file format\n" "\n" "Formats which we currently understand for '-i ova' are: tar (uncompressed, " "compress with gzip or xz), zip" msgstr "" #: common/mltools/tools_utils.ml:191 msgid "%s: warning: %s" msgstr "" #. common/mlcustomize/customize_cmdline.ml:258 #: common/mlcustomize/customize_cmdline.ml:367 msgid "'CMD+ARGS'" msgstr "" #: common/mlcustomize/customize_run.ml:133 msgid "" "--append-line: line must not contain newline characters. Use the --append-" "line option multiple times to add several lines." msgstr "" #: common/mlcustomize/customize_run.ml:152 msgid "--chown: could not parse numeric UID:GID from %s:%s" msgstr "" #: common/mlcustomize/customize_run.ml:216 msgid "" "--inject-blnsvr: blnsvr.exe not found in virtio-win source that you specified" msgstr "" #: common/mlcustomize/customize_run.ml:225 msgid "" "--inject-qemu-ga: QEMU Guest Agent MSI not found in virtio-win source that " "you specified" msgstr "" #: common/mlcustomize/customize_run.ml:241 msgid "" "--inject-virtio-win: virtio drivers were not found for this Windows version " "in the virtio-win source that you specified" msgstr "" #: v2v/v2v.ml:146 inspector/inspector.ml:136 in-place/in_place.ml:143 msgid "--mac ip prefix length field is out of range" msgstr "" #: v2v/v2v.ml:340 msgid "--parallel parameter must be >= 1" msgstr "" #: input/input_disk.ml:42 msgid "-i disk: expecting a disk image (filename) on the command line" msgstr "" #: input/input_xen_ssh.ml:65 msgid "-i libvirt: expecting -ic parameter for Xen over SSH connection" msgstr "" #: input/input_vddk.ml:142 input/input_vcenter_https.ml:88 msgid "-i libvirt: expecting -ic parameter for vcenter connection" msgstr "" #: input/input_vcenter_https.ml:101 msgid "-i libvirt: expecting -ic parameter to contain vcenter server name" msgstr "" #: input/input_vcenter_https.ml:78 msgid "-i libvirt: expecting -ip passwordfile parameter for vCenter connection" msgstr "" #. input/input_vcenter_https.ml:70 #. input/input_libvirt.ml:41 #: input/input_xen_ssh.ml:57 input/input_vddk.ml:132 msgid "-i libvirt: expecting a libvirt guest name on the command line" msgstr "" #: input/input_libvirt.ml:59 msgid "-i libvirtxml: expecting a libvirt XML filename on the command line" msgstr "" #: input/input_ova.ml:243 msgid "-i ova: OVF references file ‘%s’ which was not found in the OVA archive" msgstr "" #: input/input_ova.ml:78 msgid "" "-i ova: corrupt OVA: checksum of disk %s does not match manifest (actual = " "%s, expected = %s)" msgstr "" #: input/input_ova.ml:52 msgid "-i ova: expecting an OVA file name on the command line" msgstr "" #: input/OVA.ml:361 msgid "" "-i ova: invalid OVA file: path ‘%s’ references a file outside the archive" msgstr "" #: input/input_vmx.ml:57 msgid "-i vmx: cannot use -it vddk in this input mode" msgstr "" #: input/input_vmx.ml:60 msgid "-i vmx: expecting a VMX file or ssh:// URI" msgstr "" #: input/vCenter.ml:159 msgid "" "-ip PASSWORD_FILE parameter ignored because 'user@' was not given in the URL" msgstr "" #: input/input_vddk.ml:119 msgid "-it vddk: ‘-io %s’ is not a valid input option" msgstr "" #: output/output.ml:54 msgid "-o %s: %s option cannot be used in this output mode" msgstr "" #: output/output_disk.ml:66 msgid "-o disk: output directory was not specified, use '-os /dir'" msgstr "" #: output/output_libvirt.ml:59 output/output_disk.ml:56 msgid "-o disk: unknown output option ‘-oo %s’" msgstr "" #: output/output_kubevirt.ml:81 msgid "-o kubevirt: output directory was not specified, use '-os /dir'" msgstr "" #: output/output_kubevirt.ml:91 msgid "" "-o kubevirt: the guest name must contain only lowercase alphanumeric " "characters, '-' or '.', and must start and end with an alphanumeric " "character. Rerun virt-v2v with the '-on name' option to rename it." msgstr "" #: output/output_kubevirt.ml:71 msgid "-o kubevirt: unknown output option ‘-oo %s’" msgstr "" #: output/output_libvirt.ml:120 msgid "" "-o libvirt: output pool ‘%s’ does not have /pool/target/path element. See " "virt-v2v-output-local(1)" msgstr "" #: output/output_libvirt.ml:124 msgid "" "-o libvirt: output pool ‘%s’ has type='dir' but the /pool/target/path " "element is not a local directory. See virt-v2v-output-local(1)" msgstr "" #: output/output_libvirt.ml:116 msgid "" "-o libvirt: output pool ‘%s’ is not a directory (type='dir'). See virt-v2v-" "output-local(1)" msgstr "" #: output/output_openstack.ml:88 msgid "-o openstack mode only supports -oa sparse -of raw" msgstr "" #: output/output_openstack.ml:115 msgid "-o openstack: unknown output option ‘-oo %s’" msgstr "" #: output/output_ovirt_upload.ml:97 msgid "-o ovirt-upload: -oo ovirt-cafile set more than once" msgstr "" #: output/output_ovirt_upload.ml:101 msgid "-o ovirt-upload: -oo ovirt-cluster set more than once" msgstr "" #: output/output_ovirt_upload.ml:112 msgid "-o ovirt-upload: invalid UUID for -oo ovirt-disk-uuid" msgstr "" #: output/output_ovirt_upload.ml:76 msgid "" "-o ovirt-upload: output password file was not specified, use ‘-op’ to point " "to a file which contains the password used to connect to the oVirt server" msgstr "" #: output/output_ovirt_upload.ml:83 msgid "-o ovirt-upload: output storage was not specified, use ‘-os’" msgstr "" #: output/output_ovirt_upload.ml:116 msgid "-o ovirt-upload: unknown output option ‘-oo %s’" msgstr "" #: output/output_ovirt_upload.ml:68 msgid "" "-o ovirt-upload: use ‘-oc’ to point to the oVirt server REST API URL, which " "is usually https://servername/ovirt-engine/api" msgstr "" #: output/output_ovirt.ml:51 msgid "-o ovirt: -os option was not specified" msgstr "" #: output/output_qemu.ml:72 msgid "-o qemu: output directory was not specified, use '-os /dir'" msgstr "" #: output/output_qemu.ml:63 msgid "-o qemu: unknown output option ‘-oo %s’" msgstr "" #: output/output_vdsm.ml:102 msgid "-o vdsm: -oo vdsm-image-uuid was not specified" msgstr "" #: output/output_vdsm.ml:81 msgid "-o vdsm: -oo vdsm-ovf-output set more than once" msgstr "" #: output/output_vdsm.ml:77 msgid "-o vdsm: -oo vdsm-vm-uuid set more than once" msgstr "" #: output/output_vdsm.ml:110 msgid "-o vdsm: -os option was not specified" msgstr "" #: output/output_vdsm.ml:97 msgid "-o vdsm: either -oo vdsm-vol-uuid or -oo vdsm-vm-uuid was not specified" msgstr "" #: output/output_vdsm.ml:90 msgid "-o vdsm: unknown output option ‘-oo %s’" msgstr "" #: output/output_vdsm.ml:74 msgid "-o vdsm: unknown vdsm-compat level ‘%s’" msgstr "" #. output/output_kubevirt.ml:84 #. output/output_disk.ml:68 #: output/output_vdsm.ml:112 output/output_qemu.ml:74 msgid "-os %s: output directory does not exist or is not a directory" msgstr "" #: input/parse_libvirt_xml.ml:279 msgid " missing 'method' attribute, ignoring" msgstr "" #: input/parse_libvirt_xml.ml:291 msgid " unknown fail='%s' attribute, ignoring" msgstr "" #: input/parse_libvirt_xml.ml:370 input/parse_libvirt_xml.ml:317 msgid " was ignored" msgstr "" #: input/parse_libvirt_xml.ml:338 msgid " with was ignored" msgstr "" #: input/parse_libvirt_xml.ml:365 msgid " with was ignored" msgstr "" #: input/parse_libvirt_xml.ml:299 msgid " element with no type attribute ignored" msgstr "" #: input/parse_libvirt_xml.ml:167 msgid " in the input libvirt XML was ignored" msgstr "" #: input/parse_libvirt_xml.ml:414 msgid "" " was ignored because the device name could not be recognized" msgstr "" #: input/input_vddk.ml:176 msgid "" " was not found in the output of ‘virsh dumpxml \"%s\"’. The " "most likely reason is that libvirt is too old, try upgrading libvirt to ≥ " "3.7." msgstr "" #: common/mlcustomize/customize_cmdline.ml:305 msgid "Add package(s) to install" msgstr "" #: common/mlcustomize/customize_cmdline.ml:270 msgid "Add package(s) to install at first boot" msgstr "" #: common/mlcustomize/customize_cmdline.ml:175 msgid "Append line(s) to the file" msgstr "" #: common/mlcustomize/customize_run.ml:137 msgid "Appending line to %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:197 msgid "Change the owner user and group ID of a file or directory" msgstr "" #: common/mlcustomize/customize_cmdline.ml:186 msgid "Change the permissions of a file" msgstr "" #: common/mlcustomize/customize_run.ml:155 msgid "Changing owner of %s to %d:%d" msgstr "" #: common/mlcustomize/customize_run.ml:141 msgid "Changing permissions of %s to %s" msgstr "" #: input/input_libvirt.ml:174 input/input_libvirt.ml:157 msgid "Checking %s checksum of disk %d/%d" msgstr "" #: common/mlcustomize/customize_cmdline.ml:488 msgid "Compatibility option doing nothing" msgstr "" #: common/mlcustomize/customize_cmdline.ml:219 msgid "Copy files in disk image" msgstr "" #: common/mlcustomize/customize_cmdline.ml:397 msgid "Copy local files or directories from a tarball into image" msgstr "" #: common/mlcustomize/customize_cmdline.ml:230 msgid "Copy local files or directories into image" msgstr "" #: common/mlcustomize/customize_run.ml:168 msgid "Copying (in image): %s to %s" msgstr "" #: v2v/v2v.ml:518 msgid "Copying disk %d/%d" msgstr "" #: common/mlcustomize/customize_run.ml:172 msgid "Copying: %s to %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:322 msgid "Create a directory" msgstr "" #: common/mlcustomize/customize_cmdline.ml:316 msgid "Create symbolic links" msgstr "" #: v2v/v2v.ml:567 msgid "Creating output metadata" msgstr "" #: common/mlcustomize/customize_cmdline.ml:321 msgid "DIR" msgstr "" #: common/mlcustomize/customize_cmdline.ml:236 msgid "Delete a file or directory" msgstr "" #: common/mlcustomize/customize_run.ml:176 msgid "Deleting: %s" msgstr "" #: common/mltools/getopt.ml:225 msgid "Display brief help" msgstr "" #: common/mltools/tools_utils.ml:385 msgid "Display version and exit" msgstr "" #: common/mlcustomize/customize_cmdline.ml:482 msgid "Do not relabel files with correct SELinux labels" msgstr "" #: v2v/v2v.ml:248 inspector/inspector.ml:177 in-place/in_place.ml:190 msgid "Don't trim filesystems before conversion" msgstr "" #: common/mltools/tools_utils.ml:389 msgid "Don’t print progress messages" msgstr "" #: common/mltools/tools_utils.ml:420 msgid "Don’t turn off echo for passphrases" msgstr "" #: common/mlcustomize/customize_cmdline.ml:247 msgid "Edit file using Perl expression" msgstr "" #: common/mlcustomize/customize_run.ml:180 msgid "Editing: %s" msgstr "" #: common/mltools/tools_utils.ml:386 msgid "Enable libguestfs debugging messages" msgstr "" #: common/mltools/tools_utils.ml:387 msgid "Enable tracing of libguestfs calls" msgstr "" #: output/output_ovirt.ml:77 msgid "Export Storage Domain" msgstr "" #: open/open.ml:88 msgid "External command to run" msgstr "" #. common/mlcustomize/customize_cmdline.ml:408 #. common/mlcustomize/customize_cmdline.ml:373 #: common/mlcustomize/customize_cmdline.ml:414 msgid "FILE" msgstr "" #: common/mlcustomize/customize_cmdline.ml:455 msgid "FILE:CONTENT" msgstr "" #: common/mlcustomize/customize_cmdline.ml:444 msgid "FILE:DEST" msgstr "" #: common/mlcustomize/customize_cmdline.ml:242 msgid "FILE:EXPR" msgstr "" #: common/mlcustomize/customize_cmdline.ml:170 msgid "FILE:LINE" msgstr "" #: common/mlcustomize/customize_cmdline.ml:203 msgid "FILENAME" msgstr "" #. in-place/in_place.ml:378 #: v2v/v2v.ml:571 open/open.ml:220 inspector/inspector.ml:334 msgid "Finishing off" msgstr "" #: common/mlcustomize/customize_cmdline.ml:275 msgid "HOSTNAME" msgstr "" #: v2v/v2v.ml:254 inspector/inspector.ml:183 in-place/in_place.ml:194 msgid "How to choose root filesystem" msgstr "" #: common/mltools/tools_utils.ml:177 msgid "" "If reporting bugs, run %s with debugging enabled and include the complete " "output:\n" "\n" " %s -v -x [...]" msgstr "" #: common/mlcustomize/customize_cmdline.ml:386 msgid "Inject a public key into the guest" msgstr "" #: common/mlcustomize/customize_cmdline.ml:282 msgid "Inject the Balloon Server into a Windows guest" msgstr "" #: common/mlcustomize/customize_cmdline.ml:288 msgid "Inject the QEMU Guest Agent into a Windows guest" msgstr "" #: common/mlcustomize/customize_cmdline.ml:294 msgid "Inject virtio-win drivers into a Windows guest" msgstr "" #. in-place/in_place.ml:176 #: v2v/v2v.ml:216 open/open.ml:80 inspector/inspector.ml:165 msgid "Input format" msgstr "" #: input/input_vddk.ml:77 msgid "" "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" "\n" "Refer to nbdkit-vddk-plugin(1) and the VDDK documentation for further\n" "information on these settings.\n" msgstr "" #: v2v/v2v.ml:222 open/open.ml:86 inspector/inspector.ml:171 msgid "Input transport" msgstr "" #: common/mlcustomize/customize_run.ml:191 msgid "Installing firstboot command: %s" msgstr "" #: common/mlcustomize/customize_run.ml:195 msgid "Installing firstboot packages: %s" msgstr "" #: common/mlcustomize/customize_run.ml:202 msgid "Installing firstboot script: %s" msgstr "" #: common/mlcustomize/customize_run.ml:248 msgid "Installing packages: %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:225 msgid "LOCALPATH:REMOTEDIR" msgstr "" #. in-place/in_place.ml:174 #: v2v/v2v.ml:214 open/open.ml:78 inspector/inspector.ml:163 msgid "Libvirt URI" msgstr "" #: common/mlcustomize/customize_run.ml:255 msgid "Linking: %s -> %s" msgstr "" #. common/mlcustomize/customize_cmdline.ml:287 #. common/mlcustomize/customize_cmdline.ml:281 #: common/mlcustomize/customize_cmdline.ml:293 msgid "METHOD" msgstr "" #: common/mltools/tools_utils.ml:426 msgid "Make output machine readable" msgstr "" #: common/mlcustomize/customize_run.ml:260 msgid "Making directory: %s" msgstr "" #: v2v/v2v.ml:226 inspector/inspector.ml:173 in-place/in_place.ml:182 msgid "Map NIC to network or bridge or assign static IP" msgstr "" #: v2v/v2v.ml:210 inspector/inspector.ml:159 in-place/in_place.ml:170 msgid "Map bridge ‘in’ to ‘out’" msgstr "" #: v2v/v2v.ml:230 inspector/inspector.ml:179 in-place/in_place.ml:186 msgid "Map network ‘in’ to ‘out’" msgstr "" #: common/mlcustomize/customize_cmdline.ml:333 msgid "Move files in disk image" msgstr "" #: common/mlcustomize/customize_run.ml:264 msgid "Moving: %s -> %s" msgstr "" #. input/input_vcenter_https.ml:45 #. input/input_ova.ml:35 #. input/input_libvirt.ml:233 #. input/input_libvirt.ml:221 #. input/input_disk.ml:35 #: input/input_xen_ssh.ml:43 input/input_vmx.ml:36 msgid "No input options can be used in this mode.\n" msgstr "" #: output/output_ovirt.ml:40 output/output_null.ml:38 #: output/output_glance.ml:40 msgid "No output options can be used in this mode.\n" msgstr "" #: output/output_vdsm.ml:166 msgid "OVF (metadata) directory (%s) does not exist or is not a directory" msgstr "" #: common/mlcustomize/firstboot.ml:268 msgid "" "One of rhsrvany.exe or pvvxsvc.exe is missing in %s. One of them is " "required in order to install Windows firstboot scripts. You can get one by " "building rhsrvany (https://github.com/rwmjones/rhsrvany)" msgstr "" #: v2v/v2v.ml:236 msgid "Output hypervisor connection" msgstr "" #: output/output_ovirt_upload.ml:51 msgid "" "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" "\n" "You can override the UUIDs of the disks, instead of using autogenerated " "UUIDs\n" "after their uploads (if you do, you must supply one for each disk):\n" "\n" " -oo ovirt-disk-uuid=UUID Disk UUID\n" msgstr "" #: output/output_qemu.ml:44 msgid "" "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" msgstr "" #: output/output_vdsm.ml:43 msgid "" "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" "\n" "For 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" msgstr "" #: output/output_disk.ml:44 msgid "" "Output options that can be used with -o disk:\n" "\n" " -oo compressed Compress the output file (used only with -of qcow2)\n" msgstr "" #: output/output_kubevirt.ml:51 msgid "" "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" msgstr "" #: output/output_libvirt.ml:47 msgid "" "Output options that can be used with -o libvirt:\n" "\n" " -oo compressed Compress the output file (used only with -of qcow2)\n" msgstr "" #. common/mlcustomize/customize_cmdline.ml:235 #: common/mlcustomize/customize_cmdline.ml:420 msgid "PATH" msgstr "" #: common/mlcustomize/customize_cmdline.ml:181 msgid "PERMISSIONS:FILE" msgstr "" #. common/mlcustomize/customize_cmdline.ml:300 #. common/mlcustomize/customize_cmdline.ml:265 #: common/mlcustomize/customize_cmdline.ml:427 msgid "PKG,PKG.." msgstr "" #: v2v/v2v.ml:263 in-place/in_place.ml:203 msgid "Prefer 'virtio-blk' or 'virtio-scsi'" msgstr "" #: v2v/v2v.ml:252 in-place/in_place.ml:192 msgid "Print source and stop" msgstr "" #: common/mlcustomize/customize_cmdline.ml:208 msgid "Read customize commands from file" msgstr "" #: common/mltools/tools_utils.ml:421 msgid "Read passphrases from stdin" msgstr "" #: common/mlcustomize/customize_cmdline.ml:421 msgid "Recursively truncate all files in directory" msgstr "" #: common/mlcustomize/customize_run.ml:298 msgid "Recursively truncating: %s" msgstr "" #: v2v/v2v.ml:240 msgid "Rename guest when converting" msgstr "" #: common/mlcustomize/customize_cmdline.ml:259 msgid "Run command at first guest boot" msgstr "" #: common/mlcustomize/customize_cmdline.ml:368 msgid "Run command in disk image" msgstr "" #: common/mlcustomize/customize_cmdline.ml:253 msgid "Run script at first guest boot" msgstr "" #: common/mlcustomize/customize_cmdline.ml:362 msgid "Run script in disk image" msgstr "" #: common/mlcustomize/customize_cmdline.ml:409 msgid "Run touch on a file" msgstr "" #: v2v/v2v.ml:250 msgid "Run up to N instances of nbdcopy in parallel" msgstr "" #: open/open.ml:188 msgid "Running external command" msgstr "" #: common/mlcustomize/customize_run.ml:307 msgid "Running touch: %s" msgstr "" #. common/mlcustomize/customize_run.ml:159 #: common/mlcustomize/customize_run.ml:274 msgid "Running: %s" msgstr "" #. common/mlcustomize/customize_cmdline.ml:252 #: common/mlcustomize/customize_cmdline.ml:361 msgid "SCRIPT" msgstr "" #: common/mltools/tools_utils.ml:422 #: common/mlcustomize/customize_cmdline.ml:351 msgid "SELECTOR" msgstr "" #: common/mlcustomize/customize_run.ml:363 msgid "SELinux relabelling" msgstr "" #. common/mlcustomize/customize_cmdline.ml:214 #: common/mlcustomize/customize_cmdline.ml:328 msgid "SOURCE:DEST" msgstr "" #: common/mlcustomize/customize_run.ml:287 msgid "SSH key could not be injected for this type of guest" msgstr "" #: common/mlcustomize/customize_run.ml:284 msgid "SSH key inject: %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:374 msgid "Scrub a file" msgstr "" #: common/mlcustomize/customize_cmdline.ml:466 msgid "Scrub build log file" msgstr "" #: common/mlcustomize/customize_run.ml:374 msgid "Scrubbing the log file" msgstr "" #: common/mlcustomize/customize_run.ml:279 msgid "Scrubbing: %s" msgstr "" #: v2v/v2v.ml:208 msgid "Set bandwidth dynamically from file" msgstr "" #: v2v/v2v.ml:206 msgid "Set bandwidth to bits per sec" msgstr "" #. in-place/in_place.ml:172 #: v2v/v2v.ml:212 open/open.ml:76 inspector/inspector.ml:161 msgid "Set input mode (default: libvirt)" msgstr "" #: v2v/v2v.ml:228 inspector/inspector.ml:175 in-place/in_place.ml:184 msgid "Set memory size" msgstr "" #: v2v/v2v.ml:256 inspector/inspector.ml:185 in-place/in_place.ml:196 msgid "Set number of vCPUs" msgstr "" #. in-place/in_place.ml:178 #: v2v/v2v.ml:218 open/open.ml:82 inspector/inspector.ml:167 msgid "Set option for input mode" msgstr "" #: v2v/v2v.ml:242 msgid "Set option for output mode" msgstr "" #: v2v/v2v.ml:234 msgid "Set output allocation mode" msgstr "" #: v2v/v2v.ml:238 msgid "Set output format" msgstr "" #: v2v/v2v.ml:232 msgid "Set output mode (default: libvirt)" msgstr "" #: v2v/v2v.ml:246 msgid "Set output storage location" msgstr "" #: common/mlcustomize/customize_cmdline.ml:476 msgid "Set password crypto" msgstr "" #: common/mltools/tools_utils.ml:430 msgid "Set program name" msgstr "" #: common/mlcustomize/customize_cmdline.ml:356 msgid "Set root password" msgstr "" #: common/mlcustomize/customize_cmdline.ml:403 msgid "Set the default timezone" msgstr "" #: common/mlcustomize/customize_cmdline.ml:276 msgid "Set the hostname" msgstr "" #: inspector/inspector.ml:181 in-place/in_place.ml:188 msgid "Set the output filename" msgstr "" #: common/mlcustomize/customize_cmdline.ml:345 msgid "Set user password" msgstr "" #: common/mlcustomize/customize_run.ml:75 msgid "Setting a random seed" msgstr "" #: common/mlcustomize/customize_run.ml:354 msgid "Setting passwords" msgstr "" #: common/mlcustomize/password.ml:113 msgid "Setting random password of %s to %s" msgstr "" #: common/mlcustomize/customize_run.ml:207 msgid "Setting the hostname: %s" msgstr "" #: common/mlcustomize/customize_run.ml:90 msgid "Setting the machine ID in %s" msgstr "" #: common/mlcustomize/customize_run.ml:302 msgid "Setting the timezone: %s" msgstr "" #: v2v/v2v.ml:481 msgid "Setting up the destination: %s" msgstr "" #. in-place/in_place.ml:342 #: v2v/v2v.ml:457 open/open.ml:184 inspector/inspector.ml:310 msgid "Setting up the source: %s" msgstr "" #: v2v/v2v.ml:463 in-place/in_place.ml:348 msgid "Source guest information (--print-source option):\n" msgstr "" #: common/mltools/tools_utils.ml:422 msgid "Specify a LUKS key" msgstr "" #: common/mlcustomize/customize_cmdline.ml:392 msgid "TARFILE:REMOTEDIR" msgstr "" #: common/mlcustomize/customize_cmdline.ml:311 msgid "TARGET:LINK[:LINK..]" msgstr "" #: common/mlcustomize/customize_cmdline.ml:402 msgid "TIMEZONE" msgstr "" #: v2v/v2v.ml:200 msgid "" "The --in-place option has been replaced by the ‘virt-v2v-in-place’ program" msgstr "" #: output/output_qemu.ml:251 msgid "" "The Virt machine has no support for IDE. Please report a bug for virt-v2v -- " "refer to virt-v2v(1) section \"BUGS\"." msgstr "" #: output/output_qemu.ml:272 msgid "" "The Virt machine has no support for floppies. Please report a bug for virt-" "v2v -- refer to virt-v2v(1) section \"BUGS\"." msgstr "" #: lib/create_ovf.ml:785 msgid "" "This guest required a password for connection to its display, but this is " "not supported by oVirt. Therefore the converted guest’s display will not " "require a separate password to connect." msgstr "" #: input/input_vmx.ml:111 msgid "" "This transport does not support guests with snapshots. Either collapse the " "snapshots for this guest and try the conversion again, or use one of the " "alternate conversion methods described in virt-v2v-input-vmware(1) section " "\"NOTES\"." msgstr "" #: common/mlcustomize/customize_cmdline.ml:415 msgid "Truncate a file to zero size" msgstr "" #: common/mlcustomize/customize_run.ml:294 msgid "Truncating: %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:192 msgid "UID:GID:PATH" msgstr "" #: common/mlcustomize/customize_cmdline.ml:339 msgid "USER:SELECTOR" msgstr "" #: common/mlcustomize/customize_cmdline.ml:380 msgid "USER[:SELECTOR]" msgstr "" #: common/mlcustomize/customize_cmdline.ml:432 msgid "Uninstall package(s)" msgstr "" #: common/mlcustomize/customize_run.ml:311 msgid "Uninstalling packages: %s" msgstr "" #: common/mlcustomize/customize_run.ml:290 msgid "Unpack tar file: %s to %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:438 msgid "Update packages" msgstr "" #: common/mlcustomize/customize_run.ml:316 msgid "Updating packages" msgstr "" #: common/mlcustomize/customize_cmdline.ml:449 msgid "Upload local file to destination" msgstr "" #: common/mlcustomize/customize_run.ml:321 msgid "Uploading: %s to %s" msgstr "" #: common/mltools/tools_utils.ml:391 msgid "Use ANSI colour sequences even if not tty" msgstr "" #. in-place/in_place.ml:180 #: v2v/v2v.ml:220 open/open.ml:84 inspector/inspector.ml:169 msgid "Use password from file to connect to input hypervisor" msgstr "" #: v2v/v2v.ml:244 msgid "Use password from file to connect to output hypervisor" msgstr "" #: v2v/v2v.ml:224 msgid "Use virt-v2v-in-place instead" msgstr "" #: common/mltools/tools_utils.ml:392 msgid "Wrap log messages even if not tty" msgstr "" #: common/mlcustomize/customize_cmdline.ml:460 msgid "Write file" msgstr "" #: common/mlcustomize/customize_run.ml:346 msgid "Writing: %s" msgstr "" #: lib/YAML.ml:167 msgid "" "YAML block contains newline character. This should not happen, please " "report a bug against virt-v2v." msgstr "" #: output/output_libvirt.ml:96 msgid "" "a libvirt domain called ‘%s’ already exists on the target.\n" "\n" "If using virt-v2v directly, use the ‘-on’ option to select a different name. " "Or delete the existing domain on the target using the ‘virsh undefine’ " "command.\n" "\n" "If using virt-p2v, select a different ‘Name’ in the ‘Target properties’. Or " "delete the existing domain on the target using the ‘virsh undefine’ command." msgstr "" #: common/mlcustomize/append_line.ml:44 msgid "append_line: %s is not a file" msgstr "" #: input/input_libvirt.ml:206 msgid "" "bad checksum for disk %d/%d\n" "Expected checksum: %s\n" "Actual checksum: %s" msgstr "" #: lib/libvirt_utils.ml:59 msgid "cannot find libvirt domain ‘%s’: %s" msgstr "" #: lib/libvirt_utils.ml:96 msgid "" "cannot find libvirt pool ‘%s’: %s\n" "\n" "Use ‘virsh pool-list --all’ to list all available pools, and ‘virsh pool-" "dumpxml ’ to display details about a particular pool.\n" "\n" "To set the pool which virt-v2v uses, add the ‘-os ’ option." msgstr "" #: lib/libvirt_utils.ml:110 msgid "cannot find libvirt volume ‘%s’: %s" msgstr "" #: common/mlcustomize/firstboot.ml:235 msgid "" "cannot finish firstboot installation by running ‘%s’ because host cpu (%s) " "and guest arch (%s) are not compatible. The firstboot service may not run " "at boot." msgstr "" #: output/output_libvirt.ml:180 msgid "cannot get libvirt domain capabilities: %s" msgstr "" #: output/output_libvirt.ml:85 msgid "cannot get libvirt hypervisor capabilities: %s" msgstr "" #: v2v/v2v.ml:105 inspector/inspector.ml:95 in-place/in_place.ml:102 msgid "cannot parse --mac \"%s\" parameter" msgstr "" #: v2v/v2v.ml:129 inspector/inspector.ml:119 in-place/in_place.ml:126 msgid "cannot parse --mac ip %s: doesn’t look like “%s” is an IP address" msgstr "" #: v2v/v2v.ml:143 inspector/inspector.ml:133 in-place/in_place.ml:140 msgid "cannot parse --mac ip prefix length field as an integer: %s" msgstr "" #: common/mlcustomize/guest_packages.ml:29 msgid "" "cannot use ‘%s’ because no package manager has been detected for this guest " "OS.\n" "\n" "If this guest OS is a common one with ordinary package management then this " "may have been caused by a failure of libguestfs inspection.\n" "\n" "For OSes such as Windows that lack package management, this is not " "possible. Try using one of the ‘--firstboot*’ flags instead (described in " "the virt-customize(1) manual)." msgstr "" #: output/output_ovirt.ml:91 msgid "" "cannot write files to the NFS server as %d:%d, even though we appear to be " "running as root. This probably means the NFS client or idmapd is not " "configured properly.\n" "\n" "You will have to chown the files that virt-v2v creates after the run, " "otherwise oVirt will not be able to import the VM." msgstr "" #: output/output_ovirt.ml:99 msgid "" "cannot write files to the NFS server as %d:%d. You might want to stop virt-" "v2v (^C) and rerun it as root." msgstr "" #: common/mlcustomize/customize_cmdline.ml:508 msgid "command '%s' cannot be used in command files, see the man page" msgstr "" #: common/mlcustomize/customize_cmdline.ml:525 msgid "command '%s' not valid, see the man page" msgstr "" #: common/mldrivers/linux_bootloaders.ml:318 msgid "could not add grub2 serial console (ignored)" msgstr "" #: input/ssh.ml:52 msgid "" "could not copy the VMX file from the remote server, see earlier error " "messages" msgstr "" #: output/output_libvirt.ml:211 msgid "" "could not define libvirt domain: %s.\n" "The libvirt XML is still available in ‘%s’. Try running ‘virsh -c %s define " "%s’ yourself instead." msgstr "" #: common/mldrivers/linux_bootloaders.ml:221 msgid "could not determine a way to update the configuration of Grub2" msgstr "" #: input/input_vddk.ml:243 msgid "" "could not fetch thumbprint from the server, you mus use ‘-io vddk-" "thumbprint=XX:XX...’" msgstr "" #: common/mldrivers/linux_bootloaders.ml:376 msgid "could not find bootloader mount point (%s): %s" msgstr "" #: common/mldrivers/windows_drivers.ml:91 msgid "" "could not find registry entry " "HKEY_LOCAL_MACHINE\\SYSTEM\\DriverDatabase\\DeviceIds in this Windows " "guest. It may be either a very old or very new version of Windows that we " "cannot process." msgstr "" #: common/mlcustomize/firstboot.ml:232 msgid "" "could not finish firstboot installation by running ‘%s’ because the command " "failed: %s" msgstr "" #. input/input_vcenter_https.ml:94 #: input/select_input.ml:66 input/input_xen_ssh.ml:71 input/input_vddk.ml:151 msgid "could not parse '-ic %s'. Original error message was: %s" msgstr "" #: input/parse_libvirt_xml.ml:407 input/parse_libvirt_xml.ml:54 msgid "could not parse device name ‘%s’ from the source libvirt XML" msgstr "" #: input/OVF.ml:168 msgid "could not parse disk rasd:HostResource from OVF document" msgstr "" #: input/input_ova.ml:98 msgid "could not parse ovf:Name from OVF document" msgstr "" #: output/output_ovirt.ml:247 msgid "" "could not read the %s specified by the '-os %s' parameter on the command " "line. Is it really an OVirt %s? The original error is: %s" msgstr "" #: common/mldrivers/linux_bootloaders.ml:336 msgid "" "could not rebuild grub2 configuration file (%s). This may mean that grub " "output will not be sent to the serial port, but otherwise should be " "harmless. Original error message: %s" msgstr "" #: output/output_libvirt.ml:156 msgid "could not refresh libvirt pool ‘%s’: %s" msgstr "" #: common/mldrivers/linux_bootloaders.ml:320 msgid "could not remove grub2 serial console (ignored)" msgstr "" #: common/mltools/registry.ml:93 msgid "" "decode_utf16le: Windows UTF16-LE string contains non-7-bit characters. This " "is a bug in %s, please report it." msgstr "" #: common/mltools/registry.ml:87 msgid "" "decode_utf16le: Windows string does not appear to be in UTF16-LE encoding. " "This could be a bug in %s." msgstr "" #: common/mldrivers/linux_bootloaders.ml:126 msgid "didn't find grub entry for kernel %s" msgstr "" #: input/input_disk.ml:150 msgid "disks on the command line have mixed formats" msgstr "" #: input/parse_libvirt_xml.ml:194 msgid "display in the input libvirt XML was ignored" msgstr "" #: output/output_qemu.ml:147 msgid "don’t know how to convert UEFI guests for architecture %s" msgstr "" #: common/mldrivers/linux.ml:158 msgid "don’t know how to find file owner using %s" msgstr "" #: common/mldrivers/linux.ml:89 msgid "don’t know how to get list of files from package using %s" msgstr "" #: common/mltools/curl.ml:82 msgid "downloading %s" msgstr "" #: lib/networks.ml:84 msgid "" "duplicate --mac parameter. Duplicate mappings specified for MAC address %s." msgstr "" #: lib/networks.ml:102 msgid "" "duplicate -b/--bridge parameter. Duplicate mappings specified for bridge %s." msgstr "" #: lib/networks.ml:108 msgid "duplicate -b/--bridge parameter. Only one default mapping is allowed." msgstr "" #: lib/networks.ml:90 msgid "" "duplicate -n/--network parameter. Duplicate mappings specified for network " "%s." msgstr "" #: lib/networks.ml:96 msgid "duplicate -n/--network parameter. Only one default mapping is allowed." msgstr "" #: input/OVF.ml:143 msgid "error parsing disk fileRef" msgstr "" #: input/input_ova.ml:124 msgid "error uncompressing %s, see earlier error messages" msgstr "" #: input/OVA.ml:210 input/OVA.ml:112 msgid "error unpacking %s, see earlier error messages" msgstr "" #: common/mltools/tools_utils.ml:248 msgid "exception: %s" msgstr "" #: common/mltools/tools_utils.ml:455 msgid "exited with error %d" msgstr "" #: lib/utils.ml:34 msgid "exited with non-zero error code %d" msgstr "" #: input/input_disk.ml:147 msgid "expected >= 1 disk name on the command line" msgstr "" #: common/mltools/xpath_helpers.ml:36 msgid "" "expecting XML expression to return an integer (expression: %s, matching " "string: %s)" msgstr "" #: common/mltools/tools_utils.ml:440 msgid "external command" msgstr "" #: output/output_ovirt_upload.ml:265 msgid "failed server prechecks, see earlier errors" msgstr "" #: output/output_ovirt_upload.ml:507 msgid "failed to create virtual machine, see earlier errors" msgstr "" #: output/output_ovirt_upload.ml:479 msgid "failed to finalize the transfers, see earlier errors" msgstr "" #: common/mldrivers/linux_bootloaders.ml:208 msgid "failed to find grub2-mkconfig binary (but Grub2 was detected on guest)" msgstr "" #: input/OVA.ml:461 msgid "failed to parse line returned by tar: %S" msgstr "" #: output/output_ovirt_upload.ml:394 msgid "failed to start transfer, see earlier errors" msgstr "" #: output/output_ovirt_upload.ml:311 msgid "failed vmchecks, see earlier errors" msgstr "" #: common/mltools/tools_utils.ml:239 msgid "failure: %s" msgstr "" #: input/input_ova.ml:134 msgid "file ‘%s’ not found in the ova" msgstr "" #: common/mlcustomize/firstboot.ml:143 msgid "" "firstboot: unknown version for old firstboot.service file %s (md5=%s), it " "will not be removed" msgstr "" #: common/mltools/tools_utils.ml:258 msgid "generated by %s %s" msgstr "" #: output/create_libvirt_xml.ml:39 msgid "get_osinfo_id: unknown guest operating system: %s" msgstr "" #: output/output_glance.ml:66 msgid "" "glance: glance client is not installed or set up correctly. You may need to " "set environment variables or source a script to enable authentication. See " "preceding messages for details." msgstr "" #: output/output_glance.ml:139 msgid "glance: image upload to glance failed, see earlier errors" msgstr "" #: common/mlcustomize/firstboot.ml:386 common/mlcustomize/firstboot.ml:164 msgid "guest type %s is not supported" msgstr "" #: common/mlcustomize/firstboot.ml:413 msgid "guest type %s/%s is not supported" msgstr "" #: common/mltools/tools_utils.ml:749 msgid "" "host (%s/%s) and guest (%s/%s) are not compatible, so you cannot use command " "line options that involve running commands in the guest. Use --firstboot " "scripts instead." msgstr "" #: common/mlcustomize/customize_run.ml:209 msgid "hostname could not be set for this type of guest" msgstr "" #: common/mldrivers/linux_kernels.ml:342 msgid "ignoring kernel %s in bootloader, as it does not exist." msgstr "" #: output/output_vdsm.ml:160 msgid "image directory (%s) does not exist or is not a directory" msgstr "" #: input/parse_libvirt_xml.ml:81 msgid "in the libvirt XML metadata, is missing or empty" msgstr "" #: input/parse_libvirt_xml.ml:87 msgid "in the libvirt XML metadata, is missing or empty" msgstr "" #: input/input_vcenter_https.ml:52 input/input_libvirt.ml:107 msgid "in-place mode does not work with HTTP source" msgstr "" #: input/input_vddk.ml:146 msgid "in-place mode does not work with VDDK source" msgstr "" #: input/input_vmx.ml:43 msgid "in-place mode does not work with VMX source" msgstr "" #: input/input_xen_ssh.ml:50 msgid "in-place mode does not work with Xen over SSH source" msgstr "" #: output/output_kubevirt.ml:116 msgid "" "incorrect number of '-oo disk' parameters. This guest has %d disks, but the " "parameter was used %d times." msgstr "" #: input/input_xen_ssh.ml:119 msgid "" "input from xen over ssh does not support disks stored on remote block " "devices. See virt-v2v-input-xen(1) section \"Xen or ssh conversions from " "block devices\"." msgstr "" #. in-place/in_place.ml:397 #: v2v/v2v.ml:590 open/open.ml:238 inspector/inspector.ml:353 msgid "" "insufficient free space in the conversion server temporary directory %s " "(%s).\n" "\n" "Either free up space in that directory, or set the LIBGUESTFS_CACHEDIR " "environment variable to point to another directory with more than 1GB of " "free space.\n" "\n" "See also the virt-v2v(1) manual, section \"Minimum free space check in the " "host\"." msgstr "" #: common/mltools/tools_utils.ml:246 msgid "internal error: Not_found exception was thrown" msgstr "" #: common/mltools/tools_utils.ml:243 msgid "internal error: assertion failed at %s, line %d, char %d" msgstr "" #: common/mltools/tools_utils.ml:241 msgid "internal error: invalid argument: %s" msgstr "" #: common/mldrivers/linux.ml:128 msgid "internal error: is_file_owned: dpkg command returned no output" msgstr "" #: common/mldrivers/linux.ml:133 msgid "internal error: is_file_owned: unexpected output from dpkg command: %s" msgstr "" #: common/mldrivers/linux_bootloaders.ml:130 msgid "internal error: regular expression did not match ‘%s’" msgstr "" #: v2v/v2v.ml:548 msgid "internal error: wait returned unexpected process ID %d status \"%s\"" msgstr "" #: v2v/v2v.ml:114 inspector/inspector.ml:104 in-place/in_place.ml:111 msgid "invalid --mac ip option" msgstr "" #: v2v/v2v.ml:98 inspector/inspector.ml:88 in-place/in_place.ml:95 msgid "invalid -b/--bridge parameter" msgstr "" #: v2v/v2v.ml:90 inspector/inspector.ml:80 in-place/in_place.ml:87 msgid "invalid -n/--network parameter" msgstr "" #: input/parse_domain_from_vmx.ml:402 msgid "invalid cpuid.coresPerSocket < number of vCPUs" msgstr "" #. common/mlcustomize/customize_cmdline.ml:153 #. common/mlcustomize/customize_cmdline.ml:145 #: common/mlcustomize/customize_cmdline.ml:161 msgid "invalid format for '--%s' parameter, see the man page" msgstr "" #: common/mltools/tools_utils.ml:359 msgid "invalid format string for --machine-readable: %s" msgstr "" #: lib/utils.ml:279 msgid "invalid input filename (%s)" msgstr "" #: input/OVA.ml:445 msgid "invalid offset returned by tar: %S" msgstr "" #: common/mltools/tools_utils.ml:374 msgid "invalid output fd for --machine-readable: %s" msgstr "" #: common/mltools/tools_utils.ml:376 msgid "invalid output for --machine-readable: %s" msgstr "" #: common/mltools/tools_utils.ml:368 msgid "invalid output stream for --machine-readable: %s" msgstr "" #: common/mlcustomize/password.ml:73 msgid "invalid password selector ‘%s’; see the man page" msgstr "" #: input/OVA.ml:450 msgid "invalid size returned by tar: %S" msgstr "" #: common/mlcustomize/ssh_key.ml:45 msgid "invalid ssh-inject selector ‘%s’; see the man page" msgstr "" #: input/OVF.ml:82 msgid "invalid vmw:CoresPerSocket (%d) ignored" msgstr "" #: input/OVF.ml:88 msgid "invalid vmw:CoresPerSocket < number of cores" msgstr "" #: common/mldrivers/linux_bootloaders.ml:114 msgid "kernel %s is not under grub tree %s" msgstr "" #: common/mltools/tools_utils.ml:539 common/mltools/tools_utils.ml:458 msgid "killed by signal %d" msgstr "" #: common/mltools/tools_utils.ml:237 msgid "libguestfs error: %s" msgstr "" #: lib/libvirt_utils.ml:72 msgid "" "libvirt domain ‘%s’ is running or paused. Converting a live guest will " "result in corrupted output. However this is safe if you're converting from a " "snapshot" msgstr "" #: common/mlcustomize/customize_run.ml:47 msgid "log file %s: %s (ignored)" msgstr "" #: input/OVA.ml:147 msgid "" "making OVA directory public readable to work around libvirt bug https://" "bugzilla.redhat.com/1045069" msgstr "" #: input/input_ova.ml:86 msgid "manifest has a checksum for non-existent file %s (ignored)" msgstr "" #: common/mlcustomize/customize_cmdline.ml:472 msgid "md5|sha256|sha512" msgstr "" #: common/mlcustomize/customize_run.ml:119 msgid "method '%s' is no longer supported" msgstr "" #: common/mltools/JSON_parser.ml:39 msgid "missing value for the key ‘%s’" msgstr "" #: input/OVA.ml:276 msgid "more than one .ovf file was found in %s" msgstr "" #: common/mltools/JSON_parser.ml:34 msgid "more than value for the key ‘%s’" msgstr "" #: output/output_ovirt.ml:222 msgid "" "mount command failed, see earlier errors.\n" "\n" "This probably means you didn't specify the right %s path [-os %s], or else " "you need to rerun virt-v2v as root." msgstr "" #: common/mlcustomize/customize_run.ml:103 msgid "" "multiple --root-password/--password options set the password for user ‘%s’ " "twice" msgstr "" #: input/input_vddk.ml:319 msgid "" "nbdkit VDDK plugin is not installed or not working. It is required if you " "want to use VDDK.\n" "\n" "It 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 ’/%s/libvixDiskLib.so.?’.\n" "\n" "See also the virt-v2v-input-vmware(1) manual." msgstr "" #: input/input_vddk.ml:313 msgid "" "nbdkit VDDK plugin is not installed or not working. It is required if you " "want to use VDDK.\n" "\n" "The 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" "\n" "See also the virt-v2v-input-vmware(1) manual." msgstr "" #: lib/nbdkit.ml:223 msgid "nbdkit did not start up. See previous debugging messages for problems." msgstr "" #: lib/nbdkit.ml:225 msgid "" "nbdkit did not start up. There may be errors printed by nbdkit above.\n" "\n" "If the messages above are not sufficient to diagnose the problem then add " "the ‘virt-v2v -v -x’ options and examine the debugging output carefully." msgstr "" #: input/nbdkit_ssh.ml:36 input/nbdkit_curl.ml:32 input/input_vddk.ml:283 msgid "nbdkit is not installed or not working" msgstr "" #: input/input_disk.ml:92 msgid "" "nbdkit is not installed or not working. It is required to use ‘-i disk’." msgstr "" #: input/input_libvirt.ml:68 msgid "" "nbdkit is not installed or not working. It is required to use ‘-i libvirt|" "libvirtxml’." msgstr "" #: output/output.ml:178 output/output.ml:77 msgid "" "nbdkit is not installed or not working. It is required to use ‘-o disk’." msgstr "" #: output/output_null.ml:57 msgid "" "nbdkit is not installed or not working. It is required to use ‘-o null’." msgstr "" #: output/output_ovirt_upload.ml:163 msgid "" "nbdkit is not installed or not working. It is required to use ‘-o ovirt-" "upload’. See the virt-v2v-output-ovirt(1) manual." msgstr "" #: input/input_vddk.ml:285 msgid "nbdkit must be >= 1.45.11 for input from VDDK" msgstr "" #: output/output_ovirt_upload.ml:176 msgid "" "nbdkit python plugin is not installed or not working. It is required if you " "want to use ‘-o ovirt-upload’.\n" "\n" "See also the virt-v2v-output-ovirt(1) manual." msgstr "" #: output/output_ovirt_upload.ml:190 msgid "" "nbdkit was compiled without SELinux support. You will have to recompile " "nbdkit with libselinux-devel installed, or else set SELinux to Permissive " "mode while doing the conversion." msgstr "" #. input/input_libvirt.ml:76 #. input/input_disk.ml:98 #: input/nbdkit_ssh.ml:42 input/nbdkit_curl.ml:38 input/input_vddk.ml:289 msgid "nbdkit-cow-filter is not installed or not working" msgstr "" #: input/nbdkit_curl.ml:35 msgid "nbdkit-curl-plugin is not installed" msgstr "" #. input/input_disk.ml:96 #: output/output.ml:181 output/output.ml:80 input/input_libvirt.ml:72 msgid "nbdkit-file-plugin is not installed or not working" msgstr "" #: input/input_libvirt.ml:74 msgid "nbdkit-nbd-plugin is not installed or not working" msgstr "" #: output/output_null.ml:60 msgid "nbdkit-null-plugin is not installed or not working" msgstr "" #: input/nbdkit_ssh.ml:39 msgid "nbdkit-ssh-plugin is not installed" msgstr "" #: input/input_vddk.ml:287 msgid "nbdkit-vddk-plugin is not installed" msgstr "" #: lib/nbdkit.ml:56 msgid "nbdkit: unexpected version in --dump-config: %s" msgstr "" #. input/input_vcenter_https.ml:49 #. input/input_ova.ml:46 #. input/input_libvirt.ml:35 #. input/input_disk.ml:39 #: input/input_xen_ssh.ml:47 input/input_vmx.ml:40 msgid "no -io (input options) are allowed here" msgstr "" #: output/output_ovirt.ml:44 output/output_null.ml:42 #: output/output_glance.ml:44 msgid "no -oo (output options) are allowed here" msgstr "" #: input/OVA.ml:273 msgid "no .ovf file was found in %s" msgstr "" #: common/mldrivers/linux_bootloaders.ml:402 msgid "no bootloader detected" msgstr "" #: input/parse_domain_from_vmx.ml:359 msgid "no displayName key found in VMX file" msgstr "" #: input/OVF.ml:148 msgid "no href in ovf:File (id=%s)" msgstr "" #: common/mldrivers/linux_kernels.ml:194 msgid "no initrd was found in /boot matching %s %s." msgstr "" #: common/mldrivers/linux_kernels.ml:317 msgid "" "no installed kernel packages were found.\n" "\n" "This probably indicates that %s was unable to inspect this guest properly." msgstr "" #: common/mldrivers/linux_kernels.ml:354 msgid "" "no kernels were found in the bootloader configuration.\n" "\n" "This probably indicates that %s was unable to parse the bootloader " "configuration of this guest." msgstr "" #: output/python_script.ml:55 msgid "no python binary called ‘%s’ can be found on the $PATH" msgstr "" #: input/select_input.ml:106 msgid "" "no support for remote libvirt connections to '-ic %s'. The conversion may " "fail when it tries to read the source disks." msgstr "" #: lib/create_ovf.ml:1027 msgid "" "oVirt cannot emulate ‘%s’ sound cards. This sound card will be dropped from " "the output." msgstr "" #: lib/create_ovf.ml:875 lib/create_ovf.ml:512 msgid "oVirt does not support the output format ‘%s’, only raw or qcow2" msgstr "" #: output/output_openstack.ml:120 msgid "openstack: -oo server-id= not present" msgstr "" #: output/output_openstack.ml:338 msgid "" "openstack: failed to attach cinder volume to VM, see earlier error messages" msgstr "" #: output/output_openstack.ml:291 msgid "openstack: failed to create a cinder volume, see earlier error messages" msgstr "" #: output/output_openstack.ml:304 msgid "" "openstack: failed to query cinder volume status, see earlier error messages" msgstr "" #: output/output_openstack.ml:442 msgid "" "openstack: failed to set image properties on cinder volume, see earlier " "error messages" msgstr "" #: output/output_openstack.ml:199 msgid "" "openstack: precheck failed, there may be a problem with authentication, see " "earlier error messages" msgstr "" #: output/output_openstack.ml:311 msgid "" "openstack: unknown volume status \"%s\": expected \"creating\" or " "\"available\"" msgstr "" #: output/output.ml:133 msgid "output mode only supports raw or qcow2 format (format: %s)" msgstr "" #: input/OVF.ml:263 msgid "" "ova disk has an unknown VMware controller type (%d), please report this as a " "bug supplying the *.ovf file extracted from the ova" msgstr "" #: input/OVF.ml:259 msgid "" "ova disk has no parent controller, please report this as a bug supplying the " "*.ovf file extracted from the ova" msgstr "" #: output/output_ovirt_upload.ml:367 msgid "" "ovirt-upload: -of %s: Only output format ‘raw’ or ‘qcow2’ is supported. If " "the input is in a different format then force one of these output formats by " "adding either ‘-of raw’ or ‘-of qcow2’ on the command line." msgstr "" #: common/mlcustomize/password.ml:51 msgid "" "password-crypto: unknown algorithm %s, use \"md5\", \"sha256\", \"sha512\" " "or \"yescrypt\"" msgstr "" #: common/mlcustomize/password.ml:197 msgid "" "password: using insecure md5 password encryption for guest of type %s " "version %d.%d.\n" "If this is incorrect, use --password-crypto option and file a bug." msgstr "" #: common/mlcustomize/customize_run.ml:359 msgid "passwords could not be set for this type of guest" msgstr "" #: lib/qemuNBD.ml:125 msgid "" "qemu-nbd did not start up. See previous debugging messages for problems." msgstr "" #: lib/qemuNBD.ml:127 msgid "" "qemu-nbd did not start up. There may be errors printed by qemu-nbd above.\n" "\n" "If the messages above are not sufficient to diagnose the problem then add " "the ‘virt-v2v -v -x’ options and examine the debugging output carefully." msgstr "" #: lib/qemuNBD.ml:47 msgid "qemu-nbd: unexpected version in --version: %s" msgstr "" #: common/mlcustomize/customize_run.ml:77 msgid "random seed could not be set for this type of guest" msgstr "" #: input/parse_domain_from_vmx.ml:44 msgid "remote vmx ‘%s’ could not be parsed as a URI" msgstr "" #. common/mlcustomize/inject_virtio_win.ml:357 #. common/mlcustomize/inject_virtio_win.ml:352 #: common/mlcustomize/inject_virtio_win.ml:362 msgid "" "root directory ‘/’ is missing from the virtio-win directory or ISO.\n" "\n" "This should not happen and may indicate that virtio-win or virt-v2v is " "broken in some way. Please report this as a bug with a full debug log." msgstr "" #: common/mltools/tools_utils.ml:417 common/options/keys.c:264 #, c-format msgid "selector '%s': invalid TYPE" msgstr "" #: common/mltools/tools_utils.ml:409 common/options/keys.c:254 #, c-format msgid "selector '%s': missing FILENAME, or too many fields" msgstr "" #: common/mltools/tools_utils.ml:399 common/options/keys.c:232 #, c-format msgid "selector '%s': missing ID" msgstr "" #: common/mltools/tools_utils.ml:404 common/options/keys.c:245 #, c-format msgid "selector '%s': missing KEY_STRING, or too many fields" msgstr "" #: common/mltools/tools_utils.ml:401 common/options/keys.c:239 #, c-format msgid "selector '%s': missing TYPE" msgstr "" #: common/mltools/tools_utils.ml:413 common/options/keys.c:262 #, c-format msgid "selector '%s': too many fields" msgstr "" #: lib/utils.ml:35 msgid "signalled by signal %d" msgstr "" #: common/mlcustomize/guest_packages.ml:40 msgid "" "sorry, ‘%s’ with the ‘%s’ package manager has not been implemented yet.\n" "\n" "You can work around this by using one of the ‘--run*’ or ‘--firstboot*’ " "options instead (described in the virt-customize(1) manual)." msgstr "" #: common/mlcustomize/ssh_key.ml:57 msgid "ssh-inject: $HOME environment variable is not set" msgstr "" #: common/mlcustomize/ssh_key.ml:93 msgid "ssh-inject: key is an empty string" msgstr "" #: common/mlcustomize/ssh_key.ml:66 msgid "ssh-inject: no public key file found in %s" msgstr "" #: common/mlcustomize/ssh_key.ml:83 msgid "ssh-inject: public key file (%s) is empty" msgstr "" #: common/mlcustomize/ssh_key.ml:112 msgid "ssh-inject: the user %s does not exist on the guest" msgstr "" #. common/mltools/tools_utils.ml:461 #: lib/utils.ml:36 common/mltools/tools_utils.ml:542 msgid "stopped by signal %d" msgstr "" #: output/changeuid.ml:58 msgid "subprocess exited with non-zero error code %d" msgstr "" #: output/changeuid.ml:60 msgid "subprocess signalled or stopped by signal %d" msgstr "" #: lib/utils.ml:33 msgid "success" msgstr "" #: output/create_libvirt_xml.ml:297 msgid "" "target hypervisor does not support floppy devices, but floppy devices were " "found in the source guest" msgstr "" #: output/output_ovirt_upload.ml:156 msgid "" "the Python module ‘ovirtsdk4’ could not be loaded, is it installed? See " "previous messages for problems." msgstr "" #: output/output_ovirt_upload.ml:453 msgid "the cluster ‘%s’ does not support the architecture %s but %s" msgstr "" #: common/mlcustomize/customize_run.ml:59 msgid "" "the command may have failed because the network is disabled. Try either " "removing ‘--no-network’ or adding ‘--network’ on the command line." msgstr "" #: common/mltools/JSON_parser.ml:84 msgid "the key ‘%s’ was not found in a list of objects" msgstr "" #: output/output_ovirt_upload.ml:288 msgid "" "the number of ‘-oo ovirt-disk-uuid’ parameters passed on the command line " "has to match the number of guest disk images (for this guest: %d)" msgstr "" #: output/output_vdsm.ml:133 msgid "" "the number of ‘-oo vdsm-image-uuid’ and ‘-oo vdsm-vol-uuid’ parameters " "passed on the command line has to match the number of guest disk images (for " "this guest: %d)" msgstr "" #: output/output_libvirt.ml:239 msgid "the target hypervisor does not support a %s KVM guest" msgstr "" #: common/mltools/JSON_parser.ml:78 msgid "the value for key ‘%s’ is not a string as expected" msgstr "" #: common/mltools/JSON_parser.ml:50 msgid "the value for the key ‘%s’ is not a bool" msgstr "" #: common/mltools/JSON_parser.ml:45 msgid "the value for the key ‘%s’ is not a string" msgstr "" #: common/mltools/JSON_parser.ml:70 msgid "the value for the key ‘%s’ is not an integer" msgstr "" #: common/mltools/JSON_parser.ml:55 msgid "the value for the key ‘%s’ is not an object" msgstr "" #: common/mltools/JSON_parser.ml:59 msgid "the value is not an object" msgstr "" #: common/mltools/JSON_parser.ml:35 msgid "the value of the key ‘%s’ is not an object" msgstr "" #: lib/create_ovf.ml:519 msgid "" "the virtual size of the input disk %d is not an exact multiple of 512 " "bytes. The virtual size is: %Ld.\n" "\n" "This probably means something unexpected is going on, so please file a bug " "about this issue." msgstr "" #: output/output_openstack.ml:144 msgid "" "the ‘%s’ program is not available. It is needed to communicate with " "OpenStack." msgstr "" #: output/output_ovirt.ml:265 msgid "" "there are multiple UUIDs in the %s (%s). This is unexpected, and may be a " "bug in virt-v2v or OVirt." msgstr "" #: output/output_ovirt.ml:262 msgid "there are no UUIDs in the %s (%s). Is it really an OVirt %s?" msgstr "" #: common/mlcustomize/inject_virtio_win.ml:153 msgid "" "there are no virtio drivers available for this version of Windows (%d.%d %s " "%s %s). virt-v2v looks for drivers in %s\n" "\n" "The guest will be configured to use slower emulated devices." msgstr "" #: common/mlcustomize/inject_virtio_win.ml:175 msgid "" "there is no virtio block device driver for this version of Windows (%d.%d " "%s). virt-v2v looks for this driver in %s\n" "\n" "The guest will be configured to use a slower emulated device." msgstr "" #: common/mlcustomize/inject_virtio_win.ml:206 msgid "" "there is no virtio network driver for this version of Windows (%d.%d %s). " "virt-v2v looks for this driver in %s\n" "\n" "The guest will be configured to use a slower emulated device." msgstr "" #: input/parse_libvirt_xml.ml:545 msgid "this guest has a direct network interface which will be ignored" msgid_plural "this guest has direct network interfaces which will be ignored" msgstr[0] "" msgstr[1] "" #: input/parse_libvirt_xml.ml:527 msgid "this guest has a passthrough host device which will be ignored" msgid_plural "this guest has passthrough host devices which will be ignored" msgstr[0] "" msgstr[1] "" #: input/parse_libvirt_xml.ml:248 msgid "this guest has no non-removable disks" msgstr "" #: output/output.ml:65 msgid "this output module doesn't support copying more than %d disks" msgstr "" #: common/mlcustomize/timezone.ml:35 msgid "timezone '%s' does not exist, use a location like 'Europe/London'" msgstr "" #: common/mlcustomize/customize_run.ml:304 msgid "timezone could not be set for this type of guest" msgstr "" #: input/OVA.ml:318 msgid "unable to parse line from manifest file: %S" msgstr "" #: common/mltools/urandom.ml:37 msgid "unexpected end of file while reading /dev/urandom" msgstr "" #: input/input_libvirt.ml:196 msgid "unexpected output from the %s command" msgstr "" #: common/mltools/checksums.ml:58 msgid "unhandled checksum type ‘%s’" msgstr "" #: lib/types.ml:524 msgid "unknown --root option: %s" msgstr "" #: input/select_input.ml:51 msgid "unknown -i option: %s" msgstr "" #: output/select_output.ml:74 msgid "unknown -o option: %s" msgstr "" #: v2v/v2v.ml:164 msgid "unknown -oa option: %s" msgstr "" #: input/input_libvirt.ml:189 msgid "unknown method='%s'" msgstr "" #: input/OVF.ml:103 msgid "unknown Config:firmware value %s (expected \"bios\" or \"efi\")" msgstr "" #: lib/create_ovf.ml:446 lib/create_ovf.ml:247 msgid "unknown Windows 10 variant: %s (%s)" msgstr "" #: v2v/v2v.ml:319 in-place/in_place.ml:256 msgid "unknown block driver ‘--block-driver %s’" msgstr "" #: input/parse_domain_from_vmx.ml:415 msgid "unknown firmware value '%s', assuming BIOS" msgstr "" #: lib/create_ovf.ml:454 lib/create_ovf.ml:255 msgid "unknown guest operating system: %s %s %d.%d %s (%s)" msgstr "" #: v2v/v2v.ml:329 open/open.ml:132 inspector/inspector.ml:238 msgid "unknown input transport ‘-it %s’" msgstr "" #: input/parse_domain_from_vmx.ml:428 msgid "unknown sound device '%s' ignored" msgstr "" #: input/parse_libvirt_xml.ml:215 msgid "unknown sound model %s ignored" msgstr "" #: input/OVF.ml:156 msgid "unsupported compression in OVF: %s" msgstr "" #: input/input_vcenter_https.ml:123 msgid "" "vcenter: was not found in the XML. You need to " "upgrade to libvirt ≥ 1.2.20." msgstr "" #: input/vCenter.ml:79 msgid "vcenter: URL not found: %s" msgstr "" #: input/vCenter.ml:70 msgid "vcenter: incorrect username or password" msgstr "" #: input/vCenter.ml:72 msgid "" "vcenter: incorrect username or password. You might need to specify the " "username in the URI like this: [vpx|esx|..]://USERNAME@[etc]" msgstr "" #: input/vCenter.ml:84 msgid "vcenter: invalid response from server: %s" msgstr "" #: input/vCenter.ml:194 msgid "vcenter: no status code in output of ‘curl’ command." msgstr "" #: output/output_vdsm.ml:148 msgid "vdsm: invalid -os parameter does not contain a valid UUID: %s" msgstr "" #: output/output_openstack.ml:56 msgid "" "virt-v2v -oo server-id= [os-*=...]\n" "\n" "Specify the name or UUID of the conversion appliance using\n" "\n" " virt-v2v ... -o openstack -oo server-id=\n" "\n" "When virt-v2v runs it will attach the Cinder volumes to the\n" "conversion appliance, so this name or UUID must be the name\n" "of the virtual machine on OpenStack where virt-v2v is running.\n" "\n" "In addition, all usual OpenStack “os-*” parameters or “OS_*”\n" "environment variables can be used.\n" "\n" "Openstack “--os-*” parameters must be written as “virt-v2v -oo os-*”.\n" "\n" "For example:\n" "\n" " virt-v2v -oo os-username=\n" "\n" " equivalent to openstack: --os-username=\n" " or the environment variable: OS_USERNAME=\n" "\n" " virt-v2v -oo os-project-name=\n" "\n" " equivalent to openstack: --os-project-name=\n" " or the environment variable: OS_PROJECT_NAME=\n" "\n" "The os-* parameters and environment variables are optional.\n" msgstr "" #: input/parse_libvirt_xml.ml:189 msgid "" "virt-v2v does not support local displays, so in the " "input libvirt XML was ignored" msgstr "" #: input/select_input.ml:83 msgid "virt-v2v-in-place does not support remote libvirt URIs" msgstr "" #: input/parse_domain_from_vmx.ml:50 msgid "vmx URI path component looks incorrect" msgstr "" #: input/parse_domain_from_vmx.ml:48 msgid "vmx URI remote server name omitted" msgstr "" #: input/parse_domain_from_vmx.ml:46 msgid "vmx URI start with ‘ssh://...’" msgstr "" #: input/VMX.ml:313 msgid "vmx parser: cannot parse this line, ignoring: %s" msgstr "" #: input/VMX.ml:346 msgid "vmx parser: duplicate key '%s' ignored" msgstr "" #: output/output_openstack.ml:299 msgid "wait for cinder volume status to change to \"available\"" msgstr "" #: output/output_openstack.ml:360 msgid "waiting for cinder volume %s to attach to the conversion appliance" msgstr "" #: open/open.ml:136 msgid "you must supply the --run parameter" msgstr "" #: input/input_xen_ssh.ml:87 input/input_vddk.ml:189 msgid "‘-ic %s’ URL does not contain a host name field" msgstr "" #: input/input_vddk.ml:273 msgid "‘-io vddk-file=’ must be used exactly %d times" msgstr "" #: input/input_vddk.ml:297 msgid "" "‘-io vddk-libdir=%s’ does not point to a directory. See the virt-v2v-input-" "vmware(1) manual." msgstr "" #: output/output.ml:85 msgid "" "‘-oo compressed’ is only allowed when the output format is a local qcow2-" "format file, i.e. ‘-of qcow2’" msgstr "" #: input/input_vddk.ml:232 msgid "" "‘openssl’ command not found: automatically detecting thumbprint is not " "possible, so you must use ‘-io vddk-thumbprint=XX:XX...’" msgstr "" #: common/mltools/getopt-c.c:68 #, c-format msgid "Try ‘%s --help’ or consult %s(1) for more information.\n" msgstr "" #: common/mltools/getopt-c.c:187 #, c-format msgid "%s: ‘%s’ is not a numeric value.\n" msgstr "" #: common/mltools/getopt-c.c:193 #, c-format msgid "%s: %s: integer out of range\n" msgstr "" #: common/mltools/getopt-c.c:383 #, c-format msgid "%s: ‘%s’ is not allowed for -%c; allowed values are:\n" msgstr "" #: common/mltools/getopt-c.c:386 #, c-format msgid "%s: ‘%s’ is not allowed for %s%s; allowed values are:\n" msgstr "" #: common/mltools/getopt-c.c:421 #, c-format msgid "Extra parameter on the command line: ‘%s’.\n" msgstr "" #: common/options/config.c:72 #, c-format msgid "%s: line %d: error parsing configuration file: %s" msgstr "" #: common/options/decrypt.c:52 #, c-format msgid "string size overflow" msgstr "" #: common/options/decrypt.c:170 #, c-format msgid "" "'clevis_luks_unlock', needed for decrypting %s, is unavailable in this " "libguestfs version" msgstr "" #: common/options/decrypt.c:184 #, c-format msgid "" "could not find key to open LUKS encrypted %s.\n" "\n" "Try using --key on the command line.\n" "\n" "Original error: %s (%d)" msgstr "" #: common/options/inspect.c:78 #, c-format msgid "" "%s: no operating system was found on this disk\n" "\n" "If using guestfish ‘-i’ option, remove this option and instead\n" "use the commands ‘run’ followed by ‘list-filesystems’.\n" "You can then mount filesystems you want by hand using the\n" "‘mount’ or ‘mount-ro’ command.\n" "\n" "If using guestmount ‘-i’, remove this option and choose the\n" "filesystem(s) you want to see by manually adding ‘-m’ option(s).\n" "Use ‘virt-filesystems’ to see what filesystems are available.\n" "\n" "If using other virt tools, this disk image won’t work\n" "with these tools. Use the guestfish equivalent commands\n" "(see the virt tool manual page).\n" msgstr "" #: common/options/inspect.c:99 #, c-format msgid "" "%s: multi-boot operating systems are not supported\n" "\n" "If using guestfish ‘-i’ option, remove this option and instead\n" "use the commands ‘run’ followed by ‘list-filesystems’.\n" "You can then mount filesystems you want by hand using the\n" "‘mount’ or ‘mount-ro’ command.\n" "\n" "If using guestmount ‘-i’, remove this option and choose the\n" "filesystem(s) you want to see by manually adding ‘-m’ option(s).\n" "Use ‘virt-filesystems’ to see what filesystems are available.\n" "\n" "If using other virt tools, multi-boot operating systems won’t work\n" "with these tools. Use the guestfish equivalent commands\n" "(see the virt tool manual page).\n" msgstr "" #: common/options/inspect.c:161 #, c-format msgid "%s: some filesystems could not be mounted (ignored)\n" msgstr "" #: common/options/inspect.c:178 #, c-format msgid "Operating system: %s\n" msgstr "" #: common/options/inspect.c:196 #, c-format msgid "%s mounted on %s\n" msgstr "" #: common/options/keys.c:63 #, c-format msgid "Enter key or passphrase (\"%s\"): " msgstr "" #: common/options/keys.c:146 #, c-format msgid "size_t overflow" msgstr "" #: common/options/keys.c:193 #, c-format msgid "could not read key from user" msgstr "" #: common/options/options.c:283 #, c-format msgid "%s: ‘%s’ could not be mounted.\n" msgstr "" #: common/options/options.c:287 #, c-format msgid "" "%s: Check mount(8) man page to ensure options ‘%s’\n" "%s: are supported by the filesystem that is being mounted.\n" msgstr "" #: common/options/options.c:291 #, c-format msgid "%s: Did you mean to mount one of these filesystems?\n" msgstr "" #: common/options/options.c:304 #, c-format msgid "cannot determine the subvolume for %s: %s (%d)" msgstr "" #: common/options/uri.c:119 #, c-format msgid "%s: --add: could not parse URI ‘%s’\n" msgstr "" #: common/options/uri.c:130 #, c-format msgid "%s: %s: scheme of URI is NULL or empty\n" msgstr "" #: common/options/uri.c:138 #, c-format msgid "%s: %s: cannot have both a server name and a socket query parameter\n" msgstr "" #: common/utils/utils.c:107 #, c-format msgid "%s exited successfully" msgstr "" #: common/utils/utils.c:110 #, c-format msgid "%s exited with error status %d" msgstr "" #: common/utils/utils.c:114 #, c-format msgid "%s killed by signal %d (%s)" msgstr "" #: common/utils/utils.c:118 #, c-format msgid "%s stopped by signal %d (%s)" msgstr "" #: common/utils/utils.c:122 #, c-format msgid "%s exited for an unknown reason (status %d)" msgstr "" ================================================ FILE: po/ja.po ================================================ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR Red Hat Inc. # This file is distributed under the same license as the PACKAGE package. # # Translators: # Hajime Taira , 2011 # Tomoyuki KATO , 2011-2013 # Richard Jones , 2017. #zanata msgid "" msgstr "" "Project-Id-Version: libguestfs 1.39.12\n" "Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?" "component=libguestfs&product=Virtualization+Tools\n" "POT-Creation-Date: 2025-02-16 17:05+0000\n" "PO-Revision-Date: 2017-02-24 07:33+0000\n" "Last-Translator: Copied by Zanata \n" "Language-Team: Japanese (http://www.transifex.com/projects/p/libguestfs/" "language/ja/)\n" "Language: ja\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Zanata 4.6.2\n" #: input/input_ova.ml:135 common/mltools/tools_utils.ml:235 msgid "%s" msgstr "" #: common/mltools/getopt.ml:73 msgid "" "%s\n" "Options:\n" msgstr "" #: common/mltools/tools_utils.ml:695 common/mlcustomize/customize_run.ml:390 msgid "%s (ignored)" msgstr "" #: common/mltools/checksums.ml:71 msgid "%s did not return any output" msgstr "" #: common/mlcustomize/customize_run.ml:183 msgid "%s does not exist in the guest" msgstr "" #: output/output_ovirt.ml:275 msgid "" "%s does not exist or is not a directory.\n" "\n" "Most likely cause: Either the %s (%s) has not been attached to any Data " "Center, or the path %s is not an %s at all.\n" "\n" "You have to attach the %s to a Data Center using the oVirt user interface " "first.\n" "\n" "If you don’t know what the %s mount point should be then you can also find " "this out through the oVirt user interface." msgstr "" #: common/mlcustomize/customize_run.ml:113 msgid "%s ignored for non-Windows guest" msgstr "" #: common/mlcustomize/customize_run.ml:186 msgid "%s is not a regular file in the guest" msgstr "" #. open/open.ml:39 #. inspector/inspector.ml:153 #. inspector/inspector.ml:40 #. in-place/in_place.ml:164 #. in-place/in_place.ml:45 #: v2v/v2v.ml:194 v2v/v2v.ml:183 v2v/v2v.ml:159 v2v/v2v.ml:44 open/open.ml:68 msgid "%s option used more than once on the command line" msgstr "" #: common/mltools/tools_utils.ml:231 common/mltools/tools_utils.ml:202 msgid "%s: %s" msgstr "" #: common/mltools/tools_utils.ml:233 msgid "%s: %s: %s" msgstr "" #: common/mltools/on_exit.ml:77 msgid "" "%s: Exiting on signal %s\n" "%!" msgstr "" #: common/mlcustomize/inject_virtio_win.ml:411 msgid "%s: cannot open virtio-win ISO file: %s" msgstr "" #: common/mlcustomize/customize_run.ml:64 #, fuzzy #| msgid "%s exited with error status %d" msgid "%s: command exited with an error" msgstr "%s がエラーステータス %d で終了しました" #: v2v/v2v.ml:277 msgid "" "%s: convert a guest to use KVM\n" "\n" "virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi -os imported " "esx_guest\n" "\n" "virt-v2v -i libvirtxml guest-domain.xml -o local -os /var/tmp\n" "\n" "virt-v2v -i disk disk.img -o local -os /var/tmp\n" "\n" "There is a companion front-end called \"virt-p2v\" which comes as an\n" "ISO or CD image that can be booted on physical machines.\n" "\n" "A short summary of the options is given below. For detailed help please\n" "read the man page virt-v2v(1).\n" msgstr "" #: in-place/in_place.ml:217 msgid "" "%s: convert a guest to use KVM in-place\n" "\n" "Note this program modifies the guest in-place with no backup.\n" "Normally you should use virt-v2v.\n" "\n" "virt-v2v-in-place -i libvirtxml guest-domain.xml\n" "\n" "virt-v2v-in-place -i disk disk.img\n" "\n" "A short summary of the options is given below. For detailed help please\n" "read the man page virt-v2v-in-place(1).\n" msgstr "" #: input/input_vddk.ml:207 msgid "%s: enter password for ‘%s’: " msgstr "" #: common/mltools/tools_utils.ml:172 msgid "%s: error: %s" msgstr "" #: inspector/inspector.ml:198 msgid "" "%s: estimate disk space needed before virt-v2v conversion\n" "\n" "virt-v2v-inspector -i disk disk.img [-O output.xml]\n" "\n" "A short summary of the options is given below. For detailed help please\n" "read the man page virt-v2v-inspector(1).\n" msgstr "" #: open/open.ml:94 msgid "" "%s: open the virt-v2v input and run a program on it\n" "\n" "virt-v2v-open -i disk disk.img --run 'virt-inspector --format=raw @@'\n" "\n" "A short summary of the options is given below. For detailed help please\n" "read the man page virt-v2v-open(1).\n" msgstr "" #: common/mltools/tools_utils.ml:726 msgid "%s: operation timed out" msgstr "" #: input/OVA.ml:127 input/OVA.ml:121 msgid "" "%s: unsupported file format\n" "\n" "Formats which we currently understand for '-i ova' are: tar (uncompressed, " "compress with gzip or xz), zip" msgstr "" #: common/mltools/tools_utils.ml:191 msgid "%s: warning: %s" msgstr "" #. common/mlcustomize/customize_cmdline.ml:258 #: common/mlcustomize/customize_cmdline.ml:367 msgid "'CMD+ARGS'" msgstr "" #: common/mlcustomize/customize_run.ml:133 msgid "" "--append-line: line must not contain newline characters. Use the --append-" "line option multiple times to add several lines." msgstr "" #: common/mlcustomize/customize_run.ml:152 msgid "--chown: could not parse numeric UID:GID from %s:%s" msgstr "" #: common/mlcustomize/customize_run.ml:216 msgid "" "--inject-blnsvr: blnsvr.exe not found in virtio-win source that you specified" msgstr "" #: common/mlcustomize/customize_run.ml:225 msgid "" "--inject-qemu-ga: QEMU Guest Agent MSI not found in virtio-win source that " "you specified" msgstr "" #: common/mlcustomize/customize_run.ml:241 msgid "" "--inject-virtio-win: virtio drivers were not found for this Windows version " "in the virtio-win source that you specified" msgstr "" #: v2v/v2v.ml:146 inspector/inspector.ml:136 in-place/in_place.ml:143 #, fuzzy #| msgid "credential index out of range" msgid "--mac ip prefix length field is out of range" msgstr "クレディンシャルのインデックスが範囲外です" #: v2v/v2v.ml:340 msgid "--parallel parameter must be >= 1" msgstr "" #: input/input_disk.ml:42 msgid "-i disk: expecting a disk image (filename) on the command line" msgstr "" #: input/input_xen_ssh.ml:65 msgid "-i libvirt: expecting -ic parameter for Xen over SSH connection" msgstr "" #: input/input_vddk.ml:142 input/input_vcenter_https.ml:88 msgid "-i libvirt: expecting -ic parameter for vcenter connection" msgstr "" #: input/input_vcenter_https.ml:101 msgid "-i libvirt: expecting -ic parameter to contain vcenter server name" msgstr "" #: input/input_vcenter_https.ml:78 msgid "-i libvirt: expecting -ip passwordfile parameter for vCenter connection" msgstr "" #. input/input_vcenter_https.ml:70 #. input/input_libvirt.ml:41 #: input/input_xen_ssh.ml:57 input/input_vddk.ml:132 msgid "-i libvirt: expecting a libvirt guest name on the command line" msgstr "" #: input/input_libvirt.ml:59 msgid "-i libvirtxml: expecting a libvirt XML filename on the command line" msgstr "" #: input/input_ova.ml:243 msgid "-i ova: OVF references file ‘%s’ which was not found in the OVA archive" msgstr "" #: input/input_ova.ml:78 msgid "" "-i ova: corrupt OVA: checksum of disk %s does not match manifest (actual = " "%s, expected = %s)" msgstr "" #: input/input_ova.ml:52 msgid "-i ova: expecting an OVA file name on the command line" msgstr "" #: input/OVA.ml:361 msgid "" "-i ova: invalid OVA file: path ‘%s’ references a file outside the archive" msgstr "" #: input/input_vmx.ml:57 msgid "-i vmx: cannot use -it vddk in this input mode" msgstr "" #: input/input_vmx.ml:60 msgid "-i vmx: expecting a VMX file or ssh:// URI" msgstr "" #: input/vCenter.ml:159 msgid "" "-ip PASSWORD_FILE parameter ignored because 'user@' was not given in the URL" msgstr "" #: input/input_vddk.ml:119 msgid "-it vddk: ‘-io %s’ is not a valid input option" msgstr "" #: output/output.ml:54 msgid "-o %s: %s option cannot be used in this output mode" msgstr "" #: output/output_disk.ml:66 msgid "-o disk: output directory was not specified, use '-os /dir'" msgstr "" #: output/output_libvirt.ml:59 output/output_disk.ml:56 msgid "-o disk: unknown output option ‘-oo %s’" msgstr "" #: output/output_kubevirt.ml:81 msgid "-o kubevirt: output directory was not specified, use '-os /dir'" msgstr "" #: output/output_kubevirt.ml:91 msgid "" "-o kubevirt: the guest name must contain only lowercase alphanumeric " "characters, '-' or '.', and must start and end with an alphanumeric " "character. Rerun virt-v2v with the '-on name' option to rename it." msgstr "" #: output/output_kubevirt.ml:71 msgid "-o kubevirt: unknown output option ‘-oo %s’" msgstr "" #: output/output_libvirt.ml:120 msgid "" "-o libvirt: output pool ‘%s’ does not have /pool/target/path element. See " "virt-v2v-output-local(1)" msgstr "" #: output/output_libvirt.ml:124 msgid "" "-o libvirt: output pool ‘%s’ has type='dir' but the /pool/target/path " "element is not a local directory. See virt-v2v-output-local(1)" msgstr "" #: output/output_libvirt.ml:116 msgid "" "-o libvirt: output pool ‘%s’ is not a directory (type='dir'). See virt-v2v-" "output-local(1)" msgstr "" #: output/output_openstack.ml:88 msgid "-o openstack mode only supports -oa sparse -of raw" msgstr "" #: output/output_openstack.ml:115 msgid "-o openstack: unknown output option ‘-oo %s’" msgstr "" #: output/output_ovirt_upload.ml:97 msgid "-o ovirt-upload: -oo ovirt-cafile set more than once" msgstr "" #: output/output_ovirt_upload.ml:101 msgid "-o ovirt-upload: -oo ovirt-cluster set more than once" msgstr "" #: output/output_ovirt_upload.ml:112 msgid "-o ovirt-upload: invalid UUID for -oo ovirt-disk-uuid" msgstr "" #: output/output_ovirt_upload.ml:76 msgid "" "-o ovirt-upload: output password file was not specified, use ‘-op’ to point " "to a file which contains the password used to connect to the oVirt server" msgstr "" #: output/output_ovirt_upload.ml:83 msgid "-o ovirt-upload: output storage was not specified, use ‘-os’" msgstr "" #: output/output_ovirt_upload.ml:116 msgid "-o ovirt-upload: unknown output option ‘-oo %s’" msgstr "" #: output/output_ovirt_upload.ml:68 msgid "" "-o ovirt-upload: use ‘-oc’ to point to the oVirt server REST API URL, which " "is usually https://servername/ovirt-engine/api" msgstr "" #: output/output_ovirt.ml:51 msgid "-o ovirt: -os option was not specified" msgstr "" #: output/output_qemu.ml:72 msgid "-o qemu: output directory was not specified, use '-os /dir'" msgstr "" #: output/output_qemu.ml:63 msgid "-o qemu: unknown output option ‘-oo %s’" msgstr "" #: output/output_vdsm.ml:102 msgid "-o vdsm: -oo vdsm-image-uuid was not specified" msgstr "" #: output/output_vdsm.ml:81 msgid "-o vdsm: -oo vdsm-ovf-output set more than once" msgstr "" #: output/output_vdsm.ml:77 msgid "-o vdsm: -oo vdsm-vm-uuid set more than once" msgstr "" #: output/output_vdsm.ml:110 msgid "-o vdsm: -os option was not specified" msgstr "" #: output/output_vdsm.ml:97 msgid "-o vdsm: either -oo vdsm-vol-uuid or -oo vdsm-vm-uuid was not specified" msgstr "" #: output/output_vdsm.ml:90 msgid "-o vdsm: unknown output option ‘-oo %s’" msgstr "" #: output/output_vdsm.ml:74 msgid "-o vdsm: unknown vdsm-compat level ‘%s’" msgstr "" #. output/output_kubevirt.ml:84 #. output/output_disk.ml:68 #: output/output_vdsm.ml:112 output/output_qemu.ml:74 msgid "-os %s: output directory does not exist or is not a directory" msgstr "" #: input/parse_libvirt_xml.ml:279 msgid " missing 'method' attribute, ignoring" msgstr "" #: input/parse_libvirt_xml.ml:291 msgid " unknown fail='%s' attribute, ignoring" msgstr "" #: input/parse_libvirt_xml.ml:370 input/parse_libvirt_xml.ml:317 msgid " was ignored" msgstr "" #: input/parse_libvirt_xml.ml:338 msgid " with was ignored" msgstr "" #: input/parse_libvirt_xml.ml:365 msgid " with was ignored" msgstr "" #: input/parse_libvirt_xml.ml:299 msgid " element with no type attribute ignored" msgstr "" #: input/parse_libvirt_xml.ml:167 msgid " in the input libvirt XML was ignored" msgstr "" #: input/parse_libvirt_xml.ml:414 msgid "" " was ignored because the device name could not be recognized" msgstr "" #: input/input_vddk.ml:176 msgid "" " was not found in the output of ‘virsh dumpxml \"%s\"’. The " "most likely reason is that libvirt is too old, try upgrading libvirt to ≥ " "3.7." msgstr "" #: common/mlcustomize/customize_cmdline.ml:305 msgid "Add package(s) to install" msgstr "" #: common/mlcustomize/customize_cmdline.ml:270 msgid "Add package(s) to install at first boot" msgstr "" #: common/mlcustomize/customize_cmdline.ml:175 msgid "Append line(s) to the file" msgstr "" #: common/mlcustomize/customize_run.ml:137 msgid "Appending line to %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:197 msgid "Change the owner user and group ID of a file or directory" msgstr "" #: common/mlcustomize/customize_cmdline.ml:186 msgid "Change the permissions of a file" msgstr "" #: common/mlcustomize/customize_run.ml:155 msgid "Changing owner of %s to %d:%d" msgstr "" #: common/mlcustomize/customize_run.ml:141 msgid "Changing permissions of %s to %s" msgstr "" #: input/input_libvirt.ml:174 input/input_libvirt.ml:157 msgid "Checking %s checksum of disk %d/%d" msgstr "" #: common/mlcustomize/customize_cmdline.ml:488 msgid "Compatibility option doing nothing" msgstr "" #: common/mlcustomize/customize_cmdline.ml:219 msgid "Copy files in disk image" msgstr "" #: common/mlcustomize/customize_cmdline.ml:397 msgid "Copy local files or directories from a tarball into image" msgstr "" #: common/mlcustomize/customize_cmdline.ml:230 msgid "Copy local files or directories into image" msgstr "" #: common/mlcustomize/customize_run.ml:168 msgid "Copying (in image): %s to %s" msgstr "" #: v2v/v2v.ml:518 msgid "Copying disk %d/%d" msgstr "" #: common/mlcustomize/customize_run.ml:172 msgid "Copying: %s to %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:322 msgid "Create a directory" msgstr "" #: common/mlcustomize/customize_cmdline.ml:316 msgid "Create symbolic links" msgstr "" #: v2v/v2v.ml:567 msgid "Creating output metadata" msgstr "" #: common/mlcustomize/customize_cmdline.ml:321 msgid "DIR" msgstr "" #: common/mlcustomize/customize_cmdline.ml:236 msgid "Delete a file or directory" msgstr "" #: common/mlcustomize/customize_run.ml:176 msgid "Deleting: %s" msgstr "" #: common/mltools/getopt.ml:225 msgid "Display brief help" msgstr "" #: common/mltools/tools_utils.ml:385 msgid "Display version and exit" msgstr "" #: common/mlcustomize/customize_cmdline.ml:482 msgid "Do not relabel files with correct SELinux labels" msgstr "" #: v2v/v2v.ml:248 inspector/inspector.ml:177 in-place/in_place.ml:190 msgid "Don't trim filesystems before conversion" msgstr "" #: common/mltools/tools_utils.ml:389 msgid "Don’t print progress messages" msgstr "" #: common/mltools/tools_utils.ml:420 msgid "Don’t turn off echo for passphrases" msgstr "" #: common/mlcustomize/customize_cmdline.ml:247 msgid "Edit file using Perl expression" msgstr "" #: common/mlcustomize/customize_run.ml:180 msgid "Editing: %s" msgstr "" #: common/mltools/tools_utils.ml:386 msgid "Enable libguestfs debugging messages" msgstr "" #: common/mltools/tools_utils.ml:387 msgid "Enable tracing of libguestfs calls" msgstr "" #: output/output_ovirt.ml:77 msgid "Export Storage Domain" msgstr "" #: open/open.ml:88 msgid "External command to run" msgstr "" #. common/mlcustomize/customize_cmdline.ml:408 #. common/mlcustomize/customize_cmdline.ml:373 #: common/mlcustomize/customize_cmdline.ml:414 msgid "FILE" msgstr "" #: common/mlcustomize/customize_cmdline.ml:455 msgid "FILE:CONTENT" msgstr "" #: common/mlcustomize/customize_cmdline.ml:444 msgid "FILE:DEST" msgstr "" #: common/mlcustomize/customize_cmdline.ml:242 msgid "FILE:EXPR" msgstr "" #: common/mlcustomize/customize_cmdline.ml:170 msgid "FILE:LINE" msgstr "" #: common/mlcustomize/customize_cmdline.ml:203 msgid "FILENAME" msgstr "" #. in-place/in_place.ml:378 #: v2v/v2v.ml:571 open/open.ml:220 inspector/inspector.ml:334 msgid "Finishing off" msgstr "" #: common/mlcustomize/customize_cmdline.ml:275 msgid "HOSTNAME" msgstr "" #: v2v/v2v.ml:254 inspector/inspector.ml:183 in-place/in_place.ml:194 msgid "How to choose root filesystem" msgstr "" #: common/mltools/tools_utils.ml:177 msgid "" "If reporting bugs, run %s with debugging enabled and include the complete " "output:\n" "\n" " %s -v -x [...]" msgstr "" #: common/mlcustomize/customize_cmdline.ml:386 msgid "Inject a public key into the guest" msgstr "" #: common/mlcustomize/customize_cmdline.ml:282 msgid "Inject the Balloon Server into a Windows guest" msgstr "" #: common/mlcustomize/customize_cmdline.ml:288 msgid "Inject the QEMU Guest Agent into a Windows guest" msgstr "" #: common/mlcustomize/customize_cmdline.ml:294 msgid "Inject virtio-win drivers into a Windows guest" msgstr "" #. in-place/in_place.ml:176 #: v2v/v2v.ml:216 open/open.ml:80 inspector/inspector.ml:165 msgid "Input format" msgstr "" #: input/input_vddk.ml:77 msgid "" "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" "\n" "Refer to nbdkit-vddk-plugin(1) and the VDDK documentation for further\n" "information on these settings.\n" msgstr "" #: v2v/v2v.ml:222 open/open.ml:86 inspector/inspector.ml:171 msgid "Input transport" msgstr "" #: common/mlcustomize/customize_run.ml:191 msgid "Installing firstboot command: %s" msgstr "" #: common/mlcustomize/customize_run.ml:195 msgid "Installing firstboot packages: %s" msgstr "" #: common/mlcustomize/customize_run.ml:202 msgid "Installing firstboot script: %s" msgstr "" #: common/mlcustomize/customize_run.ml:248 msgid "Installing packages: %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:225 msgid "LOCALPATH:REMOTEDIR" msgstr "" #. in-place/in_place.ml:174 #: v2v/v2v.ml:214 open/open.ml:78 inspector/inspector.ml:163 msgid "Libvirt URI" msgstr "" #: common/mlcustomize/customize_run.ml:255 msgid "Linking: %s -> %s" msgstr "" #. common/mlcustomize/customize_cmdline.ml:287 #. common/mlcustomize/customize_cmdline.ml:281 #: common/mlcustomize/customize_cmdline.ml:293 msgid "METHOD" msgstr "" #: common/mltools/tools_utils.ml:426 msgid "Make output machine readable" msgstr "" #: common/mlcustomize/customize_run.ml:260 msgid "Making directory: %s" msgstr "" #: v2v/v2v.ml:226 inspector/inspector.ml:173 in-place/in_place.ml:182 msgid "Map NIC to network or bridge or assign static IP" msgstr "" #: v2v/v2v.ml:210 inspector/inspector.ml:159 in-place/in_place.ml:170 msgid "Map bridge ‘in’ to ‘out’" msgstr "" #: v2v/v2v.ml:230 inspector/inspector.ml:179 in-place/in_place.ml:186 msgid "Map network ‘in’ to ‘out’" msgstr "" #: common/mlcustomize/customize_cmdline.ml:333 msgid "Move files in disk image" msgstr "" #: common/mlcustomize/customize_run.ml:264 msgid "Moving: %s -> %s" msgstr "" #. input/input_vcenter_https.ml:45 #. input/input_ova.ml:35 #. input/input_libvirt.ml:233 #. input/input_libvirt.ml:221 #. input/input_disk.ml:35 #: input/input_xen_ssh.ml:43 input/input_vmx.ml:36 msgid "No input options can be used in this mode.\n" msgstr "" #: output/output_ovirt.ml:40 output/output_null.ml:38 #: output/output_glance.ml:40 msgid "No output options can be used in this mode.\n" msgstr "" #: output/output_vdsm.ml:166 msgid "OVF (metadata) directory (%s) does not exist or is not a directory" msgstr "" #: common/mlcustomize/firstboot.ml:268 msgid "" "One of rhsrvany.exe or pvvxsvc.exe is missing in %s. One of them is " "required in order to install Windows firstboot scripts. You can get one by " "building rhsrvany (https://github.com/rwmjones/rhsrvany)" msgstr "" #: v2v/v2v.ml:236 msgid "Output hypervisor connection" msgstr "" #: output/output_ovirt_upload.ml:51 msgid "" "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" "\n" "You can override the UUIDs of the disks, instead of using autogenerated " "UUIDs\n" "after their uploads (if you do, you must supply one for each disk):\n" "\n" " -oo ovirt-disk-uuid=UUID Disk UUID\n" msgstr "" #: output/output_qemu.ml:44 msgid "" "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" msgstr "" #: output/output_vdsm.ml:43 msgid "" "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" "\n" "For 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" msgstr "" #: output/output_disk.ml:44 msgid "" "Output options that can be used with -o disk:\n" "\n" " -oo compressed Compress the output file (used only with -of qcow2)\n" msgstr "" #: output/output_kubevirt.ml:51 msgid "" "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" msgstr "" #: output/output_libvirt.ml:47 msgid "" "Output options that can be used with -o libvirt:\n" "\n" " -oo compressed Compress the output file (used only with -of qcow2)\n" msgstr "" #. common/mlcustomize/customize_cmdline.ml:235 #: common/mlcustomize/customize_cmdline.ml:420 msgid "PATH" msgstr "" #: common/mlcustomize/customize_cmdline.ml:181 msgid "PERMISSIONS:FILE" msgstr "" #. common/mlcustomize/customize_cmdline.ml:300 #. common/mlcustomize/customize_cmdline.ml:265 #: common/mlcustomize/customize_cmdline.ml:427 msgid "PKG,PKG.." msgstr "" #: v2v/v2v.ml:263 in-place/in_place.ml:203 msgid "Prefer 'virtio-blk' or 'virtio-scsi'" msgstr "" #: v2v/v2v.ml:252 in-place/in_place.ml:192 msgid "Print source and stop" msgstr "" #: common/mlcustomize/customize_cmdline.ml:208 msgid "Read customize commands from file" msgstr "" #: common/mltools/tools_utils.ml:421 msgid "Read passphrases from stdin" msgstr "" #: common/mlcustomize/customize_cmdline.ml:421 msgid "Recursively truncate all files in directory" msgstr "" #: common/mlcustomize/customize_run.ml:298 msgid "Recursively truncating: %s" msgstr "" #: v2v/v2v.ml:240 msgid "Rename guest when converting" msgstr "" #: common/mlcustomize/customize_cmdline.ml:259 msgid "Run command at first guest boot" msgstr "" #: common/mlcustomize/customize_cmdline.ml:368 msgid "Run command in disk image" msgstr "" #: common/mlcustomize/customize_cmdline.ml:253 msgid "Run script at first guest boot" msgstr "" #: common/mlcustomize/customize_cmdline.ml:362 msgid "Run script in disk image" msgstr "" #: common/mlcustomize/customize_cmdline.ml:409 msgid "Run touch on a file" msgstr "" #: v2v/v2v.ml:250 msgid "Run up to N instances of nbdcopy in parallel" msgstr "" #: open/open.ml:188 msgid "Running external command" msgstr "" #: common/mlcustomize/customize_run.ml:307 msgid "Running touch: %s" msgstr "" #. common/mlcustomize/customize_run.ml:159 #: common/mlcustomize/customize_run.ml:274 msgid "Running: %s" msgstr "" #. common/mlcustomize/customize_cmdline.ml:252 #: common/mlcustomize/customize_cmdline.ml:361 msgid "SCRIPT" msgstr "" #: common/mltools/tools_utils.ml:422 #: common/mlcustomize/customize_cmdline.ml:351 msgid "SELECTOR" msgstr "" #: common/mlcustomize/customize_run.ml:363 msgid "SELinux relabelling" msgstr "" #. common/mlcustomize/customize_cmdline.ml:214 #: common/mlcustomize/customize_cmdline.ml:328 msgid "SOURCE:DEST" msgstr "" #: common/mlcustomize/customize_run.ml:287 msgid "SSH key could not be injected for this type of guest" msgstr "" #: common/mlcustomize/customize_run.ml:284 msgid "SSH key inject: %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:374 msgid "Scrub a file" msgstr "" #: common/mlcustomize/customize_cmdline.ml:466 msgid "Scrub build log file" msgstr "" #: common/mlcustomize/customize_run.ml:374 msgid "Scrubbing the log file" msgstr "" #: common/mlcustomize/customize_run.ml:279 msgid "Scrubbing: %s" msgstr "" #: v2v/v2v.ml:208 msgid "Set bandwidth dynamically from file" msgstr "" #: v2v/v2v.ml:206 msgid "Set bandwidth to bits per sec" msgstr "" #. in-place/in_place.ml:172 #: v2v/v2v.ml:212 open/open.ml:76 inspector/inspector.ml:161 msgid "Set input mode (default: libvirt)" msgstr "" #: v2v/v2v.ml:228 inspector/inspector.ml:175 in-place/in_place.ml:184 msgid "Set memory size" msgstr "" #: v2v/v2v.ml:256 inspector/inspector.ml:185 in-place/in_place.ml:196 msgid "Set number of vCPUs" msgstr "" #. in-place/in_place.ml:178 #: v2v/v2v.ml:218 open/open.ml:82 inspector/inspector.ml:167 msgid "Set option for input mode" msgstr "" #: v2v/v2v.ml:242 msgid "Set option for output mode" msgstr "" #: v2v/v2v.ml:234 msgid "Set output allocation mode" msgstr "" #: v2v/v2v.ml:238 msgid "Set output format" msgstr "" #: v2v/v2v.ml:232 msgid "Set output mode (default: libvirt)" msgstr "" #: v2v/v2v.ml:246 msgid "Set output storage location" msgstr "" #: common/mlcustomize/customize_cmdline.ml:476 msgid "Set password crypto" msgstr "" #: common/mltools/tools_utils.ml:430 msgid "Set program name" msgstr "" #: common/mlcustomize/customize_cmdline.ml:356 msgid "Set root password" msgstr "" #: common/mlcustomize/customize_cmdline.ml:403 msgid "Set the default timezone" msgstr "" #: common/mlcustomize/customize_cmdline.ml:276 msgid "Set the hostname" msgstr "" #: inspector/inspector.ml:181 in-place/in_place.ml:188 msgid "Set the output filename" msgstr "" #: common/mlcustomize/customize_cmdline.ml:345 msgid "Set user password" msgstr "" #: common/mlcustomize/customize_run.ml:75 msgid "Setting a random seed" msgstr "" #: common/mlcustomize/customize_run.ml:354 msgid "Setting passwords" msgstr "" #: common/mlcustomize/password.ml:113 msgid "Setting random password of %s to %s" msgstr "" #: common/mlcustomize/customize_run.ml:207 msgid "Setting the hostname: %s" msgstr "" #: common/mlcustomize/customize_run.ml:90 msgid "Setting the machine ID in %s" msgstr "" #: common/mlcustomize/customize_run.ml:302 msgid "Setting the timezone: %s" msgstr "" #: v2v/v2v.ml:481 msgid "Setting up the destination: %s" msgstr "" #. in-place/in_place.ml:342 #: v2v/v2v.ml:457 open/open.ml:184 inspector/inspector.ml:310 msgid "Setting up the source: %s" msgstr "" #: v2v/v2v.ml:463 in-place/in_place.ml:348 msgid "Source guest information (--print-source option):\n" msgstr "" #: common/mltools/tools_utils.ml:422 msgid "Specify a LUKS key" msgstr "" #: common/mlcustomize/customize_cmdline.ml:392 msgid "TARFILE:REMOTEDIR" msgstr "" #: common/mlcustomize/customize_cmdline.ml:311 msgid "TARGET:LINK[:LINK..]" msgstr "" #: common/mlcustomize/customize_cmdline.ml:402 msgid "TIMEZONE" msgstr "" #: v2v/v2v.ml:200 msgid "" "The --in-place option has been replaced by the ‘virt-v2v-in-place’ program" msgstr "" #: output/output_qemu.ml:251 msgid "" "The Virt machine has no support for IDE. Please report a bug for virt-v2v -- " "refer to virt-v2v(1) section \"BUGS\"." msgstr "" #: output/output_qemu.ml:272 msgid "" "The Virt machine has no support for floppies. Please report a bug for virt-" "v2v -- refer to virt-v2v(1) section \"BUGS\"." msgstr "" #: lib/create_ovf.ml:785 msgid "" "This guest required a password for connection to its display, but this is " "not supported by oVirt. Therefore the converted guest’s display will not " "require a separate password to connect." msgstr "" #: input/input_vmx.ml:111 msgid "" "This transport does not support guests with snapshots. Either collapse the " "snapshots for this guest and try the conversion again, or use one of the " "alternate conversion methods described in virt-v2v-input-vmware(1) section " "\"NOTES\"." msgstr "" #: common/mlcustomize/customize_cmdline.ml:415 msgid "Truncate a file to zero size" msgstr "" #: common/mlcustomize/customize_run.ml:294 msgid "Truncating: %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:192 msgid "UID:GID:PATH" msgstr "" #: common/mlcustomize/customize_cmdline.ml:339 msgid "USER:SELECTOR" msgstr "" #: common/mlcustomize/customize_cmdline.ml:380 msgid "USER[:SELECTOR]" msgstr "" #: common/mlcustomize/customize_cmdline.ml:432 msgid "Uninstall package(s)" msgstr "" #: common/mlcustomize/customize_run.ml:311 msgid "Uninstalling packages: %s" msgstr "" #: common/mlcustomize/customize_run.ml:290 msgid "Unpack tar file: %s to %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:438 msgid "Update packages" msgstr "" #: common/mlcustomize/customize_run.ml:316 msgid "Updating packages" msgstr "" #: common/mlcustomize/customize_cmdline.ml:449 msgid "Upload local file to destination" msgstr "" #: common/mlcustomize/customize_run.ml:321 msgid "Uploading: %s to %s" msgstr "" #: common/mltools/tools_utils.ml:391 msgid "Use ANSI colour sequences even if not tty" msgstr "" #. in-place/in_place.ml:180 #: v2v/v2v.ml:220 open/open.ml:84 inspector/inspector.ml:169 msgid "Use password from file to connect to input hypervisor" msgstr "" #: v2v/v2v.ml:244 msgid "Use password from file to connect to output hypervisor" msgstr "" #: v2v/v2v.ml:224 msgid "Use virt-v2v-in-place instead" msgstr "" #: common/mltools/tools_utils.ml:392 msgid "Wrap log messages even if not tty" msgstr "" #: common/mlcustomize/customize_cmdline.ml:460 msgid "Write file" msgstr "" #: common/mlcustomize/customize_run.ml:346 msgid "Writing: %s" msgstr "" #: lib/YAML.ml:167 msgid "" "YAML block contains newline character. This should not happen, please " "report a bug against virt-v2v." msgstr "" #: output/output_libvirt.ml:96 msgid "" "a libvirt domain called ‘%s’ already exists on the target.\n" "\n" "If using virt-v2v directly, use the ‘-on’ option to select a different name. " "Or delete the existing domain on the target using the ‘virsh undefine’ " "command.\n" "\n" "If using virt-p2v, select a different ‘Name’ in the ‘Target properties’. Or " "delete the existing domain on the target using the ‘virsh undefine’ command." msgstr "" #: common/mlcustomize/append_line.ml:44 msgid "append_line: %s is not a file" msgstr "" #: input/input_libvirt.ml:206 msgid "" "bad checksum for disk %d/%d\n" "Expected checksum: %s\n" "Actual checksum: %s" msgstr "" #: lib/libvirt_utils.ml:59 msgid "cannot find libvirt domain ‘%s’: %s" msgstr "" #: lib/libvirt_utils.ml:96 msgid "" "cannot find libvirt pool ‘%s’: %s\n" "\n" "Use ‘virsh pool-list --all’ to list all available pools, and ‘virsh pool-" "dumpxml ’ to display details about a particular pool.\n" "\n" "To set the pool which virt-v2v uses, add the ‘-os ’ option." msgstr "" #: lib/libvirt_utils.ml:110 msgid "cannot find libvirt volume ‘%s’: %s" msgstr "" #: common/mlcustomize/firstboot.ml:235 msgid "" "cannot finish firstboot installation by running ‘%s’ because host cpu (%s) " "and guest arch (%s) are not compatible. The firstboot service may not run " "at boot." msgstr "" #: output/output_libvirt.ml:180 msgid "cannot get libvirt domain capabilities: %s" msgstr "" #: output/output_libvirt.ml:85 msgid "cannot get libvirt hypervisor capabilities: %s" msgstr "" #: v2v/v2v.ml:105 inspector/inspector.ml:95 in-place/in_place.ml:102 msgid "cannot parse --mac \"%s\" parameter" msgstr "" #: v2v/v2v.ml:129 inspector/inspector.ml:119 in-place/in_place.ml:126 msgid "cannot parse --mac ip %s: doesn’t look like “%s” is an IP address" msgstr "" #: v2v/v2v.ml:143 inspector/inspector.ml:133 in-place/in_place.ml:140 #, fuzzy #| msgid "credential index out of range" msgid "cannot parse --mac ip prefix length field as an integer: %s" msgstr "クレディンシャルのインデックスが範囲外です" #: common/mlcustomize/guest_packages.ml:29 msgid "" "cannot use ‘%s’ because no package manager has been detected for this guest " "OS.\n" "\n" "If this guest OS is a common one with ordinary package management then this " "may have been caused by a failure of libguestfs inspection.\n" "\n" "For OSes such as Windows that lack package management, this is not " "possible. Try using one of the ‘--firstboot*’ flags instead (described in " "the virt-customize(1) manual)." msgstr "" #: output/output_ovirt.ml:91 msgid "" "cannot write files to the NFS server as %d:%d, even though we appear to be " "running as root. This probably means the NFS client or idmapd is not " "configured properly.\n" "\n" "You will have to chown the files that virt-v2v creates after the run, " "otherwise oVirt will not be able to import the VM." msgstr "" #: output/output_ovirt.ml:99 msgid "" "cannot write files to the NFS server as %d:%d. You might want to stop virt-" "v2v (^C) and rerun it as root." msgstr "" #: common/mlcustomize/customize_cmdline.ml:508 msgid "command '%s' cannot be used in command files, see the man page" msgstr "" #: common/mlcustomize/customize_cmdline.ml:525 msgid "command '%s' not valid, see the man page" msgstr "" #: common/mldrivers/linux_bootloaders.ml:318 msgid "could not add grub2 serial console (ignored)" msgstr "" #: input/ssh.ml:52 msgid "" "could not copy the VMX file from the remote server, see earlier error " "messages" msgstr "" #: output/output_libvirt.ml:211 msgid "" "could not define libvirt domain: %s.\n" "The libvirt XML is still available in ‘%s’. Try running ‘virsh -c %s define " "%s’ yourself instead." msgstr "" #: common/mldrivers/linux_bootloaders.ml:221 msgid "could not determine a way to update the configuration of Grub2" msgstr "" #: input/input_vddk.ml:243 msgid "" "could not fetch thumbprint from the server, you mus use ‘-io vddk-" "thumbprint=XX:XX...’" msgstr "" #: common/mldrivers/linux_bootloaders.ml:376 msgid "could not find bootloader mount point (%s): %s" msgstr "" #: common/mldrivers/windows_drivers.ml:91 msgid "" "could not find registry entry " "HKEY_LOCAL_MACHINE\\SYSTEM\\DriverDatabase\\DeviceIds in this Windows " "guest. It may be either a very old or very new version of Windows that we " "cannot process." msgstr "" #: common/mlcustomize/firstboot.ml:232 msgid "" "could not finish firstboot installation by running ‘%s’ because the command " "failed: %s" msgstr "" #. input/input_vcenter_https.ml:94 #: input/select_input.ml:66 input/input_xen_ssh.ml:71 input/input_vddk.ml:151 msgid "could not parse '-ic %s'. Original error message was: %s" msgstr "" #: input/parse_libvirt_xml.ml:407 input/parse_libvirt_xml.ml:54 msgid "could not parse device name ‘%s’ from the source libvirt XML" msgstr "" #: input/OVF.ml:168 #, fuzzy #| msgid "could not parse boot size" msgid "could not parse disk rasd:HostResource from OVF document" msgstr "ブートサイズを解析できません" #: input/input_ova.ml:98 #, fuzzy #| msgid "could not parse boot size" msgid "could not parse ovf:Name from OVF document" msgstr "ブートサイズを解析できません" #: output/output_ovirt.ml:247 msgid "" "could not read the %s specified by the '-os %s' parameter on the command " "line. Is it really an OVirt %s? The original error is: %s" msgstr "" #: common/mldrivers/linux_bootloaders.ml:336 msgid "" "could not rebuild grub2 configuration file (%s). This may mean that grub " "output will not be sent to the serial port, but otherwise should be " "harmless. Original error message: %s" msgstr "" #: output/output_libvirt.ml:156 msgid "could not refresh libvirt pool ‘%s’: %s" msgstr "" #: common/mldrivers/linux_bootloaders.ml:320 msgid "could not remove grub2 serial console (ignored)" msgstr "" #: common/mltools/registry.ml:93 msgid "" "decode_utf16le: Windows UTF16-LE string contains non-7-bit characters. This " "is a bug in %s, please report it." msgstr "" #: common/mltools/registry.ml:87 msgid "" "decode_utf16le: Windows string does not appear to be in UTF16-LE encoding. " "This could be a bug in %s." msgstr "" #: common/mldrivers/linux_bootloaders.ml:126 msgid "didn't find grub entry for kernel %s" msgstr "" #: input/input_disk.ml:150 msgid "disks on the command line have mixed formats" msgstr "" #: input/parse_libvirt_xml.ml:194 msgid "display in the input libvirt XML was ignored" msgstr "" #: output/output_qemu.ml:147 msgid "don’t know how to convert UEFI guests for architecture %s" msgstr "" #: common/mldrivers/linux.ml:158 msgid "don’t know how to find file owner using %s" msgstr "" #: common/mldrivers/linux.ml:89 msgid "don’t know how to get list of files from package using %s" msgstr "" #: common/mltools/curl.ml:82 msgid "downloading %s" msgstr "" #: lib/networks.ml:84 msgid "" "duplicate --mac parameter. Duplicate mappings specified for MAC address %s." msgstr "" #: lib/networks.ml:102 msgid "" "duplicate -b/--bridge parameter. Duplicate mappings specified for bridge %s." msgstr "" #: lib/networks.ml:108 msgid "duplicate -b/--bridge parameter. Only one default mapping is allowed." msgstr "" #: lib/networks.ml:90 msgid "" "duplicate -n/--network parameter. Duplicate mappings specified for network " "%s." msgstr "" #: lib/networks.ml:96 msgid "duplicate -n/--network parameter. Only one default mapping is allowed." msgstr "" #: input/OVF.ml:143 msgid "error parsing disk fileRef" msgstr "" #: input/input_ova.ml:124 msgid "error uncompressing %s, see earlier error messages" msgstr "" #: input/OVA.ml:210 input/OVA.ml:112 msgid "error unpacking %s, see earlier error messages" msgstr "" #: common/mltools/tools_utils.ml:248 msgid "exception: %s" msgstr "" #: common/mltools/tools_utils.ml:455 #, fuzzy #| msgid "%s exited with error status %d" msgid "exited with error %d" msgstr "%s がエラーステータス %d で終了しました" #: lib/utils.ml:34 #, fuzzy #| msgid "%s exited with error status %d" msgid "exited with non-zero error code %d" msgstr "%s がエラーステータス %d で終了しました" #: input/input_disk.ml:147 msgid "expected >= 1 disk name on the command line" msgstr "" #: common/mltools/xpath_helpers.ml:36 msgid "" "expecting XML expression to return an integer (expression: %s, matching " "string: %s)" msgstr "" #: common/mltools/tools_utils.ml:440 msgid "external command" msgstr "" #: output/output_ovirt_upload.ml:265 msgid "failed server prechecks, see earlier errors" msgstr "" #: output/output_ovirt_upload.ml:507 msgid "failed to create virtual machine, see earlier errors" msgstr "" #: output/output_ovirt_upload.ml:479 msgid "failed to finalize the transfers, see earlier errors" msgstr "" #: common/mldrivers/linux_bootloaders.ml:208 msgid "failed to find grub2-mkconfig binary (but Grub2 was detected on guest)" msgstr "" #: input/OVA.ml:461 msgid "failed to parse line returned by tar: %S" msgstr "" #: output/output_ovirt_upload.ml:394 msgid "failed to start transfer, see earlier errors" msgstr "" #: output/output_ovirt_upload.ml:311 msgid "failed vmchecks, see earlier errors" msgstr "" #: common/mltools/tools_utils.ml:239 msgid "failure: %s" msgstr "" #: input/input_ova.ml:134 msgid "file ‘%s’ not found in the ova" msgstr "" #: common/mlcustomize/firstboot.ml:143 msgid "" "firstboot: unknown version for old firstboot.service file %s (md5=%s), it " "will not be removed" msgstr "" #: common/mltools/tools_utils.ml:258 #, fuzzy #| msgid "%s killed by signal %d (%s)" msgid "generated by %s %s" msgstr "%s がシグナル %d (%s) によりキルされました" #: output/create_libvirt_xml.ml:39 msgid "get_osinfo_id: unknown guest operating system: %s" msgstr "" #: output/output_glance.ml:66 msgid "" "glance: glance client is not installed or set up correctly. You may need to " "set environment variables or source a script to enable authentication. See " "preceding messages for details." msgstr "" #: output/output_glance.ml:139 msgid "glance: image upload to glance failed, see earlier errors" msgstr "" #: common/mlcustomize/firstboot.ml:386 common/mlcustomize/firstboot.ml:164 msgid "guest type %s is not supported" msgstr "" #: common/mlcustomize/firstboot.ml:413 msgid "guest type %s/%s is not supported" msgstr "" #: common/mltools/tools_utils.ml:749 msgid "" "host (%s/%s) and guest (%s/%s) are not compatible, so you cannot use command " "line options that involve running commands in the guest. Use --firstboot " "scripts instead." msgstr "" #: common/mlcustomize/customize_run.ml:209 msgid "hostname could not be set for this type of guest" msgstr "" #: common/mldrivers/linux_kernels.ml:342 msgid "ignoring kernel %s in bootloader, as it does not exist." msgstr "" #: output/output_vdsm.ml:160 msgid "image directory (%s) does not exist or is not a directory" msgstr "" #: input/parse_libvirt_xml.ml:81 msgid "in the libvirt XML metadata, is missing or empty" msgstr "" #: input/parse_libvirt_xml.ml:87 msgid "in the libvirt XML metadata, is missing or empty" msgstr "" #: input/input_vcenter_https.ml:52 input/input_libvirt.ml:107 msgid "in-place mode does not work with HTTP source" msgstr "" #: input/input_vddk.ml:146 msgid "in-place mode does not work with VDDK source" msgstr "" #: input/input_vmx.ml:43 msgid "in-place mode does not work with VMX source" msgstr "" #: input/input_xen_ssh.ml:50 msgid "in-place mode does not work with Xen over SSH source" msgstr "" #: output/output_kubevirt.ml:116 msgid "" "incorrect number of '-oo disk' parameters. This guest has %d disks, but the " "parameter was used %d times." msgstr "" #: input/input_xen_ssh.ml:119 msgid "" "input from xen over ssh does not support disks stored on remote block " "devices. See virt-v2v-input-xen(1) section \"Xen or ssh conversions from " "block devices\"." msgstr "" #. in-place/in_place.ml:397 #: v2v/v2v.ml:590 open/open.ml:238 inspector/inspector.ml:353 msgid "" "insufficient free space in the conversion server temporary directory %s " "(%s).\n" "\n" "Either free up space in that directory, or set the LIBGUESTFS_CACHEDIR " "environment variable to point to another directory with more than 1GB of " "free space.\n" "\n" "See also the virt-v2v(1) manual, section \"Minimum free space check in the " "host\"." msgstr "" #: common/mltools/tools_utils.ml:246 msgid "internal error: Not_found exception was thrown" msgstr "" #: common/mltools/tools_utils.ml:243 msgid "internal error: assertion failed at %s, line %d, char %d" msgstr "" #: common/mltools/tools_utils.ml:241 msgid "internal error: invalid argument: %s" msgstr "" #: common/mldrivers/linux.ml:128 msgid "internal error: is_file_owned: dpkg command returned no output" msgstr "" #: common/mldrivers/linux.ml:133 msgid "internal error: is_file_owned: unexpected output from dpkg command: %s" msgstr "" #: common/mldrivers/linux_bootloaders.ml:130 msgid "internal error: regular expression did not match ‘%s’" msgstr "" #: v2v/v2v.ml:548 msgid "internal error: wait returned unexpected process ID %d status \"%s\"" msgstr "" #: v2v/v2v.ml:114 inspector/inspector.ml:104 in-place/in_place.ml:111 msgid "invalid --mac ip option" msgstr "" #: v2v/v2v.ml:98 inspector/inspector.ml:88 in-place/in_place.ml:95 msgid "invalid -b/--bridge parameter" msgstr "" #: v2v/v2v.ml:90 inspector/inspector.ml:80 in-place/in_place.ml:87 msgid "invalid -n/--network parameter" msgstr "" #: input/parse_domain_from_vmx.ml:402 msgid "invalid cpuid.coresPerSocket < number of vCPUs" msgstr "" #. common/mlcustomize/customize_cmdline.ml:153 #. common/mlcustomize/customize_cmdline.ml:145 #: common/mlcustomize/customize_cmdline.ml:161 msgid "invalid format for '--%s' parameter, see the man page" msgstr "" #: common/mltools/tools_utils.ml:359 msgid "invalid format string for --machine-readable: %s" msgstr "" #: lib/utils.ml:279 msgid "invalid input filename (%s)" msgstr "" #: input/OVA.ml:445 msgid "invalid offset returned by tar: %S" msgstr "" #: common/mltools/tools_utils.ml:374 msgid "invalid output fd for --machine-readable: %s" msgstr "" #: common/mltools/tools_utils.ml:376 msgid "invalid output for --machine-readable: %s" msgstr "" #: common/mltools/tools_utils.ml:368 msgid "invalid output stream for --machine-readable: %s" msgstr "" #: common/mlcustomize/password.ml:73 msgid "invalid password selector ‘%s’; see the man page" msgstr "" #: input/OVA.ml:450 msgid "invalid size returned by tar: %S" msgstr "" #: common/mlcustomize/ssh_key.ml:45 msgid "invalid ssh-inject selector ‘%s’; see the man page" msgstr "" #: input/OVF.ml:82 msgid "invalid vmw:CoresPerSocket (%d) ignored" msgstr "" #: input/OVF.ml:88 msgid "invalid vmw:CoresPerSocket < number of cores" msgstr "" #: common/mldrivers/linux_bootloaders.ml:114 msgid "kernel %s is not under grub tree %s" msgstr "" #: common/mltools/tools_utils.ml:539 common/mltools/tools_utils.ml:458 #, fuzzy #| msgid "%s killed by signal %d (%s)" msgid "killed by signal %d" msgstr "%s がシグナル %d (%s) によりキルされました" #: common/mltools/tools_utils.ml:237 msgid "libguestfs error: %s" msgstr "" #: lib/libvirt_utils.ml:72 msgid "" "libvirt domain ‘%s’ is running or paused. Converting a live guest will " "result in corrupted output. However this is safe if you're converting from a " "snapshot" msgstr "" #: common/mlcustomize/customize_run.ml:47 msgid "log file %s: %s (ignored)" msgstr "" #: input/OVA.ml:147 msgid "" "making OVA directory public readable to work around libvirt bug https://" "bugzilla.redhat.com/1045069" msgstr "" #: input/input_ova.ml:86 msgid "manifest has a checksum for non-existent file %s (ignored)" msgstr "" #: common/mlcustomize/customize_cmdline.ml:472 msgid "md5|sha256|sha512" msgstr "" #: common/mlcustomize/customize_run.ml:119 msgid "method '%s' is no longer supported" msgstr "" #: common/mltools/JSON_parser.ml:39 msgid "missing value for the key ‘%s’" msgstr "" #: input/OVA.ml:276 msgid "more than one .ovf file was found in %s" msgstr "" #: common/mltools/JSON_parser.ml:34 msgid "more than value for the key ‘%s’" msgstr "" #: output/output_ovirt.ml:222 msgid "" "mount command failed, see earlier errors.\n" "\n" "This probably means you didn't specify the right %s path [-os %s], or else " "you need to rerun virt-v2v as root." msgstr "" #: common/mlcustomize/customize_run.ml:103 msgid "" "multiple --root-password/--password options set the password for user ‘%s’ " "twice" msgstr "" #: input/input_vddk.ml:319 msgid "" "nbdkit VDDK plugin is not installed or not working. It is required if you " "want to use VDDK.\n" "\n" "It 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 ’/%s/libvixDiskLib.so.?’.\n" "\n" "See also the virt-v2v-input-vmware(1) manual." msgstr "" #: input/input_vddk.ml:313 msgid "" "nbdkit VDDK plugin is not installed or not working. It is required if you " "want to use VDDK.\n" "\n" "The 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" "\n" "See also the virt-v2v-input-vmware(1) manual." msgstr "" #: lib/nbdkit.ml:223 msgid "nbdkit did not start up. See previous debugging messages for problems." msgstr "" #: lib/nbdkit.ml:225 msgid "" "nbdkit did not start up. There may be errors printed by nbdkit above.\n" "\n" "If the messages above are not sufficient to diagnose the problem then add " "the ‘virt-v2v -v -x’ options and examine the debugging output carefully." msgstr "" #: input/nbdkit_ssh.ml:36 input/nbdkit_curl.ml:32 input/input_vddk.ml:283 msgid "nbdkit is not installed or not working" msgstr "" #: input/input_disk.ml:92 msgid "" "nbdkit is not installed or not working. It is required to use ‘-i disk’." msgstr "" #: input/input_libvirt.ml:68 msgid "" "nbdkit is not installed or not working. It is required to use ‘-i libvirt|" "libvirtxml’." msgstr "" #: output/output.ml:178 output/output.ml:77 msgid "" "nbdkit is not installed or not working. It is required to use ‘-o disk’." msgstr "" #: output/output_null.ml:57 msgid "" "nbdkit is not installed or not working. It is required to use ‘-o null’." msgstr "" #: output/output_ovirt_upload.ml:163 msgid "" "nbdkit is not installed or not working. It is required to use ‘-o ovirt-" "upload’. See the virt-v2v-output-ovirt(1) manual." msgstr "" #: input/input_vddk.ml:285 msgid "nbdkit must be >= 1.45.11 for input from VDDK" msgstr "" #: output/output_ovirt_upload.ml:176 msgid "" "nbdkit python plugin is not installed or not working. It is required if you " "want to use ‘-o ovirt-upload’.\n" "\n" "See also the virt-v2v-output-ovirt(1) manual." msgstr "" #: output/output_ovirt_upload.ml:190 msgid "" "nbdkit was compiled without SELinux support. You will have to recompile " "nbdkit with libselinux-devel installed, or else set SELinux to Permissive " "mode while doing the conversion." msgstr "" #. input/input_libvirt.ml:76 #. input/input_disk.ml:98 #: input/nbdkit_ssh.ml:42 input/nbdkit_curl.ml:38 input/input_vddk.ml:289 msgid "nbdkit-cow-filter is not installed or not working" msgstr "" #: input/nbdkit_curl.ml:35 msgid "nbdkit-curl-plugin is not installed" msgstr "" #. input/input_disk.ml:96 #: output/output.ml:181 output/output.ml:80 input/input_libvirt.ml:72 msgid "nbdkit-file-plugin is not installed or not working" msgstr "" #: input/input_libvirt.ml:74 msgid "nbdkit-nbd-plugin is not installed or not working" msgstr "" #: output/output_null.ml:60 msgid "nbdkit-null-plugin is not installed or not working" msgstr "" #: input/nbdkit_ssh.ml:39 msgid "nbdkit-ssh-plugin is not installed" msgstr "" #: input/input_vddk.ml:287 msgid "nbdkit-vddk-plugin is not installed" msgstr "" #: lib/nbdkit.ml:56 msgid "nbdkit: unexpected version in --dump-config: %s" msgstr "" #. input/input_vcenter_https.ml:49 #. input/input_ova.ml:46 #. input/input_libvirt.ml:35 #. input/input_disk.ml:39 #: input/input_xen_ssh.ml:47 input/input_vmx.ml:40 msgid "no -io (input options) are allowed here" msgstr "" #: output/output_ovirt.ml:44 output/output_null.ml:42 #: output/output_glance.ml:44 msgid "no -oo (output options) are allowed here" msgstr "" #: input/OVA.ml:273 msgid "no .ovf file was found in %s" msgstr "" #: common/mldrivers/linux_bootloaders.ml:402 msgid "no bootloader detected" msgstr "" #: input/parse_domain_from_vmx.ml:359 msgid "no displayName key found in VMX file" msgstr "" #: input/OVF.ml:148 msgid "no href in ovf:File (id=%s)" msgstr "" #: common/mldrivers/linux_kernels.ml:194 msgid "no initrd was found in /boot matching %s %s." msgstr "" #: common/mldrivers/linux_kernels.ml:317 msgid "" "no installed kernel packages were found.\n" "\n" "This probably indicates that %s was unable to inspect this guest properly." msgstr "" #: common/mldrivers/linux_kernels.ml:354 msgid "" "no kernels were found in the bootloader configuration.\n" "\n" "This probably indicates that %s was unable to parse the bootloader " "configuration of this guest." msgstr "" #: output/python_script.ml:55 msgid "no python binary called ‘%s’ can be found on the $PATH" msgstr "" #: input/select_input.ml:106 msgid "" "no support for remote libvirt connections to '-ic %s'. The conversion may " "fail when it tries to read the source disks." msgstr "" #: lib/create_ovf.ml:1027 msgid "" "oVirt cannot emulate ‘%s’ sound cards. This sound card will be dropped from " "the output." msgstr "" #: lib/create_ovf.ml:875 lib/create_ovf.ml:512 msgid "oVirt does not support the output format ‘%s’, only raw or qcow2" msgstr "" #: output/output_openstack.ml:120 msgid "openstack: -oo server-id= not present" msgstr "" #: output/output_openstack.ml:338 msgid "" "openstack: failed to attach cinder volume to VM, see earlier error messages" msgstr "" #: output/output_openstack.ml:291 msgid "openstack: failed to create a cinder volume, see earlier error messages" msgstr "" #: output/output_openstack.ml:304 msgid "" "openstack: failed to query cinder volume status, see earlier error messages" msgstr "" #: output/output_openstack.ml:442 msgid "" "openstack: failed to set image properties on cinder volume, see earlier " "error messages" msgstr "" #: output/output_openstack.ml:199 msgid "" "openstack: precheck failed, there may be a problem with authentication, see " "earlier error messages" msgstr "" #: output/output_openstack.ml:311 msgid "" "openstack: unknown volume status \"%s\": expected \"creating\" or " "\"available\"" msgstr "" #: output/output.ml:133 msgid "output mode only supports raw or qcow2 format (format: %s)" msgstr "" #: input/OVF.ml:263 msgid "" "ova disk has an unknown VMware controller type (%d), please report this as a " "bug supplying the *.ovf file extracted from the ova" msgstr "" #: input/OVF.ml:259 msgid "" "ova disk has no parent controller, please report this as a bug supplying the " "*.ovf file extracted from the ova" msgstr "" #: output/output_ovirt_upload.ml:367 msgid "" "ovirt-upload: -of %s: Only output format ‘raw’ or ‘qcow2’ is supported. If " "the input is in a different format then force one of these output formats by " "adding either ‘-of raw’ or ‘-of qcow2’ on the command line." msgstr "" #: common/mlcustomize/password.ml:51 msgid "" "password-crypto: unknown algorithm %s, use \"md5\", \"sha256\", \"sha512\" " "or \"yescrypt\"" msgstr "" #: common/mlcustomize/password.ml:197 msgid "" "password: using insecure md5 password encryption for guest of type %s " "version %d.%d.\n" "If this is incorrect, use --password-crypto option and file a bug." msgstr "" #: common/mlcustomize/customize_run.ml:359 msgid "passwords could not be set for this type of guest" msgstr "" #: lib/qemuNBD.ml:125 msgid "" "qemu-nbd did not start up. See previous debugging messages for problems." msgstr "" #: lib/qemuNBD.ml:127 msgid "" "qemu-nbd did not start up. There may be errors printed by qemu-nbd above.\n" "\n" "If the messages above are not sufficient to diagnose the problem then add " "the ‘virt-v2v -v -x’ options and examine the debugging output carefully." msgstr "" #: lib/qemuNBD.ml:47 msgid "qemu-nbd: unexpected version in --version: %s" msgstr "" #: common/mlcustomize/customize_run.ml:77 msgid "random seed could not be set for this type of guest" msgstr "" #: input/parse_domain_from_vmx.ml:44 msgid "remote vmx ‘%s’ could not be parsed as a URI" msgstr "" #. common/mlcustomize/inject_virtio_win.ml:357 #. common/mlcustomize/inject_virtio_win.ml:352 #: common/mlcustomize/inject_virtio_win.ml:362 msgid "" "root directory ‘/’ is missing from the virtio-win directory or ISO.\n" "\n" "This should not happen and may indicate that virtio-win or virt-v2v is " "broken in some way. Please report this as a bug with a full debug log." msgstr "" #: common/mltools/tools_utils.ml:417 common/options/keys.c:264 #, c-format msgid "selector '%s': invalid TYPE" msgstr "" #: common/mltools/tools_utils.ml:409 common/options/keys.c:254 #, c-format msgid "selector '%s': missing FILENAME, or too many fields" msgstr "" #: common/mltools/tools_utils.ml:399 common/options/keys.c:232 #, c-format msgid "selector '%s': missing ID" msgstr "" #: common/mltools/tools_utils.ml:404 common/options/keys.c:245 #, c-format msgid "selector '%s': missing KEY_STRING, or too many fields" msgstr "" #: common/mltools/tools_utils.ml:401 common/options/keys.c:239 #, c-format msgid "selector '%s': missing TYPE" msgstr "" #: common/mltools/tools_utils.ml:413 common/options/keys.c:262 #, c-format msgid "selector '%s': too many fields" msgstr "" #: lib/utils.ml:35 #, fuzzy #| msgid "%s killed by signal %d (%s)" msgid "signalled by signal %d" msgstr "%s がシグナル %d (%s) によりキルされました" #: common/mlcustomize/guest_packages.ml:40 msgid "" "sorry, ‘%s’ with the ‘%s’ package manager has not been implemented yet.\n" "\n" "You can work around this by using one of the ‘--run*’ or ‘--firstboot*’ " "options instead (described in the virt-customize(1) manual)." msgstr "" #: common/mlcustomize/ssh_key.ml:57 msgid "ssh-inject: $HOME environment variable is not set" msgstr "" #: common/mlcustomize/ssh_key.ml:93 msgid "ssh-inject: key is an empty string" msgstr "" #: common/mlcustomize/ssh_key.ml:66 msgid "ssh-inject: no public key file found in %s" msgstr "" #: common/mlcustomize/ssh_key.ml:83 msgid "ssh-inject: public key file (%s) is empty" msgstr "" #: common/mlcustomize/ssh_key.ml:112 msgid "ssh-inject: the user %s does not exist on the guest" msgstr "" #. common/mltools/tools_utils.ml:461 #: lib/utils.ml:36 common/mltools/tools_utils.ml:542 #, fuzzy #| msgid "%s stopped by signal %d (%s)" msgid "stopped by signal %d" msgstr "%s がシグナル %d (%s) により停止しました" #: output/changeuid.ml:58 #, fuzzy #| msgid "%s exited with error status %d" msgid "subprocess exited with non-zero error code %d" msgstr "%s がエラーステータス %d で終了しました" #: output/changeuid.ml:60 #, fuzzy #| msgid "%s stopped by signal %d (%s)" msgid "subprocess signalled or stopped by signal %d" msgstr "%s がシグナル %d (%s) により停止しました" #: lib/utils.ml:33 msgid "success" msgstr "" #: output/create_libvirt_xml.ml:297 msgid "" "target hypervisor does not support floppy devices, but floppy devices were " "found in the source guest" msgstr "" #: output/output_ovirt_upload.ml:156 msgid "" "the Python module ‘ovirtsdk4’ could not be loaded, is it installed? See " "previous messages for problems." msgstr "" #: output/output_ovirt_upload.ml:453 msgid "the cluster ‘%s’ does not support the architecture %s but %s" msgstr "" #: common/mlcustomize/customize_run.ml:59 msgid "" "the command may have failed because the network is disabled. Try either " "removing ‘--no-network’ or adding ‘--network’ on the command line." msgstr "" #: common/mltools/JSON_parser.ml:84 msgid "the key ‘%s’ was not found in a list of objects" msgstr "" #: output/output_ovirt_upload.ml:288 msgid "" "the number of ‘-oo ovirt-disk-uuid’ parameters passed on the command line " "has to match the number of guest disk images (for this guest: %d)" msgstr "" #: output/output_vdsm.ml:133 msgid "" "the number of ‘-oo vdsm-image-uuid’ and ‘-oo vdsm-vol-uuid’ parameters " "passed on the command line has to match the number of guest disk images (for " "this guest: %d)" msgstr "" #: output/output_libvirt.ml:239 msgid "the target hypervisor does not support a %s KVM guest" msgstr "" #: common/mltools/JSON_parser.ml:78 msgid "the value for key ‘%s’ is not a string as expected" msgstr "" #: common/mltools/JSON_parser.ml:50 msgid "the value for the key ‘%s’ is not a bool" msgstr "" #: common/mltools/JSON_parser.ml:45 msgid "the value for the key ‘%s’ is not a string" msgstr "" #: common/mltools/JSON_parser.ml:70 msgid "the value for the key ‘%s’ is not an integer" msgstr "" #: common/mltools/JSON_parser.ml:55 msgid "the value for the key ‘%s’ is not an object" msgstr "" #: common/mltools/JSON_parser.ml:59 msgid "the value is not an object" msgstr "" #: common/mltools/JSON_parser.ml:35 msgid "the value of the key ‘%s’ is not an object" msgstr "" #: lib/create_ovf.ml:519 msgid "" "the virtual size of the input disk %d is not an exact multiple of 512 " "bytes. The virtual size is: %Ld.\n" "\n" "This probably means something unexpected is going on, so please file a bug " "about this issue." msgstr "" #: output/output_openstack.ml:144 msgid "" "the ‘%s’ program is not available. It is needed to communicate with " "OpenStack." msgstr "" #: output/output_ovirt.ml:265 msgid "" "there are multiple UUIDs in the %s (%s). This is unexpected, and may be a " "bug in virt-v2v or OVirt." msgstr "" #: output/output_ovirt.ml:262 msgid "there are no UUIDs in the %s (%s). Is it really an OVirt %s?" msgstr "" #: common/mlcustomize/inject_virtio_win.ml:153 msgid "" "there are no virtio drivers available for this version of Windows (%d.%d %s " "%s %s). virt-v2v looks for drivers in %s\n" "\n" "The guest will be configured to use slower emulated devices." msgstr "" #: common/mlcustomize/inject_virtio_win.ml:175 msgid "" "there is no virtio block device driver for this version of Windows (%d.%d " "%s). virt-v2v looks for this driver in %s\n" "\n" "The guest will be configured to use a slower emulated device." msgstr "" #: common/mlcustomize/inject_virtio_win.ml:206 msgid "" "there is no virtio network driver for this version of Windows (%d.%d %s). " "virt-v2v looks for this driver in %s\n" "\n" "The guest will be configured to use a slower emulated device." msgstr "" #: input/parse_libvirt_xml.ml:545 msgid "this guest has a direct network interface which will be ignored" msgid_plural "this guest has direct network interfaces which will be ignored" msgstr[0] "" #: input/parse_libvirt_xml.ml:527 msgid "this guest has a passthrough host device which will be ignored" msgid_plural "this guest has passthrough host devices which will be ignored" msgstr[0] "" #: input/parse_libvirt_xml.ml:248 msgid "this guest has no non-removable disks" msgstr "" #: output/output.ml:65 msgid "this output module doesn't support copying more than %d disks" msgstr "" #: common/mlcustomize/timezone.ml:35 msgid "timezone '%s' does not exist, use a location like 'Europe/London'" msgstr "" #: common/mlcustomize/customize_run.ml:304 msgid "timezone could not be set for this type of guest" msgstr "" #: input/OVA.ml:318 msgid "unable to parse line from manifest file: %S" msgstr "" #: common/mltools/urandom.ml:37 msgid "unexpected end of file while reading /dev/urandom" msgstr "" #: input/input_libvirt.ml:196 msgid "unexpected output from the %s command" msgstr "" #: common/mltools/checksums.ml:58 msgid "unhandled checksum type ‘%s’" msgstr "" #: lib/types.ml:524 msgid "unknown --root option: %s" msgstr "" #: input/select_input.ml:51 msgid "unknown -i option: %s" msgstr "" #: output/select_output.ml:74 msgid "unknown -o option: %s" msgstr "" #: v2v/v2v.ml:164 msgid "unknown -oa option: %s" msgstr "" #: input/input_libvirt.ml:189 msgid "unknown method='%s'" msgstr "" #: input/OVF.ml:103 msgid "unknown Config:firmware value %s (expected \"bios\" or \"efi\")" msgstr "" #: lib/create_ovf.ml:446 lib/create_ovf.ml:247 msgid "unknown Windows 10 variant: %s (%s)" msgstr "" #: v2v/v2v.ml:319 in-place/in_place.ml:256 msgid "unknown block driver ‘--block-driver %s’" msgstr "" #: input/parse_domain_from_vmx.ml:415 msgid "unknown firmware value '%s', assuming BIOS" msgstr "" #: lib/create_ovf.ml:454 lib/create_ovf.ml:255 msgid "unknown guest operating system: %s %s %d.%d %s (%s)" msgstr "" #: v2v/v2v.ml:329 open/open.ml:132 inspector/inspector.ml:238 msgid "unknown input transport ‘-it %s’" msgstr "" #: input/parse_domain_from_vmx.ml:428 msgid "unknown sound device '%s' ignored" msgstr "" #: input/parse_libvirt_xml.ml:215 msgid "unknown sound model %s ignored" msgstr "" #: input/OVF.ml:156 msgid "unsupported compression in OVF: %s" msgstr "" #: input/input_vcenter_https.ml:123 msgid "" "vcenter: was not found in the XML. You need to " "upgrade to libvirt ≥ 1.2.20." msgstr "" #: input/vCenter.ml:79 msgid "vcenter: URL not found: %s" msgstr "" #: input/vCenter.ml:70 msgid "vcenter: incorrect username or password" msgstr "" #: input/vCenter.ml:72 msgid "" "vcenter: incorrect username or password. You might need to specify the " "username in the URI like this: [vpx|esx|..]://USERNAME@[etc]" msgstr "" #: input/vCenter.ml:84 msgid "vcenter: invalid response from server: %s" msgstr "" #: input/vCenter.ml:194 msgid "vcenter: no status code in output of ‘curl’ command." msgstr "" #: output/output_vdsm.ml:148 msgid "vdsm: invalid -os parameter does not contain a valid UUID: %s" msgstr "" #: output/output_openstack.ml:56 msgid "" "virt-v2v -oo server-id= [os-*=...]\n" "\n" "Specify the name or UUID of the conversion appliance using\n" "\n" " virt-v2v ... -o openstack -oo server-id=\n" "\n" "When virt-v2v runs it will attach the Cinder volumes to the\n" "conversion appliance, so this name or UUID must be the name\n" "of the virtual machine on OpenStack where virt-v2v is running.\n" "\n" "In addition, all usual OpenStack “os-*” parameters or “OS_*”\n" "environment variables can be used.\n" "\n" "Openstack “--os-*” parameters must be written as “virt-v2v -oo os-*”.\n" "\n" "For example:\n" "\n" " virt-v2v -oo os-username=\n" "\n" " equivalent to openstack: --os-username=\n" " or the environment variable: OS_USERNAME=\n" "\n" " virt-v2v -oo os-project-name=\n" "\n" " equivalent to openstack: --os-project-name=\n" " or the environment variable: OS_PROJECT_NAME=\n" "\n" "The os-* parameters and environment variables are optional.\n" msgstr "" #: input/parse_libvirt_xml.ml:189 msgid "" "virt-v2v does not support local displays, so in the " "input libvirt XML was ignored" msgstr "" #: input/select_input.ml:83 msgid "virt-v2v-in-place does not support remote libvirt URIs" msgstr "" #: input/parse_domain_from_vmx.ml:50 msgid "vmx URI path component looks incorrect" msgstr "" #: input/parse_domain_from_vmx.ml:48 msgid "vmx URI remote server name omitted" msgstr "" #: input/parse_domain_from_vmx.ml:46 msgid "vmx URI start with ‘ssh://...’" msgstr "" #: input/VMX.ml:313 msgid "vmx parser: cannot parse this line, ignoring: %s" msgstr "" #: input/VMX.ml:346 msgid "vmx parser: duplicate key '%s' ignored" msgstr "" #: output/output_openstack.ml:299 msgid "wait for cinder volume status to change to \"available\"" msgstr "" #: output/output_openstack.ml:360 msgid "waiting for cinder volume %s to attach to the conversion appliance" msgstr "" #: open/open.ml:136 msgid "you must supply the --run parameter" msgstr "" #: input/input_xen_ssh.ml:87 input/input_vddk.ml:189 msgid "‘-ic %s’ URL does not contain a host name field" msgstr "" #: input/input_vddk.ml:273 msgid "‘-io vddk-file=’ must be used exactly %d times" msgstr "" #: input/input_vddk.ml:297 msgid "" "‘-io vddk-libdir=%s’ does not point to a directory. See the virt-v2v-input-" "vmware(1) manual." msgstr "" #: output/output.ml:85 msgid "" "‘-oo compressed’ is only allowed when the output format is a local qcow2-" "format file, i.e. ‘-of qcow2’" msgstr "" #: input/input_vddk.ml:232 msgid "" "‘openssl’ command not found: automatically detecting thumbprint is not " "possible, so you must use ‘-io vddk-thumbprint=XX:XX...’" msgstr "" #: common/mltools/getopt-c.c:68 #, c-format msgid "Try ‘%s --help’ or consult %s(1) for more information.\n" msgstr "" #: common/mltools/getopt-c.c:187 #, c-format msgid "%s: ‘%s’ is not a numeric value.\n" msgstr "" #: common/mltools/getopt-c.c:193 #, c-format msgid "%s: %s: integer out of range\n" msgstr "%s: %s: 範囲外の整数\n" #: common/mltools/getopt-c.c:383 #, c-format msgid "%s: ‘%s’ is not allowed for -%c; allowed values are:\n" msgstr "" #: common/mltools/getopt-c.c:386 #, c-format msgid "%s: ‘%s’ is not allowed for %s%s; allowed values are:\n" msgstr "" #: common/mltools/getopt-c.c:421 #, c-format msgid "Extra parameter on the command line: ‘%s’.\n" msgstr "" #: common/options/config.c:72 #, c-format msgid "%s: line %d: error parsing configuration file: %s" msgstr "" #: common/options/decrypt.c:52 #, c-format msgid "string size overflow" msgstr "" #: common/options/decrypt.c:170 #, c-format msgid "" "'clevis_luks_unlock', needed for decrypting %s, is unavailable in this " "libguestfs version" msgstr "" #: common/options/decrypt.c:184 #, c-format msgid "" "could not find key to open LUKS encrypted %s.\n" "\n" "Try using --key on the command line.\n" "\n" "Original error: %s (%d)" msgstr "" #: common/options/inspect.c:78 #, c-format msgid "" "%s: no operating system was found on this disk\n" "\n" "If using guestfish ‘-i’ option, remove this option and instead\n" "use the commands ‘run’ followed by ‘list-filesystems’.\n" "You can then mount filesystems you want by hand using the\n" "‘mount’ or ‘mount-ro’ command.\n" "\n" "If using guestmount ‘-i’, remove this option and choose the\n" "filesystem(s) you want to see by manually adding ‘-m’ option(s).\n" "Use ‘virt-filesystems’ to see what filesystems are available.\n" "\n" "If using other virt tools, this disk image won’t work\n" "with these tools. Use the guestfish equivalent commands\n" "(see the virt tool manual page).\n" msgstr "" #: common/options/inspect.c:99 #, c-format msgid "" "%s: multi-boot operating systems are not supported\n" "\n" "If using guestfish ‘-i’ option, remove this option and instead\n" "use the commands ‘run’ followed by ‘list-filesystems’.\n" "You can then mount filesystems you want by hand using the\n" "‘mount’ or ‘mount-ro’ command.\n" "\n" "If using guestmount ‘-i’, remove this option and choose the\n" "filesystem(s) you want to see by manually adding ‘-m’ option(s).\n" "Use ‘virt-filesystems’ to see what filesystems are available.\n" "\n" "If using other virt tools, multi-boot operating systems won’t work\n" "with these tools. Use the guestfish equivalent commands\n" "(see the virt tool manual page).\n" msgstr "" #: common/options/inspect.c:161 #, c-format msgid "%s: some filesystems could not be mounted (ignored)\n" msgstr "" "%s: いくつかのファイルシステムがマウントできませんでした(無視されました)\n" #: common/options/inspect.c:178 #, c-format msgid "Operating system: %s\n" msgstr "オペレーティングシステム: %s\n" #: common/options/inspect.c:196 #, c-format msgid "%s mounted on %s\n" msgstr "%s を %s にマウントしました\n" #: common/options/keys.c:63 #, c-format msgid "Enter key or passphrase (\"%s\"): " msgstr "キーかパスフレーズを入力してください。(\"%s\"): " #: common/options/keys.c:146 #, c-format msgid "size_t overflow" msgstr "" #: common/options/keys.c:193 #, fuzzy, c-format #| msgid "could not parse boot size" msgid "could not read key from user" msgstr "ブートサイズを解析できません" #: common/options/options.c:283 #, c-format msgid "%s: ‘%s’ could not be mounted.\n" msgstr "" #: common/options/options.c:287 #, c-format msgid "" "%s: Check mount(8) man page to ensure options ‘%s’\n" "%s: are supported by the filesystem that is being mounted.\n" msgstr "" #: common/options/options.c:291 #, c-format msgid "%s: Did you mean to mount one of these filesystems?\n" msgstr "" "%s: これらのファイルシステムのどれかをマウントしたいということですか?\n" #: common/options/options.c:304 #, c-format msgid "cannot determine the subvolume for %s: %s (%d)" msgstr "" #: common/options/uri.c:119 #, c-format msgid "%s: --add: could not parse URI ‘%s’\n" msgstr "" #: common/options/uri.c:130 #, c-format msgid "%s: %s: scheme of URI is NULL or empty\n" msgstr "%s: %s: URI のスキーマが NULL または空です\n" #: common/options/uri.c:138 #, fuzzy, c-format #| msgid "%s: %s: cannot both a server name and a socket query parameter\n" msgid "%s: %s: cannot have both a server name and a socket query parameter\n" msgstr "" "%s: %s: サーバー名とソケットクエリーパラメーターをどちらも指定することはでき" "ません \n" #: common/utils/utils.c:107 #, c-format msgid "%s exited successfully" msgstr "%s が正常に終了しました" #: common/utils/utils.c:110 #, c-format msgid "%s exited with error status %d" msgstr "%s がエラーステータス %d で終了しました" #: common/utils/utils.c:114 #, c-format msgid "%s killed by signal %d (%s)" msgstr "%s がシグナル %d (%s) によりキルされました" #: common/utils/utils.c:118 #, c-format msgid "%s stopped by signal %d (%s)" msgstr "%s がシグナル %d (%s) により停止しました" #: common/utils/utils.c:122 #, c-format msgid "%s exited for an unknown reason (status %d)" msgstr "%s が未知の理由で終了しました (ステータス %d)" ================================================ FILE: po/ka.po ================================================ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR Red Hat Inc. # This file is distributed under the same license as the virt-v2v package. # FIRST AUTHOR , YEAR. # msgid "" msgstr "" "Project-Id-Version: virt-v2v 2.1.1\n" "Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?" "component=libguestfs&product=Virtualization+Tools\n" "POT-Creation-Date: 2025-02-16 17:05+0000\n" "PO-Revision-Date: 2026-03-31 11:58+0000\n" "Last-Translator: Weblate Translation Memory \n" "Language-Team: Georgian \n" "Language: ka\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Weblate 5.16.2\n" #: input/input_ova.ml:135 common/mltools/tools_utils.ml:235 msgid "%s" msgstr "%s" #: common/mltools/getopt.ml:73 msgid "" "%s\n" "Options:\n" msgstr "" #: common/mltools/tools_utils.ml:695 common/mlcustomize/customize_run.ml:390 msgid "%s (ignored)" msgstr "" #: common/mltools/checksums.ml:71 msgid "%s did not return any output" msgstr "" #: common/mlcustomize/customize_run.ml:183 msgid "%s does not exist in the guest" msgstr "" #: output/output_ovirt.ml:275 msgid "" "%s does not exist or is not a directory.\n" "\n" "Most likely cause: Either the %s (%s) has not been attached to any Data " "Center, or the path %s is not an %s at all.\n" "\n" "You have to attach the %s to a Data Center using the oVirt user interface " "first.\n" "\n" "If you don’t know what the %s mount point should be then you can also find " "this out through the oVirt user interface." msgstr "" #: common/mlcustomize/customize_run.ml:113 msgid "%s ignored for non-Windows guest" msgstr "" #: common/mlcustomize/customize_run.ml:186 msgid "%s is not a regular file in the guest" msgstr "" #. open/open.ml:39 #. inspector/inspector.ml:153 #. inspector/inspector.ml:40 #. in-place/in_place.ml:164 #. in-place/in_place.ml:45 #: v2v/v2v.ml:194 v2v/v2v.ml:183 v2v/v2v.ml:159 v2v/v2v.ml:44 open/open.ml:68 msgid "%s option used more than once on the command line" msgstr "" #: common/mltools/tools_utils.ml:231 common/mltools/tools_utils.ml:202 msgid "%s: %s" msgstr "%s: %s" #: common/mltools/tools_utils.ml:233 msgid "%s: %s: %s" msgstr "%s: %s: %s" #: common/mltools/on_exit.ml:77 msgid "" "%s: Exiting on signal %s\n" "%!" msgstr "" #: common/mlcustomize/inject_virtio_win.ml:411 msgid "%s: cannot open virtio-win ISO file: %s" msgstr "" #: common/mlcustomize/customize_run.ml:64 msgid "%s: command exited with an error" msgstr "%s: ბრძანება დასრულდა შეცდომით" #: v2v/v2v.ml:277 msgid "" "%s: convert a guest to use KVM\n" "\n" "virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi -os imported " "esx_guest\n" "\n" "virt-v2v -i libvirtxml guest-domain.xml -o local -os /var/tmp\n" "\n" "virt-v2v -i disk disk.img -o local -os /var/tmp\n" "\n" "There is a companion front-end called \"virt-p2v\" which comes as an\n" "ISO or CD image that can be booted on physical machines.\n" "\n" "A short summary of the options is given below. For detailed help please\n" "read the man page virt-v2v(1).\n" msgstr "" #: in-place/in_place.ml:217 msgid "" "%s: convert a guest to use KVM in-place\n" "\n" "Note this program modifies the guest in-place with no backup.\n" "Normally you should use virt-v2v.\n" "\n" "virt-v2v-in-place -i libvirtxml guest-domain.xml\n" "\n" "virt-v2v-in-place -i disk disk.img\n" "\n" "A short summary of the options is given below. For detailed help please\n" "read the man page virt-v2v-in-place(1).\n" msgstr "" #: input/input_vddk.ml:207 msgid "%s: enter password for ‘%s’: " msgstr "" #: common/mltools/tools_utils.ml:172 msgid "%s: error: %s" msgstr "%s: შეცდომა: %s" #: inspector/inspector.ml:198 msgid "" "%s: estimate disk space needed before virt-v2v conversion\n" "\n" "virt-v2v-inspector -i disk disk.img [-O output.xml]\n" "\n" "A short summary of the options is given below. For detailed help please\n" "read the man page virt-v2v-inspector(1).\n" msgstr "" #: open/open.ml:94 msgid "" "%s: open the virt-v2v input and run a program on it\n" "\n" "virt-v2v-open -i disk disk.img --run 'virt-inspector --format=raw @@'\n" "\n" "A short summary of the options is given below. For detailed help please\n" "read the man page virt-v2v-open(1).\n" msgstr "" #: common/mltools/tools_utils.ml:726 msgid "%s: operation timed out" msgstr "" #: input/OVA.ml:127 input/OVA.ml:121 msgid "" "%s: unsupported file format\n" "\n" "Formats which we currently understand for '-i ova' are: tar (uncompressed, " "compress with gzip or xz), zip" msgstr "" #: common/mltools/tools_utils.ml:191 msgid "%s: warning: %s" msgstr "%s: გაფრთხილება: %s" #. common/mlcustomize/customize_cmdline.ml:258 #: common/mlcustomize/customize_cmdline.ml:367 msgid "'CMD+ARGS'" msgstr "" #: common/mlcustomize/customize_run.ml:133 msgid "" "--append-line: line must not contain newline characters. Use the --append-" "line option multiple times to add several lines." msgstr "" #: common/mlcustomize/customize_run.ml:152 msgid "--chown: could not parse numeric UID:GID from %s:%s" msgstr "" #: common/mlcustomize/customize_run.ml:216 msgid "" "--inject-blnsvr: blnsvr.exe not found in virtio-win source that you specified" msgstr "" #: common/mlcustomize/customize_run.ml:225 msgid "" "--inject-qemu-ga: QEMU Guest Agent MSI not found in virtio-win source that " "you specified" msgstr "" #: common/mlcustomize/customize_run.ml:241 msgid "" "--inject-virtio-win: virtio drivers were not found for this Windows version " "in the virtio-win source that you specified" msgstr "" #: v2v/v2v.ml:146 inspector/inspector.ml:136 in-place/in_place.ml:143 msgid "--mac ip prefix length field is out of range" msgstr "" #: v2v/v2v.ml:340 msgid "--parallel parameter must be >= 1" msgstr "" #: input/input_disk.ml:42 msgid "-i disk: expecting a disk image (filename) on the command line" msgstr "" #: input/input_xen_ssh.ml:65 msgid "-i libvirt: expecting -ic parameter for Xen over SSH connection" msgstr "" #: input/input_vddk.ml:142 input/input_vcenter_https.ml:88 msgid "-i libvirt: expecting -ic parameter for vcenter connection" msgstr "" #: input/input_vcenter_https.ml:101 msgid "-i libvirt: expecting -ic parameter to contain vcenter server name" msgstr "" #: input/input_vcenter_https.ml:78 msgid "-i libvirt: expecting -ip passwordfile parameter for vCenter connection" msgstr "" #. input/input_vcenter_https.ml:70 #. input/input_libvirt.ml:41 #: input/input_xen_ssh.ml:57 input/input_vddk.ml:132 msgid "-i libvirt: expecting a libvirt guest name on the command line" msgstr "" #: input/input_libvirt.ml:59 msgid "-i libvirtxml: expecting a libvirt XML filename on the command line" msgstr "" #: input/input_ova.ml:243 msgid "-i ova: OVF references file ‘%s’ which was not found in the OVA archive" msgstr "" #: input/input_ova.ml:78 msgid "" "-i ova: corrupt OVA: checksum of disk %s does not match manifest (actual = " "%s, expected = %s)" msgstr "" #: input/input_ova.ml:52 msgid "-i ova: expecting an OVA file name on the command line" msgstr "" #: input/OVA.ml:361 msgid "" "-i ova: invalid OVA file: path ‘%s’ references a file outside the archive" msgstr "" #: input/input_vmx.ml:57 msgid "-i vmx: cannot use -it vddk in this input mode" msgstr "" #: input/input_vmx.ml:60 msgid "-i vmx: expecting a VMX file or ssh:// URI" msgstr "" #: input/vCenter.ml:159 msgid "" "-ip PASSWORD_FILE parameter ignored because 'user@' was not given in the URL" msgstr "" #: input/input_vddk.ml:119 msgid "-it vddk: ‘-io %s’ is not a valid input option" msgstr "" #: output/output.ml:54 msgid "-o %s: %s option cannot be used in this output mode" msgstr "" #: output/output_disk.ml:66 msgid "-o disk: output directory was not specified, use '-os /dir'" msgstr "" #: output/output_libvirt.ml:59 output/output_disk.ml:56 msgid "-o disk: unknown output option ‘-oo %s’" msgstr "" #: output/output_kubevirt.ml:81 msgid "-o kubevirt: output directory was not specified, use '-os /dir'" msgstr "" #: output/output_kubevirt.ml:91 msgid "" "-o kubevirt: the guest name must contain only lowercase alphanumeric " "characters, '-' or '.', and must start and end with an alphanumeric " "character. Rerun virt-v2v with the '-on name' option to rename it." msgstr "" #: output/output_kubevirt.ml:71 msgid "-o kubevirt: unknown output option ‘-oo %s’" msgstr "" #: output/output_libvirt.ml:120 msgid "" "-o libvirt: output pool ‘%s’ does not have /pool/target/path element. See " "virt-v2v-output-local(1)" msgstr "" #: output/output_libvirt.ml:124 msgid "" "-o libvirt: output pool ‘%s’ has type='dir' but the /pool/target/path " "element is not a local directory. See virt-v2v-output-local(1)" msgstr "" #: output/output_libvirt.ml:116 msgid "" "-o libvirt: output pool ‘%s’ is not a directory (type='dir'). See virt-v2v-" "output-local(1)" msgstr "" #: output/output_openstack.ml:88 msgid "-o openstack mode only supports -oa sparse -of raw" msgstr "" #: output/output_openstack.ml:115 msgid "-o openstack: unknown output option ‘-oo %s’" msgstr "" #: output/output_ovirt_upload.ml:97 msgid "-o ovirt-upload: -oo ovirt-cafile set more than once" msgstr "" #: output/output_ovirt_upload.ml:101 msgid "-o ovirt-upload: -oo ovirt-cluster set more than once" msgstr "" #: output/output_ovirt_upload.ml:112 msgid "-o ovirt-upload: invalid UUID for -oo ovirt-disk-uuid" msgstr "" #: output/output_ovirt_upload.ml:76 msgid "" "-o ovirt-upload: output password file was not specified, use ‘-op’ to point " "to a file which contains the password used to connect to the oVirt server" msgstr "" #: output/output_ovirt_upload.ml:83 msgid "-o ovirt-upload: output storage was not specified, use ‘-os’" msgstr "" #: output/output_ovirt_upload.ml:116 msgid "-o ovirt-upload: unknown output option ‘-oo %s’" msgstr "" #: output/output_ovirt_upload.ml:68 msgid "" "-o ovirt-upload: use ‘-oc’ to point to the oVirt server REST API URL, which " "is usually https://servername/ovirt-engine/api" msgstr "" #: output/output_ovirt.ml:51 msgid "-o ovirt: -os option was not specified" msgstr "" #: output/output_qemu.ml:72 msgid "-o qemu: output directory was not specified, use '-os /dir'" msgstr "" #: output/output_qemu.ml:63 msgid "-o qemu: unknown output option ‘-oo %s’" msgstr "" #: output/output_vdsm.ml:102 msgid "-o vdsm: -oo vdsm-image-uuid was not specified" msgstr "" #: output/output_vdsm.ml:81 msgid "-o vdsm: -oo vdsm-ovf-output set more than once" msgstr "" #: output/output_vdsm.ml:77 msgid "-o vdsm: -oo vdsm-vm-uuid set more than once" msgstr "" #: output/output_vdsm.ml:110 msgid "-o vdsm: -os option was not specified" msgstr "" #: output/output_vdsm.ml:97 msgid "-o vdsm: either -oo vdsm-vol-uuid or -oo vdsm-vm-uuid was not specified" msgstr "" #: output/output_vdsm.ml:90 msgid "-o vdsm: unknown output option ‘-oo %s’" msgstr "" #: output/output_vdsm.ml:74 msgid "-o vdsm: unknown vdsm-compat level ‘%s’" msgstr "" #. output/output_kubevirt.ml:84 #. output/output_disk.ml:68 #: output/output_vdsm.ml:112 output/output_qemu.ml:74 msgid "-os %s: output directory does not exist or is not a directory" msgstr "" #: input/parse_libvirt_xml.ml:279 msgid " missing 'method' attribute, ignoring" msgstr "" #: input/parse_libvirt_xml.ml:291 msgid " unknown fail='%s' attribute, ignoring" msgstr "" #: input/parse_libvirt_xml.ml:370 input/parse_libvirt_xml.ml:317 msgid " was ignored" msgstr "" #: input/parse_libvirt_xml.ml:338 msgid " with was ignored" msgstr "" #: input/parse_libvirt_xml.ml:365 msgid " with was ignored" msgstr "" #: input/parse_libvirt_xml.ml:299 msgid " element with no type attribute ignored" msgstr "" #: input/parse_libvirt_xml.ml:167 msgid " in the input libvirt XML was ignored" msgstr "" #: input/parse_libvirt_xml.ml:414 msgid "" " was ignored because the device name could not be recognized" msgstr "" #: input/input_vddk.ml:176 msgid "" " was not found in the output of ‘virsh dumpxml \"%s\"’. The " "most likely reason is that libvirt is too old, try upgrading libvirt to ≥ " "3.7." msgstr "" #: common/mlcustomize/customize_cmdline.ml:305 msgid "Add package(s) to install" msgstr "" #: common/mlcustomize/customize_cmdline.ml:270 msgid "Add package(s) to install at first boot" msgstr "" #: common/mlcustomize/customize_cmdline.ml:175 msgid "Append line(s) to the file" msgstr "" #: common/mlcustomize/customize_run.ml:137 msgid "Appending line to %s" msgstr "ხაზის %s-ის ბოლოსი მიწერა" #: common/mlcustomize/customize_cmdline.ml:197 msgid "Change the owner user and group ID of a file or directory" msgstr "" #: common/mlcustomize/customize_cmdline.ml:186 msgid "Change the permissions of a file" msgstr "" #: common/mlcustomize/customize_run.ml:155 msgid "Changing owner of %s to %d:%d" msgstr "" #: common/mlcustomize/customize_run.ml:141 msgid "Changing permissions of %s to %s" msgstr "" #: input/input_libvirt.ml:174 input/input_libvirt.ml:157 msgid "Checking %s checksum of disk %d/%d" msgstr "" #: common/mlcustomize/customize_cmdline.ml:488 msgid "Compatibility option doing nothing" msgstr "" #: common/mlcustomize/customize_cmdline.ml:219 msgid "Copy files in disk image" msgstr "" #: common/mlcustomize/customize_cmdline.ml:397 msgid "Copy local files or directories from a tarball into image" msgstr "" #: common/mlcustomize/customize_cmdline.ml:230 msgid "Copy local files or directories into image" msgstr "" #: common/mlcustomize/customize_run.ml:168 msgid "Copying (in image): %s to %s" msgstr "" #: v2v/v2v.ml:518 msgid "Copying disk %d/%d" msgstr "" #: common/mlcustomize/customize_run.ml:172 msgid "Copying: %s to %s" msgstr "[%s]-ის კოპირება [%s]-ში" #: common/mlcustomize/customize_cmdline.ml:322 msgid "Create a directory" msgstr "" #: common/mlcustomize/customize_cmdline.ml:316 msgid "Create symbolic links" msgstr "" #: v2v/v2v.ml:567 msgid "Creating output metadata" msgstr "" #: common/mlcustomize/customize_cmdline.ml:321 msgid "DIR" msgstr "საქ" #: common/mlcustomize/customize_cmdline.ml:236 msgid "Delete a file or directory" msgstr "" #: common/mlcustomize/customize_run.ml:176 msgid "Deleting: %s" msgstr "" #: common/mltools/getopt.ml:225 msgid "Display brief help" msgstr "" #: common/mltools/tools_utils.ml:385 msgid "Display version and exit" msgstr "ვერსიის ჩვენება და გამოსვლა" #: common/mlcustomize/customize_cmdline.ml:482 msgid "Do not relabel files with correct SELinux labels" msgstr "" #: v2v/v2v.ml:248 inspector/inspector.ml:177 in-place/in_place.ml:190 msgid "Don't trim filesystems before conversion" msgstr "" #: common/mltools/tools_utils.ml:389 msgid "Don’t print progress messages" msgstr "" #: common/mltools/tools_utils.ml:420 msgid "Don’t turn off echo for passphrases" msgstr "" #: common/mlcustomize/customize_cmdline.ml:247 msgid "Edit file using Perl expression" msgstr "" #: common/mlcustomize/customize_run.ml:180 msgid "Editing: %s" msgstr "" #: common/mltools/tools_utils.ml:386 msgid "Enable libguestfs debugging messages" msgstr "" #: common/mltools/tools_utils.ml:387 msgid "Enable tracing of libguestfs calls" msgstr "" #: output/output_ovirt.ml:77 msgid "Export Storage Domain" msgstr "" #: open/open.ml:88 msgid "External command to run" msgstr "" #. common/mlcustomize/customize_cmdline.ml:408 #. common/mlcustomize/customize_cmdline.ml:373 #: common/mlcustomize/customize_cmdline.ml:414 msgid "FILE" msgstr "ფაილი" #: common/mlcustomize/customize_cmdline.ml:455 msgid "FILE:CONTENT" msgstr "ფილი:შემცველობა" #: common/mlcustomize/customize_cmdline.ml:444 msgid "FILE:DEST" msgstr "ფაილი:სამიზნე" #: common/mlcustomize/customize_cmdline.ml:242 msgid "FILE:EXPR" msgstr "ფაილი:გამოს" #: common/mlcustomize/customize_cmdline.ml:170 msgid "FILE:LINE" msgstr "ფაილი:ხაზი" #: common/mlcustomize/customize_cmdline.ml:203 msgid "FILENAME" msgstr "ფაილის სახელი" #. in-place/in_place.ml:378 #: v2v/v2v.ml:571 open/open.ml:220 inspector/inspector.ml:334 msgid "Finishing off" msgstr "" #: common/mlcustomize/customize_cmdline.ml:275 msgid "HOSTNAME" msgstr "ჰოსტის სახელი" #: v2v/v2v.ml:254 inspector/inspector.ml:183 in-place/in_place.ml:194 msgid "How to choose root filesystem" msgstr "" #: common/mltools/tools_utils.ml:177 msgid "" "If reporting bugs, run %s with debugging enabled and include the complete " "output:\n" "\n" " %s -v -x [...]" msgstr "" #: common/mlcustomize/customize_cmdline.ml:386 msgid "Inject a public key into the guest" msgstr "" #: common/mlcustomize/customize_cmdline.ml:282 msgid "Inject the Balloon Server into a Windows guest" msgstr "" #: common/mlcustomize/customize_cmdline.ml:288 msgid "Inject the QEMU Guest Agent into a Windows guest" msgstr "" #: common/mlcustomize/customize_cmdline.ml:294 msgid "Inject virtio-win drivers into a Windows guest" msgstr "" #. in-place/in_place.ml:176 #: v2v/v2v.ml:216 open/open.ml:80 inspector/inspector.ml:165 msgid "Input format" msgstr "" #: input/input_vddk.ml:77 msgid "" "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" "\n" "Refer to nbdkit-vddk-plugin(1) and the VDDK documentation for further\n" "information on these settings.\n" msgstr "" #: v2v/v2v.ml:222 open/open.ml:86 inspector/inspector.ml:171 msgid "Input transport" msgstr "" #: common/mlcustomize/customize_run.ml:191 msgid "Installing firstboot command: %s" msgstr "პირველი ჩატვირთვის პროგრამის დაყენება: %s" #: common/mlcustomize/customize_run.ml:195 msgid "Installing firstboot packages: %s" msgstr "პირველი ჩატვირთვის პაკეტების დაყენება: %s" #: common/mlcustomize/customize_run.ml:202 msgid "Installing firstboot script: %s" msgstr "" #: common/mlcustomize/customize_run.ml:248 msgid "Installing packages: %s" msgstr "პაკეტების დაყენება: %s" #: common/mlcustomize/customize_cmdline.ml:225 msgid "LOCALPATH:REMOTEDIR" msgstr "" #. in-place/in_place.ml:174 #: v2v/v2v.ml:214 open/open.ml:78 inspector/inspector.ml:163 msgid "Libvirt URI" msgstr "Libvirt-ის URI" #: common/mlcustomize/customize_run.ml:255 msgid "Linking: %s -> %s" msgstr "ბმულის შექმნა: %s -> %s" #. common/mlcustomize/customize_cmdline.ml:287 #. common/mlcustomize/customize_cmdline.ml:281 #: common/mlcustomize/customize_cmdline.ml:293 msgid "METHOD" msgstr "" #: common/mltools/tools_utils.ml:426 msgid "Make output machine readable" msgstr "" #: common/mlcustomize/customize_run.ml:260 msgid "Making directory: %s" msgstr "" #: v2v/v2v.ml:226 inspector/inspector.ml:173 in-place/in_place.ml:182 msgid "Map NIC to network or bridge or assign static IP" msgstr "" #: v2v/v2v.ml:210 inspector/inspector.ml:159 in-place/in_place.ml:170 msgid "Map bridge ‘in’ to ‘out’" msgstr "" #: v2v/v2v.ml:230 inspector/inspector.ml:179 in-place/in_place.ml:186 msgid "Map network ‘in’ to ‘out’" msgstr "" #: common/mlcustomize/customize_cmdline.ml:333 msgid "Move files in disk image" msgstr "" #: common/mlcustomize/customize_run.ml:264 msgid "Moving: %s -> %s" msgstr "გადატანა: %s -> %s" #. input/input_vcenter_https.ml:45 #. input/input_ova.ml:35 #. input/input_libvirt.ml:233 #. input/input_libvirt.ml:221 #. input/input_disk.ml:35 #: input/input_xen_ssh.ml:43 input/input_vmx.ml:36 msgid "No input options can be used in this mode.\n" msgstr "" #: output/output_ovirt.ml:40 output/output_null.ml:38 #: output/output_glance.ml:40 msgid "No output options can be used in this mode.\n" msgstr "" #: output/output_vdsm.ml:166 msgid "OVF (metadata) directory (%s) does not exist or is not a directory" msgstr "" #: common/mlcustomize/firstboot.ml:268 msgid "" "One of rhsrvany.exe or pvvxsvc.exe is missing in %s. One of them is " "required in order to install Windows firstboot scripts. You can get one by " "building rhsrvany (https://github.com/rwmjones/rhsrvany)" msgstr "" #: v2v/v2v.ml:236 msgid "Output hypervisor connection" msgstr "" #: output/output_ovirt_upload.ml:51 msgid "" "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" "\n" "You can override the UUIDs of the disks, instead of using autogenerated " "UUIDs\n" "after their uploads (if you do, you must supply one for each disk):\n" "\n" " -oo ovirt-disk-uuid=UUID Disk UUID\n" msgstr "" #: output/output_qemu.ml:44 msgid "" "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" msgstr "" #: output/output_vdsm.ml:43 msgid "" "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" "\n" "For 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" msgstr "" #: output/output_disk.ml:44 msgid "" "Output options that can be used with -o disk:\n" "\n" " -oo compressed Compress the output file (used only with -of qcow2)\n" msgstr "" #: output/output_kubevirt.ml:51 msgid "" "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" msgstr "" #: output/output_libvirt.ml:47 msgid "" "Output options that can be used with -o libvirt:\n" "\n" " -oo compressed Compress the output file (used only with -of qcow2)\n" msgstr "" #. common/mlcustomize/customize_cmdline.ml:235 #: common/mlcustomize/customize_cmdline.ml:420 msgid "PATH" msgstr "ბილიკი" #: common/mlcustomize/customize_cmdline.ml:181 msgid "PERMISSIONS:FILE" msgstr "" #. common/mlcustomize/customize_cmdline.ml:300 #. common/mlcustomize/customize_cmdline.ml:265 #: common/mlcustomize/customize_cmdline.ml:427 msgid "PKG,PKG.." msgstr "" #: v2v/v2v.ml:263 in-place/in_place.ml:203 msgid "Prefer 'virtio-blk' or 'virtio-scsi'" msgstr "" #: v2v/v2v.ml:252 in-place/in_place.ml:192 msgid "Print source and stop" msgstr "" #: common/mlcustomize/customize_cmdline.ml:208 msgid "Read customize commands from file" msgstr "" #: common/mltools/tools_utils.ml:421 msgid "Read passphrases from stdin" msgstr "" #: common/mlcustomize/customize_cmdline.ml:421 msgid "Recursively truncate all files in directory" msgstr "" #: common/mlcustomize/customize_run.ml:298 msgid "Recursively truncating: %s" msgstr "" #: v2v/v2v.ml:240 msgid "Rename guest when converting" msgstr "" #: common/mlcustomize/customize_cmdline.ml:259 msgid "Run command at first guest boot" msgstr "" #: common/mlcustomize/customize_cmdline.ml:368 msgid "Run command in disk image" msgstr "" #: common/mlcustomize/customize_cmdline.ml:253 msgid "Run script at first guest boot" msgstr "" #: common/mlcustomize/customize_cmdline.ml:362 msgid "Run script in disk image" msgstr "" #: common/mlcustomize/customize_cmdline.ml:409 msgid "Run touch on a file" msgstr "" #: v2v/v2v.ml:250 msgid "Run up to N instances of nbdcopy in parallel" msgstr "" #: open/open.ml:188 msgid "Running external command" msgstr "" #: common/mlcustomize/customize_run.ml:307 msgid "Running touch: %s" msgstr "" #. common/mlcustomize/customize_run.ml:159 #: common/mlcustomize/customize_run.ml:274 msgid "Running: %s" msgstr "" #. common/mlcustomize/customize_cmdline.ml:252 #: common/mlcustomize/customize_cmdline.ml:361 msgid "SCRIPT" msgstr "სკრიპტი" #: common/mltools/tools_utils.ml:422 #: common/mlcustomize/customize_cmdline.ml:351 msgid "SELECTOR" msgstr "" #: common/mlcustomize/customize_run.ml:363 msgid "SELinux relabelling" msgstr "" #. common/mlcustomize/customize_cmdline.ml:214 #: common/mlcustomize/customize_cmdline.ml:328 msgid "SOURCE:DEST" msgstr "" #: common/mlcustomize/customize_run.ml:287 msgid "SSH key could not be injected for this type of guest" msgstr "" #: common/mlcustomize/customize_run.ml:284 msgid "SSH key inject: %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:374 msgid "Scrub a file" msgstr "" #: common/mlcustomize/customize_cmdline.ml:466 msgid "Scrub build log file" msgstr "" #: common/mlcustomize/customize_run.ml:374 msgid "Scrubbing the log file" msgstr "" #: common/mlcustomize/customize_run.ml:279 msgid "Scrubbing: %s" msgstr "" #: v2v/v2v.ml:208 msgid "Set bandwidth dynamically from file" msgstr "" #: v2v/v2v.ml:206 msgid "Set bandwidth to bits per sec" msgstr "" #. in-place/in_place.ml:172 #: v2v/v2v.ml:212 open/open.ml:76 inspector/inspector.ml:161 msgid "Set input mode (default: libvirt)" msgstr "" #: v2v/v2v.ml:228 inspector/inspector.ml:175 in-place/in_place.ml:184 msgid "Set memory size" msgstr "" #: v2v/v2v.ml:256 inspector/inspector.ml:185 in-place/in_place.ml:196 msgid "Set number of vCPUs" msgstr "" #. in-place/in_place.ml:178 #: v2v/v2v.ml:218 open/open.ml:82 inspector/inspector.ml:167 msgid "Set option for input mode" msgstr "" #: v2v/v2v.ml:242 msgid "Set option for output mode" msgstr "" #: v2v/v2v.ml:234 msgid "Set output allocation mode" msgstr "" #: v2v/v2v.ml:238 msgid "Set output format" msgstr "" #: v2v/v2v.ml:232 msgid "Set output mode (default: libvirt)" msgstr "" #: v2v/v2v.ml:246 msgid "Set output storage location" msgstr "" #: common/mlcustomize/customize_cmdline.ml:476 msgid "Set password crypto" msgstr "" #: common/mltools/tools_utils.ml:430 msgid "Set program name" msgstr "" #: common/mlcustomize/customize_cmdline.ml:356 msgid "Set root password" msgstr "" #: common/mlcustomize/customize_cmdline.ml:403 msgid "Set the default timezone" msgstr "" #: common/mlcustomize/customize_cmdline.ml:276 msgid "Set the hostname" msgstr "" #: inspector/inspector.ml:181 in-place/in_place.ml:188 msgid "Set the output filename" msgstr "" #: common/mlcustomize/customize_cmdline.ml:345 msgid "Set user password" msgstr "" #: common/mlcustomize/customize_run.ml:75 msgid "Setting a random seed" msgstr "" #: common/mlcustomize/customize_run.ml:354 msgid "Setting passwords" msgstr "" #: common/mlcustomize/password.ml:113 msgid "Setting random password of %s to %s" msgstr "" #: common/mlcustomize/customize_run.ml:207 msgid "Setting the hostname: %s" msgstr "" #: common/mlcustomize/customize_run.ml:90 msgid "Setting the machine ID in %s" msgstr "" #: common/mlcustomize/customize_run.ml:302 msgid "Setting the timezone: %s" msgstr "" #: v2v/v2v.ml:481 msgid "Setting up the destination: %s" msgstr "" #. in-place/in_place.ml:342 #: v2v/v2v.ml:457 open/open.ml:184 inspector/inspector.ml:310 msgid "Setting up the source: %s" msgstr "" #: v2v/v2v.ml:463 in-place/in_place.ml:348 msgid "Source guest information (--print-source option):\n" msgstr "" #: common/mltools/tools_utils.ml:422 msgid "Specify a LUKS key" msgstr "" #: common/mlcustomize/customize_cmdline.ml:392 msgid "TARFILE:REMOTEDIR" msgstr "" #: common/mlcustomize/customize_cmdline.ml:311 msgid "TARGET:LINK[:LINK..]" msgstr "" #: common/mlcustomize/customize_cmdline.ml:402 msgid "TIMEZONE" msgstr "" #: v2v/v2v.ml:200 msgid "" "The --in-place option has been replaced by the ‘virt-v2v-in-place’ program" msgstr "" #: output/output_qemu.ml:251 msgid "" "The Virt machine has no support for IDE. Please report a bug for virt-v2v -- " "refer to virt-v2v(1) section \"BUGS\"." msgstr "" #: output/output_qemu.ml:272 msgid "" "The Virt machine has no support for floppies. Please report a bug for virt-" "v2v -- refer to virt-v2v(1) section \"BUGS\"." msgstr "" #: lib/create_ovf.ml:785 msgid "" "This guest required a password for connection to its display, but this is " "not supported by oVirt. Therefore the converted guest’s display will not " "require a separate password to connect." msgstr "" #: input/input_vmx.ml:111 msgid "" "This transport does not support guests with snapshots. Either collapse the " "snapshots for this guest and try the conversion again, or use one of the " "alternate conversion methods described in virt-v2v-input-vmware(1) section " "\"NOTES\"." msgstr "" #: common/mlcustomize/customize_cmdline.ml:415 msgid "Truncate a file to zero size" msgstr "" #: common/mlcustomize/customize_run.ml:294 msgid "Truncating: %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:192 msgid "UID:GID:PATH" msgstr "" #: common/mlcustomize/customize_cmdline.ml:339 msgid "USER:SELECTOR" msgstr "" #: common/mlcustomize/customize_cmdline.ml:380 msgid "USER[:SELECTOR]" msgstr "" #: common/mlcustomize/customize_cmdline.ml:432 msgid "Uninstall package(s)" msgstr "პაკეტების წაშლა" #: common/mlcustomize/customize_run.ml:311 msgid "Uninstalling packages: %s" msgstr "პაკეტების წაშლა: %s" #: common/mlcustomize/customize_run.ml:290 msgid "Unpack tar file: %s to %s" msgstr "tar ფაილის გაშლა: %s %s-ში" #: common/mlcustomize/customize_cmdline.ml:438 msgid "Update packages" msgstr "პაკეტების განახლება" #: common/mlcustomize/customize_run.ml:316 msgid "Updating packages" msgstr "მიმდინარეობს პაკეტების განახლება" #: common/mlcustomize/customize_cmdline.ml:449 msgid "Upload local file to destination" msgstr "" #: common/mlcustomize/customize_run.ml:321 msgid "Uploading: %s to %s" msgstr "ატვირთვა: %s %s-ში" #: common/mltools/tools_utils.ml:391 msgid "Use ANSI colour sequences even if not tty" msgstr "" #. in-place/in_place.ml:180 #: v2v/v2v.ml:220 open/open.ml:84 inspector/inspector.ml:169 msgid "Use password from file to connect to input hypervisor" msgstr "" #: v2v/v2v.ml:244 msgid "Use password from file to connect to output hypervisor" msgstr "" #: v2v/v2v.ml:224 msgid "Use virt-v2v-in-place instead" msgstr "" #: common/mltools/tools_utils.ml:392 msgid "Wrap log messages even if not tty" msgstr "" #: common/mlcustomize/customize_cmdline.ml:460 msgid "Write file" msgstr "" #: common/mlcustomize/customize_run.ml:346 msgid "Writing: %s" msgstr "" #: lib/YAML.ml:167 msgid "" "YAML block contains newline character. This should not happen, please " "report a bug against virt-v2v." msgstr "" #: output/output_libvirt.ml:96 msgid "" "a libvirt domain called ‘%s’ already exists on the target.\n" "\n" "If using virt-v2v directly, use the ‘-on’ option to select a different name. " "Or delete the existing domain on the target using the ‘virsh undefine’ " "command.\n" "\n" "If using virt-p2v, select a different ‘Name’ in the ‘Target properties’. Or " "delete the existing domain on the target using the ‘virsh undefine’ command." msgstr "" #: common/mlcustomize/append_line.ml:44 msgid "append_line: %s is not a file" msgstr "" #: input/input_libvirt.ml:206 msgid "" "bad checksum for disk %d/%d\n" "Expected checksum: %s\n" "Actual checksum: %s" msgstr "" #: lib/libvirt_utils.ml:59 msgid "cannot find libvirt domain ‘%s’: %s" msgstr "" #: lib/libvirt_utils.ml:96 msgid "" "cannot find libvirt pool ‘%s’: %s\n" "\n" "Use ‘virsh pool-list --all’ to list all available pools, and ‘virsh pool-" "dumpxml ’ to display details about a particular pool.\n" "\n" "To set the pool which virt-v2v uses, add the ‘-os ’ option." msgstr "" #: lib/libvirt_utils.ml:110 msgid "cannot find libvirt volume ‘%s’: %s" msgstr "" #: common/mlcustomize/firstboot.ml:235 msgid "" "cannot finish firstboot installation by running ‘%s’ because host cpu (%s) " "and guest arch (%s) are not compatible. The firstboot service may not run " "at boot." msgstr "" #: output/output_libvirt.ml:180 msgid "cannot get libvirt domain capabilities: %s" msgstr "" #: output/output_libvirt.ml:85 msgid "cannot get libvirt hypervisor capabilities: %s" msgstr "" #: v2v/v2v.ml:105 inspector/inspector.ml:95 in-place/in_place.ml:102 msgid "cannot parse --mac \"%s\" parameter" msgstr "" #: v2v/v2v.ml:129 inspector/inspector.ml:119 in-place/in_place.ml:126 msgid "cannot parse --mac ip %s: doesn’t look like “%s” is an IP address" msgstr "" #: v2v/v2v.ml:143 inspector/inspector.ml:133 in-place/in_place.ml:140 msgid "cannot parse --mac ip prefix length field as an integer: %s" msgstr "" #: common/mlcustomize/guest_packages.ml:29 msgid "" "cannot use ‘%s’ because no package manager has been detected for this guest " "OS.\n" "\n" "If this guest OS is a common one with ordinary package management then this " "may have been caused by a failure of libguestfs inspection.\n" "\n" "For OSes such as Windows that lack package management, this is not " "possible. Try using one of the ‘--firstboot*’ flags instead (described in " "the virt-customize(1) manual)." msgstr "" #: output/output_ovirt.ml:91 msgid "" "cannot write files to the NFS server as %d:%d, even though we appear to be " "running as root. This probably means the NFS client or idmapd is not " "configured properly.\n" "\n" "You will have to chown the files that virt-v2v creates after the run, " "otherwise oVirt will not be able to import the VM." msgstr "" #: output/output_ovirt.ml:99 msgid "" "cannot write files to the NFS server as %d:%d. You might want to stop virt-" "v2v (^C) and rerun it as root." msgstr "" #: common/mlcustomize/customize_cmdline.ml:508 msgid "command '%s' cannot be used in command files, see the man page" msgstr "" #: common/mlcustomize/customize_cmdline.ml:525 msgid "command '%s' not valid, see the man page" msgstr "" #: common/mldrivers/linux_bootloaders.ml:318 msgid "could not add grub2 serial console (ignored)" msgstr "" #: input/ssh.ml:52 msgid "" "could not copy the VMX file from the remote server, see earlier error " "messages" msgstr "" #: output/output_libvirt.ml:211 msgid "" "could not define libvirt domain: %s.\n" "The libvirt XML is still available in ‘%s’. Try running ‘virsh -c %s define " "%s’ yourself instead." msgstr "" #: common/mldrivers/linux_bootloaders.ml:221 msgid "could not determine a way to update the configuration of Grub2" msgstr "" #: input/input_vddk.ml:243 msgid "" "could not fetch thumbprint from the server, you mus use ‘-io vddk-" "thumbprint=XX:XX...’" msgstr "" #: common/mldrivers/linux_bootloaders.ml:376 msgid "could not find bootloader mount point (%s): %s" msgstr "" #: common/mldrivers/windows_drivers.ml:91 msgid "" "could not find registry entry " "HKEY_LOCAL_MACHINE\\SYSTEM\\DriverDatabase\\DeviceIds in this Windows " "guest. It may be either a very old or very new version of Windows that we " "cannot process." msgstr "" #: common/mlcustomize/firstboot.ml:232 msgid "" "could not finish firstboot installation by running ‘%s’ because the command " "failed: %s" msgstr "" #. input/input_vcenter_https.ml:94 #: input/select_input.ml:66 input/input_xen_ssh.ml:71 input/input_vddk.ml:151 msgid "could not parse '-ic %s'. Original error message was: %s" msgstr "" #: input/parse_libvirt_xml.ml:407 input/parse_libvirt_xml.ml:54 msgid "could not parse device name ‘%s’ from the source libvirt XML" msgstr "" #: input/OVF.ml:168 msgid "could not parse disk rasd:HostResource from OVF document" msgstr "" #: input/input_ova.ml:98 msgid "could not parse ovf:Name from OVF document" msgstr "ovf-ის დამუშავება შეუძლებელია (ovf:Name): სახელი OVF დოკუმენტიდან" #: output/output_ovirt.ml:247 msgid "" "could not read the %s specified by the '-os %s' parameter on the command " "line. Is it really an OVirt %s? The original error is: %s" msgstr "" #: common/mldrivers/linux_bootloaders.ml:336 msgid "" "could not rebuild grub2 configuration file (%s). This may mean that grub " "output will not be sent to the serial port, but otherwise should be " "harmless. Original error message: %s" msgstr "" #: output/output_libvirt.ml:156 msgid "could not refresh libvirt pool ‘%s’: %s" msgstr "" #: common/mldrivers/linux_bootloaders.ml:320 msgid "could not remove grub2 serial console (ignored)" msgstr "" #: common/mltools/registry.ml:93 msgid "" "decode_utf16le: Windows UTF16-LE string contains non-7-bit characters. This " "is a bug in %s, please report it." msgstr "" #: common/mltools/registry.ml:87 msgid "" "decode_utf16le: Windows string does not appear to be in UTF16-LE encoding. " "This could be a bug in %s." msgstr "" #: common/mldrivers/linux_bootloaders.ml:126 msgid "didn't find grub entry for kernel %s" msgstr "" #: input/input_disk.ml:150 msgid "disks on the command line have mixed formats" msgstr "" #: input/parse_libvirt_xml.ml:194 msgid "display in the input libvirt XML was ignored" msgstr "" #: output/output_qemu.ml:147 msgid "don’t know how to convert UEFI guests for architecture %s" msgstr "" #: common/mldrivers/linux.ml:158 msgid "don’t know how to find file owner using %s" msgstr "" #: common/mldrivers/linux.ml:89 msgid "don’t know how to get list of files from package using %s" msgstr "" #: common/mltools/curl.ml:82 msgid "downloading %s" msgstr "%s-ის გადმოწერა" #: lib/networks.ml:84 msgid "" "duplicate --mac parameter. Duplicate mappings specified for MAC address %s." msgstr "" #: lib/networks.ml:102 msgid "" "duplicate -b/--bridge parameter. Duplicate mappings specified for bridge %s." msgstr "" #: lib/networks.ml:108 msgid "duplicate -b/--bridge parameter. Only one default mapping is allowed." msgstr "" #: lib/networks.ml:90 msgid "" "duplicate -n/--network parameter. Duplicate mappings specified for network " "%s." msgstr "" #: lib/networks.ml:96 msgid "duplicate -n/--network parameter. Only one default mapping is allowed." msgstr "" #: input/OVF.ml:143 msgid "error parsing disk fileRef" msgstr "" #: input/input_ova.ml:124 msgid "error uncompressing %s, see earlier error messages" msgstr "" #: input/OVA.ml:210 input/OVA.ml:112 msgid "error unpacking %s, see earlier error messages" msgstr "" #: common/mltools/tools_utils.ml:248 msgid "exception: %s" msgstr "" #: common/mltools/tools_utils.ml:455 msgid "exited with error %d" msgstr "დასრულდა შეცდომით %d" #: lib/utils.ml:34 msgid "exited with non-zero error code %d" msgstr "დასრულდა არანულოვანი შეცდომის კოდით %d" #: input/input_disk.ml:147 msgid "expected >= 1 disk name on the command line" msgstr "" #: common/mltools/xpath_helpers.ml:36 msgid "" "expecting XML expression to return an integer (expression: %s, matching " "string: %s)" msgstr "" #: common/mltools/tools_utils.ml:440 msgid "external command" msgstr "" #: output/output_ovirt_upload.ml:265 msgid "failed server prechecks, see earlier errors" msgstr "" #: output/output_ovirt_upload.ml:507 msgid "failed to create virtual machine, see earlier errors" msgstr "" #: output/output_ovirt_upload.ml:479 msgid "failed to finalize the transfers, see earlier errors" msgstr "" #: common/mldrivers/linux_bootloaders.ml:208 msgid "failed to find grub2-mkconfig binary (but Grub2 was detected on guest)" msgstr "" #: input/OVA.ml:461 msgid "failed to parse line returned by tar: %S" msgstr "" #: output/output_ovirt_upload.ml:394 msgid "failed to start transfer, see earlier errors" msgstr "" #: output/output_ovirt_upload.ml:311 msgid "failed vmchecks, see earlier errors" msgstr "" #: common/mltools/tools_utils.ml:239 msgid "failure: %s" msgstr "შეცდომა: %s" #: input/input_ova.ml:134 msgid "file ‘%s’ not found in the ova" msgstr "" #: common/mlcustomize/firstboot.ml:143 msgid "" "firstboot: unknown version for old firstboot.service file %s (md5=%s), it " "will not be removed" msgstr "" #: common/mltools/tools_utils.ml:258 msgid "generated by %s %s" msgstr "შექმნილია პროგრამით %s %s" #: output/create_libvirt_xml.ml:39 msgid "get_osinfo_id: unknown guest operating system: %s" msgstr "" #: output/output_glance.ml:66 msgid "" "glance: glance client is not installed or set up correctly. You may need to " "set environment variables or source a script to enable authentication. See " "preceding messages for details." msgstr "" #: output/output_glance.ml:139 msgid "glance: image upload to glance failed, see earlier errors" msgstr "" #: common/mlcustomize/firstboot.ml:386 common/mlcustomize/firstboot.ml:164 msgid "guest type %s is not supported" msgstr "" #: common/mlcustomize/firstboot.ml:413 msgid "guest type %s/%s is not supported" msgstr "" #: common/mltools/tools_utils.ml:749 msgid "" "host (%s/%s) and guest (%s/%s) are not compatible, so you cannot use command " "line options that involve running commands in the guest. Use --firstboot " "scripts instead." msgstr "" #: common/mlcustomize/customize_run.ml:209 msgid "hostname could not be set for this type of guest" msgstr "" #: common/mldrivers/linux_kernels.ml:342 msgid "ignoring kernel %s in bootloader, as it does not exist." msgstr "" #: output/output_vdsm.ml:160 msgid "image directory (%s) does not exist or is not a directory" msgstr "" #: input/parse_libvirt_xml.ml:81 msgid "in the libvirt XML metadata, is missing or empty" msgstr "" #: input/parse_libvirt_xml.ml:87 msgid "in the libvirt XML metadata, is missing or empty" msgstr "" #: input/input_vcenter_https.ml:52 input/input_libvirt.ml:107 msgid "in-place mode does not work with HTTP source" msgstr "" #: input/input_vddk.ml:146 msgid "in-place mode does not work with VDDK source" msgstr "" #: input/input_vmx.ml:43 msgid "in-place mode does not work with VMX source" msgstr "" #: input/input_xen_ssh.ml:50 msgid "in-place mode does not work with Xen over SSH source" msgstr "" #: output/output_kubevirt.ml:116 msgid "" "incorrect number of '-oo disk' parameters. This guest has %d disks, but the " "parameter was used %d times." msgstr "" #: input/input_xen_ssh.ml:119 msgid "" "input from xen over ssh does not support disks stored on remote block " "devices. See virt-v2v-input-xen(1) section \"Xen or ssh conversions from " "block devices\"." msgstr "" #. in-place/in_place.ml:397 #: v2v/v2v.ml:590 open/open.ml:238 inspector/inspector.ml:353 msgid "" "insufficient free space in the conversion server temporary directory %s " "(%s).\n" "\n" "Either free up space in that directory, or set the LIBGUESTFS_CACHEDIR " "environment variable to point to another directory with more than 1GB of " "free space.\n" "\n" "See also the virt-v2v(1) manual, section \"Minimum free space check in the " "host\"." msgstr "" #: common/mltools/tools_utils.ml:246 msgid "internal error: Not_found exception was thrown" msgstr "" #: common/mltools/tools_utils.ml:243 msgid "internal error: assertion failed at %s, line %d, char %d" msgstr "" #: common/mltools/tools_utils.ml:241 msgid "internal error: invalid argument: %s" msgstr "" #: common/mldrivers/linux.ml:128 msgid "internal error: is_file_owned: dpkg command returned no output" msgstr "" #: common/mldrivers/linux.ml:133 msgid "internal error: is_file_owned: unexpected output from dpkg command: %s" msgstr "" #: common/mldrivers/linux_bootloaders.ml:130 msgid "internal error: regular expression did not match ‘%s’" msgstr "" #: v2v/v2v.ml:548 msgid "internal error: wait returned unexpected process ID %d status \"%s\"" msgstr "" #: v2v/v2v.ml:114 inspector/inspector.ml:104 in-place/in_place.ml:111 msgid "invalid --mac ip option" msgstr "" #: v2v/v2v.ml:98 inspector/inspector.ml:88 in-place/in_place.ml:95 msgid "invalid -b/--bridge parameter" msgstr "" #: v2v/v2v.ml:90 inspector/inspector.ml:80 in-place/in_place.ml:87 msgid "invalid -n/--network parameter" msgstr "" #: input/parse_domain_from_vmx.ml:402 msgid "invalid cpuid.coresPerSocket < number of vCPUs" msgstr "" #. common/mlcustomize/customize_cmdline.ml:153 #. common/mlcustomize/customize_cmdline.ml:145 #: common/mlcustomize/customize_cmdline.ml:161 msgid "invalid format for '--%s' parameter, see the man page" msgstr "" #: common/mltools/tools_utils.ml:359 msgid "invalid format string for --machine-readable: %s" msgstr "" #: lib/utils.ml:279 msgid "invalid input filename (%s)" msgstr "" #: input/OVA.ml:445 msgid "invalid offset returned by tar: %S" msgstr "" #: common/mltools/tools_utils.ml:374 msgid "invalid output fd for --machine-readable: %s" msgstr "" #: common/mltools/tools_utils.ml:376 msgid "invalid output for --machine-readable: %s" msgstr "" #: common/mltools/tools_utils.ml:368 msgid "invalid output stream for --machine-readable: %s" msgstr "" #: common/mlcustomize/password.ml:73 msgid "invalid password selector ‘%s’; see the man page" msgstr "" #: input/OVA.ml:450 msgid "invalid size returned by tar: %S" msgstr "" #: common/mlcustomize/ssh_key.ml:45 msgid "invalid ssh-inject selector ‘%s’; see the man page" msgstr "" #: input/OVF.ml:82 msgid "invalid vmw:CoresPerSocket (%d) ignored" msgstr "" #: input/OVF.ml:88 msgid "invalid vmw:CoresPerSocket < number of cores" msgstr "" #: common/mldrivers/linux_bootloaders.ml:114 msgid "kernel %s is not under grub tree %s" msgstr "" #: common/mltools/tools_utils.ml:539 common/mltools/tools_utils.ml:458 msgid "killed by signal %d" msgstr "მოკვდა სიგნალით %d" #: common/mltools/tools_utils.ml:237 msgid "libguestfs error: %s" msgstr "" #: lib/libvirt_utils.ml:72 msgid "" "libvirt domain ‘%s’ is running or paused. Converting a live guest will " "result in corrupted output. However this is safe if you're converting from a " "snapshot" msgstr "" #: common/mlcustomize/customize_run.ml:47 msgid "log file %s: %s (ignored)" msgstr "" #: input/OVA.ml:147 msgid "" "making OVA directory public readable to work around libvirt bug https://" "bugzilla.redhat.com/1045069" msgstr "" #: input/input_ova.ml:86 msgid "manifest has a checksum for non-existent file %s (ignored)" msgstr "" #: common/mlcustomize/customize_cmdline.ml:472 msgid "md5|sha256|sha512" msgstr "" #: common/mlcustomize/customize_run.ml:119 msgid "method '%s' is no longer supported" msgstr "" #: common/mltools/JSON_parser.ml:39 msgid "missing value for the key ‘%s’" msgstr "" #: input/OVA.ml:276 msgid "more than one .ovf file was found in %s" msgstr "" #: common/mltools/JSON_parser.ml:34 msgid "more than value for the key ‘%s’" msgstr "" #: output/output_ovirt.ml:222 msgid "" "mount command failed, see earlier errors.\n" "\n" "This probably means you didn't specify the right %s path [-os %s], or else " "you need to rerun virt-v2v as root." msgstr "" #: common/mlcustomize/customize_run.ml:103 msgid "" "multiple --root-password/--password options set the password for user ‘%s’ " "twice" msgstr "" #: input/input_vddk.ml:319 msgid "" "nbdkit VDDK plugin is not installed or not working. It is required if you " "want to use VDDK.\n" "\n" "It 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 ’/%s/libvixDiskLib.so.?’.\n" "\n" "See also the virt-v2v-input-vmware(1) manual." msgstr "" #: input/input_vddk.ml:313 msgid "" "nbdkit VDDK plugin is not installed or not working. It is required if you " "want to use VDDK.\n" "\n" "The 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" "\n" "See also the virt-v2v-input-vmware(1) manual." msgstr "" #: lib/nbdkit.ml:223 msgid "nbdkit did not start up. See previous debugging messages for problems." msgstr "" #: lib/nbdkit.ml:225 msgid "" "nbdkit did not start up. There may be errors printed by nbdkit above.\n" "\n" "If the messages above are not sufficient to diagnose the problem then add " "the ‘virt-v2v -v -x’ options and examine the debugging output carefully." msgstr "" #: input/nbdkit_ssh.ml:36 input/nbdkit_curl.ml:32 input/input_vddk.ml:283 msgid "nbdkit is not installed or not working" msgstr "" #: input/input_disk.ml:92 msgid "" "nbdkit is not installed or not working. It is required to use ‘-i disk’." msgstr "" #: input/input_libvirt.ml:68 msgid "" "nbdkit is not installed or not working. It is required to use ‘-i libvirt|" "libvirtxml’." msgstr "" #: output/output.ml:178 output/output.ml:77 msgid "" "nbdkit is not installed or not working. It is required to use ‘-o disk’." msgstr "" #: output/output_null.ml:57 msgid "" "nbdkit is not installed or not working. It is required to use ‘-o null’." msgstr "" #: output/output_ovirt_upload.ml:163 msgid "" "nbdkit is not installed or not working. It is required to use ‘-o ovirt-" "upload’. See the virt-v2v-output-ovirt(1) manual." msgstr "" #: input/input_vddk.ml:285 msgid "nbdkit must be >= 1.45.11 for input from VDDK" msgstr "" #: output/output_ovirt_upload.ml:176 msgid "" "nbdkit python plugin is not installed or not working. It is required if you " "want to use ‘-o ovirt-upload’.\n" "\n" "See also the virt-v2v-output-ovirt(1) manual." msgstr "" #: output/output_ovirt_upload.ml:190 msgid "" "nbdkit was compiled without SELinux support. You will have to recompile " "nbdkit with libselinux-devel installed, or else set SELinux to Permissive " "mode while doing the conversion." msgstr "" #. input/input_libvirt.ml:76 #. input/input_disk.ml:98 #: input/nbdkit_ssh.ml:42 input/nbdkit_curl.ml:38 input/input_vddk.ml:289 msgid "nbdkit-cow-filter is not installed or not working" msgstr "" #: input/nbdkit_curl.ml:35 msgid "nbdkit-curl-plugin is not installed" msgstr "" #. input/input_disk.ml:96 #: output/output.ml:181 output/output.ml:80 input/input_libvirt.ml:72 msgid "nbdkit-file-plugin is not installed or not working" msgstr "" #: input/input_libvirt.ml:74 msgid "nbdkit-nbd-plugin is not installed or not working" msgstr "" #: output/output_null.ml:60 msgid "nbdkit-null-plugin is not installed or not working" msgstr "" #: input/nbdkit_ssh.ml:39 msgid "nbdkit-ssh-plugin is not installed" msgstr "" #: input/input_vddk.ml:287 msgid "nbdkit-vddk-plugin is not installed" msgstr "" #: lib/nbdkit.ml:56 msgid "nbdkit: unexpected version in --dump-config: %s" msgstr "" #. input/input_vcenter_https.ml:49 #. input/input_ova.ml:46 #. input/input_libvirt.ml:35 #. input/input_disk.ml:39 #: input/input_xen_ssh.ml:47 input/input_vmx.ml:40 msgid "no -io (input options) are allowed here" msgstr "" #: output/output_ovirt.ml:44 output/output_null.ml:42 #: output/output_glance.ml:44 msgid "no -oo (output options) are allowed here" msgstr "" #: input/OVA.ml:273 msgid "no .ovf file was found in %s" msgstr "" #: common/mldrivers/linux_bootloaders.ml:402 msgid "no bootloader detected" msgstr "" #: input/parse_domain_from_vmx.ml:359 msgid "no displayName key found in VMX file" msgstr "" #: input/OVF.ml:148 msgid "no href in ovf:File (id=%s)" msgstr "" #: common/mldrivers/linux_kernels.ml:194 msgid "no initrd was found in /boot matching %s %s." msgstr "" #: common/mldrivers/linux_kernels.ml:317 msgid "" "no installed kernel packages were found.\n" "\n" "This probably indicates that %s was unable to inspect this guest properly." msgstr "" #: common/mldrivers/linux_kernels.ml:354 msgid "" "no kernels were found in the bootloader configuration.\n" "\n" "This probably indicates that %s was unable to parse the bootloader " "configuration of this guest." msgstr "" #: output/python_script.ml:55 msgid "no python binary called ‘%s’ can be found on the $PATH" msgstr "" #: input/select_input.ml:106 msgid "" "no support for remote libvirt connections to '-ic %s'. The conversion may " "fail when it tries to read the source disks." msgstr "" #: lib/create_ovf.ml:1027 msgid "" "oVirt cannot emulate ‘%s’ sound cards. This sound card will be dropped from " "the output." msgstr "" #: lib/create_ovf.ml:875 lib/create_ovf.ml:512 msgid "oVirt does not support the output format ‘%s’, only raw or qcow2" msgstr "" #: output/output_openstack.ml:120 msgid "openstack: -oo server-id= not present" msgstr "" #: output/output_openstack.ml:338 msgid "" "openstack: failed to attach cinder volume to VM, see earlier error messages" msgstr "" #: output/output_openstack.ml:291 msgid "openstack: failed to create a cinder volume, see earlier error messages" msgstr "" #: output/output_openstack.ml:304 msgid "" "openstack: failed to query cinder volume status, see earlier error messages" msgstr "" #: output/output_openstack.ml:442 msgid "" "openstack: failed to set image properties on cinder volume, see earlier " "error messages" msgstr "" #: output/output_openstack.ml:199 msgid "" "openstack: precheck failed, there may be a problem with authentication, see " "earlier error messages" msgstr "" #: output/output_openstack.ml:311 msgid "" "openstack: unknown volume status \"%s\": expected \"creating\" or " "\"available\"" msgstr "" #: output/output.ml:133 msgid "output mode only supports raw or qcow2 format (format: %s)" msgstr "" #: input/OVF.ml:263 msgid "" "ova disk has an unknown VMware controller type (%d), please report this as a " "bug supplying the *.ovf file extracted from the ova" msgstr "" #: input/OVF.ml:259 msgid "" "ova disk has no parent controller, please report this as a bug supplying the " "*.ovf file extracted from the ova" msgstr "" #: output/output_ovirt_upload.ml:367 msgid "" "ovirt-upload: -of %s: Only output format ‘raw’ or ‘qcow2’ is supported. If " "the input is in a different format then force one of these output formats by " "adding either ‘-of raw’ or ‘-of qcow2’ on the command line." msgstr "" #: common/mlcustomize/password.ml:51 msgid "" "password-crypto: unknown algorithm %s, use \"md5\", \"sha256\", \"sha512\" " "or \"yescrypt\"" msgstr "" #: common/mlcustomize/password.ml:197 msgid "" "password: using insecure md5 password encryption for guest of type %s " "version %d.%d.\n" "If this is incorrect, use --password-crypto option and file a bug." msgstr "" #: common/mlcustomize/customize_run.ml:359 msgid "passwords could not be set for this type of guest" msgstr "" #: lib/qemuNBD.ml:125 msgid "" "qemu-nbd did not start up. See previous debugging messages for problems." msgstr "" #: lib/qemuNBD.ml:127 msgid "" "qemu-nbd did not start up. There may be errors printed by qemu-nbd above.\n" "\n" "If the messages above are not sufficient to diagnose the problem then add " "the ‘virt-v2v -v -x’ options and examine the debugging output carefully." msgstr "" #: lib/qemuNBD.ml:47 msgid "qemu-nbd: unexpected version in --version: %s" msgstr "" #: common/mlcustomize/customize_run.ml:77 msgid "random seed could not be set for this type of guest" msgstr "" #: input/parse_domain_from_vmx.ml:44 msgid "remote vmx ‘%s’ could not be parsed as a URI" msgstr "დაშორებული vmx-ის '%s' URI-ის სახით დამუშავება შეუძლებელია" #. common/mlcustomize/inject_virtio_win.ml:357 #. common/mlcustomize/inject_virtio_win.ml:352 #: common/mlcustomize/inject_virtio_win.ml:362 msgid "" "root directory ‘/’ is missing from the virtio-win directory or ISO.\n" "\n" "This should not happen and may indicate that virtio-win or virt-v2v is " "broken in some way. Please report this as a bug with a full debug log." msgstr "" #: common/mltools/tools_utils.ml:417 common/options/keys.c:264 #, c-format msgid "selector '%s': invalid TYPE" msgstr "სელექტორი '%s': არასწორი TYPE" #: common/mltools/tools_utils.ml:409 common/options/keys.c:254 #, c-format msgid "selector '%s': missing FILENAME, or too many fields" msgstr "სელექტორი '%s': აკლია FILENAME ან მეტისმეტად ბევრი ველი" #: common/mltools/tools_utils.ml:399 common/options/keys.c:232 #, c-format msgid "selector '%s': missing ID" msgstr "სელექტორი '%s': აკლია ID" #: common/mltools/tools_utils.ml:404 common/options/keys.c:245 #, c-format msgid "selector '%s': missing KEY_STRING, or too many fields" msgstr "სელექტორი '%s': აკლია KEY_STRING ან მეტისმეტად ბევრი ველი" #: common/mltools/tools_utils.ml:401 common/options/keys.c:239 #, c-format msgid "selector '%s': missing TYPE" msgstr "სელექტორი '%s': აკლია TYPE" #: common/mltools/tools_utils.ml:413 common/options/keys.c:262 #, c-format msgid "selector '%s': too many fields" msgstr "სელექტორი '%s': მეტისმეტად ბევრი ველი" #: lib/utils.ml:35 msgid "signalled by signal %d" msgstr "მიიღო სიგნალი %d" #: common/mlcustomize/guest_packages.ml:40 msgid "" "sorry, ‘%s’ with the ‘%s’ package manager has not been implemented yet.\n" "\n" "You can work around this by using one of the ‘--run*’ or ‘--firstboot*’ " "options instead (described in the virt-customize(1) manual)." msgstr "" #: common/mlcustomize/ssh_key.ml:57 msgid "ssh-inject: $HOME environment variable is not set" msgstr "" #: common/mlcustomize/ssh_key.ml:93 msgid "ssh-inject: key is an empty string" msgstr "" #: common/mlcustomize/ssh_key.ml:66 msgid "ssh-inject: no public key file found in %s" msgstr "" #: common/mlcustomize/ssh_key.ml:83 msgid "ssh-inject: public key file (%s) is empty" msgstr "" #: common/mlcustomize/ssh_key.ml:112 msgid "ssh-inject: the user %s does not exist on the guest" msgstr "" #. common/mltools/tools_utils.ml:461 #: lib/utils.ml:36 common/mltools/tools_utils.ml:542 msgid "stopped by signal %d" msgstr "გაჩერდა სიგნალით %d" #: output/changeuid.ml:58 msgid "subprocess exited with non-zero error code %d" msgstr "ქვეპროცესი დასრულდა არანულოვანი შეცდომის კოდით %d" #: output/changeuid.ml:60 msgid "subprocess signalled or stopped by signal %d" msgstr "ქვეპროცესმა მიიღო სიგნალი %d" #: lib/utils.ml:33 msgid "success" msgstr "წარმატება" #: output/create_libvirt_xml.ml:297 msgid "" "target hypervisor does not support floppy devices, but floppy devices were " "found in the source guest" msgstr "" #: output/output_ovirt_upload.ml:156 msgid "" "the Python module ‘ovirtsdk4’ could not be loaded, is it installed? See " "previous messages for problems." msgstr "" #: output/output_ovirt_upload.ml:453 msgid "the cluster ‘%s’ does not support the architecture %s but %s" msgstr "" #: common/mlcustomize/customize_run.ml:59 msgid "" "the command may have failed because the network is disabled. Try either " "removing ‘--no-network’ or adding ‘--network’ on the command line." msgstr "" #: common/mltools/JSON_parser.ml:84 msgid "the key ‘%s’ was not found in a list of objects" msgstr "" #: output/output_ovirt_upload.ml:288 msgid "" "the number of ‘-oo ovirt-disk-uuid’ parameters passed on the command line " "has to match the number of guest disk images (for this guest: %d)" msgstr "" #: output/output_vdsm.ml:133 msgid "" "the number of ‘-oo vdsm-image-uuid’ and ‘-oo vdsm-vol-uuid’ parameters " "passed on the command line has to match the number of guest disk images (for " "this guest: %d)" msgstr "" #: output/output_libvirt.ml:239 msgid "the target hypervisor does not support a %s KVM guest" msgstr "" #: common/mltools/JSON_parser.ml:78 msgid "the value for key ‘%s’ is not a string as expected" msgstr "" #: common/mltools/JSON_parser.ml:50 msgid "the value for the key ‘%s’ is not a bool" msgstr "" #: common/mltools/JSON_parser.ml:45 msgid "the value for the key ‘%s’ is not a string" msgstr "" #: common/mltools/JSON_parser.ml:70 msgid "the value for the key ‘%s’ is not an integer" msgstr "" #: common/mltools/JSON_parser.ml:55 msgid "the value for the key ‘%s’ is not an object" msgstr "" #: common/mltools/JSON_parser.ml:59 msgid "the value is not an object" msgstr "" #: common/mltools/JSON_parser.ml:35 msgid "the value of the key ‘%s’ is not an object" msgstr "" #: lib/create_ovf.ml:519 msgid "" "the virtual size of the input disk %d is not an exact multiple of 512 " "bytes. The virtual size is: %Ld.\n" "\n" "This probably means something unexpected is going on, so please file a bug " "about this issue." msgstr "" #: output/output_openstack.ml:144 msgid "" "the ‘%s’ program is not available. It is needed to communicate with " "OpenStack." msgstr "" #: output/output_ovirt.ml:265 msgid "" "there are multiple UUIDs in the %s (%s). This is unexpected, and may be a " "bug in virt-v2v or OVirt." msgstr "" #: output/output_ovirt.ml:262 msgid "there are no UUIDs in the %s (%s). Is it really an OVirt %s?" msgstr "" #: common/mlcustomize/inject_virtio_win.ml:153 msgid "" "there are no virtio drivers available for this version of Windows (%d.%d %s " "%s %s). virt-v2v looks for drivers in %s\n" "\n" "The guest will be configured to use slower emulated devices." msgstr "" #: common/mlcustomize/inject_virtio_win.ml:175 msgid "" "there is no virtio block device driver for this version of Windows (%d.%d " "%s). virt-v2v looks for this driver in %s\n" "\n" "The guest will be configured to use a slower emulated device." msgstr "" #: common/mlcustomize/inject_virtio_win.ml:206 msgid "" "there is no virtio network driver for this version of Windows (%d.%d %s). " "virt-v2v looks for this driver in %s\n" "\n" "The guest will be configured to use a slower emulated device." msgstr "" #: input/parse_libvirt_xml.ml:545 msgid "this guest has a direct network interface which will be ignored" msgid_plural "this guest has direct network interfaces which will be ignored" msgstr[0] "" msgstr[1] "" #: input/parse_libvirt_xml.ml:527 msgid "this guest has a passthrough host device which will be ignored" msgid_plural "this guest has passthrough host devices which will be ignored" msgstr[0] "" msgstr[1] "" #: input/parse_libvirt_xml.ml:248 msgid "this guest has no non-removable disks" msgstr "" #: output/output.ml:65 msgid "this output module doesn't support copying more than %d disks" msgstr "" #: common/mlcustomize/timezone.ml:35 msgid "timezone '%s' does not exist, use a location like 'Europe/London'" msgstr "" #: common/mlcustomize/customize_run.ml:304 msgid "timezone could not be set for this type of guest" msgstr "" #: input/OVA.ml:318 msgid "unable to parse line from manifest file: %S" msgstr "" #: common/mltools/urandom.ml:37 msgid "unexpected end of file while reading /dev/urandom" msgstr "" #: input/input_libvirt.ml:196 msgid "unexpected output from the %s command" msgstr "" #: common/mltools/checksums.ml:58 msgid "unhandled checksum type ‘%s’" msgstr "" #: lib/types.ml:524 msgid "unknown --root option: %s" msgstr "" #: input/select_input.ml:51 msgid "unknown -i option: %s" msgstr "" #: output/select_output.ml:74 msgid "unknown -o option: %s" msgstr "" #: v2v/v2v.ml:164 msgid "unknown -oa option: %s" msgstr "" #: input/input_libvirt.ml:189 msgid "unknown method='%s'" msgstr "" #: input/OVF.ml:103 msgid "unknown Config:firmware value %s (expected \"bios\" or \"efi\")" msgstr "" #: lib/create_ovf.ml:446 lib/create_ovf.ml:247 msgid "unknown Windows 10 variant: %s (%s)" msgstr "" #: v2v/v2v.ml:319 in-place/in_place.ml:256 msgid "unknown block driver ‘--block-driver %s’" msgstr "" #: input/parse_domain_from_vmx.ml:415 msgid "unknown firmware value '%s', assuming BIOS" msgstr "" #: lib/create_ovf.ml:454 lib/create_ovf.ml:255 msgid "unknown guest operating system: %s %s %d.%d %s (%s)" msgstr "" #: v2v/v2v.ml:329 open/open.ml:132 inspector/inspector.ml:238 msgid "unknown input transport ‘-it %s’" msgstr "" #: input/parse_domain_from_vmx.ml:428 msgid "unknown sound device '%s' ignored" msgstr "" #: input/parse_libvirt_xml.ml:215 msgid "unknown sound model %s ignored" msgstr "" #: input/OVF.ml:156 msgid "unsupported compression in OVF: %s" msgstr "" #: input/input_vcenter_https.ml:123 msgid "" "vcenter: was not found in the XML. You need to " "upgrade to libvirt ≥ 1.2.20." msgstr "" #: input/vCenter.ml:79 msgid "vcenter: URL not found: %s" msgstr "" #: input/vCenter.ml:70 msgid "vcenter: incorrect username or password" msgstr "" #: input/vCenter.ml:72 msgid "" "vcenter: incorrect username or password. You might need to specify the " "username in the URI like this: [vpx|esx|..]://USERNAME@[etc]" msgstr "" #: input/vCenter.ml:84 msgid "vcenter: invalid response from server: %s" msgstr "" #: input/vCenter.ml:194 msgid "vcenter: no status code in output of ‘curl’ command." msgstr "" #: output/output_vdsm.ml:148 msgid "vdsm: invalid -os parameter does not contain a valid UUID: %s" msgstr "" #: output/output_openstack.ml:56 msgid "" "virt-v2v -oo server-id= [os-*=...]\n" "\n" "Specify the name or UUID of the conversion appliance using\n" "\n" " virt-v2v ... -o openstack -oo server-id=\n" "\n" "When virt-v2v runs it will attach the Cinder volumes to the\n" "conversion appliance, so this name or UUID must be the name\n" "of the virtual machine on OpenStack where virt-v2v is running.\n" "\n" "In addition, all usual OpenStack “os-*” parameters or “OS_*”\n" "environment variables can be used.\n" "\n" "Openstack “--os-*” parameters must be written as “virt-v2v -oo os-*”.\n" "\n" "For example:\n" "\n" " virt-v2v -oo os-username=\n" "\n" " equivalent to openstack: --os-username=\n" " or the environment variable: OS_USERNAME=\n" "\n" " virt-v2v -oo os-project-name=\n" "\n" " equivalent to openstack: --os-project-name=\n" " or the environment variable: OS_PROJECT_NAME=\n" "\n" "The os-* parameters and environment variables are optional.\n" msgstr "" #: input/parse_libvirt_xml.ml:189 msgid "" "virt-v2v does not support local displays, so in the " "input libvirt XML was ignored" msgstr "" #: input/select_input.ml:83 msgid "virt-v2v-in-place does not support remote libvirt URIs" msgstr "" #: input/parse_domain_from_vmx.ml:50 msgid "vmx URI path component looks incorrect" msgstr "" #: input/parse_domain_from_vmx.ml:48 msgid "vmx URI remote server name omitted" msgstr "" #: input/parse_domain_from_vmx.ml:46 msgid "vmx URI start with ‘ssh://...’" msgstr "" #: input/VMX.ml:313 msgid "vmx parser: cannot parse this line, ignoring: %s" msgstr "" #: input/VMX.ml:346 msgid "vmx parser: duplicate key '%s' ignored" msgstr "" #: output/output_openstack.ml:299 msgid "wait for cinder volume status to change to \"available\"" msgstr "" #: output/output_openstack.ml:360 msgid "waiting for cinder volume %s to attach to the conversion appliance" msgstr "" #: open/open.ml:136 msgid "you must supply the --run parameter" msgstr "" #: input/input_xen_ssh.ml:87 input/input_vddk.ml:189 msgid "‘-ic %s’ URL does not contain a host name field" msgstr "" #: input/input_vddk.ml:273 msgid "‘-io vddk-file=’ must be used exactly %d times" msgstr "" #: input/input_vddk.ml:297 msgid "" "‘-io vddk-libdir=%s’ does not point to a directory. See the virt-v2v-input-" "vmware(1) manual." msgstr "" #: output/output.ml:85 msgid "" "‘-oo compressed’ is only allowed when the output format is a local qcow2-" "format file, i.e. ‘-of qcow2’" msgstr "" #: input/input_vddk.ml:232 msgid "" "‘openssl’ command not found: automatically detecting thumbprint is not " "possible, so you must use ‘-io vddk-thumbprint=XX:XX...’" msgstr "" #: common/mltools/getopt-c.c:68 #, c-format msgid "Try ‘%s --help’ or consult %s(1) for more information.\n" msgstr "" #: common/mltools/getopt-c.c:187 #, c-format msgid "%s: ‘%s’ is not a numeric value.\n" msgstr "" #: common/mltools/getopt-c.c:193 #, c-format msgid "%s: %s: integer out of range\n" msgstr "%s: %s: მთელი მნიშვნელობა დიაპაზონს გარეთაა\n" #: common/mltools/getopt-c.c:383 #, c-format msgid "%s: ‘%s’ is not allowed for -%c; allowed values are:\n" msgstr "" #: common/mltools/getopt-c.c:386 #, c-format msgid "%s: ‘%s’ is not allowed for %s%s; allowed values are:\n" msgstr "" #: common/mltools/getopt-c.c:421 #, c-format msgid "Extra parameter on the command line: ‘%s’.\n" msgstr "" #: common/options/config.c:72 #, c-format msgid "%s: line %d: error parsing configuration file: %s" msgstr "%s: ხაზი %d: შეცდომა კონფიგურაციის ფაილის დამუშავებისას: %s" #: common/options/decrypt.c:52 #, c-format msgid "string size overflow" msgstr "სტრიქონის ზომის გადავსება" #: common/options/decrypt.c:170 #, c-format msgid "" "'clevis_luks_unlock', needed for decrypting %s, is unavailable in this " "libguestfs version" msgstr "" "'clevis_luks_unlock', რომელიც საჭიროა %s-ის გაშიფვრისთვის, libguestfs -ის ამ " "ვერსიაში ხელმიუწვდომელია" #: common/options/decrypt.c:184 #, c-format msgid "" "could not find key to open LUKS encrypted %s.\n" "\n" "Try using --key on the command line.\n" "\n" "Original error: %s (%d)" msgstr "" #: common/options/inspect.c:78 #, c-format msgid "" "%s: no operating system was found on this disk\n" "\n" "If using guestfish ‘-i’ option, remove this option and instead\n" "use the commands ‘run’ followed by ‘list-filesystems’.\n" "You can then mount filesystems you want by hand using the\n" "‘mount’ or ‘mount-ro’ command.\n" "\n" "If using guestmount ‘-i’, remove this option and choose the\n" "filesystem(s) you want to see by manually adding ‘-m’ option(s).\n" "Use ‘virt-filesystems’ to see what filesystems are available.\n" "\n" "If using other virt tools, this disk image won’t work\n" "with these tools. Use the guestfish equivalent commands\n" "(see the virt tool manual page).\n" msgstr "" #: common/options/inspect.c:99 #, c-format msgid "" "%s: multi-boot operating systems are not supported\n" "\n" "If using guestfish ‘-i’ option, remove this option and instead\n" "use the commands ‘run’ followed by ‘list-filesystems’.\n" "You can then mount filesystems you want by hand using the\n" "‘mount’ or ‘mount-ro’ command.\n" "\n" "If using guestmount ‘-i’, remove this option and choose the\n" "filesystem(s) you want to see by manually adding ‘-m’ option(s).\n" "Use ‘virt-filesystems’ to see what filesystems are available.\n" "\n" "If using other virt tools, multi-boot operating systems won’t work\n" "with these tools. Use the guestfish equivalent commands\n" "(see the virt tool manual page).\n" msgstr "" #: common/options/inspect.c:161 #, c-format msgid "%s: some filesystems could not be mounted (ignored)\n" msgstr "%s: ზოგიერთი ფაილური სისტემის მიმაგრება შეუძლებელია (იგნორირება)\n" #: common/options/inspect.c:178 #, c-format msgid "Operating system: %s\n" msgstr "ოპერაციული სისტემა: %s\n" #: common/options/inspect.c:196 #, c-format msgid "%s mounted on %s\n" msgstr "%s მიმაგრებულია %s-ზე\n" #: common/options/keys.c:63 #, c-format msgid "Enter key or passphrase (\"%s\"): " msgstr "შეიყვანეთ გასაღები ან საკვანძო ფრაზა (\"%s\"): " #: common/options/keys.c:146 #, c-format msgid "size_t overflow" msgstr "size_t -ის გადავსება" #: common/options/keys.c:193 #, c-format msgid "could not read key from user" msgstr "მომხმარებლიდან გასაღების წაკითხვის შეცდომა" #: common/options/options.c:283 #, c-format msgid "%s: ‘%s’ could not be mounted.\n" msgstr "%s: ‘%s’ მიმაგრების შეცდომა.\n" #: common/options/options.c:287 #, c-format msgid "" "%s: Check mount(8) man page to ensure options ‘%s’\n" "%s: are supported by the filesystem that is being mounted.\n" msgstr "" #: common/options/options.c:291 #, c-format msgid "%s: Did you mean to mount one of these filesystems?\n" msgstr "%s: გულისხმობდით ამ ფაილური სისტემებიდან ერთ ერთის მიმაგრებას?\n" #: common/options/options.c:304 #, c-format msgid "cannot determine the subvolume for %s: %s (%d)" msgstr "%s-ის ქვეტომის აღმოჩენის შეცდომა: %s (%d)" #: common/options/uri.c:119 #, c-format msgid "%s: --add: could not parse URI ‘%s’\n" msgstr "%s: --add: URI ‘%s’-ის დამუშავების შეცდომა\n" #: common/options/uri.c:130 #, c-format msgid "%s: %s: scheme of URI is NULL or empty\n" msgstr "%s: %s: URI-ის სქემა NULL ან ცარიელია\n" #: common/options/uri.c:138 #, c-format msgid "%s: %s: cannot have both a server name and a socket query parameter\n" msgstr "" "%s: %s: ორივეს, სერვერის სახელის და სოკეტის მოთხოვნის პარამეტრის ქონა " "შეუძლებელია\n" #: common/utils/utils.c:107 #, c-format msgid "%s exited successfully" msgstr "%s წარმატებით დასრულდა" #: common/utils/utils.c:110 #, c-format msgid "%s exited with error status %d" msgstr "%s დასრულდა შეცდომის კოდით %d" #: common/utils/utils.c:114 #, c-format msgid "%s killed by signal %d (%s)" msgstr "%s მოკვდა სიგნალით %d (%s)" #: common/utils/utils.c:118 #, c-format msgid "%s stopped by signal %d (%s)" msgstr "%s გაჩერდა სიგნალით %d (%s)" #: common/utils/utils.c:122 #, c-format msgid "%s exited for an unknown reason (status %d)" msgstr "%s გავიდა უცნობი მიზეზით (სტატუსი %d)" ================================================ FILE: po/kn.po ================================================ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR Red Hat Inc. # This file is distributed under the same license as the PACKAGE package. # # Translators: # rjones , 2011 msgid "" msgstr "" "Project-Id-Version: libguestfs 1.39.12\n" "Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?" "component=libguestfs&product=Virtualization+Tools\n" "POT-Creation-Date: 2025-02-16 17:05+0000\n" "PO-Revision-Date: 2015-02-21 10:50+0000\n" "Last-Translator: Copied by Zanata \n" "Language-Team: Kannada (http://www.transifex.com/projects/p/libguestfs/" "language/kn/)\n" "Language: kn\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Zanata 4.6.2\n" #: input/input_ova.ml:135 common/mltools/tools_utils.ml:235 msgid "%s" msgstr "" #: common/mltools/getopt.ml:73 msgid "" "%s\n" "Options:\n" msgstr "" #: common/mltools/tools_utils.ml:695 common/mlcustomize/customize_run.ml:390 msgid "%s (ignored)" msgstr "" #: common/mltools/checksums.ml:71 msgid "%s did not return any output" msgstr "" #: common/mlcustomize/customize_run.ml:183 msgid "%s does not exist in the guest" msgstr "" #: output/output_ovirt.ml:275 msgid "" "%s does not exist or is not a directory.\n" "\n" "Most likely cause: Either the %s (%s) has not been attached to any Data " "Center, or the path %s is not an %s at all.\n" "\n" "You have to attach the %s to a Data Center using the oVirt user interface " "first.\n" "\n" "If you don’t know what the %s mount point should be then you can also find " "this out through the oVirt user interface." msgstr "" #: common/mlcustomize/customize_run.ml:113 msgid "%s ignored for non-Windows guest" msgstr "" #: common/mlcustomize/customize_run.ml:186 msgid "%s is not a regular file in the guest" msgstr "" #. open/open.ml:39 #. inspector/inspector.ml:153 #. inspector/inspector.ml:40 #. in-place/in_place.ml:164 #. in-place/in_place.ml:45 #: v2v/v2v.ml:194 v2v/v2v.ml:183 v2v/v2v.ml:159 v2v/v2v.ml:44 open/open.ml:68 msgid "%s option used more than once on the command line" msgstr "" #: common/mltools/tools_utils.ml:231 common/mltools/tools_utils.ml:202 msgid "%s: %s" msgstr "" #: common/mltools/tools_utils.ml:233 msgid "%s: %s: %s" msgstr "" #: common/mltools/on_exit.ml:77 msgid "" "%s: Exiting on signal %s\n" "%!" msgstr "" #: common/mlcustomize/inject_virtio_win.ml:411 msgid "%s: cannot open virtio-win ISO file: %s" msgstr "" #: common/mlcustomize/customize_run.ml:64 msgid "%s: command exited with an error" msgstr "" #: v2v/v2v.ml:277 msgid "" "%s: convert a guest to use KVM\n" "\n" "virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi -os imported " "esx_guest\n" "\n" "virt-v2v -i libvirtxml guest-domain.xml -o local -os /var/tmp\n" "\n" "virt-v2v -i disk disk.img -o local -os /var/tmp\n" "\n" "There is a companion front-end called \"virt-p2v\" which comes as an\n" "ISO or CD image that can be booted on physical machines.\n" "\n" "A short summary of the options is given below. For detailed help please\n" "read the man page virt-v2v(1).\n" msgstr "" #: in-place/in_place.ml:217 msgid "" "%s: convert a guest to use KVM in-place\n" "\n" "Note this program modifies the guest in-place with no backup.\n" "Normally you should use virt-v2v.\n" "\n" "virt-v2v-in-place -i libvirtxml guest-domain.xml\n" "\n" "virt-v2v-in-place -i disk disk.img\n" "\n" "A short summary of the options is given below. For detailed help please\n" "read the man page virt-v2v-in-place(1).\n" msgstr "" #: input/input_vddk.ml:207 msgid "%s: enter password for ‘%s’: " msgstr "" #: common/mltools/tools_utils.ml:172 msgid "%s: error: %s" msgstr "" #: inspector/inspector.ml:198 msgid "" "%s: estimate disk space needed before virt-v2v conversion\n" "\n" "virt-v2v-inspector -i disk disk.img [-O output.xml]\n" "\n" "A short summary of the options is given below. For detailed help please\n" "read the man page virt-v2v-inspector(1).\n" msgstr "" #: open/open.ml:94 msgid "" "%s: open the virt-v2v input and run a program on it\n" "\n" "virt-v2v-open -i disk disk.img --run 'virt-inspector --format=raw @@'\n" "\n" "A short summary of the options is given below. For detailed help please\n" "read the man page virt-v2v-open(1).\n" msgstr "" #: common/mltools/tools_utils.ml:726 msgid "%s: operation timed out" msgstr "" #: input/OVA.ml:127 input/OVA.ml:121 msgid "" "%s: unsupported file format\n" "\n" "Formats which we currently understand for '-i ova' are: tar (uncompressed, " "compress with gzip or xz), zip" msgstr "" #: common/mltools/tools_utils.ml:191 msgid "%s: warning: %s" msgstr "" #. common/mlcustomize/customize_cmdline.ml:258 #: common/mlcustomize/customize_cmdline.ml:367 msgid "'CMD+ARGS'" msgstr "" #: common/mlcustomize/customize_run.ml:133 msgid "" "--append-line: line must not contain newline characters. Use the --append-" "line option multiple times to add several lines." msgstr "" #: common/mlcustomize/customize_run.ml:152 msgid "--chown: could not parse numeric UID:GID from %s:%s" msgstr "" #: common/mlcustomize/customize_run.ml:216 msgid "" "--inject-blnsvr: blnsvr.exe not found in virtio-win source that you specified" msgstr "" #: common/mlcustomize/customize_run.ml:225 msgid "" "--inject-qemu-ga: QEMU Guest Agent MSI not found in virtio-win source that " "you specified" msgstr "" #: common/mlcustomize/customize_run.ml:241 msgid "" "--inject-virtio-win: virtio drivers were not found for this Windows version " "in the virtio-win source that you specified" msgstr "" #: v2v/v2v.ml:146 inspector/inspector.ml:136 in-place/in_place.ml:143 msgid "--mac ip prefix length field is out of range" msgstr "" #: v2v/v2v.ml:340 msgid "--parallel parameter must be >= 1" msgstr "" #: input/input_disk.ml:42 msgid "-i disk: expecting a disk image (filename) on the command line" msgstr "" #: input/input_xen_ssh.ml:65 msgid "-i libvirt: expecting -ic parameter for Xen over SSH connection" msgstr "" #: input/input_vddk.ml:142 input/input_vcenter_https.ml:88 msgid "-i libvirt: expecting -ic parameter for vcenter connection" msgstr "" #: input/input_vcenter_https.ml:101 msgid "-i libvirt: expecting -ic parameter to contain vcenter server name" msgstr "" #: input/input_vcenter_https.ml:78 msgid "-i libvirt: expecting -ip passwordfile parameter for vCenter connection" msgstr "" #. input/input_vcenter_https.ml:70 #. input/input_libvirt.ml:41 #: input/input_xen_ssh.ml:57 input/input_vddk.ml:132 msgid "-i libvirt: expecting a libvirt guest name on the command line" msgstr "" #: input/input_libvirt.ml:59 msgid "-i libvirtxml: expecting a libvirt XML filename on the command line" msgstr "" #: input/input_ova.ml:243 msgid "-i ova: OVF references file ‘%s’ which was not found in the OVA archive" msgstr "" #: input/input_ova.ml:78 msgid "" "-i ova: corrupt OVA: checksum of disk %s does not match manifest (actual = " "%s, expected = %s)" msgstr "" #: input/input_ova.ml:52 msgid "-i ova: expecting an OVA file name on the command line" msgstr "" #: input/OVA.ml:361 msgid "" "-i ova: invalid OVA file: path ‘%s’ references a file outside the archive" msgstr "" #: input/input_vmx.ml:57 msgid "-i vmx: cannot use -it vddk in this input mode" msgstr "" #: input/input_vmx.ml:60 msgid "-i vmx: expecting a VMX file or ssh:// URI" msgstr "" #: input/vCenter.ml:159 msgid "" "-ip PASSWORD_FILE parameter ignored because 'user@' was not given in the URL" msgstr "" #: input/input_vddk.ml:119 msgid "-it vddk: ‘-io %s’ is not a valid input option" msgstr "" #: output/output.ml:54 msgid "-o %s: %s option cannot be used in this output mode" msgstr "" #: output/output_disk.ml:66 msgid "-o disk: output directory was not specified, use '-os /dir'" msgstr "" #: output/output_libvirt.ml:59 output/output_disk.ml:56 msgid "-o disk: unknown output option ‘-oo %s’" msgstr "" #: output/output_kubevirt.ml:81 msgid "-o kubevirt: output directory was not specified, use '-os /dir'" msgstr "" #: output/output_kubevirt.ml:91 msgid "" "-o kubevirt: the guest name must contain only lowercase alphanumeric " "characters, '-' or '.', and must start and end with an alphanumeric " "character. Rerun virt-v2v with the '-on name' option to rename it." msgstr "" #: output/output_kubevirt.ml:71 msgid "-o kubevirt: unknown output option ‘-oo %s’" msgstr "" #: output/output_libvirt.ml:120 msgid "" "-o libvirt: output pool ‘%s’ does not have /pool/target/path element. See " "virt-v2v-output-local(1)" msgstr "" #: output/output_libvirt.ml:124 msgid "" "-o libvirt: output pool ‘%s’ has type='dir' but the /pool/target/path " "element is not a local directory. See virt-v2v-output-local(1)" msgstr "" #: output/output_libvirt.ml:116 msgid "" "-o libvirt: output pool ‘%s’ is not a directory (type='dir'). See virt-v2v-" "output-local(1)" msgstr "" #: output/output_openstack.ml:88 msgid "-o openstack mode only supports -oa sparse -of raw" msgstr "" #: output/output_openstack.ml:115 msgid "-o openstack: unknown output option ‘-oo %s’" msgstr "" #: output/output_ovirt_upload.ml:97 msgid "-o ovirt-upload: -oo ovirt-cafile set more than once" msgstr "" #: output/output_ovirt_upload.ml:101 msgid "-o ovirt-upload: -oo ovirt-cluster set more than once" msgstr "" #: output/output_ovirt_upload.ml:112 msgid "-o ovirt-upload: invalid UUID for -oo ovirt-disk-uuid" msgstr "" #: output/output_ovirt_upload.ml:76 msgid "" "-o ovirt-upload: output password file was not specified, use ‘-op’ to point " "to a file which contains the password used to connect to the oVirt server" msgstr "" #: output/output_ovirt_upload.ml:83 msgid "-o ovirt-upload: output storage was not specified, use ‘-os’" msgstr "" #: output/output_ovirt_upload.ml:116 msgid "-o ovirt-upload: unknown output option ‘-oo %s’" msgstr "" #: output/output_ovirt_upload.ml:68 msgid "" "-o ovirt-upload: use ‘-oc’ to point to the oVirt server REST API URL, which " "is usually https://servername/ovirt-engine/api" msgstr "" #: output/output_ovirt.ml:51 msgid "-o ovirt: -os option was not specified" msgstr "" #: output/output_qemu.ml:72 msgid "-o qemu: output directory was not specified, use '-os /dir'" msgstr "" #: output/output_qemu.ml:63 msgid "-o qemu: unknown output option ‘-oo %s’" msgstr "" #: output/output_vdsm.ml:102 msgid "-o vdsm: -oo vdsm-image-uuid was not specified" msgstr "" #: output/output_vdsm.ml:81 msgid "-o vdsm: -oo vdsm-ovf-output set more than once" msgstr "" #: output/output_vdsm.ml:77 msgid "-o vdsm: -oo vdsm-vm-uuid set more than once" msgstr "" #: output/output_vdsm.ml:110 msgid "-o vdsm: -os option was not specified" msgstr "" #: output/output_vdsm.ml:97 msgid "-o vdsm: either -oo vdsm-vol-uuid or -oo vdsm-vm-uuid was not specified" msgstr "" #: output/output_vdsm.ml:90 msgid "-o vdsm: unknown output option ‘-oo %s’" msgstr "" #: output/output_vdsm.ml:74 msgid "-o vdsm: unknown vdsm-compat level ‘%s’" msgstr "" #. output/output_kubevirt.ml:84 #. output/output_disk.ml:68 #: output/output_vdsm.ml:112 output/output_qemu.ml:74 msgid "-os %s: output directory does not exist or is not a directory" msgstr "" #: input/parse_libvirt_xml.ml:279 msgid " missing 'method' attribute, ignoring" msgstr "" #: input/parse_libvirt_xml.ml:291 msgid " unknown fail='%s' attribute, ignoring" msgstr "" #: input/parse_libvirt_xml.ml:370 input/parse_libvirt_xml.ml:317 msgid " was ignored" msgstr "" #: input/parse_libvirt_xml.ml:338 msgid " with was ignored" msgstr "" #: input/parse_libvirt_xml.ml:365 msgid " with was ignored" msgstr "" #: input/parse_libvirt_xml.ml:299 msgid " element with no type attribute ignored" msgstr "" #: input/parse_libvirt_xml.ml:167 msgid " in the input libvirt XML was ignored" msgstr "" #: input/parse_libvirt_xml.ml:414 msgid "" " was ignored because the device name could not be recognized" msgstr "" #: input/input_vddk.ml:176 msgid "" " was not found in the output of ‘virsh dumpxml \"%s\"’. The " "most likely reason is that libvirt is too old, try upgrading libvirt to ≥ " "3.7." msgstr "" #: common/mlcustomize/customize_cmdline.ml:305 msgid "Add package(s) to install" msgstr "" #: common/mlcustomize/customize_cmdline.ml:270 msgid "Add package(s) to install at first boot" msgstr "" #: common/mlcustomize/customize_cmdline.ml:175 msgid "Append line(s) to the file" msgstr "" #: common/mlcustomize/customize_run.ml:137 msgid "Appending line to %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:197 msgid "Change the owner user and group ID of a file or directory" msgstr "" #: common/mlcustomize/customize_cmdline.ml:186 msgid "Change the permissions of a file" msgstr "" #: common/mlcustomize/customize_run.ml:155 msgid "Changing owner of %s to %d:%d" msgstr "" #: common/mlcustomize/customize_run.ml:141 msgid "Changing permissions of %s to %s" msgstr "" #: input/input_libvirt.ml:174 input/input_libvirt.ml:157 msgid "Checking %s checksum of disk %d/%d" msgstr "" #: common/mlcustomize/customize_cmdline.ml:488 msgid "Compatibility option doing nothing" msgstr "" #: common/mlcustomize/customize_cmdline.ml:219 msgid "Copy files in disk image" msgstr "" #: common/mlcustomize/customize_cmdline.ml:397 msgid "Copy local files or directories from a tarball into image" msgstr "" #: common/mlcustomize/customize_cmdline.ml:230 msgid "Copy local files or directories into image" msgstr "" #: common/mlcustomize/customize_run.ml:168 msgid "Copying (in image): %s to %s" msgstr "" #: v2v/v2v.ml:518 msgid "Copying disk %d/%d" msgstr "" #: common/mlcustomize/customize_run.ml:172 msgid "Copying: %s to %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:322 msgid "Create a directory" msgstr "" #: common/mlcustomize/customize_cmdline.ml:316 msgid "Create symbolic links" msgstr "" #: v2v/v2v.ml:567 msgid "Creating output metadata" msgstr "" #: common/mlcustomize/customize_cmdline.ml:321 msgid "DIR" msgstr "" #: common/mlcustomize/customize_cmdline.ml:236 msgid "Delete a file or directory" msgstr "" #: common/mlcustomize/customize_run.ml:176 msgid "Deleting: %s" msgstr "" #: common/mltools/getopt.ml:225 msgid "Display brief help" msgstr "" #: common/mltools/tools_utils.ml:385 msgid "Display version and exit" msgstr "" #: common/mlcustomize/customize_cmdline.ml:482 msgid "Do not relabel files with correct SELinux labels" msgstr "" #: v2v/v2v.ml:248 inspector/inspector.ml:177 in-place/in_place.ml:190 msgid "Don't trim filesystems before conversion" msgstr "" #: common/mltools/tools_utils.ml:389 msgid "Don’t print progress messages" msgstr "" #: common/mltools/tools_utils.ml:420 msgid "Don’t turn off echo for passphrases" msgstr "" #: common/mlcustomize/customize_cmdline.ml:247 msgid "Edit file using Perl expression" msgstr "" #: common/mlcustomize/customize_run.ml:180 msgid "Editing: %s" msgstr "" #: common/mltools/tools_utils.ml:386 msgid "Enable libguestfs debugging messages" msgstr "" #: common/mltools/tools_utils.ml:387 msgid "Enable tracing of libguestfs calls" msgstr "" #: output/output_ovirt.ml:77 msgid "Export Storage Domain" msgstr "" #: open/open.ml:88 msgid "External command to run" msgstr "" #. common/mlcustomize/customize_cmdline.ml:408 #. common/mlcustomize/customize_cmdline.ml:373 #: common/mlcustomize/customize_cmdline.ml:414 msgid "FILE" msgstr "" #: common/mlcustomize/customize_cmdline.ml:455 msgid "FILE:CONTENT" msgstr "" #: common/mlcustomize/customize_cmdline.ml:444 msgid "FILE:DEST" msgstr "" #: common/mlcustomize/customize_cmdline.ml:242 msgid "FILE:EXPR" msgstr "" #: common/mlcustomize/customize_cmdline.ml:170 msgid "FILE:LINE" msgstr "" #: common/mlcustomize/customize_cmdline.ml:203 msgid "FILENAME" msgstr "" #. in-place/in_place.ml:378 #: v2v/v2v.ml:571 open/open.ml:220 inspector/inspector.ml:334 msgid "Finishing off" msgstr "" #: common/mlcustomize/customize_cmdline.ml:275 msgid "HOSTNAME" msgstr "" #: v2v/v2v.ml:254 inspector/inspector.ml:183 in-place/in_place.ml:194 msgid "How to choose root filesystem" msgstr "" #: common/mltools/tools_utils.ml:177 msgid "" "If reporting bugs, run %s with debugging enabled and include the complete " "output:\n" "\n" " %s -v -x [...]" msgstr "" #: common/mlcustomize/customize_cmdline.ml:386 msgid "Inject a public key into the guest" msgstr "" #: common/mlcustomize/customize_cmdline.ml:282 msgid "Inject the Balloon Server into a Windows guest" msgstr "" #: common/mlcustomize/customize_cmdline.ml:288 msgid "Inject the QEMU Guest Agent into a Windows guest" msgstr "" #: common/mlcustomize/customize_cmdline.ml:294 msgid "Inject virtio-win drivers into a Windows guest" msgstr "" #. in-place/in_place.ml:176 #: v2v/v2v.ml:216 open/open.ml:80 inspector/inspector.ml:165 msgid "Input format" msgstr "" #: input/input_vddk.ml:77 msgid "" "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" "\n" "Refer to nbdkit-vddk-plugin(1) and the VDDK documentation for further\n" "information on these settings.\n" msgstr "" #: v2v/v2v.ml:222 open/open.ml:86 inspector/inspector.ml:171 msgid "Input transport" msgstr "" #: common/mlcustomize/customize_run.ml:191 msgid "Installing firstboot command: %s" msgstr "" #: common/mlcustomize/customize_run.ml:195 msgid "Installing firstboot packages: %s" msgstr "" #: common/mlcustomize/customize_run.ml:202 msgid "Installing firstboot script: %s" msgstr "" #: common/mlcustomize/customize_run.ml:248 msgid "Installing packages: %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:225 msgid "LOCALPATH:REMOTEDIR" msgstr "" #. in-place/in_place.ml:174 #: v2v/v2v.ml:214 open/open.ml:78 inspector/inspector.ml:163 msgid "Libvirt URI" msgstr "" #: common/mlcustomize/customize_run.ml:255 msgid "Linking: %s -> %s" msgstr "" #. common/mlcustomize/customize_cmdline.ml:287 #. common/mlcustomize/customize_cmdline.ml:281 #: common/mlcustomize/customize_cmdline.ml:293 msgid "METHOD" msgstr "" #: common/mltools/tools_utils.ml:426 msgid "Make output machine readable" msgstr "" #: common/mlcustomize/customize_run.ml:260 msgid "Making directory: %s" msgstr "" #: v2v/v2v.ml:226 inspector/inspector.ml:173 in-place/in_place.ml:182 msgid "Map NIC to network or bridge or assign static IP" msgstr "" #: v2v/v2v.ml:210 inspector/inspector.ml:159 in-place/in_place.ml:170 msgid "Map bridge ‘in’ to ‘out’" msgstr "" #: v2v/v2v.ml:230 inspector/inspector.ml:179 in-place/in_place.ml:186 msgid "Map network ‘in’ to ‘out’" msgstr "" #: common/mlcustomize/customize_cmdline.ml:333 msgid "Move files in disk image" msgstr "" #: common/mlcustomize/customize_run.ml:264 msgid "Moving: %s -> %s" msgstr "" #. input/input_vcenter_https.ml:45 #. input/input_ova.ml:35 #. input/input_libvirt.ml:233 #. input/input_libvirt.ml:221 #. input/input_disk.ml:35 #: input/input_xen_ssh.ml:43 input/input_vmx.ml:36 msgid "No input options can be used in this mode.\n" msgstr "" #: output/output_ovirt.ml:40 output/output_null.ml:38 #: output/output_glance.ml:40 msgid "No output options can be used in this mode.\n" msgstr "" #: output/output_vdsm.ml:166 msgid "OVF (metadata) directory (%s) does not exist or is not a directory" msgstr "" #: common/mlcustomize/firstboot.ml:268 msgid "" "One of rhsrvany.exe or pvvxsvc.exe is missing in %s. One of them is " "required in order to install Windows firstboot scripts. You can get one by " "building rhsrvany (https://github.com/rwmjones/rhsrvany)" msgstr "" #: v2v/v2v.ml:236 msgid "Output hypervisor connection" msgstr "" #: output/output_ovirt_upload.ml:51 msgid "" "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" "\n" "You can override the UUIDs of the disks, instead of using autogenerated " "UUIDs\n" "after their uploads (if you do, you must supply one for each disk):\n" "\n" " -oo ovirt-disk-uuid=UUID Disk UUID\n" msgstr "" #: output/output_qemu.ml:44 msgid "" "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" msgstr "" #: output/output_vdsm.ml:43 msgid "" "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" "\n" "For 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" msgstr "" #: output/output_disk.ml:44 msgid "" "Output options that can be used with -o disk:\n" "\n" " -oo compressed Compress the output file (used only with -of qcow2)\n" msgstr "" #: output/output_kubevirt.ml:51 msgid "" "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" msgstr "" #: output/output_libvirt.ml:47 msgid "" "Output options that can be used with -o libvirt:\n" "\n" " -oo compressed Compress the output file (used only with -of qcow2)\n" msgstr "" #. common/mlcustomize/customize_cmdline.ml:235 #: common/mlcustomize/customize_cmdline.ml:420 msgid "PATH" msgstr "" #: common/mlcustomize/customize_cmdline.ml:181 msgid "PERMISSIONS:FILE" msgstr "" #. common/mlcustomize/customize_cmdline.ml:300 #. common/mlcustomize/customize_cmdline.ml:265 #: common/mlcustomize/customize_cmdline.ml:427 msgid "PKG,PKG.." msgstr "" #: v2v/v2v.ml:263 in-place/in_place.ml:203 msgid "Prefer 'virtio-blk' or 'virtio-scsi'" msgstr "" #: v2v/v2v.ml:252 in-place/in_place.ml:192 msgid "Print source and stop" msgstr "" #: common/mlcustomize/customize_cmdline.ml:208 msgid "Read customize commands from file" msgstr "" #: common/mltools/tools_utils.ml:421 msgid "Read passphrases from stdin" msgstr "" #: common/mlcustomize/customize_cmdline.ml:421 msgid "Recursively truncate all files in directory" msgstr "" #: common/mlcustomize/customize_run.ml:298 msgid "Recursively truncating: %s" msgstr "" #: v2v/v2v.ml:240 msgid "Rename guest when converting" msgstr "" #: common/mlcustomize/customize_cmdline.ml:259 msgid "Run command at first guest boot" msgstr "" #: common/mlcustomize/customize_cmdline.ml:368 msgid "Run command in disk image" msgstr "" #: common/mlcustomize/customize_cmdline.ml:253 msgid "Run script at first guest boot" msgstr "" #: common/mlcustomize/customize_cmdline.ml:362 msgid "Run script in disk image" msgstr "" #: common/mlcustomize/customize_cmdline.ml:409 msgid "Run touch on a file" msgstr "" #: v2v/v2v.ml:250 msgid "Run up to N instances of nbdcopy in parallel" msgstr "" #: open/open.ml:188 msgid "Running external command" msgstr "" #: common/mlcustomize/customize_run.ml:307 msgid "Running touch: %s" msgstr "" #. common/mlcustomize/customize_run.ml:159 #: common/mlcustomize/customize_run.ml:274 msgid "Running: %s" msgstr "" #. common/mlcustomize/customize_cmdline.ml:252 #: common/mlcustomize/customize_cmdline.ml:361 msgid "SCRIPT" msgstr "" #: common/mltools/tools_utils.ml:422 #: common/mlcustomize/customize_cmdline.ml:351 msgid "SELECTOR" msgstr "" #: common/mlcustomize/customize_run.ml:363 msgid "SELinux relabelling" msgstr "" #. common/mlcustomize/customize_cmdline.ml:214 #: common/mlcustomize/customize_cmdline.ml:328 msgid "SOURCE:DEST" msgstr "" #: common/mlcustomize/customize_run.ml:287 msgid "SSH key could not be injected for this type of guest" msgstr "" #: common/mlcustomize/customize_run.ml:284 msgid "SSH key inject: %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:374 msgid "Scrub a file" msgstr "" #: common/mlcustomize/customize_cmdline.ml:466 msgid "Scrub build log file" msgstr "" #: common/mlcustomize/customize_run.ml:374 msgid "Scrubbing the log file" msgstr "" #: common/mlcustomize/customize_run.ml:279 msgid "Scrubbing: %s" msgstr "" #: v2v/v2v.ml:208 msgid "Set bandwidth dynamically from file" msgstr "" #: v2v/v2v.ml:206 msgid "Set bandwidth to bits per sec" msgstr "" #. in-place/in_place.ml:172 #: v2v/v2v.ml:212 open/open.ml:76 inspector/inspector.ml:161 msgid "Set input mode (default: libvirt)" msgstr "" #: v2v/v2v.ml:228 inspector/inspector.ml:175 in-place/in_place.ml:184 msgid "Set memory size" msgstr "" #: v2v/v2v.ml:256 inspector/inspector.ml:185 in-place/in_place.ml:196 msgid "Set number of vCPUs" msgstr "" #. in-place/in_place.ml:178 #: v2v/v2v.ml:218 open/open.ml:82 inspector/inspector.ml:167 msgid "Set option for input mode" msgstr "" #: v2v/v2v.ml:242 msgid "Set option for output mode" msgstr "" #: v2v/v2v.ml:234 msgid "Set output allocation mode" msgstr "" #: v2v/v2v.ml:238 msgid "Set output format" msgstr "" #: v2v/v2v.ml:232 msgid "Set output mode (default: libvirt)" msgstr "" #: v2v/v2v.ml:246 msgid "Set output storage location" msgstr "" #: common/mlcustomize/customize_cmdline.ml:476 msgid "Set password crypto" msgstr "" #: common/mltools/tools_utils.ml:430 msgid "Set program name" msgstr "" #: common/mlcustomize/customize_cmdline.ml:356 msgid "Set root password" msgstr "" #: common/mlcustomize/customize_cmdline.ml:403 msgid "Set the default timezone" msgstr "" #: common/mlcustomize/customize_cmdline.ml:276 msgid "Set the hostname" msgstr "" #: inspector/inspector.ml:181 in-place/in_place.ml:188 msgid "Set the output filename" msgstr "" #: common/mlcustomize/customize_cmdline.ml:345 msgid "Set user password" msgstr "" #: common/mlcustomize/customize_run.ml:75 msgid "Setting a random seed" msgstr "" #: common/mlcustomize/customize_run.ml:354 msgid "Setting passwords" msgstr "" #: common/mlcustomize/password.ml:113 msgid "Setting random password of %s to %s" msgstr "" #: common/mlcustomize/customize_run.ml:207 msgid "Setting the hostname: %s" msgstr "" #: common/mlcustomize/customize_run.ml:90 msgid "Setting the machine ID in %s" msgstr "" #: common/mlcustomize/customize_run.ml:302 msgid "Setting the timezone: %s" msgstr "" #: v2v/v2v.ml:481 msgid "Setting up the destination: %s" msgstr "" #. in-place/in_place.ml:342 #: v2v/v2v.ml:457 open/open.ml:184 inspector/inspector.ml:310 msgid "Setting up the source: %s" msgstr "" #: v2v/v2v.ml:463 in-place/in_place.ml:348 msgid "Source guest information (--print-source option):\n" msgstr "" #: common/mltools/tools_utils.ml:422 msgid "Specify a LUKS key" msgstr "" #: common/mlcustomize/customize_cmdline.ml:392 msgid "TARFILE:REMOTEDIR" msgstr "" #: common/mlcustomize/customize_cmdline.ml:311 msgid "TARGET:LINK[:LINK..]" msgstr "" #: common/mlcustomize/customize_cmdline.ml:402 msgid "TIMEZONE" msgstr "" #: v2v/v2v.ml:200 msgid "" "The --in-place option has been replaced by the ‘virt-v2v-in-place’ program" msgstr "" #: output/output_qemu.ml:251 msgid "" "The Virt machine has no support for IDE. Please report a bug for virt-v2v -- " "refer to virt-v2v(1) section \"BUGS\"." msgstr "" #: output/output_qemu.ml:272 msgid "" "The Virt machine has no support for floppies. Please report a bug for virt-" "v2v -- refer to virt-v2v(1) section \"BUGS\"." msgstr "" #: lib/create_ovf.ml:785 msgid "" "This guest required a password for connection to its display, but this is " "not supported by oVirt. Therefore the converted guest’s display will not " "require a separate password to connect." msgstr "" #: input/input_vmx.ml:111 msgid "" "This transport does not support guests with snapshots. Either collapse the " "snapshots for this guest and try the conversion again, or use one of the " "alternate conversion methods described in virt-v2v-input-vmware(1) section " "\"NOTES\"." msgstr "" #: common/mlcustomize/customize_cmdline.ml:415 msgid "Truncate a file to zero size" msgstr "" #: common/mlcustomize/customize_run.ml:294 msgid "Truncating: %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:192 msgid "UID:GID:PATH" msgstr "" #: common/mlcustomize/customize_cmdline.ml:339 msgid "USER:SELECTOR" msgstr "" #: common/mlcustomize/customize_cmdline.ml:380 msgid "USER[:SELECTOR]" msgstr "" #: common/mlcustomize/customize_cmdline.ml:432 msgid "Uninstall package(s)" msgstr "" #: common/mlcustomize/customize_run.ml:311 msgid "Uninstalling packages: %s" msgstr "" #: common/mlcustomize/customize_run.ml:290 msgid "Unpack tar file: %s to %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:438 msgid "Update packages" msgstr "" #: common/mlcustomize/customize_run.ml:316 msgid "Updating packages" msgstr "" #: common/mlcustomize/customize_cmdline.ml:449 msgid "Upload local file to destination" msgstr "" #: common/mlcustomize/customize_run.ml:321 msgid "Uploading: %s to %s" msgstr "" #: common/mltools/tools_utils.ml:391 msgid "Use ANSI colour sequences even if not tty" msgstr "" #. in-place/in_place.ml:180 #: v2v/v2v.ml:220 open/open.ml:84 inspector/inspector.ml:169 msgid "Use password from file to connect to input hypervisor" msgstr "" #: v2v/v2v.ml:244 msgid "Use password from file to connect to output hypervisor" msgstr "" #: v2v/v2v.ml:224 msgid "Use virt-v2v-in-place instead" msgstr "" #: common/mltools/tools_utils.ml:392 msgid "Wrap log messages even if not tty" msgstr "" #: common/mlcustomize/customize_cmdline.ml:460 msgid "Write file" msgstr "" #: common/mlcustomize/customize_run.ml:346 msgid "Writing: %s" msgstr "" #: lib/YAML.ml:167 msgid "" "YAML block contains newline character. This should not happen, please " "report a bug against virt-v2v." msgstr "" #: output/output_libvirt.ml:96 msgid "" "a libvirt domain called ‘%s’ already exists on the target.\n" "\n" "If using virt-v2v directly, use the ‘-on’ option to select a different name. " "Or delete the existing domain on the target using the ‘virsh undefine’ " "command.\n" "\n" "If using virt-p2v, select a different ‘Name’ in the ‘Target properties’. Or " "delete the existing domain on the target using the ‘virsh undefine’ command." msgstr "" #: common/mlcustomize/append_line.ml:44 msgid "append_line: %s is not a file" msgstr "" #: input/input_libvirt.ml:206 msgid "" "bad checksum for disk %d/%d\n" "Expected checksum: %s\n" "Actual checksum: %s" msgstr "" #: lib/libvirt_utils.ml:59 msgid "cannot find libvirt domain ‘%s’: %s" msgstr "" #: lib/libvirt_utils.ml:96 msgid "" "cannot find libvirt pool ‘%s’: %s\n" "\n" "Use ‘virsh pool-list --all’ to list all available pools, and ‘virsh pool-" "dumpxml ’ to display details about a particular pool.\n" "\n" "To set the pool which virt-v2v uses, add the ‘-os ’ option." msgstr "" #: lib/libvirt_utils.ml:110 msgid "cannot find libvirt volume ‘%s’: %s" msgstr "" #: common/mlcustomize/firstboot.ml:235 msgid "" "cannot finish firstboot installation by running ‘%s’ because host cpu (%s) " "and guest arch (%s) are not compatible. The firstboot service may not run " "at boot." msgstr "" #: output/output_libvirt.ml:180 msgid "cannot get libvirt domain capabilities: %s" msgstr "" #: output/output_libvirt.ml:85 msgid "cannot get libvirt hypervisor capabilities: %s" msgstr "" #: v2v/v2v.ml:105 inspector/inspector.ml:95 in-place/in_place.ml:102 msgid "cannot parse --mac \"%s\" parameter" msgstr "" #: v2v/v2v.ml:129 inspector/inspector.ml:119 in-place/in_place.ml:126 msgid "cannot parse --mac ip %s: doesn’t look like “%s” is an IP address" msgstr "" #: v2v/v2v.ml:143 inspector/inspector.ml:133 in-place/in_place.ml:140 msgid "cannot parse --mac ip prefix length field as an integer: %s" msgstr "" #: common/mlcustomize/guest_packages.ml:29 msgid "" "cannot use ‘%s’ because no package manager has been detected for this guest " "OS.\n" "\n" "If this guest OS is a common one with ordinary package management then this " "may have been caused by a failure of libguestfs inspection.\n" "\n" "For OSes such as Windows that lack package management, this is not " "possible. Try using one of the ‘--firstboot*’ flags instead (described in " "the virt-customize(1) manual)." msgstr "" #: output/output_ovirt.ml:91 msgid "" "cannot write files to the NFS server as %d:%d, even though we appear to be " "running as root. This probably means the NFS client or idmapd is not " "configured properly.\n" "\n" "You will have to chown the files that virt-v2v creates after the run, " "otherwise oVirt will not be able to import the VM." msgstr "" #: output/output_ovirt.ml:99 msgid "" "cannot write files to the NFS server as %d:%d. You might want to stop virt-" "v2v (^C) and rerun it as root." msgstr "" #: common/mlcustomize/customize_cmdline.ml:508 msgid "command '%s' cannot be used in command files, see the man page" msgstr "" #: common/mlcustomize/customize_cmdline.ml:525 msgid "command '%s' not valid, see the man page" msgstr "" #: common/mldrivers/linux_bootloaders.ml:318 msgid "could not add grub2 serial console (ignored)" msgstr "" #: input/ssh.ml:52 msgid "" "could not copy the VMX file from the remote server, see earlier error " "messages" msgstr "" #: output/output_libvirt.ml:211 msgid "" "could not define libvirt domain: %s.\n" "The libvirt XML is still available in ‘%s’. Try running ‘virsh -c %s define " "%s’ yourself instead." msgstr "" #: common/mldrivers/linux_bootloaders.ml:221 msgid "could not determine a way to update the configuration of Grub2" msgstr "" #: input/input_vddk.ml:243 msgid "" "could not fetch thumbprint from the server, you mus use ‘-io vddk-" "thumbprint=XX:XX...’" msgstr "" #: common/mldrivers/linux_bootloaders.ml:376 msgid "could not find bootloader mount point (%s): %s" msgstr "" #: common/mldrivers/windows_drivers.ml:91 msgid "" "could not find registry entry " "HKEY_LOCAL_MACHINE\\SYSTEM\\DriverDatabase\\DeviceIds in this Windows " "guest. It may be either a very old or very new version of Windows that we " "cannot process." msgstr "" #: common/mlcustomize/firstboot.ml:232 msgid "" "could not finish firstboot installation by running ‘%s’ because the command " "failed: %s" msgstr "" #. input/input_vcenter_https.ml:94 #: input/select_input.ml:66 input/input_xen_ssh.ml:71 input/input_vddk.ml:151 msgid "could not parse '-ic %s'. Original error message was: %s" msgstr "" #: input/parse_libvirt_xml.ml:407 input/parse_libvirt_xml.ml:54 msgid "could not parse device name ‘%s’ from the source libvirt XML" msgstr "" #: input/OVF.ml:168 msgid "could not parse disk rasd:HostResource from OVF document" msgstr "" #: input/input_ova.ml:98 msgid "could not parse ovf:Name from OVF document" msgstr "" #: output/output_ovirt.ml:247 msgid "" "could not read the %s specified by the '-os %s' parameter on the command " "line. Is it really an OVirt %s? The original error is: %s" msgstr "" #: common/mldrivers/linux_bootloaders.ml:336 msgid "" "could not rebuild grub2 configuration file (%s). This may mean that grub " "output will not be sent to the serial port, but otherwise should be " "harmless. Original error message: %s" msgstr "" #: output/output_libvirt.ml:156 msgid "could not refresh libvirt pool ‘%s’: %s" msgstr "" #: common/mldrivers/linux_bootloaders.ml:320 msgid "could not remove grub2 serial console (ignored)" msgstr "" #: common/mltools/registry.ml:93 msgid "" "decode_utf16le: Windows UTF16-LE string contains non-7-bit characters. This " "is a bug in %s, please report it." msgstr "" #: common/mltools/registry.ml:87 msgid "" "decode_utf16le: Windows string does not appear to be in UTF16-LE encoding. " "This could be a bug in %s." msgstr "" #: common/mldrivers/linux_bootloaders.ml:126 msgid "didn't find grub entry for kernel %s" msgstr "" #: input/input_disk.ml:150 msgid "disks on the command line have mixed formats" msgstr "" #: input/parse_libvirt_xml.ml:194 msgid "display in the input libvirt XML was ignored" msgstr "" #: output/output_qemu.ml:147 msgid "don’t know how to convert UEFI guests for architecture %s" msgstr "" #: common/mldrivers/linux.ml:158 msgid "don’t know how to find file owner using %s" msgstr "" #: common/mldrivers/linux.ml:89 msgid "don’t know how to get list of files from package using %s" msgstr "" #: common/mltools/curl.ml:82 msgid "downloading %s" msgstr "" #: lib/networks.ml:84 msgid "" "duplicate --mac parameter. Duplicate mappings specified for MAC address %s." msgstr "" #: lib/networks.ml:102 msgid "" "duplicate -b/--bridge parameter. Duplicate mappings specified for bridge %s." msgstr "" #: lib/networks.ml:108 msgid "duplicate -b/--bridge parameter. Only one default mapping is allowed." msgstr "" #: lib/networks.ml:90 msgid "" "duplicate -n/--network parameter. Duplicate mappings specified for network " "%s." msgstr "" #: lib/networks.ml:96 msgid "duplicate -n/--network parameter. Only one default mapping is allowed." msgstr "" #: input/OVF.ml:143 msgid "error parsing disk fileRef" msgstr "" #: input/input_ova.ml:124 msgid "error uncompressing %s, see earlier error messages" msgstr "" #: input/OVA.ml:210 input/OVA.ml:112 msgid "error unpacking %s, see earlier error messages" msgstr "" #: common/mltools/tools_utils.ml:248 msgid "exception: %s" msgstr "" #: common/mltools/tools_utils.ml:455 msgid "exited with error %d" msgstr "" #: lib/utils.ml:34 msgid "exited with non-zero error code %d" msgstr "" #: input/input_disk.ml:147 msgid "expected >= 1 disk name on the command line" msgstr "" #: common/mltools/xpath_helpers.ml:36 msgid "" "expecting XML expression to return an integer (expression: %s, matching " "string: %s)" msgstr "" #: common/mltools/tools_utils.ml:440 msgid "external command" msgstr "" #: output/output_ovirt_upload.ml:265 msgid "failed server prechecks, see earlier errors" msgstr "" #: output/output_ovirt_upload.ml:507 msgid "failed to create virtual machine, see earlier errors" msgstr "" #: output/output_ovirt_upload.ml:479 msgid "failed to finalize the transfers, see earlier errors" msgstr "" #: common/mldrivers/linux_bootloaders.ml:208 msgid "failed to find grub2-mkconfig binary (but Grub2 was detected on guest)" msgstr "" #: input/OVA.ml:461 msgid "failed to parse line returned by tar: %S" msgstr "" #: output/output_ovirt_upload.ml:394 msgid "failed to start transfer, see earlier errors" msgstr "" #: output/output_ovirt_upload.ml:311 msgid "failed vmchecks, see earlier errors" msgstr "" #: common/mltools/tools_utils.ml:239 msgid "failure: %s" msgstr "" #: input/input_ova.ml:134 msgid "file ‘%s’ not found in the ova" msgstr "" #: common/mlcustomize/firstboot.ml:143 msgid "" "firstboot: unknown version for old firstboot.service file %s (md5=%s), it " "will not be removed" msgstr "" #: common/mltools/tools_utils.ml:258 msgid "generated by %s %s" msgstr "" #: output/create_libvirt_xml.ml:39 msgid "get_osinfo_id: unknown guest operating system: %s" msgstr "" #: output/output_glance.ml:66 msgid "" "glance: glance client is not installed or set up correctly. You may need to " "set environment variables or source a script to enable authentication. See " "preceding messages for details." msgstr "" #: output/output_glance.ml:139 msgid "glance: image upload to glance failed, see earlier errors" msgstr "" #: common/mlcustomize/firstboot.ml:386 common/mlcustomize/firstboot.ml:164 msgid "guest type %s is not supported" msgstr "" #: common/mlcustomize/firstboot.ml:413 msgid "guest type %s/%s is not supported" msgstr "" #: common/mltools/tools_utils.ml:749 msgid "" "host (%s/%s) and guest (%s/%s) are not compatible, so you cannot use command " "line options that involve running commands in the guest. Use --firstboot " "scripts instead." msgstr "" #: common/mlcustomize/customize_run.ml:209 msgid "hostname could not be set for this type of guest" msgstr "" #: common/mldrivers/linux_kernels.ml:342 msgid "ignoring kernel %s in bootloader, as it does not exist." msgstr "" #: output/output_vdsm.ml:160 msgid "image directory (%s) does not exist or is not a directory" msgstr "" #: input/parse_libvirt_xml.ml:81 msgid "in the libvirt XML metadata, is missing or empty" msgstr "" #: input/parse_libvirt_xml.ml:87 msgid "in the libvirt XML metadata, is missing or empty" msgstr "" #: input/input_vcenter_https.ml:52 input/input_libvirt.ml:107 msgid "in-place mode does not work with HTTP source" msgstr "" #: input/input_vddk.ml:146 msgid "in-place mode does not work with VDDK source" msgstr "" #: input/input_vmx.ml:43 msgid "in-place mode does not work with VMX source" msgstr "" #: input/input_xen_ssh.ml:50 msgid "in-place mode does not work with Xen over SSH source" msgstr "" #: output/output_kubevirt.ml:116 msgid "" "incorrect number of '-oo disk' parameters. This guest has %d disks, but the " "parameter was used %d times." msgstr "" #: input/input_xen_ssh.ml:119 msgid "" "input from xen over ssh does not support disks stored on remote block " "devices. See virt-v2v-input-xen(1) section \"Xen or ssh conversions from " "block devices\"." msgstr "" #. in-place/in_place.ml:397 #: v2v/v2v.ml:590 open/open.ml:238 inspector/inspector.ml:353 msgid "" "insufficient free space in the conversion server temporary directory %s " "(%s).\n" "\n" "Either free up space in that directory, or set the LIBGUESTFS_CACHEDIR " "environment variable to point to another directory with more than 1GB of " "free space.\n" "\n" "See also the virt-v2v(1) manual, section \"Minimum free space check in the " "host\"." msgstr "" #: common/mltools/tools_utils.ml:246 msgid "internal error: Not_found exception was thrown" msgstr "" #: common/mltools/tools_utils.ml:243 msgid "internal error: assertion failed at %s, line %d, char %d" msgstr "" #: common/mltools/tools_utils.ml:241 msgid "internal error: invalid argument: %s" msgstr "" #: common/mldrivers/linux.ml:128 msgid "internal error: is_file_owned: dpkg command returned no output" msgstr "" #: common/mldrivers/linux.ml:133 msgid "internal error: is_file_owned: unexpected output from dpkg command: %s" msgstr "" #: common/mldrivers/linux_bootloaders.ml:130 msgid "internal error: regular expression did not match ‘%s’" msgstr "" #: v2v/v2v.ml:548 msgid "internal error: wait returned unexpected process ID %d status \"%s\"" msgstr "" #: v2v/v2v.ml:114 inspector/inspector.ml:104 in-place/in_place.ml:111 msgid "invalid --mac ip option" msgstr "" #: v2v/v2v.ml:98 inspector/inspector.ml:88 in-place/in_place.ml:95 msgid "invalid -b/--bridge parameter" msgstr "" #: v2v/v2v.ml:90 inspector/inspector.ml:80 in-place/in_place.ml:87 msgid "invalid -n/--network parameter" msgstr "" #: input/parse_domain_from_vmx.ml:402 msgid "invalid cpuid.coresPerSocket < number of vCPUs" msgstr "" #. common/mlcustomize/customize_cmdline.ml:153 #. common/mlcustomize/customize_cmdline.ml:145 #: common/mlcustomize/customize_cmdline.ml:161 msgid "invalid format for '--%s' parameter, see the man page" msgstr "" #: common/mltools/tools_utils.ml:359 msgid "invalid format string for --machine-readable: %s" msgstr "" #: lib/utils.ml:279 msgid "invalid input filename (%s)" msgstr "" #: input/OVA.ml:445 msgid "invalid offset returned by tar: %S" msgstr "" #: common/mltools/tools_utils.ml:374 msgid "invalid output fd for --machine-readable: %s" msgstr "" #: common/mltools/tools_utils.ml:376 msgid "invalid output for --machine-readable: %s" msgstr "" #: common/mltools/tools_utils.ml:368 msgid "invalid output stream for --machine-readable: %s" msgstr "" #: common/mlcustomize/password.ml:73 msgid "invalid password selector ‘%s’; see the man page" msgstr "" #: input/OVA.ml:450 msgid "invalid size returned by tar: %S" msgstr "" #: common/mlcustomize/ssh_key.ml:45 msgid "invalid ssh-inject selector ‘%s’; see the man page" msgstr "" #: input/OVF.ml:82 msgid "invalid vmw:CoresPerSocket (%d) ignored" msgstr "" #: input/OVF.ml:88 msgid "invalid vmw:CoresPerSocket < number of cores" msgstr "" #: common/mldrivers/linux_bootloaders.ml:114 msgid "kernel %s is not under grub tree %s" msgstr "" #: common/mltools/tools_utils.ml:539 common/mltools/tools_utils.ml:458 msgid "killed by signal %d" msgstr "" #: common/mltools/tools_utils.ml:237 msgid "libguestfs error: %s" msgstr "" #: lib/libvirt_utils.ml:72 msgid "" "libvirt domain ‘%s’ is running or paused. Converting a live guest will " "result in corrupted output. However this is safe if you're converting from a " "snapshot" msgstr "" #: common/mlcustomize/customize_run.ml:47 msgid "log file %s: %s (ignored)" msgstr "" #: input/OVA.ml:147 msgid "" "making OVA directory public readable to work around libvirt bug https://" "bugzilla.redhat.com/1045069" msgstr "" #: input/input_ova.ml:86 msgid "manifest has a checksum for non-existent file %s (ignored)" msgstr "" #: common/mlcustomize/customize_cmdline.ml:472 msgid "md5|sha256|sha512" msgstr "" #: common/mlcustomize/customize_run.ml:119 msgid "method '%s' is no longer supported" msgstr "" #: common/mltools/JSON_parser.ml:39 msgid "missing value for the key ‘%s’" msgstr "" #: input/OVA.ml:276 msgid "more than one .ovf file was found in %s" msgstr "" #: common/mltools/JSON_parser.ml:34 msgid "more than value for the key ‘%s’" msgstr "" #: output/output_ovirt.ml:222 msgid "" "mount command failed, see earlier errors.\n" "\n" "This probably means you didn't specify the right %s path [-os %s], or else " "you need to rerun virt-v2v as root." msgstr "" #: common/mlcustomize/customize_run.ml:103 msgid "" "multiple --root-password/--password options set the password for user ‘%s’ " "twice" msgstr "" #: input/input_vddk.ml:319 msgid "" "nbdkit VDDK plugin is not installed or not working. It is required if you " "want to use VDDK.\n" "\n" "It 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 ’/%s/libvixDiskLib.so.?’.\n" "\n" "See also the virt-v2v-input-vmware(1) manual." msgstr "" #: input/input_vddk.ml:313 msgid "" "nbdkit VDDK plugin is not installed or not working. It is required if you " "want to use VDDK.\n" "\n" "The 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" "\n" "See also the virt-v2v-input-vmware(1) manual." msgstr "" #: lib/nbdkit.ml:223 msgid "nbdkit did not start up. See previous debugging messages for problems." msgstr "" #: lib/nbdkit.ml:225 msgid "" "nbdkit did not start up. There may be errors printed by nbdkit above.\n" "\n" "If the messages above are not sufficient to diagnose the problem then add " "the ‘virt-v2v -v -x’ options and examine the debugging output carefully." msgstr "" #: input/nbdkit_ssh.ml:36 input/nbdkit_curl.ml:32 input/input_vddk.ml:283 msgid "nbdkit is not installed or not working" msgstr "" #: input/input_disk.ml:92 msgid "" "nbdkit is not installed or not working. It is required to use ‘-i disk’." msgstr "" #: input/input_libvirt.ml:68 msgid "" "nbdkit is not installed or not working. It is required to use ‘-i libvirt|" "libvirtxml’." msgstr "" #: output/output.ml:178 output/output.ml:77 msgid "" "nbdkit is not installed or not working. It is required to use ‘-o disk’." msgstr "" #: output/output_null.ml:57 msgid "" "nbdkit is not installed or not working. It is required to use ‘-o null’." msgstr "" #: output/output_ovirt_upload.ml:163 msgid "" "nbdkit is not installed or not working. It is required to use ‘-o ovirt-" "upload’. See the virt-v2v-output-ovirt(1) manual." msgstr "" #: input/input_vddk.ml:285 msgid "nbdkit must be >= 1.45.11 for input from VDDK" msgstr "" #: output/output_ovirt_upload.ml:176 msgid "" "nbdkit python plugin is not installed or not working. It is required if you " "want to use ‘-o ovirt-upload’.\n" "\n" "See also the virt-v2v-output-ovirt(1) manual." msgstr "" #: output/output_ovirt_upload.ml:190 msgid "" "nbdkit was compiled without SELinux support. You will have to recompile " "nbdkit with libselinux-devel installed, or else set SELinux to Permissive " "mode while doing the conversion." msgstr "" #. input/input_libvirt.ml:76 #. input/input_disk.ml:98 #: input/nbdkit_ssh.ml:42 input/nbdkit_curl.ml:38 input/input_vddk.ml:289 msgid "nbdkit-cow-filter is not installed or not working" msgstr "" #: input/nbdkit_curl.ml:35 msgid "nbdkit-curl-plugin is not installed" msgstr "" #. input/input_disk.ml:96 #: output/output.ml:181 output/output.ml:80 input/input_libvirt.ml:72 msgid "nbdkit-file-plugin is not installed or not working" msgstr "" #: input/input_libvirt.ml:74 msgid "nbdkit-nbd-plugin is not installed or not working" msgstr "" #: output/output_null.ml:60 msgid "nbdkit-null-plugin is not installed or not working" msgstr "" #: input/nbdkit_ssh.ml:39 msgid "nbdkit-ssh-plugin is not installed" msgstr "" #: input/input_vddk.ml:287 msgid "nbdkit-vddk-plugin is not installed" msgstr "" #: lib/nbdkit.ml:56 msgid "nbdkit: unexpected version in --dump-config: %s" msgstr "" #. input/input_vcenter_https.ml:49 #. input/input_ova.ml:46 #. input/input_libvirt.ml:35 #. input/input_disk.ml:39 #: input/input_xen_ssh.ml:47 input/input_vmx.ml:40 msgid "no -io (input options) are allowed here" msgstr "" #: output/output_ovirt.ml:44 output/output_null.ml:42 #: output/output_glance.ml:44 msgid "no -oo (output options) are allowed here" msgstr "" #: input/OVA.ml:273 msgid "no .ovf file was found in %s" msgstr "" #: common/mldrivers/linux_bootloaders.ml:402 msgid "no bootloader detected" msgstr "" #: input/parse_domain_from_vmx.ml:359 msgid "no displayName key found in VMX file" msgstr "" #: input/OVF.ml:148 msgid "no href in ovf:File (id=%s)" msgstr "" #: common/mldrivers/linux_kernels.ml:194 msgid "no initrd was found in /boot matching %s %s." msgstr "" #: common/mldrivers/linux_kernels.ml:317 msgid "" "no installed kernel packages were found.\n" "\n" "This probably indicates that %s was unable to inspect this guest properly." msgstr "" #: common/mldrivers/linux_kernels.ml:354 msgid "" "no kernels were found in the bootloader configuration.\n" "\n" "This probably indicates that %s was unable to parse the bootloader " "configuration of this guest." msgstr "" #: output/python_script.ml:55 msgid "no python binary called ‘%s’ can be found on the $PATH" msgstr "" #: input/select_input.ml:106 msgid "" "no support for remote libvirt connections to '-ic %s'. The conversion may " "fail when it tries to read the source disks." msgstr "" #: lib/create_ovf.ml:1027 msgid "" "oVirt cannot emulate ‘%s’ sound cards. This sound card will be dropped from " "the output." msgstr "" #: lib/create_ovf.ml:875 lib/create_ovf.ml:512 msgid "oVirt does not support the output format ‘%s’, only raw or qcow2" msgstr "" #: output/output_openstack.ml:120 msgid "openstack: -oo server-id= not present" msgstr "" #: output/output_openstack.ml:338 msgid "" "openstack: failed to attach cinder volume to VM, see earlier error messages" msgstr "" #: output/output_openstack.ml:291 msgid "openstack: failed to create a cinder volume, see earlier error messages" msgstr "" #: output/output_openstack.ml:304 msgid "" "openstack: failed to query cinder volume status, see earlier error messages" msgstr "" #: output/output_openstack.ml:442 msgid "" "openstack: failed to set image properties on cinder volume, see earlier " "error messages" msgstr "" #: output/output_openstack.ml:199 msgid "" "openstack: precheck failed, there may be a problem with authentication, see " "earlier error messages" msgstr "" #: output/output_openstack.ml:311 msgid "" "openstack: unknown volume status \"%s\": expected \"creating\" or " "\"available\"" msgstr "" #: output/output.ml:133 msgid "output mode only supports raw or qcow2 format (format: %s)" msgstr "" #: input/OVF.ml:263 msgid "" "ova disk has an unknown VMware controller type (%d), please report this as a " "bug supplying the *.ovf file extracted from the ova" msgstr "" #: input/OVF.ml:259 msgid "" "ova disk has no parent controller, please report this as a bug supplying the " "*.ovf file extracted from the ova" msgstr "" #: output/output_ovirt_upload.ml:367 msgid "" "ovirt-upload: -of %s: Only output format ‘raw’ or ‘qcow2’ is supported. If " "the input is in a different format then force one of these output formats by " "adding either ‘-of raw’ or ‘-of qcow2’ on the command line." msgstr "" #: common/mlcustomize/password.ml:51 msgid "" "password-crypto: unknown algorithm %s, use \"md5\", \"sha256\", \"sha512\" " "or \"yescrypt\"" msgstr "" #: common/mlcustomize/password.ml:197 msgid "" "password: using insecure md5 password encryption for guest of type %s " "version %d.%d.\n" "If this is incorrect, use --password-crypto option and file a bug." msgstr "" #: common/mlcustomize/customize_run.ml:359 msgid "passwords could not be set for this type of guest" msgstr "" #: lib/qemuNBD.ml:125 msgid "" "qemu-nbd did not start up. See previous debugging messages for problems." msgstr "" #: lib/qemuNBD.ml:127 msgid "" "qemu-nbd did not start up. There may be errors printed by qemu-nbd above.\n" "\n" "If the messages above are not sufficient to diagnose the problem then add " "the ‘virt-v2v -v -x’ options and examine the debugging output carefully." msgstr "" #: lib/qemuNBD.ml:47 msgid "qemu-nbd: unexpected version in --version: %s" msgstr "" #: common/mlcustomize/customize_run.ml:77 msgid "random seed could not be set for this type of guest" msgstr "" #: input/parse_domain_from_vmx.ml:44 msgid "remote vmx ‘%s’ could not be parsed as a URI" msgstr "" #. common/mlcustomize/inject_virtio_win.ml:357 #. common/mlcustomize/inject_virtio_win.ml:352 #: common/mlcustomize/inject_virtio_win.ml:362 msgid "" "root directory ‘/’ is missing from the virtio-win directory or ISO.\n" "\n" "This should not happen and may indicate that virtio-win or virt-v2v is " "broken in some way. Please report this as a bug with a full debug log." msgstr "" #: common/mltools/tools_utils.ml:417 common/options/keys.c:264 #, c-format msgid "selector '%s': invalid TYPE" msgstr "" #: common/mltools/tools_utils.ml:409 common/options/keys.c:254 #, c-format msgid "selector '%s': missing FILENAME, or too many fields" msgstr "" #: common/mltools/tools_utils.ml:399 common/options/keys.c:232 #, c-format msgid "selector '%s': missing ID" msgstr "" #: common/mltools/tools_utils.ml:404 common/options/keys.c:245 #, c-format msgid "selector '%s': missing KEY_STRING, or too many fields" msgstr "" #: common/mltools/tools_utils.ml:401 common/options/keys.c:239 #, c-format msgid "selector '%s': missing TYPE" msgstr "" #: common/mltools/tools_utils.ml:413 common/options/keys.c:262 #, c-format msgid "selector '%s': too many fields" msgstr "" #: lib/utils.ml:35 msgid "signalled by signal %d" msgstr "" #: common/mlcustomize/guest_packages.ml:40 msgid "" "sorry, ‘%s’ with the ‘%s’ package manager has not been implemented yet.\n" "\n" "You can work around this by using one of the ‘--run*’ or ‘--firstboot*’ " "options instead (described in the virt-customize(1) manual)." msgstr "" #: common/mlcustomize/ssh_key.ml:57 msgid "ssh-inject: $HOME environment variable is not set" msgstr "" #: common/mlcustomize/ssh_key.ml:93 msgid "ssh-inject: key is an empty string" msgstr "" #: common/mlcustomize/ssh_key.ml:66 msgid "ssh-inject: no public key file found in %s" msgstr "" #: common/mlcustomize/ssh_key.ml:83 msgid "ssh-inject: public key file (%s) is empty" msgstr "" #: common/mlcustomize/ssh_key.ml:112 msgid "ssh-inject: the user %s does not exist on the guest" msgstr "" #. common/mltools/tools_utils.ml:461 #: lib/utils.ml:36 common/mltools/tools_utils.ml:542 msgid "stopped by signal %d" msgstr "" #: output/changeuid.ml:58 msgid "subprocess exited with non-zero error code %d" msgstr "" #: output/changeuid.ml:60 msgid "subprocess signalled or stopped by signal %d" msgstr "" #: lib/utils.ml:33 msgid "success" msgstr "" #: output/create_libvirt_xml.ml:297 msgid "" "target hypervisor does not support floppy devices, but floppy devices were " "found in the source guest" msgstr "" #: output/output_ovirt_upload.ml:156 msgid "" "the Python module ‘ovirtsdk4’ could not be loaded, is it installed? See " "previous messages for problems." msgstr "" #: output/output_ovirt_upload.ml:453 msgid "the cluster ‘%s’ does not support the architecture %s but %s" msgstr "" #: common/mlcustomize/customize_run.ml:59 msgid "" "the command may have failed because the network is disabled. Try either " "removing ‘--no-network’ or adding ‘--network’ on the command line." msgstr "" #: common/mltools/JSON_parser.ml:84 msgid "the key ‘%s’ was not found in a list of objects" msgstr "" #: output/output_ovirt_upload.ml:288 msgid "" "the number of ‘-oo ovirt-disk-uuid’ parameters passed on the command line " "has to match the number of guest disk images (for this guest: %d)" msgstr "" #: output/output_vdsm.ml:133 msgid "" "the number of ‘-oo vdsm-image-uuid’ and ‘-oo vdsm-vol-uuid’ parameters " "passed on the command line has to match the number of guest disk images (for " "this guest: %d)" msgstr "" #: output/output_libvirt.ml:239 msgid "the target hypervisor does not support a %s KVM guest" msgstr "" #: common/mltools/JSON_parser.ml:78 msgid "the value for key ‘%s’ is not a string as expected" msgstr "" #: common/mltools/JSON_parser.ml:50 msgid "the value for the key ‘%s’ is not a bool" msgstr "" #: common/mltools/JSON_parser.ml:45 msgid "the value for the key ‘%s’ is not a string" msgstr "" #: common/mltools/JSON_parser.ml:70 msgid "the value for the key ‘%s’ is not an integer" msgstr "" #: common/mltools/JSON_parser.ml:55 msgid "the value for the key ‘%s’ is not an object" msgstr "" #: common/mltools/JSON_parser.ml:59 msgid "the value is not an object" msgstr "" #: common/mltools/JSON_parser.ml:35 msgid "the value of the key ‘%s’ is not an object" msgstr "" #: lib/create_ovf.ml:519 msgid "" "the virtual size of the input disk %d is not an exact multiple of 512 " "bytes. The virtual size is: %Ld.\n" "\n" "This probably means something unexpected is going on, so please file a bug " "about this issue." msgstr "" #: output/output_openstack.ml:144 msgid "" "the ‘%s’ program is not available. It is needed to communicate with " "OpenStack." msgstr "" #: output/output_ovirt.ml:265 msgid "" "there are multiple UUIDs in the %s (%s). This is unexpected, and may be a " "bug in virt-v2v or OVirt." msgstr "" #: output/output_ovirt.ml:262 msgid "there are no UUIDs in the %s (%s). Is it really an OVirt %s?" msgstr "" #: common/mlcustomize/inject_virtio_win.ml:153 msgid "" "there are no virtio drivers available for this version of Windows (%d.%d %s " "%s %s). virt-v2v looks for drivers in %s\n" "\n" "The guest will be configured to use slower emulated devices." msgstr "" #: common/mlcustomize/inject_virtio_win.ml:175 msgid "" "there is no virtio block device driver for this version of Windows (%d.%d " "%s). virt-v2v looks for this driver in %s\n" "\n" "The guest will be configured to use a slower emulated device." msgstr "" #: common/mlcustomize/inject_virtio_win.ml:206 msgid "" "there is no virtio network driver for this version of Windows (%d.%d %s). " "virt-v2v looks for this driver in %s\n" "\n" "The guest will be configured to use a slower emulated device." msgstr "" #: input/parse_libvirt_xml.ml:545 msgid "this guest has a direct network interface which will be ignored" msgid_plural "this guest has direct network interfaces which will be ignored" msgstr[0] "" #: input/parse_libvirt_xml.ml:527 msgid "this guest has a passthrough host device which will be ignored" msgid_plural "this guest has passthrough host devices which will be ignored" msgstr[0] "" #: input/parse_libvirt_xml.ml:248 msgid "this guest has no non-removable disks" msgstr "" #: output/output.ml:65 msgid "this output module doesn't support copying more than %d disks" msgstr "" #: common/mlcustomize/timezone.ml:35 msgid "timezone '%s' does not exist, use a location like 'Europe/London'" msgstr "" #: common/mlcustomize/customize_run.ml:304 msgid "timezone could not be set for this type of guest" msgstr "" #: input/OVA.ml:318 msgid "unable to parse line from manifest file: %S" msgstr "" #: common/mltools/urandom.ml:37 msgid "unexpected end of file while reading /dev/urandom" msgstr "" #: input/input_libvirt.ml:196 msgid "unexpected output from the %s command" msgstr "" #: common/mltools/checksums.ml:58 msgid "unhandled checksum type ‘%s’" msgstr "" #: lib/types.ml:524 msgid "unknown --root option: %s" msgstr "" #: input/select_input.ml:51 msgid "unknown -i option: %s" msgstr "" #: output/select_output.ml:74 msgid "unknown -o option: %s" msgstr "" #: v2v/v2v.ml:164 msgid "unknown -oa option: %s" msgstr "" #: input/input_libvirt.ml:189 msgid "unknown method='%s'" msgstr "" #: input/OVF.ml:103 msgid "unknown Config:firmware value %s (expected \"bios\" or \"efi\")" msgstr "" #: lib/create_ovf.ml:446 lib/create_ovf.ml:247 msgid "unknown Windows 10 variant: %s (%s)" msgstr "" #: v2v/v2v.ml:319 in-place/in_place.ml:256 msgid "unknown block driver ‘--block-driver %s’" msgstr "" #: input/parse_domain_from_vmx.ml:415 msgid "unknown firmware value '%s', assuming BIOS" msgstr "" #: lib/create_ovf.ml:454 lib/create_ovf.ml:255 msgid "unknown guest operating system: %s %s %d.%d %s (%s)" msgstr "" #: v2v/v2v.ml:329 open/open.ml:132 inspector/inspector.ml:238 msgid "unknown input transport ‘-it %s’" msgstr "" #: input/parse_domain_from_vmx.ml:428 msgid "unknown sound device '%s' ignored" msgstr "" #: input/parse_libvirt_xml.ml:215 msgid "unknown sound model %s ignored" msgstr "" #: input/OVF.ml:156 msgid "unsupported compression in OVF: %s" msgstr "" #: input/input_vcenter_https.ml:123 msgid "" "vcenter: was not found in the XML. You need to " "upgrade to libvirt ≥ 1.2.20." msgstr "" #: input/vCenter.ml:79 msgid "vcenter: URL not found: %s" msgstr "" #: input/vCenter.ml:70 msgid "vcenter: incorrect username or password" msgstr "" #: input/vCenter.ml:72 msgid "" "vcenter: incorrect username or password. You might need to specify the " "username in the URI like this: [vpx|esx|..]://USERNAME@[etc]" msgstr "" #: input/vCenter.ml:84 msgid "vcenter: invalid response from server: %s" msgstr "" #: input/vCenter.ml:194 msgid "vcenter: no status code in output of ‘curl’ command." msgstr "" #: output/output_vdsm.ml:148 msgid "vdsm: invalid -os parameter does not contain a valid UUID: %s" msgstr "" #: output/output_openstack.ml:56 msgid "" "virt-v2v -oo server-id= [os-*=...]\n" "\n" "Specify the name or UUID of the conversion appliance using\n" "\n" " virt-v2v ... -o openstack -oo server-id=\n" "\n" "When virt-v2v runs it will attach the Cinder volumes to the\n" "conversion appliance, so this name or UUID must be the name\n" "of the virtual machine on OpenStack where virt-v2v is running.\n" "\n" "In addition, all usual OpenStack “os-*” parameters or “OS_*”\n" "environment variables can be used.\n" "\n" "Openstack “--os-*” parameters must be written as “virt-v2v -oo os-*”.\n" "\n" "For example:\n" "\n" " virt-v2v -oo os-username=\n" "\n" " equivalent to openstack: --os-username=\n" " or the environment variable: OS_USERNAME=\n" "\n" " virt-v2v -oo os-project-name=\n" "\n" " equivalent to openstack: --os-project-name=\n" " or the environment variable: OS_PROJECT_NAME=\n" "\n" "The os-* parameters and environment variables are optional.\n" msgstr "" #: input/parse_libvirt_xml.ml:189 msgid "" "virt-v2v does not support local displays, so in the " "input libvirt XML was ignored" msgstr "" #: input/select_input.ml:83 msgid "virt-v2v-in-place does not support remote libvirt URIs" msgstr "" #: input/parse_domain_from_vmx.ml:50 msgid "vmx URI path component looks incorrect" msgstr "" #: input/parse_domain_from_vmx.ml:48 msgid "vmx URI remote server name omitted" msgstr "" #: input/parse_domain_from_vmx.ml:46 msgid "vmx URI start with ‘ssh://...’" msgstr "" #: input/VMX.ml:313 msgid "vmx parser: cannot parse this line, ignoring: %s" msgstr "" #: input/VMX.ml:346 msgid "vmx parser: duplicate key '%s' ignored" msgstr "" #: output/output_openstack.ml:299 msgid "wait for cinder volume status to change to \"available\"" msgstr "" #: output/output_openstack.ml:360 msgid "waiting for cinder volume %s to attach to the conversion appliance" msgstr "" #: open/open.ml:136 msgid "you must supply the --run parameter" msgstr "" #: input/input_xen_ssh.ml:87 input/input_vddk.ml:189 msgid "‘-ic %s’ URL does not contain a host name field" msgstr "" #: input/input_vddk.ml:273 msgid "‘-io vddk-file=’ must be used exactly %d times" msgstr "" #: input/input_vddk.ml:297 msgid "" "‘-io vddk-libdir=%s’ does not point to a directory. See the virt-v2v-input-" "vmware(1) manual." msgstr "" #: output/output.ml:85 msgid "" "‘-oo compressed’ is only allowed when the output format is a local qcow2-" "format file, i.e. ‘-of qcow2’" msgstr "" #: input/input_vddk.ml:232 msgid "" "‘openssl’ command not found: automatically detecting thumbprint is not " "possible, so you must use ‘-io vddk-thumbprint=XX:XX...’" msgstr "" #: common/mltools/getopt-c.c:68 #, c-format msgid "Try ‘%s --help’ or consult %s(1) for more information.\n" msgstr "" #: common/mltools/getopt-c.c:187 #, c-format msgid "%s: ‘%s’ is not a numeric value.\n" msgstr "" #: common/mltools/getopt-c.c:193 #, c-format msgid "%s: %s: integer out of range\n" msgstr "%s: %s: ಪೂರ್ಣಾಂಕವು ವ್ಯಾಪ್ತಿಯ ಹೊರಗಿದೆ\n" #: common/mltools/getopt-c.c:383 #, c-format msgid "%s: ‘%s’ is not allowed for -%c; allowed values are:\n" msgstr "" #: common/mltools/getopt-c.c:386 #, c-format msgid "%s: ‘%s’ is not allowed for %s%s; allowed values are:\n" msgstr "" #: common/mltools/getopt-c.c:421 #, c-format msgid "Extra parameter on the command line: ‘%s’.\n" msgstr "" #: common/options/config.c:72 #, c-format msgid "%s: line %d: error parsing configuration file: %s" msgstr "" #: common/options/decrypt.c:52 #, c-format msgid "string size overflow" msgstr "" #: common/options/decrypt.c:170 #, c-format msgid "" "'clevis_luks_unlock', needed for decrypting %s, is unavailable in this " "libguestfs version" msgstr "" #: common/options/decrypt.c:184 #, c-format msgid "" "could not find key to open LUKS encrypted %s.\n" "\n" "Try using --key on the command line.\n" "\n" "Original error: %s (%d)" msgstr "" #: common/options/inspect.c:78 #, c-format msgid "" "%s: no operating system was found on this disk\n" "\n" "If using guestfish ‘-i’ option, remove this option and instead\n" "use the commands ‘run’ followed by ‘list-filesystems’.\n" "You can then mount filesystems you want by hand using the\n" "‘mount’ or ‘mount-ro’ command.\n" "\n" "If using guestmount ‘-i’, remove this option and choose the\n" "filesystem(s) you want to see by manually adding ‘-m’ option(s).\n" "Use ‘virt-filesystems’ to see what filesystems are available.\n" "\n" "If using other virt tools, this disk image won’t work\n" "with these tools. Use the guestfish equivalent commands\n" "(see the virt tool manual page).\n" msgstr "" #: common/options/inspect.c:99 #, c-format msgid "" "%s: multi-boot operating systems are not supported\n" "\n" "If using guestfish ‘-i’ option, remove this option and instead\n" "use the commands ‘run’ followed by ‘list-filesystems’.\n" "You can then mount filesystems you want by hand using the\n" "‘mount’ or ‘mount-ro’ command.\n" "\n" "If using guestmount ‘-i’, remove this option and choose the\n" "filesystem(s) you want to see by manually adding ‘-m’ option(s).\n" "Use ‘virt-filesystems’ to see what filesystems are available.\n" "\n" "If using other virt tools, multi-boot operating systems won’t work\n" "with these tools. Use the guestfish equivalent commands\n" "(see the virt tool manual page).\n" msgstr "" #: common/options/inspect.c:161 #, c-format msgid "%s: some filesystems could not be mounted (ignored)\n" msgstr "" #: common/options/inspect.c:178 #, c-format msgid "Operating system: %s\n" msgstr "" #: common/options/inspect.c:196 #, c-format msgid "%s mounted on %s\n" msgstr "" #: common/options/keys.c:63 #, c-format msgid "Enter key or passphrase (\"%s\"): " msgstr "" #: common/options/keys.c:146 #, c-format msgid "size_t overflow" msgstr "" #: common/options/keys.c:193 #, c-format msgid "could not read key from user" msgstr "" #: common/options/options.c:283 #, c-format msgid "%s: ‘%s’ could not be mounted.\n" msgstr "" #: common/options/options.c:287 #, c-format msgid "" "%s: Check mount(8) man page to ensure options ‘%s’\n" "%s: are supported by the filesystem that is being mounted.\n" msgstr "" #: common/options/options.c:291 #, c-format msgid "%s: Did you mean to mount one of these filesystems?\n" msgstr "" #: common/options/options.c:304 #, c-format msgid "cannot determine the subvolume for %s: %s (%d)" msgstr "" #: common/options/uri.c:119 #, c-format msgid "%s: --add: could not parse URI ‘%s’\n" msgstr "" #: common/options/uri.c:130 #, c-format msgid "%s: %s: scheme of URI is NULL or empty\n" msgstr "" #: common/options/uri.c:138 #, c-format msgid "%s: %s: cannot have both a server name and a socket query parameter\n" msgstr "" #: common/utils/utils.c:107 #, c-format msgid "%s exited successfully" msgstr "" #: common/utils/utils.c:110 #, c-format msgid "%s exited with error status %d" msgstr "" #: common/utils/utils.c:114 #, c-format msgid "%s killed by signal %d (%s)" msgstr "" #: common/utils/utils.c:118 #, c-format msgid "%s stopped by signal %d (%s)" msgstr "" #: common/utils/utils.c:122 #, c-format msgid "%s exited for an unknown reason (status %d)" msgstr "" ================================================ FILE: po/ml.po ================================================ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR Red Hat Inc. # This file is distributed under the same license as the PACKAGE package. # # Translators: # rjones , 2011 msgid "" msgstr "" "Project-Id-Version: libguestfs 1.39.12\n" "Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?" "component=libguestfs&product=Virtualization+Tools\n" "POT-Creation-Date: 2025-02-16 17:05+0000\n" "PO-Revision-Date: 2015-02-21 10:50+0000\n" "Last-Translator: Copied by Zanata \n" "Language-Team: Malayalam (http://www.transifex.com/projects/p/libguestfs/" "language/ml/)\n" "Language: ml\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Zanata 4.6.2\n" #: input/input_ova.ml:135 common/mltools/tools_utils.ml:235 msgid "%s" msgstr "" #: common/mltools/getopt.ml:73 msgid "" "%s\n" "Options:\n" msgstr "" #: common/mltools/tools_utils.ml:695 common/mlcustomize/customize_run.ml:390 msgid "%s (ignored)" msgstr "" #: common/mltools/checksums.ml:71 msgid "%s did not return any output" msgstr "" #: common/mlcustomize/customize_run.ml:183 msgid "%s does not exist in the guest" msgstr "" #: output/output_ovirt.ml:275 msgid "" "%s does not exist or is not a directory.\n" "\n" "Most likely cause: Either the %s (%s) has not been attached to any Data " "Center, or the path %s is not an %s at all.\n" "\n" "You have to attach the %s to a Data Center using the oVirt user interface " "first.\n" "\n" "If you don’t know what the %s mount point should be then you can also find " "this out through the oVirt user interface." msgstr "" #: common/mlcustomize/customize_run.ml:113 msgid "%s ignored for non-Windows guest" msgstr "" #: common/mlcustomize/customize_run.ml:186 msgid "%s is not a regular file in the guest" msgstr "" #. open/open.ml:39 #. inspector/inspector.ml:153 #. inspector/inspector.ml:40 #. in-place/in_place.ml:164 #. in-place/in_place.ml:45 #: v2v/v2v.ml:194 v2v/v2v.ml:183 v2v/v2v.ml:159 v2v/v2v.ml:44 open/open.ml:68 msgid "%s option used more than once on the command line" msgstr "" #: common/mltools/tools_utils.ml:231 common/mltools/tools_utils.ml:202 msgid "%s: %s" msgstr "" #: common/mltools/tools_utils.ml:233 msgid "%s: %s: %s" msgstr "" #: common/mltools/on_exit.ml:77 msgid "" "%s: Exiting on signal %s\n" "%!" msgstr "" #: common/mlcustomize/inject_virtio_win.ml:411 msgid "%s: cannot open virtio-win ISO file: %s" msgstr "" #: common/mlcustomize/customize_run.ml:64 msgid "%s: command exited with an error" msgstr "" #: v2v/v2v.ml:277 msgid "" "%s: convert a guest to use KVM\n" "\n" "virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi -os imported " "esx_guest\n" "\n" "virt-v2v -i libvirtxml guest-domain.xml -o local -os /var/tmp\n" "\n" "virt-v2v -i disk disk.img -o local -os /var/tmp\n" "\n" "There is a companion front-end called \"virt-p2v\" which comes as an\n" "ISO or CD image that can be booted on physical machines.\n" "\n" "A short summary of the options is given below. For detailed help please\n" "read the man page virt-v2v(1).\n" msgstr "" #: in-place/in_place.ml:217 msgid "" "%s: convert a guest to use KVM in-place\n" "\n" "Note this program modifies the guest in-place with no backup.\n" "Normally you should use virt-v2v.\n" "\n" "virt-v2v-in-place -i libvirtxml guest-domain.xml\n" "\n" "virt-v2v-in-place -i disk disk.img\n" "\n" "A short summary of the options is given below. For detailed help please\n" "read the man page virt-v2v-in-place(1).\n" msgstr "" #: input/input_vddk.ml:207 msgid "%s: enter password for ‘%s’: " msgstr "" #: common/mltools/tools_utils.ml:172 msgid "%s: error: %s" msgstr "" #: inspector/inspector.ml:198 msgid "" "%s: estimate disk space needed before virt-v2v conversion\n" "\n" "virt-v2v-inspector -i disk disk.img [-O output.xml]\n" "\n" "A short summary of the options is given below. For detailed help please\n" "read the man page virt-v2v-inspector(1).\n" msgstr "" #: open/open.ml:94 msgid "" "%s: open the virt-v2v input and run a program on it\n" "\n" "virt-v2v-open -i disk disk.img --run 'virt-inspector --format=raw @@'\n" "\n" "A short summary of the options is given below. For detailed help please\n" "read the man page virt-v2v-open(1).\n" msgstr "" #: common/mltools/tools_utils.ml:726 msgid "%s: operation timed out" msgstr "" #: input/OVA.ml:127 input/OVA.ml:121 msgid "" "%s: unsupported file format\n" "\n" "Formats which we currently understand for '-i ova' are: tar (uncompressed, " "compress with gzip or xz), zip" msgstr "" #: common/mltools/tools_utils.ml:191 msgid "%s: warning: %s" msgstr "" #. common/mlcustomize/customize_cmdline.ml:258 #: common/mlcustomize/customize_cmdline.ml:367 msgid "'CMD+ARGS'" msgstr "" #: common/mlcustomize/customize_run.ml:133 msgid "" "--append-line: line must not contain newline characters. Use the --append-" "line option multiple times to add several lines." msgstr "" #: common/mlcustomize/customize_run.ml:152 msgid "--chown: could not parse numeric UID:GID from %s:%s" msgstr "" #: common/mlcustomize/customize_run.ml:216 msgid "" "--inject-blnsvr: blnsvr.exe not found in virtio-win source that you specified" msgstr "" #: common/mlcustomize/customize_run.ml:225 msgid "" "--inject-qemu-ga: QEMU Guest Agent MSI not found in virtio-win source that " "you specified" msgstr "" #: common/mlcustomize/customize_run.ml:241 msgid "" "--inject-virtio-win: virtio drivers were not found for this Windows version " "in the virtio-win source that you specified" msgstr "" #: v2v/v2v.ml:146 inspector/inspector.ml:136 in-place/in_place.ml:143 msgid "--mac ip prefix length field is out of range" msgstr "" #: v2v/v2v.ml:340 msgid "--parallel parameter must be >= 1" msgstr "" #: input/input_disk.ml:42 msgid "-i disk: expecting a disk image (filename) on the command line" msgstr "" #: input/input_xen_ssh.ml:65 msgid "-i libvirt: expecting -ic parameter for Xen over SSH connection" msgstr "" #: input/input_vddk.ml:142 input/input_vcenter_https.ml:88 msgid "-i libvirt: expecting -ic parameter for vcenter connection" msgstr "" #: input/input_vcenter_https.ml:101 msgid "-i libvirt: expecting -ic parameter to contain vcenter server name" msgstr "" #: input/input_vcenter_https.ml:78 msgid "-i libvirt: expecting -ip passwordfile parameter for vCenter connection" msgstr "" #. input/input_vcenter_https.ml:70 #. input/input_libvirt.ml:41 #: input/input_xen_ssh.ml:57 input/input_vddk.ml:132 msgid "-i libvirt: expecting a libvirt guest name on the command line" msgstr "" #: input/input_libvirt.ml:59 msgid "-i libvirtxml: expecting a libvirt XML filename on the command line" msgstr "" #: input/input_ova.ml:243 msgid "-i ova: OVF references file ‘%s’ which was not found in the OVA archive" msgstr "" #: input/input_ova.ml:78 msgid "" "-i ova: corrupt OVA: checksum of disk %s does not match manifest (actual = " "%s, expected = %s)" msgstr "" #: input/input_ova.ml:52 msgid "-i ova: expecting an OVA file name on the command line" msgstr "" #: input/OVA.ml:361 msgid "" "-i ova: invalid OVA file: path ‘%s’ references a file outside the archive" msgstr "" #: input/input_vmx.ml:57 msgid "-i vmx: cannot use -it vddk in this input mode" msgstr "" #: input/input_vmx.ml:60 msgid "-i vmx: expecting a VMX file or ssh:// URI" msgstr "" #: input/vCenter.ml:159 msgid "" "-ip PASSWORD_FILE parameter ignored because 'user@' was not given in the URL" msgstr "" #: input/input_vddk.ml:119 msgid "-it vddk: ‘-io %s’ is not a valid input option" msgstr "" #: output/output.ml:54 msgid "-o %s: %s option cannot be used in this output mode" msgstr "" #: output/output_disk.ml:66 msgid "-o disk: output directory was not specified, use '-os /dir'" msgstr "" #: output/output_libvirt.ml:59 output/output_disk.ml:56 msgid "-o disk: unknown output option ‘-oo %s’" msgstr "" #: output/output_kubevirt.ml:81 msgid "-o kubevirt: output directory was not specified, use '-os /dir'" msgstr "" #: output/output_kubevirt.ml:91 msgid "" "-o kubevirt: the guest name must contain only lowercase alphanumeric " "characters, '-' or '.', and must start and end with an alphanumeric " "character. Rerun virt-v2v with the '-on name' option to rename it." msgstr "" #: output/output_kubevirt.ml:71 msgid "-o kubevirt: unknown output option ‘-oo %s’" msgstr "" #: output/output_libvirt.ml:120 msgid "" "-o libvirt: output pool ‘%s’ does not have /pool/target/path element. See " "virt-v2v-output-local(1)" msgstr "" #: output/output_libvirt.ml:124 msgid "" "-o libvirt: output pool ‘%s’ has type='dir' but the /pool/target/path " "element is not a local directory. See virt-v2v-output-local(1)" msgstr "" #: output/output_libvirt.ml:116 msgid "" "-o libvirt: output pool ‘%s’ is not a directory (type='dir'). See virt-v2v-" "output-local(1)" msgstr "" #: output/output_openstack.ml:88 msgid "-o openstack mode only supports -oa sparse -of raw" msgstr "" #: output/output_openstack.ml:115 msgid "-o openstack: unknown output option ‘-oo %s’" msgstr "" #: output/output_ovirt_upload.ml:97 msgid "-o ovirt-upload: -oo ovirt-cafile set more than once" msgstr "" #: output/output_ovirt_upload.ml:101 msgid "-o ovirt-upload: -oo ovirt-cluster set more than once" msgstr "" #: output/output_ovirt_upload.ml:112 msgid "-o ovirt-upload: invalid UUID for -oo ovirt-disk-uuid" msgstr "" #: output/output_ovirt_upload.ml:76 msgid "" "-o ovirt-upload: output password file was not specified, use ‘-op’ to point " "to a file which contains the password used to connect to the oVirt server" msgstr "" #: output/output_ovirt_upload.ml:83 msgid "-o ovirt-upload: output storage was not specified, use ‘-os’" msgstr "" #: output/output_ovirt_upload.ml:116 msgid "-o ovirt-upload: unknown output option ‘-oo %s’" msgstr "" #: output/output_ovirt_upload.ml:68 msgid "" "-o ovirt-upload: use ‘-oc’ to point to the oVirt server REST API URL, which " "is usually https://servername/ovirt-engine/api" msgstr "" #: output/output_ovirt.ml:51 msgid "-o ovirt: -os option was not specified" msgstr "" #: output/output_qemu.ml:72 msgid "-o qemu: output directory was not specified, use '-os /dir'" msgstr "" #: output/output_qemu.ml:63 msgid "-o qemu: unknown output option ‘-oo %s’" msgstr "" #: output/output_vdsm.ml:102 msgid "-o vdsm: -oo vdsm-image-uuid was not specified" msgstr "" #: output/output_vdsm.ml:81 msgid "-o vdsm: -oo vdsm-ovf-output set more than once" msgstr "" #: output/output_vdsm.ml:77 msgid "-o vdsm: -oo vdsm-vm-uuid set more than once" msgstr "" #: output/output_vdsm.ml:110 msgid "-o vdsm: -os option was not specified" msgstr "" #: output/output_vdsm.ml:97 msgid "-o vdsm: either -oo vdsm-vol-uuid or -oo vdsm-vm-uuid was not specified" msgstr "" #: output/output_vdsm.ml:90 msgid "-o vdsm: unknown output option ‘-oo %s’" msgstr "" #: output/output_vdsm.ml:74 msgid "-o vdsm: unknown vdsm-compat level ‘%s’" msgstr "" #. output/output_kubevirt.ml:84 #. output/output_disk.ml:68 #: output/output_vdsm.ml:112 output/output_qemu.ml:74 msgid "-os %s: output directory does not exist or is not a directory" msgstr "" #: input/parse_libvirt_xml.ml:279 msgid " missing 'method' attribute, ignoring" msgstr "" #: input/parse_libvirt_xml.ml:291 msgid " unknown fail='%s' attribute, ignoring" msgstr "" #: input/parse_libvirt_xml.ml:370 input/parse_libvirt_xml.ml:317 msgid " was ignored" msgstr "" #: input/parse_libvirt_xml.ml:338 msgid " with was ignored" msgstr "" #: input/parse_libvirt_xml.ml:365 msgid " with was ignored" msgstr "" #: input/parse_libvirt_xml.ml:299 msgid " element with no type attribute ignored" msgstr "" #: input/parse_libvirt_xml.ml:167 msgid " in the input libvirt XML was ignored" msgstr "" #: input/parse_libvirt_xml.ml:414 msgid "" " was ignored because the device name could not be recognized" msgstr "" #: input/input_vddk.ml:176 msgid "" " was not found in the output of ‘virsh dumpxml \"%s\"’. The " "most likely reason is that libvirt is too old, try upgrading libvirt to ≥ " "3.7." msgstr "" #: common/mlcustomize/customize_cmdline.ml:305 msgid "Add package(s) to install" msgstr "" #: common/mlcustomize/customize_cmdline.ml:270 msgid "Add package(s) to install at first boot" msgstr "" #: common/mlcustomize/customize_cmdline.ml:175 msgid "Append line(s) to the file" msgstr "" #: common/mlcustomize/customize_run.ml:137 msgid "Appending line to %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:197 msgid "Change the owner user and group ID of a file or directory" msgstr "" #: common/mlcustomize/customize_cmdline.ml:186 msgid "Change the permissions of a file" msgstr "" #: common/mlcustomize/customize_run.ml:155 msgid "Changing owner of %s to %d:%d" msgstr "" #: common/mlcustomize/customize_run.ml:141 msgid "Changing permissions of %s to %s" msgstr "" #: input/input_libvirt.ml:174 input/input_libvirt.ml:157 msgid "Checking %s checksum of disk %d/%d" msgstr "" #: common/mlcustomize/customize_cmdline.ml:488 msgid "Compatibility option doing nothing" msgstr "" #: common/mlcustomize/customize_cmdline.ml:219 msgid "Copy files in disk image" msgstr "" #: common/mlcustomize/customize_cmdline.ml:397 msgid "Copy local files or directories from a tarball into image" msgstr "" #: common/mlcustomize/customize_cmdline.ml:230 msgid "Copy local files or directories into image" msgstr "" #: common/mlcustomize/customize_run.ml:168 msgid "Copying (in image): %s to %s" msgstr "" #: v2v/v2v.ml:518 msgid "Copying disk %d/%d" msgstr "" #: common/mlcustomize/customize_run.ml:172 msgid "Copying: %s to %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:322 msgid "Create a directory" msgstr "" #: common/mlcustomize/customize_cmdline.ml:316 msgid "Create symbolic links" msgstr "" #: v2v/v2v.ml:567 msgid "Creating output metadata" msgstr "" #: common/mlcustomize/customize_cmdline.ml:321 msgid "DIR" msgstr "" #: common/mlcustomize/customize_cmdline.ml:236 msgid "Delete a file or directory" msgstr "" #: common/mlcustomize/customize_run.ml:176 msgid "Deleting: %s" msgstr "" #: common/mltools/getopt.ml:225 msgid "Display brief help" msgstr "" #: common/mltools/tools_utils.ml:385 msgid "Display version and exit" msgstr "" #: common/mlcustomize/customize_cmdline.ml:482 msgid "Do not relabel files with correct SELinux labels" msgstr "" #: v2v/v2v.ml:248 inspector/inspector.ml:177 in-place/in_place.ml:190 msgid "Don't trim filesystems before conversion" msgstr "" #: common/mltools/tools_utils.ml:389 msgid "Don’t print progress messages" msgstr "" #: common/mltools/tools_utils.ml:420 msgid "Don’t turn off echo for passphrases" msgstr "" #: common/mlcustomize/customize_cmdline.ml:247 msgid "Edit file using Perl expression" msgstr "" #: common/mlcustomize/customize_run.ml:180 msgid "Editing: %s" msgstr "" #: common/mltools/tools_utils.ml:386 msgid "Enable libguestfs debugging messages" msgstr "" #: common/mltools/tools_utils.ml:387 msgid "Enable tracing of libguestfs calls" msgstr "" #: output/output_ovirt.ml:77 msgid "Export Storage Domain" msgstr "" #: open/open.ml:88 msgid "External command to run" msgstr "" #. common/mlcustomize/customize_cmdline.ml:408 #. common/mlcustomize/customize_cmdline.ml:373 #: common/mlcustomize/customize_cmdline.ml:414 msgid "FILE" msgstr "" #: common/mlcustomize/customize_cmdline.ml:455 msgid "FILE:CONTENT" msgstr "" #: common/mlcustomize/customize_cmdline.ml:444 msgid "FILE:DEST" msgstr "" #: common/mlcustomize/customize_cmdline.ml:242 msgid "FILE:EXPR" msgstr "" #: common/mlcustomize/customize_cmdline.ml:170 msgid "FILE:LINE" msgstr "" #: common/mlcustomize/customize_cmdline.ml:203 msgid "FILENAME" msgstr "" #. in-place/in_place.ml:378 #: v2v/v2v.ml:571 open/open.ml:220 inspector/inspector.ml:334 msgid "Finishing off" msgstr "" #: common/mlcustomize/customize_cmdline.ml:275 msgid "HOSTNAME" msgstr "" #: v2v/v2v.ml:254 inspector/inspector.ml:183 in-place/in_place.ml:194 msgid "How to choose root filesystem" msgstr "" #: common/mltools/tools_utils.ml:177 msgid "" "If reporting bugs, run %s with debugging enabled and include the complete " "output:\n" "\n" " %s -v -x [...]" msgstr "" #: common/mlcustomize/customize_cmdline.ml:386 msgid "Inject a public key into the guest" msgstr "" #: common/mlcustomize/customize_cmdline.ml:282 msgid "Inject the Balloon Server into a Windows guest" msgstr "" #: common/mlcustomize/customize_cmdline.ml:288 msgid "Inject the QEMU Guest Agent into a Windows guest" msgstr "" #: common/mlcustomize/customize_cmdline.ml:294 msgid "Inject virtio-win drivers into a Windows guest" msgstr "" #. in-place/in_place.ml:176 #: v2v/v2v.ml:216 open/open.ml:80 inspector/inspector.ml:165 msgid "Input format" msgstr "" #: input/input_vddk.ml:77 msgid "" "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" "\n" "Refer to nbdkit-vddk-plugin(1) and the VDDK documentation for further\n" "information on these settings.\n" msgstr "" #: v2v/v2v.ml:222 open/open.ml:86 inspector/inspector.ml:171 msgid "Input transport" msgstr "" #: common/mlcustomize/customize_run.ml:191 msgid "Installing firstboot command: %s" msgstr "" #: common/mlcustomize/customize_run.ml:195 msgid "Installing firstboot packages: %s" msgstr "" #: common/mlcustomize/customize_run.ml:202 msgid "Installing firstboot script: %s" msgstr "" #: common/mlcustomize/customize_run.ml:248 msgid "Installing packages: %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:225 msgid "LOCALPATH:REMOTEDIR" msgstr "" #. in-place/in_place.ml:174 #: v2v/v2v.ml:214 open/open.ml:78 inspector/inspector.ml:163 msgid "Libvirt URI" msgstr "" #: common/mlcustomize/customize_run.ml:255 msgid "Linking: %s -> %s" msgstr "" #. common/mlcustomize/customize_cmdline.ml:287 #. common/mlcustomize/customize_cmdline.ml:281 #: common/mlcustomize/customize_cmdline.ml:293 msgid "METHOD" msgstr "" #: common/mltools/tools_utils.ml:426 msgid "Make output machine readable" msgstr "" #: common/mlcustomize/customize_run.ml:260 msgid "Making directory: %s" msgstr "" #: v2v/v2v.ml:226 inspector/inspector.ml:173 in-place/in_place.ml:182 msgid "Map NIC to network or bridge or assign static IP" msgstr "" #: v2v/v2v.ml:210 inspector/inspector.ml:159 in-place/in_place.ml:170 msgid "Map bridge ‘in’ to ‘out’" msgstr "" #: v2v/v2v.ml:230 inspector/inspector.ml:179 in-place/in_place.ml:186 msgid "Map network ‘in’ to ‘out’" msgstr "" #: common/mlcustomize/customize_cmdline.ml:333 msgid "Move files in disk image" msgstr "" #: common/mlcustomize/customize_run.ml:264 msgid "Moving: %s -> %s" msgstr "" #. input/input_vcenter_https.ml:45 #. input/input_ova.ml:35 #. input/input_libvirt.ml:233 #. input/input_libvirt.ml:221 #. input/input_disk.ml:35 #: input/input_xen_ssh.ml:43 input/input_vmx.ml:36 msgid "No input options can be used in this mode.\n" msgstr "" #: output/output_ovirt.ml:40 output/output_null.ml:38 #: output/output_glance.ml:40 msgid "No output options can be used in this mode.\n" msgstr "" #: output/output_vdsm.ml:166 msgid "OVF (metadata) directory (%s) does not exist or is not a directory" msgstr "" #: common/mlcustomize/firstboot.ml:268 msgid "" "One of rhsrvany.exe or pvvxsvc.exe is missing in %s. One of them is " "required in order to install Windows firstboot scripts. You can get one by " "building rhsrvany (https://github.com/rwmjones/rhsrvany)" msgstr "" #: v2v/v2v.ml:236 msgid "Output hypervisor connection" msgstr "" #: output/output_ovirt_upload.ml:51 msgid "" "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" "\n" "You can override the UUIDs of the disks, instead of using autogenerated " "UUIDs\n" "after their uploads (if you do, you must supply one for each disk):\n" "\n" " -oo ovirt-disk-uuid=UUID Disk UUID\n" msgstr "" #: output/output_qemu.ml:44 msgid "" "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" msgstr "" #: output/output_vdsm.ml:43 msgid "" "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" "\n" "For 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" msgstr "" #: output/output_disk.ml:44 msgid "" "Output options that can be used with -o disk:\n" "\n" " -oo compressed Compress the output file (used only with -of qcow2)\n" msgstr "" #: output/output_kubevirt.ml:51 msgid "" "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" msgstr "" #: output/output_libvirt.ml:47 msgid "" "Output options that can be used with -o libvirt:\n" "\n" " -oo compressed Compress the output file (used only with -of qcow2)\n" msgstr "" #. common/mlcustomize/customize_cmdline.ml:235 #: common/mlcustomize/customize_cmdline.ml:420 msgid "PATH" msgstr "" #: common/mlcustomize/customize_cmdline.ml:181 msgid "PERMISSIONS:FILE" msgstr "" #. common/mlcustomize/customize_cmdline.ml:300 #. common/mlcustomize/customize_cmdline.ml:265 #: common/mlcustomize/customize_cmdline.ml:427 msgid "PKG,PKG.." msgstr "" #: v2v/v2v.ml:263 in-place/in_place.ml:203 msgid "Prefer 'virtio-blk' or 'virtio-scsi'" msgstr "" #: v2v/v2v.ml:252 in-place/in_place.ml:192 msgid "Print source and stop" msgstr "" #: common/mlcustomize/customize_cmdline.ml:208 msgid "Read customize commands from file" msgstr "" #: common/mltools/tools_utils.ml:421 msgid "Read passphrases from stdin" msgstr "" #: common/mlcustomize/customize_cmdline.ml:421 msgid "Recursively truncate all files in directory" msgstr "" #: common/mlcustomize/customize_run.ml:298 msgid "Recursively truncating: %s" msgstr "" #: v2v/v2v.ml:240 msgid "Rename guest when converting" msgstr "" #: common/mlcustomize/customize_cmdline.ml:259 msgid "Run command at first guest boot" msgstr "" #: common/mlcustomize/customize_cmdline.ml:368 msgid "Run command in disk image" msgstr "" #: common/mlcustomize/customize_cmdline.ml:253 msgid "Run script at first guest boot" msgstr "" #: common/mlcustomize/customize_cmdline.ml:362 msgid "Run script in disk image" msgstr "" #: common/mlcustomize/customize_cmdline.ml:409 msgid "Run touch on a file" msgstr "" #: v2v/v2v.ml:250 msgid "Run up to N instances of nbdcopy in parallel" msgstr "" #: open/open.ml:188 msgid "Running external command" msgstr "" #: common/mlcustomize/customize_run.ml:307 msgid "Running touch: %s" msgstr "" #. common/mlcustomize/customize_run.ml:159 #: common/mlcustomize/customize_run.ml:274 msgid "Running: %s" msgstr "" #. common/mlcustomize/customize_cmdline.ml:252 #: common/mlcustomize/customize_cmdline.ml:361 msgid "SCRIPT" msgstr "" #: common/mltools/tools_utils.ml:422 #: common/mlcustomize/customize_cmdline.ml:351 msgid "SELECTOR" msgstr "" #: common/mlcustomize/customize_run.ml:363 msgid "SELinux relabelling" msgstr "" #. common/mlcustomize/customize_cmdline.ml:214 #: common/mlcustomize/customize_cmdline.ml:328 msgid "SOURCE:DEST" msgstr "" #: common/mlcustomize/customize_run.ml:287 msgid "SSH key could not be injected for this type of guest" msgstr "" #: common/mlcustomize/customize_run.ml:284 msgid "SSH key inject: %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:374 msgid "Scrub a file" msgstr "" #: common/mlcustomize/customize_cmdline.ml:466 msgid "Scrub build log file" msgstr "" #: common/mlcustomize/customize_run.ml:374 msgid "Scrubbing the log file" msgstr "" #: common/mlcustomize/customize_run.ml:279 msgid "Scrubbing: %s" msgstr "" #: v2v/v2v.ml:208 msgid "Set bandwidth dynamically from file" msgstr "" #: v2v/v2v.ml:206 msgid "Set bandwidth to bits per sec" msgstr "" #. in-place/in_place.ml:172 #: v2v/v2v.ml:212 open/open.ml:76 inspector/inspector.ml:161 msgid "Set input mode (default: libvirt)" msgstr "" #: v2v/v2v.ml:228 inspector/inspector.ml:175 in-place/in_place.ml:184 msgid "Set memory size" msgstr "" #: v2v/v2v.ml:256 inspector/inspector.ml:185 in-place/in_place.ml:196 msgid "Set number of vCPUs" msgstr "" #. in-place/in_place.ml:178 #: v2v/v2v.ml:218 open/open.ml:82 inspector/inspector.ml:167 msgid "Set option for input mode" msgstr "" #: v2v/v2v.ml:242 msgid "Set option for output mode" msgstr "" #: v2v/v2v.ml:234 msgid "Set output allocation mode" msgstr "" #: v2v/v2v.ml:238 msgid "Set output format" msgstr "" #: v2v/v2v.ml:232 msgid "Set output mode (default: libvirt)" msgstr "" #: v2v/v2v.ml:246 msgid "Set output storage location" msgstr "" #: common/mlcustomize/customize_cmdline.ml:476 msgid "Set password crypto" msgstr "" #: common/mltools/tools_utils.ml:430 msgid "Set program name" msgstr "" #: common/mlcustomize/customize_cmdline.ml:356 msgid "Set root password" msgstr "" #: common/mlcustomize/customize_cmdline.ml:403 msgid "Set the default timezone" msgstr "" #: common/mlcustomize/customize_cmdline.ml:276 msgid "Set the hostname" msgstr "" #: inspector/inspector.ml:181 in-place/in_place.ml:188 msgid "Set the output filename" msgstr "" #: common/mlcustomize/customize_cmdline.ml:345 msgid "Set user password" msgstr "" #: common/mlcustomize/customize_run.ml:75 msgid "Setting a random seed" msgstr "" #: common/mlcustomize/customize_run.ml:354 msgid "Setting passwords" msgstr "" #: common/mlcustomize/password.ml:113 msgid "Setting random password of %s to %s" msgstr "" #: common/mlcustomize/customize_run.ml:207 msgid "Setting the hostname: %s" msgstr "" #: common/mlcustomize/customize_run.ml:90 msgid "Setting the machine ID in %s" msgstr "" #: common/mlcustomize/customize_run.ml:302 msgid "Setting the timezone: %s" msgstr "" #: v2v/v2v.ml:481 msgid "Setting up the destination: %s" msgstr "" #. in-place/in_place.ml:342 #: v2v/v2v.ml:457 open/open.ml:184 inspector/inspector.ml:310 msgid "Setting up the source: %s" msgstr "" #: v2v/v2v.ml:463 in-place/in_place.ml:348 msgid "Source guest information (--print-source option):\n" msgstr "" #: common/mltools/tools_utils.ml:422 msgid "Specify a LUKS key" msgstr "" #: common/mlcustomize/customize_cmdline.ml:392 msgid "TARFILE:REMOTEDIR" msgstr "" #: common/mlcustomize/customize_cmdline.ml:311 msgid "TARGET:LINK[:LINK..]" msgstr "" #: common/mlcustomize/customize_cmdline.ml:402 msgid "TIMEZONE" msgstr "" #: v2v/v2v.ml:200 msgid "" "The --in-place option has been replaced by the ‘virt-v2v-in-place’ program" msgstr "" #: output/output_qemu.ml:251 msgid "" "The Virt machine has no support for IDE. Please report a bug for virt-v2v -- " "refer to virt-v2v(1) section \"BUGS\"." msgstr "" #: output/output_qemu.ml:272 msgid "" "The Virt machine has no support for floppies. Please report a bug for virt-" "v2v -- refer to virt-v2v(1) section \"BUGS\"." msgstr "" #: lib/create_ovf.ml:785 msgid "" "This guest required a password for connection to its display, but this is " "not supported by oVirt. Therefore the converted guest’s display will not " "require a separate password to connect." msgstr "" #: input/input_vmx.ml:111 msgid "" "This transport does not support guests with snapshots. Either collapse the " "snapshots for this guest and try the conversion again, or use one of the " "alternate conversion methods described in virt-v2v-input-vmware(1) section " "\"NOTES\"." msgstr "" #: common/mlcustomize/customize_cmdline.ml:415 msgid "Truncate a file to zero size" msgstr "" #: common/mlcustomize/customize_run.ml:294 msgid "Truncating: %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:192 msgid "UID:GID:PATH" msgstr "" #: common/mlcustomize/customize_cmdline.ml:339 msgid "USER:SELECTOR" msgstr "" #: common/mlcustomize/customize_cmdline.ml:380 msgid "USER[:SELECTOR]" msgstr "" #: common/mlcustomize/customize_cmdline.ml:432 msgid "Uninstall package(s)" msgstr "" #: common/mlcustomize/customize_run.ml:311 msgid "Uninstalling packages: %s" msgstr "" #: common/mlcustomize/customize_run.ml:290 msgid "Unpack tar file: %s to %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:438 msgid "Update packages" msgstr "" #: common/mlcustomize/customize_run.ml:316 msgid "Updating packages" msgstr "" #: common/mlcustomize/customize_cmdline.ml:449 msgid "Upload local file to destination" msgstr "" #: common/mlcustomize/customize_run.ml:321 msgid "Uploading: %s to %s" msgstr "" #: common/mltools/tools_utils.ml:391 msgid "Use ANSI colour sequences even if not tty" msgstr "" #. in-place/in_place.ml:180 #: v2v/v2v.ml:220 open/open.ml:84 inspector/inspector.ml:169 msgid "Use password from file to connect to input hypervisor" msgstr "" #: v2v/v2v.ml:244 msgid "Use password from file to connect to output hypervisor" msgstr "" #: v2v/v2v.ml:224 msgid "Use virt-v2v-in-place instead" msgstr "" #: common/mltools/tools_utils.ml:392 msgid "Wrap log messages even if not tty" msgstr "" #: common/mlcustomize/customize_cmdline.ml:460 msgid "Write file" msgstr "" #: common/mlcustomize/customize_run.ml:346 msgid "Writing: %s" msgstr "" #: lib/YAML.ml:167 msgid "" "YAML block contains newline character. This should not happen, please " "report a bug against virt-v2v." msgstr "" #: output/output_libvirt.ml:96 msgid "" "a libvirt domain called ‘%s’ already exists on the target.\n" "\n" "If using virt-v2v directly, use the ‘-on’ option to select a different name. " "Or delete the existing domain on the target using the ‘virsh undefine’ " "command.\n" "\n" "If using virt-p2v, select a different ‘Name’ in the ‘Target properties’. Or " "delete the existing domain on the target using the ‘virsh undefine’ command." msgstr "" #: common/mlcustomize/append_line.ml:44 msgid "append_line: %s is not a file" msgstr "" #: input/input_libvirt.ml:206 msgid "" "bad checksum for disk %d/%d\n" "Expected checksum: %s\n" "Actual checksum: %s" msgstr "" #: lib/libvirt_utils.ml:59 msgid "cannot find libvirt domain ‘%s’: %s" msgstr "" #: lib/libvirt_utils.ml:96 msgid "" "cannot find libvirt pool ‘%s’: %s\n" "\n" "Use ‘virsh pool-list --all’ to list all available pools, and ‘virsh pool-" "dumpxml ’ to display details about a particular pool.\n" "\n" "To set the pool which virt-v2v uses, add the ‘-os ’ option." msgstr "" #: lib/libvirt_utils.ml:110 msgid "cannot find libvirt volume ‘%s’: %s" msgstr "" #: common/mlcustomize/firstboot.ml:235 msgid "" "cannot finish firstboot installation by running ‘%s’ because host cpu (%s) " "and guest arch (%s) are not compatible. The firstboot service may not run " "at boot." msgstr "" #: output/output_libvirt.ml:180 msgid "cannot get libvirt domain capabilities: %s" msgstr "" #: output/output_libvirt.ml:85 msgid "cannot get libvirt hypervisor capabilities: %s" msgstr "" #: v2v/v2v.ml:105 inspector/inspector.ml:95 in-place/in_place.ml:102 msgid "cannot parse --mac \"%s\" parameter" msgstr "" #: v2v/v2v.ml:129 inspector/inspector.ml:119 in-place/in_place.ml:126 msgid "cannot parse --mac ip %s: doesn’t look like “%s” is an IP address" msgstr "" #: v2v/v2v.ml:143 inspector/inspector.ml:133 in-place/in_place.ml:140 msgid "cannot parse --mac ip prefix length field as an integer: %s" msgstr "" #: common/mlcustomize/guest_packages.ml:29 msgid "" "cannot use ‘%s’ because no package manager has been detected for this guest " "OS.\n" "\n" "If this guest OS is a common one with ordinary package management then this " "may have been caused by a failure of libguestfs inspection.\n" "\n" "For OSes such as Windows that lack package management, this is not " "possible. Try using one of the ‘--firstboot*’ flags instead (described in " "the virt-customize(1) manual)." msgstr "" #: output/output_ovirt.ml:91 msgid "" "cannot write files to the NFS server as %d:%d, even though we appear to be " "running as root. This probably means the NFS client or idmapd is not " "configured properly.\n" "\n" "You will have to chown the files that virt-v2v creates after the run, " "otherwise oVirt will not be able to import the VM." msgstr "" #: output/output_ovirt.ml:99 msgid "" "cannot write files to the NFS server as %d:%d. You might want to stop virt-" "v2v (^C) and rerun it as root." msgstr "" #: common/mlcustomize/customize_cmdline.ml:508 msgid "command '%s' cannot be used in command files, see the man page" msgstr "" #: common/mlcustomize/customize_cmdline.ml:525 msgid "command '%s' not valid, see the man page" msgstr "" #: common/mldrivers/linux_bootloaders.ml:318 msgid "could not add grub2 serial console (ignored)" msgstr "" #: input/ssh.ml:52 msgid "" "could not copy the VMX file from the remote server, see earlier error " "messages" msgstr "" #: output/output_libvirt.ml:211 msgid "" "could not define libvirt domain: %s.\n" "The libvirt XML is still available in ‘%s’. Try running ‘virsh -c %s define " "%s’ yourself instead." msgstr "" #: common/mldrivers/linux_bootloaders.ml:221 msgid "could not determine a way to update the configuration of Grub2" msgstr "" #: input/input_vddk.ml:243 msgid "" "could not fetch thumbprint from the server, you mus use ‘-io vddk-" "thumbprint=XX:XX...’" msgstr "" #: common/mldrivers/linux_bootloaders.ml:376 msgid "could not find bootloader mount point (%s): %s" msgstr "" #: common/mldrivers/windows_drivers.ml:91 msgid "" "could not find registry entry " "HKEY_LOCAL_MACHINE\\SYSTEM\\DriverDatabase\\DeviceIds in this Windows " "guest. It may be either a very old or very new version of Windows that we " "cannot process." msgstr "" #: common/mlcustomize/firstboot.ml:232 msgid "" "could not finish firstboot installation by running ‘%s’ because the command " "failed: %s" msgstr "" #. input/input_vcenter_https.ml:94 #: input/select_input.ml:66 input/input_xen_ssh.ml:71 input/input_vddk.ml:151 msgid "could not parse '-ic %s'. Original error message was: %s" msgstr "" #: input/parse_libvirt_xml.ml:407 input/parse_libvirt_xml.ml:54 msgid "could not parse device name ‘%s’ from the source libvirt XML" msgstr "" #: input/OVF.ml:168 msgid "could not parse disk rasd:HostResource from OVF document" msgstr "" #: input/input_ova.ml:98 msgid "could not parse ovf:Name from OVF document" msgstr "" #: output/output_ovirt.ml:247 msgid "" "could not read the %s specified by the '-os %s' parameter on the command " "line. Is it really an OVirt %s? The original error is: %s" msgstr "" #: common/mldrivers/linux_bootloaders.ml:336 msgid "" "could not rebuild grub2 configuration file (%s). This may mean that grub " "output will not be sent to the serial port, but otherwise should be " "harmless. Original error message: %s" msgstr "" #: output/output_libvirt.ml:156 msgid "could not refresh libvirt pool ‘%s’: %s" msgstr "" #: common/mldrivers/linux_bootloaders.ml:320 msgid "could not remove grub2 serial console (ignored)" msgstr "" #: common/mltools/registry.ml:93 msgid "" "decode_utf16le: Windows UTF16-LE string contains non-7-bit characters. This " "is a bug in %s, please report it." msgstr "" #: common/mltools/registry.ml:87 msgid "" "decode_utf16le: Windows string does not appear to be in UTF16-LE encoding. " "This could be a bug in %s." msgstr "" #: common/mldrivers/linux_bootloaders.ml:126 msgid "didn't find grub entry for kernel %s" msgstr "" #: input/input_disk.ml:150 msgid "disks on the command line have mixed formats" msgstr "" #: input/parse_libvirt_xml.ml:194 msgid "display in the input libvirt XML was ignored" msgstr "" #: output/output_qemu.ml:147 msgid "don’t know how to convert UEFI guests for architecture %s" msgstr "" #: common/mldrivers/linux.ml:158 msgid "don’t know how to find file owner using %s" msgstr "" #: common/mldrivers/linux.ml:89 msgid "don’t know how to get list of files from package using %s" msgstr "" #: common/mltools/curl.ml:82 msgid "downloading %s" msgstr "" #: lib/networks.ml:84 msgid "" "duplicate --mac parameter. Duplicate mappings specified for MAC address %s." msgstr "" #: lib/networks.ml:102 msgid "" "duplicate -b/--bridge parameter. Duplicate mappings specified for bridge %s." msgstr "" #: lib/networks.ml:108 msgid "duplicate -b/--bridge parameter. Only one default mapping is allowed." msgstr "" #: lib/networks.ml:90 msgid "" "duplicate -n/--network parameter. Duplicate mappings specified for network " "%s." msgstr "" #: lib/networks.ml:96 msgid "duplicate -n/--network parameter. Only one default mapping is allowed." msgstr "" #: input/OVF.ml:143 msgid "error parsing disk fileRef" msgstr "" #: input/input_ova.ml:124 msgid "error uncompressing %s, see earlier error messages" msgstr "" #: input/OVA.ml:210 input/OVA.ml:112 msgid "error unpacking %s, see earlier error messages" msgstr "" #: common/mltools/tools_utils.ml:248 msgid "exception: %s" msgstr "" #: common/mltools/tools_utils.ml:455 msgid "exited with error %d" msgstr "" #: lib/utils.ml:34 msgid "exited with non-zero error code %d" msgstr "" #: input/input_disk.ml:147 msgid "expected >= 1 disk name on the command line" msgstr "" #: common/mltools/xpath_helpers.ml:36 msgid "" "expecting XML expression to return an integer (expression: %s, matching " "string: %s)" msgstr "" #: common/mltools/tools_utils.ml:440 msgid "external command" msgstr "" #: output/output_ovirt_upload.ml:265 msgid "failed server prechecks, see earlier errors" msgstr "" #: output/output_ovirt_upload.ml:507 msgid "failed to create virtual machine, see earlier errors" msgstr "" #: output/output_ovirt_upload.ml:479 msgid "failed to finalize the transfers, see earlier errors" msgstr "" #: common/mldrivers/linux_bootloaders.ml:208 msgid "failed to find grub2-mkconfig binary (but Grub2 was detected on guest)" msgstr "" #: input/OVA.ml:461 msgid "failed to parse line returned by tar: %S" msgstr "" #: output/output_ovirt_upload.ml:394 msgid "failed to start transfer, see earlier errors" msgstr "" #: output/output_ovirt_upload.ml:311 msgid "failed vmchecks, see earlier errors" msgstr "" #: common/mltools/tools_utils.ml:239 msgid "failure: %s" msgstr "" #: input/input_ova.ml:134 msgid "file ‘%s’ not found in the ova" msgstr "" #: common/mlcustomize/firstboot.ml:143 msgid "" "firstboot: unknown version for old firstboot.service file %s (md5=%s), it " "will not be removed" msgstr "" #: common/mltools/tools_utils.ml:258 msgid "generated by %s %s" msgstr "" #: output/create_libvirt_xml.ml:39 msgid "get_osinfo_id: unknown guest operating system: %s" msgstr "" #: output/output_glance.ml:66 msgid "" "glance: glance client is not installed or set up correctly. You may need to " "set environment variables or source a script to enable authentication. See " "preceding messages for details." msgstr "" #: output/output_glance.ml:139 msgid "glance: image upload to glance failed, see earlier errors" msgstr "" #: common/mlcustomize/firstboot.ml:386 common/mlcustomize/firstboot.ml:164 msgid "guest type %s is not supported" msgstr "" #: common/mlcustomize/firstboot.ml:413 msgid "guest type %s/%s is not supported" msgstr "" #: common/mltools/tools_utils.ml:749 msgid "" "host (%s/%s) and guest (%s/%s) are not compatible, so you cannot use command " "line options that involve running commands in the guest. Use --firstboot " "scripts instead." msgstr "" #: common/mlcustomize/customize_run.ml:209 msgid "hostname could not be set for this type of guest" msgstr "" #: common/mldrivers/linux_kernels.ml:342 msgid "ignoring kernel %s in bootloader, as it does not exist." msgstr "" #: output/output_vdsm.ml:160 msgid "image directory (%s) does not exist or is not a directory" msgstr "" #: input/parse_libvirt_xml.ml:81 msgid "in the libvirt XML metadata, is missing or empty" msgstr "" #: input/parse_libvirt_xml.ml:87 msgid "in the libvirt XML metadata, is missing or empty" msgstr "" #: input/input_vcenter_https.ml:52 input/input_libvirt.ml:107 msgid "in-place mode does not work with HTTP source" msgstr "" #: input/input_vddk.ml:146 msgid "in-place mode does not work with VDDK source" msgstr "" #: input/input_vmx.ml:43 msgid "in-place mode does not work with VMX source" msgstr "" #: input/input_xen_ssh.ml:50 msgid "in-place mode does not work with Xen over SSH source" msgstr "" #: output/output_kubevirt.ml:116 msgid "" "incorrect number of '-oo disk' parameters. This guest has %d disks, but the " "parameter was used %d times." msgstr "" #: input/input_xen_ssh.ml:119 msgid "" "input from xen over ssh does not support disks stored on remote block " "devices. See virt-v2v-input-xen(1) section \"Xen or ssh conversions from " "block devices\"." msgstr "" #. in-place/in_place.ml:397 #: v2v/v2v.ml:590 open/open.ml:238 inspector/inspector.ml:353 msgid "" "insufficient free space in the conversion server temporary directory %s " "(%s).\n" "\n" "Either free up space in that directory, or set the LIBGUESTFS_CACHEDIR " "environment variable to point to another directory with more than 1GB of " "free space.\n" "\n" "See also the virt-v2v(1) manual, section \"Minimum free space check in the " "host\"." msgstr "" #: common/mltools/tools_utils.ml:246 msgid "internal error: Not_found exception was thrown" msgstr "" #: common/mltools/tools_utils.ml:243 msgid "internal error: assertion failed at %s, line %d, char %d" msgstr "" #: common/mltools/tools_utils.ml:241 msgid "internal error: invalid argument: %s" msgstr "" #: common/mldrivers/linux.ml:128 msgid "internal error: is_file_owned: dpkg command returned no output" msgstr "" #: common/mldrivers/linux.ml:133 msgid "internal error: is_file_owned: unexpected output from dpkg command: %s" msgstr "" #: common/mldrivers/linux_bootloaders.ml:130 msgid "internal error: regular expression did not match ‘%s’" msgstr "" #: v2v/v2v.ml:548 msgid "internal error: wait returned unexpected process ID %d status \"%s\"" msgstr "" #: v2v/v2v.ml:114 inspector/inspector.ml:104 in-place/in_place.ml:111 msgid "invalid --mac ip option" msgstr "" #: v2v/v2v.ml:98 inspector/inspector.ml:88 in-place/in_place.ml:95 msgid "invalid -b/--bridge parameter" msgstr "" #: v2v/v2v.ml:90 inspector/inspector.ml:80 in-place/in_place.ml:87 msgid "invalid -n/--network parameter" msgstr "" #: input/parse_domain_from_vmx.ml:402 msgid "invalid cpuid.coresPerSocket < number of vCPUs" msgstr "" #. common/mlcustomize/customize_cmdline.ml:153 #. common/mlcustomize/customize_cmdline.ml:145 #: common/mlcustomize/customize_cmdline.ml:161 msgid "invalid format for '--%s' parameter, see the man page" msgstr "" #: common/mltools/tools_utils.ml:359 msgid "invalid format string for --machine-readable: %s" msgstr "" #: lib/utils.ml:279 msgid "invalid input filename (%s)" msgstr "" #: input/OVA.ml:445 msgid "invalid offset returned by tar: %S" msgstr "" #: common/mltools/tools_utils.ml:374 msgid "invalid output fd for --machine-readable: %s" msgstr "" #: common/mltools/tools_utils.ml:376 msgid "invalid output for --machine-readable: %s" msgstr "" #: common/mltools/tools_utils.ml:368 msgid "invalid output stream for --machine-readable: %s" msgstr "" #: common/mlcustomize/password.ml:73 msgid "invalid password selector ‘%s’; see the man page" msgstr "" #: input/OVA.ml:450 msgid "invalid size returned by tar: %S" msgstr "" #: common/mlcustomize/ssh_key.ml:45 msgid "invalid ssh-inject selector ‘%s’; see the man page" msgstr "" #: input/OVF.ml:82 msgid "invalid vmw:CoresPerSocket (%d) ignored" msgstr "" #: input/OVF.ml:88 msgid "invalid vmw:CoresPerSocket < number of cores" msgstr "" #: common/mldrivers/linux_bootloaders.ml:114 msgid "kernel %s is not under grub tree %s" msgstr "" #: common/mltools/tools_utils.ml:539 common/mltools/tools_utils.ml:458 msgid "killed by signal %d" msgstr "" #: common/mltools/tools_utils.ml:237 msgid "libguestfs error: %s" msgstr "" #: lib/libvirt_utils.ml:72 msgid "" "libvirt domain ‘%s’ is running or paused. Converting a live guest will " "result in corrupted output. However this is safe if you're converting from a " "snapshot" msgstr "" #: common/mlcustomize/customize_run.ml:47 msgid "log file %s: %s (ignored)" msgstr "" #: input/OVA.ml:147 msgid "" "making OVA directory public readable to work around libvirt bug https://" "bugzilla.redhat.com/1045069" msgstr "" #: input/input_ova.ml:86 msgid "manifest has a checksum for non-existent file %s (ignored)" msgstr "" #: common/mlcustomize/customize_cmdline.ml:472 msgid "md5|sha256|sha512" msgstr "" #: common/mlcustomize/customize_run.ml:119 msgid "method '%s' is no longer supported" msgstr "" #: common/mltools/JSON_parser.ml:39 msgid "missing value for the key ‘%s’" msgstr "" #: input/OVA.ml:276 msgid "more than one .ovf file was found in %s" msgstr "" #: common/mltools/JSON_parser.ml:34 msgid "more than value for the key ‘%s’" msgstr "" #: output/output_ovirt.ml:222 msgid "" "mount command failed, see earlier errors.\n" "\n" "This probably means you didn't specify the right %s path [-os %s], or else " "you need to rerun virt-v2v as root." msgstr "" #: common/mlcustomize/customize_run.ml:103 msgid "" "multiple --root-password/--password options set the password for user ‘%s’ " "twice" msgstr "" #: input/input_vddk.ml:319 msgid "" "nbdkit VDDK plugin is not installed or not working. It is required if you " "want to use VDDK.\n" "\n" "It 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 ’/%s/libvixDiskLib.so.?’.\n" "\n" "See also the virt-v2v-input-vmware(1) manual." msgstr "" #: input/input_vddk.ml:313 msgid "" "nbdkit VDDK plugin is not installed or not working. It is required if you " "want to use VDDK.\n" "\n" "The 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" "\n" "See also the virt-v2v-input-vmware(1) manual." msgstr "" #: lib/nbdkit.ml:223 msgid "nbdkit did not start up. See previous debugging messages for problems." msgstr "" #: lib/nbdkit.ml:225 msgid "" "nbdkit did not start up. There may be errors printed by nbdkit above.\n" "\n" "If the messages above are not sufficient to diagnose the problem then add " "the ‘virt-v2v -v -x’ options and examine the debugging output carefully." msgstr "" #: input/nbdkit_ssh.ml:36 input/nbdkit_curl.ml:32 input/input_vddk.ml:283 msgid "nbdkit is not installed or not working" msgstr "" #: input/input_disk.ml:92 msgid "" "nbdkit is not installed or not working. It is required to use ‘-i disk’." msgstr "" #: input/input_libvirt.ml:68 msgid "" "nbdkit is not installed or not working. It is required to use ‘-i libvirt|" "libvirtxml’." msgstr "" #: output/output.ml:178 output/output.ml:77 msgid "" "nbdkit is not installed or not working. It is required to use ‘-o disk’." msgstr "" #: output/output_null.ml:57 msgid "" "nbdkit is not installed or not working. It is required to use ‘-o null’." msgstr "" #: output/output_ovirt_upload.ml:163 msgid "" "nbdkit is not installed or not working. It is required to use ‘-o ovirt-" "upload’. See the virt-v2v-output-ovirt(1) manual." msgstr "" #: input/input_vddk.ml:285 msgid "nbdkit must be >= 1.45.11 for input from VDDK" msgstr "" #: output/output_ovirt_upload.ml:176 msgid "" "nbdkit python plugin is not installed or not working. It is required if you " "want to use ‘-o ovirt-upload’.\n" "\n" "See also the virt-v2v-output-ovirt(1) manual." msgstr "" #: output/output_ovirt_upload.ml:190 msgid "" "nbdkit was compiled without SELinux support. You will have to recompile " "nbdkit with libselinux-devel installed, or else set SELinux to Permissive " "mode while doing the conversion." msgstr "" #. input/input_libvirt.ml:76 #. input/input_disk.ml:98 #: input/nbdkit_ssh.ml:42 input/nbdkit_curl.ml:38 input/input_vddk.ml:289 msgid "nbdkit-cow-filter is not installed or not working" msgstr "" #: input/nbdkit_curl.ml:35 msgid "nbdkit-curl-plugin is not installed" msgstr "" #. input/input_disk.ml:96 #: output/output.ml:181 output/output.ml:80 input/input_libvirt.ml:72 msgid "nbdkit-file-plugin is not installed or not working" msgstr "" #: input/input_libvirt.ml:74 msgid "nbdkit-nbd-plugin is not installed or not working" msgstr "" #: output/output_null.ml:60 msgid "nbdkit-null-plugin is not installed or not working" msgstr "" #: input/nbdkit_ssh.ml:39 msgid "nbdkit-ssh-plugin is not installed" msgstr "" #: input/input_vddk.ml:287 msgid "nbdkit-vddk-plugin is not installed" msgstr "" #: lib/nbdkit.ml:56 msgid "nbdkit: unexpected version in --dump-config: %s" msgstr "" #. input/input_vcenter_https.ml:49 #. input/input_ova.ml:46 #. input/input_libvirt.ml:35 #. input/input_disk.ml:39 #: input/input_xen_ssh.ml:47 input/input_vmx.ml:40 msgid "no -io (input options) are allowed here" msgstr "" #: output/output_ovirt.ml:44 output/output_null.ml:42 #: output/output_glance.ml:44 msgid "no -oo (output options) are allowed here" msgstr "" #: input/OVA.ml:273 msgid "no .ovf file was found in %s" msgstr "" #: common/mldrivers/linux_bootloaders.ml:402 msgid "no bootloader detected" msgstr "" #: input/parse_domain_from_vmx.ml:359 msgid "no displayName key found in VMX file" msgstr "" #: input/OVF.ml:148 msgid "no href in ovf:File (id=%s)" msgstr "" #: common/mldrivers/linux_kernels.ml:194 msgid "no initrd was found in /boot matching %s %s." msgstr "" #: common/mldrivers/linux_kernels.ml:317 msgid "" "no installed kernel packages were found.\n" "\n" "This probably indicates that %s was unable to inspect this guest properly." msgstr "" #: common/mldrivers/linux_kernels.ml:354 msgid "" "no kernels were found in the bootloader configuration.\n" "\n" "This probably indicates that %s was unable to parse the bootloader " "configuration of this guest." msgstr "" #: output/python_script.ml:55 msgid "no python binary called ‘%s’ can be found on the $PATH" msgstr "" #: input/select_input.ml:106 msgid "" "no support for remote libvirt connections to '-ic %s'. The conversion may " "fail when it tries to read the source disks." msgstr "" #: lib/create_ovf.ml:1027 msgid "" "oVirt cannot emulate ‘%s’ sound cards. This sound card will be dropped from " "the output." msgstr "" #: lib/create_ovf.ml:875 lib/create_ovf.ml:512 msgid "oVirt does not support the output format ‘%s’, only raw or qcow2" msgstr "" #: output/output_openstack.ml:120 msgid "openstack: -oo server-id= not present" msgstr "" #: output/output_openstack.ml:338 msgid "" "openstack: failed to attach cinder volume to VM, see earlier error messages" msgstr "" #: output/output_openstack.ml:291 msgid "openstack: failed to create a cinder volume, see earlier error messages" msgstr "" #: output/output_openstack.ml:304 msgid "" "openstack: failed to query cinder volume status, see earlier error messages" msgstr "" #: output/output_openstack.ml:442 msgid "" "openstack: failed to set image properties on cinder volume, see earlier " "error messages" msgstr "" #: output/output_openstack.ml:199 msgid "" "openstack: precheck failed, there may be a problem with authentication, see " "earlier error messages" msgstr "" #: output/output_openstack.ml:311 msgid "" "openstack: unknown volume status \"%s\": expected \"creating\" or " "\"available\"" msgstr "" #: output/output.ml:133 msgid "output mode only supports raw or qcow2 format (format: %s)" msgstr "" #: input/OVF.ml:263 msgid "" "ova disk has an unknown VMware controller type (%d), please report this as a " "bug supplying the *.ovf file extracted from the ova" msgstr "" #: input/OVF.ml:259 msgid "" "ova disk has no parent controller, please report this as a bug supplying the " "*.ovf file extracted from the ova" msgstr "" #: output/output_ovirt_upload.ml:367 msgid "" "ovirt-upload: -of %s: Only output format ‘raw’ or ‘qcow2’ is supported. If " "the input is in a different format then force one of these output formats by " "adding either ‘-of raw’ or ‘-of qcow2’ on the command line." msgstr "" #: common/mlcustomize/password.ml:51 msgid "" "password-crypto: unknown algorithm %s, use \"md5\", \"sha256\", \"sha512\" " "or \"yescrypt\"" msgstr "" #: common/mlcustomize/password.ml:197 msgid "" "password: using insecure md5 password encryption for guest of type %s " "version %d.%d.\n" "If this is incorrect, use --password-crypto option and file a bug." msgstr "" #: common/mlcustomize/customize_run.ml:359 msgid "passwords could not be set for this type of guest" msgstr "" #: lib/qemuNBD.ml:125 msgid "" "qemu-nbd did not start up. See previous debugging messages for problems." msgstr "" #: lib/qemuNBD.ml:127 msgid "" "qemu-nbd did not start up. There may be errors printed by qemu-nbd above.\n" "\n" "If the messages above are not sufficient to diagnose the problem then add " "the ‘virt-v2v -v -x’ options and examine the debugging output carefully." msgstr "" #: lib/qemuNBD.ml:47 msgid "qemu-nbd: unexpected version in --version: %s" msgstr "" #: common/mlcustomize/customize_run.ml:77 msgid "random seed could not be set for this type of guest" msgstr "" #: input/parse_domain_from_vmx.ml:44 msgid "remote vmx ‘%s’ could not be parsed as a URI" msgstr "" #. common/mlcustomize/inject_virtio_win.ml:357 #. common/mlcustomize/inject_virtio_win.ml:352 #: common/mlcustomize/inject_virtio_win.ml:362 msgid "" "root directory ‘/’ is missing from the virtio-win directory or ISO.\n" "\n" "This should not happen and may indicate that virtio-win or virt-v2v is " "broken in some way. Please report this as a bug with a full debug log." msgstr "" #: common/mltools/tools_utils.ml:417 common/options/keys.c:264 #, c-format msgid "selector '%s': invalid TYPE" msgstr "" #: common/mltools/tools_utils.ml:409 common/options/keys.c:254 #, c-format msgid "selector '%s': missing FILENAME, or too many fields" msgstr "" #: common/mltools/tools_utils.ml:399 common/options/keys.c:232 #, c-format msgid "selector '%s': missing ID" msgstr "" #: common/mltools/tools_utils.ml:404 common/options/keys.c:245 #, c-format msgid "selector '%s': missing KEY_STRING, or too many fields" msgstr "" #: common/mltools/tools_utils.ml:401 common/options/keys.c:239 #, c-format msgid "selector '%s': missing TYPE" msgstr "" #: common/mltools/tools_utils.ml:413 common/options/keys.c:262 #, c-format msgid "selector '%s': too many fields" msgstr "" #: lib/utils.ml:35 msgid "signalled by signal %d" msgstr "" #: common/mlcustomize/guest_packages.ml:40 msgid "" "sorry, ‘%s’ with the ‘%s’ package manager has not been implemented yet.\n" "\n" "You can work around this by using one of the ‘--run*’ or ‘--firstboot*’ " "options instead (described in the virt-customize(1) manual)." msgstr "" #: common/mlcustomize/ssh_key.ml:57 msgid "ssh-inject: $HOME environment variable is not set" msgstr "" #: common/mlcustomize/ssh_key.ml:93 msgid "ssh-inject: key is an empty string" msgstr "" #: common/mlcustomize/ssh_key.ml:66 msgid "ssh-inject: no public key file found in %s" msgstr "" #: common/mlcustomize/ssh_key.ml:83 msgid "ssh-inject: public key file (%s) is empty" msgstr "" #: common/mlcustomize/ssh_key.ml:112 msgid "ssh-inject: the user %s does not exist on the guest" msgstr "" #. common/mltools/tools_utils.ml:461 #: lib/utils.ml:36 common/mltools/tools_utils.ml:542 msgid "stopped by signal %d" msgstr "" #: output/changeuid.ml:58 msgid "subprocess exited with non-zero error code %d" msgstr "" #: output/changeuid.ml:60 msgid "subprocess signalled or stopped by signal %d" msgstr "" #: lib/utils.ml:33 msgid "success" msgstr "" #: output/create_libvirt_xml.ml:297 msgid "" "target hypervisor does not support floppy devices, but floppy devices were " "found in the source guest" msgstr "" #: output/output_ovirt_upload.ml:156 msgid "" "the Python module ‘ovirtsdk4’ could not be loaded, is it installed? See " "previous messages for problems." msgstr "" #: output/output_ovirt_upload.ml:453 msgid "the cluster ‘%s’ does not support the architecture %s but %s" msgstr "" #: common/mlcustomize/customize_run.ml:59 msgid "" "the command may have failed because the network is disabled. Try either " "removing ‘--no-network’ or adding ‘--network’ on the command line." msgstr "" #: common/mltools/JSON_parser.ml:84 msgid "the key ‘%s’ was not found in a list of objects" msgstr "" #: output/output_ovirt_upload.ml:288 msgid "" "the number of ‘-oo ovirt-disk-uuid’ parameters passed on the command line " "has to match the number of guest disk images (for this guest: %d)" msgstr "" #: output/output_vdsm.ml:133 msgid "" "the number of ‘-oo vdsm-image-uuid’ and ‘-oo vdsm-vol-uuid’ parameters " "passed on the command line has to match the number of guest disk images (for " "this guest: %d)" msgstr "" #: output/output_libvirt.ml:239 msgid "the target hypervisor does not support a %s KVM guest" msgstr "" #: common/mltools/JSON_parser.ml:78 msgid "the value for key ‘%s’ is not a string as expected" msgstr "" #: common/mltools/JSON_parser.ml:50 msgid "the value for the key ‘%s’ is not a bool" msgstr "" #: common/mltools/JSON_parser.ml:45 msgid "the value for the key ‘%s’ is not a string" msgstr "" #: common/mltools/JSON_parser.ml:70 msgid "the value for the key ‘%s’ is not an integer" msgstr "" #: common/mltools/JSON_parser.ml:55 msgid "the value for the key ‘%s’ is not an object" msgstr "" #: common/mltools/JSON_parser.ml:59 msgid "the value is not an object" msgstr "" #: common/mltools/JSON_parser.ml:35 msgid "the value of the key ‘%s’ is not an object" msgstr "" #: lib/create_ovf.ml:519 msgid "" "the virtual size of the input disk %d is not an exact multiple of 512 " "bytes. The virtual size is: %Ld.\n" "\n" "This probably means something unexpected is going on, so please file a bug " "about this issue." msgstr "" #: output/output_openstack.ml:144 msgid "" "the ‘%s’ program is not available. It is needed to communicate with " "OpenStack." msgstr "" #: output/output_ovirt.ml:265 msgid "" "there are multiple UUIDs in the %s (%s). This is unexpected, and may be a " "bug in virt-v2v or OVirt." msgstr "" #: output/output_ovirt.ml:262 msgid "there are no UUIDs in the %s (%s). Is it really an OVirt %s?" msgstr "" #: common/mlcustomize/inject_virtio_win.ml:153 msgid "" "there are no virtio drivers available for this version of Windows (%d.%d %s " "%s %s). virt-v2v looks for drivers in %s\n" "\n" "The guest will be configured to use slower emulated devices." msgstr "" #: common/mlcustomize/inject_virtio_win.ml:175 msgid "" "there is no virtio block device driver for this version of Windows (%d.%d " "%s). virt-v2v looks for this driver in %s\n" "\n" "The guest will be configured to use a slower emulated device." msgstr "" #: common/mlcustomize/inject_virtio_win.ml:206 msgid "" "there is no virtio network driver for this version of Windows (%d.%d %s). " "virt-v2v looks for this driver in %s\n" "\n" "The guest will be configured to use a slower emulated device." msgstr "" #: input/parse_libvirt_xml.ml:545 msgid "this guest has a direct network interface which will be ignored" msgid_plural "this guest has direct network interfaces which will be ignored" msgstr[0] "" msgstr[1] "" #: input/parse_libvirt_xml.ml:527 msgid "this guest has a passthrough host device which will be ignored" msgid_plural "this guest has passthrough host devices which will be ignored" msgstr[0] "" msgstr[1] "" #: input/parse_libvirt_xml.ml:248 msgid "this guest has no non-removable disks" msgstr "" #: output/output.ml:65 msgid "this output module doesn't support copying more than %d disks" msgstr "" #: common/mlcustomize/timezone.ml:35 msgid "timezone '%s' does not exist, use a location like 'Europe/London'" msgstr "" #: common/mlcustomize/customize_run.ml:304 msgid "timezone could not be set for this type of guest" msgstr "" #: input/OVA.ml:318 msgid "unable to parse line from manifest file: %S" msgstr "" #: common/mltools/urandom.ml:37 msgid "unexpected end of file while reading /dev/urandom" msgstr "" #: input/input_libvirt.ml:196 msgid "unexpected output from the %s command" msgstr "" #: common/mltools/checksums.ml:58 msgid "unhandled checksum type ‘%s’" msgstr "" #: lib/types.ml:524 msgid "unknown --root option: %s" msgstr "" #: input/select_input.ml:51 msgid "unknown -i option: %s" msgstr "" #: output/select_output.ml:74 msgid "unknown -o option: %s" msgstr "" #: v2v/v2v.ml:164 msgid "unknown -oa option: %s" msgstr "" #: input/input_libvirt.ml:189 msgid "unknown method='%s'" msgstr "" #: input/OVF.ml:103 msgid "unknown Config:firmware value %s (expected \"bios\" or \"efi\")" msgstr "" #: lib/create_ovf.ml:446 lib/create_ovf.ml:247 msgid "unknown Windows 10 variant: %s (%s)" msgstr "" #: v2v/v2v.ml:319 in-place/in_place.ml:256 msgid "unknown block driver ‘--block-driver %s’" msgstr "" #: input/parse_domain_from_vmx.ml:415 msgid "unknown firmware value '%s', assuming BIOS" msgstr "" #: lib/create_ovf.ml:454 lib/create_ovf.ml:255 msgid "unknown guest operating system: %s %s %d.%d %s (%s)" msgstr "" #: v2v/v2v.ml:329 open/open.ml:132 inspector/inspector.ml:238 msgid "unknown input transport ‘-it %s’" msgstr "" #: input/parse_domain_from_vmx.ml:428 msgid "unknown sound device '%s' ignored" msgstr "" #: input/parse_libvirt_xml.ml:215 msgid "unknown sound model %s ignored" msgstr "" #: input/OVF.ml:156 msgid "unsupported compression in OVF: %s" msgstr "" #: input/input_vcenter_https.ml:123 msgid "" "vcenter: was not found in the XML. You need to " "upgrade to libvirt ≥ 1.2.20." msgstr "" #: input/vCenter.ml:79 msgid "vcenter: URL not found: %s" msgstr "" #: input/vCenter.ml:70 msgid "vcenter: incorrect username or password" msgstr "" #: input/vCenter.ml:72 msgid "" "vcenter: incorrect username or password. You might need to specify the " "username in the URI like this: [vpx|esx|..]://USERNAME@[etc]" msgstr "" #: input/vCenter.ml:84 msgid "vcenter: invalid response from server: %s" msgstr "" #: input/vCenter.ml:194 msgid "vcenter: no status code in output of ‘curl’ command." msgstr "" #: output/output_vdsm.ml:148 msgid "vdsm: invalid -os parameter does not contain a valid UUID: %s" msgstr "" #: output/output_openstack.ml:56 msgid "" "virt-v2v -oo server-id= [os-*=...]\n" "\n" "Specify the name or UUID of the conversion appliance using\n" "\n" " virt-v2v ... -o openstack -oo server-id=\n" "\n" "When virt-v2v runs it will attach the Cinder volumes to the\n" "conversion appliance, so this name or UUID must be the name\n" "of the virtual machine on OpenStack where virt-v2v is running.\n" "\n" "In addition, all usual OpenStack “os-*” parameters or “OS_*”\n" "environment variables can be used.\n" "\n" "Openstack “--os-*” parameters must be written as “virt-v2v -oo os-*”.\n" "\n" "For example:\n" "\n" " virt-v2v -oo os-username=\n" "\n" " equivalent to openstack: --os-username=\n" " or the environment variable: OS_USERNAME=\n" "\n" " virt-v2v -oo os-project-name=\n" "\n" " equivalent to openstack: --os-project-name=\n" " or the environment variable: OS_PROJECT_NAME=\n" "\n" "The os-* parameters and environment variables are optional.\n" msgstr "" #: input/parse_libvirt_xml.ml:189 msgid "" "virt-v2v does not support local displays, so in the " "input libvirt XML was ignored" msgstr "" #: input/select_input.ml:83 msgid "virt-v2v-in-place does not support remote libvirt URIs" msgstr "" #: input/parse_domain_from_vmx.ml:50 msgid "vmx URI path component looks incorrect" msgstr "" #: input/parse_domain_from_vmx.ml:48 msgid "vmx URI remote server name omitted" msgstr "" #: input/parse_domain_from_vmx.ml:46 msgid "vmx URI start with ‘ssh://...’" msgstr "" #: input/VMX.ml:313 msgid "vmx parser: cannot parse this line, ignoring: %s" msgstr "" #: input/VMX.ml:346 msgid "vmx parser: duplicate key '%s' ignored" msgstr "" #: output/output_openstack.ml:299 msgid "wait for cinder volume status to change to \"available\"" msgstr "" #: output/output_openstack.ml:360 msgid "waiting for cinder volume %s to attach to the conversion appliance" msgstr "" #: open/open.ml:136 msgid "you must supply the --run parameter" msgstr "" #: input/input_xen_ssh.ml:87 input/input_vddk.ml:189 msgid "‘-ic %s’ URL does not contain a host name field" msgstr "" #: input/input_vddk.ml:273 msgid "‘-io vddk-file=’ must be used exactly %d times" msgstr "" #: input/input_vddk.ml:297 msgid "" "‘-io vddk-libdir=%s’ does not point to a directory. See the virt-v2v-input-" "vmware(1) manual." msgstr "" #: output/output.ml:85 msgid "" "‘-oo compressed’ is only allowed when the output format is a local qcow2-" "format file, i.e. ‘-of qcow2’" msgstr "" #: input/input_vddk.ml:232 msgid "" "‘openssl’ command not found: automatically detecting thumbprint is not " "possible, so you must use ‘-io vddk-thumbprint=XX:XX...’" msgstr "" #: common/mltools/getopt-c.c:68 #, c-format msgid "Try ‘%s --help’ or consult %s(1) for more information.\n" msgstr "" #: common/mltools/getopt-c.c:187 #, c-format msgid "%s: ‘%s’ is not a numeric value.\n" msgstr "" #: common/mltools/getopt-c.c:193 #, c-format msgid "%s: %s: integer out of range\n" msgstr "%s: %s: ഇന്റിജര്‍ പരിധികഴിഞ്ഞിരിക്കുന്നു\n" #: common/mltools/getopt-c.c:383 #, c-format msgid "%s: ‘%s’ is not allowed for -%c; allowed values are:\n" msgstr "" #: common/mltools/getopt-c.c:386 #, c-format msgid "%s: ‘%s’ is not allowed for %s%s; allowed values are:\n" msgstr "" #: common/mltools/getopt-c.c:421 #, c-format msgid "Extra parameter on the command line: ‘%s’.\n" msgstr "" #: common/options/config.c:72 #, c-format msgid "%s: line %d: error parsing configuration file: %s" msgstr "" #: common/options/decrypt.c:52 #, c-format msgid "string size overflow" msgstr "" #: common/options/decrypt.c:170 #, c-format msgid "" "'clevis_luks_unlock', needed for decrypting %s, is unavailable in this " "libguestfs version" msgstr "" #: common/options/decrypt.c:184 #, c-format msgid "" "could not find key to open LUKS encrypted %s.\n" "\n" "Try using --key on the command line.\n" "\n" "Original error: %s (%d)" msgstr "" #: common/options/inspect.c:78 #, c-format msgid "" "%s: no operating system was found on this disk\n" "\n" "If using guestfish ‘-i’ option, remove this option and instead\n" "use the commands ‘run’ followed by ‘list-filesystems’.\n" "You can then mount filesystems you want by hand using the\n" "‘mount’ or ‘mount-ro’ command.\n" "\n" "If using guestmount ‘-i’, remove this option and choose the\n" "filesystem(s) you want to see by manually adding ‘-m’ option(s).\n" "Use ‘virt-filesystems’ to see what filesystems are available.\n" "\n" "If using other virt tools, this disk image won’t work\n" "with these tools. Use the guestfish equivalent commands\n" "(see the virt tool manual page).\n" msgstr "" #: common/options/inspect.c:99 #, c-format msgid "" "%s: multi-boot operating systems are not supported\n" "\n" "If using guestfish ‘-i’ option, remove this option and instead\n" "use the commands ‘run’ followed by ‘list-filesystems’.\n" "You can then mount filesystems you want by hand using the\n" "‘mount’ or ‘mount-ro’ command.\n" "\n" "If using guestmount ‘-i’, remove this option and choose the\n" "filesystem(s) you want to see by manually adding ‘-m’ option(s).\n" "Use ‘virt-filesystems’ to see what filesystems are available.\n" "\n" "If using other virt tools, multi-boot operating systems won’t work\n" "with these tools. Use the guestfish equivalent commands\n" "(see the virt tool manual page).\n" msgstr "" #: common/options/inspect.c:161 #, c-format msgid "%s: some filesystems could not be mounted (ignored)\n" msgstr "" #: common/options/inspect.c:178 #, c-format msgid "Operating system: %s\n" msgstr "" #: common/options/inspect.c:196 #, c-format msgid "%s mounted on %s\n" msgstr "" #: common/options/keys.c:63 #, c-format msgid "Enter key or passphrase (\"%s\"): " msgstr "" #: common/options/keys.c:146 #, c-format msgid "size_t overflow" msgstr "" #: common/options/keys.c:193 #, c-format msgid "could not read key from user" msgstr "" #: common/options/options.c:283 #, c-format msgid "%s: ‘%s’ could not be mounted.\n" msgstr "" #: common/options/options.c:287 #, c-format msgid "" "%s: Check mount(8) man page to ensure options ‘%s’\n" "%s: are supported by the filesystem that is being mounted.\n" msgstr "" #: common/options/options.c:291 #, c-format msgid "%s: Did you mean to mount one of these filesystems?\n" msgstr "" #: common/options/options.c:304 #, c-format msgid "cannot determine the subvolume for %s: %s (%d)" msgstr "" #: common/options/uri.c:119 #, c-format msgid "%s: --add: could not parse URI ‘%s’\n" msgstr "" #: common/options/uri.c:130 #, c-format msgid "%s: %s: scheme of URI is NULL or empty\n" msgstr "" #: common/options/uri.c:138 #, c-format msgid "%s: %s: cannot have both a server name and a socket query parameter\n" msgstr "" #: common/utils/utils.c:107 #, c-format msgid "%s exited successfully" msgstr "" #: common/utils/utils.c:110 #, c-format msgid "%s exited with error status %d" msgstr "" #: common/utils/utils.c:114 #, c-format msgid "%s killed by signal %d (%s)" msgstr "" #: common/utils/utils.c:118 #, c-format msgid "%s stopped by signal %d (%s)" msgstr "" #: common/utils/utils.c:122 #, c-format msgid "%s exited for an unknown reason (status %d)" msgstr "" ================================================ FILE: po/mr.po ================================================ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR Red Hat Inc. # This file is distributed under the same license as the PACKAGE package. # # Translators: # rjones , 2011 # sandeeps , 2011 msgid "" msgstr "" "Project-Id-Version: libguestfs 1.39.12\n" "Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?" "component=libguestfs&product=Virtualization+Tools\n" "POT-Creation-Date: 2025-02-16 17:05+0000\n" "PO-Revision-Date: 2015-02-21 10:51+0000\n" "Last-Translator: Copied by Zanata \n" "Language-Team: Marathi (http://www.transifex.com/projects/p/libguestfs/" "language/mr/)\n" "Language: mr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Zanata 4.6.2\n" #: input/input_ova.ml:135 common/mltools/tools_utils.ml:235 msgid "%s" msgstr "" #: common/mltools/getopt.ml:73 msgid "" "%s\n" "Options:\n" msgstr "" #: common/mltools/tools_utils.ml:695 common/mlcustomize/customize_run.ml:390 msgid "%s (ignored)" msgstr "" #: common/mltools/checksums.ml:71 msgid "%s did not return any output" msgstr "" #: common/mlcustomize/customize_run.ml:183 msgid "%s does not exist in the guest" msgstr "" #: output/output_ovirt.ml:275 msgid "" "%s does not exist or is not a directory.\n" "\n" "Most likely cause: Either the %s (%s) has not been attached to any Data " "Center, or the path %s is not an %s at all.\n" "\n" "You have to attach the %s to a Data Center using the oVirt user interface " "first.\n" "\n" "If you don’t know what the %s mount point should be then you can also find " "this out through the oVirt user interface." msgstr "" #: common/mlcustomize/customize_run.ml:113 msgid "%s ignored for non-Windows guest" msgstr "" #: common/mlcustomize/customize_run.ml:186 msgid "%s is not a regular file in the guest" msgstr "" #. open/open.ml:39 #. inspector/inspector.ml:153 #. inspector/inspector.ml:40 #. in-place/in_place.ml:164 #. in-place/in_place.ml:45 #: v2v/v2v.ml:194 v2v/v2v.ml:183 v2v/v2v.ml:159 v2v/v2v.ml:44 open/open.ml:68 msgid "%s option used more than once on the command line" msgstr "" #: common/mltools/tools_utils.ml:231 common/mltools/tools_utils.ml:202 msgid "%s: %s" msgstr "" #: common/mltools/tools_utils.ml:233 msgid "%s: %s: %s" msgstr "" #: common/mltools/on_exit.ml:77 msgid "" "%s: Exiting on signal %s\n" "%!" msgstr "" #: common/mlcustomize/inject_virtio_win.ml:411 msgid "%s: cannot open virtio-win ISO file: %s" msgstr "" #: common/mlcustomize/customize_run.ml:64 msgid "%s: command exited with an error" msgstr "" #: v2v/v2v.ml:277 msgid "" "%s: convert a guest to use KVM\n" "\n" "virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi -os imported " "esx_guest\n" "\n" "virt-v2v -i libvirtxml guest-domain.xml -o local -os /var/tmp\n" "\n" "virt-v2v -i disk disk.img -o local -os /var/tmp\n" "\n" "There is a companion front-end called \"virt-p2v\" which comes as an\n" "ISO or CD image that can be booted on physical machines.\n" "\n" "A short summary of the options is given below. For detailed help please\n" "read the man page virt-v2v(1).\n" msgstr "" #: in-place/in_place.ml:217 msgid "" "%s: convert a guest to use KVM in-place\n" "\n" "Note this program modifies the guest in-place with no backup.\n" "Normally you should use virt-v2v.\n" "\n" "virt-v2v-in-place -i libvirtxml guest-domain.xml\n" "\n" "virt-v2v-in-place -i disk disk.img\n" "\n" "A short summary of the options is given below. For detailed help please\n" "read the man page virt-v2v-in-place(1).\n" msgstr "" #: input/input_vddk.ml:207 msgid "%s: enter password for ‘%s’: " msgstr "" #: common/mltools/tools_utils.ml:172 msgid "%s: error: %s" msgstr "" #: inspector/inspector.ml:198 msgid "" "%s: estimate disk space needed before virt-v2v conversion\n" "\n" "virt-v2v-inspector -i disk disk.img [-O output.xml]\n" "\n" "A short summary of the options is given below. For detailed help please\n" "read the man page virt-v2v-inspector(1).\n" msgstr "" #: open/open.ml:94 msgid "" "%s: open the virt-v2v input and run a program on it\n" "\n" "virt-v2v-open -i disk disk.img --run 'virt-inspector --format=raw @@'\n" "\n" "A short summary of the options is given below. For detailed help please\n" "read the man page virt-v2v-open(1).\n" msgstr "" #: common/mltools/tools_utils.ml:726 msgid "%s: operation timed out" msgstr "" #: input/OVA.ml:127 input/OVA.ml:121 msgid "" "%s: unsupported file format\n" "\n" "Formats which we currently understand for '-i ova' are: tar (uncompressed, " "compress with gzip or xz), zip" msgstr "" #: common/mltools/tools_utils.ml:191 msgid "%s: warning: %s" msgstr "" #. common/mlcustomize/customize_cmdline.ml:258 #: common/mlcustomize/customize_cmdline.ml:367 msgid "'CMD+ARGS'" msgstr "" #: common/mlcustomize/customize_run.ml:133 msgid "" "--append-line: line must not contain newline characters. Use the --append-" "line option multiple times to add several lines." msgstr "" #: common/mlcustomize/customize_run.ml:152 msgid "--chown: could not parse numeric UID:GID from %s:%s" msgstr "" #: common/mlcustomize/customize_run.ml:216 msgid "" "--inject-blnsvr: blnsvr.exe not found in virtio-win source that you specified" msgstr "" #: common/mlcustomize/customize_run.ml:225 msgid "" "--inject-qemu-ga: QEMU Guest Agent MSI not found in virtio-win source that " "you specified" msgstr "" #: common/mlcustomize/customize_run.ml:241 msgid "" "--inject-virtio-win: virtio drivers were not found for this Windows version " "in the virtio-win source that you specified" msgstr "" #: v2v/v2v.ml:146 inspector/inspector.ml:136 in-place/in_place.ml:143 msgid "--mac ip prefix length field is out of range" msgstr "" #: v2v/v2v.ml:340 msgid "--parallel parameter must be >= 1" msgstr "" #: input/input_disk.ml:42 msgid "-i disk: expecting a disk image (filename) on the command line" msgstr "" #: input/input_xen_ssh.ml:65 msgid "-i libvirt: expecting -ic parameter for Xen over SSH connection" msgstr "" #: input/input_vddk.ml:142 input/input_vcenter_https.ml:88 msgid "-i libvirt: expecting -ic parameter for vcenter connection" msgstr "" #: input/input_vcenter_https.ml:101 msgid "-i libvirt: expecting -ic parameter to contain vcenter server name" msgstr "" #: input/input_vcenter_https.ml:78 msgid "-i libvirt: expecting -ip passwordfile parameter for vCenter connection" msgstr "" #. input/input_vcenter_https.ml:70 #. input/input_libvirt.ml:41 #: input/input_xen_ssh.ml:57 input/input_vddk.ml:132 msgid "-i libvirt: expecting a libvirt guest name on the command line" msgstr "" #: input/input_libvirt.ml:59 msgid "-i libvirtxml: expecting a libvirt XML filename on the command line" msgstr "" #: input/input_ova.ml:243 msgid "-i ova: OVF references file ‘%s’ which was not found in the OVA archive" msgstr "" #: input/input_ova.ml:78 msgid "" "-i ova: corrupt OVA: checksum of disk %s does not match manifest (actual = " "%s, expected = %s)" msgstr "" #: input/input_ova.ml:52 msgid "-i ova: expecting an OVA file name on the command line" msgstr "" #: input/OVA.ml:361 msgid "" "-i ova: invalid OVA file: path ‘%s’ references a file outside the archive" msgstr "" #: input/input_vmx.ml:57 msgid "-i vmx: cannot use -it vddk in this input mode" msgstr "" #: input/input_vmx.ml:60 msgid "-i vmx: expecting a VMX file or ssh:// URI" msgstr "" #: input/vCenter.ml:159 msgid "" "-ip PASSWORD_FILE parameter ignored because 'user@' was not given in the URL" msgstr "" #: input/input_vddk.ml:119 msgid "-it vddk: ‘-io %s’ is not a valid input option" msgstr "" #: output/output.ml:54 msgid "-o %s: %s option cannot be used in this output mode" msgstr "" #: output/output_disk.ml:66 msgid "-o disk: output directory was not specified, use '-os /dir'" msgstr "" #: output/output_libvirt.ml:59 output/output_disk.ml:56 msgid "-o disk: unknown output option ‘-oo %s’" msgstr "" #: output/output_kubevirt.ml:81 msgid "-o kubevirt: output directory was not specified, use '-os /dir'" msgstr "" #: output/output_kubevirt.ml:91 msgid "" "-o kubevirt: the guest name must contain only lowercase alphanumeric " "characters, '-' or '.', and must start and end with an alphanumeric " "character. Rerun virt-v2v with the '-on name' option to rename it." msgstr "" #: output/output_kubevirt.ml:71 msgid "-o kubevirt: unknown output option ‘-oo %s’" msgstr "" #: output/output_libvirt.ml:120 msgid "" "-o libvirt: output pool ‘%s’ does not have /pool/target/path element. See " "virt-v2v-output-local(1)" msgstr "" #: output/output_libvirt.ml:124 msgid "" "-o libvirt: output pool ‘%s’ has type='dir' but the /pool/target/path " "element is not a local directory. See virt-v2v-output-local(1)" msgstr "" #: output/output_libvirt.ml:116 msgid "" "-o libvirt: output pool ‘%s’ is not a directory (type='dir'). See virt-v2v-" "output-local(1)" msgstr "" #: output/output_openstack.ml:88 msgid "-o openstack mode only supports -oa sparse -of raw" msgstr "" #: output/output_openstack.ml:115 msgid "-o openstack: unknown output option ‘-oo %s’" msgstr "" #: output/output_ovirt_upload.ml:97 msgid "-o ovirt-upload: -oo ovirt-cafile set more than once" msgstr "" #: output/output_ovirt_upload.ml:101 msgid "-o ovirt-upload: -oo ovirt-cluster set more than once" msgstr "" #: output/output_ovirt_upload.ml:112 msgid "-o ovirt-upload: invalid UUID for -oo ovirt-disk-uuid" msgstr "" #: output/output_ovirt_upload.ml:76 msgid "" "-o ovirt-upload: output password file was not specified, use ‘-op’ to point " "to a file which contains the password used to connect to the oVirt server" msgstr "" #: output/output_ovirt_upload.ml:83 msgid "-o ovirt-upload: output storage was not specified, use ‘-os’" msgstr "" #: output/output_ovirt_upload.ml:116 msgid "-o ovirt-upload: unknown output option ‘-oo %s’" msgstr "" #: output/output_ovirt_upload.ml:68 msgid "" "-o ovirt-upload: use ‘-oc’ to point to the oVirt server REST API URL, which " "is usually https://servername/ovirt-engine/api" msgstr "" #: output/output_ovirt.ml:51 msgid "-o ovirt: -os option was not specified" msgstr "" #: output/output_qemu.ml:72 msgid "-o qemu: output directory was not specified, use '-os /dir'" msgstr "" #: output/output_qemu.ml:63 msgid "-o qemu: unknown output option ‘-oo %s’" msgstr "" #: output/output_vdsm.ml:102 msgid "-o vdsm: -oo vdsm-image-uuid was not specified" msgstr "" #: output/output_vdsm.ml:81 msgid "-o vdsm: -oo vdsm-ovf-output set more than once" msgstr "" #: output/output_vdsm.ml:77 msgid "-o vdsm: -oo vdsm-vm-uuid set more than once" msgstr "" #: output/output_vdsm.ml:110 msgid "-o vdsm: -os option was not specified" msgstr "" #: output/output_vdsm.ml:97 msgid "-o vdsm: either -oo vdsm-vol-uuid or -oo vdsm-vm-uuid was not specified" msgstr "" #: output/output_vdsm.ml:90 msgid "-o vdsm: unknown output option ‘-oo %s’" msgstr "" #: output/output_vdsm.ml:74 msgid "-o vdsm: unknown vdsm-compat level ‘%s’" msgstr "" #. output/output_kubevirt.ml:84 #. output/output_disk.ml:68 #: output/output_vdsm.ml:112 output/output_qemu.ml:74 msgid "-os %s: output directory does not exist or is not a directory" msgstr "" #: input/parse_libvirt_xml.ml:279 msgid " missing 'method' attribute, ignoring" msgstr "" #: input/parse_libvirt_xml.ml:291 msgid " unknown fail='%s' attribute, ignoring" msgstr "" #: input/parse_libvirt_xml.ml:370 input/parse_libvirt_xml.ml:317 msgid " was ignored" msgstr "" #: input/parse_libvirt_xml.ml:338 msgid " with was ignored" msgstr "" #: input/parse_libvirt_xml.ml:365 msgid " with was ignored" msgstr "" #: input/parse_libvirt_xml.ml:299 msgid " element with no type attribute ignored" msgstr "" #: input/parse_libvirt_xml.ml:167 msgid " in the input libvirt XML was ignored" msgstr "" #: input/parse_libvirt_xml.ml:414 msgid "" " was ignored because the device name could not be recognized" msgstr "" #: input/input_vddk.ml:176 msgid "" " was not found in the output of ‘virsh dumpxml \"%s\"’. The " "most likely reason is that libvirt is too old, try upgrading libvirt to ≥ " "3.7." msgstr "" #: common/mlcustomize/customize_cmdline.ml:305 msgid "Add package(s) to install" msgstr "" #: common/mlcustomize/customize_cmdline.ml:270 msgid "Add package(s) to install at first boot" msgstr "" #: common/mlcustomize/customize_cmdline.ml:175 msgid "Append line(s) to the file" msgstr "" #: common/mlcustomize/customize_run.ml:137 msgid "Appending line to %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:197 msgid "Change the owner user and group ID of a file or directory" msgstr "" #: common/mlcustomize/customize_cmdline.ml:186 msgid "Change the permissions of a file" msgstr "" #: common/mlcustomize/customize_run.ml:155 msgid "Changing owner of %s to %d:%d" msgstr "" #: common/mlcustomize/customize_run.ml:141 msgid "Changing permissions of %s to %s" msgstr "" #: input/input_libvirt.ml:174 input/input_libvirt.ml:157 msgid "Checking %s checksum of disk %d/%d" msgstr "" #: common/mlcustomize/customize_cmdline.ml:488 msgid "Compatibility option doing nothing" msgstr "" #: common/mlcustomize/customize_cmdline.ml:219 msgid "Copy files in disk image" msgstr "" #: common/mlcustomize/customize_cmdline.ml:397 msgid "Copy local files or directories from a tarball into image" msgstr "" #: common/mlcustomize/customize_cmdline.ml:230 msgid "Copy local files or directories into image" msgstr "" #: common/mlcustomize/customize_run.ml:168 msgid "Copying (in image): %s to %s" msgstr "" #: v2v/v2v.ml:518 msgid "Copying disk %d/%d" msgstr "" #: common/mlcustomize/customize_run.ml:172 msgid "Copying: %s to %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:322 msgid "Create a directory" msgstr "" #: common/mlcustomize/customize_cmdline.ml:316 msgid "Create symbolic links" msgstr "" #: v2v/v2v.ml:567 msgid "Creating output metadata" msgstr "" #: common/mlcustomize/customize_cmdline.ml:321 msgid "DIR" msgstr "" #: common/mlcustomize/customize_cmdline.ml:236 msgid "Delete a file or directory" msgstr "" #: common/mlcustomize/customize_run.ml:176 msgid "Deleting: %s" msgstr "" #: common/mltools/getopt.ml:225 msgid "Display brief help" msgstr "" #: common/mltools/tools_utils.ml:385 msgid "Display version and exit" msgstr "" #: common/mlcustomize/customize_cmdline.ml:482 msgid "Do not relabel files with correct SELinux labels" msgstr "" #: v2v/v2v.ml:248 inspector/inspector.ml:177 in-place/in_place.ml:190 msgid "Don't trim filesystems before conversion" msgstr "" #: common/mltools/tools_utils.ml:389 msgid "Don’t print progress messages" msgstr "" #: common/mltools/tools_utils.ml:420 msgid "Don’t turn off echo for passphrases" msgstr "" #: common/mlcustomize/customize_cmdline.ml:247 msgid "Edit file using Perl expression" msgstr "" #: common/mlcustomize/customize_run.ml:180 msgid "Editing: %s" msgstr "" #: common/mltools/tools_utils.ml:386 msgid "Enable libguestfs debugging messages" msgstr "" #: common/mltools/tools_utils.ml:387 msgid "Enable tracing of libguestfs calls" msgstr "" #: output/output_ovirt.ml:77 msgid "Export Storage Domain" msgstr "" #: open/open.ml:88 msgid "External command to run" msgstr "" #. common/mlcustomize/customize_cmdline.ml:408 #. common/mlcustomize/customize_cmdline.ml:373 #: common/mlcustomize/customize_cmdline.ml:414 msgid "FILE" msgstr "" #: common/mlcustomize/customize_cmdline.ml:455 msgid "FILE:CONTENT" msgstr "" #: common/mlcustomize/customize_cmdline.ml:444 msgid "FILE:DEST" msgstr "" #: common/mlcustomize/customize_cmdline.ml:242 msgid "FILE:EXPR" msgstr "" #: common/mlcustomize/customize_cmdline.ml:170 msgid "FILE:LINE" msgstr "" #: common/mlcustomize/customize_cmdline.ml:203 msgid "FILENAME" msgstr "" #. in-place/in_place.ml:378 #: v2v/v2v.ml:571 open/open.ml:220 inspector/inspector.ml:334 msgid "Finishing off" msgstr "" #: common/mlcustomize/customize_cmdline.ml:275 msgid "HOSTNAME" msgstr "" #: v2v/v2v.ml:254 inspector/inspector.ml:183 in-place/in_place.ml:194 msgid "How to choose root filesystem" msgstr "" #: common/mltools/tools_utils.ml:177 msgid "" "If reporting bugs, run %s with debugging enabled and include the complete " "output:\n" "\n" " %s -v -x [...]" msgstr "" #: common/mlcustomize/customize_cmdline.ml:386 msgid "Inject a public key into the guest" msgstr "" #: common/mlcustomize/customize_cmdline.ml:282 msgid "Inject the Balloon Server into a Windows guest" msgstr "" #: common/mlcustomize/customize_cmdline.ml:288 msgid "Inject the QEMU Guest Agent into a Windows guest" msgstr "" #: common/mlcustomize/customize_cmdline.ml:294 msgid "Inject virtio-win drivers into a Windows guest" msgstr "" #. in-place/in_place.ml:176 #: v2v/v2v.ml:216 open/open.ml:80 inspector/inspector.ml:165 msgid "Input format" msgstr "" #: input/input_vddk.ml:77 msgid "" "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" "\n" "Refer to nbdkit-vddk-plugin(1) and the VDDK documentation for further\n" "information on these settings.\n" msgstr "" #: v2v/v2v.ml:222 open/open.ml:86 inspector/inspector.ml:171 msgid "Input transport" msgstr "" #: common/mlcustomize/customize_run.ml:191 msgid "Installing firstboot command: %s" msgstr "" #: common/mlcustomize/customize_run.ml:195 msgid "Installing firstboot packages: %s" msgstr "" #: common/mlcustomize/customize_run.ml:202 msgid "Installing firstboot script: %s" msgstr "" #: common/mlcustomize/customize_run.ml:248 msgid "Installing packages: %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:225 msgid "LOCALPATH:REMOTEDIR" msgstr "" #. in-place/in_place.ml:174 #: v2v/v2v.ml:214 open/open.ml:78 inspector/inspector.ml:163 msgid "Libvirt URI" msgstr "" #: common/mlcustomize/customize_run.ml:255 msgid "Linking: %s -> %s" msgstr "" #. common/mlcustomize/customize_cmdline.ml:287 #. common/mlcustomize/customize_cmdline.ml:281 #: common/mlcustomize/customize_cmdline.ml:293 msgid "METHOD" msgstr "" #: common/mltools/tools_utils.ml:426 msgid "Make output machine readable" msgstr "" #: common/mlcustomize/customize_run.ml:260 msgid "Making directory: %s" msgstr "" #: v2v/v2v.ml:226 inspector/inspector.ml:173 in-place/in_place.ml:182 msgid "Map NIC to network or bridge or assign static IP" msgstr "" #: v2v/v2v.ml:210 inspector/inspector.ml:159 in-place/in_place.ml:170 msgid "Map bridge ‘in’ to ‘out’" msgstr "" #: v2v/v2v.ml:230 inspector/inspector.ml:179 in-place/in_place.ml:186 msgid "Map network ‘in’ to ‘out’" msgstr "" #: common/mlcustomize/customize_cmdline.ml:333 msgid "Move files in disk image" msgstr "" #: common/mlcustomize/customize_run.ml:264 msgid "Moving: %s -> %s" msgstr "" #. input/input_vcenter_https.ml:45 #. input/input_ova.ml:35 #. input/input_libvirt.ml:233 #. input/input_libvirt.ml:221 #. input/input_disk.ml:35 #: input/input_xen_ssh.ml:43 input/input_vmx.ml:36 msgid "No input options can be used in this mode.\n" msgstr "" #: output/output_ovirt.ml:40 output/output_null.ml:38 #: output/output_glance.ml:40 msgid "No output options can be used in this mode.\n" msgstr "" #: output/output_vdsm.ml:166 msgid "OVF (metadata) directory (%s) does not exist or is not a directory" msgstr "" #: common/mlcustomize/firstboot.ml:268 msgid "" "One of rhsrvany.exe or pvvxsvc.exe is missing in %s. One of them is " "required in order to install Windows firstboot scripts. You can get one by " "building rhsrvany (https://github.com/rwmjones/rhsrvany)" msgstr "" #: v2v/v2v.ml:236 msgid "Output hypervisor connection" msgstr "" #: output/output_ovirt_upload.ml:51 msgid "" "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" "\n" "You can override the UUIDs of the disks, instead of using autogenerated " "UUIDs\n" "after their uploads (if you do, you must supply one for each disk):\n" "\n" " -oo ovirt-disk-uuid=UUID Disk UUID\n" msgstr "" #: output/output_qemu.ml:44 msgid "" "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" msgstr "" #: output/output_vdsm.ml:43 msgid "" "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" "\n" "For 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" msgstr "" #: output/output_disk.ml:44 msgid "" "Output options that can be used with -o disk:\n" "\n" " -oo compressed Compress the output file (used only with -of qcow2)\n" msgstr "" #: output/output_kubevirt.ml:51 msgid "" "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" msgstr "" #: output/output_libvirt.ml:47 msgid "" "Output options that can be used with -o libvirt:\n" "\n" " -oo compressed Compress the output file (used only with -of qcow2)\n" msgstr "" #. common/mlcustomize/customize_cmdline.ml:235 #: common/mlcustomize/customize_cmdline.ml:420 msgid "PATH" msgstr "" #: common/mlcustomize/customize_cmdline.ml:181 msgid "PERMISSIONS:FILE" msgstr "" #. common/mlcustomize/customize_cmdline.ml:300 #. common/mlcustomize/customize_cmdline.ml:265 #: common/mlcustomize/customize_cmdline.ml:427 msgid "PKG,PKG.." msgstr "" #: v2v/v2v.ml:263 in-place/in_place.ml:203 msgid "Prefer 'virtio-blk' or 'virtio-scsi'" msgstr "" #: v2v/v2v.ml:252 in-place/in_place.ml:192 msgid "Print source and stop" msgstr "" #: common/mlcustomize/customize_cmdline.ml:208 msgid "Read customize commands from file" msgstr "" #: common/mltools/tools_utils.ml:421 msgid "Read passphrases from stdin" msgstr "" #: common/mlcustomize/customize_cmdline.ml:421 msgid "Recursively truncate all files in directory" msgstr "" #: common/mlcustomize/customize_run.ml:298 msgid "Recursively truncating: %s" msgstr "" #: v2v/v2v.ml:240 msgid "Rename guest when converting" msgstr "" #: common/mlcustomize/customize_cmdline.ml:259 msgid "Run command at first guest boot" msgstr "" #: common/mlcustomize/customize_cmdline.ml:368 msgid "Run command in disk image" msgstr "" #: common/mlcustomize/customize_cmdline.ml:253 msgid "Run script at first guest boot" msgstr "" #: common/mlcustomize/customize_cmdline.ml:362 msgid "Run script in disk image" msgstr "" #: common/mlcustomize/customize_cmdline.ml:409 msgid "Run touch on a file" msgstr "" #: v2v/v2v.ml:250 msgid "Run up to N instances of nbdcopy in parallel" msgstr "" #: open/open.ml:188 msgid "Running external command" msgstr "" #: common/mlcustomize/customize_run.ml:307 msgid "Running touch: %s" msgstr "" #. common/mlcustomize/customize_run.ml:159 #: common/mlcustomize/customize_run.ml:274 msgid "Running: %s" msgstr "" #. common/mlcustomize/customize_cmdline.ml:252 #: common/mlcustomize/customize_cmdline.ml:361 msgid "SCRIPT" msgstr "" #: common/mltools/tools_utils.ml:422 #: common/mlcustomize/customize_cmdline.ml:351 msgid "SELECTOR" msgstr "" #: common/mlcustomize/customize_run.ml:363 msgid "SELinux relabelling" msgstr "" #. common/mlcustomize/customize_cmdline.ml:214 #: common/mlcustomize/customize_cmdline.ml:328 msgid "SOURCE:DEST" msgstr "" #: common/mlcustomize/customize_run.ml:287 msgid "SSH key could not be injected for this type of guest" msgstr "" #: common/mlcustomize/customize_run.ml:284 msgid "SSH key inject: %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:374 msgid "Scrub a file" msgstr "" #: common/mlcustomize/customize_cmdline.ml:466 msgid "Scrub build log file" msgstr "" #: common/mlcustomize/customize_run.ml:374 msgid "Scrubbing the log file" msgstr "" #: common/mlcustomize/customize_run.ml:279 msgid "Scrubbing: %s" msgstr "" #: v2v/v2v.ml:208 msgid "Set bandwidth dynamically from file" msgstr "" #: v2v/v2v.ml:206 msgid "Set bandwidth to bits per sec" msgstr "" #. in-place/in_place.ml:172 #: v2v/v2v.ml:212 open/open.ml:76 inspector/inspector.ml:161 msgid "Set input mode (default: libvirt)" msgstr "" #: v2v/v2v.ml:228 inspector/inspector.ml:175 in-place/in_place.ml:184 msgid "Set memory size" msgstr "" #: v2v/v2v.ml:256 inspector/inspector.ml:185 in-place/in_place.ml:196 msgid "Set number of vCPUs" msgstr "" #. in-place/in_place.ml:178 #: v2v/v2v.ml:218 open/open.ml:82 inspector/inspector.ml:167 msgid "Set option for input mode" msgstr "" #: v2v/v2v.ml:242 msgid "Set option for output mode" msgstr "" #: v2v/v2v.ml:234 msgid "Set output allocation mode" msgstr "" #: v2v/v2v.ml:238 msgid "Set output format" msgstr "" #: v2v/v2v.ml:232 msgid "Set output mode (default: libvirt)" msgstr "" #: v2v/v2v.ml:246 msgid "Set output storage location" msgstr "" #: common/mlcustomize/customize_cmdline.ml:476 msgid "Set password crypto" msgstr "" #: common/mltools/tools_utils.ml:430 msgid "Set program name" msgstr "" #: common/mlcustomize/customize_cmdline.ml:356 msgid "Set root password" msgstr "" #: common/mlcustomize/customize_cmdline.ml:403 msgid "Set the default timezone" msgstr "" #: common/mlcustomize/customize_cmdline.ml:276 msgid "Set the hostname" msgstr "" #: inspector/inspector.ml:181 in-place/in_place.ml:188 msgid "Set the output filename" msgstr "" #: common/mlcustomize/customize_cmdline.ml:345 msgid "Set user password" msgstr "" #: common/mlcustomize/customize_run.ml:75 msgid "Setting a random seed" msgstr "" #: common/mlcustomize/customize_run.ml:354 msgid "Setting passwords" msgstr "" #: common/mlcustomize/password.ml:113 msgid "Setting random password of %s to %s" msgstr "" #: common/mlcustomize/customize_run.ml:207 msgid "Setting the hostname: %s" msgstr "" #: common/mlcustomize/customize_run.ml:90 msgid "Setting the machine ID in %s" msgstr "" #: common/mlcustomize/customize_run.ml:302 msgid "Setting the timezone: %s" msgstr "" #: v2v/v2v.ml:481 msgid "Setting up the destination: %s" msgstr "" #. in-place/in_place.ml:342 #: v2v/v2v.ml:457 open/open.ml:184 inspector/inspector.ml:310 msgid "Setting up the source: %s" msgstr "" #: v2v/v2v.ml:463 in-place/in_place.ml:348 msgid "Source guest information (--print-source option):\n" msgstr "" #: common/mltools/tools_utils.ml:422 msgid "Specify a LUKS key" msgstr "" #: common/mlcustomize/customize_cmdline.ml:392 msgid "TARFILE:REMOTEDIR" msgstr "" #: common/mlcustomize/customize_cmdline.ml:311 msgid "TARGET:LINK[:LINK..]" msgstr "" #: common/mlcustomize/customize_cmdline.ml:402 msgid "TIMEZONE" msgstr "" #: v2v/v2v.ml:200 msgid "" "The --in-place option has been replaced by the ‘virt-v2v-in-place’ program" msgstr "" #: output/output_qemu.ml:251 msgid "" "The Virt machine has no support for IDE. Please report a bug for virt-v2v -- " "refer to virt-v2v(1) section \"BUGS\"." msgstr "" #: output/output_qemu.ml:272 msgid "" "The Virt machine has no support for floppies. Please report a bug for virt-" "v2v -- refer to virt-v2v(1) section \"BUGS\"." msgstr "" #: lib/create_ovf.ml:785 msgid "" "This guest required a password for connection to its display, but this is " "not supported by oVirt. Therefore the converted guest’s display will not " "require a separate password to connect." msgstr "" #: input/input_vmx.ml:111 msgid "" "This transport does not support guests with snapshots. Either collapse the " "snapshots for this guest and try the conversion again, or use one of the " "alternate conversion methods described in virt-v2v-input-vmware(1) section " "\"NOTES\"." msgstr "" #: common/mlcustomize/customize_cmdline.ml:415 msgid "Truncate a file to zero size" msgstr "" #: common/mlcustomize/customize_run.ml:294 msgid "Truncating: %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:192 msgid "UID:GID:PATH" msgstr "" #: common/mlcustomize/customize_cmdline.ml:339 msgid "USER:SELECTOR" msgstr "" #: common/mlcustomize/customize_cmdline.ml:380 msgid "USER[:SELECTOR]" msgstr "" #: common/mlcustomize/customize_cmdline.ml:432 msgid "Uninstall package(s)" msgstr "" #: common/mlcustomize/customize_run.ml:311 msgid "Uninstalling packages: %s" msgstr "" #: common/mlcustomize/customize_run.ml:290 msgid "Unpack tar file: %s to %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:438 msgid "Update packages" msgstr "" #: common/mlcustomize/customize_run.ml:316 msgid "Updating packages" msgstr "" #: common/mlcustomize/customize_cmdline.ml:449 msgid "Upload local file to destination" msgstr "" #: common/mlcustomize/customize_run.ml:321 msgid "Uploading: %s to %s" msgstr "" #: common/mltools/tools_utils.ml:391 msgid "Use ANSI colour sequences even if not tty" msgstr "" #. in-place/in_place.ml:180 #: v2v/v2v.ml:220 open/open.ml:84 inspector/inspector.ml:169 msgid "Use password from file to connect to input hypervisor" msgstr "" #: v2v/v2v.ml:244 msgid "Use password from file to connect to output hypervisor" msgstr "" #: v2v/v2v.ml:224 msgid "Use virt-v2v-in-place instead" msgstr "" #: common/mltools/tools_utils.ml:392 msgid "Wrap log messages even if not tty" msgstr "" #: common/mlcustomize/customize_cmdline.ml:460 msgid "Write file" msgstr "" #: common/mlcustomize/customize_run.ml:346 msgid "Writing: %s" msgstr "" #: lib/YAML.ml:167 msgid "" "YAML block contains newline character. This should not happen, please " "report a bug against virt-v2v." msgstr "" #: output/output_libvirt.ml:96 msgid "" "a libvirt domain called ‘%s’ already exists on the target.\n" "\n" "If using virt-v2v directly, use the ‘-on’ option to select a different name. " "Or delete the existing domain on the target using the ‘virsh undefine’ " "command.\n" "\n" "If using virt-p2v, select a different ‘Name’ in the ‘Target properties’. Or " "delete the existing domain on the target using the ‘virsh undefine’ command." msgstr "" #: common/mlcustomize/append_line.ml:44 msgid "append_line: %s is not a file" msgstr "" #: input/input_libvirt.ml:206 msgid "" "bad checksum for disk %d/%d\n" "Expected checksum: %s\n" "Actual checksum: %s" msgstr "" #: lib/libvirt_utils.ml:59 msgid "cannot find libvirt domain ‘%s’: %s" msgstr "" #: lib/libvirt_utils.ml:96 msgid "" "cannot find libvirt pool ‘%s’: %s\n" "\n" "Use ‘virsh pool-list --all’ to list all available pools, and ‘virsh pool-" "dumpxml ’ to display details about a particular pool.\n" "\n" "To set the pool which virt-v2v uses, add the ‘-os ’ option." msgstr "" #: lib/libvirt_utils.ml:110 msgid "cannot find libvirt volume ‘%s’: %s" msgstr "" #: common/mlcustomize/firstboot.ml:235 msgid "" "cannot finish firstboot installation by running ‘%s’ because host cpu (%s) " "and guest arch (%s) are not compatible. The firstboot service may not run " "at boot." msgstr "" #: output/output_libvirt.ml:180 msgid "cannot get libvirt domain capabilities: %s" msgstr "" #: output/output_libvirt.ml:85 msgid "cannot get libvirt hypervisor capabilities: %s" msgstr "" #: v2v/v2v.ml:105 inspector/inspector.ml:95 in-place/in_place.ml:102 msgid "cannot parse --mac \"%s\" parameter" msgstr "" #: v2v/v2v.ml:129 inspector/inspector.ml:119 in-place/in_place.ml:126 msgid "cannot parse --mac ip %s: doesn’t look like “%s” is an IP address" msgstr "" #: v2v/v2v.ml:143 inspector/inspector.ml:133 in-place/in_place.ml:140 msgid "cannot parse --mac ip prefix length field as an integer: %s" msgstr "" #: common/mlcustomize/guest_packages.ml:29 msgid "" "cannot use ‘%s’ because no package manager has been detected for this guest " "OS.\n" "\n" "If this guest OS is a common one with ordinary package management then this " "may have been caused by a failure of libguestfs inspection.\n" "\n" "For OSes such as Windows that lack package management, this is not " "possible. Try using one of the ‘--firstboot*’ flags instead (described in " "the virt-customize(1) manual)." msgstr "" #: output/output_ovirt.ml:91 msgid "" "cannot write files to the NFS server as %d:%d, even though we appear to be " "running as root. This probably means the NFS client or idmapd is not " "configured properly.\n" "\n" "You will have to chown the files that virt-v2v creates after the run, " "otherwise oVirt will not be able to import the VM." msgstr "" #: output/output_ovirt.ml:99 msgid "" "cannot write files to the NFS server as %d:%d. You might want to stop virt-" "v2v (^C) and rerun it as root." msgstr "" #: common/mlcustomize/customize_cmdline.ml:508 msgid "command '%s' cannot be used in command files, see the man page" msgstr "" #: common/mlcustomize/customize_cmdline.ml:525 msgid "command '%s' not valid, see the man page" msgstr "" #: common/mldrivers/linux_bootloaders.ml:318 msgid "could not add grub2 serial console (ignored)" msgstr "" #: input/ssh.ml:52 msgid "" "could not copy the VMX file from the remote server, see earlier error " "messages" msgstr "" #: output/output_libvirt.ml:211 msgid "" "could not define libvirt domain: %s.\n" "The libvirt XML is still available in ‘%s’. Try running ‘virsh -c %s define " "%s’ yourself instead." msgstr "" #: common/mldrivers/linux_bootloaders.ml:221 msgid "could not determine a way to update the configuration of Grub2" msgstr "" #: input/input_vddk.ml:243 msgid "" "could not fetch thumbprint from the server, you mus use ‘-io vddk-" "thumbprint=XX:XX...’" msgstr "" #: common/mldrivers/linux_bootloaders.ml:376 msgid "could not find bootloader mount point (%s): %s" msgstr "" #: common/mldrivers/windows_drivers.ml:91 msgid "" "could not find registry entry " "HKEY_LOCAL_MACHINE\\SYSTEM\\DriverDatabase\\DeviceIds in this Windows " "guest. It may be either a very old or very new version of Windows that we " "cannot process." msgstr "" #: common/mlcustomize/firstboot.ml:232 msgid "" "could not finish firstboot installation by running ‘%s’ because the command " "failed: %s" msgstr "" #. input/input_vcenter_https.ml:94 #: input/select_input.ml:66 input/input_xen_ssh.ml:71 input/input_vddk.ml:151 msgid "could not parse '-ic %s'. Original error message was: %s" msgstr "" #: input/parse_libvirt_xml.ml:407 input/parse_libvirt_xml.ml:54 msgid "could not parse device name ‘%s’ from the source libvirt XML" msgstr "" #: input/OVF.ml:168 #, fuzzy #| msgid "could not parse boot size" msgid "could not parse disk rasd:HostResource from OVF document" msgstr "बूट आकार वाचणे अशक्य" #: input/input_ova.ml:98 #, fuzzy #| msgid "could not parse boot size" msgid "could not parse ovf:Name from OVF document" msgstr "बूट आकार वाचणे अशक्य" #: output/output_ovirt.ml:247 msgid "" "could not read the %s specified by the '-os %s' parameter on the command " "line. Is it really an OVirt %s? The original error is: %s" msgstr "" #: common/mldrivers/linux_bootloaders.ml:336 msgid "" "could not rebuild grub2 configuration file (%s). This may mean that grub " "output will not be sent to the serial port, but otherwise should be " "harmless. Original error message: %s" msgstr "" #: output/output_libvirt.ml:156 msgid "could not refresh libvirt pool ‘%s’: %s" msgstr "" #: common/mldrivers/linux_bootloaders.ml:320 msgid "could not remove grub2 serial console (ignored)" msgstr "" #: common/mltools/registry.ml:93 msgid "" "decode_utf16le: Windows UTF16-LE string contains non-7-bit characters. This " "is a bug in %s, please report it." msgstr "" #: common/mltools/registry.ml:87 msgid "" "decode_utf16le: Windows string does not appear to be in UTF16-LE encoding. " "This could be a bug in %s." msgstr "" #: common/mldrivers/linux_bootloaders.ml:126 msgid "didn't find grub entry for kernel %s" msgstr "" #: input/input_disk.ml:150 msgid "disks on the command line have mixed formats" msgstr "" #: input/parse_libvirt_xml.ml:194 msgid "display in the input libvirt XML was ignored" msgstr "" #: output/output_qemu.ml:147 msgid "don’t know how to convert UEFI guests for architecture %s" msgstr "" #: common/mldrivers/linux.ml:158 msgid "don’t know how to find file owner using %s" msgstr "" #: common/mldrivers/linux.ml:89 msgid "don’t know how to get list of files from package using %s" msgstr "" #: common/mltools/curl.ml:82 msgid "downloading %s" msgstr "" #: lib/networks.ml:84 msgid "" "duplicate --mac parameter. Duplicate mappings specified for MAC address %s." msgstr "" #: lib/networks.ml:102 msgid "" "duplicate -b/--bridge parameter. Duplicate mappings specified for bridge %s." msgstr "" #: lib/networks.ml:108 msgid "duplicate -b/--bridge parameter. Only one default mapping is allowed." msgstr "" #: lib/networks.ml:90 msgid "" "duplicate -n/--network parameter. Duplicate mappings specified for network " "%s." msgstr "" #: lib/networks.ml:96 msgid "duplicate -n/--network parameter. Only one default mapping is allowed." msgstr "" #: input/OVF.ml:143 msgid "error parsing disk fileRef" msgstr "" #: input/input_ova.ml:124 msgid "error uncompressing %s, see earlier error messages" msgstr "" #: input/OVA.ml:210 input/OVA.ml:112 msgid "error unpacking %s, see earlier error messages" msgstr "" #: common/mltools/tools_utils.ml:248 msgid "exception: %s" msgstr "" #: common/mltools/tools_utils.ml:455 msgid "exited with error %d" msgstr "" #: lib/utils.ml:34 msgid "exited with non-zero error code %d" msgstr "" #: input/input_disk.ml:147 msgid "expected >= 1 disk name on the command line" msgstr "" #: common/mltools/xpath_helpers.ml:36 msgid "" "expecting XML expression to return an integer (expression: %s, matching " "string: %s)" msgstr "" #: common/mltools/tools_utils.ml:440 msgid "external command" msgstr "" #: output/output_ovirt_upload.ml:265 msgid "failed server prechecks, see earlier errors" msgstr "" #: output/output_ovirt_upload.ml:507 msgid "failed to create virtual machine, see earlier errors" msgstr "" #: output/output_ovirt_upload.ml:479 msgid "failed to finalize the transfers, see earlier errors" msgstr "" #: common/mldrivers/linux_bootloaders.ml:208 msgid "failed to find grub2-mkconfig binary (but Grub2 was detected on guest)" msgstr "" #: input/OVA.ml:461 msgid "failed to parse line returned by tar: %S" msgstr "" #: output/output_ovirt_upload.ml:394 msgid "failed to start transfer, see earlier errors" msgstr "" #: output/output_ovirt_upload.ml:311 msgid "failed vmchecks, see earlier errors" msgstr "" #: common/mltools/tools_utils.ml:239 msgid "failure: %s" msgstr "" #: input/input_ova.ml:134 msgid "file ‘%s’ not found in the ova" msgstr "" #: common/mlcustomize/firstboot.ml:143 msgid "" "firstboot: unknown version for old firstboot.service file %s (md5=%s), it " "will not be removed" msgstr "" #: common/mltools/tools_utils.ml:258 msgid "generated by %s %s" msgstr "" #: output/create_libvirt_xml.ml:39 msgid "get_osinfo_id: unknown guest operating system: %s" msgstr "" #: output/output_glance.ml:66 msgid "" "glance: glance client is not installed or set up correctly. You may need to " "set environment variables or source a script to enable authentication. See " "preceding messages for details." msgstr "" #: output/output_glance.ml:139 msgid "glance: image upload to glance failed, see earlier errors" msgstr "" #: common/mlcustomize/firstboot.ml:386 common/mlcustomize/firstboot.ml:164 msgid "guest type %s is not supported" msgstr "" #: common/mlcustomize/firstboot.ml:413 msgid "guest type %s/%s is not supported" msgstr "" #: common/mltools/tools_utils.ml:749 msgid "" "host (%s/%s) and guest (%s/%s) are not compatible, so you cannot use command " "line options that involve running commands in the guest. Use --firstboot " "scripts instead." msgstr "" #: common/mlcustomize/customize_run.ml:209 msgid "hostname could not be set for this type of guest" msgstr "" #: common/mldrivers/linux_kernels.ml:342 msgid "ignoring kernel %s in bootloader, as it does not exist." msgstr "" #: output/output_vdsm.ml:160 msgid "image directory (%s) does not exist or is not a directory" msgstr "" #: input/parse_libvirt_xml.ml:81 msgid "in the libvirt XML metadata, is missing or empty" msgstr "" #: input/parse_libvirt_xml.ml:87 msgid "in the libvirt XML metadata, is missing or empty" msgstr "" #: input/input_vcenter_https.ml:52 input/input_libvirt.ml:107 msgid "in-place mode does not work with HTTP source" msgstr "" #: input/input_vddk.ml:146 msgid "in-place mode does not work with VDDK source" msgstr "" #: input/input_vmx.ml:43 msgid "in-place mode does not work with VMX source" msgstr "" #: input/input_xen_ssh.ml:50 msgid "in-place mode does not work with Xen over SSH source" msgstr "" #: output/output_kubevirt.ml:116 msgid "" "incorrect number of '-oo disk' parameters. This guest has %d disks, but the " "parameter was used %d times." msgstr "" #: input/input_xen_ssh.ml:119 msgid "" "input from xen over ssh does not support disks stored on remote block " "devices. See virt-v2v-input-xen(1) section \"Xen or ssh conversions from " "block devices\"." msgstr "" #. in-place/in_place.ml:397 #: v2v/v2v.ml:590 open/open.ml:238 inspector/inspector.ml:353 msgid "" "insufficient free space in the conversion server temporary directory %s " "(%s).\n" "\n" "Either free up space in that directory, or set the LIBGUESTFS_CACHEDIR " "environment variable to point to another directory with more than 1GB of " "free space.\n" "\n" "See also the virt-v2v(1) manual, section \"Minimum free space check in the " "host\"." msgstr "" #: common/mltools/tools_utils.ml:246 msgid "internal error: Not_found exception was thrown" msgstr "" #: common/mltools/tools_utils.ml:243 msgid "internal error: assertion failed at %s, line %d, char %d" msgstr "" #: common/mltools/tools_utils.ml:241 msgid "internal error: invalid argument: %s" msgstr "" #: common/mldrivers/linux.ml:128 msgid "internal error: is_file_owned: dpkg command returned no output" msgstr "" #: common/mldrivers/linux.ml:133 msgid "internal error: is_file_owned: unexpected output from dpkg command: %s" msgstr "" #: common/mldrivers/linux_bootloaders.ml:130 msgid "internal error: regular expression did not match ‘%s’" msgstr "" #: v2v/v2v.ml:548 msgid "internal error: wait returned unexpected process ID %d status \"%s\"" msgstr "" #: v2v/v2v.ml:114 inspector/inspector.ml:104 in-place/in_place.ml:111 msgid "invalid --mac ip option" msgstr "" #: v2v/v2v.ml:98 inspector/inspector.ml:88 in-place/in_place.ml:95 msgid "invalid -b/--bridge parameter" msgstr "" #: v2v/v2v.ml:90 inspector/inspector.ml:80 in-place/in_place.ml:87 msgid "invalid -n/--network parameter" msgstr "" #: input/parse_domain_from_vmx.ml:402 msgid "invalid cpuid.coresPerSocket < number of vCPUs" msgstr "" #. common/mlcustomize/customize_cmdline.ml:153 #. common/mlcustomize/customize_cmdline.ml:145 #: common/mlcustomize/customize_cmdline.ml:161 msgid "invalid format for '--%s' parameter, see the man page" msgstr "" #: common/mltools/tools_utils.ml:359 msgid "invalid format string for --machine-readable: %s" msgstr "" #: lib/utils.ml:279 msgid "invalid input filename (%s)" msgstr "" #: input/OVA.ml:445 msgid "invalid offset returned by tar: %S" msgstr "" #: common/mltools/tools_utils.ml:374 msgid "invalid output fd for --machine-readable: %s" msgstr "" #: common/mltools/tools_utils.ml:376 msgid "invalid output for --machine-readable: %s" msgstr "" #: common/mltools/tools_utils.ml:368 msgid "invalid output stream for --machine-readable: %s" msgstr "" #: common/mlcustomize/password.ml:73 msgid "invalid password selector ‘%s’; see the man page" msgstr "" #: input/OVA.ml:450 msgid "invalid size returned by tar: %S" msgstr "" #: common/mlcustomize/ssh_key.ml:45 msgid "invalid ssh-inject selector ‘%s’; see the man page" msgstr "" #: input/OVF.ml:82 msgid "invalid vmw:CoresPerSocket (%d) ignored" msgstr "" #: input/OVF.ml:88 msgid "invalid vmw:CoresPerSocket < number of cores" msgstr "" #: common/mldrivers/linux_bootloaders.ml:114 msgid "kernel %s is not under grub tree %s" msgstr "" #: common/mltools/tools_utils.ml:539 common/mltools/tools_utils.ml:458 msgid "killed by signal %d" msgstr "" #: common/mltools/tools_utils.ml:237 msgid "libguestfs error: %s" msgstr "" #: lib/libvirt_utils.ml:72 msgid "" "libvirt domain ‘%s’ is running or paused. Converting a live guest will " "result in corrupted output. However this is safe if you're converting from a " "snapshot" msgstr "" #: common/mlcustomize/customize_run.ml:47 msgid "log file %s: %s (ignored)" msgstr "" #: input/OVA.ml:147 msgid "" "making OVA directory public readable to work around libvirt bug https://" "bugzilla.redhat.com/1045069" msgstr "" #: input/input_ova.ml:86 msgid "manifest has a checksum for non-existent file %s (ignored)" msgstr "" #: common/mlcustomize/customize_cmdline.ml:472 msgid "md5|sha256|sha512" msgstr "" #: common/mlcustomize/customize_run.ml:119 msgid "method '%s' is no longer supported" msgstr "" #: common/mltools/JSON_parser.ml:39 msgid "missing value for the key ‘%s’" msgstr "" #: input/OVA.ml:276 msgid "more than one .ovf file was found in %s" msgstr "" #: common/mltools/JSON_parser.ml:34 msgid "more than value for the key ‘%s’" msgstr "" #: output/output_ovirt.ml:222 msgid "" "mount command failed, see earlier errors.\n" "\n" "This probably means you didn't specify the right %s path [-os %s], or else " "you need to rerun virt-v2v as root." msgstr "" #: common/mlcustomize/customize_run.ml:103 msgid "" "multiple --root-password/--password options set the password for user ‘%s’ " "twice" msgstr "" #: input/input_vddk.ml:319 msgid "" "nbdkit VDDK plugin is not installed or not working. It is required if you " "want to use VDDK.\n" "\n" "It 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 ’/%s/libvixDiskLib.so.?’.\n" "\n" "See also the virt-v2v-input-vmware(1) manual." msgstr "" #: input/input_vddk.ml:313 msgid "" "nbdkit VDDK plugin is not installed or not working. It is required if you " "want to use VDDK.\n" "\n" "The 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" "\n" "See also the virt-v2v-input-vmware(1) manual." msgstr "" #: lib/nbdkit.ml:223 msgid "nbdkit did not start up. See previous debugging messages for problems." msgstr "" #: lib/nbdkit.ml:225 msgid "" "nbdkit did not start up. There may be errors printed by nbdkit above.\n" "\n" "If the messages above are not sufficient to diagnose the problem then add " "the ‘virt-v2v -v -x’ options and examine the debugging output carefully." msgstr "" #: input/nbdkit_ssh.ml:36 input/nbdkit_curl.ml:32 input/input_vddk.ml:283 msgid "nbdkit is not installed or not working" msgstr "" #: input/input_disk.ml:92 msgid "" "nbdkit is not installed or not working. It is required to use ‘-i disk’." msgstr "" #: input/input_libvirt.ml:68 msgid "" "nbdkit is not installed or not working. It is required to use ‘-i libvirt|" "libvirtxml’." msgstr "" #: output/output.ml:178 output/output.ml:77 msgid "" "nbdkit is not installed or not working. It is required to use ‘-o disk’." msgstr "" #: output/output_null.ml:57 msgid "" "nbdkit is not installed or not working. It is required to use ‘-o null’." msgstr "" #: output/output_ovirt_upload.ml:163 msgid "" "nbdkit is not installed or not working. It is required to use ‘-o ovirt-" "upload’. See the virt-v2v-output-ovirt(1) manual." msgstr "" #: input/input_vddk.ml:285 msgid "nbdkit must be >= 1.45.11 for input from VDDK" msgstr "" #: output/output_ovirt_upload.ml:176 msgid "" "nbdkit python plugin is not installed or not working. It is required if you " "want to use ‘-o ovirt-upload’.\n" "\n" "See also the virt-v2v-output-ovirt(1) manual." msgstr "" #: output/output_ovirt_upload.ml:190 msgid "" "nbdkit was compiled without SELinux support. You will have to recompile " "nbdkit with libselinux-devel installed, or else set SELinux to Permissive " "mode while doing the conversion." msgstr "" #. input/input_libvirt.ml:76 #. input/input_disk.ml:98 #: input/nbdkit_ssh.ml:42 input/nbdkit_curl.ml:38 input/input_vddk.ml:289 msgid "nbdkit-cow-filter is not installed or not working" msgstr "" #: input/nbdkit_curl.ml:35 msgid "nbdkit-curl-plugin is not installed" msgstr "" #. input/input_disk.ml:96 #: output/output.ml:181 output/output.ml:80 input/input_libvirt.ml:72 msgid "nbdkit-file-plugin is not installed or not working" msgstr "" #: input/input_libvirt.ml:74 msgid "nbdkit-nbd-plugin is not installed or not working" msgstr "" #: output/output_null.ml:60 msgid "nbdkit-null-plugin is not installed or not working" msgstr "" #: input/nbdkit_ssh.ml:39 msgid "nbdkit-ssh-plugin is not installed" msgstr "" #: input/input_vddk.ml:287 msgid "nbdkit-vddk-plugin is not installed" msgstr "" #: lib/nbdkit.ml:56 msgid "nbdkit: unexpected version in --dump-config: %s" msgstr "" #. input/input_vcenter_https.ml:49 #. input/input_ova.ml:46 #. input/input_libvirt.ml:35 #. input/input_disk.ml:39 #: input/input_xen_ssh.ml:47 input/input_vmx.ml:40 msgid "no -io (input options) are allowed here" msgstr "" #: output/output_ovirt.ml:44 output/output_null.ml:42 #: output/output_glance.ml:44 msgid "no -oo (output options) are allowed here" msgstr "" #: input/OVA.ml:273 msgid "no .ovf file was found in %s" msgstr "" #: common/mldrivers/linux_bootloaders.ml:402 msgid "no bootloader detected" msgstr "" #: input/parse_domain_from_vmx.ml:359 msgid "no displayName key found in VMX file" msgstr "" #: input/OVF.ml:148 msgid "no href in ovf:File (id=%s)" msgstr "" #: common/mldrivers/linux_kernels.ml:194 msgid "no initrd was found in /boot matching %s %s." msgstr "" #: common/mldrivers/linux_kernels.ml:317 msgid "" "no installed kernel packages were found.\n" "\n" "This probably indicates that %s was unable to inspect this guest properly." msgstr "" #: common/mldrivers/linux_kernels.ml:354 msgid "" "no kernels were found in the bootloader configuration.\n" "\n" "This probably indicates that %s was unable to parse the bootloader " "configuration of this guest." msgstr "" #: output/python_script.ml:55 msgid "no python binary called ‘%s’ can be found on the $PATH" msgstr "" #: input/select_input.ml:106 msgid "" "no support for remote libvirt connections to '-ic %s'. The conversion may " "fail when it tries to read the source disks." msgstr "" #: lib/create_ovf.ml:1027 msgid "" "oVirt cannot emulate ‘%s’ sound cards. This sound card will be dropped from " "the output." msgstr "" #: lib/create_ovf.ml:875 lib/create_ovf.ml:512 msgid "oVirt does not support the output format ‘%s’, only raw or qcow2" msgstr "" #: output/output_openstack.ml:120 msgid "openstack: -oo server-id= not present" msgstr "" #: output/output_openstack.ml:338 msgid "" "openstack: failed to attach cinder volume to VM, see earlier error messages" msgstr "" #: output/output_openstack.ml:291 msgid "openstack: failed to create a cinder volume, see earlier error messages" msgstr "" #: output/output_openstack.ml:304 msgid "" "openstack: failed to query cinder volume status, see earlier error messages" msgstr "" #: output/output_openstack.ml:442 msgid "" "openstack: failed to set image properties on cinder volume, see earlier " "error messages" msgstr "" #: output/output_openstack.ml:199 msgid "" "openstack: precheck failed, there may be a problem with authentication, see " "earlier error messages" msgstr "" #: output/output_openstack.ml:311 msgid "" "openstack: unknown volume status \"%s\": expected \"creating\" or " "\"available\"" msgstr "" #: output/output.ml:133 msgid "output mode only supports raw or qcow2 format (format: %s)" msgstr "" #: input/OVF.ml:263 msgid "" "ova disk has an unknown VMware controller type (%d), please report this as a " "bug supplying the *.ovf file extracted from the ova" msgstr "" #: input/OVF.ml:259 msgid "" "ova disk has no parent controller, please report this as a bug supplying the " "*.ovf file extracted from the ova" msgstr "" #: output/output_ovirt_upload.ml:367 msgid "" "ovirt-upload: -of %s: Only output format ‘raw’ or ‘qcow2’ is supported. If " "the input is in a different format then force one of these output formats by " "adding either ‘-of raw’ or ‘-of qcow2’ on the command line." msgstr "" #: common/mlcustomize/password.ml:51 msgid "" "password-crypto: unknown algorithm %s, use \"md5\", \"sha256\", \"sha512\" " "or \"yescrypt\"" msgstr "" #: common/mlcustomize/password.ml:197 msgid "" "password: using insecure md5 password encryption for guest of type %s " "version %d.%d.\n" "If this is incorrect, use --password-crypto option and file a bug." msgstr "" #: common/mlcustomize/customize_run.ml:359 msgid "passwords could not be set for this type of guest" msgstr "" #: lib/qemuNBD.ml:125 msgid "" "qemu-nbd did not start up. See previous debugging messages for problems." msgstr "" #: lib/qemuNBD.ml:127 msgid "" "qemu-nbd did not start up. There may be errors printed by qemu-nbd above.\n" "\n" "If the messages above are not sufficient to diagnose the problem then add " "the ‘virt-v2v -v -x’ options and examine the debugging output carefully." msgstr "" #: lib/qemuNBD.ml:47 msgid "qemu-nbd: unexpected version in --version: %s" msgstr "" #: common/mlcustomize/customize_run.ml:77 msgid "random seed could not be set for this type of guest" msgstr "" #: input/parse_domain_from_vmx.ml:44 msgid "remote vmx ‘%s’ could not be parsed as a URI" msgstr "" #. common/mlcustomize/inject_virtio_win.ml:357 #. common/mlcustomize/inject_virtio_win.ml:352 #: common/mlcustomize/inject_virtio_win.ml:362 msgid "" "root directory ‘/’ is missing from the virtio-win directory or ISO.\n" "\n" "This should not happen and may indicate that virtio-win or virt-v2v is " "broken in some way. Please report this as a bug with a full debug log." msgstr "" #: common/mltools/tools_utils.ml:417 common/options/keys.c:264 #, c-format msgid "selector '%s': invalid TYPE" msgstr "" #: common/mltools/tools_utils.ml:409 common/options/keys.c:254 #, c-format msgid "selector '%s': missing FILENAME, or too many fields" msgstr "" #: common/mltools/tools_utils.ml:399 common/options/keys.c:232 #, c-format msgid "selector '%s': missing ID" msgstr "" #: common/mltools/tools_utils.ml:404 common/options/keys.c:245 #, c-format msgid "selector '%s': missing KEY_STRING, or too many fields" msgstr "" #: common/mltools/tools_utils.ml:401 common/options/keys.c:239 #, c-format msgid "selector '%s': missing TYPE" msgstr "" #: common/mltools/tools_utils.ml:413 common/options/keys.c:262 #, c-format msgid "selector '%s': too many fields" msgstr "" #: lib/utils.ml:35 msgid "signalled by signal %d" msgstr "" #: common/mlcustomize/guest_packages.ml:40 msgid "" "sorry, ‘%s’ with the ‘%s’ package manager has not been implemented yet.\n" "\n" "You can work around this by using one of the ‘--run*’ or ‘--firstboot*’ " "options instead (described in the virt-customize(1) manual)." msgstr "" #: common/mlcustomize/ssh_key.ml:57 msgid "ssh-inject: $HOME environment variable is not set" msgstr "" #: common/mlcustomize/ssh_key.ml:93 msgid "ssh-inject: key is an empty string" msgstr "" #: common/mlcustomize/ssh_key.ml:66 msgid "ssh-inject: no public key file found in %s" msgstr "" #: common/mlcustomize/ssh_key.ml:83 msgid "ssh-inject: public key file (%s) is empty" msgstr "" #: common/mlcustomize/ssh_key.ml:112 msgid "ssh-inject: the user %s does not exist on the guest" msgstr "" #. common/mltools/tools_utils.ml:461 #: lib/utils.ml:36 common/mltools/tools_utils.ml:542 msgid "stopped by signal %d" msgstr "" #: output/changeuid.ml:58 msgid "subprocess exited with non-zero error code %d" msgstr "" #: output/changeuid.ml:60 msgid "subprocess signalled or stopped by signal %d" msgstr "" #: lib/utils.ml:33 msgid "success" msgstr "" #: output/create_libvirt_xml.ml:297 msgid "" "target hypervisor does not support floppy devices, but floppy devices were " "found in the source guest" msgstr "" #: output/output_ovirt_upload.ml:156 msgid "" "the Python module ‘ovirtsdk4’ could not be loaded, is it installed? See " "previous messages for problems." msgstr "" #: output/output_ovirt_upload.ml:453 msgid "the cluster ‘%s’ does not support the architecture %s but %s" msgstr "" #: common/mlcustomize/customize_run.ml:59 msgid "" "the command may have failed because the network is disabled. Try either " "removing ‘--no-network’ or adding ‘--network’ on the command line." msgstr "" #: common/mltools/JSON_parser.ml:84 msgid "the key ‘%s’ was not found in a list of objects" msgstr "" #: output/output_ovirt_upload.ml:288 msgid "" "the number of ‘-oo ovirt-disk-uuid’ parameters passed on the command line " "has to match the number of guest disk images (for this guest: %d)" msgstr "" #: output/output_vdsm.ml:133 msgid "" "the number of ‘-oo vdsm-image-uuid’ and ‘-oo vdsm-vol-uuid’ parameters " "passed on the command line has to match the number of guest disk images (for " "this guest: %d)" msgstr "" #: output/output_libvirt.ml:239 msgid "the target hypervisor does not support a %s KVM guest" msgstr "" #: common/mltools/JSON_parser.ml:78 msgid "the value for key ‘%s’ is not a string as expected" msgstr "" #: common/mltools/JSON_parser.ml:50 msgid "the value for the key ‘%s’ is not a bool" msgstr "" #: common/mltools/JSON_parser.ml:45 msgid "the value for the key ‘%s’ is not a string" msgstr "" #: common/mltools/JSON_parser.ml:70 msgid "the value for the key ‘%s’ is not an integer" msgstr "" #: common/mltools/JSON_parser.ml:55 msgid "the value for the key ‘%s’ is not an object" msgstr "" #: common/mltools/JSON_parser.ml:59 msgid "the value is not an object" msgstr "" #: common/mltools/JSON_parser.ml:35 msgid "the value of the key ‘%s’ is not an object" msgstr "" #: lib/create_ovf.ml:519 msgid "" "the virtual size of the input disk %d is not an exact multiple of 512 " "bytes. The virtual size is: %Ld.\n" "\n" "This probably means something unexpected is going on, so please file a bug " "about this issue." msgstr "" #: output/output_openstack.ml:144 msgid "" "the ‘%s’ program is not available. It is needed to communicate with " "OpenStack." msgstr "" #: output/output_ovirt.ml:265 msgid "" "there are multiple UUIDs in the %s (%s). This is unexpected, and may be a " "bug in virt-v2v or OVirt." msgstr "" #: output/output_ovirt.ml:262 msgid "there are no UUIDs in the %s (%s). Is it really an OVirt %s?" msgstr "" #: common/mlcustomize/inject_virtio_win.ml:153 msgid "" "there are no virtio drivers available for this version of Windows (%d.%d %s " "%s %s). virt-v2v looks for drivers in %s\n" "\n" "The guest will be configured to use slower emulated devices." msgstr "" #: common/mlcustomize/inject_virtio_win.ml:175 msgid "" "there is no virtio block device driver for this version of Windows (%d.%d " "%s). virt-v2v looks for this driver in %s\n" "\n" "The guest will be configured to use a slower emulated device." msgstr "" #: common/mlcustomize/inject_virtio_win.ml:206 msgid "" "there is no virtio network driver for this version of Windows (%d.%d %s). " "virt-v2v looks for this driver in %s\n" "\n" "The guest will be configured to use a slower emulated device." msgstr "" #: input/parse_libvirt_xml.ml:545 msgid "this guest has a direct network interface which will be ignored" msgid_plural "this guest has direct network interfaces which will be ignored" msgstr[0] "" msgstr[1] "" #: input/parse_libvirt_xml.ml:527 msgid "this guest has a passthrough host device which will be ignored" msgid_plural "this guest has passthrough host devices which will be ignored" msgstr[0] "" msgstr[1] "" #: input/parse_libvirt_xml.ml:248 msgid "this guest has no non-removable disks" msgstr "" #: output/output.ml:65 msgid "this output module doesn't support copying more than %d disks" msgstr "" #: common/mlcustomize/timezone.ml:35 msgid "timezone '%s' does not exist, use a location like 'Europe/London'" msgstr "" #: common/mlcustomize/customize_run.ml:304 msgid "timezone could not be set for this type of guest" msgstr "" #: input/OVA.ml:318 msgid "unable to parse line from manifest file: %S" msgstr "" #: common/mltools/urandom.ml:37 msgid "unexpected end of file while reading /dev/urandom" msgstr "" #: input/input_libvirt.ml:196 msgid "unexpected output from the %s command" msgstr "" #: common/mltools/checksums.ml:58 msgid "unhandled checksum type ‘%s’" msgstr "" #: lib/types.ml:524 msgid "unknown --root option: %s" msgstr "" #: input/select_input.ml:51 msgid "unknown -i option: %s" msgstr "" #: output/select_output.ml:74 msgid "unknown -o option: %s" msgstr "" #: v2v/v2v.ml:164 msgid "unknown -oa option: %s" msgstr "" #: input/input_libvirt.ml:189 msgid "unknown method='%s'" msgstr "" #: input/OVF.ml:103 msgid "unknown Config:firmware value %s (expected \"bios\" or \"efi\")" msgstr "" #: lib/create_ovf.ml:446 lib/create_ovf.ml:247 msgid "unknown Windows 10 variant: %s (%s)" msgstr "" #: v2v/v2v.ml:319 in-place/in_place.ml:256 msgid "unknown block driver ‘--block-driver %s’" msgstr "" #: input/parse_domain_from_vmx.ml:415 msgid "unknown firmware value '%s', assuming BIOS" msgstr "" #: lib/create_ovf.ml:454 lib/create_ovf.ml:255 msgid "unknown guest operating system: %s %s %d.%d %s (%s)" msgstr "" #: v2v/v2v.ml:329 open/open.ml:132 inspector/inspector.ml:238 msgid "unknown input transport ‘-it %s’" msgstr "" #: input/parse_domain_from_vmx.ml:428 msgid "unknown sound device '%s' ignored" msgstr "" #: input/parse_libvirt_xml.ml:215 msgid "unknown sound model %s ignored" msgstr "" #: input/OVF.ml:156 msgid "unsupported compression in OVF: %s" msgstr "" #: input/input_vcenter_https.ml:123 msgid "" "vcenter: was not found in the XML. You need to " "upgrade to libvirt ≥ 1.2.20." msgstr "" #: input/vCenter.ml:79 msgid "vcenter: URL not found: %s" msgstr "" #: input/vCenter.ml:70 msgid "vcenter: incorrect username or password" msgstr "" #: input/vCenter.ml:72 msgid "" "vcenter: incorrect username or password. You might need to specify the " "username in the URI like this: [vpx|esx|..]://USERNAME@[etc]" msgstr "" #: input/vCenter.ml:84 msgid "vcenter: invalid response from server: %s" msgstr "" #: input/vCenter.ml:194 msgid "vcenter: no status code in output of ‘curl’ command." msgstr "" #: output/output_vdsm.ml:148 msgid "vdsm: invalid -os parameter does not contain a valid UUID: %s" msgstr "" #: output/output_openstack.ml:56 msgid "" "virt-v2v -oo server-id= [os-*=...]\n" "\n" "Specify the name or UUID of the conversion appliance using\n" "\n" " virt-v2v ... -o openstack -oo server-id=\n" "\n" "When virt-v2v runs it will attach the Cinder volumes to the\n" "conversion appliance, so this name or UUID must be the name\n" "of the virtual machine on OpenStack where virt-v2v is running.\n" "\n" "In addition, all usual OpenStack “os-*” parameters or “OS_*”\n" "environment variables can be used.\n" "\n" "Openstack “--os-*” parameters must be written as “virt-v2v -oo os-*”.\n" "\n" "For example:\n" "\n" " virt-v2v -oo os-username=\n" "\n" " equivalent to openstack: --os-username=\n" " or the environment variable: OS_USERNAME=\n" "\n" " virt-v2v -oo os-project-name=\n" "\n" " equivalent to openstack: --os-project-name=\n" " or the environment variable: OS_PROJECT_NAME=\n" "\n" "The os-* parameters and environment variables are optional.\n" msgstr "" #: input/parse_libvirt_xml.ml:189 msgid "" "virt-v2v does not support local displays, so in the " "input libvirt XML was ignored" msgstr "" #: input/select_input.ml:83 msgid "virt-v2v-in-place does not support remote libvirt URIs" msgstr "" #: input/parse_domain_from_vmx.ml:50 msgid "vmx URI path component looks incorrect" msgstr "" #: input/parse_domain_from_vmx.ml:48 msgid "vmx URI remote server name omitted" msgstr "" #: input/parse_domain_from_vmx.ml:46 msgid "vmx URI start with ‘ssh://...’" msgstr "" #: input/VMX.ml:313 msgid "vmx parser: cannot parse this line, ignoring: %s" msgstr "" #: input/VMX.ml:346 msgid "vmx parser: duplicate key '%s' ignored" msgstr "" #: output/output_openstack.ml:299 msgid "wait for cinder volume status to change to \"available\"" msgstr "" #: output/output_openstack.ml:360 msgid "waiting for cinder volume %s to attach to the conversion appliance" msgstr "" #: open/open.ml:136 msgid "you must supply the --run parameter" msgstr "" #: input/input_xen_ssh.ml:87 input/input_vddk.ml:189 msgid "‘-ic %s’ URL does not contain a host name field" msgstr "" #: input/input_vddk.ml:273 msgid "‘-io vddk-file=’ must be used exactly %d times" msgstr "" #: input/input_vddk.ml:297 msgid "" "‘-io vddk-libdir=%s’ does not point to a directory. See the virt-v2v-input-" "vmware(1) manual." msgstr "" #: output/output.ml:85 msgid "" "‘-oo compressed’ is only allowed when the output format is a local qcow2-" "format file, i.e. ‘-of qcow2’" msgstr "" #: input/input_vddk.ml:232 msgid "" "‘openssl’ command not found: automatically detecting thumbprint is not " "possible, so you must use ‘-io vddk-thumbprint=XX:XX...’" msgstr "" #: common/mltools/getopt-c.c:68 #, c-format msgid "Try ‘%s --help’ or consult %s(1) for more information.\n" msgstr "" #: common/mltools/getopt-c.c:187 #, c-format msgid "%s: ‘%s’ is not a numeric value.\n" msgstr "" #: common/mltools/getopt-c.c:193 #, c-format msgid "%s: %s: integer out of range\n" msgstr "%s: %s: इंटीजर व्याप्तीच्या बाहेर आहे\n" #: common/mltools/getopt-c.c:383 #, c-format msgid "%s: ‘%s’ is not allowed for -%c; allowed values are:\n" msgstr "" #: common/mltools/getopt-c.c:386 #, c-format msgid "%s: ‘%s’ is not allowed for %s%s; allowed values are:\n" msgstr "" #: common/mltools/getopt-c.c:421 #, c-format msgid "Extra parameter on the command line: ‘%s’.\n" msgstr "" #: common/options/config.c:72 #, c-format msgid "%s: line %d: error parsing configuration file: %s" msgstr "" #: common/options/decrypt.c:52 #, c-format msgid "string size overflow" msgstr "" #: common/options/decrypt.c:170 #, c-format msgid "" "'clevis_luks_unlock', needed for decrypting %s, is unavailable in this " "libguestfs version" msgstr "" #: common/options/decrypt.c:184 #, c-format msgid "" "could not find key to open LUKS encrypted %s.\n" "\n" "Try using --key on the command line.\n" "\n" "Original error: %s (%d)" msgstr "" #: common/options/inspect.c:78 #, c-format msgid "" "%s: no operating system was found on this disk\n" "\n" "If using guestfish ‘-i’ option, remove this option and instead\n" "use the commands ‘run’ followed by ‘list-filesystems’.\n" "You can then mount filesystems you want by hand using the\n" "‘mount’ or ‘mount-ro’ command.\n" "\n" "If using guestmount ‘-i’, remove this option and choose the\n" "filesystem(s) you want to see by manually adding ‘-m’ option(s).\n" "Use ‘virt-filesystems’ to see what filesystems are available.\n" "\n" "If using other virt tools, this disk image won’t work\n" "with these tools. Use the guestfish equivalent commands\n" "(see the virt tool manual page).\n" msgstr "" #: common/options/inspect.c:99 #, c-format msgid "" "%s: multi-boot operating systems are not supported\n" "\n" "If using guestfish ‘-i’ option, remove this option and instead\n" "use the commands ‘run’ followed by ‘list-filesystems’.\n" "You can then mount filesystems you want by hand using the\n" "‘mount’ or ‘mount-ro’ command.\n" "\n" "If using guestmount ‘-i’, remove this option and choose the\n" "filesystem(s) you want to see by manually adding ‘-m’ option(s).\n" "Use ‘virt-filesystems’ to see what filesystems are available.\n" "\n" "If using other virt tools, multi-boot operating systems won’t work\n" "with these tools. Use the guestfish equivalent commands\n" "(see the virt tool manual page).\n" msgstr "" #: common/options/inspect.c:161 #, c-format msgid "%s: some filesystems could not be mounted (ignored)\n" msgstr "%s: काहिक फाइलप्रणाली माऊंट करणे अशक्य (दुर्लक्ष केले)\n" #: common/options/inspect.c:178 #, c-format msgid "Operating system: %s\n" msgstr "कार्यप्रणाली: %s\n" #: common/options/inspect.c:196 #, c-format msgid "%s mounted on %s\n" msgstr "%s ला %s वर माऊंट केले\n" #: common/options/keys.c:63 #, c-format msgid "Enter key or passphrase (\"%s\"): " msgstr "कि किंवा पासफ्रेज द्या (\"%s\"): " #: common/options/keys.c:146 #, c-format msgid "size_t overflow" msgstr "" #: common/options/keys.c:193 #, fuzzy, c-format #| msgid "could not parse boot size" msgid "could not read key from user" msgstr "बूट आकार वाचणे अशक्य" #: common/options/options.c:283 #, c-format msgid "%s: ‘%s’ could not be mounted.\n" msgstr "" #: common/options/options.c:287 #, c-format msgid "" "%s: Check mount(8) man page to ensure options ‘%s’\n" "%s: are supported by the filesystem that is being mounted.\n" msgstr "" #: common/options/options.c:291 #, c-format msgid "%s: Did you mean to mount one of these filesystems?\n" msgstr "" #: common/options/options.c:304 #, c-format msgid "cannot determine the subvolume for %s: %s (%d)" msgstr "" #: common/options/uri.c:119 #, c-format msgid "%s: --add: could not parse URI ‘%s’\n" msgstr "" #: common/options/uri.c:130 #, c-format msgid "%s: %s: scheme of URI is NULL or empty\n" msgstr "" #: common/options/uri.c:138 #, c-format msgid "%s: %s: cannot have both a server name and a socket query parameter\n" msgstr "" #: common/utils/utils.c:107 #, c-format msgid "%s exited successfully" msgstr "" #: common/utils/utils.c:110 #, c-format msgid "%s exited with error status %d" msgstr "" #: common/utils/utils.c:114 #, c-format msgid "%s killed by signal %d (%s)" msgstr "" #: common/utils/utils.c:118 #, c-format msgid "%s stopped by signal %d (%s)" msgstr "" #: common/utils/utils.c:122 #, c-format msgid "%s exited for an unknown reason (status %d)" msgstr "" ================================================ FILE: po/nl.po ================================================ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR Red Hat Inc. # This file is distributed under the same license as the PACKAGE package. # # Translators: # Geert Warrink , 2011-2012 # Richard E. van der Luit , 2011, 2012 # rjones , 2011 msgid "" msgstr "" "Project-Id-Version: libguestfs 1.39.12\n" "Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?" "component=libguestfs&product=Virtualization+Tools\n" "POT-Creation-Date: 2025-02-16 17:05+0000\n" "PO-Revision-Date: 2015-02-21 10:51+0000\n" "Last-Translator: Copied by Zanata \n" "Language-Team: Dutch (http://www.transifex.com/projects/p/libguestfs/" "language/nl/)\n" "Language: nl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Zanata 4.6.2\n" #: input/input_ova.ml:135 common/mltools/tools_utils.ml:235 msgid "%s" msgstr "" #: common/mltools/getopt.ml:73 msgid "" "%s\n" "Options:\n" msgstr "" #: common/mltools/tools_utils.ml:695 common/mlcustomize/customize_run.ml:390 msgid "%s (ignored)" msgstr "" #: common/mltools/checksums.ml:71 msgid "%s did not return any output" msgstr "" #: common/mlcustomize/customize_run.ml:183 msgid "%s does not exist in the guest" msgstr "" #: output/output_ovirt.ml:275 msgid "" "%s does not exist or is not a directory.\n" "\n" "Most likely cause: Either the %s (%s) has not been attached to any Data " "Center, or the path %s is not an %s at all.\n" "\n" "You have to attach the %s to a Data Center using the oVirt user interface " "first.\n" "\n" "If you don’t know what the %s mount point should be then you can also find " "this out through the oVirt user interface." msgstr "" #: common/mlcustomize/customize_run.ml:113 msgid "%s ignored for non-Windows guest" msgstr "" #: common/mlcustomize/customize_run.ml:186 msgid "%s is not a regular file in the guest" msgstr "" #. open/open.ml:39 #. inspector/inspector.ml:153 #. inspector/inspector.ml:40 #. in-place/in_place.ml:164 #. in-place/in_place.ml:45 #: v2v/v2v.ml:194 v2v/v2v.ml:183 v2v/v2v.ml:159 v2v/v2v.ml:44 open/open.ml:68 msgid "%s option used more than once on the command line" msgstr "" #: common/mltools/tools_utils.ml:231 common/mltools/tools_utils.ml:202 msgid "%s: %s" msgstr "" #: common/mltools/tools_utils.ml:233 msgid "%s: %s: %s" msgstr "" #: common/mltools/on_exit.ml:77 msgid "" "%s: Exiting on signal %s\n" "%!" msgstr "" #: common/mlcustomize/inject_virtio_win.ml:411 msgid "%s: cannot open virtio-win ISO file: %s" msgstr "" #: common/mlcustomize/customize_run.ml:64 msgid "%s: command exited with an error" msgstr "" #: v2v/v2v.ml:277 msgid "" "%s: convert a guest to use KVM\n" "\n" "virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi -os imported " "esx_guest\n" "\n" "virt-v2v -i libvirtxml guest-domain.xml -o local -os /var/tmp\n" "\n" "virt-v2v -i disk disk.img -o local -os /var/tmp\n" "\n" "There is a companion front-end called \"virt-p2v\" which comes as an\n" "ISO or CD image that can be booted on physical machines.\n" "\n" "A short summary of the options is given below. For detailed help please\n" "read the man page virt-v2v(1).\n" msgstr "" #: in-place/in_place.ml:217 msgid "" "%s: convert a guest to use KVM in-place\n" "\n" "Note this program modifies the guest in-place with no backup.\n" "Normally you should use virt-v2v.\n" "\n" "virt-v2v-in-place -i libvirtxml guest-domain.xml\n" "\n" "virt-v2v-in-place -i disk disk.img\n" "\n" "A short summary of the options is given below. For detailed help please\n" "read the man page virt-v2v-in-place(1).\n" msgstr "" #: input/input_vddk.ml:207 msgid "%s: enter password for ‘%s’: " msgstr "" #: common/mltools/tools_utils.ml:172 msgid "%s: error: %s" msgstr "" #: inspector/inspector.ml:198 msgid "" "%s: estimate disk space needed before virt-v2v conversion\n" "\n" "virt-v2v-inspector -i disk disk.img [-O output.xml]\n" "\n" "A short summary of the options is given below. For detailed help please\n" "read the man page virt-v2v-inspector(1).\n" msgstr "" #: open/open.ml:94 msgid "" "%s: open the virt-v2v input and run a program on it\n" "\n" "virt-v2v-open -i disk disk.img --run 'virt-inspector --format=raw @@'\n" "\n" "A short summary of the options is given below. For detailed help please\n" "read the man page virt-v2v-open(1).\n" msgstr "" #: common/mltools/tools_utils.ml:726 msgid "%s: operation timed out" msgstr "" #: input/OVA.ml:127 input/OVA.ml:121 msgid "" "%s: unsupported file format\n" "\n" "Formats which we currently understand for '-i ova' are: tar (uncompressed, " "compress with gzip or xz), zip" msgstr "" #: common/mltools/tools_utils.ml:191 msgid "%s: warning: %s" msgstr "" #. common/mlcustomize/customize_cmdline.ml:258 #: common/mlcustomize/customize_cmdline.ml:367 msgid "'CMD+ARGS'" msgstr "" #: common/mlcustomize/customize_run.ml:133 msgid "" "--append-line: line must not contain newline characters. Use the --append-" "line option multiple times to add several lines." msgstr "" #: common/mlcustomize/customize_run.ml:152 msgid "--chown: could not parse numeric UID:GID from %s:%s" msgstr "" #: common/mlcustomize/customize_run.ml:216 msgid "" "--inject-blnsvr: blnsvr.exe not found in virtio-win source that you specified" msgstr "" #: common/mlcustomize/customize_run.ml:225 msgid "" "--inject-qemu-ga: QEMU Guest Agent MSI not found in virtio-win source that " "you specified" msgstr "" #: common/mlcustomize/customize_run.ml:241 msgid "" "--inject-virtio-win: virtio drivers were not found for this Windows version " "in the virtio-win source that you specified" msgstr "" #: v2v/v2v.ml:146 inspector/inspector.ml:136 in-place/in_place.ml:143 #, fuzzy #| msgid "credential index out of range" msgid "--mac ip prefix length field is out of range" msgstr "referentie index is buiten het bereik" #: v2v/v2v.ml:340 msgid "--parallel parameter must be >= 1" msgstr "" #: input/input_disk.ml:42 msgid "-i disk: expecting a disk image (filename) on the command line" msgstr "" #: input/input_xen_ssh.ml:65 msgid "-i libvirt: expecting -ic parameter for Xen over SSH connection" msgstr "" #: input/input_vddk.ml:142 input/input_vcenter_https.ml:88 msgid "-i libvirt: expecting -ic parameter for vcenter connection" msgstr "" #: input/input_vcenter_https.ml:101 msgid "-i libvirt: expecting -ic parameter to contain vcenter server name" msgstr "" #: input/input_vcenter_https.ml:78 msgid "-i libvirt: expecting -ip passwordfile parameter for vCenter connection" msgstr "" #. input/input_vcenter_https.ml:70 #. input/input_libvirt.ml:41 #: input/input_xen_ssh.ml:57 input/input_vddk.ml:132 msgid "-i libvirt: expecting a libvirt guest name on the command line" msgstr "" #: input/input_libvirt.ml:59 msgid "-i libvirtxml: expecting a libvirt XML filename on the command line" msgstr "" #: input/input_ova.ml:243 msgid "-i ova: OVF references file ‘%s’ which was not found in the OVA archive" msgstr "" #: input/input_ova.ml:78 msgid "" "-i ova: corrupt OVA: checksum of disk %s does not match manifest (actual = " "%s, expected = %s)" msgstr "" #: input/input_ova.ml:52 msgid "-i ova: expecting an OVA file name on the command line" msgstr "" #: input/OVA.ml:361 msgid "" "-i ova: invalid OVA file: path ‘%s’ references a file outside the archive" msgstr "" #: input/input_vmx.ml:57 msgid "-i vmx: cannot use -it vddk in this input mode" msgstr "" #: input/input_vmx.ml:60 msgid "-i vmx: expecting a VMX file or ssh:// URI" msgstr "" #: input/vCenter.ml:159 msgid "" "-ip PASSWORD_FILE parameter ignored because 'user@' was not given in the URL" msgstr "" #: input/input_vddk.ml:119 msgid "-it vddk: ‘-io %s’ is not a valid input option" msgstr "" #: output/output.ml:54 msgid "-o %s: %s option cannot be used in this output mode" msgstr "" #: output/output_disk.ml:66 msgid "-o disk: output directory was not specified, use '-os /dir'" msgstr "" #: output/output_libvirt.ml:59 output/output_disk.ml:56 msgid "-o disk: unknown output option ‘-oo %s’" msgstr "" #: output/output_kubevirt.ml:81 msgid "-o kubevirt: output directory was not specified, use '-os /dir'" msgstr "" #: output/output_kubevirt.ml:91 msgid "" "-o kubevirt: the guest name must contain only lowercase alphanumeric " "characters, '-' or '.', and must start and end with an alphanumeric " "character. Rerun virt-v2v with the '-on name' option to rename it." msgstr "" #: output/output_kubevirt.ml:71 msgid "-o kubevirt: unknown output option ‘-oo %s’" msgstr "" #: output/output_libvirt.ml:120 msgid "" "-o libvirt: output pool ‘%s’ does not have /pool/target/path element. See " "virt-v2v-output-local(1)" msgstr "" #: output/output_libvirt.ml:124 msgid "" "-o libvirt: output pool ‘%s’ has type='dir' but the /pool/target/path " "element is not a local directory. See virt-v2v-output-local(1)" msgstr "" #: output/output_libvirt.ml:116 msgid "" "-o libvirt: output pool ‘%s’ is not a directory (type='dir'). See virt-v2v-" "output-local(1)" msgstr "" #: output/output_openstack.ml:88 msgid "-o openstack mode only supports -oa sparse -of raw" msgstr "" #: output/output_openstack.ml:115 msgid "-o openstack: unknown output option ‘-oo %s’" msgstr "" #: output/output_ovirt_upload.ml:97 msgid "-o ovirt-upload: -oo ovirt-cafile set more than once" msgstr "" #: output/output_ovirt_upload.ml:101 msgid "-o ovirt-upload: -oo ovirt-cluster set more than once" msgstr "" #: output/output_ovirt_upload.ml:112 msgid "-o ovirt-upload: invalid UUID for -oo ovirt-disk-uuid" msgstr "" #: output/output_ovirt_upload.ml:76 msgid "" "-o ovirt-upload: output password file was not specified, use ‘-op’ to point " "to a file which contains the password used to connect to the oVirt server" msgstr "" #: output/output_ovirt_upload.ml:83 msgid "-o ovirt-upload: output storage was not specified, use ‘-os’" msgstr "" #: output/output_ovirt_upload.ml:116 msgid "-o ovirt-upload: unknown output option ‘-oo %s’" msgstr "" #: output/output_ovirt_upload.ml:68 msgid "" "-o ovirt-upload: use ‘-oc’ to point to the oVirt server REST API URL, which " "is usually https://servername/ovirt-engine/api" msgstr "" #: output/output_ovirt.ml:51 msgid "-o ovirt: -os option was not specified" msgstr "" #: output/output_qemu.ml:72 msgid "-o qemu: output directory was not specified, use '-os /dir'" msgstr "" #: output/output_qemu.ml:63 msgid "-o qemu: unknown output option ‘-oo %s’" msgstr "" #: output/output_vdsm.ml:102 msgid "-o vdsm: -oo vdsm-image-uuid was not specified" msgstr "" #: output/output_vdsm.ml:81 msgid "-o vdsm: -oo vdsm-ovf-output set more than once" msgstr "" #: output/output_vdsm.ml:77 msgid "-o vdsm: -oo vdsm-vm-uuid set more than once" msgstr "" #: output/output_vdsm.ml:110 msgid "-o vdsm: -os option was not specified" msgstr "" #: output/output_vdsm.ml:97 msgid "-o vdsm: either -oo vdsm-vol-uuid or -oo vdsm-vm-uuid was not specified" msgstr "" #: output/output_vdsm.ml:90 msgid "-o vdsm: unknown output option ‘-oo %s’" msgstr "" #: output/output_vdsm.ml:74 msgid "-o vdsm: unknown vdsm-compat level ‘%s’" msgstr "" #. output/output_kubevirt.ml:84 #. output/output_disk.ml:68 #: output/output_vdsm.ml:112 output/output_qemu.ml:74 msgid "-os %s: output directory does not exist or is not a directory" msgstr "" #: input/parse_libvirt_xml.ml:279 msgid " missing 'method' attribute, ignoring" msgstr "" #: input/parse_libvirt_xml.ml:291 msgid " unknown fail='%s' attribute, ignoring" msgstr "" #: input/parse_libvirt_xml.ml:370 input/parse_libvirt_xml.ml:317 msgid " was ignored" msgstr "" #: input/parse_libvirt_xml.ml:338 msgid " with was ignored" msgstr "" #: input/parse_libvirt_xml.ml:365 msgid " with was ignored" msgstr "" #: input/parse_libvirt_xml.ml:299 msgid " element with no type attribute ignored" msgstr "" #: input/parse_libvirt_xml.ml:167 msgid " in the input libvirt XML was ignored" msgstr "" #: input/parse_libvirt_xml.ml:414 msgid "" " was ignored because the device name could not be recognized" msgstr "" #: input/input_vddk.ml:176 msgid "" " was not found in the output of ‘virsh dumpxml \"%s\"’. The " "most likely reason is that libvirt is too old, try upgrading libvirt to ≥ " "3.7." msgstr "" #: common/mlcustomize/customize_cmdline.ml:305 msgid "Add package(s) to install" msgstr "" #: common/mlcustomize/customize_cmdline.ml:270 msgid "Add package(s) to install at first boot" msgstr "" #: common/mlcustomize/customize_cmdline.ml:175 msgid "Append line(s) to the file" msgstr "" #: common/mlcustomize/customize_run.ml:137 msgid "Appending line to %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:197 msgid "Change the owner user and group ID of a file or directory" msgstr "" #: common/mlcustomize/customize_cmdline.ml:186 msgid "Change the permissions of a file" msgstr "" #: common/mlcustomize/customize_run.ml:155 msgid "Changing owner of %s to %d:%d" msgstr "" #: common/mlcustomize/customize_run.ml:141 msgid "Changing permissions of %s to %s" msgstr "" #: input/input_libvirt.ml:174 input/input_libvirt.ml:157 msgid "Checking %s checksum of disk %d/%d" msgstr "" #: common/mlcustomize/customize_cmdline.ml:488 msgid "Compatibility option doing nothing" msgstr "" #: common/mlcustomize/customize_cmdline.ml:219 msgid "Copy files in disk image" msgstr "" #: common/mlcustomize/customize_cmdline.ml:397 msgid "Copy local files or directories from a tarball into image" msgstr "" #: common/mlcustomize/customize_cmdline.ml:230 msgid "Copy local files or directories into image" msgstr "" #: common/mlcustomize/customize_run.ml:168 msgid "Copying (in image): %s to %s" msgstr "" #: v2v/v2v.ml:518 msgid "Copying disk %d/%d" msgstr "" #: common/mlcustomize/customize_run.ml:172 msgid "Copying: %s to %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:322 msgid "Create a directory" msgstr "" #: common/mlcustomize/customize_cmdline.ml:316 msgid "Create symbolic links" msgstr "" #: v2v/v2v.ml:567 msgid "Creating output metadata" msgstr "" #: common/mlcustomize/customize_cmdline.ml:321 msgid "DIR" msgstr "" #: common/mlcustomize/customize_cmdline.ml:236 msgid "Delete a file or directory" msgstr "" #: common/mlcustomize/customize_run.ml:176 msgid "Deleting: %s" msgstr "" #: common/mltools/getopt.ml:225 msgid "Display brief help" msgstr "" #: common/mltools/tools_utils.ml:385 msgid "Display version and exit" msgstr "" #: common/mlcustomize/customize_cmdline.ml:482 msgid "Do not relabel files with correct SELinux labels" msgstr "" #: v2v/v2v.ml:248 inspector/inspector.ml:177 in-place/in_place.ml:190 msgid "Don't trim filesystems before conversion" msgstr "" #: common/mltools/tools_utils.ml:389 msgid "Don’t print progress messages" msgstr "" #: common/mltools/tools_utils.ml:420 msgid "Don’t turn off echo for passphrases" msgstr "" #: common/mlcustomize/customize_cmdline.ml:247 msgid "Edit file using Perl expression" msgstr "" #: common/mlcustomize/customize_run.ml:180 msgid "Editing: %s" msgstr "" #: common/mltools/tools_utils.ml:386 msgid "Enable libguestfs debugging messages" msgstr "" #: common/mltools/tools_utils.ml:387 msgid "Enable tracing of libguestfs calls" msgstr "" #: output/output_ovirt.ml:77 msgid "Export Storage Domain" msgstr "" #: open/open.ml:88 msgid "External command to run" msgstr "" #. common/mlcustomize/customize_cmdline.ml:408 #. common/mlcustomize/customize_cmdline.ml:373 #: common/mlcustomize/customize_cmdline.ml:414 msgid "FILE" msgstr "" #: common/mlcustomize/customize_cmdline.ml:455 msgid "FILE:CONTENT" msgstr "" #: common/mlcustomize/customize_cmdline.ml:444 msgid "FILE:DEST" msgstr "" #: common/mlcustomize/customize_cmdline.ml:242 msgid "FILE:EXPR" msgstr "" #: common/mlcustomize/customize_cmdline.ml:170 msgid "FILE:LINE" msgstr "" #: common/mlcustomize/customize_cmdline.ml:203 msgid "FILENAME" msgstr "" #. in-place/in_place.ml:378 #: v2v/v2v.ml:571 open/open.ml:220 inspector/inspector.ml:334 msgid "Finishing off" msgstr "" #: common/mlcustomize/customize_cmdline.ml:275 msgid "HOSTNAME" msgstr "" #: v2v/v2v.ml:254 inspector/inspector.ml:183 in-place/in_place.ml:194 msgid "How to choose root filesystem" msgstr "" #: common/mltools/tools_utils.ml:177 msgid "" "If reporting bugs, run %s with debugging enabled and include the complete " "output:\n" "\n" " %s -v -x [...]" msgstr "" #: common/mlcustomize/customize_cmdline.ml:386 msgid "Inject a public key into the guest" msgstr "" #: common/mlcustomize/customize_cmdline.ml:282 msgid "Inject the Balloon Server into a Windows guest" msgstr "" #: common/mlcustomize/customize_cmdline.ml:288 msgid "Inject the QEMU Guest Agent into a Windows guest" msgstr "" #: common/mlcustomize/customize_cmdline.ml:294 msgid "Inject virtio-win drivers into a Windows guest" msgstr "" #. in-place/in_place.ml:176 #: v2v/v2v.ml:216 open/open.ml:80 inspector/inspector.ml:165 msgid "Input format" msgstr "" #: input/input_vddk.ml:77 msgid "" "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" "\n" "Refer to nbdkit-vddk-plugin(1) and the VDDK documentation for further\n" "information on these settings.\n" msgstr "" #: v2v/v2v.ml:222 open/open.ml:86 inspector/inspector.ml:171 msgid "Input transport" msgstr "" #: common/mlcustomize/customize_run.ml:191 msgid "Installing firstboot command: %s" msgstr "" #: common/mlcustomize/customize_run.ml:195 msgid "Installing firstboot packages: %s" msgstr "" #: common/mlcustomize/customize_run.ml:202 msgid "Installing firstboot script: %s" msgstr "" #: common/mlcustomize/customize_run.ml:248 msgid "Installing packages: %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:225 msgid "LOCALPATH:REMOTEDIR" msgstr "" #. in-place/in_place.ml:174 #: v2v/v2v.ml:214 open/open.ml:78 inspector/inspector.ml:163 msgid "Libvirt URI" msgstr "" #: common/mlcustomize/customize_run.ml:255 msgid "Linking: %s -> %s" msgstr "" #. common/mlcustomize/customize_cmdline.ml:287 #. common/mlcustomize/customize_cmdline.ml:281 #: common/mlcustomize/customize_cmdline.ml:293 msgid "METHOD" msgstr "" #: common/mltools/tools_utils.ml:426 msgid "Make output machine readable" msgstr "" #: common/mlcustomize/customize_run.ml:260 msgid "Making directory: %s" msgstr "" #: v2v/v2v.ml:226 inspector/inspector.ml:173 in-place/in_place.ml:182 msgid "Map NIC to network or bridge or assign static IP" msgstr "" #: v2v/v2v.ml:210 inspector/inspector.ml:159 in-place/in_place.ml:170 msgid "Map bridge ‘in’ to ‘out’" msgstr "" #: v2v/v2v.ml:230 inspector/inspector.ml:179 in-place/in_place.ml:186 msgid "Map network ‘in’ to ‘out’" msgstr "" #: common/mlcustomize/customize_cmdline.ml:333 msgid "Move files in disk image" msgstr "" #: common/mlcustomize/customize_run.ml:264 msgid "Moving: %s -> %s" msgstr "" #. input/input_vcenter_https.ml:45 #. input/input_ova.ml:35 #. input/input_libvirt.ml:233 #. input/input_libvirt.ml:221 #. input/input_disk.ml:35 #: input/input_xen_ssh.ml:43 input/input_vmx.ml:36 msgid "No input options can be used in this mode.\n" msgstr "" #: output/output_ovirt.ml:40 output/output_null.ml:38 #: output/output_glance.ml:40 msgid "No output options can be used in this mode.\n" msgstr "" #: output/output_vdsm.ml:166 msgid "OVF (metadata) directory (%s) does not exist or is not a directory" msgstr "" #: common/mlcustomize/firstboot.ml:268 msgid "" "One of rhsrvany.exe or pvvxsvc.exe is missing in %s. One of them is " "required in order to install Windows firstboot scripts. You can get one by " "building rhsrvany (https://github.com/rwmjones/rhsrvany)" msgstr "" #: v2v/v2v.ml:236 msgid "Output hypervisor connection" msgstr "" #: output/output_ovirt_upload.ml:51 msgid "" "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" "\n" "You can override the UUIDs of the disks, instead of using autogenerated " "UUIDs\n" "after their uploads (if you do, you must supply one for each disk):\n" "\n" " -oo ovirt-disk-uuid=UUID Disk UUID\n" msgstr "" #: output/output_qemu.ml:44 msgid "" "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" msgstr "" #: output/output_vdsm.ml:43 msgid "" "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" "\n" "For 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" msgstr "" #: output/output_disk.ml:44 msgid "" "Output options that can be used with -o disk:\n" "\n" " -oo compressed Compress the output file (used only with -of qcow2)\n" msgstr "" #: output/output_kubevirt.ml:51 msgid "" "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" msgstr "" #: output/output_libvirt.ml:47 msgid "" "Output options that can be used with -o libvirt:\n" "\n" " -oo compressed Compress the output file (used only with -of qcow2)\n" msgstr "" #. common/mlcustomize/customize_cmdline.ml:235 #: common/mlcustomize/customize_cmdline.ml:420 msgid "PATH" msgstr "" #: common/mlcustomize/customize_cmdline.ml:181 msgid "PERMISSIONS:FILE" msgstr "" #. common/mlcustomize/customize_cmdline.ml:300 #. common/mlcustomize/customize_cmdline.ml:265 #: common/mlcustomize/customize_cmdline.ml:427 msgid "PKG,PKG.." msgstr "" #: v2v/v2v.ml:263 in-place/in_place.ml:203 msgid "Prefer 'virtio-blk' or 'virtio-scsi'" msgstr "" #: v2v/v2v.ml:252 in-place/in_place.ml:192 msgid "Print source and stop" msgstr "" #: common/mlcustomize/customize_cmdline.ml:208 msgid "Read customize commands from file" msgstr "" #: common/mltools/tools_utils.ml:421 msgid "Read passphrases from stdin" msgstr "" #: common/mlcustomize/customize_cmdline.ml:421 msgid "Recursively truncate all files in directory" msgstr "" #: common/mlcustomize/customize_run.ml:298 msgid "Recursively truncating: %s" msgstr "" #: v2v/v2v.ml:240 msgid "Rename guest when converting" msgstr "" #: common/mlcustomize/customize_cmdline.ml:259 msgid "Run command at first guest boot" msgstr "" #: common/mlcustomize/customize_cmdline.ml:368 msgid "Run command in disk image" msgstr "" #: common/mlcustomize/customize_cmdline.ml:253 msgid "Run script at first guest boot" msgstr "" #: common/mlcustomize/customize_cmdline.ml:362 msgid "Run script in disk image" msgstr "" #: common/mlcustomize/customize_cmdline.ml:409 msgid "Run touch on a file" msgstr "" #: v2v/v2v.ml:250 msgid "Run up to N instances of nbdcopy in parallel" msgstr "" #: open/open.ml:188 msgid "Running external command" msgstr "" #: common/mlcustomize/customize_run.ml:307 msgid "Running touch: %s" msgstr "" #. common/mlcustomize/customize_run.ml:159 #: common/mlcustomize/customize_run.ml:274 msgid "Running: %s" msgstr "" #. common/mlcustomize/customize_cmdline.ml:252 #: common/mlcustomize/customize_cmdline.ml:361 msgid "SCRIPT" msgstr "" #: common/mltools/tools_utils.ml:422 #: common/mlcustomize/customize_cmdline.ml:351 msgid "SELECTOR" msgstr "" #: common/mlcustomize/customize_run.ml:363 msgid "SELinux relabelling" msgstr "" #. common/mlcustomize/customize_cmdline.ml:214 #: common/mlcustomize/customize_cmdline.ml:328 msgid "SOURCE:DEST" msgstr "" #: common/mlcustomize/customize_run.ml:287 msgid "SSH key could not be injected for this type of guest" msgstr "" #: common/mlcustomize/customize_run.ml:284 msgid "SSH key inject: %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:374 msgid "Scrub a file" msgstr "" #: common/mlcustomize/customize_cmdline.ml:466 msgid "Scrub build log file" msgstr "" #: common/mlcustomize/customize_run.ml:374 msgid "Scrubbing the log file" msgstr "" #: common/mlcustomize/customize_run.ml:279 msgid "Scrubbing: %s" msgstr "" #: v2v/v2v.ml:208 msgid "Set bandwidth dynamically from file" msgstr "" #: v2v/v2v.ml:206 msgid "Set bandwidth to bits per sec" msgstr "" #. in-place/in_place.ml:172 #: v2v/v2v.ml:212 open/open.ml:76 inspector/inspector.ml:161 msgid "Set input mode (default: libvirt)" msgstr "" #: v2v/v2v.ml:228 inspector/inspector.ml:175 in-place/in_place.ml:184 msgid "Set memory size" msgstr "" #: v2v/v2v.ml:256 inspector/inspector.ml:185 in-place/in_place.ml:196 msgid "Set number of vCPUs" msgstr "" #. in-place/in_place.ml:178 #: v2v/v2v.ml:218 open/open.ml:82 inspector/inspector.ml:167 msgid "Set option for input mode" msgstr "" #: v2v/v2v.ml:242 msgid "Set option for output mode" msgstr "" #: v2v/v2v.ml:234 msgid "Set output allocation mode" msgstr "" #: v2v/v2v.ml:238 msgid "Set output format" msgstr "" #: v2v/v2v.ml:232 msgid "Set output mode (default: libvirt)" msgstr "" #: v2v/v2v.ml:246 msgid "Set output storage location" msgstr "" #: common/mlcustomize/customize_cmdline.ml:476 msgid "Set password crypto" msgstr "" #: common/mltools/tools_utils.ml:430 msgid "Set program name" msgstr "" #: common/mlcustomize/customize_cmdline.ml:356 msgid "Set root password" msgstr "" #: common/mlcustomize/customize_cmdline.ml:403 msgid "Set the default timezone" msgstr "" #: common/mlcustomize/customize_cmdline.ml:276 msgid "Set the hostname" msgstr "" #: inspector/inspector.ml:181 in-place/in_place.ml:188 msgid "Set the output filename" msgstr "" #: common/mlcustomize/customize_cmdline.ml:345 msgid "Set user password" msgstr "" #: common/mlcustomize/customize_run.ml:75 msgid "Setting a random seed" msgstr "" #: common/mlcustomize/customize_run.ml:354 msgid "Setting passwords" msgstr "" #: common/mlcustomize/password.ml:113 msgid "Setting random password of %s to %s" msgstr "" #: common/mlcustomize/customize_run.ml:207 msgid "Setting the hostname: %s" msgstr "" #: common/mlcustomize/customize_run.ml:90 msgid "Setting the machine ID in %s" msgstr "" #: common/mlcustomize/customize_run.ml:302 msgid "Setting the timezone: %s" msgstr "" #: v2v/v2v.ml:481 msgid "Setting up the destination: %s" msgstr "" #. in-place/in_place.ml:342 #: v2v/v2v.ml:457 open/open.ml:184 inspector/inspector.ml:310 msgid "Setting up the source: %s" msgstr "" #: v2v/v2v.ml:463 in-place/in_place.ml:348 msgid "Source guest information (--print-source option):\n" msgstr "" #: common/mltools/tools_utils.ml:422 msgid "Specify a LUKS key" msgstr "" #: common/mlcustomize/customize_cmdline.ml:392 msgid "TARFILE:REMOTEDIR" msgstr "" #: common/mlcustomize/customize_cmdline.ml:311 msgid "TARGET:LINK[:LINK..]" msgstr "" #: common/mlcustomize/customize_cmdline.ml:402 msgid "TIMEZONE" msgstr "" #: v2v/v2v.ml:200 msgid "" "The --in-place option has been replaced by the ‘virt-v2v-in-place’ program" msgstr "" #: output/output_qemu.ml:251 msgid "" "The Virt machine has no support for IDE. Please report a bug for virt-v2v -- " "refer to virt-v2v(1) section \"BUGS\"." msgstr "" #: output/output_qemu.ml:272 msgid "" "The Virt machine has no support for floppies. Please report a bug for virt-" "v2v -- refer to virt-v2v(1) section \"BUGS\"." msgstr "" #: lib/create_ovf.ml:785 msgid "" "This guest required a password for connection to its display, but this is " "not supported by oVirt. Therefore the converted guest’s display will not " "require a separate password to connect." msgstr "" #: input/input_vmx.ml:111 msgid "" "This transport does not support guests with snapshots. Either collapse the " "snapshots for this guest and try the conversion again, or use one of the " "alternate conversion methods described in virt-v2v-input-vmware(1) section " "\"NOTES\"." msgstr "" #: common/mlcustomize/customize_cmdline.ml:415 msgid "Truncate a file to zero size" msgstr "" #: common/mlcustomize/customize_run.ml:294 msgid "Truncating: %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:192 msgid "UID:GID:PATH" msgstr "" #: common/mlcustomize/customize_cmdline.ml:339 msgid "USER:SELECTOR" msgstr "" #: common/mlcustomize/customize_cmdline.ml:380 msgid "USER[:SELECTOR]" msgstr "" #: common/mlcustomize/customize_cmdline.ml:432 msgid "Uninstall package(s)" msgstr "" #: common/mlcustomize/customize_run.ml:311 msgid "Uninstalling packages: %s" msgstr "" #: common/mlcustomize/customize_run.ml:290 msgid "Unpack tar file: %s to %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:438 msgid "Update packages" msgstr "" #: common/mlcustomize/customize_run.ml:316 msgid "Updating packages" msgstr "" #: common/mlcustomize/customize_cmdline.ml:449 msgid "Upload local file to destination" msgstr "" #: common/mlcustomize/customize_run.ml:321 msgid "Uploading: %s to %s" msgstr "" #: common/mltools/tools_utils.ml:391 msgid "Use ANSI colour sequences even if not tty" msgstr "" #. in-place/in_place.ml:180 #: v2v/v2v.ml:220 open/open.ml:84 inspector/inspector.ml:169 msgid "Use password from file to connect to input hypervisor" msgstr "" #: v2v/v2v.ml:244 msgid "Use password from file to connect to output hypervisor" msgstr "" #: v2v/v2v.ml:224 msgid "Use virt-v2v-in-place instead" msgstr "" #: common/mltools/tools_utils.ml:392 msgid "Wrap log messages even if not tty" msgstr "" #: common/mlcustomize/customize_cmdline.ml:460 msgid "Write file" msgstr "" #: common/mlcustomize/customize_run.ml:346 msgid "Writing: %s" msgstr "" #: lib/YAML.ml:167 msgid "" "YAML block contains newline character. This should not happen, please " "report a bug against virt-v2v." msgstr "" #: output/output_libvirt.ml:96 msgid "" "a libvirt domain called ‘%s’ already exists on the target.\n" "\n" "If using virt-v2v directly, use the ‘-on’ option to select a different name. " "Or delete the existing domain on the target using the ‘virsh undefine’ " "command.\n" "\n" "If using virt-p2v, select a different ‘Name’ in the ‘Target properties’. Or " "delete the existing domain on the target using the ‘virsh undefine’ command." msgstr "" #: common/mlcustomize/append_line.ml:44 msgid "append_line: %s is not a file" msgstr "" #: input/input_libvirt.ml:206 msgid "" "bad checksum for disk %d/%d\n" "Expected checksum: %s\n" "Actual checksum: %s" msgstr "" #: lib/libvirt_utils.ml:59 msgid "cannot find libvirt domain ‘%s’: %s" msgstr "" #: lib/libvirt_utils.ml:96 msgid "" "cannot find libvirt pool ‘%s’: %s\n" "\n" "Use ‘virsh pool-list --all’ to list all available pools, and ‘virsh pool-" "dumpxml ’ to display details about a particular pool.\n" "\n" "To set the pool which virt-v2v uses, add the ‘-os ’ option." msgstr "" #: lib/libvirt_utils.ml:110 msgid "cannot find libvirt volume ‘%s’: %s" msgstr "" #: common/mlcustomize/firstboot.ml:235 msgid "" "cannot finish firstboot installation by running ‘%s’ because host cpu (%s) " "and guest arch (%s) are not compatible. The firstboot service may not run " "at boot." msgstr "" #: output/output_libvirt.ml:180 msgid "cannot get libvirt domain capabilities: %s" msgstr "" #: output/output_libvirt.ml:85 msgid "cannot get libvirt hypervisor capabilities: %s" msgstr "" #: v2v/v2v.ml:105 inspector/inspector.ml:95 in-place/in_place.ml:102 msgid "cannot parse --mac \"%s\" parameter" msgstr "" #: v2v/v2v.ml:129 inspector/inspector.ml:119 in-place/in_place.ml:126 msgid "cannot parse --mac ip %s: doesn’t look like “%s” is an IP address" msgstr "" #: v2v/v2v.ml:143 inspector/inspector.ml:133 in-place/in_place.ml:140 #, fuzzy #| msgid "credential index out of range" msgid "cannot parse --mac ip prefix length field as an integer: %s" msgstr "referentie index is buiten het bereik" #: common/mlcustomize/guest_packages.ml:29 msgid "" "cannot use ‘%s’ because no package manager has been detected for this guest " "OS.\n" "\n" "If this guest OS is a common one with ordinary package management then this " "may have been caused by a failure of libguestfs inspection.\n" "\n" "For OSes such as Windows that lack package management, this is not " "possible. Try using one of the ‘--firstboot*’ flags instead (described in " "the virt-customize(1) manual)." msgstr "" #: output/output_ovirt.ml:91 msgid "" "cannot write files to the NFS server as %d:%d, even though we appear to be " "running as root. This probably means the NFS client or idmapd is not " "configured properly.\n" "\n" "You will have to chown the files that virt-v2v creates after the run, " "otherwise oVirt will not be able to import the VM." msgstr "" #: output/output_ovirt.ml:99 msgid "" "cannot write files to the NFS server as %d:%d. You might want to stop virt-" "v2v (^C) and rerun it as root." msgstr "" #: common/mlcustomize/customize_cmdline.ml:508 msgid "command '%s' cannot be used in command files, see the man page" msgstr "" #: common/mlcustomize/customize_cmdline.ml:525 msgid "command '%s' not valid, see the man page" msgstr "" #: common/mldrivers/linux_bootloaders.ml:318 msgid "could not add grub2 serial console (ignored)" msgstr "" #: input/ssh.ml:52 msgid "" "could not copy the VMX file from the remote server, see earlier error " "messages" msgstr "" #: output/output_libvirt.ml:211 msgid "" "could not define libvirt domain: %s.\n" "The libvirt XML is still available in ‘%s’. Try running ‘virsh -c %s define " "%s’ yourself instead." msgstr "" #: common/mldrivers/linux_bootloaders.ml:221 msgid "could not determine a way to update the configuration of Grub2" msgstr "" #: input/input_vddk.ml:243 msgid "" "could not fetch thumbprint from the server, you mus use ‘-io vddk-" "thumbprint=XX:XX...’" msgstr "" #: common/mldrivers/linux_bootloaders.ml:376 msgid "could not find bootloader mount point (%s): %s" msgstr "" #: common/mldrivers/windows_drivers.ml:91 msgid "" "could not find registry entry " "HKEY_LOCAL_MACHINE\\SYSTEM\\DriverDatabase\\DeviceIds in this Windows " "guest. It may be either a very old or very new version of Windows that we " "cannot process." msgstr "" #: common/mlcustomize/firstboot.ml:232 msgid "" "could not finish firstboot installation by running ‘%s’ because the command " "failed: %s" msgstr "" #. input/input_vcenter_https.ml:94 #: input/select_input.ml:66 input/input_xen_ssh.ml:71 input/input_vddk.ml:151 msgid "could not parse '-ic %s'. Original error message was: %s" msgstr "" #: input/parse_libvirt_xml.ml:407 input/parse_libvirt_xml.ml:54 msgid "could not parse device name ‘%s’ from the source libvirt XML" msgstr "" #: input/OVF.ml:168 #, fuzzy #| msgid "could not parse boot size" msgid "could not parse disk rasd:HostResource from OVF document" msgstr "kon boot grootte niet ontleden" #: input/input_ova.ml:98 #, fuzzy #| msgid "could not parse boot size" msgid "could not parse ovf:Name from OVF document" msgstr "kon boot grootte niet ontleden" #: output/output_ovirt.ml:247 msgid "" "could not read the %s specified by the '-os %s' parameter on the command " "line. Is it really an OVirt %s? The original error is: %s" msgstr "" #: common/mldrivers/linux_bootloaders.ml:336 msgid "" "could not rebuild grub2 configuration file (%s). This may mean that grub " "output will not be sent to the serial port, but otherwise should be " "harmless. Original error message: %s" msgstr "" #: output/output_libvirt.ml:156 msgid "could not refresh libvirt pool ‘%s’: %s" msgstr "" #: common/mldrivers/linux_bootloaders.ml:320 msgid "could not remove grub2 serial console (ignored)" msgstr "" #: common/mltools/registry.ml:93 msgid "" "decode_utf16le: Windows UTF16-LE string contains non-7-bit characters. This " "is a bug in %s, please report it." msgstr "" #: common/mltools/registry.ml:87 msgid "" "decode_utf16le: Windows string does not appear to be in UTF16-LE encoding. " "This could be a bug in %s." msgstr "" #: common/mldrivers/linux_bootloaders.ml:126 msgid "didn't find grub entry for kernel %s" msgstr "" #: input/input_disk.ml:150 msgid "disks on the command line have mixed formats" msgstr "" #: input/parse_libvirt_xml.ml:194 msgid "display in the input libvirt XML was ignored" msgstr "" #: output/output_qemu.ml:147 msgid "don’t know how to convert UEFI guests for architecture %s" msgstr "" #: common/mldrivers/linux.ml:158 msgid "don’t know how to find file owner using %s" msgstr "" #: common/mldrivers/linux.ml:89 msgid "don’t know how to get list of files from package using %s" msgstr "" #: common/mltools/curl.ml:82 msgid "downloading %s" msgstr "" #: lib/networks.ml:84 msgid "" "duplicate --mac parameter. Duplicate mappings specified for MAC address %s." msgstr "" #: lib/networks.ml:102 msgid "" "duplicate -b/--bridge parameter. Duplicate mappings specified for bridge %s." msgstr "" #: lib/networks.ml:108 msgid "duplicate -b/--bridge parameter. Only one default mapping is allowed." msgstr "" #: lib/networks.ml:90 msgid "" "duplicate -n/--network parameter. Duplicate mappings specified for network " "%s." msgstr "" #: lib/networks.ml:96 msgid "duplicate -n/--network parameter. Only one default mapping is allowed." msgstr "" #: input/OVF.ml:143 msgid "error parsing disk fileRef" msgstr "" #: input/input_ova.ml:124 msgid "error uncompressing %s, see earlier error messages" msgstr "" #: input/OVA.ml:210 input/OVA.ml:112 msgid "error unpacking %s, see earlier error messages" msgstr "" #: common/mltools/tools_utils.ml:248 msgid "exception: %s" msgstr "" #: common/mltools/tools_utils.ml:455 msgid "exited with error %d" msgstr "" #: lib/utils.ml:34 msgid "exited with non-zero error code %d" msgstr "" #: input/input_disk.ml:147 msgid "expected >= 1 disk name on the command line" msgstr "" #: common/mltools/xpath_helpers.ml:36 msgid "" "expecting XML expression to return an integer (expression: %s, matching " "string: %s)" msgstr "" #: common/mltools/tools_utils.ml:440 msgid "external command" msgstr "" #: output/output_ovirt_upload.ml:265 msgid "failed server prechecks, see earlier errors" msgstr "" #: output/output_ovirt_upload.ml:507 msgid "failed to create virtual machine, see earlier errors" msgstr "" #: output/output_ovirt_upload.ml:479 msgid "failed to finalize the transfers, see earlier errors" msgstr "" #: common/mldrivers/linux_bootloaders.ml:208 msgid "failed to find grub2-mkconfig binary (but Grub2 was detected on guest)" msgstr "" #: input/OVA.ml:461 msgid "failed to parse line returned by tar: %S" msgstr "" #: output/output_ovirt_upload.ml:394 msgid "failed to start transfer, see earlier errors" msgstr "" #: output/output_ovirt_upload.ml:311 msgid "failed vmchecks, see earlier errors" msgstr "" #: common/mltools/tools_utils.ml:239 msgid "failure: %s" msgstr "" #: input/input_ova.ml:134 msgid "file ‘%s’ not found in the ova" msgstr "" #: common/mlcustomize/firstboot.ml:143 msgid "" "firstboot: unknown version for old firstboot.service file %s (md5=%s), it " "will not be removed" msgstr "" #: common/mltools/tools_utils.ml:258 msgid "generated by %s %s" msgstr "" #: output/create_libvirt_xml.ml:39 msgid "get_osinfo_id: unknown guest operating system: %s" msgstr "" #: output/output_glance.ml:66 msgid "" "glance: glance client is not installed or set up correctly. You may need to " "set environment variables or source a script to enable authentication. See " "preceding messages for details." msgstr "" #: output/output_glance.ml:139 msgid "glance: image upload to glance failed, see earlier errors" msgstr "" #: common/mlcustomize/firstboot.ml:386 common/mlcustomize/firstboot.ml:164 msgid "guest type %s is not supported" msgstr "" #: common/mlcustomize/firstboot.ml:413 msgid "guest type %s/%s is not supported" msgstr "" #: common/mltools/tools_utils.ml:749 msgid "" "host (%s/%s) and guest (%s/%s) are not compatible, so you cannot use command " "line options that involve running commands in the guest. Use --firstboot " "scripts instead." msgstr "" #: common/mlcustomize/customize_run.ml:209 msgid "hostname could not be set for this type of guest" msgstr "" #: common/mldrivers/linux_kernels.ml:342 msgid "ignoring kernel %s in bootloader, as it does not exist." msgstr "" #: output/output_vdsm.ml:160 msgid "image directory (%s) does not exist or is not a directory" msgstr "" #: input/parse_libvirt_xml.ml:81 msgid "in the libvirt XML metadata, is missing or empty" msgstr "" #: input/parse_libvirt_xml.ml:87 msgid "in the libvirt XML metadata, is missing or empty" msgstr "" #: input/input_vcenter_https.ml:52 input/input_libvirt.ml:107 msgid "in-place mode does not work with HTTP source" msgstr "" #: input/input_vddk.ml:146 msgid "in-place mode does not work with VDDK source" msgstr "" #: input/input_vmx.ml:43 msgid "in-place mode does not work with VMX source" msgstr "" #: input/input_xen_ssh.ml:50 msgid "in-place mode does not work with Xen over SSH source" msgstr "" #: output/output_kubevirt.ml:116 msgid "" "incorrect number of '-oo disk' parameters. This guest has %d disks, but the " "parameter was used %d times." msgstr "" #: input/input_xen_ssh.ml:119 msgid "" "input from xen over ssh does not support disks stored on remote block " "devices. See virt-v2v-input-xen(1) section \"Xen or ssh conversions from " "block devices\"." msgstr "" #. in-place/in_place.ml:397 #: v2v/v2v.ml:590 open/open.ml:238 inspector/inspector.ml:353 msgid "" "insufficient free space in the conversion server temporary directory %s " "(%s).\n" "\n" "Either free up space in that directory, or set the LIBGUESTFS_CACHEDIR " "environment variable to point to another directory with more than 1GB of " "free space.\n" "\n" "See also the virt-v2v(1) manual, section \"Minimum free space check in the " "host\"." msgstr "" #: common/mltools/tools_utils.ml:246 msgid "internal error: Not_found exception was thrown" msgstr "" #: common/mltools/tools_utils.ml:243 msgid "internal error: assertion failed at %s, line %d, char %d" msgstr "" #: common/mltools/tools_utils.ml:241 msgid "internal error: invalid argument: %s" msgstr "" #: common/mldrivers/linux.ml:128 msgid "internal error: is_file_owned: dpkg command returned no output" msgstr "" #: common/mldrivers/linux.ml:133 msgid "internal error: is_file_owned: unexpected output from dpkg command: %s" msgstr "" #: common/mldrivers/linux_bootloaders.ml:130 msgid "internal error: regular expression did not match ‘%s’" msgstr "" #: v2v/v2v.ml:548 msgid "internal error: wait returned unexpected process ID %d status \"%s\"" msgstr "" #: v2v/v2v.ml:114 inspector/inspector.ml:104 in-place/in_place.ml:111 msgid "invalid --mac ip option" msgstr "" #: v2v/v2v.ml:98 inspector/inspector.ml:88 in-place/in_place.ml:95 msgid "invalid -b/--bridge parameter" msgstr "" #: v2v/v2v.ml:90 inspector/inspector.ml:80 in-place/in_place.ml:87 msgid "invalid -n/--network parameter" msgstr "" #: input/parse_domain_from_vmx.ml:402 msgid "invalid cpuid.coresPerSocket < number of vCPUs" msgstr "" #. common/mlcustomize/customize_cmdline.ml:153 #. common/mlcustomize/customize_cmdline.ml:145 #: common/mlcustomize/customize_cmdline.ml:161 msgid "invalid format for '--%s' parameter, see the man page" msgstr "" #: common/mltools/tools_utils.ml:359 msgid "invalid format string for --machine-readable: %s" msgstr "" #: lib/utils.ml:279 msgid "invalid input filename (%s)" msgstr "" #: input/OVA.ml:445 msgid "invalid offset returned by tar: %S" msgstr "" #: common/mltools/tools_utils.ml:374 msgid "invalid output fd for --machine-readable: %s" msgstr "" #: common/mltools/tools_utils.ml:376 msgid "invalid output for --machine-readable: %s" msgstr "" #: common/mltools/tools_utils.ml:368 msgid "invalid output stream for --machine-readable: %s" msgstr "" #: common/mlcustomize/password.ml:73 msgid "invalid password selector ‘%s’; see the man page" msgstr "" #: input/OVA.ml:450 msgid "invalid size returned by tar: %S" msgstr "" #: common/mlcustomize/ssh_key.ml:45 msgid "invalid ssh-inject selector ‘%s’; see the man page" msgstr "" #: input/OVF.ml:82 msgid "invalid vmw:CoresPerSocket (%d) ignored" msgstr "" #: input/OVF.ml:88 msgid "invalid vmw:CoresPerSocket < number of cores" msgstr "" #: common/mldrivers/linux_bootloaders.ml:114 msgid "kernel %s is not under grub tree %s" msgstr "" #: common/mltools/tools_utils.ml:539 common/mltools/tools_utils.ml:458 msgid "killed by signal %d" msgstr "" #: common/mltools/tools_utils.ml:237 msgid "libguestfs error: %s" msgstr "" #: lib/libvirt_utils.ml:72 msgid "" "libvirt domain ‘%s’ is running or paused. Converting a live guest will " "result in corrupted output. However this is safe if you're converting from a " "snapshot" msgstr "" #: common/mlcustomize/customize_run.ml:47 msgid "log file %s: %s (ignored)" msgstr "" #: input/OVA.ml:147 msgid "" "making OVA directory public readable to work around libvirt bug https://" "bugzilla.redhat.com/1045069" msgstr "" #: input/input_ova.ml:86 msgid "manifest has a checksum for non-existent file %s (ignored)" msgstr "" #: common/mlcustomize/customize_cmdline.ml:472 msgid "md5|sha256|sha512" msgstr "" #: common/mlcustomize/customize_run.ml:119 msgid "method '%s' is no longer supported" msgstr "" #: common/mltools/JSON_parser.ml:39 msgid "missing value for the key ‘%s’" msgstr "" #: input/OVA.ml:276 msgid "more than one .ovf file was found in %s" msgstr "" #: common/mltools/JSON_parser.ml:34 msgid "more than value for the key ‘%s’" msgstr "" #: output/output_ovirt.ml:222 msgid "" "mount command failed, see earlier errors.\n" "\n" "This probably means you didn't specify the right %s path [-os %s], or else " "you need to rerun virt-v2v as root." msgstr "" #: common/mlcustomize/customize_run.ml:103 msgid "" "multiple --root-password/--password options set the password for user ‘%s’ " "twice" msgstr "" #: input/input_vddk.ml:319 msgid "" "nbdkit VDDK plugin is not installed or not working. It is required if you " "want to use VDDK.\n" "\n" "It 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 ’/%s/libvixDiskLib.so.?’.\n" "\n" "See also the virt-v2v-input-vmware(1) manual." msgstr "" #: input/input_vddk.ml:313 msgid "" "nbdkit VDDK plugin is not installed or not working. It is required if you " "want to use VDDK.\n" "\n" "The 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" "\n" "See also the virt-v2v-input-vmware(1) manual." msgstr "" #: lib/nbdkit.ml:223 msgid "nbdkit did not start up. See previous debugging messages for problems." msgstr "" #: lib/nbdkit.ml:225 msgid "" "nbdkit did not start up. There may be errors printed by nbdkit above.\n" "\n" "If the messages above are not sufficient to diagnose the problem then add " "the ‘virt-v2v -v -x’ options and examine the debugging output carefully." msgstr "" #: input/nbdkit_ssh.ml:36 input/nbdkit_curl.ml:32 input/input_vddk.ml:283 msgid "nbdkit is not installed or not working" msgstr "" #: input/input_disk.ml:92 msgid "" "nbdkit is not installed or not working. It is required to use ‘-i disk’." msgstr "" #: input/input_libvirt.ml:68 msgid "" "nbdkit is not installed or not working. It is required to use ‘-i libvirt|" "libvirtxml’." msgstr "" #: output/output.ml:178 output/output.ml:77 msgid "" "nbdkit is not installed or not working. It is required to use ‘-o disk’." msgstr "" #: output/output_null.ml:57 msgid "" "nbdkit is not installed or not working. It is required to use ‘-o null’." msgstr "" #: output/output_ovirt_upload.ml:163 msgid "" "nbdkit is not installed or not working. It is required to use ‘-o ovirt-" "upload’. See the virt-v2v-output-ovirt(1) manual." msgstr "" #: input/input_vddk.ml:285 msgid "nbdkit must be >= 1.45.11 for input from VDDK" msgstr "" #: output/output_ovirt_upload.ml:176 msgid "" "nbdkit python plugin is not installed or not working. It is required if you " "want to use ‘-o ovirt-upload’.\n" "\n" "See also the virt-v2v-output-ovirt(1) manual." msgstr "" #: output/output_ovirt_upload.ml:190 msgid "" "nbdkit was compiled without SELinux support. You will have to recompile " "nbdkit with libselinux-devel installed, or else set SELinux to Permissive " "mode while doing the conversion." msgstr "" #. input/input_libvirt.ml:76 #. input/input_disk.ml:98 #: input/nbdkit_ssh.ml:42 input/nbdkit_curl.ml:38 input/input_vddk.ml:289 msgid "nbdkit-cow-filter is not installed or not working" msgstr "" #: input/nbdkit_curl.ml:35 msgid "nbdkit-curl-plugin is not installed" msgstr "" #. input/input_disk.ml:96 #: output/output.ml:181 output/output.ml:80 input/input_libvirt.ml:72 msgid "nbdkit-file-plugin is not installed or not working" msgstr "" #: input/input_libvirt.ml:74 msgid "nbdkit-nbd-plugin is not installed or not working" msgstr "" #: output/output_null.ml:60 msgid "nbdkit-null-plugin is not installed or not working" msgstr "" #: input/nbdkit_ssh.ml:39 msgid "nbdkit-ssh-plugin is not installed" msgstr "" #: input/input_vddk.ml:287 msgid "nbdkit-vddk-plugin is not installed" msgstr "" #: lib/nbdkit.ml:56 msgid "nbdkit: unexpected version in --dump-config: %s" msgstr "" #. input/input_vcenter_https.ml:49 #. input/input_ova.ml:46 #. input/input_libvirt.ml:35 #. input/input_disk.ml:39 #: input/input_xen_ssh.ml:47 input/input_vmx.ml:40 msgid "no -io (input options) are allowed here" msgstr "" #: output/output_ovirt.ml:44 output/output_null.ml:42 #: output/output_glance.ml:44 msgid "no -oo (output options) are allowed here" msgstr "" #: input/OVA.ml:273 msgid "no .ovf file was found in %s" msgstr "" #: common/mldrivers/linux_bootloaders.ml:402 msgid "no bootloader detected" msgstr "" #: input/parse_domain_from_vmx.ml:359 msgid "no displayName key found in VMX file" msgstr "" #: input/OVF.ml:148 msgid "no href in ovf:File (id=%s)" msgstr "" #: common/mldrivers/linux_kernels.ml:194 msgid "no initrd was found in /boot matching %s %s." msgstr "" #: common/mldrivers/linux_kernels.ml:317 msgid "" "no installed kernel packages were found.\n" "\n" "This probably indicates that %s was unable to inspect this guest properly." msgstr "" #: common/mldrivers/linux_kernels.ml:354 msgid "" "no kernels were found in the bootloader configuration.\n" "\n" "This probably indicates that %s was unable to parse the bootloader " "configuration of this guest." msgstr "" #: output/python_script.ml:55 msgid "no python binary called ‘%s’ can be found on the $PATH" msgstr "" #: input/select_input.ml:106 msgid "" "no support for remote libvirt connections to '-ic %s'. The conversion may " "fail when it tries to read the source disks." msgstr "" #: lib/create_ovf.ml:1027 msgid "" "oVirt cannot emulate ‘%s’ sound cards. This sound card will be dropped from " "the output." msgstr "" #: lib/create_ovf.ml:875 lib/create_ovf.ml:512 msgid "oVirt does not support the output format ‘%s’, only raw or qcow2" msgstr "" #: output/output_openstack.ml:120 msgid "openstack: -oo server-id= not present" msgstr "" #: output/output_openstack.ml:338 msgid "" "openstack: failed to attach cinder volume to VM, see earlier error messages" msgstr "" #: output/output_openstack.ml:291 msgid "openstack: failed to create a cinder volume, see earlier error messages" msgstr "" #: output/output_openstack.ml:304 msgid "" "openstack: failed to query cinder volume status, see earlier error messages" msgstr "" #: output/output_openstack.ml:442 msgid "" "openstack: failed to set image properties on cinder volume, see earlier " "error messages" msgstr "" #: output/output_openstack.ml:199 msgid "" "openstack: precheck failed, there may be a problem with authentication, see " "earlier error messages" msgstr "" #: output/output_openstack.ml:311 msgid "" "openstack: unknown volume status \"%s\": expected \"creating\" or " "\"available\"" msgstr "" #: output/output.ml:133 msgid "output mode only supports raw or qcow2 format (format: %s)" msgstr "" #: input/OVF.ml:263 msgid "" "ova disk has an unknown VMware controller type (%d), please report this as a " "bug supplying the *.ovf file extracted from the ova" msgstr "" #: input/OVF.ml:259 msgid "" "ova disk has no parent controller, please report this as a bug supplying the " "*.ovf file extracted from the ova" msgstr "" #: output/output_ovirt_upload.ml:367 msgid "" "ovirt-upload: -of %s: Only output format ‘raw’ or ‘qcow2’ is supported. If " "the input is in a different format then force one of these output formats by " "adding either ‘-of raw’ or ‘-of qcow2’ on the command line." msgstr "" #: common/mlcustomize/password.ml:51 msgid "" "password-crypto: unknown algorithm %s, use \"md5\", \"sha256\", \"sha512\" " "or \"yescrypt\"" msgstr "" #: common/mlcustomize/password.ml:197 msgid "" "password: using insecure md5 password encryption for guest of type %s " "version %d.%d.\n" "If this is incorrect, use --password-crypto option and file a bug." msgstr "" #: common/mlcustomize/customize_run.ml:359 msgid "passwords could not be set for this type of guest" msgstr "" #: lib/qemuNBD.ml:125 msgid "" "qemu-nbd did not start up. See previous debugging messages for problems." msgstr "" #: lib/qemuNBD.ml:127 msgid "" "qemu-nbd did not start up. There may be errors printed by qemu-nbd above.\n" "\n" "If the messages above are not sufficient to diagnose the problem then add " "the ‘virt-v2v -v -x’ options and examine the debugging output carefully." msgstr "" #: lib/qemuNBD.ml:47 msgid "qemu-nbd: unexpected version in --version: %s" msgstr "" #: common/mlcustomize/customize_run.ml:77 msgid "random seed could not be set for this type of guest" msgstr "" #: input/parse_domain_from_vmx.ml:44 msgid "remote vmx ‘%s’ could not be parsed as a URI" msgstr "" #. common/mlcustomize/inject_virtio_win.ml:357 #. common/mlcustomize/inject_virtio_win.ml:352 #: common/mlcustomize/inject_virtio_win.ml:362 msgid "" "root directory ‘/’ is missing from the virtio-win directory or ISO.\n" "\n" "This should not happen and may indicate that virtio-win or virt-v2v is " "broken in some way. Please report this as a bug with a full debug log." msgstr "" #: common/mltools/tools_utils.ml:417 common/options/keys.c:264 #, c-format msgid "selector '%s': invalid TYPE" msgstr "" #: common/mltools/tools_utils.ml:409 common/options/keys.c:254 #, c-format msgid "selector '%s': missing FILENAME, or too many fields" msgstr "" #: common/mltools/tools_utils.ml:399 common/options/keys.c:232 #, c-format msgid "selector '%s': missing ID" msgstr "" #: common/mltools/tools_utils.ml:404 common/options/keys.c:245 #, c-format msgid "selector '%s': missing KEY_STRING, or too many fields" msgstr "" #: common/mltools/tools_utils.ml:401 common/options/keys.c:239 #, c-format msgid "selector '%s': missing TYPE" msgstr "" #: common/mltools/tools_utils.ml:413 common/options/keys.c:262 #, c-format msgid "selector '%s': too many fields" msgstr "" #: lib/utils.ml:35 msgid "signalled by signal %d" msgstr "" #: common/mlcustomize/guest_packages.ml:40 msgid "" "sorry, ‘%s’ with the ‘%s’ package manager has not been implemented yet.\n" "\n" "You can work around this by using one of the ‘--run*’ or ‘--firstboot*’ " "options instead (described in the virt-customize(1) manual)." msgstr "" #: common/mlcustomize/ssh_key.ml:57 msgid "ssh-inject: $HOME environment variable is not set" msgstr "" #: common/mlcustomize/ssh_key.ml:93 msgid "ssh-inject: key is an empty string" msgstr "" #: common/mlcustomize/ssh_key.ml:66 msgid "ssh-inject: no public key file found in %s" msgstr "" #: common/mlcustomize/ssh_key.ml:83 msgid "ssh-inject: public key file (%s) is empty" msgstr "" #: common/mlcustomize/ssh_key.ml:112 msgid "ssh-inject: the user %s does not exist on the guest" msgstr "" #. common/mltools/tools_utils.ml:461 #: lib/utils.ml:36 common/mltools/tools_utils.ml:542 msgid "stopped by signal %d" msgstr "" #: output/changeuid.ml:58 msgid "subprocess exited with non-zero error code %d" msgstr "" #: output/changeuid.ml:60 msgid "subprocess signalled or stopped by signal %d" msgstr "" #: lib/utils.ml:33 msgid "success" msgstr "" #: output/create_libvirt_xml.ml:297 msgid "" "target hypervisor does not support floppy devices, but floppy devices were " "found in the source guest" msgstr "" #: output/output_ovirt_upload.ml:156 msgid "" "the Python module ‘ovirtsdk4’ could not be loaded, is it installed? See " "previous messages for problems." msgstr "" #: output/output_ovirt_upload.ml:453 msgid "the cluster ‘%s’ does not support the architecture %s but %s" msgstr "" #: common/mlcustomize/customize_run.ml:59 msgid "" "the command may have failed because the network is disabled. Try either " "removing ‘--no-network’ or adding ‘--network’ on the command line." msgstr "" #: common/mltools/JSON_parser.ml:84 msgid "the key ‘%s’ was not found in a list of objects" msgstr "" #: output/output_ovirt_upload.ml:288 msgid "" "the number of ‘-oo ovirt-disk-uuid’ parameters passed on the command line " "has to match the number of guest disk images (for this guest: %d)" msgstr "" #: output/output_vdsm.ml:133 msgid "" "the number of ‘-oo vdsm-image-uuid’ and ‘-oo vdsm-vol-uuid’ parameters " "passed on the command line has to match the number of guest disk images (for " "this guest: %d)" msgstr "" #: output/output_libvirt.ml:239 msgid "the target hypervisor does not support a %s KVM guest" msgstr "" #: common/mltools/JSON_parser.ml:78 msgid "the value for key ‘%s’ is not a string as expected" msgstr "" #: common/mltools/JSON_parser.ml:50 msgid "the value for the key ‘%s’ is not a bool" msgstr "" #: common/mltools/JSON_parser.ml:45 msgid "the value for the key ‘%s’ is not a string" msgstr "" #: common/mltools/JSON_parser.ml:70 msgid "the value for the key ‘%s’ is not an integer" msgstr "" #: common/mltools/JSON_parser.ml:55 msgid "the value for the key ‘%s’ is not an object" msgstr "" #: common/mltools/JSON_parser.ml:59 msgid "the value is not an object" msgstr "" #: common/mltools/JSON_parser.ml:35 msgid "the value of the key ‘%s’ is not an object" msgstr "" #: lib/create_ovf.ml:519 msgid "" "the virtual size of the input disk %d is not an exact multiple of 512 " "bytes. The virtual size is: %Ld.\n" "\n" "This probably means something unexpected is going on, so please file a bug " "about this issue." msgstr "" #: output/output_openstack.ml:144 msgid "" "the ‘%s’ program is not available. It is needed to communicate with " "OpenStack." msgstr "" #: output/output_ovirt.ml:265 msgid "" "there are multiple UUIDs in the %s (%s). This is unexpected, and may be a " "bug in virt-v2v or OVirt." msgstr "" #: output/output_ovirt.ml:262 msgid "there are no UUIDs in the %s (%s). Is it really an OVirt %s?" msgstr "" #: common/mlcustomize/inject_virtio_win.ml:153 msgid "" "there are no virtio drivers available for this version of Windows (%d.%d %s " "%s %s). virt-v2v looks for drivers in %s\n" "\n" "The guest will be configured to use slower emulated devices." msgstr "" #: common/mlcustomize/inject_virtio_win.ml:175 msgid "" "there is no virtio block device driver for this version of Windows (%d.%d " "%s). virt-v2v looks for this driver in %s\n" "\n" "The guest will be configured to use a slower emulated device." msgstr "" #: common/mlcustomize/inject_virtio_win.ml:206 msgid "" "there is no virtio network driver for this version of Windows (%d.%d %s). " "virt-v2v looks for this driver in %s\n" "\n" "The guest will be configured to use a slower emulated device." msgstr "" #: input/parse_libvirt_xml.ml:545 msgid "this guest has a direct network interface which will be ignored" msgid_plural "this guest has direct network interfaces which will be ignored" msgstr[0] "" msgstr[1] "" #: input/parse_libvirt_xml.ml:527 msgid "this guest has a passthrough host device which will be ignored" msgid_plural "this guest has passthrough host devices which will be ignored" msgstr[0] "" msgstr[1] "" #: input/parse_libvirt_xml.ml:248 msgid "this guest has no non-removable disks" msgstr "" #: output/output.ml:65 msgid "this output module doesn't support copying more than %d disks" msgstr "" #: common/mlcustomize/timezone.ml:35 msgid "timezone '%s' does not exist, use a location like 'Europe/London'" msgstr "" #: common/mlcustomize/customize_run.ml:304 msgid "timezone could not be set for this type of guest" msgstr "" #: input/OVA.ml:318 msgid "unable to parse line from manifest file: %S" msgstr "" #: common/mltools/urandom.ml:37 msgid "unexpected end of file while reading /dev/urandom" msgstr "" #: input/input_libvirt.ml:196 msgid "unexpected output from the %s command" msgstr "" #: common/mltools/checksums.ml:58 msgid "unhandled checksum type ‘%s’" msgstr "" #: lib/types.ml:524 msgid "unknown --root option: %s" msgstr "" #: input/select_input.ml:51 msgid "unknown -i option: %s" msgstr "" #: output/select_output.ml:74 msgid "unknown -o option: %s" msgstr "" #: v2v/v2v.ml:164 msgid "unknown -oa option: %s" msgstr "" #: input/input_libvirt.ml:189 msgid "unknown method='%s'" msgstr "" #: input/OVF.ml:103 msgid "unknown Config:firmware value %s (expected \"bios\" or \"efi\")" msgstr "" #: lib/create_ovf.ml:446 lib/create_ovf.ml:247 msgid "unknown Windows 10 variant: %s (%s)" msgstr "" #: v2v/v2v.ml:319 in-place/in_place.ml:256 msgid "unknown block driver ‘--block-driver %s’" msgstr "" #: input/parse_domain_from_vmx.ml:415 msgid "unknown firmware value '%s', assuming BIOS" msgstr "" #: lib/create_ovf.ml:454 lib/create_ovf.ml:255 msgid "unknown guest operating system: %s %s %d.%d %s (%s)" msgstr "" #: v2v/v2v.ml:329 open/open.ml:132 inspector/inspector.ml:238 msgid "unknown input transport ‘-it %s’" msgstr "" #: input/parse_domain_from_vmx.ml:428 msgid "unknown sound device '%s' ignored" msgstr "" #: input/parse_libvirt_xml.ml:215 msgid "unknown sound model %s ignored" msgstr "" #: input/OVF.ml:156 msgid "unsupported compression in OVF: %s" msgstr "" #: input/input_vcenter_https.ml:123 msgid "" "vcenter: was not found in the XML. You need to " "upgrade to libvirt ≥ 1.2.20." msgstr "" #: input/vCenter.ml:79 msgid "vcenter: URL not found: %s" msgstr "" #: input/vCenter.ml:70 msgid "vcenter: incorrect username or password" msgstr "" #: input/vCenter.ml:72 msgid "" "vcenter: incorrect username or password. You might need to specify the " "username in the URI like this: [vpx|esx|..]://USERNAME@[etc]" msgstr "" #: input/vCenter.ml:84 msgid "vcenter: invalid response from server: %s" msgstr "" #: input/vCenter.ml:194 msgid "vcenter: no status code in output of ‘curl’ command." msgstr "" #: output/output_vdsm.ml:148 msgid "vdsm: invalid -os parameter does not contain a valid UUID: %s" msgstr "" #: output/output_openstack.ml:56 msgid "" "virt-v2v -oo server-id= [os-*=...]\n" "\n" "Specify the name or UUID of the conversion appliance using\n" "\n" " virt-v2v ... -o openstack -oo server-id=\n" "\n" "When virt-v2v runs it will attach the Cinder volumes to the\n" "conversion appliance, so this name or UUID must be the name\n" "of the virtual machine on OpenStack where virt-v2v is running.\n" "\n" "In addition, all usual OpenStack “os-*” parameters or “OS_*”\n" "environment variables can be used.\n" "\n" "Openstack “--os-*” parameters must be written as “virt-v2v -oo os-*”.\n" "\n" "For example:\n" "\n" " virt-v2v -oo os-username=\n" "\n" " equivalent to openstack: --os-username=\n" " or the environment variable: OS_USERNAME=\n" "\n" " virt-v2v -oo os-project-name=\n" "\n" " equivalent to openstack: --os-project-name=\n" " or the environment variable: OS_PROJECT_NAME=\n" "\n" "The os-* parameters and environment variables are optional.\n" msgstr "" #: input/parse_libvirt_xml.ml:189 msgid "" "virt-v2v does not support local displays, so in the " "input libvirt XML was ignored" msgstr "" #: input/select_input.ml:83 msgid "virt-v2v-in-place does not support remote libvirt URIs" msgstr "" #: input/parse_domain_from_vmx.ml:50 msgid "vmx URI path component looks incorrect" msgstr "" #: input/parse_domain_from_vmx.ml:48 msgid "vmx URI remote server name omitted" msgstr "" #: input/parse_domain_from_vmx.ml:46 msgid "vmx URI start with ‘ssh://...’" msgstr "" #: input/VMX.ml:313 msgid "vmx parser: cannot parse this line, ignoring: %s" msgstr "" #: input/VMX.ml:346 msgid "vmx parser: duplicate key '%s' ignored" msgstr "" #: output/output_openstack.ml:299 msgid "wait for cinder volume status to change to \"available\"" msgstr "" #: output/output_openstack.ml:360 msgid "waiting for cinder volume %s to attach to the conversion appliance" msgstr "" #: open/open.ml:136 msgid "you must supply the --run parameter" msgstr "" #: input/input_xen_ssh.ml:87 input/input_vddk.ml:189 msgid "‘-ic %s’ URL does not contain a host name field" msgstr "" #: input/input_vddk.ml:273 msgid "‘-io vddk-file=’ must be used exactly %d times" msgstr "" #: input/input_vddk.ml:297 msgid "" "‘-io vddk-libdir=%s’ does not point to a directory. See the virt-v2v-input-" "vmware(1) manual." msgstr "" #: output/output.ml:85 msgid "" "‘-oo compressed’ is only allowed when the output format is a local qcow2-" "format file, i.e. ‘-of qcow2’" msgstr "" #: input/input_vddk.ml:232 msgid "" "‘openssl’ command not found: automatically detecting thumbprint is not " "possible, so you must use ‘-io vddk-thumbprint=XX:XX...’" msgstr "" #: common/mltools/getopt-c.c:68 #, c-format msgid "Try ‘%s --help’ or consult %s(1) for more information.\n" msgstr "" #: common/mltools/getopt-c.c:187 #, c-format msgid "%s: ‘%s’ is not a numeric value.\n" msgstr "" #: common/mltools/getopt-c.c:193 #, c-format msgid "%s: %s: integer out of range\n" msgstr "%s: %s: geheel getal ligt buiten de reeks\n" #: common/mltools/getopt-c.c:383 #, c-format msgid "%s: ‘%s’ is not allowed for -%c; allowed values are:\n" msgstr "" #: common/mltools/getopt-c.c:386 #, c-format msgid "%s: ‘%s’ is not allowed for %s%s; allowed values are:\n" msgstr "" #: common/mltools/getopt-c.c:421 #, c-format msgid "Extra parameter on the command line: ‘%s’.\n" msgstr "" #: common/options/config.c:72 #, c-format msgid "%s: line %d: error parsing configuration file: %s" msgstr "" #: common/options/decrypt.c:52 #, c-format msgid "string size overflow" msgstr "" #: common/options/decrypt.c:170 #, c-format msgid "" "'clevis_luks_unlock', needed for decrypting %s, is unavailable in this " "libguestfs version" msgstr "" #: common/options/decrypt.c:184 #, c-format msgid "" "could not find key to open LUKS encrypted %s.\n" "\n" "Try using --key on the command line.\n" "\n" "Original error: %s (%d)" msgstr "" #: common/options/inspect.c:78 #, c-format msgid "" "%s: no operating system was found on this disk\n" "\n" "If using guestfish ‘-i’ option, remove this option and instead\n" "use the commands ‘run’ followed by ‘list-filesystems’.\n" "You can then mount filesystems you want by hand using the\n" "‘mount’ or ‘mount-ro’ command.\n" "\n" "If using guestmount ‘-i’, remove this option and choose the\n" "filesystem(s) you want to see by manually adding ‘-m’ option(s).\n" "Use ‘virt-filesystems’ to see what filesystems are available.\n" "\n" "If using other virt tools, this disk image won’t work\n" "with these tools. Use the guestfish equivalent commands\n" "(see the virt tool manual page).\n" msgstr "" #: common/options/inspect.c:99 #, c-format msgid "" "%s: multi-boot operating systems are not supported\n" "\n" "If using guestfish ‘-i’ option, remove this option and instead\n" "use the commands ‘run’ followed by ‘list-filesystems’.\n" "You can then mount filesystems you want by hand using the\n" "‘mount’ or ‘mount-ro’ command.\n" "\n" "If using guestmount ‘-i’, remove this option and choose the\n" "filesystem(s) you want to see by manually adding ‘-m’ option(s).\n" "Use ‘virt-filesystems’ to see what filesystems are available.\n" "\n" "If using other virt tools, multi-boot operating systems won’t work\n" "with these tools. Use the guestfish equivalent commands\n" "(see the virt tool manual page).\n" msgstr "" #: common/options/inspect.c:161 #, c-format msgid "%s: some filesystems could not be mounted (ignored)\n" msgstr "" "%s: sommige bestandssystemen konden niet aangekoppeld worden (genegeerd)\n" #: common/options/inspect.c:178 #, c-format msgid "Operating system: %s\n" msgstr "Besturingssysteem: %s\n" #: common/options/inspect.c:196 #, c-format msgid "%s mounted on %s\n" msgstr "%s aangekoppeld op %s\n" #: common/options/keys.c:63 #, c-format msgid "Enter key or passphrase (\"%s\"): " msgstr "Vul sleutel of wachtzin in (\"%s\"): " #: common/options/keys.c:146 #, c-format msgid "size_t overflow" msgstr "" #: common/options/keys.c:193 #, fuzzy, c-format #| msgid "could not parse boot size" msgid "could not read key from user" msgstr "kon boot grootte niet ontleden" #: common/options/options.c:283 #, c-format msgid "%s: ‘%s’ could not be mounted.\n" msgstr "" #: common/options/options.c:287 #, c-format msgid "" "%s: Check mount(8) man page to ensure options ‘%s’\n" "%s: are supported by the filesystem that is being mounted.\n" msgstr "" #: common/options/options.c:291 #, c-format msgid "%s: Did you mean to mount one of these filesystems?\n" msgstr "" "%s: Bedoelde je het om een van deze bestandssystemen aan te koppelen?\n" #: common/options/options.c:304 #, c-format msgid "cannot determine the subvolume for %s: %s (%d)" msgstr "" #: common/options/uri.c:119 #, c-format msgid "%s: --add: could not parse URI ‘%s’\n" msgstr "" #: common/options/uri.c:130 #, c-format msgid "%s: %s: scheme of URI is NULL or empty\n" msgstr "" #: common/options/uri.c:138 #, c-format msgid "%s: %s: cannot have both a server name and a socket query parameter\n" msgstr "" #: common/utils/utils.c:107 #, c-format msgid "%s exited successfully" msgstr "" #: common/utils/utils.c:110 #, c-format msgid "%s exited with error status %d" msgstr "" #: common/utils/utils.c:114 #, c-format msgid "%s killed by signal %d (%s)" msgstr "" #: common/utils/utils.c:118 #, c-format msgid "%s stopped by signal %d (%s)" msgstr "" #: common/utils/utils.c:122 #, c-format msgid "%s exited for an unknown reason (status %d)" msgstr "" ================================================ FILE: po/or.po ================================================ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR Red Hat Inc. # This file is distributed under the same license as the PACKAGE package. # # Translators: # rjones , 2011 msgid "" msgstr "" "Project-Id-Version: libguestfs 1.39.12\n" "Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?" "component=libguestfs&product=Virtualization+Tools\n" "POT-Creation-Date: 2025-02-16 17:05+0000\n" "PO-Revision-Date: 2015-02-21 10:51+0000\n" "Last-Translator: Copied by Zanata \n" "Language-Team: Oriya (http://www.transifex.com/projects/p/libguestfs/" "language/or/)\n" "Language: or\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Zanata 4.6.2\n" #: input/input_ova.ml:135 common/mltools/tools_utils.ml:235 msgid "%s" msgstr "" #: common/mltools/getopt.ml:73 msgid "" "%s\n" "Options:\n" msgstr "" #: common/mltools/tools_utils.ml:695 common/mlcustomize/customize_run.ml:390 msgid "%s (ignored)" msgstr "" #: common/mltools/checksums.ml:71 msgid "%s did not return any output" msgstr "" #: common/mlcustomize/customize_run.ml:183 msgid "%s does not exist in the guest" msgstr "" #: output/output_ovirt.ml:275 msgid "" "%s does not exist or is not a directory.\n" "\n" "Most likely cause: Either the %s (%s) has not been attached to any Data " "Center, or the path %s is not an %s at all.\n" "\n" "You have to attach the %s to a Data Center using the oVirt user interface " "first.\n" "\n" "If you don’t know what the %s mount point should be then you can also find " "this out through the oVirt user interface." msgstr "" #: common/mlcustomize/customize_run.ml:113 msgid "%s ignored for non-Windows guest" msgstr "" #: common/mlcustomize/customize_run.ml:186 msgid "%s is not a regular file in the guest" msgstr "" #. open/open.ml:39 #. inspector/inspector.ml:153 #. inspector/inspector.ml:40 #. in-place/in_place.ml:164 #. in-place/in_place.ml:45 #: v2v/v2v.ml:194 v2v/v2v.ml:183 v2v/v2v.ml:159 v2v/v2v.ml:44 open/open.ml:68 msgid "%s option used more than once on the command line" msgstr "" #: common/mltools/tools_utils.ml:231 common/mltools/tools_utils.ml:202 msgid "%s: %s" msgstr "" #: common/mltools/tools_utils.ml:233 msgid "%s: %s: %s" msgstr "" #: common/mltools/on_exit.ml:77 msgid "" "%s: Exiting on signal %s\n" "%!" msgstr "" #: common/mlcustomize/inject_virtio_win.ml:411 msgid "%s: cannot open virtio-win ISO file: %s" msgstr "" #: common/mlcustomize/customize_run.ml:64 msgid "%s: command exited with an error" msgstr "" #: v2v/v2v.ml:277 msgid "" "%s: convert a guest to use KVM\n" "\n" "virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi -os imported " "esx_guest\n" "\n" "virt-v2v -i libvirtxml guest-domain.xml -o local -os /var/tmp\n" "\n" "virt-v2v -i disk disk.img -o local -os /var/tmp\n" "\n" "There is a companion front-end called \"virt-p2v\" which comes as an\n" "ISO or CD image that can be booted on physical machines.\n" "\n" "A short summary of the options is given below. For detailed help please\n" "read the man page virt-v2v(1).\n" msgstr "" #: in-place/in_place.ml:217 msgid "" "%s: convert a guest to use KVM in-place\n" "\n" "Note this program modifies the guest in-place with no backup.\n" "Normally you should use virt-v2v.\n" "\n" "virt-v2v-in-place -i libvirtxml guest-domain.xml\n" "\n" "virt-v2v-in-place -i disk disk.img\n" "\n" "A short summary of the options is given below. For detailed help please\n" "read the man page virt-v2v-in-place(1).\n" msgstr "" #: input/input_vddk.ml:207 msgid "%s: enter password for ‘%s’: " msgstr "" #: common/mltools/tools_utils.ml:172 msgid "%s: error: %s" msgstr "" #: inspector/inspector.ml:198 msgid "" "%s: estimate disk space needed before virt-v2v conversion\n" "\n" "virt-v2v-inspector -i disk disk.img [-O output.xml]\n" "\n" "A short summary of the options is given below. For detailed help please\n" "read the man page virt-v2v-inspector(1).\n" msgstr "" #: open/open.ml:94 msgid "" "%s: open the virt-v2v input and run a program on it\n" "\n" "virt-v2v-open -i disk disk.img --run 'virt-inspector --format=raw @@'\n" "\n" "A short summary of the options is given below. For detailed help please\n" "read the man page virt-v2v-open(1).\n" msgstr "" #: common/mltools/tools_utils.ml:726 msgid "%s: operation timed out" msgstr "" #: input/OVA.ml:127 input/OVA.ml:121 msgid "" "%s: unsupported file format\n" "\n" "Formats which we currently understand for '-i ova' are: tar (uncompressed, " "compress with gzip or xz), zip" msgstr "" #: common/mltools/tools_utils.ml:191 msgid "%s: warning: %s" msgstr "" #. common/mlcustomize/customize_cmdline.ml:258 #: common/mlcustomize/customize_cmdline.ml:367 msgid "'CMD+ARGS'" msgstr "" #: common/mlcustomize/customize_run.ml:133 msgid "" "--append-line: line must not contain newline characters. Use the --append-" "line option multiple times to add several lines." msgstr "" #: common/mlcustomize/customize_run.ml:152 msgid "--chown: could not parse numeric UID:GID from %s:%s" msgstr "" #: common/mlcustomize/customize_run.ml:216 msgid "" "--inject-blnsvr: blnsvr.exe not found in virtio-win source that you specified" msgstr "" #: common/mlcustomize/customize_run.ml:225 msgid "" "--inject-qemu-ga: QEMU Guest Agent MSI not found in virtio-win source that " "you specified" msgstr "" #: common/mlcustomize/customize_run.ml:241 msgid "" "--inject-virtio-win: virtio drivers were not found for this Windows version " "in the virtio-win source that you specified" msgstr "" #: v2v/v2v.ml:146 inspector/inspector.ml:136 in-place/in_place.ml:143 msgid "--mac ip prefix length field is out of range" msgstr "" #: v2v/v2v.ml:340 msgid "--parallel parameter must be >= 1" msgstr "" #: input/input_disk.ml:42 msgid "-i disk: expecting a disk image (filename) on the command line" msgstr "" #: input/input_xen_ssh.ml:65 msgid "-i libvirt: expecting -ic parameter for Xen over SSH connection" msgstr "" #: input/input_vddk.ml:142 input/input_vcenter_https.ml:88 msgid "-i libvirt: expecting -ic parameter for vcenter connection" msgstr "" #: input/input_vcenter_https.ml:101 msgid "-i libvirt: expecting -ic parameter to contain vcenter server name" msgstr "" #: input/input_vcenter_https.ml:78 msgid "-i libvirt: expecting -ip passwordfile parameter for vCenter connection" msgstr "" #. input/input_vcenter_https.ml:70 #. input/input_libvirt.ml:41 #: input/input_xen_ssh.ml:57 input/input_vddk.ml:132 msgid "-i libvirt: expecting a libvirt guest name on the command line" msgstr "" #: input/input_libvirt.ml:59 msgid "-i libvirtxml: expecting a libvirt XML filename on the command line" msgstr "" #: input/input_ova.ml:243 msgid "-i ova: OVF references file ‘%s’ which was not found in the OVA archive" msgstr "" #: input/input_ova.ml:78 msgid "" "-i ova: corrupt OVA: checksum of disk %s does not match manifest (actual = " "%s, expected = %s)" msgstr "" #: input/input_ova.ml:52 msgid "-i ova: expecting an OVA file name on the command line" msgstr "" #: input/OVA.ml:361 msgid "" "-i ova: invalid OVA file: path ‘%s’ references a file outside the archive" msgstr "" #: input/input_vmx.ml:57 msgid "-i vmx: cannot use -it vddk in this input mode" msgstr "" #: input/input_vmx.ml:60 msgid "-i vmx: expecting a VMX file or ssh:// URI" msgstr "" #: input/vCenter.ml:159 msgid "" "-ip PASSWORD_FILE parameter ignored because 'user@' was not given in the URL" msgstr "" #: input/input_vddk.ml:119 msgid "-it vddk: ‘-io %s’ is not a valid input option" msgstr "" #: output/output.ml:54 msgid "-o %s: %s option cannot be used in this output mode" msgstr "" #: output/output_disk.ml:66 msgid "-o disk: output directory was not specified, use '-os /dir'" msgstr "" #: output/output_libvirt.ml:59 output/output_disk.ml:56 msgid "-o disk: unknown output option ‘-oo %s’" msgstr "" #: output/output_kubevirt.ml:81 msgid "-o kubevirt: output directory was not specified, use '-os /dir'" msgstr "" #: output/output_kubevirt.ml:91 msgid "" "-o kubevirt: the guest name must contain only lowercase alphanumeric " "characters, '-' or '.', and must start and end with an alphanumeric " "character. Rerun virt-v2v with the '-on name' option to rename it." msgstr "" #: output/output_kubevirt.ml:71 msgid "-o kubevirt: unknown output option ‘-oo %s’" msgstr "" #: output/output_libvirt.ml:120 msgid "" "-o libvirt: output pool ‘%s’ does not have /pool/target/path element. See " "virt-v2v-output-local(1)" msgstr "" #: output/output_libvirt.ml:124 msgid "" "-o libvirt: output pool ‘%s’ has type='dir' but the /pool/target/path " "element is not a local directory. See virt-v2v-output-local(1)" msgstr "" #: output/output_libvirt.ml:116 msgid "" "-o libvirt: output pool ‘%s’ is not a directory (type='dir'). See virt-v2v-" "output-local(1)" msgstr "" #: output/output_openstack.ml:88 msgid "-o openstack mode only supports -oa sparse -of raw" msgstr "" #: output/output_openstack.ml:115 msgid "-o openstack: unknown output option ‘-oo %s’" msgstr "" #: output/output_ovirt_upload.ml:97 msgid "-o ovirt-upload: -oo ovirt-cafile set more than once" msgstr "" #: output/output_ovirt_upload.ml:101 msgid "-o ovirt-upload: -oo ovirt-cluster set more than once" msgstr "" #: output/output_ovirt_upload.ml:112 msgid "-o ovirt-upload: invalid UUID for -oo ovirt-disk-uuid" msgstr "" #: output/output_ovirt_upload.ml:76 msgid "" "-o ovirt-upload: output password file was not specified, use ‘-op’ to point " "to a file which contains the password used to connect to the oVirt server" msgstr "" #: output/output_ovirt_upload.ml:83 msgid "-o ovirt-upload: output storage was not specified, use ‘-os’" msgstr "" #: output/output_ovirt_upload.ml:116 msgid "-o ovirt-upload: unknown output option ‘-oo %s’" msgstr "" #: output/output_ovirt_upload.ml:68 msgid "" "-o ovirt-upload: use ‘-oc’ to point to the oVirt server REST API URL, which " "is usually https://servername/ovirt-engine/api" msgstr "" #: output/output_ovirt.ml:51 msgid "-o ovirt: -os option was not specified" msgstr "" #: output/output_qemu.ml:72 msgid "-o qemu: output directory was not specified, use '-os /dir'" msgstr "" #: output/output_qemu.ml:63 msgid "-o qemu: unknown output option ‘-oo %s’" msgstr "" #: output/output_vdsm.ml:102 msgid "-o vdsm: -oo vdsm-image-uuid was not specified" msgstr "" #: output/output_vdsm.ml:81 msgid "-o vdsm: -oo vdsm-ovf-output set more than once" msgstr "" #: output/output_vdsm.ml:77 msgid "-o vdsm: -oo vdsm-vm-uuid set more than once" msgstr "" #: output/output_vdsm.ml:110 msgid "-o vdsm: -os option was not specified" msgstr "" #: output/output_vdsm.ml:97 msgid "-o vdsm: either -oo vdsm-vol-uuid or -oo vdsm-vm-uuid was not specified" msgstr "" #: output/output_vdsm.ml:90 msgid "-o vdsm: unknown output option ‘-oo %s’" msgstr "" #: output/output_vdsm.ml:74 msgid "-o vdsm: unknown vdsm-compat level ‘%s’" msgstr "" #. output/output_kubevirt.ml:84 #. output/output_disk.ml:68 #: output/output_vdsm.ml:112 output/output_qemu.ml:74 msgid "-os %s: output directory does not exist or is not a directory" msgstr "" #: input/parse_libvirt_xml.ml:279 msgid " missing 'method' attribute, ignoring" msgstr "" #: input/parse_libvirt_xml.ml:291 msgid " unknown fail='%s' attribute, ignoring" msgstr "" #: input/parse_libvirt_xml.ml:370 input/parse_libvirt_xml.ml:317 msgid " was ignored" msgstr "" #: input/parse_libvirt_xml.ml:338 msgid " with was ignored" msgstr "" #: input/parse_libvirt_xml.ml:365 msgid " with was ignored" msgstr "" #: input/parse_libvirt_xml.ml:299 msgid " element with no type attribute ignored" msgstr "" #: input/parse_libvirt_xml.ml:167 msgid " in the input libvirt XML was ignored" msgstr "" #: input/parse_libvirt_xml.ml:414 msgid "" " was ignored because the device name could not be recognized" msgstr "" #: input/input_vddk.ml:176 msgid "" " was not found in the output of ‘virsh dumpxml \"%s\"’. The " "most likely reason is that libvirt is too old, try upgrading libvirt to ≥ " "3.7." msgstr "" #: common/mlcustomize/customize_cmdline.ml:305 msgid "Add package(s) to install" msgstr "" #: common/mlcustomize/customize_cmdline.ml:270 msgid "Add package(s) to install at first boot" msgstr "" #: common/mlcustomize/customize_cmdline.ml:175 msgid "Append line(s) to the file" msgstr "" #: common/mlcustomize/customize_run.ml:137 msgid "Appending line to %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:197 msgid "Change the owner user and group ID of a file or directory" msgstr "" #: common/mlcustomize/customize_cmdline.ml:186 msgid "Change the permissions of a file" msgstr "" #: common/mlcustomize/customize_run.ml:155 msgid "Changing owner of %s to %d:%d" msgstr "" #: common/mlcustomize/customize_run.ml:141 msgid "Changing permissions of %s to %s" msgstr "" #: input/input_libvirt.ml:174 input/input_libvirt.ml:157 msgid "Checking %s checksum of disk %d/%d" msgstr "" #: common/mlcustomize/customize_cmdline.ml:488 msgid "Compatibility option doing nothing" msgstr "" #: common/mlcustomize/customize_cmdline.ml:219 msgid "Copy files in disk image" msgstr "" #: common/mlcustomize/customize_cmdline.ml:397 msgid "Copy local files or directories from a tarball into image" msgstr "" #: common/mlcustomize/customize_cmdline.ml:230 msgid "Copy local files or directories into image" msgstr "" #: common/mlcustomize/customize_run.ml:168 msgid "Copying (in image): %s to %s" msgstr "" #: v2v/v2v.ml:518 msgid "Copying disk %d/%d" msgstr "" #: common/mlcustomize/customize_run.ml:172 msgid "Copying: %s to %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:322 msgid "Create a directory" msgstr "" #: common/mlcustomize/customize_cmdline.ml:316 msgid "Create symbolic links" msgstr "" #: v2v/v2v.ml:567 msgid "Creating output metadata" msgstr "" #: common/mlcustomize/customize_cmdline.ml:321 msgid "DIR" msgstr "" #: common/mlcustomize/customize_cmdline.ml:236 msgid "Delete a file or directory" msgstr "" #: common/mlcustomize/customize_run.ml:176 msgid "Deleting: %s" msgstr "" #: common/mltools/getopt.ml:225 msgid "Display brief help" msgstr "" #: common/mltools/tools_utils.ml:385 msgid "Display version and exit" msgstr "" #: common/mlcustomize/customize_cmdline.ml:482 msgid "Do not relabel files with correct SELinux labels" msgstr "" #: v2v/v2v.ml:248 inspector/inspector.ml:177 in-place/in_place.ml:190 msgid "Don't trim filesystems before conversion" msgstr "" #: common/mltools/tools_utils.ml:389 msgid "Don’t print progress messages" msgstr "" #: common/mltools/tools_utils.ml:420 msgid "Don’t turn off echo for passphrases" msgstr "" #: common/mlcustomize/customize_cmdline.ml:247 msgid "Edit file using Perl expression" msgstr "" #: common/mlcustomize/customize_run.ml:180 msgid "Editing: %s" msgstr "" #: common/mltools/tools_utils.ml:386 msgid "Enable libguestfs debugging messages" msgstr "" #: common/mltools/tools_utils.ml:387 msgid "Enable tracing of libguestfs calls" msgstr "" #: output/output_ovirt.ml:77 msgid "Export Storage Domain" msgstr "" #: open/open.ml:88 msgid "External command to run" msgstr "" #. common/mlcustomize/customize_cmdline.ml:408 #. common/mlcustomize/customize_cmdline.ml:373 #: common/mlcustomize/customize_cmdline.ml:414 msgid "FILE" msgstr "" #: common/mlcustomize/customize_cmdline.ml:455 msgid "FILE:CONTENT" msgstr "" #: common/mlcustomize/customize_cmdline.ml:444 msgid "FILE:DEST" msgstr "" #: common/mlcustomize/customize_cmdline.ml:242 msgid "FILE:EXPR" msgstr "" #: common/mlcustomize/customize_cmdline.ml:170 msgid "FILE:LINE" msgstr "" #: common/mlcustomize/customize_cmdline.ml:203 msgid "FILENAME" msgstr "" #. in-place/in_place.ml:378 #: v2v/v2v.ml:571 open/open.ml:220 inspector/inspector.ml:334 msgid "Finishing off" msgstr "" #: common/mlcustomize/customize_cmdline.ml:275 msgid "HOSTNAME" msgstr "" #: v2v/v2v.ml:254 inspector/inspector.ml:183 in-place/in_place.ml:194 msgid "How to choose root filesystem" msgstr "" #: common/mltools/tools_utils.ml:177 msgid "" "If reporting bugs, run %s with debugging enabled and include the complete " "output:\n" "\n" " %s -v -x [...]" msgstr "" #: common/mlcustomize/customize_cmdline.ml:386 msgid "Inject a public key into the guest" msgstr "" #: common/mlcustomize/customize_cmdline.ml:282 msgid "Inject the Balloon Server into a Windows guest" msgstr "" #: common/mlcustomize/customize_cmdline.ml:288 msgid "Inject the QEMU Guest Agent into a Windows guest" msgstr "" #: common/mlcustomize/customize_cmdline.ml:294 msgid "Inject virtio-win drivers into a Windows guest" msgstr "" #. in-place/in_place.ml:176 #: v2v/v2v.ml:216 open/open.ml:80 inspector/inspector.ml:165 msgid "Input format" msgstr "" #: input/input_vddk.ml:77 msgid "" "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" "\n" "Refer to nbdkit-vddk-plugin(1) and the VDDK documentation for further\n" "information on these settings.\n" msgstr "" #: v2v/v2v.ml:222 open/open.ml:86 inspector/inspector.ml:171 msgid "Input transport" msgstr "" #: common/mlcustomize/customize_run.ml:191 msgid "Installing firstboot command: %s" msgstr "" #: common/mlcustomize/customize_run.ml:195 msgid "Installing firstboot packages: %s" msgstr "" #: common/mlcustomize/customize_run.ml:202 msgid "Installing firstboot script: %s" msgstr "" #: common/mlcustomize/customize_run.ml:248 msgid "Installing packages: %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:225 msgid "LOCALPATH:REMOTEDIR" msgstr "" #. in-place/in_place.ml:174 #: v2v/v2v.ml:214 open/open.ml:78 inspector/inspector.ml:163 msgid "Libvirt URI" msgstr "" #: common/mlcustomize/customize_run.ml:255 msgid "Linking: %s -> %s" msgstr "" #. common/mlcustomize/customize_cmdline.ml:287 #. common/mlcustomize/customize_cmdline.ml:281 #: common/mlcustomize/customize_cmdline.ml:293 msgid "METHOD" msgstr "" #: common/mltools/tools_utils.ml:426 msgid "Make output machine readable" msgstr "" #: common/mlcustomize/customize_run.ml:260 msgid "Making directory: %s" msgstr "" #: v2v/v2v.ml:226 inspector/inspector.ml:173 in-place/in_place.ml:182 msgid "Map NIC to network or bridge or assign static IP" msgstr "" #: v2v/v2v.ml:210 inspector/inspector.ml:159 in-place/in_place.ml:170 msgid "Map bridge ‘in’ to ‘out’" msgstr "" #: v2v/v2v.ml:230 inspector/inspector.ml:179 in-place/in_place.ml:186 msgid "Map network ‘in’ to ‘out’" msgstr "" #: common/mlcustomize/customize_cmdline.ml:333 msgid "Move files in disk image" msgstr "" #: common/mlcustomize/customize_run.ml:264 msgid "Moving: %s -> %s" msgstr "" #. input/input_vcenter_https.ml:45 #. input/input_ova.ml:35 #. input/input_libvirt.ml:233 #. input/input_libvirt.ml:221 #. input/input_disk.ml:35 #: input/input_xen_ssh.ml:43 input/input_vmx.ml:36 msgid "No input options can be used in this mode.\n" msgstr "" #: output/output_ovirt.ml:40 output/output_null.ml:38 #: output/output_glance.ml:40 msgid "No output options can be used in this mode.\n" msgstr "" #: output/output_vdsm.ml:166 msgid "OVF (metadata) directory (%s) does not exist or is not a directory" msgstr "" #: common/mlcustomize/firstboot.ml:268 msgid "" "One of rhsrvany.exe or pvvxsvc.exe is missing in %s. One of them is " "required in order to install Windows firstboot scripts. You can get one by " "building rhsrvany (https://github.com/rwmjones/rhsrvany)" msgstr "" #: v2v/v2v.ml:236 msgid "Output hypervisor connection" msgstr "" #: output/output_ovirt_upload.ml:51 msgid "" "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" "\n" "You can override the UUIDs of the disks, instead of using autogenerated " "UUIDs\n" "after their uploads (if you do, you must supply one for each disk):\n" "\n" " -oo ovirt-disk-uuid=UUID Disk UUID\n" msgstr "" #: output/output_qemu.ml:44 msgid "" "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" msgstr "" #: output/output_vdsm.ml:43 msgid "" "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" "\n" "For 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" msgstr "" #: output/output_disk.ml:44 msgid "" "Output options that can be used with -o disk:\n" "\n" " -oo compressed Compress the output file (used only with -of qcow2)\n" msgstr "" #: output/output_kubevirt.ml:51 msgid "" "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" msgstr "" #: output/output_libvirt.ml:47 msgid "" "Output options that can be used with -o libvirt:\n" "\n" " -oo compressed Compress the output file (used only with -of qcow2)\n" msgstr "" #. common/mlcustomize/customize_cmdline.ml:235 #: common/mlcustomize/customize_cmdline.ml:420 msgid "PATH" msgstr "" #: common/mlcustomize/customize_cmdline.ml:181 msgid "PERMISSIONS:FILE" msgstr "" #. common/mlcustomize/customize_cmdline.ml:300 #. common/mlcustomize/customize_cmdline.ml:265 #: common/mlcustomize/customize_cmdline.ml:427 msgid "PKG,PKG.." msgstr "" #: v2v/v2v.ml:263 in-place/in_place.ml:203 msgid "Prefer 'virtio-blk' or 'virtio-scsi'" msgstr "" #: v2v/v2v.ml:252 in-place/in_place.ml:192 msgid "Print source and stop" msgstr "" #: common/mlcustomize/customize_cmdline.ml:208 msgid "Read customize commands from file" msgstr "" #: common/mltools/tools_utils.ml:421 msgid "Read passphrases from stdin" msgstr "" #: common/mlcustomize/customize_cmdline.ml:421 msgid "Recursively truncate all files in directory" msgstr "" #: common/mlcustomize/customize_run.ml:298 msgid "Recursively truncating: %s" msgstr "" #: v2v/v2v.ml:240 msgid "Rename guest when converting" msgstr "" #: common/mlcustomize/customize_cmdline.ml:259 msgid "Run command at first guest boot" msgstr "" #: common/mlcustomize/customize_cmdline.ml:368 msgid "Run command in disk image" msgstr "" #: common/mlcustomize/customize_cmdline.ml:253 msgid "Run script at first guest boot" msgstr "" #: common/mlcustomize/customize_cmdline.ml:362 msgid "Run script in disk image" msgstr "" #: common/mlcustomize/customize_cmdline.ml:409 msgid "Run touch on a file" msgstr "" #: v2v/v2v.ml:250 msgid "Run up to N instances of nbdcopy in parallel" msgstr "" #: open/open.ml:188 msgid "Running external command" msgstr "" #: common/mlcustomize/customize_run.ml:307 msgid "Running touch: %s" msgstr "" #. common/mlcustomize/customize_run.ml:159 #: common/mlcustomize/customize_run.ml:274 msgid "Running: %s" msgstr "" #. common/mlcustomize/customize_cmdline.ml:252 #: common/mlcustomize/customize_cmdline.ml:361 msgid "SCRIPT" msgstr "" #: common/mltools/tools_utils.ml:422 #: common/mlcustomize/customize_cmdline.ml:351 msgid "SELECTOR" msgstr "" #: common/mlcustomize/customize_run.ml:363 msgid "SELinux relabelling" msgstr "" #. common/mlcustomize/customize_cmdline.ml:214 #: common/mlcustomize/customize_cmdline.ml:328 msgid "SOURCE:DEST" msgstr "" #: common/mlcustomize/customize_run.ml:287 msgid "SSH key could not be injected for this type of guest" msgstr "" #: common/mlcustomize/customize_run.ml:284 msgid "SSH key inject: %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:374 msgid "Scrub a file" msgstr "" #: common/mlcustomize/customize_cmdline.ml:466 msgid "Scrub build log file" msgstr "" #: common/mlcustomize/customize_run.ml:374 msgid "Scrubbing the log file" msgstr "" #: common/mlcustomize/customize_run.ml:279 msgid "Scrubbing: %s" msgstr "" #: v2v/v2v.ml:208 msgid "Set bandwidth dynamically from file" msgstr "" #: v2v/v2v.ml:206 msgid "Set bandwidth to bits per sec" msgstr "" #. in-place/in_place.ml:172 #: v2v/v2v.ml:212 open/open.ml:76 inspector/inspector.ml:161 msgid "Set input mode (default: libvirt)" msgstr "" #: v2v/v2v.ml:228 inspector/inspector.ml:175 in-place/in_place.ml:184 msgid "Set memory size" msgstr "" #: v2v/v2v.ml:256 inspector/inspector.ml:185 in-place/in_place.ml:196 msgid "Set number of vCPUs" msgstr "" #. in-place/in_place.ml:178 #: v2v/v2v.ml:218 open/open.ml:82 inspector/inspector.ml:167 msgid "Set option for input mode" msgstr "" #: v2v/v2v.ml:242 msgid "Set option for output mode" msgstr "" #: v2v/v2v.ml:234 msgid "Set output allocation mode" msgstr "" #: v2v/v2v.ml:238 msgid "Set output format" msgstr "" #: v2v/v2v.ml:232 msgid "Set output mode (default: libvirt)" msgstr "" #: v2v/v2v.ml:246 msgid "Set output storage location" msgstr "" #: common/mlcustomize/customize_cmdline.ml:476 msgid "Set password crypto" msgstr "" #: common/mltools/tools_utils.ml:430 msgid "Set program name" msgstr "" #: common/mlcustomize/customize_cmdline.ml:356 msgid "Set root password" msgstr "" #: common/mlcustomize/customize_cmdline.ml:403 msgid "Set the default timezone" msgstr "" #: common/mlcustomize/customize_cmdline.ml:276 msgid "Set the hostname" msgstr "" #: inspector/inspector.ml:181 in-place/in_place.ml:188 msgid "Set the output filename" msgstr "" #: common/mlcustomize/customize_cmdline.ml:345 msgid "Set user password" msgstr "" #: common/mlcustomize/customize_run.ml:75 msgid "Setting a random seed" msgstr "" #: common/mlcustomize/customize_run.ml:354 msgid "Setting passwords" msgstr "" #: common/mlcustomize/password.ml:113 msgid "Setting random password of %s to %s" msgstr "" #: common/mlcustomize/customize_run.ml:207 msgid "Setting the hostname: %s" msgstr "" #: common/mlcustomize/customize_run.ml:90 msgid "Setting the machine ID in %s" msgstr "" #: common/mlcustomize/customize_run.ml:302 msgid "Setting the timezone: %s" msgstr "" #: v2v/v2v.ml:481 msgid "Setting up the destination: %s" msgstr "" #. in-place/in_place.ml:342 #: v2v/v2v.ml:457 open/open.ml:184 inspector/inspector.ml:310 msgid "Setting up the source: %s" msgstr "" #: v2v/v2v.ml:463 in-place/in_place.ml:348 msgid "Source guest information (--print-source option):\n" msgstr "" #: common/mltools/tools_utils.ml:422 msgid "Specify a LUKS key" msgstr "" #: common/mlcustomize/customize_cmdline.ml:392 msgid "TARFILE:REMOTEDIR" msgstr "" #: common/mlcustomize/customize_cmdline.ml:311 msgid "TARGET:LINK[:LINK..]" msgstr "" #: common/mlcustomize/customize_cmdline.ml:402 msgid "TIMEZONE" msgstr "" #: v2v/v2v.ml:200 msgid "" "The --in-place option has been replaced by the ‘virt-v2v-in-place’ program" msgstr "" #: output/output_qemu.ml:251 msgid "" "The Virt machine has no support for IDE. Please report a bug for virt-v2v -- " "refer to virt-v2v(1) section \"BUGS\"." msgstr "" #: output/output_qemu.ml:272 msgid "" "The Virt machine has no support for floppies. Please report a bug for virt-" "v2v -- refer to virt-v2v(1) section \"BUGS\"." msgstr "" #: lib/create_ovf.ml:785 msgid "" "This guest required a password for connection to its display, but this is " "not supported by oVirt. Therefore the converted guest’s display will not " "require a separate password to connect." msgstr "" #: input/input_vmx.ml:111 msgid "" "This transport does not support guests with snapshots. Either collapse the " "snapshots for this guest and try the conversion again, or use one of the " "alternate conversion methods described in virt-v2v-input-vmware(1) section " "\"NOTES\"." msgstr "" #: common/mlcustomize/customize_cmdline.ml:415 msgid "Truncate a file to zero size" msgstr "" #: common/mlcustomize/customize_run.ml:294 msgid "Truncating: %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:192 msgid "UID:GID:PATH" msgstr "" #: common/mlcustomize/customize_cmdline.ml:339 msgid "USER:SELECTOR" msgstr "" #: common/mlcustomize/customize_cmdline.ml:380 msgid "USER[:SELECTOR]" msgstr "" #: common/mlcustomize/customize_cmdline.ml:432 msgid "Uninstall package(s)" msgstr "" #: common/mlcustomize/customize_run.ml:311 msgid "Uninstalling packages: %s" msgstr "" #: common/mlcustomize/customize_run.ml:290 msgid "Unpack tar file: %s to %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:438 msgid "Update packages" msgstr "" #: common/mlcustomize/customize_run.ml:316 msgid "Updating packages" msgstr "" #: common/mlcustomize/customize_cmdline.ml:449 msgid "Upload local file to destination" msgstr "" #: common/mlcustomize/customize_run.ml:321 msgid "Uploading: %s to %s" msgstr "" #: common/mltools/tools_utils.ml:391 msgid "Use ANSI colour sequences even if not tty" msgstr "" #. in-place/in_place.ml:180 #: v2v/v2v.ml:220 open/open.ml:84 inspector/inspector.ml:169 msgid "Use password from file to connect to input hypervisor" msgstr "" #: v2v/v2v.ml:244 msgid "Use password from file to connect to output hypervisor" msgstr "" #: v2v/v2v.ml:224 msgid "Use virt-v2v-in-place instead" msgstr "" #: common/mltools/tools_utils.ml:392 msgid "Wrap log messages even if not tty" msgstr "" #: common/mlcustomize/customize_cmdline.ml:460 msgid "Write file" msgstr "" #: common/mlcustomize/customize_run.ml:346 msgid "Writing: %s" msgstr "" #: lib/YAML.ml:167 msgid "" "YAML block contains newline character. This should not happen, please " "report a bug against virt-v2v." msgstr "" #: output/output_libvirt.ml:96 msgid "" "a libvirt domain called ‘%s’ already exists on the target.\n" "\n" "If using virt-v2v directly, use the ‘-on’ option to select a different name. " "Or delete the existing domain on the target using the ‘virsh undefine’ " "command.\n" "\n" "If using virt-p2v, select a different ‘Name’ in the ‘Target properties’. Or " "delete the existing domain on the target using the ‘virsh undefine’ command." msgstr "" #: common/mlcustomize/append_line.ml:44 msgid "append_line: %s is not a file" msgstr "" #: input/input_libvirt.ml:206 msgid "" "bad checksum for disk %d/%d\n" "Expected checksum: %s\n" "Actual checksum: %s" msgstr "" #: lib/libvirt_utils.ml:59 msgid "cannot find libvirt domain ‘%s’: %s" msgstr "" #: lib/libvirt_utils.ml:96 msgid "" "cannot find libvirt pool ‘%s’: %s\n" "\n" "Use ‘virsh pool-list --all’ to list all available pools, and ‘virsh pool-" "dumpxml ’ to display details about a particular pool.\n" "\n" "To set the pool which virt-v2v uses, add the ‘-os ’ option." msgstr "" #: lib/libvirt_utils.ml:110 msgid "cannot find libvirt volume ‘%s’: %s" msgstr "" #: common/mlcustomize/firstboot.ml:235 msgid "" "cannot finish firstboot installation by running ‘%s’ because host cpu (%s) " "and guest arch (%s) are not compatible. The firstboot service may not run " "at boot." msgstr "" #: output/output_libvirt.ml:180 msgid "cannot get libvirt domain capabilities: %s" msgstr "" #: output/output_libvirt.ml:85 msgid "cannot get libvirt hypervisor capabilities: %s" msgstr "" #: v2v/v2v.ml:105 inspector/inspector.ml:95 in-place/in_place.ml:102 msgid "cannot parse --mac \"%s\" parameter" msgstr "" #: v2v/v2v.ml:129 inspector/inspector.ml:119 in-place/in_place.ml:126 msgid "cannot parse --mac ip %s: doesn’t look like “%s” is an IP address" msgstr "" #: v2v/v2v.ml:143 inspector/inspector.ml:133 in-place/in_place.ml:140 msgid "cannot parse --mac ip prefix length field as an integer: %s" msgstr "" #: common/mlcustomize/guest_packages.ml:29 msgid "" "cannot use ‘%s’ because no package manager has been detected for this guest " "OS.\n" "\n" "If this guest OS is a common one with ordinary package management then this " "may have been caused by a failure of libguestfs inspection.\n" "\n" "For OSes such as Windows that lack package management, this is not " "possible. Try using one of the ‘--firstboot*’ flags instead (described in " "the virt-customize(1) manual)." msgstr "" #: output/output_ovirt.ml:91 msgid "" "cannot write files to the NFS server as %d:%d, even though we appear to be " "running as root. This probably means the NFS client or idmapd is not " "configured properly.\n" "\n" "You will have to chown the files that virt-v2v creates after the run, " "otherwise oVirt will not be able to import the VM." msgstr "" #: output/output_ovirt.ml:99 msgid "" "cannot write files to the NFS server as %d:%d. You might want to stop virt-" "v2v (^C) and rerun it as root." msgstr "" #: common/mlcustomize/customize_cmdline.ml:508 msgid "command '%s' cannot be used in command files, see the man page" msgstr "" #: common/mlcustomize/customize_cmdline.ml:525 msgid "command '%s' not valid, see the man page" msgstr "" #: common/mldrivers/linux_bootloaders.ml:318 msgid "could not add grub2 serial console (ignored)" msgstr "" #: input/ssh.ml:52 msgid "" "could not copy the VMX file from the remote server, see earlier error " "messages" msgstr "" #: output/output_libvirt.ml:211 msgid "" "could not define libvirt domain: %s.\n" "The libvirt XML is still available in ‘%s’. Try running ‘virsh -c %s define " "%s’ yourself instead." msgstr "" #: common/mldrivers/linux_bootloaders.ml:221 msgid "could not determine a way to update the configuration of Grub2" msgstr "" #: input/input_vddk.ml:243 msgid "" "could not fetch thumbprint from the server, you mus use ‘-io vddk-" "thumbprint=XX:XX...’" msgstr "" #: common/mldrivers/linux_bootloaders.ml:376 msgid "could not find bootloader mount point (%s): %s" msgstr "" #: common/mldrivers/windows_drivers.ml:91 msgid "" "could not find registry entry " "HKEY_LOCAL_MACHINE\\SYSTEM\\DriverDatabase\\DeviceIds in this Windows " "guest. It may be either a very old or very new version of Windows that we " "cannot process." msgstr "" #: common/mlcustomize/firstboot.ml:232 msgid "" "could not finish firstboot installation by running ‘%s’ because the command " "failed: %s" msgstr "" #. input/input_vcenter_https.ml:94 #: input/select_input.ml:66 input/input_xen_ssh.ml:71 input/input_vddk.ml:151 msgid "could not parse '-ic %s'. Original error message was: %s" msgstr "" #: input/parse_libvirt_xml.ml:407 input/parse_libvirt_xml.ml:54 msgid "could not parse device name ‘%s’ from the source libvirt XML" msgstr "" #: input/OVF.ml:168 msgid "could not parse disk rasd:HostResource from OVF document" msgstr "" #: input/input_ova.ml:98 msgid "could not parse ovf:Name from OVF document" msgstr "" #: output/output_ovirt.ml:247 msgid "" "could not read the %s specified by the '-os %s' parameter on the command " "line. Is it really an OVirt %s? The original error is: %s" msgstr "" #: common/mldrivers/linux_bootloaders.ml:336 msgid "" "could not rebuild grub2 configuration file (%s). This may mean that grub " "output will not be sent to the serial port, but otherwise should be " "harmless. Original error message: %s" msgstr "" #: output/output_libvirt.ml:156 msgid "could not refresh libvirt pool ‘%s’: %s" msgstr "" #: common/mldrivers/linux_bootloaders.ml:320 msgid "could not remove grub2 serial console (ignored)" msgstr "" #: common/mltools/registry.ml:93 msgid "" "decode_utf16le: Windows UTF16-LE string contains non-7-bit characters. This " "is a bug in %s, please report it." msgstr "" #: common/mltools/registry.ml:87 msgid "" "decode_utf16le: Windows string does not appear to be in UTF16-LE encoding. " "This could be a bug in %s." msgstr "" #: common/mldrivers/linux_bootloaders.ml:126 msgid "didn't find grub entry for kernel %s" msgstr "" #: input/input_disk.ml:150 msgid "disks on the command line have mixed formats" msgstr "" #: input/parse_libvirt_xml.ml:194 msgid "display in the input libvirt XML was ignored" msgstr "" #: output/output_qemu.ml:147 msgid "don’t know how to convert UEFI guests for architecture %s" msgstr "" #: common/mldrivers/linux.ml:158 msgid "don’t know how to find file owner using %s" msgstr "" #: common/mldrivers/linux.ml:89 msgid "don’t know how to get list of files from package using %s" msgstr "" #: common/mltools/curl.ml:82 msgid "downloading %s" msgstr "" #: lib/networks.ml:84 msgid "" "duplicate --mac parameter. Duplicate mappings specified for MAC address %s." msgstr "" #: lib/networks.ml:102 msgid "" "duplicate -b/--bridge parameter. Duplicate mappings specified for bridge %s." msgstr "" #: lib/networks.ml:108 msgid "duplicate -b/--bridge parameter. Only one default mapping is allowed." msgstr "" #: lib/networks.ml:90 msgid "" "duplicate -n/--network parameter. Duplicate mappings specified for network " "%s." msgstr "" #: lib/networks.ml:96 msgid "duplicate -n/--network parameter. Only one default mapping is allowed." msgstr "" #: input/OVF.ml:143 msgid "error parsing disk fileRef" msgstr "" #: input/input_ova.ml:124 msgid "error uncompressing %s, see earlier error messages" msgstr "" #: input/OVA.ml:210 input/OVA.ml:112 msgid "error unpacking %s, see earlier error messages" msgstr "" #: common/mltools/tools_utils.ml:248 msgid "exception: %s" msgstr "" #: common/mltools/tools_utils.ml:455 msgid "exited with error %d" msgstr "" #: lib/utils.ml:34 msgid "exited with non-zero error code %d" msgstr "" #: input/input_disk.ml:147 msgid "expected >= 1 disk name on the command line" msgstr "" #: common/mltools/xpath_helpers.ml:36 msgid "" "expecting XML expression to return an integer (expression: %s, matching " "string: %s)" msgstr "" #: common/mltools/tools_utils.ml:440 msgid "external command" msgstr "" #: output/output_ovirt_upload.ml:265 msgid "failed server prechecks, see earlier errors" msgstr "" #: output/output_ovirt_upload.ml:507 msgid "failed to create virtual machine, see earlier errors" msgstr "" #: output/output_ovirt_upload.ml:479 msgid "failed to finalize the transfers, see earlier errors" msgstr "" #: common/mldrivers/linux_bootloaders.ml:208 msgid "failed to find grub2-mkconfig binary (but Grub2 was detected on guest)" msgstr "" #: input/OVA.ml:461 msgid "failed to parse line returned by tar: %S" msgstr "" #: output/output_ovirt_upload.ml:394 msgid "failed to start transfer, see earlier errors" msgstr "" #: output/output_ovirt_upload.ml:311 msgid "failed vmchecks, see earlier errors" msgstr "" #: common/mltools/tools_utils.ml:239 msgid "failure: %s" msgstr "" #: input/input_ova.ml:134 msgid "file ‘%s’ not found in the ova" msgstr "" #: common/mlcustomize/firstboot.ml:143 msgid "" "firstboot: unknown version for old firstboot.service file %s (md5=%s), it " "will not be removed" msgstr "" #: common/mltools/tools_utils.ml:258 msgid "generated by %s %s" msgstr "" #: output/create_libvirt_xml.ml:39 msgid "get_osinfo_id: unknown guest operating system: %s" msgstr "" #: output/output_glance.ml:66 msgid "" "glance: glance client is not installed or set up correctly. You may need to " "set environment variables or source a script to enable authentication. See " "preceding messages for details." msgstr "" #: output/output_glance.ml:139 msgid "glance: image upload to glance failed, see earlier errors" msgstr "" #: common/mlcustomize/firstboot.ml:386 common/mlcustomize/firstboot.ml:164 msgid "guest type %s is not supported" msgstr "" #: common/mlcustomize/firstboot.ml:413 msgid "guest type %s/%s is not supported" msgstr "" #: common/mltools/tools_utils.ml:749 msgid "" "host (%s/%s) and guest (%s/%s) are not compatible, so you cannot use command " "line options that involve running commands in the guest. Use --firstboot " "scripts instead." msgstr "" #: common/mlcustomize/customize_run.ml:209 msgid "hostname could not be set for this type of guest" msgstr "" #: common/mldrivers/linux_kernels.ml:342 msgid "ignoring kernel %s in bootloader, as it does not exist." msgstr "" #: output/output_vdsm.ml:160 msgid "image directory (%s) does not exist or is not a directory" msgstr "" #: input/parse_libvirt_xml.ml:81 msgid "in the libvirt XML metadata, is missing or empty" msgstr "" #: input/parse_libvirt_xml.ml:87 msgid "in the libvirt XML metadata, is missing or empty" msgstr "" #: input/input_vcenter_https.ml:52 input/input_libvirt.ml:107 msgid "in-place mode does not work with HTTP source" msgstr "" #: input/input_vddk.ml:146 msgid "in-place mode does not work with VDDK source" msgstr "" #: input/input_vmx.ml:43 msgid "in-place mode does not work with VMX source" msgstr "" #: input/input_xen_ssh.ml:50 msgid "in-place mode does not work with Xen over SSH source" msgstr "" #: output/output_kubevirt.ml:116 msgid "" "incorrect number of '-oo disk' parameters. This guest has %d disks, but the " "parameter was used %d times." msgstr "" #: input/input_xen_ssh.ml:119 msgid "" "input from xen over ssh does not support disks stored on remote block " "devices. See virt-v2v-input-xen(1) section \"Xen or ssh conversions from " "block devices\"." msgstr "" #. in-place/in_place.ml:397 #: v2v/v2v.ml:590 open/open.ml:238 inspector/inspector.ml:353 msgid "" "insufficient free space in the conversion server temporary directory %s " "(%s).\n" "\n" "Either free up space in that directory, or set the LIBGUESTFS_CACHEDIR " "environment variable to point to another directory with more than 1GB of " "free space.\n" "\n" "See also the virt-v2v(1) manual, section \"Minimum free space check in the " "host\"." msgstr "" #: common/mltools/tools_utils.ml:246 msgid "internal error: Not_found exception was thrown" msgstr "" #: common/mltools/tools_utils.ml:243 msgid "internal error: assertion failed at %s, line %d, char %d" msgstr "" #: common/mltools/tools_utils.ml:241 msgid "internal error: invalid argument: %s" msgstr "" #: common/mldrivers/linux.ml:128 msgid "internal error: is_file_owned: dpkg command returned no output" msgstr "" #: common/mldrivers/linux.ml:133 msgid "internal error: is_file_owned: unexpected output from dpkg command: %s" msgstr "" #: common/mldrivers/linux_bootloaders.ml:130 msgid "internal error: regular expression did not match ‘%s’" msgstr "" #: v2v/v2v.ml:548 msgid "internal error: wait returned unexpected process ID %d status \"%s\"" msgstr "" #: v2v/v2v.ml:114 inspector/inspector.ml:104 in-place/in_place.ml:111 msgid "invalid --mac ip option" msgstr "" #: v2v/v2v.ml:98 inspector/inspector.ml:88 in-place/in_place.ml:95 msgid "invalid -b/--bridge parameter" msgstr "" #: v2v/v2v.ml:90 inspector/inspector.ml:80 in-place/in_place.ml:87 msgid "invalid -n/--network parameter" msgstr "" #: input/parse_domain_from_vmx.ml:402 msgid "invalid cpuid.coresPerSocket < number of vCPUs" msgstr "" #. common/mlcustomize/customize_cmdline.ml:153 #. common/mlcustomize/customize_cmdline.ml:145 #: common/mlcustomize/customize_cmdline.ml:161 msgid "invalid format for '--%s' parameter, see the man page" msgstr "" #: common/mltools/tools_utils.ml:359 msgid "invalid format string for --machine-readable: %s" msgstr "" #: lib/utils.ml:279 msgid "invalid input filename (%s)" msgstr "" #: input/OVA.ml:445 msgid "invalid offset returned by tar: %S" msgstr "" #: common/mltools/tools_utils.ml:374 msgid "invalid output fd for --machine-readable: %s" msgstr "" #: common/mltools/tools_utils.ml:376 msgid "invalid output for --machine-readable: %s" msgstr "" #: common/mltools/tools_utils.ml:368 msgid "invalid output stream for --machine-readable: %s" msgstr "" #: common/mlcustomize/password.ml:73 msgid "invalid password selector ‘%s’; see the man page" msgstr "" #: input/OVA.ml:450 msgid "invalid size returned by tar: %S" msgstr "" #: common/mlcustomize/ssh_key.ml:45 msgid "invalid ssh-inject selector ‘%s’; see the man page" msgstr "" #: input/OVF.ml:82 msgid "invalid vmw:CoresPerSocket (%d) ignored" msgstr "" #: input/OVF.ml:88 msgid "invalid vmw:CoresPerSocket < number of cores" msgstr "" #: common/mldrivers/linux_bootloaders.ml:114 msgid "kernel %s is not under grub tree %s" msgstr "" #: common/mltools/tools_utils.ml:539 common/mltools/tools_utils.ml:458 msgid "killed by signal %d" msgstr "" #: common/mltools/tools_utils.ml:237 msgid "libguestfs error: %s" msgstr "" #: lib/libvirt_utils.ml:72 msgid "" "libvirt domain ‘%s’ is running or paused. Converting a live guest will " "result in corrupted output. However this is safe if you're converting from a " "snapshot" msgstr "" #: common/mlcustomize/customize_run.ml:47 msgid "log file %s: %s (ignored)" msgstr "" #: input/OVA.ml:147 msgid "" "making OVA directory public readable to work around libvirt bug https://" "bugzilla.redhat.com/1045069" msgstr "" #: input/input_ova.ml:86 msgid "manifest has a checksum for non-existent file %s (ignored)" msgstr "" #: common/mlcustomize/customize_cmdline.ml:472 msgid "md5|sha256|sha512" msgstr "" #: common/mlcustomize/customize_run.ml:119 msgid "method '%s' is no longer supported" msgstr "" #: common/mltools/JSON_parser.ml:39 msgid "missing value for the key ‘%s’" msgstr "" #: input/OVA.ml:276 msgid "more than one .ovf file was found in %s" msgstr "" #: common/mltools/JSON_parser.ml:34 msgid "more than value for the key ‘%s’" msgstr "" #: output/output_ovirt.ml:222 msgid "" "mount command failed, see earlier errors.\n" "\n" "This probably means you didn't specify the right %s path [-os %s], or else " "you need to rerun virt-v2v as root." msgstr "" #: common/mlcustomize/customize_run.ml:103 msgid "" "multiple --root-password/--password options set the password for user ‘%s’ " "twice" msgstr "" #: input/input_vddk.ml:319 msgid "" "nbdkit VDDK plugin is not installed or not working. It is required if you " "want to use VDDK.\n" "\n" "It 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 ’/%s/libvixDiskLib.so.?’.\n" "\n" "See also the virt-v2v-input-vmware(1) manual." msgstr "" #: input/input_vddk.ml:313 msgid "" "nbdkit VDDK plugin is not installed or not working. It is required if you " "want to use VDDK.\n" "\n" "The 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" "\n" "See also the virt-v2v-input-vmware(1) manual." msgstr "" #: lib/nbdkit.ml:223 msgid "nbdkit did not start up. See previous debugging messages for problems." msgstr "" #: lib/nbdkit.ml:225 msgid "" "nbdkit did not start up. There may be errors printed by nbdkit above.\n" "\n" "If the messages above are not sufficient to diagnose the problem then add " "the ‘virt-v2v -v -x’ options and examine the debugging output carefully." msgstr "" #: input/nbdkit_ssh.ml:36 input/nbdkit_curl.ml:32 input/input_vddk.ml:283 msgid "nbdkit is not installed or not working" msgstr "" #: input/input_disk.ml:92 msgid "" "nbdkit is not installed or not working. It is required to use ‘-i disk’." msgstr "" #: input/input_libvirt.ml:68 msgid "" "nbdkit is not installed or not working. It is required to use ‘-i libvirt|" "libvirtxml’." msgstr "" #: output/output.ml:178 output/output.ml:77 msgid "" "nbdkit is not installed or not working. It is required to use ‘-o disk’." msgstr "" #: output/output_null.ml:57 msgid "" "nbdkit is not installed or not working. It is required to use ‘-o null’." msgstr "" #: output/output_ovirt_upload.ml:163 msgid "" "nbdkit is not installed or not working. It is required to use ‘-o ovirt-" "upload’. See the virt-v2v-output-ovirt(1) manual." msgstr "" #: input/input_vddk.ml:285 msgid "nbdkit must be >= 1.45.11 for input from VDDK" msgstr "" #: output/output_ovirt_upload.ml:176 msgid "" "nbdkit python plugin is not installed or not working. It is required if you " "want to use ‘-o ovirt-upload’.\n" "\n" "See also the virt-v2v-output-ovirt(1) manual." msgstr "" #: output/output_ovirt_upload.ml:190 msgid "" "nbdkit was compiled without SELinux support. You will have to recompile " "nbdkit with libselinux-devel installed, or else set SELinux to Permissive " "mode while doing the conversion." msgstr "" #. input/input_libvirt.ml:76 #. input/input_disk.ml:98 #: input/nbdkit_ssh.ml:42 input/nbdkit_curl.ml:38 input/input_vddk.ml:289 msgid "nbdkit-cow-filter is not installed or not working" msgstr "" #: input/nbdkit_curl.ml:35 msgid "nbdkit-curl-plugin is not installed" msgstr "" #. input/input_disk.ml:96 #: output/output.ml:181 output/output.ml:80 input/input_libvirt.ml:72 msgid "nbdkit-file-plugin is not installed or not working" msgstr "" #: input/input_libvirt.ml:74 msgid "nbdkit-nbd-plugin is not installed or not working" msgstr "" #: output/output_null.ml:60 msgid "nbdkit-null-plugin is not installed or not working" msgstr "" #: input/nbdkit_ssh.ml:39 msgid "nbdkit-ssh-plugin is not installed" msgstr "" #: input/input_vddk.ml:287 msgid "nbdkit-vddk-plugin is not installed" msgstr "" #: lib/nbdkit.ml:56 msgid "nbdkit: unexpected version in --dump-config: %s" msgstr "" #. input/input_vcenter_https.ml:49 #. input/input_ova.ml:46 #. input/input_libvirt.ml:35 #. input/input_disk.ml:39 #: input/input_xen_ssh.ml:47 input/input_vmx.ml:40 msgid "no -io (input options) are allowed here" msgstr "" #: output/output_ovirt.ml:44 output/output_null.ml:42 #: output/output_glance.ml:44 msgid "no -oo (output options) are allowed here" msgstr "" #: input/OVA.ml:273 msgid "no .ovf file was found in %s" msgstr "" #: common/mldrivers/linux_bootloaders.ml:402 msgid "no bootloader detected" msgstr "" #: input/parse_domain_from_vmx.ml:359 msgid "no displayName key found in VMX file" msgstr "" #: input/OVF.ml:148 msgid "no href in ovf:File (id=%s)" msgstr "" #: common/mldrivers/linux_kernels.ml:194 msgid "no initrd was found in /boot matching %s %s." msgstr "" #: common/mldrivers/linux_kernels.ml:317 msgid "" "no installed kernel packages were found.\n" "\n" "This probably indicates that %s was unable to inspect this guest properly." msgstr "" #: common/mldrivers/linux_kernels.ml:354 msgid "" "no kernels were found in the bootloader configuration.\n" "\n" "This probably indicates that %s was unable to parse the bootloader " "configuration of this guest." msgstr "" #: output/python_script.ml:55 msgid "no python binary called ‘%s’ can be found on the $PATH" msgstr "" #: input/select_input.ml:106 msgid "" "no support for remote libvirt connections to '-ic %s'. The conversion may " "fail when it tries to read the source disks." msgstr "" #: lib/create_ovf.ml:1027 msgid "" "oVirt cannot emulate ‘%s’ sound cards. This sound card will be dropped from " "the output." msgstr "" #: lib/create_ovf.ml:875 lib/create_ovf.ml:512 msgid "oVirt does not support the output format ‘%s’, only raw or qcow2" msgstr "" #: output/output_openstack.ml:120 msgid "openstack: -oo server-id= not present" msgstr "" #: output/output_openstack.ml:338 msgid "" "openstack: failed to attach cinder volume to VM, see earlier error messages" msgstr "" #: output/output_openstack.ml:291 msgid "openstack: failed to create a cinder volume, see earlier error messages" msgstr "" #: output/output_openstack.ml:304 msgid "" "openstack: failed to query cinder volume status, see earlier error messages" msgstr "" #: output/output_openstack.ml:442 msgid "" "openstack: failed to set image properties on cinder volume, see earlier " "error messages" msgstr "" #: output/output_openstack.ml:199 msgid "" "openstack: precheck failed, there may be a problem with authentication, see " "earlier error messages" msgstr "" #: output/output_openstack.ml:311 msgid "" "openstack: unknown volume status \"%s\": expected \"creating\" or " "\"available\"" msgstr "" #: output/output.ml:133 msgid "output mode only supports raw or qcow2 format (format: %s)" msgstr "" #: input/OVF.ml:263 msgid "" "ova disk has an unknown VMware controller type (%d), please report this as a " "bug supplying the *.ovf file extracted from the ova" msgstr "" #: input/OVF.ml:259 msgid "" "ova disk has no parent controller, please report this as a bug supplying the " "*.ovf file extracted from the ova" msgstr "" #: output/output_ovirt_upload.ml:367 msgid "" "ovirt-upload: -of %s: Only output format ‘raw’ or ‘qcow2’ is supported. If " "the input is in a different format then force one of these output formats by " "adding either ‘-of raw’ or ‘-of qcow2’ on the command line." msgstr "" #: common/mlcustomize/password.ml:51 msgid "" "password-crypto: unknown algorithm %s, use \"md5\", \"sha256\", \"sha512\" " "or \"yescrypt\"" msgstr "" #: common/mlcustomize/password.ml:197 msgid "" "password: using insecure md5 password encryption for guest of type %s " "version %d.%d.\n" "If this is incorrect, use --password-crypto option and file a bug." msgstr "" #: common/mlcustomize/customize_run.ml:359 msgid "passwords could not be set for this type of guest" msgstr "" #: lib/qemuNBD.ml:125 msgid "" "qemu-nbd did not start up. See previous debugging messages for problems." msgstr "" #: lib/qemuNBD.ml:127 msgid "" "qemu-nbd did not start up. There may be errors printed by qemu-nbd above.\n" "\n" "If the messages above are not sufficient to diagnose the problem then add " "the ‘virt-v2v -v -x’ options and examine the debugging output carefully." msgstr "" #: lib/qemuNBD.ml:47 msgid "qemu-nbd: unexpected version in --version: %s" msgstr "" #: common/mlcustomize/customize_run.ml:77 msgid "random seed could not be set for this type of guest" msgstr "" #: input/parse_domain_from_vmx.ml:44 msgid "remote vmx ‘%s’ could not be parsed as a URI" msgstr "" #. common/mlcustomize/inject_virtio_win.ml:357 #. common/mlcustomize/inject_virtio_win.ml:352 #: common/mlcustomize/inject_virtio_win.ml:362 msgid "" "root directory ‘/’ is missing from the virtio-win directory or ISO.\n" "\n" "This should not happen and may indicate that virtio-win or virt-v2v is " "broken in some way. Please report this as a bug with a full debug log." msgstr "" #: common/mltools/tools_utils.ml:417 common/options/keys.c:264 #, c-format msgid "selector '%s': invalid TYPE" msgstr "" #: common/mltools/tools_utils.ml:409 common/options/keys.c:254 #, c-format msgid "selector '%s': missing FILENAME, or too many fields" msgstr "" #: common/mltools/tools_utils.ml:399 common/options/keys.c:232 #, c-format msgid "selector '%s': missing ID" msgstr "" #: common/mltools/tools_utils.ml:404 common/options/keys.c:245 #, c-format msgid "selector '%s': missing KEY_STRING, or too many fields" msgstr "" #: common/mltools/tools_utils.ml:401 common/options/keys.c:239 #, c-format msgid "selector '%s': missing TYPE" msgstr "" #: common/mltools/tools_utils.ml:413 common/options/keys.c:262 #, c-format msgid "selector '%s': too many fields" msgstr "" #: lib/utils.ml:35 msgid "signalled by signal %d" msgstr "" #: common/mlcustomize/guest_packages.ml:40 msgid "" "sorry, ‘%s’ with the ‘%s’ package manager has not been implemented yet.\n" "\n" "You can work around this by using one of the ‘--run*’ or ‘--firstboot*’ " "options instead (described in the virt-customize(1) manual)." msgstr "" #: common/mlcustomize/ssh_key.ml:57 msgid "ssh-inject: $HOME environment variable is not set" msgstr "" #: common/mlcustomize/ssh_key.ml:93 msgid "ssh-inject: key is an empty string" msgstr "" #: common/mlcustomize/ssh_key.ml:66 msgid "ssh-inject: no public key file found in %s" msgstr "" #: common/mlcustomize/ssh_key.ml:83 msgid "ssh-inject: public key file (%s) is empty" msgstr "" #: common/mlcustomize/ssh_key.ml:112 msgid "ssh-inject: the user %s does not exist on the guest" msgstr "" #. common/mltools/tools_utils.ml:461 #: lib/utils.ml:36 common/mltools/tools_utils.ml:542 msgid "stopped by signal %d" msgstr "" #: output/changeuid.ml:58 msgid "subprocess exited with non-zero error code %d" msgstr "" #: output/changeuid.ml:60 msgid "subprocess signalled or stopped by signal %d" msgstr "" #: lib/utils.ml:33 msgid "success" msgstr "" #: output/create_libvirt_xml.ml:297 msgid "" "target hypervisor does not support floppy devices, but floppy devices were " "found in the source guest" msgstr "" #: output/output_ovirt_upload.ml:156 msgid "" "the Python module ‘ovirtsdk4’ could not be loaded, is it installed? See " "previous messages for problems." msgstr "" #: output/output_ovirt_upload.ml:453 msgid "the cluster ‘%s’ does not support the architecture %s but %s" msgstr "" #: common/mlcustomize/customize_run.ml:59 msgid "" "the command may have failed because the network is disabled. Try either " "removing ‘--no-network’ or adding ‘--network’ on the command line." msgstr "" #: common/mltools/JSON_parser.ml:84 msgid "the key ‘%s’ was not found in a list of objects" msgstr "" #: output/output_ovirt_upload.ml:288 msgid "" "the number of ‘-oo ovirt-disk-uuid’ parameters passed on the command line " "has to match the number of guest disk images (for this guest: %d)" msgstr "" #: output/output_vdsm.ml:133 msgid "" "the number of ‘-oo vdsm-image-uuid’ and ‘-oo vdsm-vol-uuid’ parameters " "passed on the command line has to match the number of guest disk images (for " "this guest: %d)" msgstr "" #: output/output_libvirt.ml:239 msgid "the target hypervisor does not support a %s KVM guest" msgstr "" #: common/mltools/JSON_parser.ml:78 msgid "the value for key ‘%s’ is not a string as expected" msgstr "" #: common/mltools/JSON_parser.ml:50 msgid "the value for the key ‘%s’ is not a bool" msgstr "" #: common/mltools/JSON_parser.ml:45 msgid "the value for the key ‘%s’ is not a string" msgstr "" #: common/mltools/JSON_parser.ml:70 msgid "the value for the key ‘%s’ is not an integer" msgstr "" #: common/mltools/JSON_parser.ml:55 msgid "the value for the key ‘%s’ is not an object" msgstr "" #: common/mltools/JSON_parser.ml:59 msgid "the value is not an object" msgstr "" #: common/mltools/JSON_parser.ml:35 msgid "the value of the key ‘%s’ is not an object" msgstr "" #: lib/create_ovf.ml:519 msgid "" "the virtual size of the input disk %d is not an exact multiple of 512 " "bytes. The virtual size is: %Ld.\n" "\n" "This probably means something unexpected is going on, so please file a bug " "about this issue." msgstr "" #: output/output_openstack.ml:144 msgid "" "the ‘%s’ program is not available. It is needed to communicate with " "OpenStack." msgstr "" #: output/output_ovirt.ml:265 msgid "" "there are multiple UUIDs in the %s (%s). This is unexpected, and may be a " "bug in virt-v2v or OVirt." msgstr "" #: output/output_ovirt.ml:262 msgid "there are no UUIDs in the %s (%s). Is it really an OVirt %s?" msgstr "" #: common/mlcustomize/inject_virtio_win.ml:153 msgid "" "there are no virtio drivers available for this version of Windows (%d.%d %s " "%s %s). virt-v2v looks for drivers in %s\n" "\n" "The guest will be configured to use slower emulated devices." msgstr "" #: common/mlcustomize/inject_virtio_win.ml:175 msgid "" "there is no virtio block device driver for this version of Windows (%d.%d " "%s). virt-v2v looks for this driver in %s\n" "\n" "The guest will be configured to use a slower emulated device." msgstr "" #: common/mlcustomize/inject_virtio_win.ml:206 msgid "" "there is no virtio network driver for this version of Windows (%d.%d %s). " "virt-v2v looks for this driver in %s\n" "\n" "The guest will be configured to use a slower emulated device." msgstr "" #: input/parse_libvirt_xml.ml:545 msgid "this guest has a direct network interface which will be ignored" msgid_plural "this guest has direct network interfaces which will be ignored" msgstr[0] "" msgstr[1] "" #: input/parse_libvirt_xml.ml:527 msgid "this guest has a passthrough host device which will be ignored" msgid_plural "this guest has passthrough host devices which will be ignored" msgstr[0] "" msgstr[1] "" #: input/parse_libvirt_xml.ml:248 msgid "this guest has no non-removable disks" msgstr "" #: output/output.ml:65 msgid "this output module doesn't support copying more than %d disks" msgstr "" #: common/mlcustomize/timezone.ml:35 msgid "timezone '%s' does not exist, use a location like 'Europe/London'" msgstr "" #: common/mlcustomize/customize_run.ml:304 msgid "timezone could not be set for this type of guest" msgstr "" #: input/OVA.ml:318 msgid "unable to parse line from manifest file: %S" msgstr "" #: common/mltools/urandom.ml:37 msgid "unexpected end of file while reading /dev/urandom" msgstr "" #: input/input_libvirt.ml:196 msgid "unexpected output from the %s command" msgstr "" #: common/mltools/checksums.ml:58 msgid "unhandled checksum type ‘%s’" msgstr "" #: lib/types.ml:524 msgid "unknown --root option: %s" msgstr "" #: input/select_input.ml:51 msgid "unknown -i option: %s" msgstr "" #: output/select_output.ml:74 msgid "unknown -o option: %s" msgstr "" #: v2v/v2v.ml:164 msgid "unknown -oa option: %s" msgstr "" #: input/input_libvirt.ml:189 msgid "unknown method='%s'" msgstr "" #: input/OVF.ml:103 msgid "unknown Config:firmware value %s (expected \"bios\" or \"efi\")" msgstr "" #: lib/create_ovf.ml:446 lib/create_ovf.ml:247 msgid "unknown Windows 10 variant: %s (%s)" msgstr "" #: v2v/v2v.ml:319 in-place/in_place.ml:256 msgid "unknown block driver ‘--block-driver %s’" msgstr "" #: input/parse_domain_from_vmx.ml:415 msgid "unknown firmware value '%s', assuming BIOS" msgstr "" #: lib/create_ovf.ml:454 lib/create_ovf.ml:255 msgid "unknown guest operating system: %s %s %d.%d %s (%s)" msgstr "" #: v2v/v2v.ml:329 open/open.ml:132 inspector/inspector.ml:238 msgid "unknown input transport ‘-it %s’" msgstr "" #: input/parse_domain_from_vmx.ml:428 msgid "unknown sound device '%s' ignored" msgstr "" #: input/parse_libvirt_xml.ml:215 msgid "unknown sound model %s ignored" msgstr "" #: input/OVF.ml:156 msgid "unsupported compression in OVF: %s" msgstr "" #: input/input_vcenter_https.ml:123 msgid "" "vcenter: was not found in the XML. You need to " "upgrade to libvirt ≥ 1.2.20." msgstr "" #: input/vCenter.ml:79 msgid "vcenter: URL not found: %s" msgstr "" #: input/vCenter.ml:70 msgid "vcenter: incorrect username or password" msgstr "" #: input/vCenter.ml:72 msgid "" "vcenter: incorrect username or password. You might need to specify the " "username in the URI like this: [vpx|esx|..]://USERNAME@[etc]" msgstr "" #: input/vCenter.ml:84 msgid "vcenter: invalid response from server: %s" msgstr "" #: input/vCenter.ml:194 msgid "vcenter: no status code in output of ‘curl’ command." msgstr "" #: output/output_vdsm.ml:148 msgid "vdsm: invalid -os parameter does not contain a valid UUID: %s" msgstr "" #: output/output_openstack.ml:56 msgid "" "virt-v2v -oo server-id= [os-*=...]\n" "\n" "Specify the name or UUID of the conversion appliance using\n" "\n" " virt-v2v ... -o openstack -oo server-id=\n" "\n" "When virt-v2v runs it will attach the Cinder volumes to the\n" "conversion appliance, so this name or UUID must be the name\n" "of the virtual machine on OpenStack where virt-v2v is running.\n" "\n" "In addition, all usual OpenStack “os-*” parameters or “OS_*”\n" "environment variables can be used.\n" "\n" "Openstack “--os-*” parameters must be written as “virt-v2v -oo os-*”.\n" "\n" "For example:\n" "\n" " virt-v2v -oo os-username=\n" "\n" " equivalent to openstack: --os-username=\n" " or the environment variable: OS_USERNAME=\n" "\n" " virt-v2v -oo os-project-name=\n" "\n" " equivalent to openstack: --os-project-name=\n" " or the environment variable: OS_PROJECT_NAME=\n" "\n" "The os-* parameters and environment variables are optional.\n" msgstr "" #: input/parse_libvirt_xml.ml:189 msgid "" "virt-v2v does not support local displays, so in the " "input libvirt XML was ignored" msgstr "" #: input/select_input.ml:83 msgid "virt-v2v-in-place does not support remote libvirt URIs" msgstr "" #: input/parse_domain_from_vmx.ml:50 msgid "vmx URI path component looks incorrect" msgstr "" #: input/parse_domain_from_vmx.ml:48 msgid "vmx URI remote server name omitted" msgstr "" #: input/parse_domain_from_vmx.ml:46 msgid "vmx URI start with ‘ssh://...’" msgstr "" #: input/VMX.ml:313 msgid "vmx parser: cannot parse this line, ignoring: %s" msgstr "" #: input/VMX.ml:346 msgid "vmx parser: duplicate key '%s' ignored" msgstr "" #: output/output_openstack.ml:299 msgid "wait for cinder volume status to change to \"available\"" msgstr "" #: output/output_openstack.ml:360 msgid "waiting for cinder volume %s to attach to the conversion appliance" msgstr "" #: open/open.ml:136 msgid "you must supply the --run parameter" msgstr "" #: input/input_xen_ssh.ml:87 input/input_vddk.ml:189 msgid "‘-ic %s’ URL does not contain a host name field" msgstr "" #: input/input_vddk.ml:273 msgid "‘-io vddk-file=’ must be used exactly %d times" msgstr "" #: input/input_vddk.ml:297 msgid "" "‘-io vddk-libdir=%s’ does not point to a directory. See the virt-v2v-input-" "vmware(1) manual." msgstr "" #: output/output.ml:85 msgid "" "‘-oo compressed’ is only allowed when the output format is a local qcow2-" "format file, i.e. ‘-of qcow2’" msgstr "" #: input/input_vddk.ml:232 msgid "" "‘openssl’ command not found: automatically detecting thumbprint is not " "possible, so you must use ‘-io vddk-thumbprint=XX:XX...’" msgstr "" #: common/mltools/getopt-c.c:68 #, c-format msgid "Try ‘%s --help’ or consult %s(1) for more information.\n" msgstr "" #: common/mltools/getopt-c.c:187 #, c-format msgid "%s: ‘%s’ is not a numeric value.\n" msgstr "" #: common/mltools/getopt-c.c:193 #, c-format msgid "%s: %s: integer out of range\n" msgstr "%s: %s: ଗଣନସଂଖ୍ୟାଟି ପରିସର ବାହାରେ\n" #: common/mltools/getopt-c.c:383 #, c-format msgid "%s: ‘%s’ is not allowed for -%c; allowed values are:\n" msgstr "" #: common/mltools/getopt-c.c:386 #, c-format msgid "%s: ‘%s’ is not allowed for %s%s; allowed values are:\n" msgstr "" #: common/mltools/getopt-c.c:421 #, c-format msgid "Extra parameter on the command line: ‘%s’.\n" msgstr "" #: common/options/config.c:72 #, c-format msgid "%s: line %d: error parsing configuration file: %s" msgstr "" #: common/options/decrypt.c:52 #, c-format msgid "string size overflow" msgstr "" #: common/options/decrypt.c:170 #, c-format msgid "" "'clevis_luks_unlock', needed for decrypting %s, is unavailable in this " "libguestfs version" msgstr "" #: common/options/decrypt.c:184 #, c-format msgid "" "could not find key to open LUKS encrypted %s.\n" "\n" "Try using --key on the command line.\n" "\n" "Original error: %s (%d)" msgstr "" #: common/options/inspect.c:78 #, c-format msgid "" "%s: no operating system was found on this disk\n" "\n" "If using guestfish ‘-i’ option, remove this option and instead\n" "use the commands ‘run’ followed by ‘list-filesystems’.\n" "You can then mount filesystems you want by hand using the\n" "‘mount’ or ‘mount-ro’ command.\n" "\n" "If using guestmount ‘-i’, remove this option and choose the\n" "filesystem(s) you want to see by manually adding ‘-m’ option(s).\n" "Use ‘virt-filesystems’ to see what filesystems are available.\n" "\n" "If using other virt tools, this disk image won’t work\n" "with these tools. Use the guestfish equivalent commands\n" "(see the virt tool manual page).\n" msgstr "" #: common/options/inspect.c:99 #, c-format msgid "" "%s: multi-boot operating systems are not supported\n" "\n" "If using guestfish ‘-i’ option, remove this option and instead\n" "use the commands ‘run’ followed by ‘list-filesystems’.\n" "You can then mount filesystems you want by hand using the\n" "‘mount’ or ‘mount-ro’ command.\n" "\n" "If using guestmount ‘-i’, remove this option and choose the\n" "filesystem(s) you want to see by manually adding ‘-m’ option(s).\n" "Use ‘virt-filesystems’ to see what filesystems are available.\n" "\n" "If using other virt tools, multi-boot operating systems won’t work\n" "with these tools. Use the guestfish equivalent commands\n" "(see the virt tool manual page).\n" msgstr "" #: common/options/inspect.c:161 #, c-format msgid "%s: some filesystems could not be mounted (ignored)\n" msgstr "" #: common/options/inspect.c:178 #, c-format msgid "Operating system: %s\n" msgstr "" #: common/options/inspect.c:196 #, c-format msgid "%s mounted on %s\n" msgstr "" #: common/options/keys.c:63 #, c-format msgid "Enter key or passphrase (\"%s\"): " msgstr "" #: common/options/keys.c:146 #, c-format msgid "size_t overflow" msgstr "" #: common/options/keys.c:193 #, c-format msgid "could not read key from user" msgstr "" #: common/options/options.c:283 #, c-format msgid "%s: ‘%s’ could not be mounted.\n" msgstr "" #: common/options/options.c:287 #, c-format msgid "" "%s: Check mount(8) man page to ensure options ‘%s’\n" "%s: are supported by the filesystem that is being mounted.\n" msgstr "" #: common/options/options.c:291 #, c-format msgid "%s: Did you mean to mount one of these filesystems?\n" msgstr "" #: common/options/options.c:304 #, c-format msgid "cannot determine the subvolume for %s: %s (%d)" msgstr "" #: common/options/uri.c:119 #, c-format msgid "%s: --add: could not parse URI ‘%s’\n" msgstr "" #: common/options/uri.c:130 #, c-format msgid "%s: %s: scheme of URI is NULL or empty\n" msgstr "" #: common/options/uri.c:138 #, c-format msgid "%s: %s: cannot have both a server name and a socket query parameter\n" msgstr "" #: common/utils/utils.c:107 #, c-format msgid "%s exited successfully" msgstr "" #: common/utils/utils.c:110 #, c-format msgid "%s exited with error status %d" msgstr "" #: common/utils/utils.c:114 #, c-format msgid "%s killed by signal %d (%s)" msgstr "" #: common/utils/utils.c:118 #, c-format msgid "%s stopped by signal %d (%s)" msgstr "" #: common/utils/utils.c:122 #, c-format msgid "%s exited for an unknown reason (status %d)" msgstr "" ================================================ FILE: po/pa.po ================================================ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR Red Hat Inc. # This file is distributed under the same license as the PACKAGE package. # # Translators: # Jaswinder Singh , 2011 # rjones , 2011 msgid "" msgstr "" "Project-Id-Version: libguestfs 1.39.12\n" "Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?" "component=libguestfs&product=Virtualization+Tools\n" "POT-Creation-Date: 2025-02-16 17:05+0000\n" "PO-Revision-Date: 2015-02-21 10:52+0000\n" "Last-Translator: Copied by Zanata \n" "Language-Team: Panjabi (Punjabi) (http://www.transifex.com/projects/p/" "libguestfs/language/pa/)\n" "Language: pa\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Zanata 4.6.2\n" #: input/input_ova.ml:135 common/mltools/tools_utils.ml:235 msgid "%s" msgstr "" #: common/mltools/getopt.ml:73 msgid "" "%s\n" "Options:\n" msgstr "" #: common/mltools/tools_utils.ml:695 common/mlcustomize/customize_run.ml:390 msgid "%s (ignored)" msgstr "" #: common/mltools/checksums.ml:71 msgid "%s did not return any output" msgstr "" #: common/mlcustomize/customize_run.ml:183 msgid "%s does not exist in the guest" msgstr "" #: output/output_ovirt.ml:275 msgid "" "%s does not exist or is not a directory.\n" "\n" "Most likely cause: Either the %s (%s) has not been attached to any Data " "Center, or the path %s is not an %s at all.\n" "\n" "You have to attach the %s to a Data Center using the oVirt user interface " "first.\n" "\n" "If you don’t know what the %s mount point should be then you can also find " "this out through the oVirt user interface." msgstr "" #: common/mlcustomize/customize_run.ml:113 msgid "%s ignored for non-Windows guest" msgstr "" #: common/mlcustomize/customize_run.ml:186 msgid "%s is not a regular file in the guest" msgstr "" #. open/open.ml:39 #. inspector/inspector.ml:153 #. inspector/inspector.ml:40 #. in-place/in_place.ml:164 #. in-place/in_place.ml:45 #: v2v/v2v.ml:194 v2v/v2v.ml:183 v2v/v2v.ml:159 v2v/v2v.ml:44 open/open.ml:68 msgid "%s option used more than once on the command line" msgstr "" #: common/mltools/tools_utils.ml:231 common/mltools/tools_utils.ml:202 msgid "%s: %s" msgstr "" #: common/mltools/tools_utils.ml:233 msgid "%s: %s: %s" msgstr "" #: common/mltools/on_exit.ml:77 msgid "" "%s: Exiting on signal %s\n" "%!" msgstr "" #: common/mlcustomize/inject_virtio_win.ml:411 msgid "%s: cannot open virtio-win ISO file: %s" msgstr "" #: common/mlcustomize/customize_run.ml:64 msgid "%s: command exited with an error" msgstr "" #: v2v/v2v.ml:277 msgid "" "%s: convert a guest to use KVM\n" "\n" "virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi -os imported " "esx_guest\n" "\n" "virt-v2v -i libvirtxml guest-domain.xml -o local -os /var/tmp\n" "\n" "virt-v2v -i disk disk.img -o local -os /var/tmp\n" "\n" "There is a companion front-end called \"virt-p2v\" which comes as an\n" "ISO or CD image that can be booted on physical machines.\n" "\n" "A short summary of the options is given below. For detailed help please\n" "read the man page virt-v2v(1).\n" msgstr "" #: in-place/in_place.ml:217 msgid "" "%s: convert a guest to use KVM in-place\n" "\n" "Note this program modifies the guest in-place with no backup.\n" "Normally you should use virt-v2v.\n" "\n" "virt-v2v-in-place -i libvirtxml guest-domain.xml\n" "\n" "virt-v2v-in-place -i disk disk.img\n" "\n" "A short summary of the options is given below. For detailed help please\n" "read the man page virt-v2v-in-place(1).\n" msgstr "" #: input/input_vddk.ml:207 msgid "%s: enter password for ‘%s’: " msgstr "" #: common/mltools/tools_utils.ml:172 msgid "%s: error: %s" msgstr "" #: inspector/inspector.ml:198 msgid "" "%s: estimate disk space needed before virt-v2v conversion\n" "\n" "virt-v2v-inspector -i disk disk.img [-O output.xml]\n" "\n" "A short summary of the options is given below. For detailed help please\n" "read the man page virt-v2v-inspector(1).\n" msgstr "" #: open/open.ml:94 msgid "" "%s: open the virt-v2v input and run a program on it\n" "\n" "virt-v2v-open -i disk disk.img --run 'virt-inspector --format=raw @@'\n" "\n" "A short summary of the options is given below. For detailed help please\n" "read the man page virt-v2v-open(1).\n" msgstr "" #: common/mltools/tools_utils.ml:726 msgid "%s: operation timed out" msgstr "" #: input/OVA.ml:127 input/OVA.ml:121 msgid "" "%s: unsupported file format\n" "\n" "Formats which we currently understand for '-i ova' are: tar (uncompressed, " "compress with gzip or xz), zip" msgstr "" #: common/mltools/tools_utils.ml:191 msgid "%s: warning: %s" msgstr "" #. common/mlcustomize/customize_cmdline.ml:258 #: common/mlcustomize/customize_cmdline.ml:367 msgid "'CMD+ARGS'" msgstr "" #: common/mlcustomize/customize_run.ml:133 msgid "" "--append-line: line must not contain newline characters. Use the --append-" "line option multiple times to add several lines." msgstr "" #: common/mlcustomize/customize_run.ml:152 msgid "--chown: could not parse numeric UID:GID from %s:%s" msgstr "" #: common/mlcustomize/customize_run.ml:216 msgid "" "--inject-blnsvr: blnsvr.exe not found in virtio-win source that you specified" msgstr "" #: common/mlcustomize/customize_run.ml:225 msgid "" "--inject-qemu-ga: QEMU Guest Agent MSI not found in virtio-win source that " "you specified" msgstr "" #: common/mlcustomize/customize_run.ml:241 msgid "" "--inject-virtio-win: virtio drivers were not found for this Windows version " "in the virtio-win source that you specified" msgstr "" #: v2v/v2v.ml:146 inspector/inspector.ml:136 in-place/in_place.ml:143 msgid "--mac ip prefix length field is out of range" msgstr "" #: v2v/v2v.ml:340 msgid "--parallel parameter must be >= 1" msgstr "" #: input/input_disk.ml:42 msgid "-i disk: expecting a disk image (filename) on the command line" msgstr "" #: input/input_xen_ssh.ml:65 msgid "-i libvirt: expecting -ic parameter for Xen over SSH connection" msgstr "" #: input/input_vddk.ml:142 input/input_vcenter_https.ml:88 msgid "-i libvirt: expecting -ic parameter for vcenter connection" msgstr "" #: input/input_vcenter_https.ml:101 msgid "-i libvirt: expecting -ic parameter to contain vcenter server name" msgstr "" #: input/input_vcenter_https.ml:78 msgid "-i libvirt: expecting -ip passwordfile parameter for vCenter connection" msgstr "" #. input/input_vcenter_https.ml:70 #. input/input_libvirt.ml:41 #: input/input_xen_ssh.ml:57 input/input_vddk.ml:132 msgid "-i libvirt: expecting a libvirt guest name on the command line" msgstr "" #: input/input_libvirt.ml:59 msgid "-i libvirtxml: expecting a libvirt XML filename on the command line" msgstr "" #: input/input_ova.ml:243 msgid "-i ova: OVF references file ‘%s’ which was not found in the OVA archive" msgstr "" #: input/input_ova.ml:78 msgid "" "-i ova: corrupt OVA: checksum of disk %s does not match manifest (actual = " "%s, expected = %s)" msgstr "" #: input/input_ova.ml:52 msgid "-i ova: expecting an OVA file name on the command line" msgstr "" #: input/OVA.ml:361 msgid "" "-i ova: invalid OVA file: path ‘%s’ references a file outside the archive" msgstr "" #: input/input_vmx.ml:57 msgid "-i vmx: cannot use -it vddk in this input mode" msgstr "" #: input/input_vmx.ml:60 msgid "-i vmx: expecting a VMX file or ssh:// URI" msgstr "" #: input/vCenter.ml:159 msgid "" "-ip PASSWORD_FILE parameter ignored because 'user@' was not given in the URL" msgstr "" #: input/input_vddk.ml:119 msgid "-it vddk: ‘-io %s’ is not a valid input option" msgstr "" #: output/output.ml:54 msgid "-o %s: %s option cannot be used in this output mode" msgstr "" #: output/output_disk.ml:66 msgid "-o disk: output directory was not specified, use '-os /dir'" msgstr "" #: output/output_libvirt.ml:59 output/output_disk.ml:56 msgid "-o disk: unknown output option ‘-oo %s’" msgstr "" #: output/output_kubevirt.ml:81 msgid "-o kubevirt: output directory was not specified, use '-os /dir'" msgstr "" #: output/output_kubevirt.ml:91 msgid "" "-o kubevirt: the guest name must contain only lowercase alphanumeric " "characters, '-' or '.', and must start and end with an alphanumeric " "character. Rerun virt-v2v with the '-on name' option to rename it." msgstr "" #: output/output_kubevirt.ml:71 msgid "-o kubevirt: unknown output option ‘-oo %s’" msgstr "" #: output/output_libvirt.ml:120 msgid "" "-o libvirt: output pool ‘%s’ does not have /pool/target/path element. See " "virt-v2v-output-local(1)" msgstr "" #: output/output_libvirt.ml:124 msgid "" "-o libvirt: output pool ‘%s’ has type='dir' but the /pool/target/path " "element is not a local directory. See virt-v2v-output-local(1)" msgstr "" #: output/output_libvirt.ml:116 msgid "" "-o libvirt: output pool ‘%s’ is not a directory (type='dir'). See virt-v2v-" "output-local(1)" msgstr "" #: output/output_openstack.ml:88 msgid "-o openstack mode only supports -oa sparse -of raw" msgstr "" #: output/output_openstack.ml:115 msgid "-o openstack: unknown output option ‘-oo %s’" msgstr "" #: output/output_ovirt_upload.ml:97 msgid "-o ovirt-upload: -oo ovirt-cafile set more than once" msgstr "" #: output/output_ovirt_upload.ml:101 msgid "-o ovirt-upload: -oo ovirt-cluster set more than once" msgstr "" #: output/output_ovirt_upload.ml:112 msgid "-o ovirt-upload: invalid UUID for -oo ovirt-disk-uuid" msgstr "" #: output/output_ovirt_upload.ml:76 msgid "" "-o ovirt-upload: output password file was not specified, use ‘-op’ to point " "to a file which contains the password used to connect to the oVirt server" msgstr "" #: output/output_ovirt_upload.ml:83 msgid "-o ovirt-upload: output storage was not specified, use ‘-os’" msgstr "" #: output/output_ovirt_upload.ml:116 msgid "-o ovirt-upload: unknown output option ‘-oo %s’" msgstr "" #: output/output_ovirt_upload.ml:68 msgid "" "-o ovirt-upload: use ‘-oc’ to point to the oVirt server REST API URL, which " "is usually https://servername/ovirt-engine/api" msgstr "" #: output/output_ovirt.ml:51 msgid "-o ovirt: -os option was not specified" msgstr "" #: output/output_qemu.ml:72 msgid "-o qemu: output directory was not specified, use '-os /dir'" msgstr "" #: output/output_qemu.ml:63 msgid "-o qemu: unknown output option ‘-oo %s’" msgstr "" #: output/output_vdsm.ml:102 msgid "-o vdsm: -oo vdsm-image-uuid was not specified" msgstr "" #: output/output_vdsm.ml:81 msgid "-o vdsm: -oo vdsm-ovf-output set more than once" msgstr "" #: output/output_vdsm.ml:77 msgid "-o vdsm: -oo vdsm-vm-uuid set more than once" msgstr "" #: output/output_vdsm.ml:110 msgid "-o vdsm: -os option was not specified" msgstr "" #: output/output_vdsm.ml:97 msgid "-o vdsm: either -oo vdsm-vol-uuid or -oo vdsm-vm-uuid was not specified" msgstr "" #: output/output_vdsm.ml:90 msgid "-o vdsm: unknown output option ‘-oo %s’" msgstr "" #: output/output_vdsm.ml:74 msgid "-o vdsm: unknown vdsm-compat level ‘%s’" msgstr "" #. output/output_kubevirt.ml:84 #. output/output_disk.ml:68 #: output/output_vdsm.ml:112 output/output_qemu.ml:74 msgid "-os %s: output directory does not exist or is not a directory" msgstr "" #: input/parse_libvirt_xml.ml:279 msgid " missing 'method' attribute, ignoring" msgstr "" #: input/parse_libvirt_xml.ml:291 msgid " unknown fail='%s' attribute, ignoring" msgstr "" #: input/parse_libvirt_xml.ml:370 input/parse_libvirt_xml.ml:317 msgid " was ignored" msgstr "" #: input/parse_libvirt_xml.ml:338 msgid " with was ignored" msgstr "" #: input/parse_libvirt_xml.ml:365 msgid " with was ignored" msgstr "" #: input/parse_libvirt_xml.ml:299 msgid " element with no type attribute ignored" msgstr "" #: input/parse_libvirt_xml.ml:167 msgid " in the input libvirt XML was ignored" msgstr "" #: input/parse_libvirt_xml.ml:414 msgid "" " was ignored because the device name could not be recognized" msgstr "" #: input/input_vddk.ml:176 msgid "" " was not found in the output of ‘virsh dumpxml \"%s\"’. The " "most likely reason is that libvirt is too old, try upgrading libvirt to ≥ " "3.7." msgstr "" #: common/mlcustomize/customize_cmdline.ml:305 msgid "Add package(s) to install" msgstr "" #: common/mlcustomize/customize_cmdline.ml:270 msgid "Add package(s) to install at first boot" msgstr "" #: common/mlcustomize/customize_cmdline.ml:175 msgid "Append line(s) to the file" msgstr "" #: common/mlcustomize/customize_run.ml:137 msgid "Appending line to %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:197 msgid "Change the owner user and group ID of a file or directory" msgstr "" #: common/mlcustomize/customize_cmdline.ml:186 msgid "Change the permissions of a file" msgstr "" #: common/mlcustomize/customize_run.ml:155 msgid "Changing owner of %s to %d:%d" msgstr "" #: common/mlcustomize/customize_run.ml:141 msgid "Changing permissions of %s to %s" msgstr "" #: input/input_libvirt.ml:174 input/input_libvirt.ml:157 msgid "Checking %s checksum of disk %d/%d" msgstr "" #: common/mlcustomize/customize_cmdline.ml:488 msgid "Compatibility option doing nothing" msgstr "" #: common/mlcustomize/customize_cmdline.ml:219 msgid "Copy files in disk image" msgstr "" #: common/mlcustomize/customize_cmdline.ml:397 msgid "Copy local files or directories from a tarball into image" msgstr "" #: common/mlcustomize/customize_cmdline.ml:230 msgid "Copy local files or directories into image" msgstr "" #: common/mlcustomize/customize_run.ml:168 msgid "Copying (in image): %s to %s" msgstr "" #: v2v/v2v.ml:518 msgid "Copying disk %d/%d" msgstr "" #: common/mlcustomize/customize_run.ml:172 msgid "Copying: %s to %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:322 msgid "Create a directory" msgstr "" #: common/mlcustomize/customize_cmdline.ml:316 msgid "Create symbolic links" msgstr "" #: v2v/v2v.ml:567 msgid "Creating output metadata" msgstr "" #: common/mlcustomize/customize_cmdline.ml:321 msgid "DIR" msgstr "" #: common/mlcustomize/customize_cmdline.ml:236 msgid "Delete a file or directory" msgstr "" #: common/mlcustomize/customize_run.ml:176 msgid "Deleting: %s" msgstr "" #: common/mltools/getopt.ml:225 msgid "Display brief help" msgstr "" #: common/mltools/tools_utils.ml:385 msgid "Display version and exit" msgstr "" #: common/mlcustomize/customize_cmdline.ml:482 msgid "Do not relabel files with correct SELinux labels" msgstr "" #: v2v/v2v.ml:248 inspector/inspector.ml:177 in-place/in_place.ml:190 msgid "Don't trim filesystems before conversion" msgstr "" #: common/mltools/tools_utils.ml:389 msgid "Don’t print progress messages" msgstr "" #: common/mltools/tools_utils.ml:420 msgid "Don’t turn off echo for passphrases" msgstr "" #: common/mlcustomize/customize_cmdline.ml:247 msgid "Edit file using Perl expression" msgstr "" #: common/mlcustomize/customize_run.ml:180 msgid "Editing: %s" msgstr "" #: common/mltools/tools_utils.ml:386 msgid "Enable libguestfs debugging messages" msgstr "" #: common/mltools/tools_utils.ml:387 msgid "Enable tracing of libguestfs calls" msgstr "" #: output/output_ovirt.ml:77 msgid "Export Storage Domain" msgstr "" #: open/open.ml:88 msgid "External command to run" msgstr "" #. common/mlcustomize/customize_cmdline.ml:408 #. common/mlcustomize/customize_cmdline.ml:373 #: common/mlcustomize/customize_cmdline.ml:414 msgid "FILE" msgstr "" #: common/mlcustomize/customize_cmdline.ml:455 msgid "FILE:CONTENT" msgstr "" #: common/mlcustomize/customize_cmdline.ml:444 msgid "FILE:DEST" msgstr "" #: common/mlcustomize/customize_cmdline.ml:242 msgid "FILE:EXPR" msgstr "" #: common/mlcustomize/customize_cmdline.ml:170 msgid "FILE:LINE" msgstr "" #: common/mlcustomize/customize_cmdline.ml:203 msgid "FILENAME" msgstr "" #. in-place/in_place.ml:378 #: v2v/v2v.ml:571 open/open.ml:220 inspector/inspector.ml:334 msgid "Finishing off" msgstr "" #: common/mlcustomize/customize_cmdline.ml:275 msgid "HOSTNAME" msgstr "" #: v2v/v2v.ml:254 inspector/inspector.ml:183 in-place/in_place.ml:194 msgid "How to choose root filesystem" msgstr "" #: common/mltools/tools_utils.ml:177 msgid "" "If reporting bugs, run %s with debugging enabled and include the complete " "output:\n" "\n" " %s -v -x [...]" msgstr "" #: common/mlcustomize/customize_cmdline.ml:386 msgid "Inject a public key into the guest" msgstr "" #: common/mlcustomize/customize_cmdline.ml:282 msgid "Inject the Balloon Server into a Windows guest" msgstr "" #: common/mlcustomize/customize_cmdline.ml:288 msgid "Inject the QEMU Guest Agent into a Windows guest" msgstr "" #: common/mlcustomize/customize_cmdline.ml:294 msgid "Inject virtio-win drivers into a Windows guest" msgstr "" #. in-place/in_place.ml:176 #: v2v/v2v.ml:216 open/open.ml:80 inspector/inspector.ml:165 msgid "Input format" msgstr "" #: input/input_vddk.ml:77 msgid "" "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" "\n" "Refer to nbdkit-vddk-plugin(1) and the VDDK documentation for further\n" "information on these settings.\n" msgstr "" #: v2v/v2v.ml:222 open/open.ml:86 inspector/inspector.ml:171 msgid "Input transport" msgstr "" #: common/mlcustomize/customize_run.ml:191 msgid "Installing firstboot command: %s" msgstr "" #: common/mlcustomize/customize_run.ml:195 msgid "Installing firstboot packages: %s" msgstr "" #: common/mlcustomize/customize_run.ml:202 msgid "Installing firstboot script: %s" msgstr "" #: common/mlcustomize/customize_run.ml:248 msgid "Installing packages: %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:225 msgid "LOCALPATH:REMOTEDIR" msgstr "" #. in-place/in_place.ml:174 #: v2v/v2v.ml:214 open/open.ml:78 inspector/inspector.ml:163 msgid "Libvirt URI" msgstr "" #: common/mlcustomize/customize_run.ml:255 msgid "Linking: %s -> %s" msgstr "" #. common/mlcustomize/customize_cmdline.ml:287 #. common/mlcustomize/customize_cmdline.ml:281 #: common/mlcustomize/customize_cmdline.ml:293 msgid "METHOD" msgstr "" #: common/mltools/tools_utils.ml:426 msgid "Make output machine readable" msgstr "" #: common/mlcustomize/customize_run.ml:260 msgid "Making directory: %s" msgstr "" #: v2v/v2v.ml:226 inspector/inspector.ml:173 in-place/in_place.ml:182 msgid "Map NIC to network or bridge or assign static IP" msgstr "" #: v2v/v2v.ml:210 inspector/inspector.ml:159 in-place/in_place.ml:170 msgid "Map bridge ‘in’ to ‘out’" msgstr "" #: v2v/v2v.ml:230 inspector/inspector.ml:179 in-place/in_place.ml:186 msgid "Map network ‘in’ to ‘out’" msgstr "" #: common/mlcustomize/customize_cmdline.ml:333 msgid "Move files in disk image" msgstr "" #: common/mlcustomize/customize_run.ml:264 msgid "Moving: %s -> %s" msgstr "" #. input/input_vcenter_https.ml:45 #. input/input_ova.ml:35 #. input/input_libvirt.ml:233 #. input/input_libvirt.ml:221 #. input/input_disk.ml:35 #: input/input_xen_ssh.ml:43 input/input_vmx.ml:36 msgid "No input options can be used in this mode.\n" msgstr "" #: output/output_ovirt.ml:40 output/output_null.ml:38 #: output/output_glance.ml:40 msgid "No output options can be used in this mode.\n" msgstr "" #: output/output_vdsm.ml:166 msgid "OVF (metadata) directory (%s) does not exist or is not a directory" msgstr "" #: common/mlcustomize/firstboot.ml:268 msgid "" "One of rhsrvany.exe or pvvxsvc.exe is missing in %s. One of them is " "required in order to install Windows firstboot scripts. You can get one by " "building rhsrvany (https://github.com/rwmjones/rhsrvany)" msgstr "" #: v2v/v2v.ml:236 msgid "Output hypervisor connection" msgstr "" #: output/output_ovirt_upload.ml:51 msgid "" "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" "\n" "You can override the UUIDs of the disks, instead of using autogenerated " "UUIDs\n" "after their uploads (if you do, you must supply one for each disk):\n" "\n" " -oo ovirt-disk-uuid=UUID Disk UUID\n" msgstr "" #: output/output_qemu.ml:44 msgid "" "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" msgstr "" #: output/output_vdsm.ml:43 msgid "" "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" "\n" "For 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" msgstr "" #: output/output_disk.ml:44 msgid "" "Output options that can be used with -o disk:\n" "\n" " -oo compressed Compress the output file (used only with -of qcow2)\n" msgstr "" #: output/output_kubevirt.ml:51 msgid "" "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" msgstr "" #: output/output_libvirt.ml:47 msgid "" "Output options that can be used with -o libvirt:\n" "\n" " -oo compressed Compress the output file (used only with -of qcow2)\n" msgstr "" #. common/mlcustomize/customize_cmdline.ml:235 #: common/mlcustomize/customize_cmdline.ml:420 msgid "PATH" msgstr "" #: common/mlcustomize/customize_cmdline.ml:181 msgid "PERMISSIONS:FILE" msgstr "" #. common/mlcustomize/customize_cmdline.ml:300 #. common/mlcustomize/customize_cmdline.ml:265 #: common/mlcustomize/customize_cmdline.ml:427 msgid "PKG,PKG.." msgstr "" #: v2v/v2v.ml:263 in-place/in_place.ml:203 msgid "Prefer 'virtio-blk' or 'virtio-scsi'" msgstr "" #: v2v/v2v.ml:252 in-place/in_place.ml:192 msgid "Print source and stop" msgstr "" #: common/mlcustomize/customize_cmdline.ml:208 msgid "Read customize commands from file" msgstr "" #: common/mltools/tools_utils.ml:421 msgid "Read passphrases from stdin" msgstr "" #: common/mlcustomize/customize_cmdline.ml:421 msgid "Recursively truncate all files in directory" msgstr "" #: common/mlcustomize/customize_run.ml:298 msgid "Recursively truncating: %s" msgstr "" #: v2v/v2v.ml:240 msgid "Rename guest when converting" msgstr "" #: common/mlcustomize/customize_cmdline.ml:259 msgid "Run command at first guest boot" msgstr "" #: common/mlcustomize/customize_cmdline.ml:368 msgid "Run command in disk image" msgstr "" #: common/mlcustomize/customize_cmdline.ml:253 msgid "Run script at first guest boot" msgstr "" #: common/mlcustomize/customize_cmdline.ml:362 msgid "Run script in disk image" msgstr "" #: common/mlcustomize/customize_cmdline.ml:409 msgid "Run touch on a file" msgstr "" #: v2v/v2v.ml:250 msgid "Run up to N instances of nbdcopy in parallel" msgstr "" #: open/open.ml:188 msgid "Running external command" msgstr "" #: common/mlcustomize/customize_run.ml:307 msgid "Running touch: %s" msgstr "" #. common/mlcustomize/customize_run.ml:159 #: common/mlcustomize/customize_run.ml:274 msgid "Running: %s" msgstr "" #. common/mlcustomize/customize_cmdline.ml:252 #: common/mlcustomize/customize_cmdline.ml:361 msgid "SCRIPT" msgstr "" #: common/mltools/tools_utils.ml:422 #: common/mlcustomize/customize_cmdline.ml:351 msgid "SELECTOR" msgstr "" #: common/mlcustomize/customize_run.ml:363 msgid "SELinux relabelling" msgstr "" #. common/mlcustomize/customize_cmdline.ml:214 #: common/mlcustomize/customize_cmdline.ml:328 msgid "SOURCE:DEST" msgstr "" #: common/mlcustomize/customize_run.ml:287 msgid "SSH key could not be injected for this type of guest" msgstr "" #: common/mlcustomize/customize_run.ml:284 msgid "SSH key inject: %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:374 msgid "Scrub a file" msgstr "" #: common/mlcustomize/customize_cmdline.ml:466 msgid "Scrub build log file" msgstr "" #: common/mlcustomize/customize_run.ml:374 msgid "Scrubbing the log file" msgstr "" #: common/mlcustomize/customize_run.ml:279 msgid "Scrubbing: %s" msgstr "" #: v2v/v2v.ml:208 msgid "Set bandwidth dynamically from file" msgstr "" #: v2v/v2v.ml:206 msgid "Set bandwidth to bits per sec" msgstr "" #. in-place/in_place.ml:172 #: v2v/v2v.ml:212 open/open.ml:76 inspector/inspector.ml:161 msgid "Set input mode (default: libvirt)" msgstr "" #: v2v/v2v.ml:228 inspector/inspector.ml:175 in-place/in_place.ml:184 msgid "Set memory size" msgstr "" #: v2v/v2v.ml:256 inspector/inspector.ml:185 in-place/in_place.ml:196 msgid "Set number of vCPUs" msgstr "" #. in-place/in_place.ml:178 #: v2v/v2v.ml:218 open/open.ml:82 inspector/inspector.ml:167 msgid "Set option for input mode" msgstr "" #: v2v/v2v.ml:242 msgid "Set option for output mode" msgstr "" #: v2v/v2v.ml:234 msgid "Set output allocation mode" msgstr "" #: v2v/v2v.ml:238 msgid "Set output format" msgstr "" #: v2v/v2v.ml:232 msgid "Set output mode (default: libvirt)" msgstr "" #: v2v/v2v.ml:246 msgid "Set output storage location" msgstr "" #: common/mlcustomize/customize_cmdline.ml:476 msgid "Set password crypto" msgstr "" #: common/mltools/tools_utils.ml:430 msgid "Set program name" msgstr "" #: common/mlcustomize/customize_cmdline.ml:356 msgid "Set root password" msgstr "" #: common/mlcustomize/customize_cmdline.ml:403 msgid "Set the default timezone" msgstr "" #: common/mlcustomize/customize_cmdline.ml:276 msgid "Set the hostname" msgstr "" #: inspector/inspector.ml:181 in-place/in_place.ml:188 msgid "Set the output filename" msgstr "" #: common/mlcustomize/customize_cmdline.ml:345 msgid "Set user password" msgstr "" #: common/mlcustomize/customize_run.ml:75 msgid "Setting a random seed" msgstr "" #: common/mlcustomize/customize_run.ml:354 msgid "Setting passwords" msgstr "" #: common/mlcustomize/password.ml:113 msgid "Setting random password of %s to %s" msgstr "" #: common/mlcustomize/customize_run.ml:207 msgid "Setting the hostname: %s" msgstr "" #: common/mlcustomize/customize_run.ml:90 msgid "Setting the machine ID in %s" msgstr "" #: common/mlcustomize/customize_run.ml:302 msgid "Setting the timezone: %s" msgstr "" #: v2v/v2v.ml:481 msgid "Setting up the destination: %s" msgstr "" #. in-place/in_place.ml:342 #: v2v/v2v.ml:457 open/open.ml:184 inspector/inspector.ml:310 msgid "Setting up the source: %s" msgstr "" #: v2v/v2v.ml:463 in-place/in_place.ml:348 msgid "Source guest information (--print-source option):\n" msgstr "" #: common/mltools/tools_utils.ml:422 msgid "Specify a LUKS key" msgstr "" #: common/mlcustomize/customize_cmdline.ml:392 msgid "TARFILE:REMOTEDIR" msgstr "" #: common/mlcustomize/customize_cmdline.ml:311 msgid "TARGET:LINK[:LINK..]" msgstr "" #: common/mlcustomize/customize_cmdline.ml:402 msgid "TIMEZONE" msgstr "" #: v2v/v2v.ml:200 msgid "" "The --in-place option has been replaced by the ‘virt-v2v-in-place’ program" msgstr "" #: output/output_qemu.ml:251 msgid "" "The Virt machine has no support for IDE. Please report a bug for virt-v2v -- " "refer to virt-v2v(1) section \"BUGS\"." msgstr "" #: output/output_qemu.ml:272 msgid "" "The Virt machine has no support for floppies. Please report a bug for virt-" "v2v -- refer to virt-v2v(1) section \"BUGS\"." msgstr "" #: lib/create_ovf.ml:785 msgid "" "This guest required a password for connection to its display, but this is " "not supported by oVirt. Therefore the converted guest’s display will not " "require a separate password to connect." msgstr "" #: input/input_vmx.ml:111 msgid "" "This transport does not support guests with snapshots. Either collapse the " "snapshots for this guest and try the conversion again, or use one of the " "alternate conversion methods described in virt-v2v-input-vmware(1) section " "\"NOTES\"." msgstr "" #: common/mlcustomize/customize_cmdline.ml:415 msgid "Truncate a file to zero size" msgstr "" #: common/mlcustomize/customize_run.ml:294 msgid "Truncating: %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:192 msgid "UID:GID:PATH" msgstr "" #: common/mlcustomize/customize_cmdline.ml:339 msgid "USER:SELECTOR" msgstr "" #: common/mlcustomize/customize_cmdline.ml:380 msgid "USER[:SELECTOR]" msgstr "" #: common/mlcustomize/customize_cmdline.ml:432 msgid "Uninstall package(s)" msgstr "" #: common/mlcustomize/customize_run.ml:311 msgid "Uninstalling packages: %s" msgstr "" #: common/mlcustomize/customize_run.ml:290 msgid "Unpack tar file: %s to %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:438 msgid "Update packages" msgstr "" #: common/mlcustomize/customize_run.ml:316 msgid "Updating packages" msgstr "" #: common/mlcustomize/customize_cmdline.ml:449 msgid "Upload local file to destination" msgstr "" #: common/mlcustomize/customize_run.ml:321 msgid "Uploading: %s to %s" msgstr "" #: common/mltools/tools_utils.ml:391 msgid "Use ANSI colour sequences even if not tty" msgstr "" #. in-place/in_place.ml:180 #: v2v/v2v.ml:220 open/open.ml:84 inspector/inspector.ml:169 msgid "Use password from file to connect to input hypervisor" msgstr "" #: v2v/v2v.ml:244 msgid "Use password from file to connect to output hypervisor" msgstr "" #: v2v/v2v.ml:224 msgid "Use virt-v2v-in-place instead" msgstr "" #: common/mltools/tools_utils.ml:392 msgid "Wrap log messages even if not tty" msgstr "" #: common/mlcustomize/customize_cmdline.ml:460 msgid "Write file" msgstr "" #: common/mlcustomize/customize_run.ml:346 msgid "Writing: %s" msgstr "" #: lib/YAML.ml:167 msgid "" "YAML block contains newline character. This should not happen, please " "report a bug against virt-v2v." msgstr "" #: output/output_libvirt.ml:96 msgid "" "a libvirt domain called ‘%s’ already exists on the target.\n" "\n" "If using virt-v2v directly, use the ‘-on’ option to select a different name. " "Or delete the existing domain on the target using the ‘virsh undefine’ " "command.\n" "\n" "If using virt-p2v, select a different ‘Name’ in the ‘Target properties’. Or " "delete the existing domain on the target using the ‘virsh undefine’ command." msgstr "" #: common/mlcustomize/append_line.ml:44 msgid "append_line: %s is not a file" msgstr "" #: input/input_libvirt.ml:206 msgid "" "bad checksum for disk %d/%d\n" "Expected checksum: %s\n" "Actual checksum: %s" msgstr "" #: lib/libvirt_utils.ml:59 msgid "cannot find libvirt domain ‘%s’: %s" msgstr "" #: lib/libvirt_utils.ml:96 msgid "" "cannot find libvirt pool ‘%s’: %s\n" "\n" "Use ‘virsh pool-list --all’ to list all available pools, and ‘virsh pool-" "dumpxml ’ to display details about a particular pool.\n" "\n" "To set the pool which virt-v2v uses, add the ‘-os ’ option." msgstr "" #: lib/libvirt_utils.ml:110 msgid "cannot find libvirt volume ‘%s’: %s" msgstr "" #: common/mlcustomize/firstboot.ml:235 msgid "" "cannot finish firstboot installation by running ‘%s’ because host cpu (%s) " "and guest arch (%s) are not compatible. The firstboot service may not run " "at boot." msgstr "" #: output/output_libvirt.ml:180 msgid "cannot get libvirt domain capabilities: %s" msgstr "" #: output/output_libvirt.ml:85 msgid "cannot get libvirt hypervisor capabilities: %s" msgstr "" #: v2v/v2v.ml:105 inspector/inspector.ml:95 in-place/in_place.ml:102 msgid "cannot parse --mac \"%s\" parameter" msgstr "" #: v2v/v2v.ml:129 inspector/inspector.ml:119 in-place/in_place.ml:126 msgid "cannot parse --mac ip %s: doesn’t look like “%s” is an IP address" msgstr "" #: v2v/v2v.ml:143 inspector/inspector.ml:133 in-place/in_place.ml:140 msgid "cannot parse --mac ip prefix length field as an integer: %s" msgstr "" #: common/mlcustomize/guest_packages.ml:29 msgid "" "cannot use ‘%s’ because no package manager has been detected for this guest " "OS.\n" "\n" "If this guest OS is a common one with ordinary package management then this " "may have been caused by a failure of libguestfs inspection.\n" "\n" "For OSes such as Windows that lack package management, this is not " "possible. Try using one of the ‘--firstboot*’ flags instead (described in " "the virt-customize(1) manual)." msgstr "" #: output/output_ovirt.ml:91 msgid "" "cannot write files to the NFS server as %d:%d, even though we appear to be " "running as root. This probably means the NFS client or idmapd is not " "configured properly.\n" "\n" "You will have to chown the files that virt-v2v creates after the run, " "otherwise oVirt will not be able to import the VM." msgstr "" #: output/output_ovirt.ml:99 msgid "" "cannot write files to the NFS server as %d:%d. You might want to stop virt-" "v2v (^C) and rerun it as root." msgstr "" #: common/mlcustomize/customize_cmdline.ml:508 msgid "command '%s' cannot be used in command files, see the man page" msgstr "" #: common/mlcustomize/customize_cmdline.ml:525 msgid "command '%s' not valid, see the man page" msgstr "" #: common/mldrivers/linux_bootloaders.ml:318 msgid "could not add grub2 serial console (ignored)" msgstr "" #: input/ssh.ml:52 msgid "" "could not copy the VMX file from the remote server, see earlier error " "messages" msgstr "" #: output/output_libvirt.ml:211 msgid "" "could not define libvirt domain: %s.\n" "The libvirt XML is still available in ‘%s’. Try running ‘virsh -c %s define " "%s’ yourself instead." msgstr "" #: common/mldrivers/linux_bootloaders.ml:221 msgid "could not determine a way to update the configuration of Grub2" msgstr "" #: input/input_vddk.ml:243 msgid "" "could not fetch thumbprint from the server, you mus use ‘-io vddk-" "thumbprint=XX:XX...’" msgstr "" #: common/mldrivers/linux_bootloaders.ml:376 msgid "could not find bootloader mount point (%s): %s" msgstr "" #: common/mldrivers/windows_drivers.ml:91 msgid "" "could not find registry entry " "HKEY_LOCAL_MACHINE\\SYSTEM\\DriverDatabase\\DeviceIds in this Windows " "guest. It may be either a very old or very new version of Windows that we " "cannot process." msgstr "" #: common/mlcustomize/firstboot.ml:232 msgid "" "could not finish firstboot installation by running ‘%s’ because the command " "failed: %s" msgstr "" #. input/input_vcenter_https.ml:94 #: input/select_input.ml:66 input/input_xen_ssh.ml:71 input/input_vddk.ml:151 msgid "could not parse '-ic %s'. Original error message was: %s" msgstr "" #: input/parse_libvirt_xml.ml:407 input/parse_libvirt_xml.ml:54 msgid "could not parse device name ‘%s’ from the source libvirt XML" msgstr "" #: input/OVF.ml:168 #, fuzzy #| msgid "could not parse boot size" msgid "could not parse disk rasd:HostResource from OVF document" msgstr "ਬੂਟ ਅਕਾਰ ਨੂੰ ਪਾਰਸ ਨਹੀਂ ਕਰ ਸਕਦਾ" #: input/input_ova.ml:98 #, fuzzy #| msgid "could not parse boot size" msgid "could not parse ovf:Name from OVF document" msgstr "ਬੂਟ ਅਕਾਰ ਨੂੰ ਪਾਰਸ ਨਹੀਂ ਕਰ ਸਕਦਾ" #: output/output_ovirt.ml:247 msgid "" "could not read the %s specified by the '-os %s' parameter on the command " "line. Is it really an OVirt %s? The original error is: %s" msgstr "" #: common/mldrivers/linux_bootloaders.ml:336 msgid "" "could not rebuild grub2 configuration file (%s). This may mean that grub " "output will not be sent to the serial port, but otherwise should be " "harmless. Original error message: %s" msgstr "" #: output/output_libvirt.ml:156 msgid "could not refresh libvirt pool ‘%s’: %s" msgstr "" #: common/mldrivers/linux_bootloaders.ml:320 msgid "could not remove grub2 serial console (ignored)" msgstr "" #: common/mltools/registry.ml:93 msgid "" "decode_utf16le: Windows UTF16-LE string contains non-7-bit characters. This " "is a bug in %s, please report it." msgstr "" #: common/mltools/registry.ml:87 msgid "" "decode_utf16le: Windows string does not appear to be in UTF16-LE encoding. " "This could be a bug in %s." msgstr "" #: common/mldrivers/linux_bootloaders.ml:126 msgid "didn't find grub entry for kernel %s" msgstr "" #: input/input_disk.ml:150 msgid "disks on the command line have mixed formats" msgstr "" #: input/parse_libvirt_xml.ml:194 msgid "display in the input libvirt XML was ignored" msgstr "" #: output/output_qemu.ml:147 msgid "don’t know how to convert UEFI guests for architecture %s" msgstr "" #: common/mldrivers/linux.ml:158 msgid "don’t know how to find file owner using %s" msgstr "" #: common/mldrivers/linux.ml:89 msgid "don’t know how to get list of files from package using %s" msgstr "" #: common/mltools/curl.ml:82 msgid "downloading %s" msgstr "" #: lib/networks.ml:84 msgid "" "duplicate --mac parameter. Duplicate mappings specified for MAC address %s." msgstr "" #: lib/networks.ml:102 msgid "" "duplicate -b/--bridge parameter. Duplicate mappings specified for bridge %s." msgstr "" #: lib/networks.ml:108 msgid "duplicate -b/--bridge parameter. Only one default mapping is allowed." msgstr "" #: lib/networks.ml:90 msgid "" "duplicate -n/--network parameter. Duplicate mappings specified for network " "%s." msgstr "" #: lib/networks.ml:96 msgid "duplicate -n/--network parameter. Only one default mapping is allowed." msgstr "" #: input/OVF.ml:143 msgid "error parsing disk fileRef" msgstr "" #: input/input_ova.ml:124 msgid "error uncompressing %s, see earlier error messages" msgstr "" #: input/OVA.ml:210 input/OVA.ml:112 msgid "error unpacking %s, see earlier error messages" msgstr "" #: common/mltools/tools_utils.ml:248 msgid "exception: %s" msgstr "" #: common/mltools/tools_utils.ml:455 msgid "exited with error %d" msgstr "" #: lib/utils.ml:34 msgid "exited with non-zero error code %d" msgstr "" #: input/input_disk.ml:147 msgid "expected >= 1 disk name on the command line" msgstr "" #: common/mltools/xpath_helpers.ml:36 msgid "" "expecting XML expression to return an integer (expression: %s, matching " "string: %s)" msgstr "" #: common/mltools/tools_utils.ml:440 msgid "external command" msgstr "" #: output/output_ovirt_upload.ml:265 msgid "failed server prechecks, see earlier errors" msgstr "" #: output/output_ovirt_upload.ml:507 msgid "failed to create virtual machine, see earlier errors" msgstr "" #: output/output_ovirt_upload.ml:479 msgid "failed to finalize the transfers, see earlier errors" msgstr "" #: common/mldrivers/linux_bootloaders.ml:208 msgid "failed to find grub2-mkconfig binary (but Grub2 was detected on guest)" msgstr "" #: input/OVA.ml:461 msgid "failed to parse line returned by tar: %S" msgstr "" #: output/output_ovirt_upload.ml:394 msgid "failed to start transfer, see earlier errors" msgstr "" #: output/output_ovirt_upload.ml:311 msgid "failed vmchecks, see earlier errors" msgstr "" #: common/mltools/tools_utils.ml:239 msgid "failure: %s" msgstr "" #: input/input_ova.ml:134 msgid "file ‘%s’ not found in the ova" msgstr "" #: common/mlcustomize/firstboot.ml:143 msgid "" "firstboot: unknown version for old firstboot.service file %s (md5=%s), it " "will not be removed" msgstr "" #: common/mltools/tools_utils.ml:258 msgid "generated by %s %s" msgstr "" #: output/create_libvirt_xml.ml:39 msgid "get_osinfo_id: unknown guest operating system: %s" msgstr "" #: output/output_glance.ml:66 msgid "" "glance: glance client is not installed or set up correctly. You may need to " "set environment variables or source a script to enable authentication. See " "preceding messages for details." msgstr "" #: output/output_glance.ml:139 msgid "glance: image upload to glance failed, see earlier errors" msgstr "" #: common/mlcustomize/firstboot.ml:386 common/mlcustomize/firstboot.ml:164 msgid "guest type %s is not supported" msgstr "" #: common/mlcustomize/firstboot.ml:413 msgid "guest type %s/%s is not supported" msgstr "" #: common/mltools/tools_utils.ml:749 msgid "" "host (%s/%s) and guest (%s/%s) are not compatible, so you cannot use command " "line options that involve running commands in the guest. Use --firstboot " "scripts instead." msgstr "" #: common/mlcustomize/customize_run.ml:209 msgid "hostname could not be set for this type of guest" msgstr "" #: common/mldrivers/linux_kernels.ml:342 msgid "ignoring kernel %s in bootloader, as it does not exist." msgstr "" #: output/output_vdsm.ml:160 msgid "image directory (%s) does not exist or is not a directory" msgstr "" #: input/parse_libvirt_xml.ml:81 msgid "in the libvirt XML metadata, is missing or empty" msgstr "" #: input/parse_libvirt_xml.ml:87 msgid "in the libvirt XML metadata, is missing or empty" msgstr "" #: input/input_vcenter_https.ml:52 input/input_libvirt.ml:107 msgid "in-place mode does not work with HTTP source" msgstr "" #: input/input_vddk.ml:146 msgid "in-place mode does not work with VDDK source" msgstr "" #: input/input_vmx.ml:43 msgid "in-place mode does not work with VMX source" msgstr "" #: input/input_xen_ssh.ml:50 msgid "in-place mode does not work with Xen over SSH source" msgstr "" #: output/output_kubevirt.ml:116 msgid "" "incorrect number of '-oo disk' parameters. This guest has %d disks, but the " "parameter was used %d times." msgstr "" #: input/input_xen_ssh.ml:119 msgid "" "input from xen over ssh does not support disks stored on remote block " "devices. See virt-v2v-input-xen(1) section \"Xen or ssh conversions from " "block devices\"." msgstr "" #. in-place/in_place.ml:397 #: v2v/v2v.ml:590 open/open.ml:238 inspector/inspector.ml:353 msgid "" "insufficient free space in the conversion server temporary directory %s " "(%s).\n" "\n" "Either free up space in that directory, or set the LIBGUESTFS_CACHEDIR " "environment variable to point to another directory with more than 1GB of " "free space.\n" "\n" "See also the virt-v2v(1) manual, section \"Minimum free space check in the " "host\"." msgstr "" #: common/mltools/tools_utils.ml:246 msgid "internal error: Not_found exception was thrown" msgstr "" #: common/mltools/tools_utils.ml:243 msgid "internal error: assertion failed at %s, line %d, char %d" msgstr "" #: common/mltools/tools_utils.ml:241 msgid "internal error: invalid argument: %s" msgstr "" #: common/mldrivers/linux.ml:128 msgid "internal error: is_file_owned: dpkg command returned no output" msgstr "" #: common/mldrivers/linux.ml:133 msgid "internal error: is_file_owned: unexpected output from dpkg command: %s" msgstr "" #: common/mldrivers/linux_bootloaders.ml:130 msgid "internal error: regular expression did not match ‘%s’" msgstr "" #: v2v/v2v.ml:548 msgid "internal error: wait returned unexpected process ID %d status \"%s\"" msgstr "" #: v2v/v2v.ml:114 inspector/inspector.ml:104 in-place/in_place.ml:111 msgid "invalid --mac ip option" msgstr "" #: v2v/v2v.ml:98 inspector/inspector.ml:88 in-place/in_place.ml:95 msgid "invalid -b/--bridge parameter" msgstr "" #: v2v/v2v.ml:90 inspector/inspector.ml:80 in-place/in_place.ml:87 msgid "invalid -n/--network parameter" msgstr "" #: input/parse_domain_from_vmx.ml:402 msgid "invalid cpuid.coresPerSocket < number of vCPUs" msgstr "" #. common/mlcustomize/customize_cmdline.ml:153 #. common/mlcustomize/customize_cmdline.ml:145 #: common/mlcustomize/customize_cmdline.ml:161 msgid "invalid format for '--%s' parameter, see the man page" msgstr "" #: common/mltools/tools_utils.ml:359 msgid "invalid format string for --machine-readable: %s" msgstr "" #: lib/utils.ml:279 msgid "invalid input filename (%s)" msgstr "" #: input/OVA.ml:445 msgid "invalid offset returned by tar: %S" msgstr "" #: common/mltools/tools_utils.ml:374 msgid "invalid output fd for --machine-readable: %s" msgstr "" #: common/mltools/tools_utils.ml:376 msgid "invalid output for --machine-readable: %s" msgstr "" #: common/mltools/tools_utils.ml:368 msgid "invalid output stream for --machine-readable: %s" msgstr "" #: common/mlcustomize/password.ml:73 msgid "invalid password selector ‘%s’; see the man page" msgstr "" #: input/OVA.ml:450 msgid "invalid size returned by tar: %S" msgstr "" #: common/mlcustomize/ssh_key.ml:45 msgid "invalid ssh-inject selector ‘%s’; see the man page" msgstr "" #: input/OVF.ml:82 msgid "invalid vmw:CoresPerSocket (%d) ignored" msgstr "" #: input/OVF.ml:88 msgid "invalid vmw:CoresPerSocket < number of cores" msgstr "" #: common/mldrivers/linux_bootloaders.ml:114 msgid "kernel %s is not under grub tree %s" msgstr "" #: common/mltools/tools_utils.ml:539 common/mltools/tools_utils.ml:458 msgid "killed by signal %d" msgstr "" #: common/mltools/tools_utils.ml:237 msgid "libguestfs error: %s" msgstr "" #: lib/libvirt_utils.ml:72 msgid "" "libvirt domain ‘%s’ is running or paused. Converting a live guest will " "result in corrupted output. However this is safe if you're converting from a " "snapshot" msgstr "" #: common/mlcustomize/customize_run.ml:47 msgid "log file %s: %s (ignored)" msgstr "" #: input/OVA.ml:147 msgid "" "making OVA directory public readable to work around libvirt bug https://" "bugzilla.redhat.com/1045069" msgstr "" #: input/input_ova.ml:86 msgid "manifest has a checksum for non-existent file %s (ignored)" msgstr "" #: common/mlcustomize/customize_cmdline.ml:472 msgid "md5|sha256|sha512" msgstr "" #: common/mlcustomize/customize_run.ml:119 msgid "method '%s' is no longer supported" msgstr "" #: common/mltools/JSON_parser.ml:39 msgid "missing value for the key ‘%s’" msgstr "" #: input/OVA.ml:276 msgid "more than one .ovf file was found in %s" msgstr "" #: common/mltools/JSON_parser.ml:34 msgid "more than value for the key ‘%s’" msgstr "" #: output/output_ovirt.ml:222 msgid "" "mount command failed, see earlier errors.\n" "\n" "This probably means you didn't specify the right %s path [-os %s], or else " "you need to rerun virt-v2v as root." msgstr "" #: common/mlcustomize/customize_run.ml:103 msgid "" "multiple --root-password/--password options set the password for user ‘%s’ " "twice" msgstr "" #: input/input_vddk.ml:319 msgid "" "nbdkit VDDK plugin is not installed or not working. It is required if you " "want to use VDDK.\n" "\n" "It 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 ’/%s/libvixDiskLib.so.?’.\n" "\n" "See also the virt-v2v-input-vmware(1) manual." msgstr "" #: input/input_vddk.ml:313 msgid "" "nbdkit VDDK plugin is not installed or not working. It is required if you " "want to use VDDK.\n" "\n" "The 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" "\n" "See also the virt-v2v-input-vmware(1) manual." msgstr "" #: lib/nbdkit.ml:223 msgid "nbdkit did not start up. See previous debugging messages for problems." msgstr "" #: lib/nbdkit.ml:225 msgid "" "nbdkit did not start up. There may be errors printed by nbdkit above.\n" "\n" "If the messages above are not sufficient to diagnose the problem then add " "the ‘virt-v2v -v -x’ options and examine the debugging output carefully." msgstr "" #: input/nbdkit_ssh.ml:36 input/nbdkit_curl.ml:32 input/input_vddk.ml:283 msgid "nbdkit is not installed or not working" msgstr "" #: input/input_disk.ml:92 msgid "" "nbdkit is not installed or not working. It is required to use ‘-i disk’." msgstr "" #: input/input_libvirt.ml:68 msgid "" "nbdkit is not installed or not working. It is required to use ‘-i libvirt|" "libvirtxml’." msgstr "" #: output/output.ml:178 output/output.ml:77 msgid "" "nbdkit is not installed or not working. It is required to use ‘-o disk’." msgstr "" #: output/output_null.ml:57 msgid "" "nbdkit is not installed or not working. It is required to use ‘-o null’." msgstr "" #: output/output_ovirt_upload.ml:163 msgid "" "nbdkit is not installed or not working. It is required to use ‘-o ovirt-" "upload’. See the virt-v2v-output-ovirt(1) manual." msgstr "" #: input/input_vddk.ml:285 msgid "nbdkit must be >= 1.45.11 for input from VDDK" msgstr "" #: output/output_ovirt_upload.ml:176 msgid "" "nbdkit python plugin is not installed or not working. It is required if you " "want to use ‘-o ovirt-upload’.\n" "\n" "See also the virt-v2v-output-ovirt(1) manual." msgstr "" #: output/output_ovirt_upload.ml:190 msgid "" "nbdkit was compiled without SELinux support. You will have to recompile " "nbdkit with libselinux-devel installed, or else set SELinux to Permissive " "mode while doing the conversion." msgstr "" #. input/input_libvirt.ml:76 #. input/input_disk.ml:98 #: input/nbdkit_ssh.ml:42 input/nbdkit_curl.ml:38 input/input_vddk.ml:289 msgid "nbdkit-cow-filter is not installed or not working" msgstr "" #: input/nbdkit_curl.ml:35 msgid "nbdkit-curl-plugin is not installed" msgstr "" #. input/input_disk.ml:96 #: output/output.ml:181 output/output.ml:80 input/input_libvirt.ml:72 msgid "nbdkit-file-plugin is not installed or not working" msgstr "" #: input/input_libvirt.ml:74 msgid "nbdkit-nbd-plugin is not installed or not working" msgstr "" #: output/output_null.ml:60 msgid "nbdkit-null-plugin is not installed or not working" msgstr "" #: input/nbdkit_ssh.ml:39 msgid "nbdkit-ssh-plugin is not installed" msgstr "" #: input/input_vddk.ml:287 msgid "nbdkit-vddk-plugin is not installed" msgstr "" #: lib/nbdkit.ml:56 msgid "nbdkit: unexpected version in --dump-config: %s" msgstr "" #. input/input_vcenter_https.ml:49 #. input/input_ova.ml:46 #. input/input_libvirt.ml:35 #. input/input_disk.ml:39 #: input/input_xen_ssh.ml:47 input/input_vmx.ml:40 msgid "no -io (input options) are allowed here" msgstr "" #: output/output_ovirt.ml:44 output/output_null.ml:42 #: output/output_glance.ml:44 msgid "no -oo (output options) are allowed here" msgstr "" #: input/OVA.ml:273 msgid "no .ovf file was found in %s" msgstr "" #: common/mldrivers/linux_bootloaders.ml:402 msgid "no bootloader detected" msgstr "" #: input/parse_domain_from_vmx.ml:359 msgid "no displayName key found in VMX file" msgstr "" #: input/OVF.ml:148 msgid "no href in ovf:File (id=%s)" msgstr "" #: common/mldrivers/linux_kernels.ml:194 msgid "no initrd was found in /boot matching %s %s." msgstr "" #: common/mldrivers/linux_kernels.ml:317 msgid "" "no installed kernel packages were found.\n" "\n" "This probably indicates that %s was unable to inspect this guest properly." msgstr "" #: common/mldrivers/linux_kernels.ml:354 msgid "" "no kernels were found in the bootloader configuration.\n" "\n" "This probably indicates that %s was unable to parse the bootloader " "configuration of this guest." msgstr "" #: output/python_script.ml:55 msgid "no python binary called ‘%s’ can be found on the $PATH" msgstr "" #: input/select_input.ml:106 msgid "" "no support for remote libvirt connections to '-ic %s'. The conversion may " "fail when it tries to read the source disks." msgstr "" #: lib/create_ovf.ml:1027 msgid "" "oVirt cannot emulate ‘%s’ sound cards. This sound card will be dropped from " "the output." msgstr "" #: lib/create_ovf.ml:875 lib/create_ovf.ml:512 msgid "oVirt does not support the output format ‘%s’, only raw or qcow2" msgstr "" #: output/output_openstack.ml:120 msgid "openstack: -oo server-id= not present" msgstr "" #: output/output_openstack.ml:338 msgid "" "openstack: failed to attach cinder volume to VM, see earlier error messages" msgstr "" #: output/output_openstack.ml:291 msgid "openstack: failed to create a cinder volume, see earlier error messages" msgstr "" #: output/output_openstack.ml:304 msgid "" "openstack: failed to query cinder volume status, see earlier error messages" msgstr "" #: output/output_openstack.ml:442 msgid "" "openstack: failed to set image properties on cinder volume, see earlier " "error messages" msgstr "" #: output/output_openstack.ml:199 msgid "" "openstack: precheck failed, there may be a problem with authentication, see " "earlier error messages" msgstr "" #: output/output_openstack.ml:311 msgid "" "openstack: unknown volume status \"%s\": expected \"creating\" or " "\"available\"" msgstr "" #: output/output.ml:133 msgid "output mode only supports raw or qcow2 format (format: %s)" msgstr "" #: input/OVF.ml:263 msgid "" "ova disk has an unknown VMware controller type (%d), please report this as a " "bug supplying the *.ovf file extracted from the ova" msgstr "" #: input/OVF.ml:259 msgid "" "ova disk has no parent controller, please report this as a bug supplying the " "*.ovf file extracted from the ova" msgstr "" #: output/output_ovirt_upload.ml:367 msgid "" "ovirt-upload: -of %s: Only output format ‘raw’ or ‘qcow2’ is supported. If " "the input is in a different format then force one of these output formats by " "adding either ‘-of raw’ or ‘-of qcow2’ on the command line." msgstr "" #: common/mlcustomize/password.ml:51 msgid "" "password-crypto: unknown algorithm %s, use \"md5\", \"sha256\", \"sha512\" " "or \"yescrypt\"" msgstr "" #: common/mlcustomize/password.ml:197 msgid "" "password: using insecure md5 password encryption for guest of type %s " "version %d.%d.\n" "If this is incorrect, use --password-crypto option and file a bug." msgstr "" #: common/mlcustomize/customize_run.ml:359 msgid "passwords could not be set for this type of guest" msgstr "" #: lib/qemuNBD.ml:125 msgid "" "qemu-nbd did not start up. See previous debugging messages for problems." msgstr "" #: lib/qemuNBD.ml:127 msgid "" "qemu-nbd did not start up. There may be errors printed by qemu-nbd above.\n" "\n" "If the messages above are not sufficient to diagnose the problem then add " "the ‘virt-v2v -v -x’ options and examine the debugging output carefully." msgstr "" #: lib/qemuNBD.ml:47 msgid "qemu-nbd: unexpected version in --version: %s" msgstr "" #: common/mlcustomize/customize_run.ml:77 msgid "random seed could not be set for this type of guest" msgstr "" #: input/parse_domain_from_vmx.ml:44 msgid "remote vmx ‘%s’ could not be parsed as a URI" msgstr "" #. common/mlcustomize/inject_virtio_win.ml:357 #. common/mlcustomize/inject_virtio_win.ml:352 #: common/mlcustomize/inject_virtio_win.ml:362 msgid "" "root directory ‘/’ is missing from the virtio-win directory or ISO.\n" "\n" "This should not happen and may indicate that virtio-win or virt-v2v is " "broken in some way. Please report this as a bug with a full debug log." msgstr "" #: common/mltools/tools_utils.ml:417 common/options/keys.c:264 #, c-format msgid "selector '%s': invalid TYPE" msgstr "" #: common/mltools/tools_utils.ml:409 common/options/keys.c:254 #, c-format msgid "selector '%s': missing FILENAME, or too many fields" msgstr "" #: common/mltools/tools_utils.ml:399 common/options/keys.c:232 #, c-format msgid "selector '%s': missing ID" msgstr "" #: common/mltools/tools_utils.ml:404 common/options/keys.c:245 #, c-format msgid "selector '%s': missing KEY_STRING, or too many fields" msgstr "" #: common/mltools/tools_utils.ml:401 common/options/keys.c:239 #, c-format msgid "selector '%s': missing TYPE" msgstr "" #: common/mltools/tools_utils.ml:413 common/options/keys.c:262 #, c-format msgid "selector '%s': too many fields" msgstr "" #: lib/utils.ml:35 msgid "signalled by signal %d" msgstr "" #: common/mlcustomize/guest_packages.ml:40 msgid "" "sorry, ‘%s’ with the ‘%s’ package manager has not been implemented yet.\n" "\n" "You can work around this by using one of the ‘--run*’ or ‘--firstboot*’ " "options instead (described in the virt-customize(1) manual)." msgstr "" #: common/mlcustomize/ssh_key.ml:57 msgid "ssh-inject: $HOME environment variable is not set" msgstr "" #: common/mlcustomize/ssh_key.ml:93 msgid "ssh-inject: key is an empty string" msgstr "" #: common/mlcustomize/ssh_key.ml:66 msgid "ssh-inject: no public key file found in %s" msgstr "" #: common/mlcustomize/ssh_key.ml:83 msgid "ssh-inject: public key file (%s) is empty" msgstr "" #: common/mlcustomize/ssh_key.ml:112 msgid "ssh-inject: the user %s does not exist on the guest" msgstr "" #. common/mltools/tools_utils.ml:461 #: lib/utils.ml:36 common/mltools/tools_utils.ml:542 msgid "stopped by signal %d" msgstr "" #: output/changeuid.ml:58 msgid "subprocess exited with non-zero error code %d" msgstr "" #: output/changeuid.ml:60 msgid "subprocess signalled or stopped by signal %d" msgstr "" #: lib/utils.ml:33 msgid "success" msgstr "" #: output/create_libvirt_xml.ml:297 msgid "" "target hypervisor does not support floppy devices, but floppy devices were " "found in the source guest" msgstr "" #: output/output_ovirt_upload.ml:156 msgid "" "the Python module ‘ovirtsdk4’ could not be loaded, is it installed? See " "previous messages for problems." msgstr "" #: output/output_ovirt_upload.ml:453 msgid "the cluster ‘%s’ does not support the architecture %s but %s" msgstr "" #: common/mlcustomize/customize_run.ml:59 msgid "" "the command may have failed because the network is disabled. Try either " "removing ‘--no-network’ or adding ‘--network’ on the command line." msgstr "" #: common/mltools/JSON_parser.ml:84 msgid "the key ‘%s’ was not found in a list of objects" msgstr "" #: output/output_ovirt_upload.ml:288 msgid "" "the number of ‘-oo ovirt-disk-uuid’ parameters passed on the command line " "has to match the number of guest disk images (for this guest: %d)" msgstr "" #: output/output_vdsm.ml:133 msgid "" "the number of ‘-oo vdsm-image-uuid’ and ‘-oo vdsm-vol-uuid’ parameters " "passed on the command line has to match the number of guest disk images (for " "this guest: %d)" msgstr "" #: output/output_libvirt.ml:239 msgid "the target hypervisor does not support a %s KVM guest" msgstr "" #: common/mltools/JSON_parser.ml:78 msgid "the value for key ‘%s’ is not a string as expected" msgstr "" #: common/mltools/JSON_parser.ml:50 msgid "the value for the key ‘%s’ is not a bool" msgstr "" #: common/mltools/JSON_parser.ml:45 msgid "the value for the key ‘%s’ is not a string" msgstr "" #: common/mltools/JSON_parser.ml:70 msgid "the value for the key ‘%s’ is not an integer" msgstr "" #: common/mltools/JSON_parser.ml:55 msgid "the value for the key ‘%s’ is not an object" msgstr "" #: common/mltools/JSON_parser.ml:59 msgid "the value is not an object" msgstr "" #: common/mltools/JSON_parser.ml:35 msgid "the value of the key ‘%s’ is not an object" msgstr "" #: lib/create_ovf.ml:519 msgid "" "the virtual size of the input disk %d is not an exact multiple of 512 " "bytes. The virtual size is: %Ld.\n" "\n" "This probably means something unexpected is going on, so please file a bug " "about this issue." msgstr "" #: output/output_openstack.ml:144 msgid "" "the ‘%s’ program is not available. It is needed to communicate with " "OpenStack." msgstr "" #: output/output_ovirt.ml:265 msgid "" "there are multiple UUIDs in the %s (%s). This is unexpected, and may be a " "bug in virt-v2v or OVirt." msgstr "" #: output/output_ovirt.ml:262 msgid "there are no UUIDs in the %s (%s). Is it really an OVirt %s?" msgstr "" #: common/mlcustomize/inject_virtio_win.ml:153 msgid "" "there are no virtio drivers available for this version of Windows (%d.%d %s " "%s %s). virt-v2v looks for drivers in %s\n" "\n" "The guest will be configured to use slower emulated devices." msgstr "" #: common/mlcustomize/inject_virtio_win.ml:175 msgid "" "there is no virtio block device driver for this version of Windows (%d.%d " "%s). virt-v2v looks for this driver in %s\n" "\n" "The guest will be configured to use a slower emulated device." msgstr "" #: common/mlcustomize/inject_virtio_win.ml:206 msgid "" "there is no virtio network driver for this version of Windows (%d.%d %s). " "virt-v2v looks for this driver in %s\n" "\n" "The guest will be configured to use a slower emulated device." msgstr "" #: input/parse_libvirt_xml.ml:545 msgid "this guest has a direct network interface which will be ignored" msgid_plural "this guest has direct network interfaces which will be ignored" msgstr[0] "" msgstr[1] "" #: input/parse_libvirt_xml.ml:527 msgid "this guest has a passthrough host device which will be ignored" msgid_plural "this guest has passthrough host devices which will be ignored" msgstr[0] "" msgstr[1] "" #: input/parse_libvirt_xml.ml:248 msgid "this guest has no non-removable disks" msgstr "" #: output/output.ml:65 msgid "this output module doesn't support copying more than %d disks" msgstr "" #: common/mlcustomize/timezone.ml:35 msgid "timezone '%s' does not exist, use a location like 'Europe/London'" msgstr "" #: common/mlcustomize/customize_run.ml:304 msgid "timezone could not be set for this type of guest" msgstr "" #: input/OVA.ml:318 msgid "unable to parse line from manifest file: %S" msgstr "" #: common/mltools/urandom.ml:37 msgid "unexpected end of file while reading /dev/urandom" msgstr "" #: input/input_libvirt.ml:196 msgid "unexpected output from the %s command" msgstr "" #: common/mltools/checksums.ml:58 msgid "unhandled checksum type ‘%s’" msgstr "" #: lib/types.ml:524 msgid "unknown --root option: %s" msgstr "" #: input/select_input.ml:51 msgid "unknown -i option: %s" msgstr "" #: output/select_output.ml:74 msgid "unknown -o option: %s" msgstr "" #: v2v/v2v.ml:164 msgid "unknown -oa option: %s" msgstr "" #: input/input_libvirt.ml:189 msgid "unknown method='%s'" msgstr "" #: input/OVF.ml:103 msgid "unknown Config:firmware value %s (expected \"bios\" or \"efi\")" msgstr "" #: lib/create_ovf.ml:446 lib/create_ovf.ml:247 msgid "unknown Windows 10 variant: %s (%s)" msgstr "" #: v2v/v2v.ml:319 in-place/in_place.ml:256 msgid "unknown block driver ‘--block-driver %s’" msgstr "" #: input/parse_domain_from_vmx.ml:415 msgid "unknown firmware value '%s', assuming BIOS" msgstr "" #: lib/create_ovf.ml:454 lib/create_ovf.ml:255 msgid "unknown guest operating system: %s %s %d.%d %s (%s)" msgstr "" #: v2v/v2v.ml:329 open/open.ml:132 inspector/inspector.ml:238 msgid "unknown input transport ‘-it %s’" msgstr "" #: input/parse_domain_from_vmx.ml:428 msgid "unknown sound device '%s' ignored" msgstr "" #: input/parse_libvirt_xml.ml:215 msgid "unknown sound model %s ignored" msgstr "" #: input/OVF.ml:156 msgid "unsupported compression in OVF: %s" msgstr "" #: input/input_vcenter_https.ml:123 msgid "" "vcenter: was not found in the XML. You need to " "upgrade to libvirt ≥ 1.2.20." msgstr "" #: input/vCenter.ml:79 msgid "vcenter: URL not found: %s" msgstr "" #: input/vCenter.ml:70 msgid "vcenter: incorrect username or password" msgstr "" #: input/vCenter.ml:72 msgid "" "vcenter: incorrect username or password. You might need to specify the " "username in the URI like this: [vpx|esx|..]://USERNAME@[etc]" msgstr "" #: input/vCenter.ml:84 msgid "vcenter: invalid response from server: %s" msgstr "" #: input/vCenter.ml:194 msgid "vcenter: no status code in output of ‘curl’ command." msgstr "" #: output/output_vdsm.ml:148 msgid "vdsm: invalid -os parameter does not contain a valid UUID: %s" msgstr "" #: output/output_openstack.ml:56 msgid "" "virt-v2v -oo server-id= [os-*=...]\n" "\n" "Specify the name or UUID of the conversion appliance using\n" "\n" " virt-v2v ... -o openstack -oo server-id=\n" "\n" "When virt-v2v runs it will attach the Cinder volumes to the\n" "conversion appliance, so this name or UUID must be the name\n" "of the virtual machine on OpenStack where virt-v2v is running.\n" "\n" "In addition, all usual OpenStack “os-*” parameters or “OS_*”\n" "environment variables can be used.\n" "\n" "Openstack “--os-*” parameters must be written as “virt-v2v -oo os-*”.\n" "\n" "For example:\n" "\n" " virt-v2v -oo os-username=\n" "\n" " equivalent to openstack: --os-username=\n" " or the environment variable: OS_USERNAME=\n" "\n" " virt-v2v -oo os-project-name=\n" "\n" " equivalent to openstack: --os-project-name=\n" " or the environment variable: OS_PROJECT_NAME=\n" "\n" "The os-* parameters and environment variables are optional.\n" msgstr "" #: input/parse_libvirt_xml.ml:189 msgid "" "virt-v2v does not support local displays, so in the " "input libvirt XML was ignored" msgstr "" #: input/select_input.ml:83 msgid "virt-v2v-in-place does not support remote libvirt URIs" msgstr "" #: input/parse_domain_from_vmx.ml:50 msgid "vmx URI path component looks incorrect" msgstr "" #: input/parse_domain_from_vmx.ml:48 msgid "vmx URI remote server name omitted" msgstr "" #: input/parse_domain_from_vmx.ml:46 msgid "vmx URI start with ‘ssh://...’" msgstr "" #: input/VMX.ml:313 msgid "vmx parser: cannot parse this line, ignoring: %s" msgstr "" #: input/VMX.ml:346 msgid "vmx parser: duplicate key '%s' ignored" msgstr "" #: output/output_openstack.ml:299 msgid "wait for cinder volume status to change to \"available\"" msgstr "" #: output/output_openstack.ml:360 msgid "waiting for cinder volume %s to attach to the conversion appliance" msgstr "" #: open/open.ml:136 msgid "you must supply the --run parameter" msgstr "" #: input/input_xen_ssh.ml:87 input/input_vddk.ml:189 msgid "‘-ic %s’ URL does not contain a host name field" msgstr "" #: input/input_vddk.ml:273 msgid "‘-io vddk-file=’ must be used exactly %d times" msgstr "" #: input/input_vddk.ml:297 msgid "" "‘-io vddk-libdir=%s’ does not point to a directory. See the virt-v2v-input-" "vmware(1) manual." msgstr "" #: output/output.ml:85 msgid "" "‘-oo compressed’ is only allowed when the output format is a local qcow2-" "format file, i.e. ‘-of qcow2’" msgstr "" #: input/input_vddk.ml:232 msgid "" "‘openssl’ command not found: automatically detecting thumbprint is not " "possible, so you must use ‘-io vddk-thumbprint=XX:XX...’" msgstr "" #: common/mltools/getopt-c.c:68 #, c-format msgid "Try ‘%s --help’ or consult %s(1) for more information.\n" msgstr "" #: common/mltools/getopt-c.c:187 #, c-format msgid "%s: ‘%s’ is not a numeric value.\n" msgstr "" #: common/mltools/getopt-c.c:193 #, c-format msgid "%s: %s: integer out of range\n" msgstr "%s: %s: ਪੂਰਨਅੰਕ ਰੇਂਜ ਤੋਂ ਬਾਹਰ ਹੈ\n" #: common/mltools/getopt-c.c:383 #, c-format msgid "%s: ‘%s’ is not allowed for -%c; allowed values are:\n" msgstr "" #: common/mltools/getopt-c.c:386 #, c-format msgid "%s: ‘%s’ is not allowed for %s%s; allowed values are:\n" msgstr "" #: common/mltools/getopt-c.c:421 #, c-format msgid "Extra parameter on the command line: ‘%s’.\n" msgstr "" #: common/options/config.c:72 #, c-format msgid "%s: line %d: error parsing configuration file: %s" msgstr "" #: common/options/decrypt.c:52 #, c-format msgid "string size overflow" msgstr "" #: common/options/decrypt.c:170 #, c-format msgid "" "'clevis_luks_unlock', needed for decrypting %s, is unavailable in this " "libguestfs version" msgstr "" #: common/options/decrypt.c:184 #, c-format msgid "" "could not find key to open LUKS encrypted %s.\n" "\n" "Try using --key on the command line.\n" "\n" "Original error: %s (%d)" msgstr "" #: common/options/inspect.c:78 #, c-format msgid "" "%s: no operating system was found on this disk\n" "\n" "If using guestfish ‘-i’ option, remove this option and instead\n" "use the commands ‘run’ followed by ‘list-filesystems’.\n" "You can then mount filesystems you want by hand using the\n" "‘mount’ or ‘mount-ro’ command.\n" "\n" "If using guestmount ‘-i’, remove this option and choose the\n" "filesystem(s) you want to see by manually adding ‘-m’ option(s).\n" "Use ‘virt-filesystems’ to see what filesystems are available.\n" "\n" "If using other virt tools, this disk image won’t work\n" "with these tools. Use the guestfish equivalent commands\n" "(see the virt tool manual page).\n" msgstr "" #: common/options/inspect.c:99 #, c-format msgid "" "%s: multi-boot operating systems are not supported\n" "\n" "If using guestfish ‘-i’ option, remove this option and instead\n" "use the commands ‘run’ followed by ‘list-filesystems’.\n" "You can then mount filesystems you want by hand using the\n" "‘mount’ or ‘mount-ro’ command.\n" "\n" "If using guestmount ‘-i’, remove this option and choose the\n" "filesystem(s) you want to see by manually adding ‘-m’ option(s).\n" "Use ‘virt-filesystems’ to see what filesystems are available.\n" "\n" "If using other virt tools, multi-boot operating systems won’t work\n" "with these tools. Use the guestfish equivalent commands\n" "(see the virt tool manual page).\n" msgstr "" #: common/options/inspect.c:161 #, c-format msgid "%s: some filesystems could not be mounted (ignored)\n" msgstr "%s: ਕੁਝ ਫਾਇਲ ਸਿਸਟਮ ਮਾਊਂਟ ਨਹੀਂ ਕੀਤੇ ਜਾ ਸਕਦੇ (ਰੱਦ ਕੀਤੇ ਗਏ ਹਨ)\n" #: common/options/inspect.c:178 #, c-format msgid "Operating system: %s\n" msgstr "ਓਪਰੇਟਿੰਗ ਸਿਸਟਮ: %s\n" #: common/options/inspect.c:196 #, c-format msgid "%s mounted on %s\n" msgstr "%s ਨੂੰ %s ਉੱਪਰ ਮਾਊਂਟ ਕੀਤਾ ਗਿਆ ਹੈ\n" #: common/options/keys.c:63 #, c-format msgid "Enter key or passphrase (\"%s\"): " msgstr "ਕੁੰਜੀ ਜਾਂ ਗੁਪਤਕੋਡ ਦਿਓ (\"%s\"): " #: common/options/keys.c:146 #, c-format msgid "size_t overflow" msgstr "" #: common/options/keys.c:193 #, fuzzy, c-format #| msgid "could not parse boot size" msgid "could not read key from user" msgstr "ਬੂਟ ਅਕਾਰ ਨੂੰ ਪਾਰਸ ਨਹੀਂ ਕਰ ਸਕਦਾ" #: common/options/options.c:283 #, c-format msgid "%s: ‘%s’ could not be mounted.\n" msgstr "" #: common/options/options.c:287 #, c-format msgid "" "%s: Check mount(8) man page to ensure options ‘%s’\n" "%s: are supported by the filesystem that is being mounted.\n" msgstr "" #: common/options/options.c:291 #, c-format msgid "%s: Did you mean to mount one of these filesystems?\n" msgstr "" #: common/options/options.c:304 #, c-format msgid "cannot determine the subvolume for %s: %s (%d)" msgstr "" #: common/options/uri.c:119 #, c-format msgid "%s: --add: could not parse URI ‘%s’\n" msgstr "" #: common/options/uri.c:130 #, c-format msgid "%s: %s: scheme of URI is NULL or empty\n" msgstr "" #: common/options/uri.c:138 #, c-format msgid "%s: %s: cannot have both a server name and a socket query parameter\n" msgstr "" #: common/utils/utils.c:107 #, c-format msgid "%s exited successfully" msgstr "" #: common/utils/utils.c:110 #, c-format msgid "%s exited with error status %d" msgstr "" #: common/utils/utils.c:114 #, c-format msgid "%s killed by signal %d (%s)" msgstr "" #: common/utils/utils.c:118 #, c-format msgid "%s stopped by signal %d (%s)" msgstr "" #: common/utils/utils.c:122 #, c-format msgid "%s exited for an unknown reason (status %d)" msgstr "" ================================================ FILE: po/pl.po ================================================ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR Red Hat Inc. # This file is distributed under the same license as the PACKAGE package. # # Translators: # Mateusz Marzantowicz , 2013 # Mateusz Marzantowicz , 2012 # Piotr Drąg , 2011-2013 # rjones , 2011 # Piotr Drąg , 2016. #zanata msgid "" msgstr "" "Project-Id-Version: libguestfs 1.39.12\n" "Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?" "component=libguestfs&product=Virtualization+Tools\n" "POT-Creation-Date: 2025-02-16 17:05+0000\n" "PO-Revision-Date: 2024-01-15 13:36+0000\n" "Last-Translator: Weblate Translation Memory \n" "Language-Team: Polish \n" "Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " "|| n%100>=20) ? 1 : 2;\n" "X-Generator: Weblate 5.3.1\n" #: input/input_ova.ml:135 common/mltools/tools_utils.ml:235 msgid "%s" msgstr "%s" #: common/mltools/getopt.ml:73 msgid "" "%s\n" "Options:\n" msgstr "" "%s\n" "Opcje:\n" #: common/mltools/tools_utils.ml:695 common/mlcustomize/customize_run.ml:390 msgid "%s (ignored)" msgstr "%s (zignorowane)" #: common/mltools/checksums.ml:71 msgid "%s did not return any output" msgstr "" #: common/mlcustomize/customize_run.ml:183 msgid "%s does not exist in the guest" msgstr "" #: output/output_ovirt.ml:275 msgid "" "%s does not exist or is not a directory.\n" "\n" "Most likely cause: Either the %s (%s) has not been attached to any Data " "Center, or the path %s is not an %s at all.\n" "\n" "You have to attach the %s to a Data Center using the oVirt user interface " "first.\n" "\n" "If you don’t know what the %s mount point should be then you can also find " "this out through the oVirt user interface." msgstr "" #: common/mlcustomize/customize_run.ml:113 msgid "%s ignored for non-Windows guest" msgstr "" #: common/mlcustomize/customize_run.ml:186 msgid "%s is not a regular file in the guest" msgstr "" #. open/open.ml:39 #. inspector/inspector.ml:153 #. inspector/inspector.ml:40 #. in-place/in_place.ml:164 #. in-place/in_place.ml:45 #: v2v/v2v.ml:194 v2v/v2v.ml:183 v2v/v2v.ml:159 v2v/v2v.ml:44 open/open.ml:68 msgid "%s option used more than once on the command line" msgstr "" #: common/mltools/tools_utils.ml:231 common/mltools/tools_utils.ml:202 msgid "%s: %s" msgstr "%s: %s" #: common/mltools/tools_utils.ml:233 msgid "%s: %s: %s" msgstr "%s: %s: %s" #: common/mltools/on_exit.ml:77 msgid "" "%s: Exiting on signal %s\n" "%!" msgstr "" #: common/mlcustomize/inject_virtio_win.ml:411 msgid "%s: cannot open virtio-win ISO file: %s" msgstr "" #: common/mlcustomize/customize_run.ml:64 msgid "%s: command exited with an error" msgstr "" #: v2v/v2v.ml:277 msgid "" "%s: convert a guest to use KVM\n" "\n" "virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi -os imported " "esx_guest\n" "\n" "virt-v2v -i libvirtxml guest-domain.xml -o local -os /var/tmp\n" "\n" "virt-v2v -i disk disk.img -o local -os /var/tmp\n" "\n" "There is a companion front-end called \"virt-p2v\" which comes as an\n" "ISO or CD image that can be booted on physical machines.\n" "\n" "A short summary of the options is given below. For detailed help please\n" "read the man page virt-v2v(1).\n" msgstr "" #: in-place/in_place.ml:217 msgid "" "%s: convert a guest to use KVM in-place\n" "\n" "Note this program modifies the guest in-place with no backup.\n" "Normally you should use virt-v2v.\n" "\n" "virt-v2v-in-place -i libvirtxml guest-domain.xml\n" "\n" "virt-v2v-in-place -i disk disk.img\n" "\n" "A short summary of the options is given below. For detailed help please\n" "read the man page virt-v2v-in-place(1).\n" msgstr "" #: input/input_vddk.ml:207 msgid "%s: enter password for ‘%s’: " msgstr "" #: common/mltools/tools_utils.ml:172 msgid "%s: error: %s" msgstr "%s: błąd: %s" #: inspector/inspector.ml:198 msgid "" "%s: estimate disk space needed before virt-v2v conversion\n" "\n" "virt-v2v-inspector -i disk disk.img [-O output.xml]\n" "\n" "A short summary of the options is given below. For detailed help please\n" "read the man page virt-v2v-inspector(1).\n" msgstr "" #: open/open.ml:94 msgid "" "%s: open the virt-v2v input and run a program on it\n" "\n" "virt-v2v-open -i disk disk.img --run 'virt-inspector --format=raw @@'\n" "\n" "A short summary of the options is given below. For detailed help please\n" "read the man page virt-v2v-open(1).\n" msgstr "" #: common/mltools/tools_utils.ml:726 msgid "%s: operation timed out" msgstr "" #: input/OVA.ml:127 input/OVA.ml:121 msgid "" "%s: unsupported file format\n" "\n" "Formats which we currently understand for '-i ova' are: tar (uncompressed, " "compress with gzip or xz), zip" msgstr "" #: common/mltools/tools_utils.ml:191 msgid "%s: warning: %s" msgstr "%s: ostrzeżenie: %s" #. common/mlcustomize/customize_cmdline.ml:258 #: common/mlcustomize/customize_cmdline.ml:367 msgid "'CMD+ARGS'" msgstr "" #: common/mlcustomize/customize_run.ml:133 msgid "" "--append-line: line must not contain newline characters. Use the --append-" "line option multiple times to add several lines." msgstr "" #: common/mlcustomize/customize_run.ml:152 msgid "--chown: could not parse numeric UID:GID from %s:%s" msgstr "" #: common/mlcustomize/customize_run.ml:216 msgid "" "--inject-blnsvr: blnsvr.exe not found in virtio-win source that you specified" msgstr "" #: common/mlcustomize/customize_run.ml:225 msgid "" "--inject-qemu-ga: QEMU Guest Agent MSI not found in virtio-win source that " "you specified" msgstr "" #: common/mlcustomize/customize_run.ml:241 msgid "" "--inject-virtio-win: virtio drivers were not found for this Windows version " "in the virtio-win source that you specified" msgstr "" #: v2v/v2v.ml:146 inspector/inspector.ml:136 in-place/in_place.ml:143 msgid "--mac ip prefix length field is out of range" msgstr "" #: v2v/v2v.ml:340 msgid "--parallel parameter must be >= 1" msgstr "" #: input/input_disk.ml:42 msgid "-i disk: expecting a disk image (filename) on the command line" msgstr "" #: input/input_xen_ssh.ml:65 msgid "-i libvirt: expecting -ic parameter for Xen over SSH connection" msgstr "" #: input/input_vddk.ml:142 input/input_vcenter_https.ml:88 msgid "-i libvirt: expecting -ic parameter for vcenter connection" msgstr "" #: input/input_vcenter_https.ml:101 msgid "-i libvirt: expecting -ic parameter to contain vcenter server name" msgstr "" #: input/input_vcenter_https.ml:78 msgid "-i libvirt: expecting -ip passwordfile parameter for vCenter connection" msgstr "" #. input/input_vcenter_https.ml:70 #. input/input_libvirt.ml:41 #: input/input_xen_ssh.ml:57 input/input_vddk.ml:132 msgid "-i libvirt: expecting a libvirt guest name on the command line" msgstr "" #: input/input_libvirt.ml:59 msgid "-i libvirtxml: expecting a libvirt XML filename on the command line" msgstr "" #: input/input_ova.ml:243 msgid "-i ova: OVF references file ‘%s’ which was not found in the OVA archive" msgstr "" #: input/input_ova.ml:78 msgid "" "-i ova: corrupt OVA: checksum of disk %s does not match manifest (actual = " "%s, expected = %s)" msgstr "" #: input/input_ova.ml:52 msgid "-i ova: expecting an OVA file name on the command line" msgstr "" #: input/OVA.ml:361 msgid "" "-i ova: invalid OVA file: path ‘%s’ references a file outside the archive" msgstr "" #: input/input_vmx.ml:57 msgid "-i vmx: cannot use -it vddk in this input mode" msgstr "" #: input/input_vmx.ml:60 msgid "-i vmx: expecting a VMX file or ssh:// URI" msgstr "" #: input/vCenter.ml:159 msgid "" "-ip PASSWORD_FILE parameter ignored because 'user@' was not given in the URL" msgstr "" #: input/input_vddk.ml:119 msgid "-it vddk: ‘-io %s’ is not a valid input option" msgstr "" #: output/output.ml:54 msgid "-o %s: %s option cannot be used in this output mode" msgstr "" #: output/output_disk.ml:66 msgid "-o disk: output directory was not specified, use '-os /dir'" msgstr "" #: output/output_libvirt.ml:59 output/output_disk.ml:56 msgid "-o disk: unknown output option ‘-oo %s’" msgstr "" #: output/output_kubevirt.ml:81 msgid "-o kubevirt: output directory was not specified, use '-os /dir'" msgstr "" #: output/output_kubevirt.ml:91 msgid "" "-o kubevirt: the guest name must contain only lowercase alphanumeric " "characters, '-' or '.', and must start and end with an alphanumeric " "character. Rerun virt-v2v with the '-on name' option to rename it." msgstr "" #: output/output_kubevirt.ml:71 msgid "-o kubevirt: unknown output option ‘-oo %s’" msgstr "" #: output/output_libvirt.ml:120 msgid "" "-o libvirt: output pool ‘%s’ does not have /pool/target/path element. See " "virt-v2v-output-local(1)" msgstr "" #: output/output_libvirt.ml:124 msgid "" "-o libvirt: output pool ‘%s’ has type='dir' but the /pool/target/path " "element is not a local directory. See virt-v2v-output-local(1)" msgstr "" #: output/output_libvirt.ml:116 msgid "" "-o libvirt: output pool ‘%s’ is not a directory (type='dir'). See virt-v2v-" "output-local(1)" msgstr "" #: output/output_openstack.ml:88 msgid "-o openstack mode only supports -oa sparse -of raw" msgstr "" #: output/output_openstack.ml:115 msgid "-o openstack: unknown output option ‘-oo %s’" msgstr "" #: output/output_ovirt_upload.ml:97 msgid "-o ovirt-upload: -oo ovirt-cafile set more than once" msgstr "" #: output/output_ovirt_upload.ml:101 msgid "-o ovirt-upload: -oo ovirt-cluster set more than once" msgstr "" #: output/output_ovirt_upload.ml:112 msgid "-o ovirt-upload: invalid UUID for -oo ovirt-disk-uuid" msgstr "" #: output/output_ovirt_upload.ml:76 msgid "" "-o ovirt-upload: output password file was not specified, use ‘-op’ to point " "to a file which contains the password used to connect to the oVirt server" msgstr "" #: output/output_ovirt_upload.ml:83 msgid "-o ovirt-upload: output storage was not specified, use ‘-os’" msgstr "" #: output/output_ovirt_upload.ml:116 msgid "-o ovirt-upload: unknown output option ‘-oo %s’" msgstr "" #: output/output_ovirt_upload.ml:68 msgid "" "-o ovirt-upload: use ‘-oc’ to point to the oVirt server REST API URL, which " "is usually https://servername/ovirt-engine/api" msgstr "" #: output/output_ovirt.ml:51 msgid "-o ovirt: -os option was not specified" msgstr "" #: output/output_qemu.ml:72 msgid "-o qemu: output directory was not specified, use '-os /dir'" msgstr "" #: output/output_qemu.ml:63 msgid "-o qemu: unknown output option ‘-oo %s’" msgstr "" #: output/output_vdsm.ml:102 msgid "-o vdsm: -oo vdsm-image-uuid was not specified" msgstr "" #: output/output_vdsm.ml:81 msgid "-o vdsm: -oo vdsm-ovf-output set more than once" msgstr "" #: output/output_vdsm.ml:77 msgid "-o vdsm: -oo vdsm-vm-uuid set more than once" msgstr "" #: output/output_vdsm.ml:110 msgid "-o vdsm: -os option was not specified" msgstr "" #: output/output_vdsm.ml:97 msgid "-o vdsm: either -oo vdsm-vol-uuid or -oo vdsm-vm-uuid was not specified" msgstr "" #: output/output_vdsm.ml:90 msgid "-o vdsm: unknown output option ‘-oo %s’" msgstr "" #: output/output_vdsm.ml:74 msgid "-o vdsm: unknown vdsm-compat level ‘%s’" msgstr "" #. output/output_kubevirt.ml:84 #. output/output_disk.ml:68 #: output/output_vdsm.ml:112 output/output_qemu.ml:74 msgid "-os %s: output directory does not exist or is not a directory" msgstr "" #: input/parse_libvirt_xml.ml:279 msgid " missing 'method' attribute, ignoring" msgstr "" #: input/parse_libvirt_xml.ml:291 msgid " unknown fail='%s' attribute, ignoring" msgstr "" #: input/parse_libvirt_xml.ml:370 input/parse_libvirt_xml.ml:317 msgid " was ignored" msgstr "" #: input/parse_libvirt_xml.ml:338 msgid " with was ignored" msgstr "" #: input/parse_libvirt_xml.ml:365 msgid " with was ignored" msgstr "" #: input/parse_libvirt_xml.ml:299 msgid " element with no type attribute ignored" msgstr "" #: input/parse_libvirt_xml.ml:167 msgid " in the input libvirt XML was ignored" msgstr "" #: input/parse_libvirt_xml.ml:414 msgid "" " was ignored because the device name could not be recognized" msgstr "" #: input/input_vddk.ml:176 msgid "" " was not found in the output of ‘virsh dumpxml \"%s\"’. The " "most likely reason is that libvirt is too old, try upgrading libvirt to ≥ " "3.7." msgstr "" #: common/mlcustomize/customize_cmdline.ml:305 msgid "Add package(s) to install" msgstr "" #: common/mlcustomize/customize_cmdline.ml:270 msgid "Add package(s) to install at first boot" msgstr "" #: common/mlcustomize/customize_cmdline.ml:175 msgid "Append line(s) to the file" msgstr "" #: common/mlcustomize/customize_run.ml:137 #, fuzzy #| msgid "downloading %s" msgid "Appending line to %s" msgstr "pobieranie %s" #: common/mlcustomize/customize_cmdline.ml:197 msgid "Change the owner user and group ID of a file or directory" msgstr "" #: common/mlcustomize/customize_cmdline.ml:186 msgid "Change the permissions of a file" msgstr "" #: common/mlcustomize/customize_run.ml:155 msgid "Changing owner of %s to %d:%d" msgstr "" #: common/mlcustomize/customize_run.ml:141 msgid "Changing permissions of %s to %s" msgstr "" #: input/input_libvirt.ml:174 input/input_libvirt.ml:157 msgid "Checking %s checksum of disk %d/%d" msgstr "" #: common/mlcustomize/customize_cmdline.ml:488 msgid "Compatibility option doing nothing" msgstr "" #: common/mlcustomize/customize_cmdline.ml:219 #, fuzzy #| msgid "Copy local files or directories into image" msgid "Copy files in disk image" msgstr "Kopiuje lokalne pliki lub katalogi do obrazu" #: common/mlcustomize/customize_cmdline.ml:397 #, fuzzy #| msgid "Copy local files or directories into image" msgid "Copy local files or directories from a tarball into image" msgstr "Kopiuje lokalne pliki lub katalogi do obrazu" #: common/mlcustomize/customize_cmdline.ml:230 msgid "Copy local files or directories into image" msgstr "Kopiuje lokalne pliki lub katalogi do obrazu" #: common/mlcustomize/customize_run.ml:168 msgid "Copying (in image): %s to %s" msgstr "" #: v2v/v2v.ml:518 msgid "Copying disk %d/%d" msgstr "" #: common/mlcustomize/customize_run.ml:172 #, fuzzy #| msgid "downloading %s" msgid "Copying: %s to %s" msgstr "pobieranie %s" #: common/mlcustomize/customize_cmdline.ml:322 msgid "Create a directory" msgstr "Tworzy katalog" #: common/mlcustomize/customize_cmdline.ml:316 msgid "Create symbolic links" msgstr "Tworzy dowiązania symboliczne" #: v2v/v2v.ml:567 msgid "Creating output metadata" msgstr "" #: common/mlcustomize/customize_cmdline.ml:321 msgid "DIR" msgstr "KATALOG" #: common/mlcustomize/customize_cmdline.ml:236 #, fuzzy #| msgid "Create a directory" msgid "Delete a file or directory" msgstr "Tworzy katalog" #: common/mlcustomize/customize_run.ml:176 #, fuzzy #| msgid "%s: warning: %s" msgid "Deleting: %s" msgstr "%s: ostrzeżenie: %s" #: common/mltools/getopt.ml:225 msgid "Display brief help" msgstr "" #: common/mltools/tools_utils.ml:385 msgid "Display version and exit" msgstr "Wyświetla wersję i kończy działanie" #: common/mlcustomize/customize_cmdline.ml:482 msgid "Do not relabel files with correct SELinux labels" msgstr "" #: v2v/v2v.ml:248 inspector/inspector.ml:177 in-place/in_place.ml:190 msgid "Don't trim filesystems before conversion" msgstr "" #: common/mltools/tools_utils.ml:389 msgid "Don’t print progress messages" msgstr "" #: common/mltools/tools_utils.ml:420 msgid "Don’t turn off echo for passphrases" msgstr "" #: common/mlcustomize/customize_cmdline.ml:247 msgid "Edit file using Perl expression" msgstr "" #: common/mlcustomize/customize_run.ml:180 #, fuzzy #| msgid "%s: warning: %s" msgid "Editing: %s" msgstr "%s: ostrzeżenie: %s" #: common/mltools/tools_utils.ml:386 msgid "Enable libguestfs debugging messages" msgstr "" #: common/mltools/tools_utils.ml:387 msgid "Enable tracing of libguestfs calls" msgstr "" #: output/output_ovirt.ml:77 msgid "Export Storage Domain" msgstr "" #: open/open.ml:88 msgid "External command to run" msgstr "" #. common/mlcustomize/customize_cmdline.ml:408 #. common/mlcustomize/customize_cmdline.ml:373 #: common/mlcustomize/customize_cmdline.ml:414 msgid "FILE" msgstr "PLIK" #: common/mlcustomize/customize_cmdline.ml:455 #, fuzzy #| msgid "FILENAME" msgid "FILE:CONTENT" msgstr "NAZWA-PLIKU" #: common/mlcustomize/customize_cmdline.ml:444 #, fuzzy #| msgid "FILE" msgid "FILE:DEST" msgstr "PLIK" #: common/mlcustomize/customize_cmdline.ml:242 #, fuzzy #| msgid "FILE" msgid "FILE:EXPR" msgstr "PLIK" #: common/mlcustomize/customize_cmdline.ml:170 #, fuzzy #| msgid "FILENAME" msgid "FILE:LINE" msgstr "NAZWA-PLIKU" #: common/mlcustomize/customize_cmdline.ml:203 msgid "FILENAME" msgstr "NAZWA-PLIKU" #. in-place/in_place.ml:378 #: v2v/v2v.ml:571 open/open.ml:220 inspector/inspector.ml:334 msgid "Finishing off" msgstr "" #: common/mlcustomize/customize_cmdline.ml:275 msgid "HOSTNAME" msgstr "NAZWA-KOMPUTERA" #: v2v/v2v.ml:254 inspector/inspector.ml:183 in-place/in_place.ml:194 msgid "How to choose root filesystem" msgstr "" #: common/mltools/tools_utils.ml:177 msgid "" "If reporting bugs, run %s with debugging enabled and include the complete " "output:\n" "\n" " %s -v -x [...]" msgstr "" #: common/mlcustomize/customize_cmdline.ml:386 msgid "Inject a public key into the guest" msgstr "" #: common/mlcustomize/customize_cmdline.ml:282 msgid "Inject the Balloon Server into a Windows guest" msgstr "" #: common/mlcustomize/customize_cmdline.ml:288 msgid "Inject the QEMU Guest Agent into a Windows guest" msgstr "" #: common/mlcustomize/customize_cmdline.ml:294 msgid "Inject virtio-win drivers into a Windows guest" msgstr "" #. in-place/in_place.ml:176 #: v2v/v2v.ml:216 open/open.ml:80 inspector/inspector.ml:165 msgid "Input format" msgstr "" #: input/input_vddk.ml:77 msgid "" "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" "\n" "Refer to nbdkit-vddk-plugin(1) and the VDDK documentation for further\n" "information on these settings.\n" msgstr "" #: v2v/v2v.ml:222 open/open.ml:86 inspector/inspector.ml:171 msgid "Input transport" msgstr "" #: common/mlcustomize/customize_run.ml:191 #, fuzzy #| msgid "Uninstall package(s)" msgid "Installing firstboot command: %s" msgstr "Odinstalowuje pakiety" #: common/mlcustomize/customize_run.ml:195 #, fuzzy #| msgid "Uninstall package(s)" msgid "Installing firstboot packages: %s" msgstr "Odinstalowuje pakiety" #: common/mlcustomize/customize_run.ml:202 msgid "Installing firstboot script: %s" msgstr "" #: common/mlcustomize/customize_run.ml:248 #, fuzzy #| msgid "Uninstall package(s)" msgid "Installing packages: %s" msgstr "Odinstalowuje pakiety" #: common/mlcustomize/customize_cmdline.ml:225 msgid "LOCALPATH:REMOTEDIR" msgstr "" #. in-place/in_place.ml:174 #: v2v/v2v.ml:214 open/open.ml:78 inspector/inspector.ml:163 msgid "Libvirt URI" msgstr "Adres URI biblioteki libvirt" #: common/mlcustomize/customize_run.ml:255 #, fuzzy #| msgid "downloading %s" msgid "Linking: %s -> %s" msgstr "pobieranie %s" #. common/mlcustomize/customize_cmdline.ml:287 #. common/mlcustomize/customize_cmdline.ml:281 #: common/mlcustomize/customize_cmdline.ml:293 msgid "METHOD" msgstr "" #: common/mltools/tools_utils.ml:426 msgid "Make output machine readable" msgstr "" #: common/mlcustomize/customize_run.ml:260 msgid "Making directory: %s" msgstr "" #: v2v/v2v.ml:226 inspector/inspector.ml:173 in-place/in_place.ml:182 msgid "Map NIC to network or bridge or assign static IP" msgstr "" #: v2v/v2v.ml:210 inspector/inspector.ml:159 in-place/in_place.ml:170 msgid "Map bridge ‘in’ to ‘out’" msgstr "" #: v2v/v2v.ml:230 inspector/inspector.ml:179 in-place/in_place.ml:186 msgid "Map network ‘in’ to ‘out’" msgstr "" #: common/mlcustomize/customize_cmdline.ml:333 msgid "Move files in disk image" msgstr "" #: common/mlcustomize/customize_run.ml:264 #, fuzzy #| msgid "downloading %s" msgid "Moving: %s -> %s" msgstr "pobieranie %s" #. input/input_vcenter_https.ml:45 #. input/input_ova.ml:35 #. input/input_libvirt.ml:233 #. input/input_libvirt.ml:221 #. input/input_disk.ml:35 #: input/input_xen_ssh.ml:43 input/input_vmx.ml:36 msgid "No input options can be used in this mode.\n" msgstr "" #: output/output_ovirt.ml:40 output/output_null.ml:38 #: output/output_glance.ml:40 msgid "No output options can be used in this mode.\n" msgstr "" #: output/output_vdsm.ml:166 msgid "OVF (metadata) directory (%s) does not exist or is not a directory" msgstr "" #: common/mlcustomize/firstboot.ml:268 msgid "" "One of rhsrvany.exe or pvvxsvc.exe is missing in %s. One of them is " "required in order to install Windows firstboot scripts. You can get one by " "building rhsrvany (https://github.com/rwmjones/rhsrvany)" msgstr "" #: v2v/v2v.ml:236 msgid "Output hypervisor connection" msgstr "" #: output/output_ovirt_upload.ml:51 msgid "" "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" "\n" "You can override the UUIDs of the disks, instead of using autogenerated " "UUIDs\n" "after their uploads (if you do, you must supply one for each disk):\n" "\n" " -oo ovirt-disk-uuid=UUID Disk UUID\n" msgstr "" #: output/output_qemu.ml:44 msgid "" "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" msgstr "" #: output/output_vdsm.ml:43 msgid "" "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" "\n" "For 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" msgstr "" #: output/output_disk.ml:44 msgid "" "Output options that can be used with -o disk:\n" "\n" " -oo compressed Compress the output file (used only with -of qcow2)\n" msgstr "" #: output/output_kubevirt.ml:51 msgid "" "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" msgstr "" #: output/output_libvirt.ml:47 msgid "" "Output options that can be used with -o libvirt:\n" "\n" " -oo compressed Compress the output file (used only with -of qcow2)\n" msgstr "" #. common/mlcustomize/customize_cmdline.ml:235 #: common/mlcustomize/customize_cmdline.ml:420 msgid "PATH" msgstr "ŚCIEŻKA" #: common/mlcustomize/customize_cmdline.ml:181 msgid "PERMISSIONS:FILE" msgstr "" #. common/mlcustomize/customize_cmdline.ml:300 #. common/mlcustomize/customize_cmdline.ml:265 #: common/mlcustomize/customize_cmdline.ml:427 msgid "PKG,PKG.." msgstr "" #: v2v/v2v.ml:263 in-place/in_place.ml:203 msgid "Prefer 'virtio-blk' or 'virtio-scsi'" msgstr "" #: v2v/v2v.ml:252 in-place/in_place.ml:192 msgid "Print source and stop" msgstr "" #: common/mlcustomize/customize_cmdline.ml:208 msgid "Read customize commands from file" msgstr "" #: common/mltools/tools_utils.ml:421 msgid "Read passphrases from stdin" msgstr "" #: common/mlcustomize/customize_cmdline.ml:421 msgid "Recursively truncate all files in directory" msgstr "" #: common/mlcustomize/customize_run.ml:298 #, fuzzy #| msgid "%s: warning: %s" msgid "Recursively truncating: %s" msgstr "%s: ostrzeżenie: %s" #: v2v/v2v.ml:240 msgid "Rename guest when converting" msgstr "" #: common/mlcustomize/customize_cmdline.ml:259 msgid "Run command at first guest boot" msgstr "" #: common/mlcustomize/customize_cmdline.ml:368 msgid "Run command in disk image" msgstr "" #: common/mlcustomize/customize_cmdline.ml:253 msgid "Run script at first guest boot" msgstr "" #: common/mlcustomize/customize_cmdline.ml:362 msgid "Run script in disk image" msgstr "" #: common/mlcustomize/customize_cmdline.ml:409 msgid "Run touch on a file" msgstr "" #: v2v/v2v.ml:250 msgid "Run up to N instances of nbdcopy in parallel" msgstr "" #: open/open.ml:188 msgid "Running external command" msgstr "" #: common/mlcustomize/customize_run.ml:307 #, fuzzy #| msgid "%s: warning: %s" msgid "Running touch: %s" msgstr "%s: ostrzeżenie: %s" #. common/mlcustomize/customize_run.ml:159 #: common/mlcustomize/customize_run.ml:274 #, fuzzy #| msgid "%s: warning: %s" msgid "Running: %s" msgstr "%s: ostrzeżenie: %s" #. common/mlcustomize/customize_cmdline.ml:252 #: common/mlcustomize/customize_cmdline.ml:361 msgid "SCRIPT" msgstr "SKRYPT" #: common/mltools/tools_utils.ml:422 #: common/mlcustomize/customize_cmdline.ml:351 msgid "SELECTOR" msgstr "" #: common/mlcustomize/customize_run.ml:363 msgid "SELinux relabelling" msgstr "" #. common/mlcustomize/customize_cmdline.ml:214 #: common/mlcustomize/customize_cmdline.ml:328 msgid "SOURCE:DEST" msgstr "" #: common/mlcustomize/customize_run.ml:287 msgid "SSH key could not be injected for this type of guest" msgstr "" #: common/mlcustomize/customize_run.ml:284 msgid "SSH key inject: %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:374 msgid "Scrub a file" msgstr "" #: common/mlcustomize/customize_cmdline.ml:466 msgid "Scrub build log file" msgstr "" #: common/mlcustomize/customize_run.ml:374 msgid "Scrubbing the log file" msgstr "" #: common/mlcustomize/customize_run.ml:279 #, fuzzy #| msgid "%s: warning: %s" msgid "Scrubbing: %s" msgstr "%s: ostrzeżenie: %s" #: v2v/v2v.ml:208 msgid "Set bandwidth dynamically from file" msgstr "" #: v2v/v2v.ml:206 msgid "Set bandwidth to bits per sec" msgstr "" #. in-place/in_place.ml:172 #: v2v/v2v.ml:212 open/open.ml:76 inspector/inspector.ml:161 msgid "Set input mode (default: libvirt)" msgstr "" #: v2v/v2v.ml:228 inspector/inspector.ml:175 in-place/in_place.ml:184 msgid "Set memory size" msgstr "" #: v2v/v2v.ml:256 inspector/inspector.ml:185 in-place/in_place.ml:196 msgid "Set number of vCPUs" msgstr "" #. in-place/in_place.ml:178 #: v2v/v2v.ml:218 open/open.ml:82 inspector/inspector.ml:167 msgid "Set option for input mode" msgstr "" #: v2v/v2v.ml:242 msgid "Set option for output mode" msgstr "" #: v2v/v2v.ml:234 msgid "Set output allocation mode" msgstr "" #: v2v/v2v.ml:238 msgid "Set output format" msgstr "" #: v2v/v2v.ml:232 msgid "Set output mode (default: libvirt)" msgstr "" #: v2v/v2v.ml:246 msgid "Set output storage location" msgstr "" #: common/mlcustomize/customize_cmdline.ml:476 msgid "Set password crypto" msgstr "" #: common/mltools/tools_utils.ml:430 msgid "Set program name" msgstr "" #: common/mlcustomize/customize_cmdline.ml:356 msgid "Set root password" msgstr "" #: common/mlcustomize/customize_cmdline.ml:403 msgid "Set the default timezone" msgstr "" #: common/mlcustomize/customize_cmdline.ml:276 msgid "Set the hostname" msgstr "" #: inspector/inspector.ml:181 in-place/in_place.ml:188 msgid "Set the output filename" msgstr "" #: common/mlcustomize/customize_cmdline.ml:345 msgid "Set user password" msgstr "" #: common/mlcustomize/customize_run.ml:75 msgid "Setting a random seed" msgstr "" #: common/mlcustomize/customize_run.ml:354 msgid "Setting passwords" msgstr "" #: common/mlcustomize/password.ml:113 msgid "Setting random password of %s to %s" msgstr "" #: common/mlcustomize/customize_run.ml:207 msgid "Setting the hostname: %s" msgstr "" #: common/mlcustomize/customize_run.ml:90 msgid "Setting the machine ID in %s" msgstr "" #: common/mlcustomize/customize_run.ml:302 msgid "Setting the timezone: %s" msgstr "" #: v2v/v2v.ml:481 msgid "Setting up the destination: %s" msgstr "" #. in-place/in_place.ml:342 #: v2v/v2v.ml:457 open/open.ml:184 inspector/inspector.ml:310 msgid "Setting up the source: %s" msgstr "" #: v2v/v2v.ml:463 in-place/in_place.ml:348 msgid "Source guest information (--print-source option):\n" msgstr "" #: common/mltools/tools_utils.ml:422 msgid "Specify a LUKS key" msgstr "" #: common/mlcustomize/customize_cmdline.ml:392 msgid "TARFILE:REMOTEDIR" msgstr "" #: common/mlcustomize/customize_cmdline.ml:311 msgid "TARGET:LINK[:LINK..]" msgstr "" #: common/mlcustomize/customize_cmdline.ml:402 msgid "TIMEZONE" msgstr "" #: v2v/v2v.ml:200 msgid "" "The --in-place option has been replaced by the ‘virt-v2v-in-place’ program" msgstr "" #: output/output_qemu.ml:251 msgid "" "The Virt machine has no support for IDE. Please report a bug for virt-v2v -- " "refer to virt-v2v(1) section \"BUGS\"." msgstr "" #: output/output_qemu.ml:272 msgid "" "The Virt machine has no support for floppies. Please report a bug for virt-" "v2v -- refer to virt-v2v(1) section \"BUGS\"." msgstr "" #: lib/create_ovf.ml:785 msgid "" "This guest required a password for connection to its display, but this is " "not supported by oVirt. Therefore the converted guest’s display will not " "require a separate password to connect." msgstr "" #: input/input_vmx.ml:111 msgid "" "This transport does not support guests with snapshots. Either collapse the " "snapshots for this guest and try the conversion again, or use one of the " "alternate conversion methods described in virt-v2v-input-vmware(1) section " "\"NOTES\"." msgstr "" #: common/mlcustomize/customize_cmdline.ml:415 msgid "Truncate a file to zero size" msgstr "Skraca plik do zerowego rozmiaru" #: common/mlcustomize/customize_run.ml:294 #, fuzzy #| msgid "%s: warning: %s" msgid "Truncating: %s" msgstr "%s: ostrzeżenie: %s" #: common/mlcustomize/customize_cmdline.ml:192 msgid "UID:GID:PATH" msgstr "" #: common/mlcustomize/customize_cmdline.ml:339 msgid "USER:SELECTOR" msgstr "" #: common/mlcustomize/customize_cmdline.ml:380 msgid "USER[:SELECTOR]" msgstr "" #: common/mlcustomize/customize_cmdline.ml:432 msgid "Uninstall package(s)" msgstr "Odinstalowuje pakiety" #: common/mlcustomize/customize_run.ml:311 #, fuzzy #| msgid "Uninstall package(s)" msgid "Uninstalling packages: %s" msgstr "Odinstalowuje pakiety" #: common/mlcustomize/customize_run.ml:290 #, fuzzy #| msgid "downloading %s" msgid "Unpack tar file: %s to %s" msgstr "pobieranie %s" #: common/mlcustomize/customize_cmdline.ml:438 #, fuzzy #| msgid "Uninstall package(s)" msgid "Update packages" msgstr "Odinstalowuje pakiety" #: common/mlcustomize/customize_run.ml:316 #, fuzzy #| msgid "Uninstall package(s)" msgid "Updating packages" msgstr "Odinstalowuje pakiety" #: common/mlcustomize/customize_cmdline.ml:449 msgid "Upload local file to destination" msgstr "" #: common/mlcustomize/customize_run.ml:321 #, fuzzy #| msgid "downloading %s" msgid "Uploading: %s to %s" msgstr "pobieranie %s" #: common/mltools/tools_utils.ml:391 msgid "Use ANSI colour sequences even if not tty" msgstr "" #. in-place/in_place.ml:180 #: v2v/v2v.ml:220 open/open.ml:84 inspector/inspector.ml:169 msgid "Use password from file to connect to input hypervisor" msgstr "" #: v2v/v2v.ml:244 msgid "Use password from file to connect to output hypervisor" msgstr "" #: v2v/v2v.ml:224 msgid "Use virt-v2v-in-place instead" msgstr "" #: common/mltools/tools_utils.ml:392 msgid "Wrap log messages even if not tty" msgstr "" #: common/mlcustomize/customize_cmdline.ml:460 msgid "Write file" msgstr "" #: common/mlcustomize/customize_run.ml:346 #, fuzzy #| msgid "%s: warning: %s" msgid "Writing: %s" msgstr "%s: ostrzeżenie: %s" #: lib/YAML.ml:167 msgid "" "YAML block contains newline character. This should not happen, please " "report a bug against virt-v2v." msgstr "" #: output/output_libvirt.ml:96 msgid "" "a libvirt domain called ‘%s’ already exists on the target.\n" "\n" "If using virt-v2v directly, use the ‘-on’ option to select a different name. " "Or delete the existing domain on the target using the ‘virsh undefine’ " "command.\n" "\n" "If using virt-p2v, select a different ‘Name’ in the ‘Target properties’. Or " "delete the existing domain on the target using the ‘virsh undefine’ command." msgstr "" #: common/mlcustomize/append_line.ml:44 msgid "append_line: %s is not a file" msgstr "" #: input/input_libvirt.ml:206 msgid "" "bad checksum for disk %d/%d\n" "Expected checksum: %s\n" "Actual checksum: %s" msgstr "" #: lib/libvirt_utils.ml:59 msgid "cannot find libvirt domain ‘%s’: %s" msgstr "" #: lib/libvirt_utils.ml:96 msgid "" "cannot find libvirt pool ‘%s’: %s\n" "\n" "Use ‘virsh pool-list --all’ to list all available pools, and ‘virsh pool-" "dumpxml ’ to display details about a particular pool.\n" "\n" "To set the pool which virt-v2v uses, add the ‘-os ’ option." msgstr "" #: lib/libvirt_utils.ml:110 msgid "cannot find libvirt volume ‘%s’: %s" msgstr "" #: common/mlcustomize/firstboot.ml:235 msgid "" "cannot finish firstboot installation by running ‘%s’ because host cpu (%s) " "and guest arch (%s) are not compatible. The firstboot service may not run " "at boot." msgstr "" #: output/output_libvirt.ml:180 msgid "cannot get libvirt domain capabilities: %s" msgstr "" #: output/output_libvirt.ml:85 msgid "cannot get libvirt hypervisor capabilities: %s" msgstr "" #: v2v/v2v.ml:105 inspector/inspector.ml:95 in-place/in_place.ml:102 msgid "cannot parse --mac \"%s\" parameter" msgstr "" #: v2v/v2v.ml:129 inspector/inspector.ml:119 in-place/in_place.ml:126 msgid "cannot parse --mac ip %s: doesn’t look like “%s” is an IP address" msgstr "" #: v2v/v2v.ml:143 inspector/inspector.ml:133 in-place/in_place.ml:140 msgid "cannot parse --mac ip prefix length field as an integer: %s" msgstr "" #: common/mlcustomize/guest_packages.ml:29 msgid "" "cannot use ‘%s’ because no package manager has been detected for this guest " "OS.\n" "\n" "If this guest OS is a common one with ordinary package management then this " "may have been caused by a failure of libguestfs inspection.\n" "\n" "For OSes such as Windows that lack package management, this is not " "possible. Try using one of the ‘--firstboot*’ flags instead (described in " "the virt-customize(1) manual)." msgstr "" #: output/output_ovirt.ml:91 msgid "" "cannot write files to the NFS server as %d:%d, even though we appear to be " "running as root. This probably means the NFS client or idmapd is not " "configured properly.\n" "\n" "You will have to chown the files that virt-v2v creates after the run, " "otherwise oVirt will not be able to import the VM." msgstr "" #: output/output_ovirt.ml:99 msgid "" "cannot write files to the NFS server as %d:%d. You might want to stop virt-" "v2v (^C) and rerun it as root." msgstr "" #: common/mlcustomize/customize_cmdline.ml:508 msgid "command '%s' cannot be used in command files, see the man page" msgstr "" #: common/mlcustomize/customize_cmdline.ml:525 msgid "command '%s' not valid, see the man page" msgstr "" #: common/mldrivers/linux_bootloaders.ml:318 msgid "could not add grub2 serial console (ignored)" msgstr "" #: input/ssh.ml:52 msgid "" "could not copy the VMX file from the remote server, see earlier error " "messages" msgstr "" #: output/output_libvirt.ml:211 msgid "" "could not define libvirt domain: %s.\n" "The libvirt XML is still available in ‘%s’. Try running ‘virsh -c %s define " "%s’ yourself instead." msgstr "" #: common/mldrivers/linux_bootloaders.ml:221 msgid "could not determine a way to update the configuration of Grub2" msgstr "" #: input/input_vddk.ml:243 msgid "" "could not fetch thumbprint from the server, you mus use ‘-io vddk-" "thumbprint=XX:XX...’" msgstr "" #: common/mldrivers/linux_bootloaders.ml:376 msgid "could not find bootloader mount point (%s): %s" msgstr "" #: common/mldrivers/windows_drivers.ml:91 msgid "" "could not find registry entry " "HKEY_LOCAL_MACHINE\\SYSTEM\\DriverDatabase\\DeviceIds in this Windows " "guest. It may be either a very old or very new version of Windows that we " "cannot process." msgstr "" #: common/mlcustomize/firstboot.ml:232 msgid "" "could not finish firstboot installation by running ‘%s’ because the command " "failed: %s" msgstr "" #. input/input_vcenter_https.ml:94 #: input/select_input.ml:66 input/input_xen_ssh.ml:71 input/input_vddk.ml:151 msgid "could not parse '-ic %s'. Original error message was: %s" msgstr "" #: input/parse_libvirt_xml.ml:407 input/parse_libvirt_xml.ml:54 msgid "could not parse device name ‘%s’ from the source libvirt XML" msgstr "" #: input/OVF.ml:168 #, fuzzy #| msgid "could not parse ovf:Name from OVF document" msgid "could not parse disk rasd:HostResource from OVF document" msgstr "nie można przetworzyć ovf:Name z dokumentu OVF" #: input/input_ova.ml:98 msgid "could not parse ovf:Name from OVF document" msgstr "nie można przetworzyć ovf:Name z dokumentu OVF" #: output/output_ovirt.ml:247 msgid "" "could not read the %s specified by the '-os %s' parameter on the command " "line. Is it really an OVirt %s? The original error is: %s" msgstr "" #: common/mldrivers/linux_bootloaders.ml:336 msgid "" "could not rebuild grub2 configuration file (%s). This may mean that grub " "output will not be sent to the serial port, but otherwise should be " "harmless. Original error message: %s" msgstr "" #: output/output_libvirt.ml:156 msgid "could not refresh libvirt pool ‘%s’: %s" msgstr "" #: common/mldrivers/linux_bootloaders.ml:320 msgid "could not remove grub2 serial console (ignored)" msgstr "" #: common/mltools/registry.ml:93 msgid "" "decode_utf16le: Windows UTF16-LE string contains non-7-bit characters. This " "is a bug in %s, please report it." msgstr "" #: common/mltools/registry.ml:87 msgid "" "decode_utf16le: Windows string does not appear to be in UTF16-LE encoding. " "This could be a bug in %s." msgstr "" #: common/mldrivers/linux_bootloaders.ml:126 msgid "didn't find grub entry for kernel %s" msgstr "" #: input/input_disk.ml:150 msgid "disks on the command line have mixed formats" msgstr "" #: input/parse_libvirt_xml.ml:194 msgid "display in the input libvirt XML was ignored" msgstr "" #: output/output_qemu.ml:147 msgid "don’t know how to convert UEFI guests for architecture %s" msgstr "" #: common/mldrivers/linux.ml:158 msgid "don’t know how to find file owner using %s" msgstr "" #: common/mldrivers/linux.ml:89 msgid "don’t know how to get list of files from package using %s" msgstr "" #: common/mltools/curl.ml:82 msgid "downloading %s" msgstr "pobieranie %s" #: lib/networks.ml:84 msgid "" "duplicate --mac parameter. Duplicate mappings specified for MAC address %s." msgstr "" #: lib/networks.ml:102 msgid "" "duplicate -b/--bridge parameter. Duplicate mappings specified for bridge %s." msgstr "" #: lib/networks.ml:108 msgid "duplicate -b/--bridge parameter. Only one default mapping is allowed." msgstr "" #: lib/networks.ml:90 msgid "" "duplicate -n/--network parameter. Duplicate mappings specified for network " "%s." msgstr "" #: lib/networks.ml:96 msgid "duplicate -n/--network parameter. Only one default mapping is allowed." msgstr "" #: input/OVF.ml:143 msgid "error parsing disk fileRef" msgstr "" #: input/input_ova.ml:124 msgid "error uncompressing %s, see earlier error messages" msgstr "" #: input/OVA.ml:210 input/OVA.ml:112 msgid "error unpacking %s, see earlier error messages" msgstr "" #: common/mltools/tools_utils.ml:248 msgid "exception: %s" msgstr "" #: common/mltools/tools_utils.ml:455 msgid "exited with error %d" msgstr "" #: lib/utils.ml:34 msgid "exited with non-zero error code %d" msgstr "" #: input/input_disk.ml:147 msgid "expected >= 1 disk name on the command line" msgstr "" #: common/mltools/xpath_helpers.ml:36 msgid "" "expecting XML expression to return an integer (expression: %s, matching " "string: %s)" msgstr "" #: common/mltools/tools_utils.ml:440 msgid "external command" msgstr "" #: output/output_ovirt_upload.ml:265 msgid "failed server prechecks, see earlier errors" msgstr "" #: output/output_ovirt_upload.ml:507 msgid "failed to create virtual machine, see earlier errors" msgstr "" #: output/output_ovirt_upload.ml:479 msgid "failed to finalize the transfers, see earlier errors" msgstr "" #: common/mldrivers/linux_bootloaders.ml:208 msgid "failed to find grub2-mkconfig binary (but Grub2 was detected on guest)" msgstr "" #: input/OVA.ml:461 msgid "failed to parse line returned by tar: %S" msgstr "" #: output/output_ovirt_upload.ml:394 msgid "failed to start transfer, see earlier errors" msgstr "" #: output/output_ovirt_upload.ml:311 msgid "failed vmchecks, see earlier errors" msgstr "" #: common/mltools/tools_utils.ml:239 msgid "failure: %s" msgstr "niepowodzenie: %s" #: input/input_ova.ml:134 msgid "file ‘%s’ not found in the ova" msgstr "" #: common/mlcustomize/firstboot.ml:143 msgid "" "firstboot: unknown version for old firstboot.service file %s (md5=%s), it " "will not be removed" msgstr "" #: common/mltools/tools_utils.ml:258 msgid "generated by %s %s" msgstr "" #: output/create_libvirt_xml.ml:39 msgid "get_osinfo_id: unknown guest operating system: %s" msgstr "" #: output/output_glance.ml:66 msgid "" "glance: glance client is not installed or set up correctly. You may need to " "set environment variables or source a script to enable authentication. See " "preceding messages for details." msgstr "" #: output/output_glance.ml:139 msgid "glance: image upload to glance failed, see earlier errors" msgstr "" #: common/mlcustomize/firstboot.ml:386 common/mlcustomize/firstboot.ml:164 msgid "guest type %s is not supported" msgstr "" #: common/mlcustomize/firstboot.ml:413 msgid "guest type %s/%s is not supported" msgstr "" #: common/mltools/tools_utils.ml:749 msgid "" "host (%s/%s) and guest (%s/%s) are not compatible, so you cannot use command " "line options that involve running commands in the guest. Use --firstboot " "scripts instead." msgstr "" #: common/mlcustomize/customize_run.ml:209 msgid "hostname could not be set for this type of guest" msgstr "" #: common/mldrivers/linux_kernels.ml:342 msgid "ignoring kernel %s in bootloader, as it does not exist." msgstr "" #: output/output_vdsm.ml:160 msgid "image directory (%s) does not exist or is not a directory" msgstr "" #: input/parse_libvirt_xml.ml:81 msgid "in the libvirt XML metadata, is missing or empty" msgstr "" #: input/parse_libvirt_xml.ml:87 msgid "in the libvirt XML metadata, is missing or empty" msgstr "" #: input/input_vcenter_https.ml:52 input/input_libvirt.ml:107 msgid "in-place mode does not work with HTTP source" msgstr "" #: input/input_vddk.ml:146 msgid "in-place mode does not work with VDDK source" msgstr "" #: input/input_vmx.ml:43 msgid "in-place mode does not work with VMX source" msgstr "" #: input/input_xen_ssh.ml:50 msgid "in-place mode does not work with Xen over SSH source" msgstr "" #: output/output_kubevirt.ml:116 msgid "" "incorrect number of '-oo disk' parameters. This guest has %d disks, but the " "parameter was used %d times." msgstr "" #: input/input_xen_ssh.ml:119 msgid "" "input from xen over ssh does not support disks stored on remote block " "devices. See virt-v2v-input-xen(1) section \"Xen or ssh conversions from " "block devices\"." msgstr "" #. in-place/in_place.ml:397 #: v2v/v2v.ml:590 open/open.ml:238 inspector/inspector.ml:353 msgid "" "insufficient free space in the conversion server temporary directory %s " "(%s).\n" "\n" "Either free up space in that directory, or set the LIBGUESTFS_CACHEDIR " "environment variable to point to another directory with more than 1GB of " "free space.\n" "\n" "See also the virt-v2v(1) manual, section \"Minimum free space check in the " "host\"." msgstr "" #: common/mltools/tools_utils.ml:246 msgid "internal error: Not_found exception was thrown" msgstr "" #: common/mltools/tools_utils.ml:243 msgid "internal error: assertion failed at %s, line %d, char %d" msgstr "" #: common/mltools/tools_utils.ml:241 msgid "internal error: invalid argument: %s" msgstr "" #: common/mldrivers/linux.ml:128 msgid "internal error: is_file_owned: dpkg command returned no output" msgstr "" #: common/mldrivers/linux.ml:133 msgid "internal error: is_file_owned: unexpected output from dpkg command: %s" msgstr "" #: common/mldrivers/linux_bootloaders.ml:130 msgid "internal error: regular expression did not match ‘%s’" msgstr "" #: v2v/v2v.ml:548 msgid "internal error: wait returned unexpected process ID %d status \"%s\"" msgstr "" #: v2v/v2v.ml:114 inspector/inspector.ml:104 in-place/in_place.ml:111 msgid "invalid --mac ip option" msgstr "" #: v2v/v2v.ml:98 inspector/inspector.ml:88 in-place/in_place.ml:95 msgid "invalid -b/--bridge parameter" msgstr "" #: v2v/v2v.ml:90 inspector/inspector.ml:80 in-place/in_place.ml:87 msgid "invalid -n/--network parameter" msgstr "" #: input/parse_domain_from_vmx.ml:402 msgid "invalid cpuid.coresPerSocket < number of vCPUs" msgstr "" #. common/mlcustomize/customize_cmdline.ml:153 #. common/mlcustomize/customize_cmdline.ml:145 #: common/mlcustomize/customize_cmdline.ml:161 msgid "invalid format for '--%s' parameter, see the man page" msgstr "" #: common/mltools/tools_utils.ml:359 msgid "invalid format string for --machine-readable: %s" msgstr "" #: lib/utils.ml:279 msgid "invalid input filename (%s)" msgstr "" #: input/OVA.ml:445 msgid "invalid offset returned by tar: %S" msgstr "" #: common/mltools/tools_utils.ml:374 msgid "invalid output fd for --machine-readable: %s" msgstr "" #: common/mltools/tools_utils.ml:376 msgid "invalid output for --machine-readable: %s" msgstr "" #: common/mltools/tools_utils.ml:368 msgid "invalid output stream for --machine-readable: %s" msgstr "" #: common/mlcustomize/password.ml:73 msgid "invalid password selector ‘%s’; see the man page" msgstr "" #: input/OVA.ml:450 msgid "invalid size returned by tar: %S" msgstr "" #: common/mlcustomize/ssh_key.ml:45 msgid "invalid ssh-inject selector ‘%s’; see the man page" msgstr "" #: input/OVF.ml:82 msgid "invalid vmw:CoresPerSocket (%d) ignored" msgstr "" #: input/OVF.ml:88 msgid "invalid vmw:CoresPerSocket < number of cores" msgstr "" #: common/mldrivers/linux_bootloaders.ml:114 msgid "kernel %s is not under grub tree %s" msgstr "" #: common/mltools/tools_utils.ml:539 common/mltools/tools_utils.ml:458 msgid "killed by signal %d" msgstr "" #: common/mltools/tools_utils.ml:237 msgid "libguestfs error: %s" msgstr "błąd biblioteki libguestfs: %s" #: lib/libvirt_utils.ml:72 msgid "" "libvirt domain ‘%s’ is running or paused. Converting a live guest will " "result in corrupted output. However this is safe if you're converting from a " "snapshot" msgstr "" #: common/mlcustomize/customize_run.ml:47 #, fuzzy #| msgid "%s (ignored)" msgid "log file %s: %s (ignored)" msgstr "%s (zignorowane)" #: input/OVA.ml:147 msgid "" "making OVA directory public readable to work around libvirt bug https://" "bugzilla.redhat.com/1045069" msgstr "" #: input/input_ova.ml:86 msgid "manifest has a checksum for non-existent file %s (ignored)" msgstr "" #: common/mlcustomize/customize_cmdline.ml:472 msgid "md5|sha256|sha512" msgstr "" #: common/mlcustomize/customize_run.ml:119 msgid "method '%s' is no longer supported" msgstr "" #: common/mltools/JSON_parser.ml:39 msgid "missing value for the key ‘%s’" msgstr "" #: input/OVA.ml:276 msgid "more than one .ovf file was found in %s" msgstr "" #: common/mltools/JSON_parser.ml:34 msgid "more than value for the key ‘%s’" msgstr "" #: output/output_ovirt.ml:222 msgid "" "mount command failed, see earlier errors.\n" "\n" "This probably means you didn't specify the right %s path [-os %s], or else " "you need to rerun virt-v2v as root." msgstr "" #: common/mlcustomize/customize_run.ml:103 msgid "" "multiple --root-password/--password options set the password for user ‘%s’ " "twice" msgstr "" #: input/input_vddk.ml:319 msgid "" "nbdkit VDDK plugin is not installed or not working. It is required if you " "want to use VDDK.\n" "\n" "It 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 ’/%s/libvixDiskLib.so.?’.\n" "\n" "See also the virt-v2v-input-vmware(1) manual." msgstr "" #: input/input_vddk.ml:313 msgid "" "nbdkit VDDK plugin is not installed or not working. It is required if you " "want to use VDDK.\n" "\n" "The 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" "\n" "See also the virt-v2v-input-vmware(1) manual." msgstr "" #: lib/nbdkit.ml:223 msgid "nbdkit did not start up. See previous debugging messages for problems." msgstr "" #: lib/nbdkit.ml:225 msgid "" "nbdkit did not start up. There may be errors printed by nbdkit above.\n" "\n" "If the messages above are not sufficient to diagnose the problem then add " "the ‘virt-v2v -v -x’ options and examine the debugging output carefully." msgstr "" #: input/nbdkit_ssh.ml:36 input/nbdkit_curl.ml:32 input/input_vddk.ml:283 msgid "nbdkit is not installed or not working" msgstr "" #: input/input_disk.ml:92 msgid "" "nbdkit is not installed or not working. It is required to use ‘-i disk’." msgstr "" #: input/input_libvirt.ml:68 msgid "" "nbdkit is not installed or not working. It is required to use ‘-i libvirt|" "libvirtxml’." msgstr "" #: output/output.ml:178 output/output.ml:77 msgid "" "nbdkit is not installed or not working. It is required to use ‘-o disk’." msgstr "" #: output/output_null.ml:57 msgid "" "nbdkit is not installed or not working. It is required to use ‘-o null’." msgstr "" #: output/output_ovirt_upload.ml:163 msgid "" "nbdkit is not installed or not working. It is required to use ‘-o ovirt-" "upload’. See the virt-v2v-output-ovirt(1) manual." msgstr "" #: input/input_vddk.ml:285 msgid "nbdkit must be >= 1.45.11 for input from VDDK" msgstr "" #: output/output_ovirt_upload.ml:176 msgid "" "nbdkit python plugin is not installed or not working. It is required if you " "want to use ‘-o ovirt-upload’.\n" "\n" "See also the virt-v2v-output-ovirt(1) manual." msgstr "" #: output/output_ovirt_upload.ml:190 msgid "" "nbdkit was compiled without SELinux support. You will have to recompile " "nbdkit with libselinux-devel installed, or else set SELinux to Permissive " "mode while doing the conversion." msgstr "" #. input/input_libvirt.ml:76 #. input/input_disk.ml:98 #: input/nbdkit_ssh.ml:42 input/nbdkit_curl.ml:38 input/input_vddk.ml:289 msgid "nbdkit-cow-filter is not installed or not working" msgstr "" #: input/nbdkit_curl.ml:35 msgid "nbdkit-curl-plugin is not installed" msgstr "" #. input/input_disk.ml:96 #: output/output.ml:181 output/output.ml:80 input/input_libvirt.ml:72 msgid "nbdkit-file-plugin is not installed or not working" msgstr "" #: input/input_libvirt.ml:74 msgid "nbdkit-nbd-plugin is not installed or not working" msgstr "" #: output/output_null.ml:60 msgid "nbdkit-null-plugin is not installed or not working" msgstr "" #: input/nbdkit_ssh.ml:39 msgid "nbdkit-ssh-plugin is not installed" msgstr "" #: input/input_vddk.ml:287 msgid "nbdkit-vddk-plugin is not installed" msgstr "" #: lib/nbdkit.ml:56 msgid "nbdkit: unexpected version in --dump-config: %s" msgstr "" #. input/input_vcenter_https.ml:49 #. input/input_ova.ml:46 #. input/input_libvirt.ml:35 #. input/input_disk.ml:39 #: input/input_xen_ssh.ml:47 input/input_vmx.ml:40 msgid "no -io (input options) are allowed here" msgstr "" #: output/output_ovirt.ml:44 output/output_null.ml:42 #: output/output_glance.ml:44 msgid "no -oo (output options) are allowed here" msgstr "" #: input/OVA.ml:273 msgid "no .ovf file was found in %s" msgstr "" #: common/mldrivers/linux_bootloaders.ml:402 msgid "no bootloader detected" msgstr "" #: input/parse_domain_from_vmx.ml:359 msgid "no displayName key found in VMX file" msgstr "" #: input/OVF.ml:148 msgid "no href in ovf:File (id=%s)" msgstr "" #: common/mldrivers/linux_kernels.ml:194 msgid "no initrd was found in /boot matching %s %s." msgstr "" #: common/mldrivers/linux_kernels.ml:317 msgid "" "no installed kernel packages were found.\n" "\n" "This probably indicates that %s was unable to inspect this guest properly." msgstr "" #: common/mldrivers/linux_kernels.ml:354 msgid "" "no kernels were found in the bootloader configuration.\n" "\n" "This probably indicates that %s was unable to parse the bootloader " "configuration of this guest." msgstr "" #: output/python_script.ml:55 msgid "no python binary called ‘%s’ can be found on the $PATH" msgstr "" #: input/select_input.ml:106 msgid "" "no support for remote libvirt connections to '-ic %s'. The conversion may " "fail when it tries to read the source disks." msgstr "" #: lib/create_ovf.ml:1027 msgid "" "oVirt cannot emulate ‘%s’ sound cards. This sound card will be dropped from " "the output." msgstr "" #: lib/create_ovf.ml:875 lib/create_ovf.ml:512 msgid "oVirt does not support the output format ‘%s’, only raw or qcow2" msgstr "" #: output/output_openstack.ml:120 msgid "openstack: -oo server-id= not present" msgstr "" #: output/output_openstack.ml:338 msgid "" "openstack: failed to attach cinder volume to VM, see earlier error messages" msgstr "" #: output/output_openstack.ml:291 msgid "openstack: failed to create a cinder volume, see earlier error messages" msgstr "" #: output/output_openstack.ml:304 msgid "" "openstack: failed to query cinder volume status, see earlier error messages" msgstr "" #: output/output_openstack.ml:442 msgid "" "openstack: failed to set image properties on cinder volume, see earlier " "error messages" msgstr "" #: output/output_openstack.ml:199 msgid "" "openstack: precheck failed, there may be a problem with authentication, see " "earlier error messages" msgstr "" #: output/output_openstack.ml:311 msgid "" "openstack: unknown volume status \"%s\": expected \"creating\" or " "\"available\"" msgstr "" #: output/output.ml:133 msgid "output mode only supports raw or qcow2 format (format: %s)" msgstr "" #: input/OVF.ml:263 msgid "" "ova disk has an unknown VMware controller type (%d), please report this as a " "bug supplying the *.ovf file extracted from the ova" msgstr "" #: input/OVF.ml:259 msgid "" "ova disk has no parent controller, please report this as a bug supplying the " "*.ovf file extracted from the ova" msgstr "" #: output/output_ovirt_upload.ml:367 msgid "" "ovirt-upload: -of %s: Only output format ‘raw’ or ‘qcow2’ is supported. If " "the input is in a different format then force one of these output formats by " "adding either ‘-of raw’ or ‘-of qcow2’ on the command line." msgstr "" #: common/mlcustomize/password.ml:51 msgid "" "password-crypto: unknown algorithm %s, use \"md5\", \"sha256\", \"sha512\" " "or \"yescrypt\"" msgstr "" #: common/mlcustomize/password.ml:197 msgid "" "password: using insecure md5 password encryption for guest of type %s " "version %d.%d.\n" "If this is incorrect, use --password-crypto option and file a bug." msgstr "" #: common/mlcustomize/customize_run.ml:359 msgid "passwords could not be set for this type of guest" msgstr "" #: lib/qemuNBD.ml:125 msgid "" "qemu-nbd did not start up. See previous debugging messages for problems." msgstr "" #: lib/qemuNBD.ml:127 msgid "" "qemu-nbd did not start up. There may be errors printed by qemu-nbd above.\n" "\n" "If the messages above are not sufficient to diagnose the problem then add " "the ‘virt-v2v -v -x’ options and examine the debugging output carefully." msgstr "" #: lib/qemuNBD.ml:47 msgid "qemu-nbd: unexpected version in --version: %s" msgstr "" #: common/mlcustomize/customize_run.ml:77 msgid "random seed could not be set for this type of guest" msgstr "" #: input/parse_domain_from_vmx.ml:44 msgid "remote vmx ‘%s’ could not be parsed as a URI" msgstr "" #. common/mlcustomize/inject_virtio_win.ml:357 #. common/mlcustomize/inject_virtio_win.ml:352 #: common/mlcustomize/inject_virtio_win.ml:362 msgid "" "root directory ‘/’ is missing from the virtio-win directory or ISO.\n" "\n" "This should not happen and may indicate that virtio-win or virt-v2v is " "broken in some way. Please report this as a bug with a full debug log." msgstr "" #: common/mltools/tools_utils.ml:417 common/options/keys.c:264 #, c-format msgid "selector '%s': invalid TYPE" msgstr "" #: common/mltools/tools_utils.ml:409 common/options/keys.c:254 #, c-format msgid "selector '%s': missing FILENAME, or too many fields" msgstr "" #: common/mltools/tools_utils.ml:399 common/options/keys.c:232 #, c-format msgid "selector '%s': missing ID" msgstr "" #: common/mltools/tools_utils.ml:404 common/options/keys.c:245 #, c-format msgid "selector '%s': missing KEY_STRING, or too many fields" msgstr "" #: common/mltools/tools_utils.ml:401 common/options/keys.c:239 #, c-format msgid "selector '%s': missing TYPE" msgstr "" #: common/mltools/tools_utils.ml:413 common/options/keys.c:262 #, c-format msgid "selector '%s': too many fields" msgstr "" #: lib/utils.ml:35 msgid "signalled by signal %d" msgstr "" #: common/mlcustomize/guest_packages.ml:40 msgid "" "sorry, ‘%s’ with the ‘%s’ package manager has not been implemented yet.\n" "\n" "You can work around this by using one of the ‘--run*’ or ‘--firstboot*’ " "options instead (described in the virt-customize(1) manual)." msgstr "" #: common/mlcustomize/ssh_key.ml:57 msgid "ssh-inject: $HOME environment variable is not set" msgstr "" #: common/mlcustomize/ssh_key.ml:93 msgid "ssh-inject: key is an empty string" msgstr "" #: common/mlcustomize/ssh_key.ml:66 msgid "ssh-inject: no public key file found in %s" msgstr "" #: common/mlcustomize/ssh_key.ml:83 msgid "ssh-inject: public key file (%s) is empty" msgstr "" #: common/mlcustomize/ssh_key.ml:112 msgid "ssh-inject: the user %s does not exist on the guest" msgstr "" #. common/mltools/tools_utils.ml:461 #: lib/utils.ml:36 common/mltools/tools_utils.ml:542 msgid "stopped by signal %d" msgstr "" #: output/changeuid.ml:58 msgid "subprocess exited with non-zero error code %d" msgstr "" #: output/changeuid.ml:60 msgid "subprocess signalled or stopped by signal %d" msgstr "" #: lib/utils.ml:33 msgid "success" msgstr "" #: output/create_libvirt_xml.ml:297 msgid "" "target hypervisor does not support floppy devices, but floppy devices were " "found in the source guest" msgstr "" #: output/output_ovirt_upload.ml:156 msgid "" "the Python module ‘ovirtsdk4’ could not be loaded, is it installed? See " "previous messages for problems." msgstr "" #: output/output_ovirt_upload.ml:453 msgid "the cluster ‘%s’ does not support the architecture %s but %s" msgstr "" #: common/mlcustomize/customize_run.ml:59 msgid "" "the command may have failed because the network is disabled. Try either " "removing ‘--no-network’ or adding ‘--network’ on the command line." msgstr "" #: common/mltools/JSON_parser.ml:84 msgid "the key ‘%s’ was not found in a list of objects" msgstr "" #: output/output_ovirt_upload.ml:288 msgid "" "the number of ‘-oo ovirt-disk-uuid’ parameters passed on the command line " "has to match the number of guest disk images (for this guest: %d)" msgstr "" #: output/output_vdsm.ml:133 msgid "" "the number of ‘-oo vdsm-image-uuid’ and ‘-oo vdsm-vol-uuid’ parameters " "passed on the command line has to match the number of guest disk images (for " "this guest: %d)" msgstr "" #: output/output_libvirt.ml:239 msgid "the target hypervisor does not support a %s KVM guest" msgstr "" #: common/mltools/JSON_parser.ml:78 msgid "the value for key ‘%s’ is not a string as expected" msgstr "" #: common/mltools/JSON_parser.ml:50 msgid "the value for the key ‘%s’ is not a bool" msgstr "" #: common/mltools/JSON_parser.ml:45 msgid "the value for the key ‘%s’ is not a string" msgstr "" #: common/mltools/JSON_parser.ml:70 msgid "the value for the key ‘%s’ is not an integer" msgstr "" #: common/mltools/JSON_parser.ml:55 msgid "the value for the key ‘%s’ is not an object" msgstr "" #: common/mltools/JSON_parser.ml:59 msgid "the value is not an object" msgstr "" #: common/mltools/JSON_parser.ml:35 msgid "the value of the key ‘%s’ is not an object" msgstr "" #: lib/create_ovf.ml:519 msgid "" "the virtual size of the input disk %d is not an exact multiple of 512 " "bytes. The virtual size is: %Ld.\n" "\n" "This probably means something unexpected is going on, so please file a bug " "about this issue." msgstr "" #: output/output_openstack.ml:144 msgid "" "the ‘%s’ program is not available. It is needed to communicate with " "OpenStack." msgstr "" #: output/output_ovirt.ml:265 msgid "" "there are multiple UUIDs in the %s (%s). This is unexpected, and may be a " "bug in virt-v2v or OVirt." msgstr "" #: output/output_ovirt.ml:262 msgid "there are no UUIDs in the %s (%s). Is it really an OVirt %s?" msgstr "" #: common/mlcustomize/inject_virtio_win.ml:153 msgid "" "there are no virtio drivers available for this version of Windows (%d.%d %s " "%s %s). virt-v2v looks for drivers in %s\n" "\n" "The guest will be configured to use slower emulated devices." msgstr "" #: common/mlcustomize/inject_virtio_win.ml:175 msgid "" "there is no virtio block device driver for this version of Windows (%d.%d " "%s). virt-v2v looks for this driver in %s\n" "\n" "The guest will be configured to use a slower emulated device." msgstr "" #: common/mlcustomize/inject_virtio_win.ml:206 msgid "" "there is no virtio network driver for this version of Windows (%d.%d %s). " "virt-v2v looks for this driver in %s\n" "\n" "The guest will be configured to use a slower emulated device." msgstr "" #: input/parse_libvirt_xml.ml:545 msgid "this guest has a direct network interface which will be ignored" msgid_plural "this guest has direct network interfaces which will be ignored" msgstr[0] "" msgstr[1] "" msgstr[2] "" #: input/parse_libvirt_xml.ml:527 msgid "this guest has a passthrough host device which will be ignored" msgid_plural "this guest has passthrough host devices which will be ignored" msgstr[0] "" msgstr[1] "" msgstr[2] "" #: input/parse_libvirt_xml.ml:248 msgid "this guest has no non-removable disks" msgstr "" #: output/output.ml:65 msgid "this output module doesn't support copying more than %d disks" msgstr "" #: common/mlcustomize/timezone.ml:35 msgid "timezone '%s' does not exist, use a location like 'Europe/London'" msgstr "" #: common/mlcustomize/customize_run.ml:304 msgid "timezone could not be set for this type of guest" msgstr "" #: input/OVA.ml:318 msgid "unable to parse line from manifest file: %S" msgstr "" #: common/mltools/urandom.ml:37 msgid "unexpected end of file while reading /dev/urandom" msgstr "" #: input/input_libvirt.ml:196 msgid "unexpected output from the %s command" msgstr "" #: common/mltools/checksums.ml:58 msgid "unhandled checksum type ‘%s’" msgstr "" #: lib/types.ml:524 msgid "unknown --root option: %s" msgstr "nieznana opcja --root: %s" #: input/select_input.ml:51 msgid "unknown -i option: %s" msgstr "nieznana opcja -i: %s" #: output/select_output.ml:74 msgid "unknown -o option: %s" msgstr "nieznana opcja -o: %s" #: v2v/v2v.ml:164 msgid "unknown -oa option: %s" msgstr "nieznana opcja -oa: %s" #: input/input_libvirt.ml:189 msgid "unknown method='%s'" msgstr "" #: input/OVF.ml:103 msgid "unknown Config:firmware value %s (expected \"bios\" or \"efi\")" msgstr "" #: lib/create_ovf.ml:446 lib/create_ovf.ml:247 msgid "unknown Windows 10 variant: %s (%s)" msgstr "" #: v2v/v2v.ml:319 in-place/in_place.ml:256 msgid "unknown block driver ‘--block-driver %s’" msgstr "" #: input/parse_domain_from_vmx.ml:415 msgid "unknown firmware value '%s', assuming BIOS" msgstr "" #: lib/create_ovf.ml:454 lib/create_ovf.ml:255 msgid "unknown guest operating system: %s %s %d.%d %s (%s)" msgstr "" #: v2v/v2v.ml:329 open/open.ml:132 inspector/inspector.ml:238 msgid "unknown input transport ‘-it %s’" msgstr "" #: input/parse_domain_from_vmx.ml:428 msgid "unknown sound device '%s' ignored" msgstr "" #: input/parse_libvirt_xml.ml:215 msgid "unknown sound model %s ignored" msgstr "" #: input/OVF.ml:156 msgid "unsupported compression in OVF: %s" msgstr "" #: input/input_vcenter_https.ml:123 msgid "" "vcenter: was not found in the XML. You need to " "upgrade to libvirt ≥ 1.2.20." msgstr "" #: input/vCenter.ml:79 msgid "vcenter: URL not found: %s" msgstr "" #: input/vCenter.ml:70 msgid "vcenter: incorrect username or password" msgstr "" #: input/vCenter.ml:72 msgid "" "vcenter: incorrect username or password. You might need to specify the " "username in the URI like this: [vpx|esx|..]://USERNAME@[etc]" msgstr "" #: input/vCenter.ml:84 msgid "vcenter: invalid response from server: %s" msgstr "" #: input/vCenter.ml:194 msgid "vcenter: no status code in output of ‘curl’ command." msgstr "" #: output/output_vdsm.ml:148 msgid "vdsm: invalid -os parameter does not contain a valid UUID: %s" msgstr "" #: output/output_openstack.ml:56 msgid "" "virt-v2v -oo server-id= [os-*=...]\n" "\n" "Specify the name or UUID of the conversion appliance using\n" "\n" " virt-v2v ... -o openstack -oo server-id=\n" "\n" "When virt-v2v runs it will attach the Cinder volumes to the\n" "conversion appliance, so this name or UUID must be the name\n" "of the virtual machine on OpenStack where virt-v2v is running.\n" "\n" "In addition, all usual OpenStack “os-*” parameters or “OS_*”\n" "environment variables can be used.\n" "\n" "Openstack “--os-*” parameters must be written as “virt-v2v -oo os-*”.\n" "\n" "For example:\n" "\n" " virt-v2v -oo os-username=\n" "\n" " equivalent to openstack: --os-username=\n" " or the environment variable: OS_USERNAME=\n" "\n" " virt-v2v -oo os-project-name=\n" "\n" " equivalent to openstack: --os-project-name=\n" " or the environment variable: OS_PROJECT_NAME=\n" "\n" "The os-* parameters and environment variables are optional.\n" msgstr "" #: input/parse_libvirt_xml.ml:189 msgid "" "virt-v2v does not support local displays, so in the " "input libvirt XML was ignored" msgstr "" #: input/select_input.ml:83 msgid "virt-v2v-in-place does not support remote libvirt URIs" msgstr "" #: input/parse_domain_from_vmx.ml:50 msgid "vmx URI path component looks incorrect" msgstr "" #: input/parse_domain_from_vmx.ml:48 msgid "vmx URI remote server name omitted" msgstr "" #: input/parse_domain_from_vmx.ml:46 msgid "vmx URI start with ‘ssh://...’" msgstr "" #: input/VMX.ml:313 msgid "vmx parser: cannot parse this line, ignoring: %s" msgstr "" #: input/VMX.ml:346 msgid "vmx parser: duplicate key '%s' ignored" msgstr "" #: output/output_openstack.ml:299 msgid "wait for cinder volume status to change to \"available\"" msgstr "" #: output/output_openstack.ml:360 msgid "waiting for cinder volume %s to attach to the conversion appliance" msgstr "" #: open/open.ml:136 msgid "you must supply the --run parameter" msgstr "" #: input/input_xen_ssh.ml:87 input/input_vddk.ml:189 msgid "‘-ic %s’ URL does not contain a host name field" msgstr "" #: input/input_vddk.ml:273 msgid "‘-io vddk-file=’ must be used exactly %d times" msgstr "" #: input/input_vddk.ml:297 msgid "" "‘-io vddk-libdir=%s’ does not point to a directory. See the virt-v2v-input-" "vmware(1) manual." msgstr "" #: output/output.ml:85 msgid "" "‘-oo compressed’ is only allowed when the output format is a local qcow2-" "format file, i.e. ‘-of qcow2’" msgstr "" #: input/input_vddk.ml:232 msgid "" "‘openssl’ command not found: automatically detecting thumbprint is not " "possible, so you must use ‘-io vddk-thumbprint=XX:XX...’" msgstr "" #: common/mltools/getopt-c.c:68 #, c-format msgid "Try ‘%s --help’ or consult %s(1) for more information.\n" msgstr "" #: common/mltools/getopt-c.c:187 #, c-format msgid "%s: ‘%s’ is not a numeric value.\n" msgstr "" #: common/mltools/getopt-c.c:193 #, c-format msgid "%s: %s: integer out of range\n" msgstr "%s: %s: liczba całkowita spoza zakresu\n" #: common/mltools/getopt-c.c:383 #, c-format msgid "%s: ‘%s’ is not allowed for -%c; allowed values are:\n" msgstr "" #: common/mltools/getopt-c.c:386 #, c-format msgid "%s: ‘%s’ is not allowed for %s%s; allowed values are:\n" msgstr "" #: common/mltools/getopt-c.c:421 #, c-format msgid "Extra parameter on the command line: ‘%s’.\n" msgstr "" #: common/options/config.c:72 #, c-format msgid "%s: line %d: error parsing configuration file: %s" msgstr "%s: %d. wiersz: błąd podczas przetwarzania pliku konfiguracji: %s" #: common/options/decrypt.c:52 #, c-format msgid "string size overflow" msgstr "" #: common/options/decrypt.c:170 #, c-format msgid "" "'clevis_luks_unlock', needed for decrypting %s, is unavailable in this " "libguestfs version" msgstr "" #: common/options/decrypt.c:184 #, c-format msgid "" "could not find key to open LUKS encrypted %s.\n" "\n" "Try using --key on the command line.\n" "\n" "Original error: %s (%d)" msgstr "" #: common/options/inspect.c:78 #, c-format msgid "" "%s: no operating system was found on this disk\n" "\n" "If using guestfish ‘-i’ option, remove this option and instead\n" "use the commands ‘run’ followed by ‘list-filesystems’.\n" "You can then mount filesystems you want by hand using the\n" "‘mount’ or ‘mount-ro’ command.\n" "\n" "If using guestmount ‘-i’, remove this option and choose the\n" "filesystem(s) you want to see by manually adding ‘-m’ option(s).\n" "Use ‘virt-filesystems’ to see what filesystems are available.\n" "\n" "If using other virt tools, this disk image won’t work\n" "with these tools. Use the guestfish equivalent commands\n" "(see the virt tool manual page).\n" msgstr "" #: common/options/inspect.c:99 #, c-format msgid "" "%s: multi-boot operating systems are not supported\n" "\n" "If using guestfish ‘-i’ option, remove this option and instead\n" "use the commands ‘run’ followed by ‘list-filesystems’.\n" "You can then mount filesystems you want by hand using the\n" "‘mount’ or ‘mount-ro’ command.\n" "\n" "If using guestmount ‘-i’, remove this option and choose the\n" "filesystem(s) you want to see by manually adding ‘-m’ option(s).\n" "Use ‘virt-filesystems’ to see what filesystems are available.\n" "\n" "If using other virt tools, multi-boot operating systems won’t work\n" "with these tools. Use the guestfish equivalent commands\n" "(see the virt tool manual page).\n" msgstr "" #: common/options/inspect.c:161 #, c-format msgid "%s: some filesystems could not be mounted (ignored)\n" msgstr "%s: nie można zamontować niektórych systemów plików (zignorowano)\n" #: common/options/inspect.c:178 #, c-format msgid "Operating system: %s\n" msgstr "System operacyjny: %s\n" #: common/options/inspect.c:196 #, c-format msgid "%s mounted on %s\n" msgstr "%s zamontowano w %s\n" #: common/options/keys.c:63 #, c-format msgid "Enter key or passphrase (\"%s\"): " msgstr "Proszę podać klucz lub hasło („%s”): " #: common/options/keys.c:146 #, c-format msgid "size_t overflow" msgstr "" #: common/options/keys.c:193 #, c-format msgid "could not read key from user" msgstr "nie można odczytać klucza od użytkownika" #: common/options/options.c:283 #, c-format msgid "%s: ‘%s’ could not be mounted.\n" msgstr "" #: common/options/options.c:287 #, c-format msgid "" "%s: Check mount(8) man page to ensure options ‘%s’\n" "%s: are supported by the filesystem that is being mounted.\n" msgstr "" #: common/options/options.c:291 #, c-format msgid "%s: Did you mean to mount one of these filesystems?\n" msgstr "" #: common/options/options.c:304 #, c-format msgid "cannot determine the subvolume for %s: %s (%d)" msgstr "" #: common/options/uri.c:119 #, c-format msgid "%s: --add: could not parse URI ‘%s’\n" msgstr "" #: common/options/uri.c:130 #, c-format msgid "%s: %s: scheme of URI is NULL or empty\n" msgstr "" #: common/options/uri.c:138 #, c-format msgid "%s: %s: cannot have both a server name and a socket query parameter\n" msgstr "" #: common/utils/utils.c:107 #, c-format msgid "%s exited successfully" msgstr "" #: common/utils/utils.c:110 #, c-format msgid "%s exited with error status %d" msgstr "" #: common/utils/utils.c:114 #, c-format msgid "%s killed by signal %d (%s)" msgstr "" #: common/utils/utils.c:118 #, c-format msgid "%s stopped by signal %d (%s)" msgstr "" #: common/utils/utils.c:122 #, c-format msgid "%s exited for an unknown reason (status %d)" msgstr "" #~ msgid "package ‘%s’ contains no files" #~ msgstr "pakiet „%s” nie zawiera plików" ================================================ FILE: po/pt_BR.po ================================================ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR Red Hat Inc. # This file is distributed under the same license as the virt-v2v package. # FIRST AUTHOR , YEAR. # msgid "" msgstr "" "Project-Id-Version: virt-v2v 2.7.7\n" "Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?" "component=libguestfs&product=Virtualization+Tools\n" "POT-Creation-Date: 2025-02-16 17:05+0000\n" "PO-Revision-Date: 2026-03-01 09:36+0000\n" "Last-Translator: Rafael Fontenelle \n" "Language-Team: Portuguese (Brazil) \n" "Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" "X-Generator: Weblate 5.16.1\n" #: input/input_ova.ml:135 common/mltools/tools_utils.ml:235 msgid "%s" msgstr "%s" #: common/mltools/getopt.ml:73 msgid "" "%s\n" "Options:\n" msgstr "" "%s\n" "Opções:\n" #: common/mltools/tools_utils.ml:695 common/mlcustomize/customize_run.ml:390 msgid "%s (ignored)" msgstr "%s (ignorado)" #: common/mltools/checksums.ml:71 msgid "%s did not return any output" msgstr "%s não retornou qualquer saída" #: common/mlcustomize/customize_run.ml:183 msgid "%s does not exist in the guest" msgstr "%s não existe no convidado" #: output/output_ovirt.ml:275 msgid "" "%s does not exist or is not a directory.\n" "\n" "Most likely cause: Either the %s (%s) has not been attached to any Data " "Center, or the path %s is not an %s at all.\n" "\n" "You have to attach the %s to a Data Center using the oVirt user interface " "first.\n" "\n" "If you don’t know what the %s mount point should be then you can also find " "this out through the oVirt user interface." msgstr "" "%s não existe ou não é um diretório.\n" "\n" "Causa mais provável: Ou %s (%s) não foi associado a nenhum Data Center, ou o " "caminho %s não é um %s.\n" "\n" "Você precisa associar %s a um Data Center usando a interface do usuário do " "oVirt primeiro.\n" "\n" "Se você não souber qual deve ser o ponto de montagem de %s, também poderá " "descobrir isso através da interface do usuário do oVirt." #: common/mlcustomize/customize_run.ml:113 msgid "%s ignored for non-Windows guest" msgstr "%s ignorado para convidados não-Windows" #: common/mlcustomize/customize_run.ml:186 msgid "%s is not a regular file in the guest" msgstr "%s não é um arquivo regular no convidado" #. open/open.ml:39 #. inspector/inspector.ml:153 #. inspector/inspector.ml:40 #. in-place/in_place.ml:164 #. in-place/in_place.ml:45 #: v2v/v2v.ml:194 v2v/v2v.ml:183 v2v/v2v.ml:159 v2v/v2v.ml:44 open/open.ml:68 msgid "%s option used more than once on the command line" msgstr "Opção %s usada mais de uma vez na linha de comando" #: common/mltools/tools_utils.ml:231 common/mltools/tools_utils.ml:202 msgid "%s: %s" msgstr "%s: %s" #: common/mltools/tools_utils.ml:233 msgid "%s: %s: %s" msgstr "%s: %s: %s" #: common/mltools/on_exit.ml:77 msgid "" "%s: Exiting on signal %s\n" "%!" msgstr "" "%s: Saindo com o sinal %s\n" "%!" #: common/mlcustomize/inject_virtio_win.ml:411 msgid "%s: cannot open virtio-win ISO file: %s" msgstr "%s: não é possível abrir arquivo ISO virtio-win: %s" #: common/mlcustomize/customize_run.ml:64 msgid "%s: command exited with an error" msgstr "%s: o comando foi encerrado com um erro" #: v2v/v2v.ml:277 msgid "" "%s: convert a guest to use KVM\n" "\n" "virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi -os imported " "esx_guest\n" "\n" "virt-v2v -i libvirtxml guest-domain.xml -o local -os /var/tmp\n" "\n" "virt-v2v -i disk disk.img -o local -os /var/tmp\n" "\n" "There is a companion front-end called \"virt-p2v\" which comes as an\n" "ISO or CD image that can be booted on physical machines.\n" "\n" "A short summary of the options is given below. For detailed help please\n" "read the man page virt-v2v(1).\n" msgstr "" "%s: converte um convidado para usar KVM\n" "\n" "virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi -os imported " "esx_guest\n" "\n" "virt-v2v -i libvirtxml guest-domain.xml -o local -os /var/tmp\n" "\n" "virt-v2v -i disk disk.img -o local -os /var/tmp\n" "\n" "Existe uma interface complementar chamada \"virt-p2v\", que é fornecida " "como\n" "uma imagem ISO ou de CD que pode ser inicializada em máquinas físicas.\n" "\n" "Um breve resumo das opções é fornecido abaixo. Para obter ajuda detalhada,\n" "consulte a página man virt-v2v(1).\n" #: in-place/in_place.ml:217 msgid "" "%s: convert a guest to use KVM in-place\n" "\n" "Note this program modifies the guest in-place with no backup.\n" "Normally you should use virt-v2v.\n" "\n" "virt-v2v-in-place -i libvirtxml guest-domain.xml\n" "\n" "virt-v2v-in-place -i disk disk.img\n" "\n" "A short summary of the options is given below. For detailed help please\n" "read the man page virt-v2v-in-place(1).\n" msgstr "" "%s: converte um convidado para usar KVM in-place\n" "\n" "Observe que este programa modifica o convidado in-place sem backup.\n" "Normalmente, você deve usar o virt-v2v.\n" "\n" "virt-v2v-in-place -i libvirtxml guest-domain.xml\n" "\n" "virt-v2v-in-place -i disk disk.img\n" "\n" "Um breve resumo das opções é fornecido abaixo. Para uma ajuda detalhada,\n" "consulte a página man virt-v2v-in-place(1).\n" #: input/input_vddk.ml:207 msgid "%s: enter password for ‘%s’: " msgstr "%s: insira a senha de ‘%s’: " #: common/mltools/tools_utils.ml:172 msgid "%s: error: %s" msgstr "%s: erro: %s" #: inspector/inspector.ml:198 msgid "" "%s: estimate disk space needed before virt-v2v conversion\n" "\n" "virt-v2v-inspector -i disk disk.img [-O output.xml]\n" "\n" "A short summary of the options is given below. For detailed help please\n" "read the man page virt-v2v-inspector(1).\n" msgstr "" "%s: estima o espaço em disco necessário antes da conversão virt-v2v\n" "\n" "virt-v2v-inspector -i disk disk.img [-O output.xml]\n" "\n" "Um breve resumo das opções é fornecido abaixo. Para uma ajuda detalhada,\n" "consulte a página man virt-v2v-inspector(1).\n" #: open/open.ml:94 msgid "" "%s: open the virt-v2v input and run a program on it\n" "\n" "virt-v2v-open -i disk disk.img --run 'virt-inspector --format=raw @@'\n" "\n" "A short summary of the options is given below. For detailed help please\n" "read the man page virt-v2v-open(1).\n" msgstr "" "%s: abre a entrada de virt-v2v e executa um programa nela\n" "\n" "virt-v2v-open -i disk disk.img --run 'virt-inspector --format=raw @@'\n" "\n" "Um breve resumo das opções é fornecido abaixo. Para uma ajuda detalhada,\n" "consulte a página man virt-v2v-open(1).\n" #: common/mltools/tools_utils.ml:726 msgid "%s: operation timed out" msgstr "%s: a operação expirou" #: input/OVA.ml:127 input/OVA.ml:121 msgid "" "%s: unsupported file format\n" "\n" "Formats which we currently understand for '-i ova' are: tar (uncompressed, " "compress with gzip or xz), zip" msgstr "" "%s: formato de arquivo sem suporte\n" "\n" "Os formatos que atualmente reconhecemos para '-i ova' são: tar " "(descompactado, compactado com gzip ou xz), zip" #: common/mltools/tools_utils.ml:191 msgid "%s: warning: %s" msgstr "%s: aviso: %s" #. common/mlcustomize/customize_cmdline.ml:258 #: common/mlcustomize/customize_cmdline.ml:367 msgid "'CMD+ARGS'" msgstr "'CMD+ARGS'" #: common/mlcustomize/customize_run.ml:133 msgid "" "--append-line: line must not contain newline characters. Use the --append-" "line option multiple times to add several lines." msgstr "" "--append-line: a linha não deve conter caracteres de nova linha. Use a opção " "--append-line várias vezes para adicionar várias linhas." #: common/mlcustomize/customize_run.ml:152 msgid "--chown: could not parse numeric UID:GID from %s:%s" msgstr "--chown: não foi possível analisar o UID:GID numérico de %s:%s" #: common/mlcustomize/customize_run.ml:216 msgid "" "--inject-blnsvr: blnsvr.exe not found in virtio-win source that you specified" msgstr "" "--inject-blnsvr: blnsvr.exe não encontrado na origem de virtio-win " "especificada" #: common/mlcustomize/customize_run.ml:225 msgid "" "--inject-qemu-ga: QEMU Guest Agent MSI not found in virtio-win source that " "you specified" msgstr "" "--inject-qemu-ga: O MSI do QEMU Guest Agent não foi encontrado na origem de " "virtio-win especificada" #: common/mlcustomize/customize_run.ml:241 msgid "" "--inject-virtio-win: virtio drivers were not found for this Windows version " "in the virtio-win source that you specified" msgstr "" "--inject-virtio-win: os drivers virtio não foram encontrados para esta " "versão do Windows na origem de virtio-win especificada" #: v2v/v2v.ml:146 inspector/inspector.ml:136 in-place/in_place.ml:143 msgid "--mac ip prefix length field is out of range" msgstr "" "o campo de comprimento do prefixo IP da opção --mac está fora do intervalo" #: v2v/v2v.ml:340 msgid "--parallel parameter must be >= 1" msgstr "o parâmetro --parallel deve ser >= 1" #: input/input_disk.ml:42 msgid "-i disk: expecting a disk image (filename) on the command line" msgstr "" "-i disk: esperava uma imagem de disco (nome de arquivo) na linha de comando" #: input/input_xen_ssh.ml:65 msgid "-i libvirt: expecting -ic parameter for Xen over SSH connection" msgstr "-i libvirt: esperava o parâmetro -ic para conexão Xen via SSH" #: input/input_vddk.ml:142 input/input_vcenter_https.ml:88 msgid "-i libvirt: expecting -ic parameter for vcenter connection" msgstr "-i libvirt: esperava o parâmetro -ic para conexão com vcenter" #: input/input_vcenter_https.ml:101 msgid "-i libvirt: expecting -ic parameter to contain vcenter server name" msgstr "" "-i libvirt: esperava que o parâmetro -ic contenha o nome do servidor vcenter" #: input/input_vcenter_https.ml:78 msgid "-i libvirt: expecting -ip passwordfile parameter for vCenter connection" msgstr "" "-i libvirt: esperava o parâmetro -ip passwordfile para conexão com o vCenter" #. input/input_vcenter_https.ml:70 #. input/input_libvirt.ml:41 #: input/input_xen_ssh.ml:57 input/input_vddk.ml:132 msgid "-i libvirt: expecting a libvirt guest name on the command line" msgstr "-i libvirt: esperava um nome de convidado libvirt na linha de comando" #: input/input_libvirt.ml:59 msgid "-i libvirtxml: expecting a libvirt XML filename on the command line" msgstr "" "-i libvirtxml: esperava um nome de arquivo XML do libvirt na linha de comando" #: input/input_ova.ml:243 msgid "-i ova: OVF references file ‘%s’ which was not found in the OVA archive" msgstr "" "-i ova: OVF faz referência ao arquivo ‘%s’, que não foi encontrado no " "arquivo OVA" #: input/input_ova.ml:78 msgid "" "-i ova: corrupt OVA: checksum of disk %s does not match manifest (actual = " "%s, expected = %s)" msgstr "" "-i ova: OVA corrompido: a soma de verificação do disco %s não corresponde ao " "manifesto (real = %s, esperado = %s)" #: input/input_ova.ml:52 msgid "-i ova: expecting an OVA file name on the command line" msgstr "-i ova: esperava um nome de arquivo OVA na linha de comando" #: input/OVA.ml:361 msgid "" "-i ova: invalid OVA file: path ‘%s’ references a file outside the archive" msgstr "" "-i ova: arquivo OVA inválido: o caminho ‘%s’ faz referência a um arquivo " "fora do arquivo" #: input/input_vmx.ml:57 msgid "-i vmx: cannot use -it vddk in this input mode" msgstr "-i vmx: não é possível usar -it vddk neste modo de entrada" #: input/input_vmx.ml:60 msgid "-i vmx: expecting a VMX file or ssh:// URI" msgstr "-i vmx: esperava um arquivo VMX ou URI ssh://" #: input/vCenter.ml:159 msgid "" "-ip PASSWORD_FILE parameter ignored because 'user@' was not given in the URL" msgstr "" "parâmetro -ip PASSWORD_FILE foi ignorado porque 'user@' não foi fornecido na " "URL" #: input/input_vddk.ml:119 msgid "-it vddk: ‘-io %s’ is not a valid input option" msgstr "-it vddk: ‘-io %s’ não é uma opção de entrada válida" #: output/output.ml:54 msgid "-o %s: %s option cannot be used in this output mode" msgstr "-o %s: a opção %s não pode ser usada neste modo de saída" #: output/output_disk.ml:66 msgid "-o disk: output directory was not specified, use '-os /dir'" msgstr "-o disk: diretório de saída não foi especificado, use '-os /dir'" #: output/output_libvirt.ml:59 output/output_disk.ml:56 msgid "-o disk: unknown output option ‘-oo %s’" msgstr "-o disk: opção de saída desconhecida ‘-oo %s’" #: output/output_kubevirt.ml:81 msgid "-o kubevirt: output directory was not specified, use '-os /dir'" msgstr "-o kubevirt: o diretório de saída não foi especificado, use '-os /dir'" #: output/output_kubevirt.ml:91 msgid "" "-o kubevirt: the guest name must contain only lowercase alphanumeric " "characters, '-' or '.', and must start and end with an alphanumeric " "character. Rerun virt-v2v with the '-on name' option to rename it." msgstr "" "-o kubevirt: o nome do convidado deve conter apenas caracteres alfanuméricos " "minúsculos, '-' or '.' e deve iniciar e terminar com um caractere " "alfanumérico. Execute novamente virt-v2v com a opção '-on name' para renomeá-" "la." #: output/output_kubevirt.ml:71 msgid "-o kubevirt: unknown output option ‘-oo %s’" msgstr "-o kubevirt: opção de saída desconhecida ‘-oo %s’" #: output/output_libvirt.ml:120 msgid "" "-o libvirt: output pool ‘%s’ does not have /pool/target/path element. See " "virt-v2v-output-local(1)" msgstr "" "-o libvirt: o pool de saída ‘%s’ não tem o elemento /pool/target/path. " "Consulte virt-v2v-output-local(1)" #: output/output_libvirt.ml:124 msgid "" "-o libvirt: output pool ‘%s’ has type='dir' but the /pool/target/path " "element is not a local directory. See virt-v2v-output-local(1)" msgstr "" "-o libvirt: o pool de saída ‘%s’ tem type='dir', mas o elemento /pool/target/" "path não é um diretório local. Consulte virt-v2v-output-local(1)" #: output/output_libvirt.ml:116 msgid "" "-o libvirt: output pool ‘%s’ is not a directory (type='dir'). See virt-v2v-" "output-local(1)" msgstr "" "-o libvirt: o pool de saída ‘%s’ não é um diretório (type='dir'). Consulte " "virt-v2v-output-local(1)" #: output/output_openstack.ml:88 msgid "-o openstack mode only supports -oa sparse -of raw" msgstr "o modo -o openstack só é compatível com -oa sparse -of raw" #: output/output_openstack.ml:115 msgid "-o openstack: unknown output option ‘-oo %s’" msgstr "-o openstack: opção de saída desconhecida ‘-oo %s’" #: output/output_ovirt_upload.ml:97 msgid "-o ovirt-upload: -oo ovirt-cafile set more than once" msgstr "-o ovirt-upload: -oo ovirt-cafile definido mais de uma vez" #: output/output_ovirt_upload.ml:101 msgid "-o ovirt-upload: -oo ovirt-cluster set more than once" msgstr "-o ovirt-upload: -oo ovirt-cluster definido mais de uma vez" #: output/output_ovirt_upload.ml:112 msgid "-o ovirt-upload: invalid UUID for -oo ovirt-disk-uuid" msgstr "-o ovirt-upload: UUID inválido para -oo ovirt-disk-uuid" #: output/output_ovirt_upload.ml:76 msgid "" "-o ovirt-upload: output password file was not specified, use ‘-op’ to point " "to a file which contains the password used to connect to the oVirt server" msgstr "" "-o ovirt-upload: um arquivo de senha de saída não foi especificado; use '-" "op' para indicar um arquivo que contenha a senha usada para conectar ao " "servidor oVirt" #: output/output_ovirt_upload.ml:83 msgid "-o ovirt-upload: output storage was not specified, use ‘-os’" msgstr "" "-o ovirt-upload: o armazenamento de saída não foi especificado, use ‘-os’" #: output/output_ovirt_upload.ml:116 msgid "-o ovirt-upload: unknown output option ‘-oo %s’" msgstr "-o ovirt-upload: opção de saída desconhecida ‘-oo %s’" #: output/output_ovirt_upload.ml:68 msgid "" "-o ovirt-upload: use ‘-oc’ to point to the oVirt server REST API URL, which " "is usually https://servername/ovirt-engine/api" msgstr "" "-o ovirt-upload: use ‘-oc’ para apontar para a URL da API REST do servidor " "oVirt, que geralmente é https://servername/ovirt-engine/api" #: output/output_ovirt.ml:51 msgid "-o ovirt: -os option was not specified" msgstr "-o ovirt: a opção -os não foi especificada" #: output/output_qemu.ml:72 msgid "-o qemu: output directory was not specified, use '-os /dir'" msgstr "-o qemu: o diretório de saída não foi especificado, use '-os /dir'" #: output/output_qemu.ml:63 msgid "-o qemu: unknown output option ‘-oo %s’" msgstr "-o qemu: opção de saída desconhecida ‘-oo %s’" #: output/output_vdsm.ml:102 msgid "-o vdsm: -oo vdsm-image-uuid was not specified" msgstr "-o vdsm: -oo vdsm-image-uuid não foi especificado" #: output/output_vdsm.ml:81 msgid "-o vdsm: -oo vdsm-ovf-output set more than once" msgstr "-o vdsm: -oo vdsm-ovf-output definido mais de uma vez" #: output/output_vdsm.ml:77 msgid "-o vdsm: -oo vdsm-vm-uuid set more than once" msgstr "-o vdsm: -oo vdsm-vm-uuid definido mais de uma vez" #: output/output_vdsm.ml:110 msgid "-o vdsm: -os option was not specified" msgstr "-o vdsm: a opção -os não foi especificada" #: output/output_vdsm.ml:97 msgid "-o vdsm: either -oo vdsm-vol-uuid or -oo vdsm-vm-uuid was not specified" msgstr "-o vdsm: não foi especificado -oo vdsm-vol-uuid ou -oo vdsm-vm-uuid" #: output/output_vdsm.ml:90 msgid "-o vdsm: unknown output option ‘-oo %s’" msgstr "-o vdsm: opção de saída desconhecida ‘-oo %s’" #: output/output_vdsm.ml:74 msgid "-o vdsm: unknown vdsm-compat level ‘%s’" msgstr "-o vdsm: nível de compatibilidade vdsm desconhecido ‘%s’" #. output/output_kubevirt.ml:84 #. output/output_disk.ml:68 #: output/output_vdsm.ml:112 output/output_qemu.ml:74 msgid "-os %s: output directory does not exist or is not a directory" msgstr "-os %s: o diretório de saída não existe ou não é um diretório" #: input/parse_libvirt_xml.ml:279 msgid " missing 'method' attribute, ignoring" msgstr " não tem atributo 'method', ignorando" #: input/parse_libvirt_xml.ml:291 msgid " unknown fail='%s' attribute, ignoring" msgstr " com falha desconhecida no atributo '%s', ignorando" #: input/parse_libvirt_xml.ml:370 input/parse_libvirt_xml.ml:317 msgid " was ignored" msgstr " foi ignorado" #: input/parse_libvirt_xml.ml:338 msgid " with was ignored" msgstr " com foi ignorado" #: input/parse_libvirt_xml.ml:365 msgid " with was ignored" msgstr " com foi ignorado" #: input/parse_libvirt_xml.ml:299 msgid " element with no type attribute ignored" msgstr "elemento sem atributo type ignorado" #: input/parse_libvirt_xml.ml:167 msgid " in the input libvirt XML was ignored" msgstr "a linha no XML de entrada do libvirt foi ignorada" #: input/parse_libvirt_xml.ml:414 msgid "" " was ignored because the device name could not be recognized" msgstr "" " foi ignorado porque o nome do dispositivo não pôde ser " "reconhecido" #: input/input_vddk.ml:176 msgid "" " was not found in the output of ‘virsh dumpxml \"%s\"’. The " "most likely reason is that libvirt is too old, try upgrading libvirt to ≥ " "3.7." msgstr "" " não foi encontrado na saída de ‘virsh dumpxml \"%s\"’. O " "motivo mais provável é que o libvirt está muito desatualizado; tente " "atualizar o libvirt para uma versão ≥ 3.7." #: common/mlcustomize/customize_cmdline.ml:305 msgid "Add package(s) to install" msgstr "Adiciona pacote(s) para instalar" #: common/mlcustomize/customize_cmdline.ml:270 msgid "Add package(s) to install at first boot" msgstr "Adiciona pacote(s) para instalar na primeira inicialização" #: common/mlcustomize/customize_cmdline.ml:175 msgid "Append line(s) to the file" msgstr "Adiciona linha(s) ao arquivo" #: common/mlcustomize/customize_run.ml:137 msgid "Appending line to %s" msgstr "Adicionando linha a %s" #: common/mlcustomize/customize_cmdline.ml:197 msgid "Change the owner user and group ID of a file or directory" msgstr "Altera o ID de usuário e de dono de um arquivo ou diretório" #: common/mlcustomize/customize_cmdline.ml:186 msgid "Change the permissions of a file" msgstr "Altera as permissões de um arquivo" #: common/mlcustomize/customize_run.ml:155 msgid "Changing owner of %s to %d:%d" msgstr "Alterando o dono de %s para %d:%d" #: common/mlcustomize/customize_run.ml:141 msgid "Changing permissions of %s to %s" msgstr "Alterando permissões de %s para %s" #: input/input_libvirt.ml:174 input/input_libvirt.ml:157 msgid "Checking %s checksum of disk %d/%d" msgstr "Verificando a soma de verificação %s do disco %d/%d" #: common/mlcustomize/customize_cmdline.ml:488 msgid "Compatibility option doing nothing" msgstr "Opção de compatibilidade fazendo nada" #: common/mlcustomize/customize_cmdline.ml:219 msgid "Copy files in disk image" msgstr "Copia arquivos em uma imagem de disco" #: common/mlcustomize/customize_cmdline.ml:397 msgid "Copy local files or directories from a tarball into image" msgstr "Copia arquivos ou diretórios locais de um tarball para uma imagem" #: common/mlcustomize/customize_cmdline.ml:230 msgid "Copy local files or directories into image" msgstr "Copia arquivos ou diretórios locais para uma imagem" #: common/mlcustomize/customize_run.ml:168 msgid "Copying (in image): %s to %s" msgstr "Copiando (na imagem): %s para %s" #: v2v/v2v.ml:518 msgid "Copying disk %d/%d" msgstr "Copiando disco %d/%d" #: common/mlcustomize/customize_run.ml:172 msgid "Copying: %s to %s" msgstr "Copiando: %s para %s" #: common/mlcustomize/customize_cmdline.ml:322 msgid "Create a directory" msgstr "Cria um diretório" #: common/mlcustomize/customize_cmdline.ml:316 msgid "Create symbolic links" msgstr "Cria links simbólicos" #: v2v/v2v.ml:567 msgid "Creating output metadata" msgstr "Criando metadados de saída" #: common/mlcustomize/customize_cmdline.ml:321 msgid "DIR" msgstr "DIR" #: common/mlcustomize/customize_cmdline.ml:236 msgid "Delete a file or directory" msgstr "Exclui um arquivo ou diretório" #: common/mlcustomize/customize_run.ml:176 msgid "Deleting: %s" msgstr "Excluindo: %s" #: common/mltools/getopt.ml:225 msgid "Display brief help" msgstr "Exibe ajuda breve" #: common/mltools/tools_utils.ml:385 msgid "Display version and exit" msgstr "Exibe a versão e sai" #: common/mlcustomize/customize_cmdline.ml:482 msgid "Do not relabel files with correct SELinux labels" msgstr "Não rerotula arquivos com rótulos SELinux corretos" #: v2v/v2v.ml:248 inspector/inspector.ml:177 in-place/in_place.ml:190 msgid "Don't trim filesystems before conversion" msgstr "" #: common/mltools/tools_utils.ml:389 msgid "Don’t print progress messages" msgstr "Não exibe mensagens de progresso" #: common/mltools/tools_utils.ml:420 msgid "Don’t turn off echo for passphrases" msgstr "Não desativa o exibição para senhas" #: common/mlcustomize/customize_cmdline.ml:247 msgid "Edit file using Perl expression" msgstr "Edita arquivo usando expressão Perl" #: common/mlcustomize/customize_run.ml:180 msgid "Editing: %s" msgstr "Editando: %s" #: common/mltools/tools_utils.ml:386 msgid "Enable libguestfs debugging messages" msgstr "Habilita mensagens de depuração do libguestfs" #: common/mltools/tools_utils.ml:387 msgid "Enable tracing of libguestfs calls" msgstr "Habilita rastreamento de chamadas do libguestfs" #: output/output_ovirt.ml:77 msgid "Export Storage Domain" msgstr "" #: open/open.ml:88 msgid "External command to run" msgstr "Comando externo para executar" #. common/mlcustomize/customize_cmdline.ml:408 #. common/mlcustomize/customize_cmdline.ml:373 #: common/mlcustomize/customize_cmdline.ml:414 msgid "FILE" msgstr "ARQUIVO" #: common/mlcustomize/customize_cmdline.ml:455 msgid "FILE:CONTENT" msgstr "ARQUIVO:CONTEÚDO" #: common/mlcustomize/customize_cmdline.ml:444 msgid "FILE:DEST" msgstr "ARQUIVO:DESTINO" #: common/mlcustomize/customize_cmdline.ml:242 msgid "FILE:EXPR" msgstr "ARQUIVO:EXPR" #: common/mlcustomize/customize_cmdline.ml:170 msgid "FILE:LINE" msgstr "ARQUIVO:LINHA" #: common/mlcustomize/customize_cmdline.ml:203 msgid "FILENAME" msgstr "NOME-DE-ARQUIVO" #. in-place/in_place.ml:378 #: v2v/v2v.ml:571 open/open.ml:220 inspector/inspector.ml:334 msgid "Finishing off" msgstr "Finalizando" #: common/mlcustomize/customize_cmdline.ml:275 msgid "HOSTNAME" msgstr "NOME-DO-HOST" #: v2v/v2v.ml:254 inspector/inspector.ml:183 in-place/in_place.ml:194 msgid "How to choose root filesystem" msgstr "Como escolher o sistema de arquivos raiz" #: common/mltools/tools_utils.ml:177 msgid "" "If reporting bugs, run %s with debugging enabled and include the complete " "output:\n" "\n" " %s -v -x [...]" msgstr "" "Se estiver relatando bugs, execute %s com depuração habilitada e inclua a " "saída completa:\n" "\n" " %s -v -x [...]" #: common/mlcustomize/customize_cmdline.ml:386 msgid "Inject a public key into the guest" msgstr "Injeta uma chave pública em um convidado" #: common/mlcustomize/customize_cmdline.ml:282 msgid "Inject the Balloon Server into a Windows guest" msgstr "Injeta o Balloon Server em um convidado Windows" #: common/mlcustomize/customize_cmdline.ml:288 msgid "Inject the QEMU Guest Agent into a Windows guest" msgstr "Injeta o QEMU Guest Agent em um convidado Windows" #: common/mlcustomize/customize_cmdline.ml:294 msgid "Inject virtio-win drivers into a Windows guest" msgstr "Injeta drivers virtio-win em um convidado Windows" #. in-place/in_place.ml:176 #: v2v/v2v.ml:216 open/open.ml:80 inspector/inspector.ml:165 msgid "Input format" msgstr "Formato de entrada" #: input/input_vddk.ml:77 msgid "" "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" "\n" "Refer to nbdkit-vddk-plugin(1) and the VDDK documentation for further\n" "information on these settings.\n" msgstr "" "Opções de entrada (-io) que podem ser usadas com -it vddk\n" "(todas as configurações são opcionais):\n" "\n" " -io vddk-compression=COMPR Define o modo de compressão VDDK (veja\n" " a documentação de nbdkit-vddk-plugin)\n" " -io vddk-config=ARQUIVO Arquivo de configuração VDDK\n" " -io vddk-cookie=COOKIE Cookie VDDK\n" " -io vddk-file=ARQUIVO Substitui o parâm. file= de nbdkit-vddk-" "plugin\n" " -io vddk-libdir=LIBDIR Diretório pai da biblioteca VDDK\n" " -io vddk-nfchostport=PORTA nfchostport VDDK\n" " -io vddk-port=PORTA porta VDDK\n" " -io vddk-snapshot=SNAPSHOT-MOREF\n" " moref de snapshot VDDK\n" " -io vddk-thumbprint=xx:xx:xx:...\n" " Impressão digital do servidor VDDK\n" " -io vddk-transports=MODE:MODE:..\n" " Transporte VDDK\n" "\n" "Consulte nbdkit-vddk-plugin(1) e a documentação VDDK para mais informações\n" "sobre essas configurações.\n" #: v2v/v2v.ml:222 open/open.ml:86 inspector/inspector.ml:171 msgid "Input transport" msgstr "Transporte de entrada" #: common/mlcustomize/customize_run.ml:191 msgid "Installing firstboot command: %s" msgstr "Instalando comando de primeira inicialização: %s" #: common/mlcustomize/customize_run.ml:195 msgid "Installing firstboot packages: %s" msgstr "Instalando pacotes de primeira inicialização: %s" #: common/mlcustomize/customize_run.ml:202 msgid "Installing firstboot script: %s" msgstr "Instalando script de primeira inicialização: %s" #: common/mlcustomize/customize_run.ml:248 msgid "Installing packages: %s" msgstr "Instalando pacotes: %s" #: common/mlcustomize/customize_cmdline.ml:225 msgid "LOCALPATH:REMOTEDIR" msgstr "CAMINHOLOCAL:DIRREMOTO" #. in-place/in_place.ml:174 #: v2v/v2v.ml:214 open/open.ml:78 inspector/inspector.ml:163 msgid "Libvirt URI" msgstr "URI do Libvirt" #: common/mlcustomize/customize_run.ml:255 msgid "Linking: %s -> %s" msgstr "Vinculando: %s -> %s" #. common/mlcustomize/customize_cmdline.ml:287 #. common/mlcustomize/customize_cmdline.ml:281 #: common/mlcustomize/customize_cmdline.ml:293 msgid "METHOD" msgstr "MÉTODO" #: common/mltools/tools_utils.ml:426 msgid "Make output machine readable" msgstr "Torna a saída legível por máquina" #: common/mlcustomize/customize_run.ml:260 msgid "Making directory: %s" msgstr "Criando diretório: %s" #: v2v/v2v.ml:226 inspector/inspector.ml:173 in-place/in_place.ml:182 msgid "Map NIC to network or bridge or assign static IP" msgstr "Mapeia a placa de rede à rede ou ponte ou atribui IP estático" #: v2v/v2v.ml:210 inspector/inspector.ml:159 in-place/in_place.ml:170 msgid "Map bridge ‘in’ to ‘out’" msgstr "Mapeia ponte ‘in’ para ‘out’" #: v2v/v2v.ml:230 inspector/inspector.ml:179 in-place/in_place.ml:186 msgid "Map network ‘in’ to ‘out’" msgstr "Mapeia rede ‘in’ para ‘out’" #: common/mlcustomize/customize_cmdline.ml:333 msgid "Move files in disk image" msgstr "Move arquivos em uma imagem de disco" #: common/mlcustomize/customize_run.ml:264 msgid "Moving: %s -> %s" msgstr "Movendo: %s -> %s" #. input/input_vcenter_https.ml:45 #. input/input_ova.ml:35 #. input/input_libvirt.ml:233 #. input/input_libvirt.ml:221 #. input/input_disk.ml:35 #: input/input_xen_ssh.ml:43 input/input_vmx.ml:36 msgid "No input options can be used in this mode.\n" msgstr "Nenhuma opção de entrada pode ser usada neste modo.\n" #: output/output_ovirt.ml:40 output/output_null.ml:38 #: output/output_glance.ml:40 msgid "No output options can be used in this mode.\n" msgstr "Nenhuma opção de saída pode ser usada neste modo.\n" #: output/output_vdsm.ml:166 msgid "OVF (metadata) directory (%s) does not exist or is not a directory" msgstr "O diretório de OVF (metadados) (%s) não existe ou não é um diretório" #: common/mlcustomize/firstboot.ml:268 msgid "" "One of rhsrvany.exe or pvvxsvc.exe is missing in %s. One of them is " "required in order to install Windows firstboot scripts. You can get one by " "building rhsrvany (https://github.com/rwmjones/rhsrvany)" msgstr "" "Um dos arquivos rhsrvany.exe ou pvvxsvc.exe está faltando em %s. Um deles é " "necessário para instalar os scripts de inicialização do Windows. Você pode " "obter um compilando o rhsrvany (https://github.com/rwmjones/rhsrvany)" #: v2v/v2v.ml:236 msgid "Output hypervisor connection" msgstr "Emite a conexão do hipervisor" #: output/output_ovirt_upload.ml:51 msgid "" "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" "\n" "You can override the UUIDs of the disks, instead of using autogenerated " "UUIDs\n" "after their uploads (if you do, you must supply one for each disk):\n" "\n" " -oo ovirt-disk-uuid=UUID Disk UUID\n" msgstr "" "Opções de saída (-oo) que podem ser usadas com -o ovirt-upload:\n" "\n" " -oo ovirt-cafile=CA.PEM Define o nome do arquivo do pacote de " "certificados ‘ca.pem’.\n" " -oo ovirt-cluster=NOMECLUSTER Define o nome do cluster oVirt.\n" " -oo ovirt-proxy Conecta via proxy do oVirt Engine (padrão: " "false).\n" " -oo ovirt-verifypeer[=true|false] Verifica a identidade do servidor " "(padrão: false).\n" "\n" "Você pode substituir os UUIDs dos discos, em vez de usar os UUIDs gerados\n" "automaticamente após o upload (se fizer isso, você deve fornecer um para\n" "cada disco):\n" "\n" " -oo ovirt-disk-uuid=UUID UUID do disco\n" #: output/output_qemu.ml:44 msgid "" "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" msgstr "" "Opções de saída (-oo) que podem ser usadas com -o qemu:\n" "\n" " -oo compressed Compacta o arquivo de saída (usado apenas com -of " "qcow2)\n" " -oo qemu-boot Inicializa o convidado no qemu após conversão\n" #: output/output_vdsm.ml:43 msgid "" "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" "\n" "For 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" msgstr "" "Opções de saída (-oo) que podem ser usadas com -o vdsm:\n" "\n" " -oo vdsm-compat=0.10|1.1 Escreve qcow2 com compat=0.10|1.1\n" " (padrão: 0.10)\n" " -oo vdsm-vm-uuid=UUID UUID da VM (obrigatório)\n" " -oo vdsm-ovf-output=DIR Diretório de metadados de OVF (obrigatório)\n" " -oo vdsm-ovf-flavour=%s\n" " Define o tipo de OVF gerado (padrão: " "ovirtexp)\n" "\n" "Para cada disco, você deve fornecer um para cada uma dessas opções:\n" "\n" " -oo vdsm-image-uuid=UUID UUID do diretório de imagem\n" " -oo vdsm-vol-uuid=UUID UUID do volume de disco\n" #: output/output_disk.ml:44 msgid "" "Output options that can be used with -o disk:\n" "\n" " -oo compressed Compress the output file (used only with -of qcow2)\n" msgstr "" "Opções de saída que podem ser usadas com -o disk:\n" "\n" " -oo compressed Compacta o arquivo de saída (usado apenas com -of " "qcow2)\n" #: output/output_kubevirt.ml:51 msgid "" "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" msgstr "" "Opções de saída que podem ser usadas com -o kubevirt:\n" "\n" " -oo compressed Compacta o arquivo de saída (usado apenas com -of " "qcow2)\n" " -oo create=false Não cria os discos de saída\n" " -oo disk=disk1 Especifica nome de arquivo do disco de saída (se " "usado,\n" " deve ser dado uma vez para cada disco,\n" " do contrário -os path é usado)\n" #: output/output_libvirt.ml:47 msgid "" "Output options that can be used with -o libvirt:\n" "\n" " -oo compressed Compress the output file (used only with -of qcow2)\n" msgstr "" "Opções de saída que podem ser usadas com -o libvirt:\n" "\n" " -oo compressed Compacta o arquivo de saída (usado apenas com -of " "qcow2)\n" #. common/mlcustomize/customize_cmdline.ml:235 #: common/mlcustomize/customize_cmdline.ml:420 msgid "PATH" msgstr "CAMINHO" #: common/mlcustomize/customize_cmdline.ml:181 msgid "PERMISSIONS:FILE" msgstr "PERMISSÕES:ARQUIVO" #. common/mlcustomize/customize_cmdline.ml:300 #. common/mlcustomize/customize_cmdline.ml:265 #: common/mlcustomize/customize_cmdline.ml:427 msgid "PKG,PKG.." msgstr "PKG,PKG.." #: v2v/v2v.ml:263 in-place/in_place.ml:203 msgid "Prefer 'virtio-blk' or 'virtio-scsi'" msgstr "Prefira 'virtio-blk' ou 'virtio-scsi'" #: v2v/v2v.ml:252 in-place/in_place.ml:192 msgid "Print source and stop" msgstr "Exibe a fonte e para" #: common/mlcustomize/customize_cmdline.ml:208 msgid "Read customize commands from file" msgstr "Lê comandos personalizados do arquivo" #: common/mltools/tools_utils.ml:421 msgid "Read passphrases from stdin" msgstr "Lê senhas da entrada padrão (stdin)" #: common/mlcustomize/customize_cmdline.ml:421 msgid "Recursively truncate all files in directory" msgstr "Trunca recursivamente todos os arquivos no diretório" #: common/mlcustomize/customize_run.ml:298 msgid "Recursively truncating: %s" msgstr "Truncando recursivamente: %s" #: v2v/v2v.ml:240 msgid "Rename guest when converting" msgstr "Renomeia o convidado ao converter" #: common/mlcustomize/customize_cmdline.ml:259 msgid "Run command at first guest boot" msgstr "Executa o comando na primeira inicialização do convidado" #: common/mlcustomize/customize_cmdline.ml:368 msgid "Run command in disk image" msgstr "Executa comando na imagem de disco" #: common/mlcustomize/customize_cmdline.ml:253 msgid "Run script at first guest boot" msgstr "Executa script na primeira inicialização do convidado" #: common/mlcustomize/customize_cmdline.ml:362 msgid "Run script in disk image" msgstr "Executa script na imagem de disco" #: common/mlcustomize/customize_cmdline.ml:409 msgid "Run touch on a file" msgstr "Executa touch em um arquivo" #: v2v/v2v.ml:250 msgid "Run up to N instances of nbdcopy in parallel" msgstr "Executa até N instâncias de nbdcopy em paralelo" #: open/open.ml:188 msgid "Running external command" msgstr "Executando comando externo" #: common/mlcustomize/customize_run.ml:307 msgid "Running touch: %s" msgstr "Executando touch: %s" #. common/mlcustomize/customize_run.ml:159 #: common/mlcustomize/customize_run.ml:274 msgid "Running: %s" msgstr "Executando: %s" #. common/mlcustomize/customize_cmdline.ml:252 #: common/mlcustomize/customize_cmdline.ml:361 msgid "SCRIPT" msgstr "SCRIPT" #: common/mltools/tools_utils.ml:422 #: common/mlcustomize/customize_cmdline.ml:351 msgid "SELECTOR" msgstr "SELETOR" #: common/mlcustomize/customize_run.ml:363 msgid "SELinux relabelling" msgstr "Re-rotulação SELinux" #. common/mlcustomize/customize_cmdline.ml:214 #: common/mlcustomize/customize_cmdline.ml:328 msgid "SOURCE:DEST" msgstr "FONTE:DESTINO" #: common/mlcustomize/customize_run.ml:287 msgid "SSH key could not be injected for this type of guest" msgstr "A chave SSH não pôde ser injetada para este tipo de convidado" #: common/mlcustomize/customize_run.ml:284 msgid "SSH key inject: %s" msgstr "Injeção de chave SSH: %s" #: common/mlcustomize/customize_cmdline.ml:374 msgid "Scrub a file" msgstr "Exclui permanentemente um arquivo" #: common/mlcustomize/customize_cmdline.ml:466 msgid "Scrub build log file" msgstr "Exclui permanentemente o arquivo de log de compilação" #: common/mlcustomize/customize_run.ml:374 msgid "Scrubbing the log file" msgstr "Excluindo permanentemente o arquivo de log" #: common/mlcustomize/customize_run.ml:279 msgid "Scrubbing: %s" msgstr "Excluindo permanentemente: %s" #: v2v/v2v.ml:208 msgid "Set bandwidth dynamically from file" msgstr "Defina a largura de banda dinamicamente a partir de um arquivo" #: v2v/v2v.ml:206 msgid "Set bandwidth to bits per sec" msgstr "Defina a largura de banda para bits por segundo" #. in-place/in_place.ml:172 #: v2v/v2v.ml:212 open/open.ml:76 inspector/inspector.ml:161 msgid "Set input mode (default: libvirt)" msgstr "Define o modo de entrada (padrão: libvirt)" #: v2v/v2v.ml:228 inspector/inspector.ml:175 in-place/in_place.ml:184 msgid "Set memory size" msgstr "Define o tamanho da memória" #: v2v/v2v.ml:256 inspector/inspector.ml:185 in-place/in_place.ml:196 msgid "Set number of vCPUs" msgstr "Define o número de vCPUs" #. in-place/in_place.ml:178 #: v2v/v2v.ml:218 open/open.ml:82 inspector/inspector.ml:167 msgid "Set option for input mode" msgstr "Define opção para o modo de entrada" #: v2v/v2v.ml:242 msgid "Set option for output mode" msgstr "Define opção para o modo de saída" #: v2v/v2v.ml:234 msgid "Set output allocation mode" msgstr "Define o modo de alocação da saída" #: v2v/v2v.ml:238 msgid "Set output format" msgstr "Define o formato da saída" #: v2v/v2v.ml:232 msgid "Set output mode (default: libvirt)" msgstr "Define o modo de saída (padrão: libvirt)" #: v2v/v2v.ml:246 msgid "Set output storage location" msgstr "Define o local de armazenamento da saída" #: common/mlcustomize/customize_cmdline.ml:476 msgid "Set password crypto" msgstr "Define crypto da senha" #: common/mltools/tools_utils.ml:430 msgid "Set program name" msgstr "Define o nome do programa" #: common/mlcustomize/customize_cmdline.ml:356 msgid "Set root password" msgstr "Define a senha do root" #: common/mlcustomize/customize_cmdline.ml:403 msgid "Set the default timezone" msgstr "Define o fuso horário padrão" #: common/mlcustomize/customize_cmdline.ml:276 msgid "Set the hostname" msgstr "Define nome de host" #: inspector/inspector.ml:181 in-place/in_place.ml:188 msgid "Set the output filename" msgstr "Define o nome de arquivo da saída" #: common/mlcustomize/customize_cmdline.ml:345 msgid "Set user password" msgstr "Define a senha do usuário" #: common/mlcustomize/customize_run.ml:75 msgid "Setting a random seed" msgstr "Definindo uma semente aleatória" #: common/mlcustomize/customize_run.ml:354 msgid "Setting passwords" msgstr "Definindo senhas" #: common/mlcustomize/password.ml:113 msgid "Setting random password of %s to %s" msgstr "Definindo uma senha aleatória de %s para %s" #: common/mlcustomize/customize_run.ml:207 msgid "Setting the hostname: %s" msgstr "Definindo o nome de host: %s" #: common/mlcustomize/customize_run.ml:90 msgid "Setting the machine ID in %s" msgstr "Definindo o ID de máquina em %s" #: common/mlcustomize/customize_run.ml:302 msgid "Setting the timezone: %s" msgstr "Definindo o fuso horário: %s" #: v2v/v2v.ml:481 msgid "Setting up the destination: %s" msgstr "Configurando o destino: %s" #. in-place/in_place.ml:342 #: v2v/v2v.ml:457 open/open.ml:184 inspector/inspector.ml:310 msgid "Setting up the source: %s" msgstr "Configurando a fonte: %s" #: v2v/v2v.ml:463 in-place/in_place.ml:348 msgid "Source guest information (--print-source option):\n" msgstr "Informações de fonte do convidado (a opção --print-source):\n" #: common/mltools/tools_utils.ml:422 msgid "Specify a LUKS key" msgstr "Especifica uma chave LUKS" #: common/mlcustomize/customize_cmdline.ml:392 msgid "TARFILE:REMOTEDIR" msgstr "ARQUIVOTAR:DIRREMOTO" #: common/mlcustomize/customize_cmdline.ml:311 msgid "TARGET:LINK[:LINK..]" msgstr "ALVO:LINK[:LINK..]" #: common/mlcustomize/customize_cmdline.ml:402 msgid "TIMEZONE" msgstr "FUSO-HORÁRIO" #: v2v/v2v.ml:200 msgid "" "The --in-place option has been replaced by the ‘virt-v2v-in-place’ program" msgstr "A opção --in-place foi substituída pelo programa 'virt-v2v-in-place'" #: output/output_qemu.ml:251 msgid "" "The Virt machine has no support for IDE. Please report a bug for virt-v2v -- " "refer to virt-v2v(1) section \"BUGS\"." msgstr "" "A máquina Virt não oferece suporte para IDE. Relate um bug para irt-v2v -- " "consulte a seção \"BUGS\" de virt-v2v(1)." #: output/output_qemu.ml:272 msgid "" "The Virt machine has no support for floppies. Please report a bug for virt-" "v2v -- refer to virt-v2v(1) section \"BUGS\"." msgstr "" "A máquina Virt não oferece suporte para disquetes. Relate um bug para irt-" "v2v -- consulte a seção \"BUGS\" de virt-v2v(1)." #: lib/create_ovf.ml:785 msgid "" "This guest required a password for connection to its display, but this is " "not supported by oVirt. Therefore the converted guest’s display will not " "require a separate password to connect." msgstr "" "Este convidado exigiu uma senha para a conexão com sua tela, mas isso não é " "suportado pelo oVirt. Portanto, a tela do convidado convertido não vai " "exigir uma senha separada para se conectar a ele." #: input/input_vmx.ml:111 msgid "" "This transport does not support guests with snapshots. Either collapse the " "snapshots for this guest and try the conversion again, or use one of the " "alternate conversion methods described in virt-v2v-input-vmware(1) section " "\"NOTES\"." msgstr "" "Este transporte não suporta convidados com snapshots. Ou desfaça os " "snapshots para este convidado e tente a conversão novamente, ou use um dos " "métodos de conversão alternativos descritos na seção \"NOTES\" de virt-v2v-" "input-vmware(1)." #: common/mlcustomize/customize_cmdline.ml:415 msgid "Truncate a file to zero size" msgstr "Trunca um arquivo para tamanho zero" #: common/mlcustomize/customize_run.ml:294 msgid "Truncating: %s" msgstr "Truncando: %s" #: common/mlcustomize/customize_cmdline.ml:192 msgid "UID:GID:PATH" msgstr "UID:GID:CAMINHO" #: common/mlcustomize/customize_cmdline.ml:339 msgid "USER:SELECTOR" msgstr "USUÁRIO:SELETOR" #: common/mlcustomize/customize_cmdline.ml:380 msgid "USER[:SELECTOR]" msgstr "USUÁRIO[:SELETOR]" #: common/mlcustomize/customize_cmdline.ml:432 msgid "Uninstall package(s)" msgstr "Desinstala pacote(s)" #: common/mlcustomize/customize_run.ml:311 msgid "Uninstalling packages: %s" msgstr "Desinstalando pacotes: %s" #: common/mlcustomize/customize_run.ml:290 msgid "Unpack tar file: %s to %s" msgstr "Desempacotamento de arquivo tar: %s para %s" #: common/mlcustomize/customize_cmdline.ml:438 msgid "Update packages" msgstr "Atualiza pacotes" #: common/mlcustomize/customize_run.ml:316 msgid "Updating packages" msgstr "Atualizando pacotes" #: common/mlcustomize/customize_cmdline.ml:449 msgid "Upload local file to destination" msgstr "Atualiza arquivo local para destino" #: common/mlcustomize/customize_run.ml:321 msgid "Uploading: %s to %s" msgstr "Enviando: %s para %s" #: common/mltools/tools_utils.ml:391 msgid "Use ANSI colour sequences even if not tty" msgstr "Usa sequências de cores ANSI mesmo se não estiver em um terminal (tty)" #. in-place/in_place.ml:180 #: v2v/v2v.ml:220 open/open.ml:84 inspector/inspector.ml:169 msgid "Use password from file to connect to input hypervisor" msgstr "Usa a senha de um arquivo para conectar ao hipervisor de entrada" #: v2v/v2v.ml:244 msgid "Use password from file to connect to output hypervisor" msgstr "Usa a senha de um arquivo para conectar ao hipervisor de saída" #: v2v/v2v.ml:224 msgid "Use virt-v2v-in-place instead" msgstr "Usa virt-v2v-in-place em vez disso" #: common/mltools/tools_utils.ml:392 msgid "Wrap log messages even if not tty" msgstr "" "Quebra linha de mensagens de log mesmo se não estiver no terminal (tty)" #: common/mlcustomize/customize_cmdline.ml:460 msgid "Write file" msgstr "Escreve o arquivo" #: common/mlcustomize/customize_run.ml:346 msgid "Writing: %s" msgstr "Escrevendo: %s" #: lib/YAML.ml:167 msgid "" "YAML block contains newline character. This should not happen, please " "report a bug against virt-v2v." msgstr "" "O bloco YAML contém um caractere de nova linha. Isso não deveria acontecer. " "Relate um bug para o virt-v2v." #: output/output_libvirt.ml:96 msgid "" "a libvirt domain called ‘%s’ already exists on the target.\n" "\n" "If using virt-v2v directly, use the ‘-on’ option to select a different name. " "Or delete the existing domain on the target using the ‘virsh undefine’ " "command.\n" "\n" "If using virt-p2v, select a different ‘Name’ in the ‘Target properties’. Or " "delete the existing domain on the target using the ‘virsh undefine’ command." msgstr "" "Um domínio libvirt chamado ‘%s’ já existe no alvo.\n" "\n" "Se estiver usando o virt-v2v diretamente, use a opção ‘-on’ para selecionar " "um nome diferente. Ou exclua o domínio existente no destino usando o comando " "‘virsh undefine’.\n" "\n" "Se estiver usando o virt-p2v, selecione um ‘Name’ diferente em ‘Target " "properties’. Ou exclua o domínio existente no destino usando o comando " "‘virsh undefine’." #: common/mlcustomize/append_line.ml:44 msgid "append_line: %s is not a file" msgstr "append_line: %s não é um arquivo" #: input/input_libvirt.ml:206 msgid "" "bad checksum for disk %d/%d\n" "Expected checksum: %s\n" "Actual checksum: %s" msgstr "" "checksum inválido para o disco %d/%d\n" "Checksum esperado: %s\n" "Checksum encontrado: %s" #: lib/libvirt_utils.ml:59 msgid "cannot find libvirt domain ‘%s’: %s" msgstr "não foi possível encontrar o domínio libvirt ‘%s’: %s" #: lib/libvirt_utils.ml:96 msgid "" "cannot find libvirt pool ‘%s’: %s\n" "\n" "Use ‘virsh pool-list --all’ to list all available pools, and ‘virsh pool-" "dumpxml ’ to display details about a particular pool.\n" "\n" "To set the pool which virt-v2v uses, add the ‘-os ’ option." msgstr "" "não foi possível encontrar o pool libvirt ‘%s’: %s\n" "\n" "Use ‘virsh pool-list --all’ para listar todos os pools disponíveis e ‘virsh " "pool-dumpxml ’ para exibir detalhes sobre um pool específico.\n" "\n" "Para definir o pool que o virt-v2v utiliza, adicione a opção ‘-os ’." #: lib/libvirt_utils.ml:110 msgid "cannot find libvirt volume ‘%s’: %s" msgstr "não foi possível encontrar o volume libvirt ‘%s’: %s" #: common/mlcustomize/firstboot.ml:235 msgid "" "cannot finish firstboot installation by running ‘%s’ because host cpu (%s) " "and guest arch (%s) are not compatible. The firstboot service may not run " "at boot." msgstr "" "não foi possível concluir a instalação de primeira inicialização executando " "‘%s’ porque a CPU do host (%s) e a arquitetura do convidado (%s) não são " "compatíveis. O serviço de primeira inicialização pode não ser executado na " "inicialização." #: output/output_libvirt.ml:180 msgid "cannot get libvirt domain capabilities: %s" msgstr "não foi possível obter recursos de domínio libvirt: %s" #: output/output_libvirt.ml:85 msgid "cannot get libvirt hypervisor capabilities: %s" msgstr "não foi possível obter os recursos do hipervisor libvirt: %s" #: v2v/v2v.ml:105 inspector/inspector.ml:95 in-place/in_place.ml:102 msgid "cannot parse --mac \"%s\" parameter" msgstr "não foi possível analisar o parâmetro --mac \"%s\"" #: v2v/v2v.ml:129 inspector/inspector.ml:119 in-place/in_place.ml:126 msgid "cannot parse --mac ip %s: doesn’t look like “%s” is an IP address" msgstr "" "não foi possível analisar o ip de --mac %s: parece que “%s” não é um " "endereço IP" #: v2v/v2v.ml:143 inspector/inspector.ml:133 in-place/in_place.ml:140 msgid "cannot parse --mac ip prefix length field as an integer: %s" msgstr "" #: common/mlcustomize/guest_packages.ml:29 msgid "" "cannot use ‘%s’ because no package manager has been detected for this guest " "OS.\n" "\n" "If this guest OS is a common one with ordinary package management then this " "may have been caused by a failure of libguestfs inspection.\n" "\n" "For OSes such as Windows that lack package management, this is not " "possible. Try using one of the ‘--firstboot*’ flags instead (described in " "the virt-customize(1) manual)." msgstr "" "não foi possível usar ‘%s’ porque nenhum gerenciador de pacotes foi " "detectado para este sistema operacional convidado.\n" "\n" "Se este sistema operacional convidado for comum e possuir gerenciamento de " "pacotes padrão, isso pode ter sido causado por uma falha na inspeção da " "libguestfs.\n" "\n" "Para sistemas operacionais como o Windows, que não possuem gerenciamento de " "pacotes, isso não é possível. Tente usar uma das opções ‘--firstboot*’ " "(descritas no manual do virt-customize(1))." #: output/output_ovirt.ml:91 msgid "" "cannot write files to the NFS server as %d:%d, even though we appear to be " "running as root. This probably means the NFS client or idmapd is not " "configured properly.\n" "\n" "You will have to chown the files that virt-v2v creates after the run, " "otherwise oVirt will not be able to import the VM." msgstr "" "não foi possível gravar arquivos no servidor NFS como %d:%d, mesmo que " "pareça que estamos executando como root. Isso provavelmente significa que o " "cliente NFS ou o idmapd não estão configurados corretamente.\n" "\n" "Você precisará alterar o proprietário dos arquivos criados pelo virt-v2v " "após a execução; caso contrário, o oVirt não conseguirá importar a máquina " "virtual." #: output/output_ovirt.ml:99 msgid "" "cannot write files to the NFS server as %d:%d. You might want to stop virt-" "v2v (^C) and rerun it as root." msgstr "" "não foi possível gravar arquivos no servidor NFS como %d:%d. Você pode " "tentar interromper o virt-v2v (^C) e executá-lo novamente como root." #: common/mlcustomize/customize_cmdline.ml:508 msgid "command '%s' cannot be used in command files, see the man page" msgstr "" "O comando '%s' não pode ser usado em arquivos de comando; consulte a página " "man" #: common/mlcustomize/customize_cmdline.ml:525 msgid "command '%s' not valid, see the man page" msgstr "o comando '%s' não é válido, consulte a página man" #: common/mldrivers/linux_bootloaders.ml:318 msgid "could not add grub2 serial console (ignored)" msgstr "não foi possível adicionar o console serial do grub2 (ignorado)" #: input/ssh.ml:52 msgid "" "could not copy the VMX file from the remote server, see earlier error " "messages" msgstr "" "não foi possível copiar o arquivo VMX do servidor remoto, consulte as " "mensagens de erro anteriores" #: output/output_libvirt.ml:211 msgid "" "could not define libvirt domain: %s.\n" "The libvirt XML is still available in ‘%s’. Try running ‘virsh -c %s define " "%s’ yourself instead." msgstr "" "não foi possível definir o domínio libvirt: %s.\n" "O XML do libvirt ainda está disponível em ‘%s’. Tente executar ‘virsh -c %s " "define %s’ manualmente." #: common/mldrivers/linux_bootloaders.ml:221 msgid "could not determine a way to update the configuration of Grub2" msgstr "" "não foi possível determinar uma maneira de atualizar a configuração do Grub2" #: input/input_vddk.ml:243 msgid "" "could not fetch thumbprint from the server, you mus use ‘-io vddk-" "thumbprint=XX:XX...’" msgstr "" "não foi possível obter a impressão digital do servidor. Você deve usar '-io " "vddk-thumbprint=XX:XX...'" #: common/mldrivers/linux_bootloaders.ml:376 msgid "could not find bootloader mount point (%s): %s" msgstr "" "não foi possível encontrar o ponto de montagem do carregador de " "inicialização (%s): %s" #: common/mldrivers/windows_drivers.ml:91 msgid "" "could not find registry entry " "HKEY_LOCAL_MACHINE\\SYSTEM\\DriverDatabase\\DeviceIds in this Windows " "guest. It may be either a very old or very new version of Windows that we " "cannot process." msgstr "" "não foi possível encontrar a entrada de registro " "HKEY_LOCAL_MACHINE\\SYSTEM\\DriverDatabase\\DeviceIds nesta máquina virtual " "Windows. Pode ser uma versão muito antiga ou muito recente do Windows que " "não podemos processar." #: common/mlcustomize/firstboot.ml:232 msgid "" "could not finish firstboot installation by running ‘%s’ because the command " "failed: %s" msgstr "" "não foi possível concluir a instalação de primeira inicialização executando " "‘%s’ porque o comando falhou: %s" #. input/input_vcenter_https.ml:94 #: input/select_input.ml:66 input/input_xen_ssh.ml:71 input/input_vddk.ml:151 msgid "could not parse '-ic %s'. Original error message was: %s" msgstr "" "não foi possível analisar '-ic %s'. A mensagem de erro original foi: %s" #: input/parse_libvirt_xml.ml:407 input/parse_libvirt_xml.ml:54 msgid "could not parse device name ‘%s’ from the source libvirt XML" msgstr "" "não foi possível analisar o nome do dispositivo '%s' do XML de origem do " "libvirt" #: input/OVF.ml:168 msgid "could not parse disk rasd:HostResource from OVF document" msgstr "" "não foi possível analisar o recurso de disco rasd:HostResource do documento " "OVF" #: input/input_ova.ml:98 msgid "could not parse ovf:Name from OVF document" msgstr "não foi possível analisar ovf:Name do documento OVF" #: output/output_ovirt.ml:247 msgid "" "could not read the %s specified by the '-os %s' parameter on the command " "line. Is it really an OVirt %s? The original error is: %s" msgstr "" "não foi possível ler o %s especificado pelo parâmetro '-os %s' na linha de " "comando. É realmente um %s do OVirt? O erro original é: %s" #: common/mldrivers/linux_bootloaders.ml:336 msgid "" "could not rebuild grub2 configuration file (%s). This may mean that grub " "output will not be sent to the serial port, but otherwise should be " "harmless. Original error message: %s" msgstr "" "não foi possível reconstruir o arquivo de configuração do grub2 (%s). Isso " "pode significar que a saída do grub não será enviada para a porta serial, " "mas, fora isso, não deve causar problemas. Mensagem de erro original: %s" #: output/output_libvirt.ml:156 msgid "could not refresh libvirt pool ‘%s’: %s" msgstr "não foi possível atualizar o pool libvirt ‘%s’: %s" #: common/mldrivers/linux_bootloaders.ml:320 msgid "could not remove grub2 serial console (ignored)" msgstr "não foi possível remover o console serial do grub2 (ignorado)" #: common/mltools/registry.ml:93 msgid "" "decode_utf16le: Windows UTF16-LE string contains non-7-bit characters. This " "is a bug in %s, please report it." msgstr "" "decode_utf16le: A string UTF16-LE do Windows contém caracteres que não são " "de 7 bits. Isso é um bug em %s, por favor, reporte-o." #: common/mltools/registry.ml:87 msgid "" "decode_utf16le: Windows string does not appear to be in UTF16-LE encoding. " "This could be a bug in %s." msgstr "" "decode_utf16le: A string do Windows não parece estar codificada em UTF16-LE. " "Isso pode ser um bug em %s." #: common/mldrivers/linux_bootloaders.ml:126 msgid "didn't find grub entry for kernel %s" msgstr "não foi encontrada entrada do grub para o kernel %s" #: input/input_disk.ml:150 msgid "disks on the command line have mixed formats" msgstr "discos na linha de comando têm formatos mistos" #: input/parse_libvirt_xml.ml:194 msgid "display in the input libvirt XML was ignored" msgstr "" "a exibição de no XML de entrada do libvirt foi ignorada" #: output/output_qemu.ml:147 msgid "don’t know how to convert UEFI guests for architecture %s" msgstr "não sei como converter convidados UEFI para a arquitetura %s" #: common/mldrivers/linux.ml:158 msgid "don’t know how to find file owner using %s" msgstr "não sei como encontrar o proprietário do arquivo usando %s" #: common/mldrivers/linux.ml:89 msgid "don’t know how to get list of files from package using %s" msgstr "não sei como obter a lista de arquivos de um pacote usando %s" #: common/mltools/curl.ml:82 msgid "downloading %s" msgstr "baixando %s" #: lib/networks.ml:84 msgid "" "duplicate --mac parameter. Duplicate mappings specified for MAC address %s." msgstr "" "parâmetro --mac duplicado. Mapeamentos duplicados especificados para o " "endereço MAC %s." #: lib/networks.ml:102 msgid "" "duplicate -b/--bridge parameter. Duplicate mappings specified for bridge %s." msgstr "" "parâmetro -b/--bridge duplicado. Mapeamentos duplicados especificados para a " "ponte %s." #: lib/networks.ml:108 msgid "duplicate -b/--bridge parameter. Only one default mapping is allowed." msgstr "" "parâmetro -b/--bridge duplicado. Apenas um mapeamento padrão é permitido." #: lib/networks.ml:90 msgid "" "duplicate -n/--network parameter. Duplicate mappings specified for network " "%s." msgstr "" "parâmetro -n/--network duplicado. Mapeamentos duplicados especificados para " "a rede %s." #: lib/networks.ml:96 msgid "duplicate -n/--network parameter. Only one default mapping is allowed." msgstr "" "parâmetro -n/--network duplicado. Apenas um mapeamento padrão é permitido." #: input/OVF.ml:143 msgid "error parsing disk fileRef" msgstr "erro ao analisar fileRef do disco" #: input/input_ova.ml:124 msgid "error uncompressing %s, see earlier error messages" msgstr "erro ao descompactar %s, veja as mensagens de erro anteriores" #: input/OVA.ml:210 input/OVA.ml:112 msgid "error unpacking %s, see earlier error messages" msgstr "erro ao desempacotar %s, veja as mensagens de erro anteriores" #: common/mltools/tools_utils.ml:248 msgid "exception: %s" msgstr "exceção: %s" #: common/mltools/tools_utils.ml:455 msgid "exited with error %d" msgstr "saiu com erro %d" #: lib/utils.ml:34 msgid "exited with non-zero error code %d" msgstr "saiu com código de erro não-zero %d" #: input/input_disk.ml:147 msgid "expected >= 1 disk name on the command line" msgstr "esperava nome de disco >= 1 na linha de comando" #: common/mltools/xpath_helpers.ml:36 msgid "" "expecting XML expression to return an integer (expression: %s, matching " "string: %s)" msgstr "" "espera-se que a expressão XML retorne um número inteiro (expressão: %s, " "string correspondente: %s)" #: common/mltools/tools_utils.ml:440 msgid "external command" msgstr "comando externo" #: output/output_ovirt_upload.ml:265 msgid "failed server prechecks, see earlier errors" msgstr "falha nas prechecks do servidor; consulte os erros anteriores" #: output/output_ovirt_upload.ml:507 msgid "failed to create virtual machine, see earlier errors" msgstr "falha ao criar a máquina virtual; consulte os erros anteriores" #: output/output_ovirt_upload.ml:479 msgid "failed to finalize the transfers, see earlier errors" msgstr "falha ao finalizar as transferências; consulte os erros anteriores" #: common/mldrivers/linux_bootloaders.ml:208 msgid "failed to find grub2-mkconfig binary (but Grub2 was detected on guest)" msgstr "" "falha ao encontrar o binário grub2-mkconfig (mas o Grub2 foi detectado no " "convidado)" #: input/OVA.ml:461 msgid "failed to parse line returned by tar: %S" msgstr "falha ao analisar a linha retornada por tar: %S" #: output/output_ovirt_upload.ml:394 msgid "failed to start transfer, see earlier errors" msgstr "falha ao iniciar a transferência; consulte os erros anteriores" #: output/output_ovirt_upload.ml:311 msgid "failed vmchecks, see earlier errors" msgstr "falha nas vmchecks; consulte os erros anteriores" #: common/mltools/tools_utils.ml:239 msgid "failure: %s" msgstr "falha: %s" #: input/input_ova.ml:134 msgid "file ‘%s’ not found in the ova" msgstr "arquivo ‘%s’ não encontrado no ova" #: common/mlcustomize/firstboot.ml:143 msgid "" "firstboot: unknown version for old firstboot.service file %s (md5=%s), it " "will not be removed" msgstr "" "firstboot: versão desconhecida para o arquivo antigo firstboot.service %s " "(md5=%s), ele não será removido" #: common/mltools/tools_utils.ml:258 msgid "generated by %s %s" msgstr "gerada por %s %s" #: output/create_libvirt_xml.ml:39 msgid "get_osinfo_id: unknown guest operating system: %s" msgstr "get_osinfo_id: sistema operacional convidado desconhecido: %s" #: output/output_glance.ml:66 msgid "" "glance: glance client is not installed or set up correctly. You may need to " "set environment variables or source a script to enable authentication. See " "preceding messages for details." msgstr "" "glance: o cliente glance não está instalado ou configurado corretamente. " "Pode ser necessário definir variáveis de ambiente ou executar um script para " "habilitar a autenticação. Consulte as mensagens anteriores para obter " "detalhes." #: output/output_glance.ml:139 msgid "glance: image upload to glance failed, see earlier errors" msgstr "" "glance: falha ao carregar a imagem para o glance, veja os erros anteriores" #: common/mlcustomize/firstboot.ml:386 common/mlcustomize/firstboot.ml:164 msgid "guest type %s is not supported" msgstr "O tipo de convidado %s não é suportado" #: common/mlcustomize/firstboot.ml:413 msgid "guest type %s/%s is not supported" msgstr "O tipo de convidado %s/%s não é suportado" #: common/mltools/tools_utils.ml:749 msgid "" "host (%s/%s) and guest (%s/%s) are not compatible, so you cannot use command " "line options that involve running commands in the guest. Use --firstboot " "scripts instead." msgstr "" "O host (%s/%s) e o convidado (%s/%s) não são compatíveis, portanto, você não " "pode usar opções de linha de comando que envolvam a execução de comandos no " "convidado. Use scripts --firstboot em vez disso." #: common/mlcustomize/customize_run.ml:209 msgid "hostname could not be set for this type of guest" msgstr "nome do host não pôde ser definido para este tipo de convidado" #: common/mldrivers/linux_kernels.ml:342 msgid "ignoring kernel %s in bootloader, as it does not exist." msgstr "" "ignorando o kernet %s no carregador de inicialização, pois ele não existe." #: output/output_vdsm.ml:160 msgid "image directory (%s) does not exist or is not a directory" msgstr "o diretório de imagem (%s) não existe ou não é um diretório" #: input/parse_libvirt_xml.ml:81 msgid "in the libvirt XML metadata, is missing or empty" msgstr "" "nos metadados do XML do libvirt, está em falta ou vazio" #: input/parse_libvirt_xml.ml:87 msgid "in the libvirt XML metadata, is missing or empty" msgstr "nos metadados do XML do libvirt, está em falta ou vazio" #: input/input_vcenter_https.ml:52 input/input_libvirt.ml:107 msgid "in-place mode does not work with HTTP source" msgstr "o modo in-place não funciona com a fonte HTTP" #: input/input_vddk.ml:146 msgid "in-place mode does not work with VDDK source" msgstr "o modo in-place não funciona com a fonte VDDK" #: input/input_vmx.ml:43 msgid "in-place mode does not work with VMX source" msgstr "o modo in-place não funciona com a fonte VMX" #: input/input_xen_ssh.ml:50 msgid "in-place mode does not work with Xen over SSH source" msgstr "o modo in-place não funciona com a fonte Xen por SSH" #: output/output_kubevirt.ml:116 msgid "" "incorrect number of '-oo disk' parameters. This guest has %d disks, but the " "parameter was used %d times." msgstr "" "número incorreto de parâmetros de '-oo disk'. Este convidado tem %d discos, " "mas o parâmetro foi usado %d vezes." #: input/input_xen_ssh.ml:119 msgid "" "input from xen over ssh does not support disks stored on remote block " "devices. See virt-v2v-input-xen(1) section \"Xen or ssh conversions from " "block devices\"." msgstr "" "a entrada de xen por ssh não suporta discos armazenados em dispositivos de " "bloco remotos. Consulte a seção \"Conversões de Xen ou SSH de dispositivos " "de bloco\" em virt-v2v-input-xen(1)." #. in-place/in_place.ml:397 #: v2v/v2v.ml:590 open/open.ml:238 inspector/inspector.ml:353 msgid "" "insufficient free space in the conversion server temporary directory %s " "(%s).\n" "\n" "Either free up space in that directory, or set the LIBGUESTFS_CACHEDIR " "environment variable to point to another directory with more than 1GB of " "free space.\n" "\n" "See also the virt-v2v(1) manual, section \"Minimum free space check in the " "host\"." msgstr "" "espaço livre insuficiente no diretório temporário do servidor de conversão " "%s (%s).\n" "\n" "Libere espaço nesse diretório ou defina a variável de ambiente " "IBGUESTFS_CACHEDIR para apontar para outro diretório com mais de 1 GB de " "espaço livre.\n" "\n" "Consulte também o manual virt-v2v(1), seção \"Verificação de espaço livre " "mínimo no host\"." #: common/mltools/tools_utils.ml:246 msgid "internal error: Not_found exception was thrown" msgstr "erro interno: exceção Not_found foi lançada" #: common/mltools/tools_utils.ml:243 msgid "internal error: assertion failed at %s, line %d, char %d" msgstr "erro interno: asserção falhou em %s, linha %d, caractere %d" #: common/mltools/tools_utils.ml:241 msgid "internal error: invalid argument: %s" msgstr "erro interno: argumento inválido: %s" #: common/mldrivers/linux.ml:128 msgid "internal error: is_file_owned: dpkg command returned no output" msgstr "erro interno: is_file_owned: o comando dpkg retornou nenhuma saída" #: common/mldrivers/linux.ml:133 msgid "internal error: is_file_owned: unexpected output from dpkg command: %s" msgstr "erro interno: is_file_owned: saída inesperada do comando dpkg: %s" #: common/mldrivers/linux_bootloaders.ml:130 msgid "internal error: regular expression did not match ‘%s’" msgstr "erro interno: a expressão regular não correspondeu a ‘%s’" #: v2v/v2v.ml:548 msgid "internal error: wait returned unexpected process ID %d status \"%s\"" msgstr "" "erro interno: wait retornou ID de processo inesperado %d com status \"%s\"" #: v2v/v2v.ml:114 inspector/inspector.ml:104 in-place/in_place.ml:111 msgid "invalid --mac ip option" msgstr "opção --mac ip inválido" #: v2v/v2v.ml:98 inspector/inspector.ml:88 in-place/in_place.ml:95 msgid "invalid -b/--bridge parameter" msgstr "parâmetro de -b/--bridge inválido" #: v2v/v2v.ml:90 inspector/inspector.ml:80 in-place/in_place.ml:87 msgid "invalid -n/--network parameter" msgstr "parâmetro de -n/--network inválido" #: input/parse_domain_from_vmx.ml:402 msgid "invalid cpuid.coresPerSocket < number of vCPUs" msgstr "cpuid.coresPerSocket inválido < número de vCPUs" #. common/mlcustomize/customize_cmdline.ml:153 #. common/mlcustomize/customize_cmdline.ml:145 #: common/mlcustomize/customize_cmdline.ml:161 msgid "invalid format for '--%s' parameter, see the man page" msgstr "formato inválido para o parâmetro de '--%s'; consulte a página man" #: common/mltools/tools_utils.ml:359 msgid "invalid format string for --machine-readable: %s" msgstr "string de formato inválida para --machine-readable: %s" #: lib/utils.ml:279 msgid "invalid input filename (%s)" msgstr "nome de arquivo de entrada inválido (%s)" #: input/OVA.ml:445 msgid "invalid offset returned by tar: %S" msgstr "deslocamento inválido retornado por tar: %S" #: common/mltools/tools_utils.ml:374 msgid "invalid output fd for --machine-readable: %s" msgstr "descritor de arquivo de saída inválido para --machine-readable: %s" #: common/mltools/tools_utils.ml:376 msgid "invalid output for --machine-readable: %s" msgstr "saída inválida para --machine-readable: %s" #: common/mltools/tools_utils.ml:368 msgid "invalid output stream for --machine-readable: %s" msgstr "fluxo de saída inválido para --machine-readable: %s" #: common/mlcustomize/password.ml:73 msgid "invalid password selector ‘%s’; see the man page" msgstr "seletor de senhas inválido ‘%s’; consulte a página man" #: input/OVA.ml:450 msgid "invalid size returned by tar: %S" msgstr "tamanho inválido retornado por tar: %S" #: common/mlcustomize/ssh_key.ml:45 msgid "invalid ssh-inject selector ‘%s’; see the man page" msgstr "seletor de ssh-inject inválido ‘%s’; consulte a página man" #: input/OVF.ml:82 msgid "invalid vmw:CoresPerSocket (%d) ignored" msgstr "vmw:CoresPerSocket inválido (%d) ignorado" #: input/OVF.ml:88 msgid "invalid vmw:CoresPerSocket < number of cores" msgstr "vmw:CoresPerSocket inválido < número de núcleos" #: common/mldrivers/linux_bootloaders.ml:114 msgid "kernel %s is not under grub tree %s" msgstr "o kernel %s não está na árvore de grub %s" #: common/mltools/tools_utils.ml:539 common/mltools/tools_utils.ml:458 msgid "killed by signal %d" msgstr "morto pelo sinal %d" #: common/mltools/tools_utils.ml:237 msgid "libguestfs error: %s" msgstr "erro do libguestfs: %s" #: lib/libvirt_utils.ml:72 msgid "" "libvirt domain ‘%s’ is running or paused. Converting a live guest will " "result in corrupted output. However this is safe if you're converting from a " "snapshot" msgstr "" "o domínio libvirt '%s' está em execução ou pausado. Converter uma máquina " "virtual em execução resultará em saída corrompida. No entanto, isso é seguro " "se você estiver convertendo a partir de um snapshot" #: common/mlcustomize/customize_run.ml:47 msgid "log file %s: %s (ignored)" msgstr "arquivo log %s: %s (ignorado)" #: input/OVA.ml:147 msgid "" "making OVA directory public readable to work around libvirt bug https://" "bugzilla.redhat.com/1045069" msgstr "" "tornando o diretório OVA público e legível para contornar o bug do libvirt " "https://bugzilla.redhat.com/1045069" #: input/input_ova.ml:86 msgid "manifest has a checksum for non-existent file %s (ignored)" msgstr "" "o manifesto tem uma soma de verificação para um arquivo não existente %s " "(ignorado)" #: common/mlcustomize/customize_cmdline.ml:472 msgid "md5|sha256|sha512" msgstr "" #: common/mlcustomize/customize_run.ml:119 msgid "method '%s' is no longer supported" msgstr "o método '%s' não é mais suportado" #: common/mltools/JSON_parser.ml:39 msgid "missing value for the key ‘%s’" msgstr "faltando um valor para a chave ‘%s’" #: input/OVA.ml:276 msgid "more than one .ovf file was found in %s" msgstr "mais de um arquivo .ovf foi encontrado em %s" #: common/mltools/JSON_parser.ml:34 msgid "more than value for the key ‘%s’" msgstr "mais de um valor para a chave ‘%s’" #: output/output_ovirt.ml:222 msgid "" "mount command failed, see earlier errors.\n" "\n" "This probably means you didn't specify the right %s path [-os %s], or else " "you need to rerun virt-v2v as root." msgstr "" "o comando mount falhou. Consulte os erros anteriores.\n" "\n" "Isso provavelmente significa que você não especificou o caminho %s correto [-" "os %s], ou então precisa executar o virt-v2v novamente como root." #: common/mlcustomize/customize_run.ml:103 msgid "" "multiple --root-password/--password options set the password for user ‘%s’ " "twice" msgstr "" "várias opções --root-password/--password definem a senha do usuário ‘%s’ " "duas vezes" #: input/input_vddk.ml:319 msgid "" "nbdkit VDDK plugin is not installed or not working. It is required if you " "want to use VDDK.\n" "\n" "It 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 ’/%s/libvixDiskLib.so.?’.\n" "\n" "See also the virt-v2v-input-vmware(1) manual." msgstr "" "O plugin VDDK do nbdkit não está instalado ou não está funcionando. Ele é " "necessário para usar o VDDK.\n" "\n" "Parece que você não definiu o caminho correto na opção ‘-io vddk-libdir’, ou " "sua cópia do diretório VDDK está incompleta. Deveria haver uma biblioteca " "chamada ‘/%s/libvixDiskLib.so.?’.\n" "\n" "Veja também o manual virt-v2v-input-vmware(1)." #: input/input_vddk.ml:313 msgid "" "nbdkit VDDK plugin is not installed or not working. It is required if you " "want to use VDDK.\n" "\n" "The 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" "\n" "See also the virt-v2v-input-vmware(1) manual." msgstr "" "O plugin VDDK do nbdkit não está instalado ou não está funcionando. Ele é " "necessário para usar o VDDK.\n" "\n" "O plugin VDDK não está habilitado por padrão ao compilar o nbdkit. Você " "precisa ler as instruções nos arquivos-fonte do nbdkit em ‘plugins/vddk/" "README.VDDK’ para descobrir como habilitar o plugin VDDK.\n" "\n" "Veja também o manual virt-v2v-input-vmware(1)." #: lib/nbdkit.ml:223 msgid "nbdkit did not start up. See previous debugging messages for problems." msgstr "" "o nbdkit não foi iniciado. Consulte as mensagens de depuração anteriores " "para obter detalhes sobre o problema." #: lib/nbdkit.ml:225 msgid "" "nbdkit did not start up. There may be errors printed by nbdkit above.\n" "\n" "If the messages above are not sufficient to diagnose the problem then add " "the ‘virt-v2v -v -x’ options and examine the debugging output carefully." msgstr "" "o nbdkit não foi iniciado. Podem existir erros exibidos pelo nbdkit acima.\n" "\n" "Se as mensagens acima não forem suficientes para diagnosticar o problema, " "adicione as opções ‘virt-v2v -v -x’ e examine cuidadosamente a saída de " "depuração." #: input/nbdkit_ssh.ml:36 input/nbdkit_curl.ml:32 input/input_vddk.ml:283 msgid "nbdkit is not installed or not working" msgstr "o nbdkit não está instalado ou não está funcionando" #: input/input_disk.ml:92 msgid "" "nbdkit is not installed or not working. It is required to use ‘-i disk’." msgstr "" "o nbdkit não está instalado ou não está funcionando. É necessário usar ‘-i " "disk’." #: input/input_libvirt.ml:68 msgid "" "nbdkit is not installed or not working. It is required to use ‘-i libvirt|" "libvirtxml’." msgstr "" "o nbdkit não está instalado ou não está funcionando. É necessário usar ‘-i " "libvirt|libvirtxml’." #: output/output.ml:178 output/output.ml:77 msgid "" "nbdkit is not installed or not working. It is required to use ‘-o disk’." msgstr "" "o nbdkit não está instalado ou não está funcionando. É necessário usar ‘-o " "disk’." #: output/output_null.ml:57 msgid "" "nbdkit is not installed or not working. It is required to use ‘-o null’." msgstr "" "o nbdkit não está instalado ou não está funcionando. É necessário usar ‘-o " "null’." #: output/output_ovirt_upload.ml:163 msgid "" "nbdkit is not installed or not working. It is required to use ‘-o ovirt-" "upload’. See the virt-v2v-output-ovirt(1) manual." msgstr "" "o nbdkit não está instalado ou não está funcionando. É necessário usar ‘-o " "ovirt-upload’. Consulte o manual virt-v2v-output-ovirt(1)." #: input/input_vddk.ml:285 msgid "nbdkit must be >= 1.45.11 for input from VDDK" msgstr "o nbdkit deve ser >= 1.45.11 para entrada de VDDK" #: output/output_ovirt_upload.ml:176 msgid "" "nbdkit python plugin is not installed or not working. It is required if you " "want to use ‘-o ovirt-upload’.\n" "\n" "See also the virt-v2v-output-ovirt(1) manual." msgstr "" "O plugin Python do nbdkit não está instalado ou não está funcionando. Ele é " "necessário para usar ‘-o ovirt-upload’.\n" "\n" "Veja também o manual do virt-v2v-output-ovirt(1)." #: output/output_ovirt_upload.ml:190 msgid "" "nbdkit was compiled without SELinux support. You will have to recompile " "nbdkit with libselinux-devel installed, or else set SELinux to Permissive " "mode while doing the conversion." msgstr "" "o nbdkit foi compilado sem suporte a SELinux. Você precisará recompilar o " "nbdkit com o pacote libselinux-devel instalado ou, então, configurar o " "SELinux para o modo Permissive durante a conversão." #. input/input_libvirt.ml:76 #. input/input_disk.ml:98 #: input/nbdkit_ssh.ml:42 input/nbdkit_curl.ml:38 input/input_vddk.ml:289 msgid "nbdkit-cow-filter is not installed or not working" msgstr "nbdkit-cow-filter não está instalado ou não está funcionando" #: input/nbdkit_curl.ml:35 msgid "nbdkit-curl-plugin is not installed" msgstr "nbdkit-curl-plugin não está instalado" #. input/input_disk.ml:96 #: output/output.ml:181 output/output.ml:80 input/input_libvirt.ml:72 msgid "nbdkit-file-plugin is not installed or not working" msgstr "nbdkit-file-plugin não está instalado ou não está funcionando" #: input/input_libvirt.ml:74 msgid "nbdkit-nbd-plugin is not installed or not working" msgstr "nbdkit-nbd-plugin não está instalado ou não está funcionando" #: output/output_null.ml:60 msgid "nbdkit-null-plugin is not installed or not working" msgstr "nbdkit-null-plugin não está instalado ou não está funcionando" #: input/nbdkit_ssh.ml:39 msgid "nbdkit-ssh-plugin is not installed" msgstr "nbdkit-ssh-plugin não está instalado" #: input/input_vddk.ml:287 msgid "nbdkit-vddk-plugin is not installed" msgstr "nbdkit-vddk-plugin não está instalado" #: lib/nbdkit.ml:56 msgid "nbdkit: unexpected version in --dump-config: %s" msgstr "nbdkit: versão inesperada em --dump-config: %s" #. input/input_vcenter_https.ml:49 #. input/input_ova.ml:46 #. input/input_libvirt.ml:35 #. input/input_disk.ml:39 #: input/input_xen_ssh.ml:47 input/input_vmx.ml:40 msgid "no -io (input options) are allowed here" msgstr "não é permitido -io (opções de entrada) aqui" #: output/output_ovirt.ml:44 output/output_null.ml:42 #: output/output_glance.ml:44 msgid "no -oo (output options) are allowed here" msgstr "não é permitido -oo (opções de saída) aqui" #: input/OVA.ml:273 msgid "no .ovf file was found in %s" msgstr "nenhum arquivo .ovf foi encontrado em %s" #: common/mldrivers/linux_bootloaders.ml:402 msgid "no bootloader detected" msgstr "nenhum carregador de inicialização detectado" #: input/parse_domain_from_vmx.ml:359 msgid "no displayName key found in VMX file" msgstr "nenhuma chave displayName encontrada no arquivo VMX" #: input/OVF.ml:148 msgid "no href in ovf:File (id=%s)" msgstr "nenhum href em ovf:File (id=%s)" #: common/mldrivers/linux_kernels.ml:194 msgid "no initrd was found in /boot matching %s %s." msgstr "nenhum initrd foi encontrado em /boot correspondendo a %s %s." #: common/mldrivers/linux_kernels.ml:317 msgid "" "no installed kernel packages were found.\n" "\n" "This probably indicates that %s was unable to inspect this guest properly." msgstr "" "nenhum pacote de kernel instalado foi encontrado.\n" "\n" "Isso provavelmente indica que %s não conseguiu inspecionar este convidado " "corretamente." #: common/mldrivers/linux_kernels.ml:354 msgid "" "no kernels were found in the bootloader configuration.\n" "\n" "This probably indicates that %s was unable to parse the bootloader " "configuration of this guest." msgstr "" "nenhum kernel foi encontrado na configuração do carregador de " "inicialização.\n" "\n" "Isso provavelmente indica que %s não conseguiu analisar a configuração do " "carregador de inicialização deste convidado." #: output/python_script.ml:55 msgid "no python binary called ‘%s’ can be found on the $PATH" msgstr "não foi possível encontrar nenhum binário Python chamado ‘%s’ no $PATH" #: input/select_input.ml:106 msgid "" "no support for remote libvirt connections to '-ic %s'. The conversion may " "fail when it tries to read the source disks." msgstr "" "não há suporte para conexões remotas do libvirt com '-ic %s'. A conversão " "pode falhar ao tentar ler os discos de origem." #: lib/create_ovf.ml:1027 msgid "" "oVirt cannot emulate ‘%s’ sound cards. This sound card will be dropped from " "the output." msgstr "" "o oVirt não consegue emular placas de som ‘%s’. Essa placa de som será " "removida da saída." #: lib/create_ovf.ml:875 lib/create_ovf.ml:512 msgid "oVirt does not support the output format ‘%s’, only raw or qcow2" msgstr "oVirt não suporta o formato de saída ‘%s‘, apenas raw ou qcow2" #: output/output_openstack.ml:120 msgid "openstack: -oo server-id= not present" msgstr "openstack: -oo server-id= não presente" #: output/output_openstack.ml:338 msgid "" "openstack: failed to attach cinder volume to VM, see earlier error messages" msgstr "" "openstack: falha ao anexar o volume cinder à VM, consulte as mensagens de " "erro anteriores" #: output/output_openstack.ml:291 msgid "openstack: failed to create a cinder volume, see earlier error messages" msgstr "" "openstack: falha ao criar um volume cinder, consulte as mensagens de erro " "anteriores" #: output/output_openstack.ml:304 msgid "" "openstack: failed to query cinder volume status, see earlier error messages" msgstr "" "openstack: falha ao consultar o status do volume cinder, consulte as " "mensagens de erro anteriores" #: output/output_openstack.ml:442 msgid "" "openstack: failed to set image properties on cinder volume, see earlier " "error messages" msgstr "" "openstack: falha ao definir as propriedades de imagem em volume cinder, " "consulte as mensagens de erro anteriores" #: output/output_openstack.ml:199 msgid "" "openstack: precheck failed, there may be a problem with authentication, see " "earlier error messages" msgstr "" "openstack: precheck falhou, pode haver um problema com a autenticação, " "consulte as mensagens de erro anteriores" #: output/output_openstack.ml:311 msgid "" "openstack: unknown volume status \"%s\": expected \"creating\" or " "\"available\"" msgstr "" "openstack: status de volume desconhecido \"%s\": esperava \"creating\" ou " "\"available\"" #: output/output.ml:133 msgid "output mode only supports raw or qcow2 format (format: %s)" msgstr "o modo de saída só suporta os formatos raw ou qcow2 (formato: %s)" #: input/OVF.ml:263 msgid "" "ova disk has an unknown VMware controller type (%d), please report this as a " "bug supplying the *.ovf file extracted from the ova" msgstr "" "o disco ova tem um tipo de controlador VMware desconhecido (%d), relate isso " "como um bug fornecendo o arquivo *.ovf extraído do ova" #: input/OVF.ml:259 msgid "" "ova disk has no parent controller, please report this as a bug supplying the " "*.ovf file extracted from the ova" msgstr "" "o disco ova tem nenhum controlador pai, relate isso como um bug fornecendo o " "arquivo *.ovf extraído do ova" #: output/output_ovirt_upload.ml:367 msgid "" "ovirt-upload: -of %s: Only output format ‘raw’ or ‘qcow2’ is supported. If " "the input is in a different format then force one of these output formats by " "adding either ‘-of raw’ or ‘-of qcow2’ on the command line." msgstr "" "ovirt-upload: -of %s: Somente os formatos de saída 'raw' ou 'qcow2' são " "suportados. Se a entrada estiver em um formato diferente, force um desses " "formatos de saída adicionando '-of raw' ou '-of qcow2' na linha de comando." #: common/mlcustomize/password.ml:51 msgid "" "password-crypto: unknown algorithm %s, use \"md5\", \"sha256\", \"sha512\" " "or \"yescrypt\"" msgstr "" "password-crypto: um algoritmo desconhecido %s, use \"md5\", \"sha256\", " "\"sha512\" ou \"yescrypt\"" #: common/mlcustomize/password.ml:197 msgid "" "password: using insecure md5 password encryption for guest of type %s " "version %d.%d.\n" "If this is incorrect, use --password-crypto option and file a bug." msgstr "" "password: usando criptografia de senha md5 insegura para convidado do tipo " "%s versão %d.%d.\n" "Se isso estiver incorreto, use a opção --password-crypto e registre um bug." #: common/mlcustomize/customize_run.ml:359 msgid "passwords could not be set for this type of guest" msgstr "senhas não puderam ser definidas para este tipo de convidado" #: lib/qemuNBD.ml:125 msgid "" "qemu-nbd did not start up. See previous debugging messages for problems." msgstr "" "O qemu-nbd não iniciou. Veja mensagens de depuração anterior por problemas." #: lib/qemuNBD.ml:127 msgid "" "qemu-nbd did not start up. There may be errors printed by qemu-nbd above.\n" "\n" "If the messages above are not sufficient to diagnose the problem then add " "the ‘virt-v2v -v -x’ options and examine the debugging output carefully." msgstr "" "O qemu-nbd não iniciou. Podem existir erros impressos pelo qemu-nbd acima.\n" "\n" "Se as mensagens acima não forem suficientes para diagnosticar o problema, " "adicione as opções ‘virt-v2v -v -x’ e examine cuidadosamente a saída de " "depuração." #: lib/qemuNBD.ml:47 msgid "qemu-nbd: unexpected version in --version: %s" msgstr "qemu-nbd: versão ini=esperada em --version: %s" #: common/mlcustomize/customize_run.ml:77 msgid "random seed could not be set for this type of guest" msgstr "semente aleatória não pôde ser definida para este tipo de convidado" #: input/parse_domain_from_vmx.ml:44 msgid "remote vmx ‘%s’ could not be parsed as a URI" msgstr "vmx remoto ‘%s’ não pôde ser analisado como um URI" #. common/mlcustomize/inject_virtio_win.ml:357 #. common/mlcustomize/inject_virtio_win.ml:352 #: common/mlcustomize/inject_virtio_win.ml:362 msgid "" "root directory ‘/’ is missing from the virtio-win directory or ISO.\n" "\n" "This should not happen and may indicate that virtio-win or virt-v2v is " "broken in some way. Please report this as a bug with a full debug log." msgstr "" "diretório raiz ‘/’ está em falta no diretório virtio-win ou ISO.\n" "\n" "Isso não deveria acontecer e pode indicar que o virtio-win ou o virt-v2v " "está com algum problema. Por favor, relate isso como um bug com um log de " "depuração completo." #: common/mltools/tools_utils.ml:417 common/options/keys.c:264 #, c-format msgid "selector '%s': invalid TYPE" msgstr "seletor '%s': TYPE inválido" #: common/mltools/tools_utils.ml:409 common/options/keys.c:254 #, c-format msgid "selector '%s': missing FILENAME, or too many fields" msgstr "seletor '%s': FILENAME em falta ou muitos campos" #: common/mltools/tools_utils.ml:399 common/options/keys.c:232 #, c-format msgid "selector '%s': missing ID" msgstr "seletor '%s': ID em falta" #: common/mltools/tools_utils.ml:404 common/options/keys.c:245 #, c-format msgid "selector '%s': missing KEY_STRING, or too many fields" msgstr "seletor '%s': KEY_STRING em falta ou muitos campos" #: common/mltools/tools_utils.ml:401 common/options/keys.c:239 #, c-format msgid "selector '%s': missing TYPE" msgstr "seletor '%s': TYPE em falta" #: common/mltools/tools_utils.ml:413 common/options/keys.c:262 #, c-format msgid "selector '%s': too many fields" msgstr "seletor '%s': muitos campos" #: lib/utils.ml:35 msgid "signalled by signal %d" msgstr "sinalizado pelo sinal %d" #: common/mlcustomize/guest_packages.ml:40 msgid "" "sorry, ‘%s’ with the ‘%s’ package manager has not been implemented yet.\n" "\n" "You can work around this by using one of the ‘--run*’ or ‘--firstboot*’ " "options instead (described in the virt-customize(1) manual)." msgstr "" "Desculpe, o uso de ‘%s’ com o gerenciador de pacotes ‘%s’ ainda não foi " "implementado.\n" "\n" "Você pode contornar isso usando uma das opções ‘--run*’ ou ‘--firstboot*’ " "(descritas no manual virt-customize(1))." #: common/mlcustomize/ssh_key.ml:57 msgid "ssh-inject: $HOME environment variable is not set" msgstr "ssh-inject: variável de ambiente $HOME não definida" #: common/mlcustomize/ssh_key.ml:93 msgid "ssh-inject: key is an empty string" msgstr "ssh-inject: a chave é uma string vazia" #: common/mlcustomize/ssh_key.ml:66 msgid "ssh-inject: no public key file found in %s" msgstr "ssh-inject: nenhum arquivo de chave pública encontrado em %s" #: common/mlcustomize/ssh_key.ml:83 msgid "ssh-inject: public key file (%s) is empty" msgstr "ssh-inject: o arquivo de chave pública (%s) está vazio" #: common/mlcustomize/ssh_key.ml:112 msgid "ssh-inject: the user %s does not exist on the guest" msgstr "ssh-inject: o usuário %s não existe no convidado" #. common/mltools/tools_utils.ml:461 #: lib/utils.ml:36 common/mltools/tools_utils.ml:542 msgid "stopped by signal %d" msgstr "parado pelo sinal %d" #: output/changeuid.ml:58 msgid "subprocess exited with non-zero error code %d" msgstr "o subprocesso foi encerrado com código de erro não-zero %d" #: output/changeuid.ml:60 msgid "subprocess signalled or stopped by signal %d" msgstr "subprocesso sinalizado ou parado pelo sinal %d" #: lib/utils.ml:33 msgid "success" msgstr "sucesso" #: output/create_libvirt_xml.ml:297 msgid "" "target hypervisor does not support floppy devices, but floppy devices were " "found in the source guest" msgstr "" "o hipervisor alvo não suporta dispositivos de disquete, mas dispositivos de " "disquete foram encontrados no sistema operacional convidado de origem" #: output/output_ovirt_upload.ml:156 msgid "" "the Python module ‘ovirtsdk4’ could not be loaded, is it installed? See " "previous messages for problems." msgstr "" "o módulo Python ‘ovirtsdk4’ não pôde ser carregado. Ele está instalado? " "Consulte as mensagens anteriores para obter mais detalhes sobre o problema." #: output/output_ovirt_upload.ml:453 msgid "the cluster ‘%s’ does not support the architecture %s but %s" msgstr "o cluster ‘%s’ não suporta a arquitetura %s, mas sim a arquitetura %s" #: common/mlcustomize/customize_run.ml:59 msgid "" "the command may have failed because the network is disabled. Try either " "removing ‘--no-network’ or adding ‘--network’ on the command line." msgstr "" "o comando pode ter falhado porque a rede está desabilitada. Tente remover ‘--" "no-network’ ou adicionar ‘--network’ na linha de comando." #: common/mltools/JSON_parser.ml:84 msgid "the key ‘%s’ was not found in a list of objects" msgstr "a chave ‘%s’ não foi encontrada na lista de objetos" #: output/output_ovirt_upload.ml:288 msgid "" "the number of ‘-oo ovirt-disk-uuid’ parameters passed on the command line " "has to match the number of guest disk images (for this guest: %d)" msgstr "" "oO número de parâmetros ‘-oo ovirt-disk-uuid’ passados na linha de comando " "deve corresponder ao número de imagens de disco do convidado (para este " "convidado: %d)" #: output/output_vdsm.ml:133 msgid "" "the number of ‘-oo vdsm-image-uuid’ and ‘-oo vdsm-vol-uuid’ parameters " "passed on the command line has to match the number of guest disk images (for " "this guest: %d)" msgstr "" "o número de parâmetros ‘-oo vdsm-image-uuid’ e ‘-oo vdsm-vol-uuid’ passados " "na linha de comando deve corresponder ao número de imagens de disco do " "convidado (para este convidado: %d)" #: output/output_libvirt.ml:239 msgid "the target hypervisor does not support a %s KVM guest" msgstr "o hipervisor de destino não suporta um convidado KVM %s" #: common/mltools/JSON_parser.ml:78 msgid "the value for key ‘%s’ is not a string as expected" msgstr "o valor da chave ‘%s’ não é uma string como esperado" #: common/mltools/JSON_parser.ml:50 msgid "the value for the key ‘%s’ is not a bool" msgstr "o valor da chave ‘%s’ não é um booleano" #: common/mltools/JSON_parser.ml:45 msgid "the value for the key ‘%s’ is not a string" msgstr "o valor da chave ‘%s’ não é uma string" #: common/mltools/JSON_parser.ml:70 msgid "the value for the key ‘%s’ is not an integer" msgstr "o valor da chave ‘%s’ não é um inteiro" #: common/mltools/JSON_parser.ml:55 msgid "the value for the key ‘%s’ is not an object" msgstr "o valor da chave ‘%s’ não é um objeto" #: common/mltools/JSON_parser.ml:59 msgid "the value is not an object" msgstr "o valor não é um objeto" #: common/mltools/JSON_parser.ml:35 msgid "the value of the key ‘%s’ is not an object" msgstr "o valor da chave ‘%s’ não é um objeto" #: lib/create_ovf.ml:519 msgid "" "the virtual size of the input disk %d is not an exact multiple of 512 " "bytes. The virtual size is: %Ld.\n" "\n" "This probably means something unexpected is going on, so please file a bug " "about this issue." msgstr "" "O tamanho virtual do disco de entrada %d não é um múltiplo exato de 512 " "bytes. O tamanho virtual é: %Ld.\n" "\n" "Isso provavelmente significa que algo inesperado está acontecendo, então, " "por favor, relate um bug sobre esse problema." #: output/output_openstack.ml:144 msgid "" "the ‘%s’ program is not available. It is needed to communicate with " "OpenStack." msgstr "" "o programa ‘%s’ não está disponível. Ele é necessário para a comunicação com " "o OpenStack." #: output/output_ovirt.ml:265 msgid "" "there are multiple UUIDs in the %s (%s). This is unexpected, and may be a " "bug in virt-v2v or OVirt." msgstr "" "existem vários UUIDs em %s (%s). Isso é inesperado e pode ser um bug no virt-" "v2v ou no OVirt." #: output/output_ovirt.ml:262 msgid "there are no UUIDs in the %s (%s). Is it really an OVirt %s?" msgstr "não há UUIDs em %s (%s). É realmente um %s do OVirt?" #: common/mlcustomize/inject_virtio_win.ml:153 msgid "" "there are no virtio drivers available for this version of Windows (%d.%d %s " "%s %s). virt-v2v looks for drivers in %s\n" "\n" "The guest will be configured to use slower emulated devices." msgstr "" "não há drivers virtio disponíveis para esta versão do Windows (%d.%d %s %s " "%s). O virt-v2v procura drivers em %s.\n" "\n" "O sistema convidado será configurado para usar dispositivos emulados mais " "lentos." #: common/mlcustomize/inject_virtio_win.ml:175 msgid "" "there is no virtio block device driver for this version of Windows (%d.%d " "%s). virt-v2v looks for this driver in %s\n" "\n" "The guest will be configured to use a slower emulated device." msgstr "" "não existe um driver de dispositivo de bloco virtio para esta versão do " "Windows (%d.%d %s). O virt-v2v procura este driver em %s\n" "\n" "O sistema convidado será configurado para usar um dispositivo emulado mais " "lento." #: common/mlcustomize/inject_virtio_win.ml:206 msgid "" "there is no virtio network driver for this version of Windows (%d.%d %s). " "virt-v2v looks for this driver in %s\n" "\n" "The guest will be configured to use a slower emulated device." msgstr "" "não existe um driver de rede virtio para esta versão do Windows (%d.%d %s). " "O virt-v2v procura este driver em %s\n" "\n" "O sistema convidado será configurado para usar um dispositivo emulado mais " "lento." #: input/parse_libvirt_xml.ml:545 msgid "this guest has a direct network interface which will be ignored" msgid_plural "this guest has direct network interfaces which will be ignored" msgstr[0] "este convidado tem uma interface de rede direta que será ignorada" msgstr[1] "este convidado tem interfaces de rede diretas que serão ignoradas" #: input/parse_libvirt_xml.ml:527 msgid "this guest has a passthrough host device which will be ignored" msgid_plural "this guest has passthrough host devices which will be ignored" msgstr[0] "" "este convidado tem um dispositivo de host em passthrough que será ignorado" msgstr[1] "" "este convidado tem dispositivos de host em passthrough que serão ignorados" #: input/parse_libvirt_xml.ml:248 msgid "this guest has no non-removable disks" msgstr "este convidado não tem discos não-removíveis" #: output/output.ml:65 msgid "this output module doesn't support copying more than %d disks" msgstr "este módulo de saída não suporta copiar mais de %d discos" #: common/mlcustomize/timezone.ml:35 msgid "timezone '%s' does not exist, use a location like 'Europe/London'" msgstr "o fuso horário '%s' não existe, use um local como 'Europa/Londres'" #: common/mlcustomize/customize_run.ml:304 msgid "timezone could not be set for this type of guest" msgstr "o fuso horário não pôde ser definido para este tipo de convidado" #: input/OVA.ml:318 msgid "unable to parse line from manifest file: %S" msgstr "não foi possível analisar a linha do arquivo de manifesto: %S" #: common/mltools/urandom.ml:37 msgid "unexpected end of file while reading /dev/urandom" msgstr "fim de arquivo inesperado ao ler /dev/urandom" #: input/input_libvirt.ml:196 msgid "unexpected output from the %s command" msgstr "saída inesperada do comando %s" #: common/mltools/checksums.ml:58 msgid "unhandled checksum type ‘%s’" msgstr "tipo de some de verificação não tratada ‘%s’" #: lib/types.ml:524 msgid "unknown --root option: %s" msgstr "opção --root desconhecida: %s" #: input/select_input.ml:51 msgid "unknown -i option: %s" msgstr "opção -i desconhecida: %s" #: output/select_output.ml:74 msgid "unknown -o option: %s" msgstr "opção -o desconhecida: %s" #: v2v/v2v.ml:164 msgid "unknown -oa option: %s" msgstr "opção -oa desconhecida: %s" #: input/input_libvirt.ml:189 msgid "unknown method='%s'" msgstr "method=‘%s’ de desconhecido" #: input/OVF.ml:103 msgid "unknown Config:firmware value %s (expected \"bios\" or \"efi\")" msgstr "" "valor de Config:firmware desconhecido %s (esperava \"bios\" ou \"efi\")" #: lib/create_ovf.ml:446 lib/create_ovf.ml:247 msgid "unknown Windows 10 variant: %s (%s)" msgstr "variante de Windows 10 desconhecida: %s (%s)" #: v2v/v2v.ml:319 in-place/in_place.ml:256 msgid "unknown block driver ‘--block-driver %s’" msgstr "driver de bloco desconhecido ‘--block-driver %s’" #: input/parse_domain_from_vmx.ml:415 msgid "unknown firmware value '%s', assuming BIOS" msgstr "valor de firmware desconhecido '%s', presumindo BIOS" #: lib/create_ovf.ml:454 lib/create_ovf.ml:255 msgid "unknown guest operating system: %s %s %d.%d %s (%s)" msgstr "sistema operacional convidado desconhecido: %s %s %d.%d %s (%s)" #: v2v/v2v.ml:329 open/open.ml:132 inspector/inspector.ml:238 msgid "unknown input transport ‘-it %s’" msgstr "transporte de entrada desconhecido ‘-it %s’" #: input/parse_domain_from_vmx.ml:428 msgid "unknown sound device '%s' ignored" msgstr "desconhecido de som desconhecido '%s' ignorado" #: input/parse_libvirt_xml.ml:215 msgid "unknown sound model %s ignored" msgstr "modelo de som desconhecido %s ignorado" #: input/OVF.ml:156 msgid "unsupported compression in OVF: %s" msgstr "compactação não suportada por OVF: %s" #: input/input_vcenter_https.ml:123 msgid "" "vcenter: was not found in the XML. You need to " "upgrade to libvirt ≥ 1.2.20." msgstr "" "vcenter: não foi encontrado no XML. Você precisa " "atualizar para libvirt ≥ 1.2.20." #: input/vCenter.ml:79 msgid "vcenter: URL not found: %s" msgstr "vcenter: URL não encontrado: %s" #: input/vCenter.ml:70 msgid "vcenter: incorrect username or password" msgstr "vcenter: nome de usuário e senha incorretos" #: input/vCenter.ml:72 msgid "" "vcenter: incorrect username or password. You might need to specify the " "username in the URI like this: [vpx|esx|..]://USERNAME@[etc]" msgstr "" "vcenter: nome de usuário ou senha incorretos. Você pode precisar especificar " "o nome de usuário na URI como este: [vpx|esx|..]://USERNAME@[etc]" #: input/vCenter.ml:84 msgid "vcenter: invalid response from server: %s" msgstr "vcenter: resposta inválida do servidor: %s" #: input/vCenter.ml:194 msgid "vcenter: no status code in output of ‘curl’ command." msgstr "vcenter: nenhum código de status na saída do comando ‘curl’." #: output/output_vdsm.ml:148 msgid "vdsm: invalid -os parameter does not contain a valid UUID: %s" msgstr "" "vdsm: um parâmetro -os inválido não contém não contém um UUID válido: %s" #: output/output_openstack.ml:56 msgid "" "virt-v2v -oo server-id= [os-*=...]\n" "\n" "Specify the name or UUID of the conversion appliance using\n" "\n" " virt-v2v ... -o openstack -oo server-id=\n" "\n" "When virt-v2v runs it will attach the Cinder volumes to the\n" "conversion appliance, so this name or UUID must be the name\n" "of the virtual machine on OpenStack where virt-v2v is running.\n" "\n" "In addition, all usual OpenStack “os-*” parameters or “OS_*”\n" "environment variables can be used.\n" "\n" "Openstack “--os-*” parameters must be written as “virt-v2v -oo os-*”.\n" "\n" "For example:\n" "\n" " virt-v2v -oo os-username=\n" "\n" " equivalent to openstack: --os-username=\n" " or the environment variable: OS_USERNAME=\n" "\n" " virt-v2v -oo os-project-name=\n" "\n" " equivalent to openstack: --os-project-name=\n" " or the environment variable: OS_PROJECT_NAME=\n" "\n" "The os-* parameters and environment variables are optional.\n" msgstr "" "virt-v2v -oo server-id= [os-*=...]\n" "\n" "Especifique o nome ou UUID do appliance de conversão usando\n" "\n" " virt-v2v ... -o openstack -oo server-id=\n" "\n" "Quando virt-v2v é executado, ele irá conectar os volumes Cinder\n" "ao dispositivo de conversão, portanto, esse nome ou UUID deve\n" "ser o nome da máquina virtual no OpenStack onde o virt-v2v está\n" "em execução.\n" "\n" "Além disso, todos os usuais parâmetros “os-*” do OpenStack ou\n" "as variáveis de ambiente “OS_*” podem ser usados.\n" "\n" "Os parâmetros “--os-*” do Openstack devem ser escritos como\n" "“virt-v2v -oo os-*”.\n" "\n" "Por exemplo:\n" "\n" " virt-v2v -oo os-username=\n" "\n" " equiavalente a openstack: --os-username=\n" " ou a variável de ambiente: OS_USERNAME=\n" "\n" " virt-v2v -oo os-project-name=\n" "\n" " equiavalente a openstack: --os-project-name=\n" " ou a variável de ambiente: OS_PROJECT_NAME=\n" "\n" "Os parâmetros os-* e variáveis de ambiente são opcionais.\n" #: input/parse_libvirt_xml.ml:189 msgid "" "virt-v2v does not support local displays, so in the " "input libvirt XML was ignored" msgstr "" "o virt-v2v não suporta displays locais, então no XML " "libvirt de entrada foi ignorado" #: input/select_input.ml:83 msgid "virt-v2v-in-place does not support remote libvirt URIs" msgstr "o virt-v2v-in-place não suporta URIs libvirt remotos" #: input/parse_domain_from_vmx.ml:50 msgid "vmx URI path component looks incorrect" msgstr "o componente de caminho URI vmx parece incorreto" #: input/parse_domain_from_vmx.ml:48 msgid "vmx URI remote server name omitted" msgstr "nome de servidor remoto de URI em vmx omitido" #: input/parse_domain_from_vmx.ml:46 msgid "vmx URI start with ‘ssh://...’" msgstr "URI em vmx começa com ‘ssh://...’" #: input/VMX.ml:313 msgid "vmx parser: cannot parse this line, ignoring: %s" msgstr "analisador de vmx: não é possível analisar esta linha, ignorando: %s" #: input/VMX.ml:346 msgid "vmx parser: duplicate key '%s' ignored" msgstr "analisador de vmx: chave duplicada '%s' ignorada" #: output/output_openstack.ml:299 msgid "wait for cinder volume status to change to \"available\"" msgstr "" "aguardando o status do volume cinder ser alterado para \"available\" " "(disponível)" #: output/output_openstack.ml:360 msgid "waiting for cinder volume %s to attach to the conversion appliance" msgstr "aguardando pelo volume cinder %s ser anexado ao appliance de conversão" #: open/open.ml:136 msgid "you must supply the --run parameter" msgstr "você deve fornecer o parâmetro --run" #: input/input_xen_ssh.ml:87 input/input_vddk.ml:189 msgid "‘-ic %s’ URL does not contain a host name field" msgstr "a URL ‘-ic %s’ não contém o campo de nome do host" #: input/input_vddk.ml:273 msgid "‘-io vddk-file=’ must be used exactly %d times" msgstr "‘-io vddk-file=’ deve ser usado exatamente %d vezes" #: input/input_vddk.ml:297 msgid "" "‘-io vddk-libdir=%s’ does not point to a directory. See the virt-v2v-input-" "vmware(1) manual." msgstr "" "‘-io vddk-libdir=%s’ não aponta para um diretório. Veja o manual virt-v2v-" "input-vmware(1)." #: output/output.ml:85 msgid "" "‘-oo compressed’ is only allowed when the output format is a local qcow2-" "format file, i.e. ‘-of qcow2’" msgstr "" "‘-oo compressed’ só é permitido quando o formato de saída é um arquivo qcow2-" "format local, isto é, ‘-of qcow2’" #: input/input_vddk.ml:232 msgid "" "‘openssl’ command not found: automatically detecting thumbprint is not " "possible, so you must use ‘-io vddk-thumbprint=XX:XX...’" msgstr "" "comando ‘openssl’ não encontrado: não é possível detectar automaticamente " "impressões digitais, então você deve usar ‘-io vddk-thumbprint=XX:XX...’" #: common/mltools/getopt-c.c:68 #, c-format msgid "Try ‘%s --help’ or consult %s(1) for more information.\n" msgstr "Tente ‘%s --help’ ou consulte %s(1) para mais informações.\n" #: common/mltools/getopt-c.c:187 #, c-format msgid "%s: ‘%s’ is not a numeric value.\n" msgstr "%s: ‘%s’ não é um valor numérico.\n" #: common/mltools/getopt-c.c:193 #, c-format msgid "%s: %s: integer out of range\n" msgstr "%s: %s: inteiro fora do limite\n" #: common/mltools/getopt-c.c:383 #, c-format msgid "%s: ‘%s’ is not allowed for -%c; allowed values are:\n" msgstr "%s: ‘%s’ não é permitido para -%c; valores permitidos são:\n" #: common/mltools/getopt-c.c:386 #, c-format msgid "%s: ‘%s’ is not allowed for %s%s; allowed values are:\n" msgstr "%s: ‘%s’ não é permitido para %s%s; valores permitidos são:\n" #: common/mltools/getopt-c.c:421 #, c-format msgid "Extra parameter on the command line: ‘%s’.\n" msgstr "Parâmetro extra na linha de comando: ‘%s’.\n" #: common/options/config.c:72 #, c-format msgid "%s: line %d: error parsing configuration file: %s" msgstr "%s: linha %d: erro ao analisar o arquivo de configuração: %s" #: common/options/decrypt.c:52 #, c-format msgid "string size overflow" msgstr "estouro de tamanho da string" #: common/options/decrypt.c:170 #, c-format msgid "" "'clevis_luks_unlock', needed for decrypting %s, is unavailable in this " "libguestfs version" msgstr "" "'clevis_luks_unlock', necessário para descriptografar %s, está indisponível " "nesta versão do libguestfs" #: common/options/decrypt.c:184 #, c-format msgid "" "could not find key to open LUKS encrypted %s.\n" "\n" "Try using --key on the command line.\n" "\n" "Original error: %s (%d)" msgstr "" "não foi possível encontrar chave para abrir %s criptografado com LUKS.\n" "\n" "Tente usar --key na linha de comando.\n" "\n" "Erro original: %s (%d)" #: common/options/inspect.c:78 #, c-format msgid "" "%s: no operating system was found on this disk\n" "\n" "If using guestfish ‘-i’ option, remove this option and instead\n" "use the commands ‘run’ followed by ‘list-filesystems’.\n" "You can then mount filesystems you want by hand using the\n" "‘mount’ or ‘mount-ro’ command.\n" "\n" "If using guestmount ‘-i’, remove this option and choose the\n" "filesystem(s) you want to see by manually adding ‘-m’ option(s).\n" "Use ‘virt-filesystems’ to see what filesystems are available.\n" "\n" "If using other virt tools, this disk image won’t work\n" "with these tools. Use the guestfish equivalent commands\n" "(see the virt tool manual page).\n" msgstr "" "%s: nenhum sistema operacional foi encontrado neste disco\n" "\n" "Se estiver usando a opção '-i' do guestfish, remova-a e use os\n" "comandos 'run' seguido de 'list-filesystems'.\n" "Você poderá então montar os sistemas de arquivos desejados\n" "manualmente usando o comando 'mount' ou 'mount-ro'.\n" "\n" "Se estiver usando a opção '-i' do guestmount, remova-a e escolha\n" "os sistemas de arquivos que deseja visualizar adicionando\n" "manualmente a(s) opção(ões) '-m'. Use 'virt-filesystems'\n" "para ver quais sistemas de arquivos estão disponíveis.\n" "\n" "Se estiver usando outras ferramentas de virtualização,\n" "esta imagem de disco não funcionará com elas. Use os comandos\n" "equivalentes do guestfish (consulte a página man da ferramenta\n" "de virtualização).\n" #: common/options/inspect.c:99 #, c-format msgid "" "%s: multi-boot operating systems are not supported\n" "\n" "If using guestfish ‘-i’ option, remove this option and instead\n" "use the commands ‘run’ followed by ‘list-filesystems’.\n" "You can then mount filesystems you want by hand using the\n" "‘mount’ or ‘mount-ro’ command.\n" "\n" "If using guestmount ‘-i’, remove this option and choose the\n" "filesystem(s) you want to see by manually adding ‘-m’ option(s).\n" "Use ‘virt-filesystems’ to see what filesystems are available.\n" "\n" "If using other virt tools, multi-boot operating systems won’t work\n" "with these tools. Use the guestfish equivalent commands\n" "(see the virt tool manual page).\n" msgstr "" "%s: sem suporte a sistemas operacionais com multi-inicialização\n" "\n" "Se estiver usando a opção '-i' do guestfish, remova-a e use os\n" "comandos 'run' seguido de 'list-filesystems'. Você poderá então\n" "montar os sistemas de arquivos desejados manualmente usando\n" "o comando 'mount' ou 'mount-ro'.\n" "\n" "Se estiver usando a opção '-i' do guestmount, remova-a e escolha\n" "os sistemas de arquivos que deseja visualizar adicionando\n" "manualmente a(s) opção(ões) '-m'. Use 'virt-filesystems'\n" "para ver quais sistemas de arquivos estão disponíveis.\n" "\n" "Se estiver usando outras ferramentas de virtualização,\n" "sistemas operacionais com inicialização múltipla não funcionarão\n" "com essas ferramentas. Use os comandos equivalentes do guestfish\n" "(consulte a página do manual da ferramenta de virtualização).\n" #: common/options/inspect.c:161 #, c-format msgid "%s: some filesystems could not be mounted (ignored)\n" msgstr "%s: alguns sistemas de arquivos não puderam ser montados (ignorado)\n" #: common/options/inspect.c:178 #, c-format msgid "Operating system: %s\n" msgstr "Sistema operacional: %s\n" #: common/options/inspect.c:196 #, c-format msgid "%s mounted on %s\n" msgstr "%s montado em %s\n" #: common/options/keys.c:63 #, c-format msgid "Enter key or passphrase (\"%s\"): " msgstr "Insira a chave ou senha (\"%s\"): " #: common/options/keys.c:146 #, c-format msgid "size_t overflow" msgstr "estouro de size_t" #: common/options/keys.c:193 #, c-format msgid "could not read key from user" msgstr "não foi possível ler a chave do usuário" #: common/options/options.c:283 #, c-format msgid "%s: ‘%s’ could not be mounted.\n" msgstr "%s: ‘%s’ não pôde ser montado.\n" #: common/options/options.c:287 #, c-format msgid "" "%s: Check mount(8) man page to ensure options ‘%s’\n" "%s: are supported by the filesystem that is being mounted.\n" msgstr "" "%s: Consulte a página man mount(8) para garantir que as opções ‘%s’\n" "%s: seja compatíveis com o sistema de arquivos que está sendo montado.\n" #: common/options/options.c:291 #, c-format msgid "%s: Did you mean to mount one of these filesystems?\n" msgstr "%s: Você pretendia montar um desses sistemas de arquivos?\n" #: common/options/options.c:304 #, c-format msgid "cannot determine the subvolume for %s: %s (%d)" msgstr "não foi possível determinar o subvolume de %s: %s (%d)" #: common/options/uri.c:119 #, c-format msgid "%s: --add: could not parse URI ‘%s’\n" msgstr "%s: --add: não foi possível analisar a URI ‘%s’\n" #: common/options/uri.c:130 #, c-format msgid "%s: %s: scheme of URI is NULL or empty\n" msgstr "%s: %s: esquema de URI é NULL ou vazia\n" #: common/options/uri.c:138 #, c-format msgid "%s: %s: cannot have both a server name and a socket query parameter\n" msgstr "" "%s: %s: não é possível ter simultaneamente um nome de servidor e um " "parâmetro de consulta de socket\n" #: common/utils/utils.c:107 #, c-format msgid "%s exited successfully" msgstr "%s saiu com sucesso" #: common/utils/utils.c:110 #, c-format msgid "%s exited with error status %d" msgstr "%s saiu com status de erro %d" #: common/utils/utils.c:114 #, c-format msgid "%s killed by signal %d (%s)" msgstr "%s morto pelo sinal %d (%s)" #: common/utils/utils.c:118 #, c-format msgid "%s stopped by signal %d (%s)" msgstr "%s parado pelo sinal %d (%s)" #: common/utils/utils.c:122 #, c-format msgid "%s exited for an unknown reason (status %d)" msgstr "%s saiu por um motivo desconhecido (status %d)" #~ msgid "" #~ "ssh-agent authentication has not been set up ($SSH_AUTH_SOCK is not " #~ "set). This is required by qemu to do passwordless ssh access. See the " #~ "virt-v2v(1) man page for more information." #~ msgstr "" #~ "A autenticação do ssh-agent não foi configurada ($SSH_AUTH_SOCK não está " #~ "definido). Isso é necessário para que o qemu permita acesso ssh sem " #~ "senha. Consulte a página de manual virt-v2v(1) para obter mais " #~ "informações." ================================================ FILE: po/ru.po ================================================ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR Red Hat Inc. # This file is distributed under the same license as the virt-v2v package. # FIRST AUTHOR , YEAR. # msgid "" msgstr "" "Project-Id-Version: virt-v2v 2.7.7\n" "Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?" "component=libguestfs&product=Virtualization+Tools\n" "POT-Creation-Date: 2025-02-16 17:05+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" "Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" #: input/input_ova.ml:135 common/mltools/tools_utils.ml:235 msgid "%s" msgstr "" #: common/mltools/getopt.ml:73 msgid "" "%s\n" "Options:\n" msgstr "" #: common/mltools/tools_utils.ml:695 common/mlcustomize/customize_run.ml:390 msgid "%s (ignored)" msgstr "" #: common/mltools/checksums.ml:71 msgid "%s did not return any output" msgstr "" #: common/mlcustomize/customize_run.ml:183 msgid "%s does not exist in the guest" msgstr "" #: output/output_ovirt.ml:275 msgid "" "%s does not exist or is not a directory.\n" "\n" "Most likely cause: Either the %s (%s) has not been attached to any Data " "Center, or the path %s is not an %s at all.\n" "\n" "You have to attach the %s to a Data Center using the oVirt user interface " "first.\n" "\n" "If you don’t know what the %s mount point should be then you can also find " "this out through the oVirt user interface." msgstr "" #: common/mlcustomize/customize_run.ml:113 msgid "%s ignored for non-Windows guest" msgstr "" #: common/mlcustomize/customize_run.ml:186 msgid "%s is not a regular file in the guest" msgstr "" #. open/open.ml:39 #. inspector/inspector.ml:153 #. inspector/inspector.ml:40 #. in-place/in_place.ml:164 #. in-place/in_place.ml:45 #: v2v/v2v.ml:194 v2v/v2v.ml:183 v2v/v2v.ml:159 v2v/v2v.ml:44 open/open.ml:68 msgid "%s option used more than once on the command line" msgstr "" #: common/mltools/tools_utils.ml:231 common/mltools/tools_utils.ml:202 msgid "%s: %s" msgstr "" #: common/mltools/tools_utils.ml:233 msgid "%s: %s: %s" msgstr "" #: common/mltools/on_exit.ml:77 msgid "" "%s: Exiting on signal %s\n" "%!" msgstr "" #: common/mlcustomize/inject_virtio_win.ml:411 msgid "%s: cannot open virtio-win ISO file: %s" msgstr "" #: common/mlcustomize/customize_run.ml:64 msgid "%s: command exited with an error" msgstr "" #: v2v/v2v.ml:277 msgid "" "%s: convert a guest to use KVM\n" "\n" "virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi -os imported " "esx_guest\n" "\n" "virt-v2v -i libvirtxml guest-domain.xml -o local -os /var/tmp\n" "\n" "virt-v2v -i disk disk.img -o local -os /var/tmp\n" "\n" "There is a companion front-end called \"virt-p2v\" which comes as an\n" "ISO or CD image that can be booted on physical machines.\n" "\n" "A short summary of the options is given below. For detailed help please\n" "read the man page virt-v2v(1).\n" msgstr "" #: in-place/in_place.ml:217 msgid "" "%s: convert a guest to use KVM in-place\n" "\n" "Note this program modifies the guest in-place with no backup.\n" "Normally you should use virt-v2v.\n" "\n" "virt-v2v-in-place -i libvirtxml guest-domain.xml\n" "\n" "virt-v2v-in-place -i disk disk.img\n" "\n" "A short summary of the options is given below. For detailed help please\n" "read the man page virt-v2v-in-place(1).\n" msgstr "" #: input/input_vddk.ml:207 msgid "%s: enter password for ‘%s’: " msgstr "" #: common/mltools/tools_utils.ml:172 msgid "%s: error: %s" msgstr "" #: inspector/inspector.ml:198 msgid "" "%s: estimate disk space needed before virt-v2v conversion\n" "\n" "virt-v2v-inspector -i disk disk.img [-O output.xml]\n" "\n" "A short summary of the options is given below. For detailed help please\n" "read the man page virt-v2v-inspector(1).\n" msgstr "" #: open/open.ml:94 msgid "" "%s: open the virt-v2v input and run a program on it\n" "\n" "virt-v2v-open -i disk disk.img --run 'virt-inspector --format=raw @@'\n" "\n" "A short summary of the options is given below. For detailed help please\n" "read the man page virt-v2v-open(1).\n" msgstr "" #: common/mltools/tools_utils.ml:726 msgid "%s: operation timed out" msgstr "" #: input/OVA.ml:127 input/OVA.ml:121 msgid "" "%s: unsupported file format\n" "\n" "Formats which we currently understand for '-i ova' are: tar (uncompressed, " "compress with gzip or xz), zip" msgstr "" #: common/mltools/tools_utils.ml:191 msgid "%s: warning: %s" msgstr "" #. common/mlcustomize/customize_cmdline.ml:258 #: common/mlcustomize/customize_cmdline.ml:367 msgid "'CMD+ARGS'" msgstr "" #: common/mlcustomize/customize_run.ml:133 msgid "" "--append-line: line must not contain newline characters. Use the --append-" "line option multiple times to add several lines." msgstr "" #: common/mlcustomize/customize_run.ml:152 msgid "--chown: could not parse numeric UID:GID from %s:%s" msgstr "" #: common/mlcustomize/customize_run.ml:216 msgid "" "--inject-blnsvr: blnsvr.exe not found in virtio-win source that you specified" msgstr "" #: common/mlcustomize/customize_run.ml:225 msgid "" "--inject-qemu-ga: QEMU Guest Agent MSI not found in virtio-win source that " "you specified" msgstr "" #: common/mlcustomize/customize_run.ml:241 msgid "" "--inject-virtio-win: virtio drivers were not found for this Windows version " "in the virtio-win source that you specified" msgstr "" #: v2v/v2v.ml:146 inspector/inspector.ml:136 in-place/in_place.ml:143 msgid "--mac ip prefix length field is out of range" msgstr "" #: v2v/v2v.ml:340 msgid "--parallel parameter must be >= 1" msgstr "" #: input/input_disk.ml:42 msgid "-i disk: expecting a disk image (filename) on the command line" msgstr "" #: input/input_xen_ssh.ml:65 msgid "-i libvirt: expecting -ic parameter for Xen over SSH connection" msgstr "" #: input/input_vddk.ml:142 input/input_vcenter_https.ml:88 msgid "-i libvirt: expecting -ic parameter for vcenter connection" msgstr "" #: input/input_vcenter_https.ml:101 msgid "-i libvirt: expecting -ic parameter to contain vcenter server name" msgstr "" #: input/input_vcenter_https.ml:78 msgid "-i libvirt: expecting -ip passwordfile parameter for vCenter connection" msgstr "" #. input/input_vcenter_https.ml:70 #. input/input_libvirt.ml:41 #: input/input_xen_ssh.ml:57 input/input_vddk.ml:132 msgid "-i libvirt: expecting a libvirt guest name on the command line" msgstr "" #: input/input_libvirt.ml:59 msgid "-i libvirtxml: expecting a libvirt XML filename on the command line" msgstr "" #: input/input_ova.ml:243 msgid "-i ova: OVF references file ‘%s’ which was not found in the OVA archive" msgstr "" #: input/input_ova.ml:78 msgid "" "-i ova: corrupt OVA: checksum of disk %s does not match manifest (actual = " "%s, expected = %s)" msgstr "" #: input/input_ova.ml:52 msgid "-i ova: expecting an OVA file name on the command line" msgstr "" #: input/OVA.ml:361 msgid "" "-i ova: invalid OVA file: path ‘%s’ references a file outside the archive" msgstr "" #: input/input_vmx.ml:57 msgid "-i vmx: cannot use -it vddk in this input mode" msgstr "" #: input/input_vmx.ml:60 msgid "-i vmx: expecting a VMX file or ssh:// URI" msgstr "" #: input/vCenter.ml:159 msgid "" "-ip PASSWORD_FILE parameter ignored because 'user@' was not given in the URL" msgstr "" #: input/input_vddk.ml:119 msgid "-it vddk: ‘-io %s’ is not a valid input option" msgstr "" #: output/output.ml:54 msgid "-o %s: %s option cannot be used in this output mode" msgstr "" #: output/output_disk.ml:66 msgid "-o disk: output directory was not specified, use '-os /dir'" msgstr "" #: output/output_libvirt.ml:59 output/output_disk.ml:56 msgid "-o disk: unknown output option ‘-oo %s’" msgstr "" #: output/output_kubevirt.ml:81 msgid "-o kubevirt: output directory was not specified, use '-os /dir'" msgstr "" #: output/output_kubevirt.ml:91 msgid "" "-o kubevirt: the guest name must contain only lowercase alphanumeric " "characters, '-' or '.', and must start and end with an alphanumeric " "character. Rerun virt-v2v with the '-on name' option to rename it." msgstr "" #: output/output_kubevirt.ml:71 msgid "-o kubevirt: unknown output option ‘-oo %s’" msgstr "" #: output/output_libvirt.ml:120 msgid "" "-o libvirt: output pool ‘%s’ does not have /pool/target/path element. See " "virt-v2v-output-local(1)" msgstr "" #: output/output_libvirt.ml:124 msgid "" "-o libvirt: output pool ‘%s’ has type='dir' but the /pool/target/path " "element is not a local directory. See virt-v2v-output-local(1)" msgstr "" #: output/output_libvirt.ml:116 msgid "" "-o libvirt: output pool ‘%s’ is not a directory (type='dir'). See virt-v2v-" "output-local(1)" msgstr "" #: output/output_openstack.ml:88 msgid "-o openstack mode only supports -oa sparse -of raw" msgstr "" #: output/output_openstack.ml:115 msgid "-o openstack: unknown output option ‘-oo %s’" msgstr "" #: output/output_ovirt_upload.ml:97 msgid "-o ovirt-upload: -oo ovirt-cafile set more than once" msgstr "" #: output/output_ovirt_upload.ml:101 msgid "-o ovirt-upload: -oo ovirt-cluster set more than once" msgstr "" #: output/output_ovirt_upload.ml:112 msgid "-o ovirt-upload: invalid UUID for -oo ovirt-disk-uuid" msgstr "" #: output/output_ovirt_upload.ml:76 msgid "" "-o ovirt-upload: output password file was not specified, use ‘-op’ to point " "to a file which contains the password used to connect to the oVirt server" msgstr "" #: output/output_ovirt_upload.ml:83 msgid "-o ovirt-upload: output storage was not specified, use ‘-os’" msgstr "" #: output/output_ovirt_upload.ml:116 msgid "-o ovirt-upload: unknown output option ‘-oo %s’" msgstr "" #: output/output_ovirt_upload.ml:68 msgid "" "-o ovirt-upload: use ‘-oc’ to point to the oVirt server REST API URL, which " "is usually https://servername/ovirt-engine/api" msgstr "" #: output/output_ovirt.ml:51 msgid "-o ovirt: -os option was not specified" msgstr "" #: output/output_qemu.ml:72 msgid "-o qemu: output directory was not specified, use '-os /dir'" msgstr "" #: output/output_qemu.ml:63 msgid "-o qemu: unknown output option ‘-oo %s’" msgstr "" #: output/output_vdsm.ml:102 msgid "-o vdsm: -oo vdsm-image-uuid was not specified" msgstr "" #: output/output_vdsm.ml:81 msgid "-o vdsm: -oo vdsm-ovf-output set more than once" msgstr "" #: output/output_vdsm.ml:77 msgid "-o vdsm: -oo vdsm-vm-uuid set more than once" msgstr "" #: output/output_vdsm.ml:110 msgid "-o vdsm: -os option was not specified" msgstr "" #: output/output_vdsm.ml:97 msgid "-o vdsm: either -oo vdsm-vol-uuid or -oo vdsm-vm-uuid was not specified" msgstr "" #: output/output_vdsm.ml:90 msgid "-o vdsm: unknown output option ‘-oo %s’" msgstr "" #: output/output_vdsm.ml:74 msgid "-o vdsm: unknown vdsm-compat level ‘%s’" msgstr "" #. output/output_kubevirt.ml:84 #. output/output_disk.ml:68 #: output/output_vdsm.ml:112 output/output_qemu.ml:74 msgid "-os %s: output directory does not exist or is not a directory" msgstr "" #: input/parse_libvirt_xml.ml:279 msgid " missing 'method' attribute, ignoring" msgstr "" #: input/parse_libvirt_xml.ml:291 msgid " unknown fail='%s' attribute, ignoring" msgstr "" #: input/parse_libvirt_xml.ml:370 input/parse_libvirt_xml.ml:317 msgid " was ignored" msgstr "" #: input/parse_libvirt_xml.ml:338 msgid " with was ignored" msgstr "" #: input/parse_libvirt_xml.ml:365 msgid " with was ignored" msgstr "" #: input/parse_libvirt_xml.ml:299 msgid " element with no type attribute ignored" msgstr "" #: input/parse_libvirt_xml.ml:167 msgid " in the input libvirt XML was ignored" msgstr "" #: input/parse_libvirt_xml.ml:414 msgid "" " was ignored because the device name could not be recognized" msgstr "" #: input/input_vddk.ml:176 msgid "" " was not found in the output of ‘virsh dumpxml \"%s\"’. The " "most likely reason is that libvirt is too old, try upgrading libvirt to ≥ " "3.7." msgstr "" #: common/mlcustomize/customize_cmdline.ml:305 msgid "Add package(s) to install" msgstr "" #: common/mlcustomize/customize_cmdline.ml:270 msgid "Add package(s) to install at first boot" msgstr "" #: common/mlcustomize/customize_cmdline.ml:175 msgid "Append line(s) to the file" msgstr "" #: common/mlcustomize/customize_run.ml:137 msgid "Appending line to %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:197 msgid "Change the owner user and group ID of a file or directory" msgstr "" #: common/mlcustomize/customize_cmdline.ml:186 msgid "Change the permissions of a file" msgstr "" #: common/mlcustomize/customize_run.ml:155 msgid "Changing owner of %s to %d:%d" msgstr "" #: common/mlcustomize/customize_run.ml:141 msgid "Changing permissions of %s to %s" msgstr "" #: input/input_libvirt.ml:174 input/input_libvirt.ml:157 msgid "Checking %s checksum of disk %d/%d" msgstr "" #: common/mlcustomize/customize_cmdline.ml:488 msgid "Compatibility option doing nothing" msgstr "" #: common/mlcustomize/customize_cmdline.ml:219 msgid "Copy files in disk image" msgstr "" #: common/mlcustomize/customize_cmdline.ml:397 msgid "Copy local files or directories from a tarball into image" msgstr "" #: common/mlcustomize/customize_cmdline.ml:230 msgid "Copy local files or directories into image" msgstr "" #: common/mlcustomize/customize_run.ml:168 msgid "Copying (in image): %s to %s" msgstr "" #: v2v/v2v.ml:518 msgid "Copying disk %d/%d" msgstr "" #: common/mlcustomize/customize_run.ml:172 msgid "Copying: %s to %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:322 msgid "Create a directory" msgstr "" #: common/mlcustomize/customize_cmdline.ml:316 msgid "Create symbolic links" msgstr "" #: v2v/v2v.ml:567 msgid "Creating output metadata" msgstr "" #: common/mlcustomize/customize_cmdline.ml:321 msgid "DIR" msgstr "" #: common/mlcustomize/customize_cmdline.ml:236 msgid "Delete a file or directory" msgstr "" #: common/mlcustomize/customize_run.ml:176 msgid "Deleting: %s" msgstr "" #: common/mltools/getopt.ml:225 msgid "Display brief help" msgstr "" #: common/mltools/tools_utils.ml:385 msgid "Display version and exit" msgstr "" #: common/mlcustomize/customize_cmdline.ml:482 msgid "Do not relabel files with correct SELinux labels" msgstr "" #: v2v/v2v.ml:248 inspector/inspector.ml:177 in-place/in_place.ml:190 msgid "Don't trim filesystems before conversion" msgstr "" #: common/mltools/tools_utils.ml:389 msgid "Don’t print progress messages" msgstr "" #: common/mltools/tools_utils.ml:420 msgid "Don’t turn off echo for passphrases" msgstr "" #: common/mlcustomize/customize_cmdline.ml:247 msgid "Edit file using Perl expression" msgstr "" #: common/mlcustomize/customize_run.ml:180 msgid "Editing: %s" msgstr "" #: common/mltools/tools_utils.ml:386 msgid "Enable libguestfs debugging messages" msgstr "" #: common/mltools/tools_utils.ml:387 msgid "Enable tracing of libguestfs calls" msgstr "" #: output/output_ovirt.ml:77 msgid "Export Storage Domain" msgstr "" #: open/open.ml:88 msgid "External command to run" msgstr "" #. common/mlcustomize/customize_cmdline.ml:408 #. common/mlcustomize/customize_cmdline.ml:373 #: common/mlcustomize/customize_cmdline.ml:414 msgid "FILE" msgstr "" #: common/mlcustomize/customize_cmdline.ml:455 msgid "FILE:CONTENT" msgstr "" #: common/mlcustomize/customize_cmdline.ml:444 msgid "FILE:DEST" msgstr "" #: common/mlcustomize/customize_cmdline.ml:242 msgid "FILE:EXPR" msgstr "" #: common/mlcustomize/customize_cmdline.ml:170 msgid "FILE:LINE" msgstr "" #: common/mlcustomize/customize_cmdline.ml:203 msgid "FILENAME" msgstr "" #. in-place/in_place.ml:378 #: v2v/v2v.ml:571 open/open.ml:220 inspector/inspector.ml:334 msgid "Finishing off" msgstr "" #: common/mlcustomize/customize_cmdline.ml:275 msgid "HOSTNAME" msgstr "" #: v2v/v2v.ml:254 inspector/inspector.ml:183 in-place/in_place.ml:194 msgid "How to choose root filesystem" msgstr "" #: common/mltools/tools_utils.ml:177 msgid "" "If reporting bugs, run %s with debugging enabled and include the complete " "output:\n" "\n" " %s -v -x [...]" msgstr "" #: common/mlcustomize/customize_cmdline.ml:386 msgid "Inject a public key into the guest" msgstr "" #: common/mlcustomize/customize_cmdline.ml:282 msgid "Inject the Balloon Server into a Windows guest" msgstr "" #: common/mlcustomize/customize_cmdline.ml:288 msgid "Inject the QEMU Guest Agent into a Windows guest" msgstr "" #: common/mlcustomize/customize_cmdline.ml:294 msgid "Inject virtio-win drivers into a Windows guest" msgstr "" #. in-place/in_place.ml:176 #: v2v/v2v.ml:216 open/open.ml:80 inspector/inspector.ml:165 msgid "Input format" msgstr "" #: input/input_vddk.ml:77 msgid "" "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" "\n" "Refer to nbdkit-vddk-plugin(1) and the VDDK documentation for further\n" "information on these settings.\n" msgstr "" #: v2v/v2v.ml:222 open/open.ml:86 inspector/inspector.ml:171 msgid "Input transport" msgstr "" #: common/mlcustomize/customize_run.ml:191 msgid "Installing firstboot command: %s" msgstr "" #: common/mlcustomize/customize_run.ml:195 msgid "Installing firstboot packages: %s" msgstr "" #: common/mlcustomize/customize_run.ml:202 msgid "Installing firstboot script: %s" msgstr "" #: common/mlcustomize/customize_run.ml:248 msgid "Installing packages: %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:225 msgid "LOCALPATH:REMOTEDIR" msgstr "" #. in-place/in_place.ml:174 #: v2v/v2v.ml:214 open/open.ml:78 inspector/inspector.ml:163 msgid "Libvirt URI" msgstr "" #: common/mlcustomize/customize_run.ml:255 msgid "Linking: %s -> %s" msgstr "" #. common/mlcustomize/customize_cmdline.ml:287 #. common/mlcustomize/customize_cmdline.ml:281 #: common/mlcustomize/customize_cmdline.ml:293 msgid "METHOD" msgstr "" #: common/mltools/tools_utils.ml:426 msgid "Make output machine readable" msgstr "" #: common/mlcustomize/customize_run.ml:260 msgid "Making directory: %s" msgstr "" #: v2v/v2v.ml:226 inspector/inspector.ml:173 in-place/in_place.ml:182 msgid "Map NIC to network or bridge or assign static IP" msgstr "" #: v2v/v2v.ml:210 inspector/inspector.ml:159 in-place/in_place.ml:170 msgid "Map bridge ‘in’ to ‘out’" msgstr "" #: v2v/v2v.ml:230 inspector/inspector.ml:179 in-place/in_place.ml:186 msgid "Map network ‘in’ to ‘out’" msgstr "" #: common/mlcustomize/customize_cmdline.ml:333 msgid "Move files in disk image" msgstr "" #: common/mlcustomize/customize_run.ml:264 msgid "Moving: %s -> %s" msgstr "" #. input/input_vcenter_https.ml:45 #. input/input_ova.ml:35 #. input/input_libvirt.ml:233 #. input/input_libvirt.ml:221 #. input/input_disk.ml:35 #: input/input_xen_ssh.ml:43 input/input_vmx.ml:36 msgid "No input options can be used in this mode.\n" msgstr "" #: output/output_ovirt.ml:40 output/output_null.ml:38 #: output/output_glance.ml:40 msgid "No output options can be used in this mode.\n" msgstr "" #: output/output_vdsm.ml:166 msgid "OVF (metadata) directory (%s) does not exist or is not a directory" msgstr "" #: common/mlcustomize/firstboot.ml:268 msgid "" "One of rhsrvany.exe or pvvxsvc.exe is missing in %s. One of them is " "required in order to install Windows firstboot scripts. You can get one by " "building rhsrvany (https://github.com/rwmjones/rhsrvany)" msgstr "" #: v2v/v2v.ml:236 msgid "Output hypervisor connection" msgstr "" #: output/output_ovirt_upload.ml:51 msgid "" "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" "\n" "You can override the UUIDs of the disks, instead of using autogenerated " "UUIDs\n" "after their uploads (if you do, you must supply one for each disk):\n" "\n" " -oo ovirt-disk-uuid=UUID Disk UUID\n" msgstr "" #: output/output_qemu.ml:44 msgid "" "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" msgstr "" #: output/output_vdsm.ml:43 msgid "" "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" "\n" "For 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" msgstr "" #: output/output_disk.ml:44 msgid "" "Output options that can be used with -o disk:\n" "\n" " -oo compressed Compress the output file (used only with -of qcow2)\n" msgstr "" #: output/output_kubevirt.ml:51 msgid "" "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" msgstr "" #: output/output_libvirt.ml:47 msgid "" "Output options that can be used with -o libvirt:\n" "\n" " -oo compressed Compress the output file (used only with -of qcow2)\n" msgstr "" #. common/mlcustomize/customize_cmdline.ml:235 #: common/mlcustomize/customize_cmdline.ml:420 msgid "PATH" msgstr "" #: common/mlcustomize/customize_cmdline.ml:181 msgid "PERMISSIONS:FILE" msgstr "" #. common/mlcustomize/customize_cmdline.ml:300 #. common/mlcustomize/customize_cmdline.ml:265 #: common/mlcustomize/customize_cmdline.ml:427 msgid "PKG,PKG.." msgstr "" #: v2v/v2v.ml:263 in-place/in_place.ml:203 msgid "Prefer 'virtio-blk' or 'virtio-scsi'" msgstr "" #: v2v/v2v.ml:252 in-place/in_place.ml:192 msgid "Print source and stop" msgstr "" #: common/mlcustomize/customize_cmdline.ml:208 msgid "Read customize commands from file" msgstr "" #: common/mltools/tools_utils.ml:421 msgid "Read passphrases from stdin" msgstr "" #: common/mlcustomize/customize_cmdline.ml:421 msgid "Recursively truncate all files in directory" msgstr "" #: common/mlcustomize/customize_run.ml:298 msgid "Recursively truncating: %s" msgstr "" #: v2v/v2v.ml:240 msgid "Rename guest when converting" msgstr "" #: common/mlcustomize/customize_cmdline.ml:259 msgid "Run command at first guest boot" msgstr "" #: common/mlcustomize/customize_cmdline.ml:368 msgid "Run command in disk image" msgstr "" #: common/mlcustomize/customize_cmdline.ml:253 msgid "Run script at first guest boot" msgstr "" #: common/mlcustomize/customize_cmdline.ml:362 msgid "Run script in disk image" msgstr "" #: common/mlcustomize/customize_cmdline.ml:409 msgid "Run touch on a file" msgstr "" #: v2v/v2v.ml:250 msgid "Run up to N instances of nbdcopy in parallel" msgstr "" #: open/open.ml:188 msgid "Running external command" msgstr "" #: common/mlcustomize/customize_run.ml:307 msgid "Running touch: %s" msgstr "" #. common/mlcustomize/customize_run.ml:159 #: common/mlcustomize/customize_run.ml:274 msgid "Running: %s" msgstr "" #. common/mlcustomize/customize_cmdline.ml:252 #: common/mlcustomize/customize_cmdline.ml:361 msgid "SCRIPT" msgstr "" #: common/mltools/tools_utils.ml:422 #: common/mlcustomize/customize_cmdline.ml:351 msgid "SELECTOR" msgstr "" #: common/mlcustomize/customize_run.ml:363 msgid "SELinux relabelling" msgstr "" #. common/mlcustomize/customize_cmdline.ml:214 #: common/mlcustomize/customize_cmdline.ml:328 msgid "SOURCE:DEST" msgstr "" #: common/mlcustomize/customize_run.ml:287 msgid "SSH key could not be injected for this type of guest" msgstr "" #: common/mlcustomize/customize_run.ml:284 msgid "SSH key inject: %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:374 msgid "Scrub a file" msgstr "" #: common/mlcustomize/customize_cmdline.ml:466 msgid "Scrub build log file" msgstr "" #: common/mlcustomize/customize_run.ml:374 msgid "Scrubbing the log file" msgstr "" #: common/mlcustomize/customize_run.ml:279 msgid "Scrubbing: %s" msgstr "" #: v2v/v2v.ml:208 msgid "Set bandwidth dynamically from file" msgstr "" #: v2v/v2v.ml:206 msgid "Set bandwidth to bits per sec" msgstr "" #. in-place/in_place.ml:172 #: v2v/v2v.ml:212 open/open.ml:76 inspector/inspector.ml:161 msgid "Set input mode (default: libvirt)" msgstr "" #: v2v/v2v.ml:228 inspector/inspector.ml:175 in-place/in_place.ml:184 msgid "Set memory size" msgstr "" #: v2v/v2v.ml:256 inspector/inspector.ml:185 in-place/in_place.ml:196 msgid "Set number of vCPUs" msgstr "" #. in-place/in_place.ml:178 #: v2v/v2v.ml:218 open/open.ml:82 inspector/inspector.ml:167 msgid "Set option for input mode" msgstr "" #: v2v/v2v.ml:242 msgid "Set option for output mode" msgstr "" #: v2v/v2v.ml:234 msgid "Set output allocation mode" msgstr "" #: v2v/v2v.ml:238 msgid "Set output format" msgstr "" #: v2v/v2v.ml:232 msgid "Set output mode (default: libvirt)" msgstr "" #: v2v/v2v.ml:246 msgid "Set output storage location" msgstr "" #: common/mlcustomize/customize_cmdline.ml:476 msgid "Set password crypto" msgstr "" #: common/mltools/tools_utils.ml:430 msgid "Set program name" msgstr "" #: common/mlcustomize/customize_cmdline.ml:356 msgid "Set root password" msgstr "" #: common/mlcustomize/customize_cmdline.ml:403 msgid "Set the default timezone" msgstr "" #: common/mlcustomize/customize_cmdline.ml:276 msgid "Set the hostname" msgstr "" #: inspector/inspector.ml:181 in-place/in_place.ml:188 msgid "Set the output filename" msgstr "" #: common/mlcustomize/customize_cmdline.ml:345 msgid "Set user password" msgstr "" #: common/mlcustomize/customize_run.ml:75 msgid "Setting a random seed" msgstr "" #: common/mlcustomize/customize_run.ml:354 msgid "Setting passwords" msgstr "" #: common/mlcustomize/password.ml:113 msgid "Setting random password of %s to %s" msgstr "" #: common/mlcustomize/customize_run.ml:207 msgid "Setting the hostname: %s" msgstr "" #: common/mlcustomize/customize_run.ml:90 msgid "Setting the machine ID in %s" msgstr "" #: common/mlcustomize/customize_run.ml:302 msgid "Setting the timezone: %s" msgstr "" #: v2v/v2v.ml:481 msgid "Setting up the destination: %s" msgstr "" #. in-place/in_place.ml:342 #: v2v/v2v.ml:457 open/open.ml:184 inspector/inspector.ml:310 msgid "Setting up the source: %s" msgstr "" #: v2v/v2v.ml:463 in-place/in_place.ml:348 msgid "Source guest information (--print-source option):\n" msgstr "" #: common/mltools/tools_utils.ml:422 msgid "Specify a LUKS key" msgstr "" #: common/mlcustomize/customize_cmdline.ml:392 msgid "TARFILE:REMOTEDIR" msgstr "" #: common/mlcustomize/customize_cmdline.ml:311 msgid "TARGET:LINK[:LINK..]" msgstr "" #: common/mlcustomize/customize_cmdline.ml:402 msgid "TIMEZONE" msgstr "" #: v2v/v2v.ml:200 msgid "" "The --in-place option has been replaced by the ‘virt-v2v-in-place’ program" msgstr "" #: output/output_qemu.ml:251 msgid "" "The Virt machine has no support for IDE. Please report a bug for virt-v2v -- " "refer to virt-v2v(1) section \"BUGS\"." msgstr "" #: output/output_qemu.ml:272 msgid "" "The Virt machine has no support for floppies. Please report a bug for virt-" "v2v -- refer to virt-v2v(1) section \"BUGS\"." msgstr "" #: lib/create_ovf.ml:785 msgid "" "This guest required a password for connection to its display, but this is " "not supported by oVirt. Therefore the converted guest’s display will not " "require a separate password to connect." msgstr "" #: input/input_vmx.ml:111 msgid "" "This transport does not support guests with snapshots. Either collapse the " "snapshots for this guest and try the conversion again, or use one of the " "alternate conversion methods described in virt-v2v-input-vmware(1) section " "\"NOTES\"." msgstr "" #: common/mlcustomize/customize_cmdline.ml:415 msgid "Truncate a file to zero size" msgstr "" #: common/mlcustomize/customize_run.ml:294 msgid "Truncating: %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:192 msgid "UID:GID:PATH" msgstr "" #: common/mlcustomize/customize_cmdline.ml:339 msgid "USER:SELECTOR" msgstr "" #: common/mlcustomize/customize_cmdline.ml:380 msgid "USER[:SELECTOR]" msgstr "" #: common/mlcustomize/customize_cmdline.ml:432 msgid "Uninstall package(s)" msgstr "" #: common/mlcustomize/customize_run.ml:311 msgid "Uninstalling packages: %s" msgstr "" #: common/mlcustomize/customize_run.ml:290 msgid "Unpack tar file: %s to %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:438 msgid "Update packages" msgstr "" #: common/mlcustomize/customize_run.ml:316 msgid "Updating packages" msgstr "" #: common/mlcustomize/customize_cmdline.ml:449 msgid "Upload local file to destination" msgstr "" #: common/mlcustomize/customize_run.ml:321 msgid "Uploading: %s to %s" msgstr "" #: common/mltools/tools_utils.ml:391 msgid "Use ANSI colour sequences even if not tty" msgstr "" #. in-place/in_place.ml:180 #: v2v/v2v.ml:220 open/open.ml:84 inspector/inspector.ml:169 msgid "Use password from file to connect to input hypervisor" msgstr "" #: v2v/v2v.ml:244 msgid "Use password from file to connect to output hypervisor" msgstr "" #: v2v/v2v.ml:224 msgid "Use virt-v2v-in-place instead" msgstr "" #: common/mltools/tools_utils.ml:392 msgid "Wrap log messages even if not tty" msgstr "" #: common/mlcustomize/customize_cmdline.ml:460 msgid "Write file" msgstr "" #: common/mlcustomize/customize_run.ml:346 msgid "Writing: %s" msgstr "" #: lib/YAML.ml:167 msgid "" "YAML block contains newline character. This should not happen, please " "report a bug against virt-v2v." msgstr "" #: output/output_libvirt.ml:96 msgid "" "a libvirt domain called ‘%s’ already exists on the target.\n" "\n" "If using virt-v2v directly, use the ‘-on’ option to select a different name. " "Or delete the existing domain on the target using the ‘virsh undefine’ " "command.\n" "\n" "If using virt-p2v, select a different ‘Name’ in the ‘Target properties’. Or " "delete the existing domain on the target using the ‘virsh undefine’ command." msgstr "" #: common/mlcustomize/append_line.ml:44 msgid "append_line: %s is not a file" msgstr "" #: input/input_libvirt.ml:206 msgid "" "bad checksum for disk %d/%d\n" "Expected checksum: %s\n" "Actual checksum: %s" msgstr "" #: lib/libvirt_utils.ml:59 msgid "cannot find libvirt domain ‘%s’: %s" msgstr "" #: lib/libvirt_utils.ml:96 msgid "" "cannot find libvirt pool ‘%s’: %s\n" "\n" "Use ‘virsh pool-list --all’ to list all available pools, and ‘virsh pool-" "dumpxml ’ to display details about a particular pool.\n" "\n" "To set the pool which virt-v2v uses, add the ‘-os ’ option." msgstr "" #: lib/libvirt_utils.ml:110 msgid "cannot find libvirt volume ‘%s’: %s" msgstr "" #: common/mlcustomize/firstboot.ml:235 msgid "" "cannot finish firstboot installation by running ‘%s’ because host cpu (%s) " "and guest arch (%s) are not compatible. The firstboot service may not run " "at boot." msgstr "" #: output/output_libvirt.ml:180 msgid "cannot get libvirt domain capabilities: %s" msgstr "" #: output/output_libvirt.ml:85 msgid "cannot get libvirt hypervisor capabilities: %s" msgstr "" #: v2v/v2v.ml:105 inspector/inspector.ml:95 in-place/in_place.ml:102 msgid "cannot parse --mac \"%s\" parameter" msgstr "" #: v2v/v2v.ml:129 inspector/inspector.ml:119 in-place/in_place.ml:126 msgid "cannot parse --mac ip %s: doesn’t look like “%s” is an IP address" msgstr "" #: v2v/v2v.ml:143 inspector/inspector.ml:133 in-place/in_place.ml:140 msgid "cannot parse --mac ip prefix length field as an integer: %s" msgstr "" #: common/mlcustomize/guest_packages.ml:29 msgid "" "cannot use ‘%s’ because no package manager has been detected for this guest " "OS.\n" "\n" "If this guest OS is a common one with ordinary package management then this " "may have been caused by a failure of libguestfs inspection.\n" "\n" "For OSes such as Windows that lack package management, this is not " "possible. Try using one of the ‘--firstboot*’ flags instead (described in " "the virt-customize(1) manual)." msgstr "" #: output/output_ovirt.ml:91 msgid "" "cannot write files to the NFS server as %d:%d, even though we appear to be " "running as root. This probably means the NFS client or idmapd is not " "configured properly.\n" "\n" "You will have to chown the files that virt-v2v creates after the run, " "otherwise oVirt will not be able to import the VM." msgstr "" #: output/output_ovirt.ml:99 msgid "" "cannot write files to the NFS server as %d:%d. You might want to stop virt-" "v2v (^C) and rerun it as root." msgstr "" #: common/mlcustomize/customize_cmdline.ml:508 msgid "command '%s' cannot be used in command files, see the man page" msgstr "" #: common/mlcustomize/customize_cmdline.ml:525 msgid "command '%s' not valid, see the man page" msgstr "" #: common/mldrivers/linux_bootloaders.ml:318 msgid "could not add grub2 serial console (ignored)" msgstr "" #: input/ssh.ml:52 msgid "" "could not copy the VMX file from the remote server, see earlier error " "messages" msgstr "" #: output/output_libvirt.ml:211 msgid "" "could not define libvirt domain: %s.\n" "The libvirt XML is still available in ‘%s’. Try running ‘virsh -c %s define " "%s’ yourself instead." msgstr "" #: common/mldrivers/linux_bootloaders.ml:221 msgid "could not determine a way to update the configuration of Grub2" msgstr "" #: input/input_vddk.ml:243 msgid "" "could not fetch thumbprint from the server, you mus use ‘-io vddk-" "thumbprint=XX:XX...’" msgstr "" #: common/mldrivers/linux_bootloaders.ml:376 msgid "could not find bootloader mount point (%s): %s" msgstr "" #: common/mldrivers/windows_drivers.ml:91 msgid "" "could not find registry entry " "HKEY_LOCAL_MACHINE\\SYSTEM\\DriverDatabase\\DeviceIds in this Windows " "guest. It may be either a very old or very new version of Windows that we " "cannot process." msgstr "" #: common/mlcustomize/firstboot.ml:232 msgid "" "could not finish firstboot installation by running ‘%s’ because the command " "failed: %s" msgstr "" #. input/input_vcenter_https.ml:94 #: input/select_input.ml:66 input/input_xen_ssh.ml:71 input/input_vddk.ml:151 msgid "could not parse '-ic %s'. Original error message was: %s" msgstr "" #: input/parse_libvirt_xml.ml:407 input/parse_libvirt_xml.ml:54 msgid "could not parse device name ‘%s’ from the source libvirt XML" msgstr "" #: input/OVF.ml:168 msgid "could not parse disk rasd:HostResource from OVF document" msgstr "" #: input/input_ova.ml:98 msgid "could not parse ovf:Name from OVF document" msgstr "" #: output/output_ovirt.ml:247 msgid "" "could not read the %s specified by the '-os %s' parameter on the command " "line. Is it really an OVirt %s? The original error is: %s" msgstr "" #: common/mldrivers/linux_bootloaders.ml:336 msgid "" "could not rebuild grub2 configuration file (%s). This may mean that grub " "output will not be sent to the serial port, but otherwise should be " "harmless. Original error message: %s" msgstr "" #: output/output_libvirt.ml:156 msgid "could not refresh libvirt pool ‘%s’: %s" msgstr "" #: common/mldrivers/linux_bootloaders.ml:320 msgid "could not remove grub2 serial console (ignored)" msgstr "" #: common/mltools/registry.ml:93 msgid "" "decode_utf16le: Windows UTF16-LE string contains non-7-bit characters. This " "is a bug in %s, please report it." msgstr "" #: common/mltools/registry.ml:87 msgid "" "decode_utf16le: Windows string does not appear to be in UTF16-LE encoding. " "This could be a bug in %s." msgstr "" #: common/mldrivers/linux_bootloaders.ml:126 msgid "didn't find grub entry for kernel %s" msgstr "" #: input/input_disk.ml:150 msgid "disks on the command line have mixed formats" msgstr "" #: input/parse_libvirt_xml.ml:194 msgid "display in the input libvirt XML was ignored" msgstr "" #: output/output_qemu.ml:147 msgid "don’t know how to convert UEFI guests for architecture %s" msgstr "" #: common/mldrivers/linux.ml:158 msgid "don’t know how to find file owner using %s" msgstr "" #: common/mldrivers/linux.ml:89 msgid "don’t know how to get list of files from package using %s" msgstr "" #: common/mltools/curl.ml:82 msgid "downloading %s" msgstr "" #: lib/networks.ml:84 msgid "" "duplicate --mac parameter. Duplicate mappings specified for MAC address %s." msgstr "" #: lib/networks.ml:102 msgid "" "duplicate -b/--bridge parameter. Duplicate mappings specified for bridge %s." msgstr "" #: lib/networks.ml:108 msgid "duplicate -b/--bridge parameter. Only one default mapping is allowed." msgstr "" #: lib/networks.ml:90 msgid "" "duplicate -n/--network parameter. Duplicate mappings specified for network " "%s." msgstr "" #: lib/networks.ml:96 msgid "duplicate -n/--network parameter. Only one default mapping is allowed." msgstr "" #: input/OVF.ml:143 msgid "error parsing disk fileRef" msgstr "" #: input/input_ova.ml:124 msgid "error uncompressing %s, see earlier error messages" msgstr "" #: input/OVA.ml:210 input/OVA.ml:112 msgid "error unpacking %s, see earlier error messages" msgstr "" #: common/mltools/tools_utils.ml:248 msgid "exception: %s" msgstr "" #: common/mltools/tools_utils.ml:455 msgid "exited with error %d" msgstr "" #: lib/utils.ml:34 msgid "exited with non-zero error code %d" msgstr "" #: input/input_disk.ml:147 msgid "expected >= 1 disk name on the command line" msgstr "" #: common/mltools/xpath_helpers.ml:36 msgid "" "expecting XML expression to return an integer (expression: %s, matching " "string: %s)" msgstr "" #: common/mltools/tools_utils.ml:440 msgid "external command" msgstr "" #: output/output_ovirt_upload.ml:265 msgid "failed server prechecks, see earlier errors" msgstr "" #: output/output_ovirt_upload.ml:507 msgid "failed to create virtual machine, see earlier errors" msgstr "" #: output/output_ovirt_upload.ml:479 msgid "failed to finalize the transfers, see earlier errors" msgstr "" #: common/mldrivers/linux_bootloaders.ml:208 msgid "failed to find grub2-mkconfig binary (but Grub2 was detected on guest)" msgstr "" #: input/OVA.ml:461 msgid "failed to parse line returned by tar: %S" msgstr "" #: output/output_ovirt_upload.ml:394 msgid "failed to start transfer, see earlier errors" msgstr "" #: output/output_ovirt_upload.ml:311 msgid "failed vmchecks, see earlier errors" msgstr "" #: common/mltools/tools_utils.ml:239 msgid "failure: %s" msgstr "" #: input/input_ova.ml:134 msgid "file ‘%s’ not found in the ova" msgstr "" #: common/mlcustomize/firstboot.ml:143 msgid "" "firstboot: unknown version for old firstboot.service file %s (md5=%s), it " "will not be removed" msgstr "" #: common/mltools/tools_utils.ml:258 msgid "generated by %s %s" msgstr "" #: output/create_libvirt_xml.ml:39 msgid "get_osinfo_id: unknown guest operating system: %s" msgstr "" #: output/output_glance.ml:66 msgid "" "glance: glance client is not installed or set up correctly. You may need to " "set environment variables or source a script to enable authentication. See " "preceding messages for details." msgstr "" #: output/output_glance.ml:139 msgid "glance: image upload to glance failed, see earlier errors" msgstr "" #: common/mlcustomize/firstboot.ml:386 common/mlcustomize/firstboot.ml:164 msgid "guest type %s is not supported" msgstr "" #: common/mlcustomize/firstboot.ml:413 msgid "guest type %s/%s is not supported" msgstr "" #: common/mltools/tools_utils.ml:749 msgid "" "host (%s/%s) and guest (%s/%s) are not compatible, so you cannot use command " "line options that involve running commands in the guest. Use --firstboot " "scripts instead." msgstr "" #: common/mlcustomize/customize_run.ml:209 msgid "hostname could not be set for this type of guest" msgstr "" #: common/mldrivers/linux_kernels.ml:342 msgid "ignoring kernel %s in bootloader, as it does not exist." msgstr "" #: output/output_vdsm.ml:160 msgid "image directory (%s) does not exist or is not a directory" msgstr "" #: input/parse_libvirt_xml.ml:81 msgid "in the libvirt XML metadata, is missing or empty" msgstr "" #: input/parse_libvirt_xml.ml:87 msgid "in the libvirt XML metadata, is missing or empty" msgstr "" #: input/input_vcenter_https.ml:52 input/input_libvirt.ml:107 msgid "in-place mode does not work with HTTP source" msgstr "" #: input/input_vddk.ml:146 msgid "in-place mode does not work with VDDK source" msgstr "" #: input/input_vmx.ml:43 msgid "in-place mode does not work with VMX source" msgstr "" #: input/input_xen_ssh.ml:50 msgid "in-place mode does not work with Xen over SSH source" msgstr "" #: output/output_kubevirt.ml:116 msgid "" "incorrect number of '-oo disk' parameters. This guest has %d disks, but the " "parameter was used %d times." msgstr "" #: input/input_xen_ssh.ml:119 msgid "" "input from xen over ssh does not support disks stored on remote block " "devices. See virt-v2v-input-xen(1) section \"Xen or ssh conversions from " "block devices\"." msgstr "" #. in-place/in_place.ml:397 #: v2v/v2v.ml:590 open/open.ml:238 inspector/inspector.ml:353 msgid "" "insufficient free space in the conversion server temporary directory %s " "(%s).\n" "\n" "Either free up space in that directory, or set the LIBGUESTFS_CACHEDIR " "environment variable to point to another directory with more than 1GB of " "free space.\n" "\n" "See also the virt-v2v(1) manual, section \"Minimum free space check in the " "host\"." msgstr "" #: common/mltools/tools_utils.ml:246 msgid "internal error: Not_found exception was thrown" msgstr "" #: common/mltools/tools_utils.ml:243 msgid "internal error: assertion failed at %s, line %d, char %d" msgstr "" #: common/mltools/tools_utils.ml:241 msgid "internal error: invalid argument: %s" msgstr "" #: common/mldrivers/linux.ml:128 msgid "internal error: is_file_owned: dpkg command returned no output" msgstr "" #: common/mldrivers/linux.ml:133 msgid "internal error: is_file_owned: unexpected output from dpkg command: %s" msgstr "" #: common/mldrivers/linux_bootloaders.ml:130 msgid "internal error: regular expression did not match ‘%s’" msgstr "" #: v2v/v2v.ml:548 msgid "internal error: wait returned unexpected process ID %d status \"%s\"" msgstr "" #: v2v/v2v.ml:114 inspector/inspector.ml:104 in-place/in_place.ml:111 msgid "invalid --mac ip option" msgstr "" #: v2v/v2v.ml:98 inspector/inspector.ml:88 in-place/in_place.ml:95 msgid "invalid -b/--bridge parameter" msgstr "" #: v2v/v2v.ml:90 inspector/inspector.ml:80 in-place/in_place.ml:87 msgid "invalid -n/--network parameter" msgstr "" #: input/parse_domain_from_vmx.ml:402 msgid "invalid cpuid.coresPerSocket < number of vCPUs" msgstr "" #. common/mlcustomize/customize_cmdline.ml:153 #. common/mlcustomize/customize_cmdline.ml:145 #: common/mlcustomize/customize_cmdline.ml:161 msgid "invalid format for '--%s' parameter, see the man page" msgstr "" #: common/mltools/tools_utils.ml:359 msgid "invalid format string for --machine-readable: %s" msgstr "" #: lib/utils.ml:279 msgid "invalid input filename (%s)" msgstr "" #: input/OVA.ml:445 msgid "invalid offset returned by tar: %S" msgstr "" #: common/mltools/tools_utils.ml:374 msgid "invalid output fd for --machine-readable: %s" msgstr "" #: common/mltools/tools_utils.ml:376 msgid "invalid output for --machine-readable: %s" msgstr "" #: common/mltools/tools_utils.ml:368 msgid "invalid output stream for --machine-readable: %s" msgstr "" #: common/mlcustomize/password.ml:73 msgid "invalid password selector ‘%s’; see the man page" msgstr "" #: input/OVA.ml:450 msgid "invalid size returned by tar: %S" msgstr "" #: common/mlcustomize/ssh_key.ml:45 msgid "invalid ssh-inject selector ‘%s’; see the man page" msgstr "" #: input/OVF.ml:82 msgid "invalid vmw:CoresPerSocket (%d) ignored" msgstr "" #: input/OVF.ml:88 msgid "invalid vmw:CoresPerSocket < number of cores" msgstr "" #: common/mldrivers/linux_bootloaders.ml:114 msgid "kernel %s is not under grub tree %s" msgstr "" #: common/mltools/tools_utils.ml:539 common/mltools/tools_utils.ml:458 msgid "killed by signal %d" msgstr "" #: common/mltools/tools_utils.ml:237 msgid "libguestfs error: %s" msgstr "" #: lib/libvirt_utils.ml:72 msgid "" "libvirt domain ‘%s’ is running or paused. Converting a live guest will " "result in corrupted output. However this is safe if you're converting from a " "snapshot" msgstr "" #: common/mlcustomize/customize_run.ml:47 msgid "log file %s: %s (ignored)" msgstr "" #: input/OVA.ml:147 msgid "" "making OVA directory public readable to work around libvirt bug https://" "bugzilla.redhat.com/1045069" msgstr "" #: input/input_ova.ml:86 msgid "manifest has a checksum for non-existent file %s (ignored)" msgstr "" #: common/mlcustomize/customize_cmdline.ml:472 msgid "md5|sha256|sha512" msgstr "" #: common/mlcustomize/customize_run.ml:119 msgid "method '%s' is no longer supported" msgstr "" #: common/mltools/JSON_parser.ml:39 msgid "missing value for the key ‘%s’" msgstr "" #: input/OVA.ml:276 msgid "more than one .ovf file was found in %s" msgstr "" #: common/mltools/JSON_parser.ml:34 msgid "more than value for the key ‘%s’" msgstr "" #: output/output_ovirt.ml:222 msgid "" "mount command failed, see earlier errors.\n" "\n" "This probably means you didn't specify the right %s path [-os %s], or else " "you need to rerun virt-v2v as root." msgstr "" #: common/mlcustomize/customize_run.ml:103 msgid "" "multiple --root-password/--password options set the password for user ‘%s’ " "twice" msgstr "" #: input/input_vddk.ml:319 msgid "" "nbdkit VDDK plugin is not installed or not working. It is required if you " "want to use VDDK.\n" "\n" "It 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 ’/%s/libvixDiskLib.so.?’.\n" "\n" "See also the virt-v2v-input-vmware(1) manual." msgstr "" #: input/input_vddk.ml:313 msgid "" "nbdkit VDDK plugin is not installed or not working. It is required if you " "want to use VDDK.\n" "\n" "The 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" "\n" "See also the virt-v2v-input-vmware(1) manual." msgstr "" #: lib/nbdkit.ml:223 msgid "nbdkit did not start up. See previous debugging messages for problems." msgstr "" #: lib/nbdkit.ml:225 msgid "" "nbdkit did not start up. There may be errors printed by nbdkit above.\n" "\n" "If the messages above are not sufficient to diagnose the problem then add " "the ‘virt-v2v -v -x’ options and examine the debugging output carefully." msgstr "" #: input/nbdkit_ssh.ml:36 input/nbdkit_curl.ml:32 input/input_vddk.ml:283 msgid "nbdkit is not installed or not working" msgstr "" #: input/input_disk.ml:92 msgid "" "nbdkit is not installed or not working. It is required to use ‘-i disk’." msgstr "" #: input/input_libvirt.ml:68 msgid "" "nbdkit is not installed or not working. It is required to use ‘-i libvirt|" "libvirtxml’." msgstr "" #: output/output.ml:178 output/output.ml:77 msgid "" "nbdkit is not installed or not working. It is required to use ‘-o disk’." msgstr "" #: output/output_null.ml:57 msgid "" "nbdkit is not installed or not working. It is required to use ‘-o null’." msgstr "" #: output/output_ovirt_upload.ml:163 msgid "" "nbdkit is not installed or not working. It is required to use ‘-o ovirt-" "upload’. See the virt-v2v-output-ovirt(1) manual." msgstr "" #: input/input_vddk.ml:285 msgid "nbdkit must be >= 1.45.11 for input from VDDK" msgstr "" #: output/output_ovirt_upload.ml:176 msgid "" "nbdkit python plugin is not installed or not working. It is required if you " "want to use ‘-o ovirt-upload’.\n" "\n" "See also the virt-v2v-output-ovirt(1) manual." msgstr "" #: output/output_ovirt_upload.ml:190 msgid "" "nbdkit was compiled without SELinux support. You will have to recompile " "nbdkit with libselinux-devel installed, or else set SELinux to Permissive " "mode while doing the conversion." msgstr "" #. input/input_libvirt.ml:76 #. input/input_disk.ml:98 #: input/nbdkit_ssh.ml:42 input/nbdkit_curl.ml:38 input/input_vddk.ml:289 msgid "nbdkit-cow-filter is not installed or not working" msgstr "" #: input/nbdkit_curl.ml:35 msgid "nbdkit-curl-plugin is not installed" msgstr "" #. input/input_disk.ml:96 #: output/output.ml:181 output/output.ml:80 input/input_libvirt.ml:72 msgid "nbdkit-file-plugin is not installed or not working" msgstr "" #: input/input_libvirt.ml:74 msgid "nbdkit-nbd-plugin is not installed or not working" msgstr "" #: output/output_null.ml:60 msgid "nbdkit-null-plugin is not installed or not working" msgstr "" #: input/nbdkit_ssh.ml:39 msgid "nbdkit-ssh-plugin is not installed" msgstr "" #: input/input_vddk.ml:287 msgid "nbdkit-vddk-plugin is not installed" msgstr "" #: lib/nbdkit.ml:56 msgid "nbdkit: unexpected version in --dump-config: %s" msgstr "" #. input/input_vcenter_https.ml:49 #. input/input_ova.ml:46 #. input/input_libvirt.ml:35 #. input/input_disk.ml:39 #: input/input_xen_ssh.ml:47 input/input_vmx.ml:40 msgid "no -io (input options) are allowed here" msgstr "" #: output/output_ovirt.ml:44 output/output_null.ml:42 #: output/output_glance.ml:44 msgid "no -oo (output options) are allowed here" msgstr "" #: input/OVA.ml:273 msgid "no .ovf file was found in %s" msgstr "" #: common/mldrivers/linux_bootloaders.ml:402 msgid "no bootloader detected" msgstr "" #: input/parse_domain_from_vmx.ml:359 msgid "no displayName key found in VMX file" msgstr "" #: input/OVF.ml:148 msgid "no href in ovf:File (id=%s)" msgstr "" #: common/mldrivers/linux_kernels.ml:194 msgid "no initrd was found in /boot matching %s %s." msgstr "" #: common/mldrivers/linux_kernels.ml:317 msgid "" "no installed kernel packages were found.\n" "\n" "This probably indicates that %s was unable to inspect this guest properly." msgstr "" #: common/mldrivers/linux_kernels.ml:354 msgid "" "no kernels were found in the bootloader configuration.\n" "\n" "This probably indicates that %s was unable to parse the bootloader " "configuration of this guest." msgstr "" #: output/python_script.ml:55 msgid "no python binary called ‘%s’ can be found on the $PATH" msgstr "" #: input/select_input.ml:106 msgid "" "no support for remote libvirt connections to '-ic %s'. The conversion may " "fail when it tries to read the source disks." msgstr "" #: lib/create_ovf.ml:1027 msgid "" "oVirt cannot emulate ‘%s’ sound cards. This sound card will be dropped from " "the output." msgstr "" #: lib/create_ovf.ml:875 lib/create_ovf.ml:512 msgid "oVirt does not support the output format ‘%s’, only raw or qcow2" msgstr "" #: output/output_openstack.ml:120 msgid "openstack: -oo server-id= not present" msgstr "" #: output/output_openstack.ml:338 msgid "" "openstack: failed to attach cinder volume to VM, see earlier error messages" msgstr "" #: output/output_openstack.ml:291 msgid "openstack: failed to create a cinder volume, see earlier error messages" msgstr "" #: output/output_openstack.ml:304 msgid "" "openstack: failed to query cinder volume status, see earlier error messages" msgstr "" #: output/output_openstack.ml:442 msgid "" "openstack: failed to set image properties on cinder volume, see earlier " "error messages" msgstr "" #: output/output_openstack.ml:199 msgid "" "openstack: precheck failed, there may be a problem with authentication, see " "earlier error messages" msgstr "" #: output/output_openstack.ml:311 msgid "" "openstack: unknown volume status \"%s\": expected \"creating\" or " "\"available\"" msgstr "" #: output/output.ml:133 msgid "output mode only supports raw or qcow2 format (format: %s)" msgstr "" #: input/OVF.ml:263 msgid "" "ova disk has an unknown VMware controller type (%d), please report this as a " "bug supplying the *.ovf file extracted from the ova" msgstr "" #: input/OVF.ml:259 msgid "" "ova disk has no parent controller, please report this as a bug supplying the " "*.ovf file extracted from the ova" msgstr "" #: output/output_ovirt_upload.ml:367 msgid "" "ovirt-upload: -of %s: Only output format ‘raw’ or ‘qcow2’ is supported. If " "the input is in a different format then force one of these output formats by " "adding either ‘-of raw’ or ‘-of qcow2’ on the command line." msgstr "" #: common/mlcustomize/password.ml:51 msgid "" "password-crypto: unknown algorithm %s, use \"md5\", \"sha256\", \"sha512\" " "or \"yescrypt\"" msgstr "" #: common/mlcustomize/password.ml:197 msgid "" "password: using insecure md5 password encryption for guest of type %s " "version %d.%d.\n" "If this is incorrect, use --password-crypto option and file a bug." msgstr "" #: common/mlcustomize/customize_run.ml:359 msgid "passwords could not be set for this type of guest" msgstr "" #: lib/qemuNBD.ml:125 msgid "" "qemu-nbd did not start up. See previous debugging messages for problems." msgstr "" #: lib/qemuNBD.ml:127 msgid "" "qemu-nbd did not start up. There may be errors printed by qemu-nbd above.\n" "\n" "If the messages above are not sufficient to diagnose the problem then add " "the ‘virt-v2v -v -x’ options and examine the debugging output carefully." msgstr "" #: lib/qemuNBD.ml:47 msgid "qemu-nbd: unexpected version in --version: %s" msgstr "" #: common/mlcustomize/customize_run.ml:77 msgid "random seed could not be set for this type of guest" msgstr "" #: input/parse_domain_from_vmx.ml:44 msgid "remote vmx ‘%s’ could not be parsed as a URI" msgstr "" #. common/mlcustomize/inject_virtio_win.ml:357 #. common/mlcustomize/inject_virtio_win.ml:352 #: common/mlcustomize/inject_virtio_win.ml:362 msgid "" "root directory ‘/’ is missing from the virtio-win directory or ISO.\n" "\n" "This should not happen and may indicate that virtio-win or virt-v2v is " "broken in some way. Please report this as a bug with a full debug log." msgstr "" #: common/mltools/tools_utils.ml:417 common/options/keys.c:264 #, c-format msgid "selector '%s': invalid TYPE" msgstr "" #: common/mltools/tools_utils.ml:409 common/options/keys.c:254 #, c-format msgid "selector '%s': missing FILENAME, or too many fields" msgstr "" #: common/mltools/tools_utils.ml:399 common/options/keys.c:232 #, c-format msgid "selector '%s': missing ID" msgstr "" #: common/mltools/tools_utils.ml:404 common/options/keys.c:245 #, c-format msgid "selector '%s': missing KEY_STRING, or too many fields" msgstr "" #: common/mltools/tools_utils.ml:401 common/options/keys.c:239 #, c-format msgid "selector '%s': missing TYPE" msgstr "" #: common/mltools/tools_utils.ml:413 common/options/keys.c:262 #, c-format msgid "selector '%s': too many fields" msgstr "" #: lib/utils.ml:35 msgid "signalled by signal %d" msgstr "" #: common/mlcustomize/guest_packages.ml:40 msgid "" "sorry, ‘%s’ with the ‘%s’ package manager has not been implemented yet.\n" "\n" "You can work around this by using one of the ‘--run*’ or ‘--firstboot*’ " "options instead (described in the virt-customize(1) manual)." msgstr "" #: common/mlcustomize/ssh_key.ml:57 msgid "ssh-inject: $HOME environment variable is not set" msgstr "" #: common/mlcustomize/ssh_key.ml:93 msgid "ssh-inject: key is an empty string" msgstr "" #: common/mlcustomize/ssh_key.ml:66 msgid "ssh-inject: no public key file found in %s" msgstr "" #: common/mlcustomize/ssh_key.ml:83 msgid "ssh-inject: public key file (%s) is empty" msgstr "" #: common/mlcustomize/ssh_key.ml:112 msgid "ssh-inject: the user %s does not exist on the guest" msgstr "" #. common/mltools/tools_utils.ml:461 #: lib/utils.ml:36 common/mltools/tools_utils.ml:542 msgid "stopped by signal %d" msgstr "" #: output/changeuid.ml:58 msgid "subprocess exited with non-zero error code %d" msgstr "" #: output/changeuid.ml:60 msgid "subprocess signalled or stopped by signal %d" msgstr "" #: lib/utils.ml:33 msgid "success" msgstr "" #: output/create_libvirt_xml.ml:297 msgid "" "target hypervisor does not support floppy devices, but floppy devices were " "found in the source guest" msgstr "" #: output/output_ovirt_upload.ml:156 msgid "" "the Python module ‘ovirtsdk4’ could not be loaded, is it installed? See " "previous messages for problems." msgstr "" #: output/output_ovirt_upload.ml:453 msgid "the cluster ‘%s’ does not support the architecture %s but %s" msgstr "" #: common/mlcustomize/customize_run.ml:59 msgid "" "the command may have failed because the network is disabled. Try either " "removing ‘--no-network’ or adding ‘--network’ on the command line." msgstr "" #: common/mltools/JSON_parser.ml:84 msgid "the key ‘%s’ was not found in a list of objects" msgstr "" #: output/output_ovirt_upload.ml:288 msgid "" "the number of ‘-oo ovirt-disk-uuid’ parameters passed on the command line " "has to match the number of guest disk images (for this guest: %d)" msgstr "" #: output/output_vdsm.ml:133 msgid "" "the number of ‘-oo vdsm-image-uuid’ and ‘-oo vdsm-vol-uuid’ parameters " "passed on the command line has to match the number of guest disk images (for " "this guest: %d)" msgstr "" #: output/output_libvirt.ml:239 msgid "the target hypervisor does not support a %s KVM guest" msgstr "" #: common/mltools/JSON_parser.ml:78 msgid "the value for key ‘%s’ is not a string as expected" msgstr "" #: common/mltools/JSON_parser.ml:50 msgid "the value for the key ‘%s’ is not a bool" msgstr "" #: common/mltools/JSON_parser.ml:45 msgid "the value for the key ‘%s’ is not a string" msgstr "" #: common/mltools/JSON_parser.ml:70 msgid "the value for the key ‘%s’ is not an integer" msgstr "" #: common/mltools/JSON_parser.ml:55 msgid "the value for the key ‘%s’ is not an object" msgstr "" #: common/mltools/JSON_parser.ml:59 msgid "the value is not an object" msgstr "" #: common/mltools/JSON_parser.ml:35 msgid "the value of the key ‘%s’ is not an object" msgstr "" #: lib/create_ovf.ml:519 msgid "" "the virtual size of the input disk %d is not an exact multiple of 512 " "bytes. The virtual size is: %Ld.\n" "\n" "This probably means something unexpected is going on, so please file a bug " "about this issue." msgstr "" #: output/output_openstack.ml:144 msgid "" "the ‘%s’ program is not available. It is needed to communicate with " "OpenStack." msgstr "" #: output/output_ovirt.ml:265 msgid "" "there are multiple UUIDs in the %s (%s). This is unexpected, and may be a " "bug in virt-v2v or OVirt." msgstr "" #: output/output_ovirt.ml:262 msgid "there are no UUIDs in the %s (%s). Is it really an OVirt %s?" msgstr "" #: common/mlcustomize/inject_virtio_win.ml:153 msgid "" "there are no virtio drivers available for this version of Windows (%d.%d %s " "%s %s). virt-v2v looks for drivers in %s\n" "\n" "The guest will be configured to use slower emulated devices." msgstr "" #: common/mlcustomize/inject_virtio_win.ml:175 msgid "" "there is no virtio block device driver for this version of Windows (%d.%d " "%s). virt-v2v looks for this driver in %s\n" "\n" "The guest will be configured to use a slower emulated device." msgstr "" #: common/mlcustomize/inject_virtio_win.ml:206 msgid "" "there is no virtio network driver for this version of Windows (%d.%d %s). " "virt-v2v looks for this driver in %s\n" "\n" "The guest will be configured to use a slower emulated device." msgstr "" #: input/parse_libvirt_xml.ml:545 msgid "this guest has a direct network interface which will be ignored" msgid_plural "this guest has direct network interfaces which will be ignored" msgstr[0] "" msgstr[1] "" msgstr[2] "" #: input/parse_libvirt_xml.ml:527 msgid "this guest has a passthrough host device which will be ignored" msgid_plural "this guest has passthrough host devices which will be ignored" msgstr[0] "" msgstr[1] "" msgstr[2] "" #: input/parse_libvirt_xml.ml:248 msgid "this guest has no non-removable disks" msgstr "" #: output/output.ml:65 msgid "this output module doesn't support copying more than %d disks" msgstr "" #: common/mlcustomize/timezone.ml:35 msgid "timezone '%s' does not exist, use a location like 'Europe/London'" msgstr "" #: common/mlcustomize/customize_run.ml:304 msgid "timezone could not be set for this type of guest" msgstr "" #: input/OVA.ml:318 msgid "unable to parse line from manifest file: %S" msgstr "" #: common/mltools/urandom.ml:37 msgid "unexpected end of file while reading /dev/urandom" msgstr "" #: input/input_libvirt.ml:196 msgid "unexpected output from the %s command" msgstr "" #: common/mltools/checksums.ml:58 msgid "unhandled checksum type ‘%s’" msgstr "" #: lib/types.ml:524 msgid "unknown --root option: %s" msgstr "" #: input/select_input.ml:51 msgid "unknown -i option: %s" msgstr "" #: output/select_output.ml:74 msgid "unknown -o option: %s" msgstr "" #: v2v/v2v.ml:164 msgid "unknown -oa option: %s" msgstr "" #: input/input_libvirt.ml:189 msgid "unknown method='%s'" msgstr "" #: input/OVF.ml:103 msgid "unknown Config:firmware value %s (expected \"bios\" or \"efi\")" msgstr "" #: lib/create_ovf.ml:446 lib/create_ovf.ml:247 msgid "unknown Windows 10 variant: %s (%s)" msgstr "" #: v2v/v2v.ml:319 in-place/in_place.ml:256 msgid "unknown block driver ‘--block-driver %s’" msgstr "" #: input/parse_domain_from_vmx.ml:415 msgid "unknown firmware value '%s', assuming BIOS" msgstr "" #: lib/create_ovf.ml:454 lib/create_ovf.ml:255 msgid "unknown guest operating system: %s %s %d.%d %s (%s)" msgstr "" #: v2v/v2v.ml:329 open/open.ml:132 inspector/inspector.ml:238 msgid "unknown input transport ‘-it %s’" msgstr "" #: input/parse_domain_from_vmx.ml:428 msgid "unknown sound device '%s' ignored" msgstr "" #: input/parse_libvirt_xml.ml:215 msgid "unknown sound model %s ignored" msgstr "" #: input/OVF.ml:156 msgid "unsupported compression in OVF: %s" msgstr "" #: input/input_vcenter_https.ml:123 msgid "" "vcenter: was not found in the XML. You need to " "upgrade to libvirt ≥ 1.2.20." msgstr "" #: input/vCenter.ml:79 msgid "vcenter: URL not found: %s" msgstr "" #: input/vCenter.ml:70 msgid "vcenter: incorrect username or password" msgstr "" #: input/vCenter.ml:72 msgid "" "vcenter: incorrect username or password. You might need to specify the " "username in the URI like this: [vpx|esx|..]://USERNAME@[etc]" msgstr "" #: input/vCenter.ml:84 msgid "vcenter: invalid response from server: %s" msgstr "" #: input/vCenter.ml:194 msgid "vcenter: no status code in output of ‘curl’ command." msgstr "" #: output/output_vdsm.ml:148 msgid "vdsm: invalid -os parameter does not contain a valid UUID: %s" msgstr "" #: output/output_openstack.ml:56 msgid "" "virt-v2v -oo server-id= [os-*=...]\n" "\n" "Specify the name or UUID of the conversion appliance using\n" "\n" " virt-v2v ... -o openstack -oo server-id=\n" "\n" "When virt-v2v runs it will attach the Cinder volumes to the\n" "conversion appliance, so this name or UUID must be the name\n" "of the virtual machine on OpenStack where virt-v2v is running.\n" "\n" "In addition, all usual OpenStack “os-*” parameters or “OS_*”\n" "environment variables can be used.\n" "\n" "Openstack “--os-*” parameters must be written as “virt-v2v -oo os-*”.\n" "\n" "For example:\n" "\n" " virt-v2v -oo os-username=\n" "\n" " equivalent to openstack: --os-username=\n" " or the environment variable: OS_USERNAME=\n" "\n" " virt-v2v -oo os-project-name=\n" "\n" " equivalent to openstack: --os-project-name=\n" " or the environment variable: OS_PROJECT_NAME=\n" "\n" "The os-* parameters and environment variables are optional.\n" msgstr "" #: input/parse_libvirt_xml.ml:189 msgid "" "virt-v2v does not support local displays, so in the " "input libvirt XML was ignored" msgstr "" #: input/select_input.ml:83 msgid "virt-v2v-in-place does not support remote libvirt URIs" msgstr "" #: input/parse_domain_from_vmx.ml:50 msgid "vmx URI path component looks incorrect" msgstr "" #: input/parse_domain_from_vmx.ml:48 msgid "vmx URI remote server name omitted" msgstr "" #: input/parse_domain_from_vmx.ml:46 msgid "vmx URI start with ‘ssh://...’" msgstr "" #: input/VMX.ml:313 msgid "vmx parser: cannot parse this line, ignoring: %s" msgstr "" #: input/VMX.ml:346 msgid "vmx parser: duplicate key '%s' ignored" msgstr "" #: output/output_openstack.ml:299 msgid "wait for cinder volume status to change to \"available\"" msgstr "" #: output/output_openstack.ml:360 msgid "waiting for cinder volume %s to attach to the conversion appliance" msgstr "" #: open/open.ml:136 msgid "you must supply the --run parameter" msgstr "" #: input/input_xen_ssh.ml:87 input/input_vddk.ml:189 msgid "‘-ic %s’ URL does not contain a host name field" msgstr "" #: input/input_vddk.ml:273 msgid "‘-io vddk-file=’ must be used exactly %d times" msgstr "" #: input/input_vddk.ml:297 msgid "" "‘-io vddk-libdir=%s’ does not point to a directory. See the virt-v2v-input-" "vmware(1) manual." msgstr "" #: output/output.ml:85 msgid "" "‘-oo compressed’ is only allowed when the output format is a local qcow2-" "format file, i.e. ‘-of qcow2’" msgstr "" #: input/input_vddk.ml:232 msgid "" "‘openssl’ command not found: automatically detecting thumbprint is not " "possible, so you must use ‘-io vddk-thumbprint=XX:XX...’" msgstr "" #: common/mltools/getopt-c.c:68 #, c-format msgid "Try ‘%s --help’ or consult %s(1) for more information.\n" msgstr "" #: common/mltools/getopt-c.c:187 #, c-format msgid "%s: ‘%s’ is not a numeric value.\n" msgstr "" #: common/mltools/getopt-c.c:193 #, c-format msgid "%s: %s: integer out of range\n" msgstr "" #: common/mltools/getopt-c.c:383 #, c-format msgid "%s: ‘%s’ is not allowed for -%c; allowed values are:\n" msgstr "" #: common/mltools/getopt-c.c:386 #, c-format msgid "%s: ‘%s’ is not allowed for %s%s; allowed values are:\n" msgstr "" #: common/mltools/getopt-c.c:421 #, c-format msgid "Extra parameter on the command line: ‘%s’.\n" msgstr "" #: common/options/config.c:72 #, c-format msgid "%s: line %d: error parsing configuration file: %s" msgstr "" #: common/options/decrypt.c:52 #, c-format msgid "string size overflow" msgstr "" #: common/options/decrypt.c:170 #, c-format msgid "" "'clevis_luks_unlock', needed for decrypting %s, is unavailable in this " "libguestfs version" msgstr "" #: common/options/decrypt.c:184 #, c-format msgid "" "could not find key to open LUKS encrypted %s.\n" "\n" "Try using --key on the command line.\n" "\n" "Original error: %s (%d)" msgstr "" #: common/options/inspect.c:78 #, c-format msgid "" "%s: no operating system was found on this disk\n" "\n" "If using guestfish ‘-i’ option, remove this option and instead\n" "use the commands ‘run’ followed by ‘list-filesystems’.\n" "You can then mount filesystems you want by hand using the\n" "‘mount’ or ‘mount-ro’ command.\n" "\n" "If using guestmount ‘-i’, remove this option and choose the\n" "filesystem(s) you want to see by manually adding ‘-m’ option(s).\n" "Use ‘virt-filesystems’ to see what filesystems are available.\n" "\n" "If using other virt tools, this disk image won’t work\n" "with these tools. Use the guestfish equivalent commands\n" "(see the virt tool manual page).\n" msgstr "" #: common/options/inspect.c:99 #, c-format msgid "" "%s: multi-boot operating systems are not supported\n" "\n" "If using guestfish ‘-i’ option, remove this option and instead\n" "use the commands ‘run’ followed by ‘list-filesystems’.\n" "You can then mount filesystems you want by hand using the\n" "‘mount’ or ‘mount-ro’ command.\n" "\n" "If using guestmount ‘-i’, remove this option and choose the\n" "filesystem(s) you want to see by manually adding ‘-m’ option(s).\n" "Use ‘virt-filesystems’ to see what filesystems are available.\n" "\n" "If using other virt tools, multi-boot operating systems won’t work\n" "with these tools. Use the guestfish equivalent commands\n" "(see the virt tool manual page).\n" msgstr "" #: common/options/inspect.c:161 #, c-format msgid "%s: some filesystems could not be mounted (ignored)\n" msgstr "" #: common/options/inspect.c:178 #, c-format msgid "Operating system: %s\n" msgstr "" #: common/options/inspect.c:196 #, c-format msgid "%s mounted on %s\n" msgstr "" #: common/options/keys.c:63 #, c-format msgid "Enter key or passphrase (\"%s\"): " msgstr "" #: common/options/keys.c:146 #, c-format msgid "size_t overflow" msgstr "" #: common/options/keys.c:193 #, c-format msgid "could not read key from user" msgstr "" #: common/options/options.c:283 #, c-format msgid "%s: ‘%s’ could not be mounted.\n" msgstr "" #: common/options/options.c:287 #, c-format msgid "" "%s: Check mount(8) man page to ensure options ‘%s’\n" "%s: are supported by the filesystem that is being mounted.\n" msgstr "" #: common/options/options.c:291 #, c-format msgid "%s: Did you mean to mount one of these filesystems?\n" msgstr "" #: common/options/options.c:304 #, c-format msgid "cannot determine the subvolume for %s: %s (%d)" msgstr "" #: common/options/uri.c:119 #, c-format msgid "%s: --add: could not parse URI ‘%s’\n" msgstr "" #: common/options/uri.c:130 #, c-format msgid "%s: %s: scheme of URI is NULL or empty\n" msgstr "" #: common/options/uri.c:138 #, c-format msgid "%s: %s: cannot have both a server name and a socket query parameter\n" msgstr "" #: common/utils/utils.c:107 #, c-format msgid "%s exited successfully" msgstr "" #: common/utils/utils.c:110 #, c-format msgid "%s exited with error status %d" msgstr "" #: common/utils/utils.c:114 #, c-format msgid "%s killed by signal %d (%s)" msgstr "" #: common/utils/utils.c:118 #, c-format msgid "%s stopped by signal %d (%s)" msgstr "" #: common/utils/utils.c:122 #, c-format msgid "%s exited for an unknown reason (status %d)" msgstr "" ================================================ FILE: po/si.po ================================================ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR Red Hat Inc. # This file is distributed under the same license as the virt-v2v package. # FIRST AUTHOR , YEAR. # msgid "" msgstr "" "Project-Id-Version: virt-v2v 1.43.3\n" "Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?" "component=libguestfs&product=Virtualization+Tools\n" "POT-Creation-Date: 2025-02-16 17:05+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" "Language: si\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" #: input/input_ova.ml:135 common/mltools/tools_utils.ml:235 msgid "%s" msgstr "" #: common/mltools/getopt.ml:73 msgid "" "%s\n" "Options:\n" msgstr "" #: common/mltools/tools_utils.ml:695 common/mlcustomize/customize_run.ml:390 msgid "%s (ignored)" msgstr "" #: common/mltools/checksums.ml:71 msgid "%s did not return any output" msgstr "" #: common/mlcustomize/customize_run.ml:183 msgid "%s does not exist in the guest" msgstr "" #: output/output_ovirt.ml:275 msgid "" "%s does not exist or is not a directory.\n" "\n" "Most likely cause: Either the %s (%s) has not been attached to any Data " "Center, or the path %s is not an %s at all.\n" "\n" "You have to attach the %s to a Data Center using the oVirt user interface " "first.\n" "\n" "If you don’t know what the %s mount point should be then you can also find " "this out through the oVirt user interface." msgstr "" #: common/mlcustomize/customize_run.ml:113 msgid "%s ignored for non-Windows guest" msgstr "" #: common/mlcustomize/customize_run.ml:186 msgid "%s is not a regular file in the guest" msgstr "" #. open/open.ml:39 #. inspector/inspector.ml:153 #. inspector/inspector.ml:40 #. in-place/in_place.ml:164 #. in-place/in_place.ml:45 #: v2v/v2v.ml:194 v2v/v2v.ml:183 v2v/v2v.ml:159 v2v/v2v.ml:44 open/open.ml:68 msgid "%s option used more than once on the command line" msgstr "" #: common/mltools/tools_utils.ml:231 common/mltools/tools_utils.ml:202 msgid "%s: %s" msgstr "" #: common/mltools/tools_utils.ml:233 msgid "%s: %s: %s" msgstr "" #: common/mltools/on_exit.ml:77 msgid "" "%s: Exiting on signal %s\n" "%!" msgstr "" #: common/mlcustomize/inject_virtio_win.ml:411 msgid "%s: cannot open virtio-win ISO file: %s" msgstr "" #: common/mlcustomize/customize_run.ml:64 msgid "%s: command exited with an error" msgstr "" #: v2v/v2v.ml:277 msgid "" "%s: convert a guest to use KVM\n" "\n" "virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi -os imported " "esx_guest\n" "\n" "virt-v2v -i libvirtxml guest-domain.xml -o local -os /var/tmp\n" "\n" "virt-v2v -i disk disk.img -o local -os /var/tmp\n" "\n" "There is a companion front-end called \"virt-p2v\" which comes as an\n" "ISO or CD image that can be booted on physical machines.\n" "\n" "A short summary of the options is given below. For detailed help please\n" "read the man page virt-v2v(1).\n" msgstr "" #: in-place/in_place.ml:217 msgid "" "%s: convert a guest to use KVM in-place\n" "\n" "Note this program modifies the guest in-place with no backup.\n" "Normally you should use virt-v2v.\n" "\n" "virt-v2v-in-place -i libvirtxml guest-domain.xml\n" "\n" "virt-v2v-in-place -i disk disk.img\n" "\n" "A short summary of the options is given below. For detailed help please\n" "read the man page virt-v2v-in-place(1).\n" msgstr "" #: input/input_vddk.ml:207 msgid "%s: enter password for ‘%s’: " msgstr "" #: common/mltools/tools_utils.ml:172 msgid "%s: error: %s" msgstr "" #: inspector/inspector.ml:198 msgid "" "%s: estimate disk space needed before virt-v2v conversion\n" "\n" "virt-v2v-inspector -i disk disk.img [-O output.xml]\n" "\n" "A short summary of the options is given below. For detailed help please\n" "read the man page virt-v2v-inspector(1).\n" msgstr "" #: open/open.ml:94 msgid "" "%s: open the virt-v2v input and run a program on it\n" "\n" "virt-v2v-open -i disk disk.img --run 'virt-inspector --format=raw @@'\n" "\n" "A short summary of the options is given below. For detailed help please\n" "read the man page virt-v2v-open(1).\n" msgstr "" #: common/mltools/tools_utils.ml:726 msgid "%s: operation timed out" msgstr "" #: input/OVA.ml:127 input/OVA.ml:121 msgid "" "%s: unsupported file format\n" "\n" "Formats which we currently understand for '-i ova' are: tar (uncompressed, " "compress with gzip or xz), zip" msgstr "" #: common/mltools/tools_utils.ml:191 msgid "%s: warning: %s" msgstr "" #. common/mlcustomize/customize_cmdline.ml:258 #: common/mlcustomize/customize_cmdline.ml:367 msgid "'CMD+ARGS'" msgstr "" #: common/mlcustomize/customize_run.ml:133 msgid "" "--append-line: line must not contain newline characters. Use the --append-" "line option multiple times to add several lines." msgstr "" #: common/mlcustomize/customize_run.ml:152 msgid "--chown: could not parse numeric UID:GID from %s:%s" msgstr "" #: common/mlcustomize/customize_run.ml:216 msgid "" "--inject-blnsvr: blnsvr.exe not found in virtio-win source that you specified" msgstr "" #: common/mlcustomize/customize_run.ml:225 msgid "" "--inject-qemu-ga: QEMU Guest Agent MSI not found in virtio-win source that " "you specified" msgstr "" #: common/mlcustomize/customize_run.ml:241 msgid "" "--inject-virtio-win: virtio drivers were not found for this Windows version " "in the virtio-win source that you specified" msgstr "" #: v2v/v2v.ml:146 inspector/inspector.ml:136 in-place/in_place.ml:143 msgid "--mac ip prefix length field is out of range" msgstr "" #: v2v/v2v.ml:340 msgid "--parallel parameter must be >= 1" msgstr "" #: input/input_disk.ml:42 msgid "-i disk: expecting a disk image (filename) on the command line" msgstr "" #: input/input_xen_ssh.ml:65 msgid "-i libvirt: expecting -ic parameter for Xen over SSH connection" msgstr "" #: input/input_vddk.ml:142 input/input_vcenter_https.ml:88 msgid "-i libvirt: expecting -ic parameter for vcenter connection" msgstr "" #: input/input_vcenter_https.ml:101 msgid "-i libvirt: expecting -ic parameter to contain vcenter server name" msgstr "" #: input/input_vcenter_https.ml:78 msgid "-i libvirt: expecting -ip passwordfile parameter for vCenter connection" msgstr "" #. input/input_vcenter_https.ml:70 #. input/input_libvirt.ml:41 #: input/input_xen_ssh.ml:57 input/input_vddk.ml:132 msgid "-i libvirt: expecting a libvirt guest name on the command line" msgstr "" #: input/input_libvirt.ml:59 msgid "-i libvirtxml: expecting a libvirt XML filename on the command line" msgstr "" #: input/input_ova.ml:243 msgid "-i ova: OVF references file ‘%s’ which was not found in the OVA archive" msgstr "" #: input/input_ova.ml:78 msgid "" "-i ova: corrupt OVA: checksum of disk %s does not match manifest (actual = " "%s, expected = %s)" msgstr "" #: input/input_ova.ml:52 msgid "-i ova: expecting an OVA file name on the command line" msgstr "" #: input/OVA.ml:361 msgid "" "-i ova: invalid OVA file: path ‘%s’ references a file outside the archive" msgstr "" #: input/input_vmx.ml:57 msgid "-i vmx: cannot use -it vddk in this input mode" msgstr "" #: input/input_vmx.ml:60 msgid "-i vmx: expecting a VMX file or ssh:// URI" msgstr "" #: input/vCenter.ml:159 msgid "" "-ip PASSWORD_FILE parameter ignored because 'user@' was not given in the URL" msgstr "" #: input/input_vddk.ml:119 msgid "-it vddk: ‘-io %s’ is not a valid input option" msgstr "" #: output/output.ml:54 msgid "-o %s: %s option cannot be used in this output mode" msgstr "" #: output/output_disk.ml:66 msgid "-o disk: output directory was not specified, use '-os /dir'" msgstr "" #: output/output_libvirt.ml:59 output/output_disk.ml:56 msgid "-o disk: unknown output option ‘-oo %s’" msgstr "" #: output/output_kubevirt.ml:81 msgid "-o kubevirt: output directory was not specified, use '-os /dir'" msgstr "" #: output/output_kubevirt.ml:91 msgid "" "-o kubevirt: the guest name must contain only lowercase alphanumeric " "characters, '-' or '.', and must start and end with an alphanumeric " "character. Rerun virt-v2v with the '-on name' option to rename it." msgstr "" #: output/output_kubevirt.ml:71 msgid "-o kubevirt: unknown output option ‘-oo %s’" msgstr "" #: output/output_libvirt.ml:120 msgid "" "-o libvirt: output pool ‘%s’ does not have /pool/target/path element. See " "virt-v2v-output-local(1)" msgstr "" #: output/output_libvirt.ml:124 msgid "" "-o libvirt: output pool ‘%s’ has type='dir' but the /pool/target/path " "element is not a local directory. See virt-v2v-output-local(1)" msgstr "" #: output/output_libvirt.ml:116 msgid "" "-o libvirt: output pool ‘%s’ is not a directory (type='dir'). See virt-v2v-" "output-local(1)" msgstr "" #: output/output_openstack.ml:88 msgid "-o openstack mode only supports -oa sparse -of raw" msgstr "" #: output/output_openstack.ml:115 msgid "-o openstack: unknown output option ‘-oo %s’" msgstr "" #: output/output_ovirt_upload.ml:97 msgid "-o ovirt-upload: -oo ovirt-cafile set more than once" msgstr "" #: output/output_ovirt_upload.ml:101 msgid "-o ovirt-upload: -oo ovirt-cluster set more than once" msgstr "" #: output/output_ovirt_upload.ml:112 msgid "-o ovirt-upload: invalid UUID for -oo ovirt-disk-uuid" msgstr "" #: output/output_ovirt_upload.ml:76 msgid "" "-o ovirt-upload: output password file was not specified, use ‘-op’ to point " "to a file which contains the password used to connect to the oVirt server" msgstr "" #: output/output_ovirt_upload.ml:83 msgid "-o ovirt-upload: output storage was not specified, use ‘-os’" msgstr "" #: output/output_ovirt_upload.ml:116 msgid "-o ovirt-upload: unknown output option ‘-oo %s’" msgstr "" #: output/output_ovirt_upload.ml:68 msgid "" "-o ovirt-upload: use ‘-oc’ to point to the oVirt server REST API URL, which " "is usually https://servername/ovirt-engine/api" msgstr "" #: output/output_ovirt.ml:51 msgid "-o ovirt: -os option was not specified" msgstr "" #: output/output_qemu.ml:72 msgid "-o qemu: output directory was not specified, use '-os /dir'" msgstr "" #: output/output_qemu.ml:63 msgid "-o qemu: unknown output option ‘-oo %s’" msgstr "" #: output/output_vdsm.ml:102 msgid "-o vdsm: -oo vdsm-image-uuid was not specified" msgstr "" #: output/output_vdsm.ml:81 msgid "-o vdsm: -oo vdsm-ovf-output set more than once" msgstr "" #: output/output_vdsm.ml:77 msgid "-o vdsm: -oo vdsm-vm-uuid set more than once" msgstr "" #: output/output_vdsm.ml:110 msgid "-o vdsm: -os option was not specified" msgstr "" #: output/output_vdsm.ml:97 msgid "-o vdsm: either -oo vdsm-vol-uuid or -oo vdsm-vm-uuid was not specified" msgstr "" #: output/output_vdsm.ml:90 msgid "-o vdsm: unknown output option ‘-oo %s’" msgstr "" #: output/output_vdsm.ml:74 msgid "-o vdsm: unknown vdsm-compat level ‘%s’" msgstr "" #. output/output_kubevirt.ml:84 #. output/output_disk.ml:68 #: output/output_vdsm.ml:112 output/output_qemu.ml:74 msgid "-os %s: output directory does not exist or is not a directory" msgstr "" #: input/parse_libvirt_xml.ml:279 msgid " missing 'method' attribute, ignoring" msgstr "" #: input/parse_libvirt_xml.ml:291 msgid " unknown fail='%s' attribute, ignoring" msgstr "" #: input/parse_libvirt_xml.ml:370 input/parse_libvirt_xml.ml:317 msgid " was ignored" msgstr "" #: input/parse_libvirt_xml.ml:338 msgid " with was ignored" msgstr "" #: input/parse_libvirt_xml.ml:365 msgid " with was ignored" msgstr "" #: input/parse_libvirt_xml.ml:299 msgid " element with no type attribute ignored" msgstr "" #: input/parse_libvirt_xml.ml:167 msgid " in the input libvirt XML was ignored" msgstr "" #: input/parse_libvirt_xml.ml:414 msgid "" " was ignored because the device name could not be recognized" msgstr "" #: input/input_vddk.ml:176 msgid "" " was not found in the output of ‘virsh dumpxml \"%s\"’. The " "most likely reason is that libvirt is too old, try upgrading libvirt to ≥ " "3.7." msgstr "" #: common/mlcustomize/customize_cmdline.ml:305 msgid "Add package(s) to install" msgstr "" #: common/mlcustomize/customize_cmdline.ml:270 msgid "Add package(s) to install at first boot" msgstr "" #: common/mlcustomize/customize_cmdline.ml:175 msgid "Append line(s) to the file" msgstr "" #: common/mlcustomize/customize_run.ml:137 msgid "Appending line to %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:197 msgid "Change the owner user and group ID of a file or directory" msgstr "" #: common/mlcustomize/customize_cmdline.ml:186 msgid "Change the permissions of a file" msgstr "" #: common/mlcustomize/customize_run.ml:155 msgid "Changing owner of %s to %d:%d" msgstr "" #: common/mlcustomize/customize_run.ml:141 msgid "Changing permissions of %s to %s" msgstr "" #: input/input_libvirt.ml:174 input/input_libvirt.ml:157 msgid "Checking %s checksum of disk %d/%d" msgstr "" #: common/mlcustomize/customize_cmdline.ml:488 msgid "Compatibility option doing nothing" msgstr "" #: common/mlcustomize/customize_cmdline.ml:219 msgid "Copy files in disk image" msgstr "" #: common/mlcustomize/customize_cmdline.ml:397 msgid "Copy local files or directories from a tarball into image" msgstr "" #: common/mlcustomize/customize_cmdline.ml:230 msgid "Copy local files or directories into image" msgstr "" #: common/mlcustomize/customize_run.ml:168 msgid "Copying (in image): %s to %s" msgstr "" #: v2v/v2v.ml:518 msgid "Copying disk %d/%d" msgstr "" #: common/mlcustomize/customize_run.ml:172 msgid "Copying: %s to %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:322 msgid "Create a directory" msgstr "" #: common/mlcustomize/customize_cmdline.ml:316 msgid "Create symbolic links" msgstr "" #: v2v/v2v.ml:567 msgid "Creating output metadata" msgstr "" #: common/mlcustomize/customize_cmdline.ml:321 msgid "DIR" msgstr "" #: common/mlcustomize/customize_cmdline.ml:236 msgid "Delete a file or directory" msgstr "" #: common/mlcustomize/customize_run.ml:176 msgid "Deleting: %s" msgstr "" #: common/mltools/getopt.ml:225 msgid "Display brief help" msgstr "" #: common/mltools/tools_utils.ml:385 msgid "Display version and exit" msgstr "" #: common/mlcustomize/customize_cmdline.ml:482 msgid "Do not relabel files with correct SELinux labels" msgstr "" #: v2v/v2v.ml:248 inspector/inspector.ml:177 in-place/in_place.ml:190 msgid "Don't trim filesystems before conversion" msgstr "" #: common/mltools/tools_utils.ml:389 msgid "Don’t print progress messages" msgstr "" #: common/mltools/tools_utils.ml:420 msgid "Don’t turn off echo for passphrases" msgstr "" #: common/mlcustomize/customize_cmdline.ml:247 msgid "Edit file using Perl expression" msgstr "" #: common/mlcustomize/customize_run.ml:180 msgid "Editing: %s" msgstr "" #: common/mltools/tools_utils.ml:386 msgid "Enable libguestfs debugging messages" msgstr "" #: common/mltools/tools_utils.ml:387 msgid "Enable tracing of libguestfs calls" msgstr "" #: output/output_ovirt.ml:77 msgid "Export Storage Domain" msgstr "" #: open/open.ml:88 msgid "External command to run" msgstr "" #. common/mlcustomize/customize_cmdline.ml:408 #. common/mlcustomize/customize_cmdline.ml:373 #: common/mlcustomize/customize_cmdline.ml:414 msgid "FILE" msgstr "" #: common/mlcustomize/customize_cmdline.ml:455 msgid "FILE:CONTENT" msgstr "" #: common/mlcustomize/customize_cmdline.ml:444 msgid "FILE:DEST" msgstr "" #: common/mlcustomize/customize_cmdline.ml:242 msgid "FILE:EXPR" msgstr "" #: common/mlcustomize/customize_cmdline.ml:170 msgid "FILE:LINE" msgstr "" #: common/mlcustomize/customize_cmdline.ml:203 msgid "FILENAME" msgstr "" #. in-place/in_place.ml:378 #: v2v/v2v.ml:571 open/open.ml:220 inspector/inspector.ml:334 msgid "Finishing off" msgstr "" #: common/mlcustomize/customize_cmdline.ml:275 msgid "HOSTNAME" msgstr "" #: v2v/v2v.ml:254 inspector/inspector.ml:183 in-place/in_place.ml:194 msgid "How to choose root filesystem" msgstr "" #: common/mltools/tools_utils.ml:177 msgid "" "If reporting bugs, run %s with debugging enabled and include the complete " "output:\n" "\n" " %s -v -x [...]" msgstr "" #: common/mlcustomize/customize_cmdline.ml:386 msgid "Inject a public key into the guest" msgstr "" #: common/mlcustomize/customize_cmdline.ml:282 msgid "Inject the Balloon Server into a Windows guest" msgstr "" #: common/mlcustomize/customize_cmdline.ml:288 msgid "Inject the QEMU Guest Agent into a Windows guest" msgstr "" #: common/mlcustomize/customize_cmdline.ml:294 msgid "Inject virtio-win drivers into a Windows guest" msgstr "" #. in-place/in_place.ml:176 #: v2v/v2v.ml:216 open/open.ml:80 inspector/inspector.ml:165 msgid "Input format" msgstr "" #: input/input_vddk.ml:77 msgid "" "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" "\n" "Refer to nbdkit-vddk-plugin(1) and the VDDK documentation for further\n" "information on these settings.\n" msgstr "" #: v2v/v2v.ml:222 open/open.ml:86 inspector/inspector.ml:171 msgid "Input transport" msgstr "" #: common/mlcustomize/customize_run.ml:191 msgid "Installing firstboot command: %s" msgstr "" #: common/mlcustomize/customize_run.ml:195 msgid "Installing firstboot packages: %s" msgstr "" #: common/mlcustomize/customize_run.ml:202 msgid "Installing firstboot script: %s" msgstr "" #: common/mlcustomize/customize_run.ml:248 msgid "Installing packages: %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:225 msgid "LOCALPATH:REMOTEDIR" msgstr "" #. in-place/in_place.ml:174 #: v2v/v2v.ml:214 open/open.ml:78 inspector/inspector.ml:163 msgid "Libvirt URI" msgstr "" #: common/mlcustomize/customize_run.ml:255 msgid "Linking: %s -> %s" msgstr "" #. common/mlcustomize/customize_cmdline.ml:287 #. common/mlcustomize/customize_cmdline.ml:281 #: common/mlcustomize/customize_cmdline.ml:293 msgid "METHOD" msgstr "" #: common/mltools/tools_utils.ml:426 msgid "Make output machine readable" msgstr "" #: common/mlcustomize/customize_run.ml:260 msgid "Making directory: %s" msgstr "" #: v2v/v2v.ml:226 inspector/inspector.ml:173 in-place/in_place.ml:182 msgid "Map NIC to network or bridge or assign static IP" msgstr "" #: v2v/v2v.ml:210 inspector/inspector.ml:159 in-place/in_place.ml:170 msgid "Map bridge ‘in’ to ‘out’" msgstr "" #: v2v/v2v.ml:230 inspector/inspector.ml:179 in-place/in_place.ml:186 msgid "Map network ‘in’ to ‘out’" msgstr "" #: common/mlcustomize/customize_cmdline.ml:333 msgid "Move files in disk image" msgstr "" #: common/mlcustomize/customize_run.ml:264 msgid "Moving: %s -> %s" msgstr "" #. input/input_vcenter_https.ml:45 #. input/input_ova.ml:35 #. input/input_libvirt.ml:233 #. input/input_libvirt.ml:221 #. input/input_disk.ml:35 #: input/input_xen_ssh.ml:43 input/input_vmx.ml:36 msgid "No input options can be used in this mode.\n" msgstr "" #: output/output_ovirt.ml:40 output/output_null.ml:38 #: output/output_glance.ml:40 msgid "No output options can be used in this mode.\n" msgstr "" #: output/output_vdsm.ml:166 msgid "OVF (metadata) directory (%s) does not exist or is not a directory" msgstr "" #: common/mlcustomize/firstboot.ml:268 msgid "" "One of rhsrvany.exe or pvvxsvc.exe is missing in %s. One of them is " "required in order to install Windows firstboot scripts. You can get one by " "building rhsrvany (https://github.com/rwmjones/rhsrvany)" msgstr "" #: v2v/v2v.ml:236 msgid "Output hypervisor connection" msgstr "" #: output/output_ovirt_upload.ml:51 msgid "" "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" "\n" "You can override the UUIDs of the disks, instead of using autogenerated " "UUIDs\n" "after their uploads (if you do, you must supply one for each disk):\n" "\n" " -oo ovirt-disk-uuid=UUID Disk UUID\n" msgstr "" #: output/output_qemu.ml:44 msgid "" "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" msgstr "" #: output/output_vdsm.ml:43 msgid "" "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" "\n" "For 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" msgstr "" #: output/output_disk.ml:44 msgid "" "Output options that can be used with -o disk:\n" "\n" " -oo compressed Compress the output file (used only with -of qcow2)\n" msgstr "" #: output/output_kubevirt.ml:51 msgid "" "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" msgstr "" #: output/output_libvirt.ml:47 msgid "" "Output options that can be used with -o libvirt:\n" "\n" " -oo compressed Compress the output file (used only with -of qcow2)\n" msgstr "" #. common/mlcustomize/customize_cmdline.ml:235 #: common/mlcustomize/customize_cmdline.ml:420 msgid "PATH" msgstr "" #: common/mlcustomize/customize_cmdline.ml:181 msgid "PERMISSIONS:FILE" msgstr "" #. common/mlcustomize/customize_cmdline.ml:300 #. common/mlcustomize/customize_cmdline.ml:265 #: common/mlcustomize/customize_cmdline.ml:427 msgid "PKG,PKG.." msgstr "" #: v2v/v2v.ml:263 in-place/in_place.ml:203 msgid "Prefer 'virtio-blk' or 'virtio-scsi'" msgstr "" #: v2v/v2v.ml:252 in-place/in_place.ml:192 msgid "Print source and stop" msgstr "" #: common/mlcustomize/customize_cmdline.ml:208 msgid "Read customize commands from file" msgstr "" #: common/mltools/tools_utils.ml:421 msgid "Read passphrases from stdin" msgstr "" #: common/mlcustomize/customize_cmdline.ml:421 msgid "Recursively truncate all files in directory" msgstr "" #: common/mlcustomize/customize_run.ml:298 msgid "Recursively truncating: %s" msgstr "" #: v2v/v2v.ml:240 msgid "Rename guest when converting" msgstr "" #: common/mlcustomize/customize_cmdline.ml:259 msgid "Run command at first guest boot" msgstr "" #: common/mlcustomize/customize_cmdline.ml:368 msgid "Run command in disk image" msgstr "" #: common/mlcustomize/customize_cmdline.ml:253 msgid "Run script at first guest boot" msgstr "" #: common/mlcustomize/customize_cmdline.ml:362 msgid "Run script in disk image" msgstr "" #: common/mlcustomize/customize_cmdline.ml:409 msgid "Run touch on a file" msgstr "" #: v2v/v2v.ml:250 msgid "Run up to N instances of nbdcopy in parallel" msgstr "" #: open/open.ml:188 msgid "Running external command" msgstr "" #: common/mlcustomize/customize_run.ml:307 msgid "Running touch: %s" msgstr "" #. common/mlcustomize/customize_run.ml:159 #: common/mlcustomize/customize_run.ml:274 msgid "Running: %s" msgstr "" #. common/mlcustomize/customize_cmdline.ml:252 #: common/mlcustomize/customize_cmdline.ml:361 msgid "SCRIPT" msgstr "" #: common/mltools/tools_utils.ml:422 #: common/mlcustomize/customize_cmdline.ml:351 msgid "SELECTOR" msgstr "" #: common/mlcustomize/customize_run.ml:363 msgid "SELinux relabelling" msgstr "" #. common/mlcustomize/customize_cmdline.ml:214 #: common/mlcustomize/customize_cmdline.ml:328 msgid "SOURCE:DEST" msgstr "" #: common/mlcustomize/customize_run.ml:287 msgid "SSH key could not be injected for this type of guest" msgstr "" #: common/mlcustomize/customize_run.ml:284 msgid "SSH key inject: %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:374 msgid "Scrub a file" msgstr "" #: common/mlcustomize/customize_cmdline.ml:466 msgid "Scrub build log file" msgstr "" #: common/mlcustomize/customize_run.ml:374 msgid "Scrubbing the log file" msgstr "" #: common/mlcustomize/customize_run.ml:279 msgid "Scrubbing: %s" msgstr "" #: v2v/v2v.ml:208 msgid "Set bandwidth dynamically from file" msgstr "" #: v2v/v2v.ml:206 msgid "Set bandwidth to bits per sec" msgstr "" #. in-place/in_place.ml:172 #: v2v/v2v.ml:212 open/open.ml:76 inspector/inspector.ml:161 msgid "Set input mode (default: libvirt)" msgstr "" #: v2v/v2v.ml:228 inspector/inspector.ml:175 in-place/in_place.ml:184 msgid "Set memory size" msgstr "" #: v2v/v2v.ml:256 inspector/inspector.ml:185 in-place/in_place.ml:196 msgid "Set number of vCPUs" msgstr "" #. in-place/in_place.ml:178 #: v2v/v2v.ml:218 open/open.ml:82 inspector/inspector.ml:167 msgid "Set option for input mode" msgstr "" #: v2v/v2v.ml:242 msgid "Set option for output mode" msgstr "" #: v2v/v2v.ml:234 msgid "Set output allocation mode" msgstr "" #: v2v/v2v.ml:238 msgid "Set output format" msgstr "" #: v2v/v2v.ml:232 msgid "Set output mode (default: libvirt)" msgstr "" #: v2v/v2v.ml:246 msgid "Set output storage location" msgstr "" #: common/mlcustomize/customize_cmdline.ml:476 msgid "Set password crypto" msgstr "" #: common/mltools/tools_utils.ml:430 msgid "Set program name" msgstr "" #: common/mlcustomize/customize_cmdline.ml:356 msgid "Set root password" msgstr "" #: common/mlcustomize/customize_cmdline.ml:403 msgid "Set the default timezone" msgstr "" #: common/mlcustomize/customize_cmdline.ml:276 msgid "Set the hostname" msgstr "" #: inspector/inspector.ml:181 in-place/in_place.ml:188 msgid "Set the output filename" msgstr "" #: common/mlcustomize/customize_cmdline.ml:345 msgid "Set user password" msgstr "" #: common/mlcustomize/customize_run.ml:75 msgid "Setting a random seed" msgstr "" #: common/mlcustomize/customize_run.ml:354 msgid "Setting passwords" msgstr "" #: common/mlcustomize/password.ml:113 msgid "Setting random password of %s to %s" msgstr "" #: common/mlcustomize/customize_run.ml:207 msgid "Setting the hostname: %s" msgstr "" #: common/mlcustomize/customize_run.ml:90 msgid "Setting the machine ID in %s" msgstr "" #: common/mlcustomize/customize_run.ml:302 msgid "Setting the timezone: %s" msgstr "" #: v2v/v2v.ml:481 msgid "Setting up the destination: %s" msgstr "" #. in-place/in_place.ml:342 #: v2v/v2v.ml:457 open/open.ml:184 inspector/inspector.ml:310 msgid "Setting up the source: %s" msgstr "" #: v2v/v2v.ml:463 in-place/in_place.ml:348 msgid "Source guest information (--print-source option):\n" msgstr "" #: common/mltools/tools_utils.ml:422 msgid "Specify a LUKS key" msgstr "" #: common/mlcustomize/customize_cmdline.ml:392 msgid "TARFILE:REMOTEDIR" msgstr "" #: common/mlcustomize/customize_cmdline.ml:311 msgid "TARGET:LINK[:LINK..]" msgstr "" #: common/mlcustomize/customize_cmdline.ml:402 msgid "TIMEZONE" msgstr "" #: v2v/v2v.ml:200 msgid "" "The --in-place option has been replaced by the ‘virt-v2v-in-place’ program" msgstr "" #: output/output_qemu.ml:251 msgid "" "The Virt machine has no support for IDE. Please report a bug for virt-v2v -- " "refer to virt-v2v(1) section \"BUGS\"." msgstr "" #: output/output_qemu.ml:272 msgid "" "The Virt machine has no support for floppies. Please report a bug for virt-" "v2v -- refer to virt-v2v(1) section \"BUGS\"." msgstr "" #: lib/create_ovf.ml:785 msgid "" "This guest required a password for connection to its display, but this is " "not supported by oVirt. Therefore the converted guest’s display will not " "require a separate password to connect." msgstr "" #: input/input_vmx.ml:111 msgid "" "This transport does not support guests with snapshots. Either collapse the " "snapshots for this guest and try the conversion again, or use one of the " "alternate conversion methods described in virt-v2v-input-vmware(1) section " "\"NOTES\"." msgstr "" #: common/mlcustomize/customize_cmdline.ml:415 msgid "Truncate a file to zero size" msgstr "" #: common/mlcustomize/customize_run.ml:294 msgid "Truncating: %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:192 msgid "UID:GID:PATH" msgstr "" #: common/mlcustomize/customize_cmdline.ml:339 msgid "USER:SELECTOR" msgstr "" #: common/mlcustomize/customize_cmdline.ml:380 msgid "USER[:SELECTOR]" msgstr "" #: common/mlcustomize/customize_cmdline.ml:432 msgid "Uninstall package(s)" msgstr "" #: common/mlcustomize/customize_run.ml:311 msgid "Uninstalling packages: %s" msgstr "" #: common/mlcustomize/customize_run.ml:290 msgid "Unpack tar file: %s to %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:438 msgid "Update packages" msgstr "" #: common/mlcustomize/customize_run.ml:316 msgid "Updating packages" msgstr "" #: common/mlcustomize/customize_cmdline.ml:449 msgid "Upload local file to destination" msgstr "" #: common/mlcustomize/customize_run.ml:321 msgid "Uploading: %s to %s" msgstr "" #: common/mltools/tools_utils.ml:391 msgid "Use ANSI colour sequences even if not tty" msgstr "" #. in-place/in_place.ml:180 #: v2v/v2v.ml:220 open/open.ml:84 inspector/inspector.ml:169 msgid "Use password from file to connect to input hypervisor" msgstr "" #: v2v/v2v.ml:244 msgid "Use password from file to connect to output hypervisor" msgstr "" #: v2v/v2v.ml:224 msgid "Use virt-v2v-in-place instead" msgstr "" #: common/mltools/tools_utils.ml:392 msgid "Wrap log messages even if not tty" msgstr "" #: common/mlcustomize/customize_cmdline.ml:460 msgid "Write file" msgstr "" #: common/mlcustomize/customize_run.ml:346 msgid "Writing: %s" msgstr "" #: lib/YAML.ml:167 msgid "" "YAML block contains newline character. This should not happen, please " "report a bug against virt-v2v." msgstr "" #: output/output_libvirt.ml:96 msgid "" "a libvirt domain called ‘%s’ already exists on the target.\n" "\n" "If using virt-v2v directly, use the ‘-on’ option to select a different name. " "Or delete the existing domain on the target using the ‘virsh undefine’ " "command.\n" "\n" "If using virt-p2v, select a different ‘Name’ in the ‘Target properties’. Or " "delete the existing domain on the target using the ‘virsh undefine’ command." msgstr "" #: common/mlcustomize/append_line.ml:44 msgid "append_line: %s is not a file" msgstr "" #: input/input_libvirt.ml:206 msgid "" "bad checksum for disk %d/%d\n" "Expected checksum: %s\n" "Actual checksum: %s" msgstr "" #: lib/libvirt_utils.ml:59 msgid "cannot find libvirt domain ‘%s’: %s" msgstr "" #: lib/libvirt_utils.ml:96 msgid "" "cannot find libvirt pool ‘%s’: %s\n" "\n" "Use ‘virsh pool-list --all’ to list all available pools, and ‘virsh pool-" "dumpxml ’ to display details about a particular pool.\n" "\n" "To set the pool which virt-v2v uses, add the ‘-os ’ option." msgstr "" #: lib/libvirt_utils.ml:110 msgid "cannot find libvirt volume ‘%s’: %s" msgstr "" #: common/mlcustomize/firstboot.ml:235 msgid "" "cannot finish firstboot installation by running ‘%s’ because host cpu (%s) " "and guest arch (%s) are not compatible. The firstboot service may not run " "at boot." msgstr "" #: output/output_libvirt.ml:180 msgid "cannot get libvirt domain capabilities: %s" msgstr "" #: output/output_libvirt.ml:85 msgid "cannot get libvirt hypervisor capabilities: %s" msgstr "" #: v2v/v2v.ml:105 inspector/inspector.ml:95 in-place/in_place.ml:102 msgid "cannot parse --mac \"%s\" parameter" msgstr "" #: v2v/v2v.ml:129 inspector/inspector.ml:119 in-place/in_place.ml:126 msgid "cannot parse --mac ip %s: doesn’t look like “%s” is an IP address" msgstr "" #: v2v/v2v.ml:143 inspector/inspector.ml:133 in-place/in_place.ml:140 msgid "cannot parse --mac ip prefix length field as an integer: %s" msgstr "" #: common/mlcustomize/guest_packages.ml:29 msgid "" "cannot use ‘%s’ because no package manager has been detected for this guest " "OS.\n" "\n" "If this guest OS is a common one with ordinary package management then this " "may have been caused by a failure of libguestfs inspection.\n" "\n" "For OSes such as Windows that lack package management, this is not " "possible. Try using one of the ‘--firstboot*’ flags instead (described in " "the virt-customize(1) manual)." msgstr "" #: output/output_ovirt.ml:91 msgid "" "cannot write files to the NFS server as %d:%d, even though we appear to be " "running as root. This probably means the NFS client or idmapd is not " "configured properly.\n" "\n" "You will have to chown the files that virt-v2v creates after the run, " "otherwise oVirt will not be able to import the VM." msgstr "" #: output/output_ovirt.ml:99 msgid "" "cannot write files to the NFS server as %d:%d. You might want to stop virt-" "v2v (^C) and rerun it as root." msgstr "" #: common/mlcustomize/customize_cmdline.ml:508 msgid "command '%s' cannot be used in command files, see the man page" msgstr "" #: common/mlcustomize/customize_cmdline.ml:525 msgid "command '%s' not valid, see the man page" msgstr "" #: common/mldrivers/linux_bootloaders.ml:318 msgid "could not add grub2 serial console (ignored)" msgstr "" #: input/ssh.ml:52 msgid "" "could not copy the VMX file from the remote server, see earlier error " "messages" msgstr "" #: output/output_libvirt.ml:211 msgid "" "could not define libvirt domain: %s.\n" "The libvirt XML is still available in ‘%s’. Try running ‘virsh -c %s define " "%s’ yourself instead." msgstr "" #: common/mldrivers/linux_bootloaders.ml:221 msgid "could not determine a way to update the configuration of Grub2" msgstr "" #: input/input_vddk.ml:243 msgid "" "could not fetch thumbprint from the server, you mus use ‘-io vddk-" "thumbprint=XX:XX...’" msgstr "" #: common/mldrivers/linux_bootloaders.ml:376 msgid "could not find bootloader mount point (%s): %s" msgstr "" #: common/mldrivers/windows_drivers.ml:91 msgid "" "could not find registry entry " "HKEY_LOCAL_MACHINE\\SYSTEM\\DriverDatabase\\DeviceIds in this Windows " "guest. It may be either a very old or very new version of Windows that we " "cannot process." msgstr "" #: common/mlcustomize/firstboot.ml:232 msgid "" "could not finish firstboot installation by running ‘%s’ because the command " "failed: %s" msgstr "" #. input/input_vcenter_https.ml:94 #: input/select_input.ml:66 input/input_xen_ssh.ml:71 input/input_vddk.ml:151 msgid "could not parse '-ic %s'. Original error message was: %s" msgstr "" #: input/parse_libvirt_xml.ml:407 input/parse_libvirt_xml.ml:54 msgid "could not parse device name ‘%s’ from the source libvirt XML" msgstr "" #: input/OVF.ml:168 msgid "could not parse disk rasd:HostResource from OVF document" msgstr "" #: input/input_ova.ml:98 msgid "could not parse ovf:Name from OVF document" msgstr "" #: output/output_ovirt.ml:247 msgid "" "could not read the %s specified by the '-os %s' parameter on the command " "line. Is it really an OVirt %s? The original error is: %s" msgstr "" #: common/mldrivers/linux_bootloaders.ml:336 msgid "" "could not rebuild grub2 configuration file (%s). This may mean that grub " "output will not be sent to the serial port, but otherwise should be " "harmless. Original error message: %s" msgstr "" #: output/output_libvirt.ml:156 msgid "could not refresh libvirt pool ‘%s’: %s" msgstr "" #: common/mldrivers/linux_bootloaders.ml:320 msgid "could not remove grub2 serial console (ignored)" msgstr "" #: common/mltools/registry.ml:93 msgid "" "decode_utf16le: Windows UTF16-LE string contains non-7-bit characters. This " "is a bug in %s, please report it." msgstr "" #: common/mltools/registry.ml:87 msgid "" "decode_utf16le: Windows string does not appear to be in UTF16-LE encoding. " "This could be a bug in %s." msgstr "" #: common/mldrivers/linux_bootloaders.ml:126 msgid "didn't find grub entry for kernel %s" msgstr "" #: input/input_disk.ml:150 msgid "disks on the command line have mixed formats" msgstr "" #: input/parse_libvirt_xml.ml:194 msgid "display in the input libvirt XML was ignored" msgstr "" #: output/output_qemu.ml:147 msgid "don’t know how to convert UEFI guests for architecture %s" msgstr "" #: common/mldrivers/linux.ml:158 msgid "don’t know how to find file owner using %s" msgstr "" #: common/mldrivers/linux.ml:89 msgid "don’t know how to get list of files from package using %s" msgstr "" #: common/mltools/curl.ml:82 msgid "downloading %s" msgstr "" #: lib/networks.ml:84 msgid "" "duplicate --mac parameter. Duplicate mappings specified for MAC address %s." msgstr "" #: lib/networks.ml:102 msgid "" "duplicate -b/--bridge parameter. Duplicate mappings specified for bridge %s." msgstr "" #: lib/networks.ml:108 msgid "duplicate -b/--bridge parameter. Only one default mapping is allowed." msgstr "" #: lib/networks.ml:90 msgid "" "duplicate -n/--network parameter. Duplicate mappings specified for network " "%s." msgstr "" #: lib/networks.ml:96 msgid "duplicate -n/--network parameter. Only one default mapping is allowed." msgstr "" #: input/OVF.ml:143 msgid "error parsing disk fileRef" msgstr "" #: input/input_ova.ml:124 msgid "error uncompressing %s, see earlier error messages" msgstr "" #: input/OVA.ml:210 input/OVA.ml:112 msgid "error unpacking %s, see earlier error messages" msgstr "" #: common/mltools/tools_utils.ml:248 msgid "exception: %s" msgstr "" #: common/mltools/tools_utils.ml:455 msgid "exited with error %d" msgstr "" #: lib/utils.ml:34 msgid "exited with non-zero error code %d" msgstr "" #: input/input_disk.ml:147 msgid "expected >= 1 disk name on the command line" msgstr "" #: common/mltools/xpath_helpers.ml:36 msgid "" "expecting XML expression to return an integer (expression: %s, matching " "string: %s)" msgstr "" #: common/mltools/tools_utils.ml:440 msgid "external command" msgstr "" #: output/output_ovirt_upload.ml:265 msgid "failed server prechecks, see earlier errors" msgstr "" #: output/output_ovirt_upload.ml:507 msgid "failed to create virtual machine, see earlier errors" msgstr "" #: output/output_ovirt_upload.ml:479 msgid "failed to finalize the transfers, see earlier errors" msgstr "" #: common/mldrivers/linux_bootloaders.ml:208 msgid "failed to find grub2-mkconfig binary (but Grub2 was detected on guest)" msgstr "" #: input/OVA.ml:461 msgid "failed to parse line returned by tar: %S" msgstr "" #: output/output_ovirt_upload.ml:394 msgid "failed to start transfer, see earlier errors" msgstr "" #: output/output_ovirt_upload.ml:311 msgid "failed vmchecks, see earlier errors" msgstr "" #: common/mltools/tools_utils.ml:239 msgid "failure: %s" msgstr "" #: input/input_ova.ml:134 msgid "file ‘%s’ not found in the ova" msgstr "" #: common/mlcustomize/firstboot.ml:143 msgid "" "firstboot: unknown version for old firstboot.service file %s (md5=%s), it " "will not be removed" msgstr "" #: common/mltools/tools_utils.ml:258 msgid "generated by %s %s" msgstr "" #: output/create_libvirt_xml.ml:39 msgid "get_osinfo_id: unknown guest operating system: %s" msgstr "" #: output/output_glance.ml:66 msgid "" "glance: glance client is not installed or set up correctly. You may need to " "set environment variables or source a script to enable authentication. See " "preceding messages for details." msgstr "" #: output/output_glance.ml:139 msgid "glance: image upload to glance failed, see earlier errors" msgstr "" #: common/mlcustomize/firstboot.ml:386 common/mlcustomize/firstboot.ml:164 msgid "guest type %s is not supported" msgstr "" #: common/mlcustomize/firstboot.ml:413 msgid "guest type %s/%s is not supported" msgstr "" #: common/mltools/tools_utils.ml:749 msgid "" "host (%s/%s) and guest (%s/%s) are not compatible, so you cannot use command " "line options that involve running commands in the guest. Use --firstboot " "scripts instead." msgstr "" #: common/mlcustomize/customize_run.ml:209 msgid "hostname could not be set for this type of guest" msgstr "" #: common/mldrivers/linux_kernels.ml:342 msgid "ignoring kernel %s in bootloader, as it does not exist." msgstr "" #: output/output_vdsm.ml:160 msgid "image directory (%s) does not exist or is not a directory" msgstr "" #: input/parse_libvirt_xml.ml:81 msgid "in the libvirt XML metadata, is missing or empty" msgstr "" #: input/parse_libvirt_xml.ml:87 msgid "in the libvirt XML metadata, is missing or empty" msgstr "" #: input/input_vcenter_https.ml:52 input/input_libvirt.ml:107 msgid "in-place mode does not work with HTTP source" msgstr "" #: input/input_vddk.ml:146 msgid "in-place mode does not work with VDDK source" msgstr "" #: input/input_vmx.ml:43 msgid "in-place mode does not work with VMX source" msgstr "" #: input/input_xen_ssh.ml:50 msgid "in-place mode does not work with Xen over SSH source" msgstr "" #: output/output_kubevirt.ml:116 msgid "" "incorrect number of '-oo disk' parameters. This guest has %d disks, but the " "parameter was used %d times." msgstr "" #: input/input_xen_ssh.ml:119 msgid "" "input from xen over ssh does not support disks stored on remote block " "devices. See virt-v2v-input-xen(1) section \"Xen or ssh conversions from " "block devices\"." msgstr "" #. in-place/in_place.ml:397 #: v2v/v2v.ml:590 open/open.ml:238 inspector/inspector.ml:353 msgid "" "insufficient free space in the conversion server temporary directory %s " "(%s).\n" "\n" "Either free up space in that directory, or set the LIBGUESTFS_CACHEDIR " "environment variable to point to another directory with more than 1GB of " "free space.\n" "\n" "See also the virt-v2v(1) manual, section \"Minimum free space check in the " "host\"." msgstr "" #: common/mltools/tools_utils.ml:246 msgid "internal error: Not_found exception was thrown" msgstr "" #: common/mltools/tools_utils.ml:243 msgid "internal error: assertion failed at %s, line %d, char %d" msgstr "" #: common/mltools/tools_utils.ml:241 msgid "internal error: invalid argument: %s" msgstr "" #: common/mldrivers/linux.ml:128 msgid "internal error: is_file_owned: dpkg command returned no output" msgstr "" #: common/mldrivers/linux.ml:133 msgid "internal error: is_file_owned: unexpected output from dpkg command: %s" msgstr "" #: common/mldrivers/linux_bootloaders.ml:130 msgid "internal error: regular expression did not match ‘%s’" msgstr "" #: v2v/v2v.ml:548 msgid "internal error: wait returned unexpected process ID %d status \"%s\"" msgstr "" #: v2v/v2v.ml:114 inspector/inspector.ml:104 in-place/in_place.ml:111 msgid "invalid --mac ip option" msgstr "" #: v2v/v2v.ml:98 inspector/inspector.ml:88 in-place/in_place.ml:95 msgid "invalid -b/--bridge parameter" msgstr "" #: v2v/v2v.ml:90 inspector/inspector.ml:80 in-place/in_place.ml:87 msgid "invalid -n/--network parameter" msgstr "" #: input/parse_domain_from_vmx.ml:402 msgid "invalid cpuid.coresPerSocket < number of vCPUs" msgstr "" #. common/mlcustomize/customize_cmdline.ml:153 #. common/mlcustomize/customize_cmdline.ml:145 #: common/mlcustomize/customize_cmdline.ml:161 msgid "invalid format for '--%s' parameter, see the man page" msgstr "" #: common/mltools/tools_utils.ml:359 msgid "invalid format string for --machine-readable: %s" msgstr "" #: lib/utils.ml:279 msgid "invalid input filename (%s)" msgstr "" #: input/OVA.ml:445 msgid "invalid offset returned by tar: %S" msgstr "" #: common/mltools/tools_utils.ml:374 msgid "invalid output fd for --machine-readable: %s" msgstr "" #: common/mltools/tools_utils.ml:376 msgid "invalid output for --machine-readable: %s" msgstr "" #: common/mltools/tools_utils.ml:368 msgid "invalid output stream for --machine-readable: %s" msgstr "" #: common/mlcustomize/password.ml:73 msgid "invalid password selector ‘%s’; see the man page" msgstr "" #: input/OVA.ml:450 msgid "invalid size returned by tar: %S" msgstr "" #: common/mlcustomize/ssh_key.ml:45 msgid "invalid ssh-inject selector ‘%s’; see the man page" msgstr "" #: input/OVF.ml:82 msgid "invalid vmw:CoresPerSocket (%d) ignored" msgstr "" #: input/OVF.ml:88 msgid "invalid vmw:CoresPerSocket < number of cores" msgstr "" #: common/mldrivers/linux_bootloaders.ml:114 msgid "kernel %s is not under grub tree %s" msgstr "" #: common/mltools/tools_utils.ml:539 common/mltools/tools_utils.ml:458 msgid "killed by signal %d" msgstr "" #: common/mltools/tools_utils.ml:237 msgid "libguestfs error: %s" msgstr "" #: lib/libvirt_utils.ml:72 msgid "" "libvirt domain ‘%s’ is running or paused. Converting a live guest will " "result in corrupted output. However this is safe if you're converting from a " "snapshot" msgstr "" #: common/mlcustomize/customize_run.ml:47 msgid "log file %s: %s (ignored)" msgstr "" #: input/OVA.ml:147 msgid "" "making OVA directory public readable to work around libvirt bug https://" "bugzilla.redhat.com/1045069" msgstr "" #: input/input_ova.ml:86 msgid "manifest has a checksum for non-existent file %s (ignored)" msgstr "" #: common/mlcustomize/customize_cmdline.ml:472 msgid "md5|sha256|sha512" msgstr "" #: common/mlcustomize/customize_run.ml:119 msgid "method '%s' is no longer supported" msgstr "" #: common/mltools/JSON_parser.ml:39 msgid "missing value for the key ‘%s’" msgstr "" #: input/OVA.ml:276 msgid "more than one .ovf file was found in %s" msgstr "" #: common/mltools/JSON_parser.ml:34 msgid "more than value for the key ‘%s’" msgstr "" #: output/output_ovirt.ml:222 msgid "" "mount command failed, see earlier errors.\n" "\n" "This probably means you didn't specify the right %s path [-os %s], or else " "you need to rerun virt-v2v as root." msgstr "" #: common/mlcustomize/customize_run.ml:103 msgid "" "multiple --root-password/--password options set the password for user ‘%s’ " "twice" msgstr "" #: input/input_vddk.ml:319 msgid "" "nbdkit VDDK plugin is not installed or not working. It is required if you " "want to use VDDK.\n" "\n" "It 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 ’/%s/libvixDiskLib.so.?’.\n" "\n" "See also the virt-v2v-input-vmware(1) manual." msgstr "" #: input/input_vddk.ml:313 msgid "" "nbdkit VDDK plugin is not installed or not working. It is required if you " "want to use VDDK.\n" "\n" "The 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" "\n" "See also the virt-v2v-input-vmware(1) manual." msgstr "" #: lib/nbdkit.ml:223 msgid "nbdkit did not start up. See previous debugging messages for problems." msgstr "" #: lib/nbdkit.ml:225 msgid "" "nbdkit did not start up. There may be errors printed by nbdkit above.\n" "\n" "If the messages above are not sufficient to diagnose the problem then add " "the ‘virt-v2v -v -x’ options and examine the debugging output carefully." msgstr "" #: input/nbdkit_ssh.ml:36 input/nbdkit_curl.ml:32 input/input_vddk.ml:283 msgid "nbdkit is not installed or not working" msgstr "" #: input/input_disk.ml:92 msgid "" "nbdkit is not installed or not working. It is required to use ‘-i disk’." msgstr "" #: input/input_libvirt.ml:68 msgid "" "nbdkit is not installed or not working. It is required to use ‘-i libvirt|" "libvirtxml’." msgstr "" #: output/output.ml:178 output/output.ml:77 msgid "" "nbdkit is not installed or not working. It is required to use ‘-o disk’." msgstr "" #: output/output_null.ml:57 msgid "" "nbdkit is not installed or not working. It is required to use ‘-o null’." msgstr "" #: output/output_ovirt_upload.ml:163 msgid "" "nbdkit is not installed or not working. It is required to use ‘-o ovirt-" "upload’. See the virt-v2v-output-ovirt(1) manual." msgstr "" #: input/input_vddk.ml:285 msgid "nbdkit must be >= 1.45.11 for input from VDDK" msgstr "" #: output/output_ovirt_upload.ml:176 msgid "" "nbdkit python plugin is not installed or not working. It is required if you " "want to use ‘-o ovirt-upload’.\n" "\n" "See also the virt-v2v-output-ovirt(1) manual." msgstr "" #: output/output_ovirt_upload.ml:190 msgid "" "nbdkit was compiled without SELinux support. You will have to recompile " "nbdkit with libselinux-devel installed, or else set SELinux to Permissive " "mode while doing the conversion." msgstr "" #. input/input_libvirt.ml:76 #. input/input_disk.ml:98 #: input/nbdkit_ssh.ml:42 input/nbdkit_curl.ml:38 input/input_vddk.ml:289 msgid "nbdkit-cow-filter is not installed or not working" msgstr "" #: input/nbdkit_curl.ml:35 msgid "nbdkit-curl-plugin is not installed" msgstr "" #. input/input_disk.ml:96 #: output/output.ml:181 output/output.ml:80 input/input_libvirt.ml:72 msgid "nbdkit-file-plugin is not installed or not working" msgstr "" #: input/input_libvirt.ml:74 msgid "nbdkit-nbd-plugin is not installed or not working" msgstr "" #: output/output_null.ml:60 msgid "nbdkit-null-plugin is not installed or not working" msgstr "" #: input/nbdkit_ssh.ml:39 msgid "nbdkit-ssh-plugin is not installed" msgstr "" #: input/input_vddk.ml:287 msgid "nbdkit-vddk-plugin is not installed" msgstr "" #: lib/nbdkit.ml:56 msgid "nbdkit: unexpected version in --dump-config: %s" msgstr "" #. input/input_vcenter_https.ml:49 #. input/input_ova.ml:46 #. input/input_libvirt.ml:35 #. input/input_disk.ml:39 #: input/input_xen_ssh.ml:47 input/input_vmx.ml:40 msgid "no -io (input options) are allowed here" msgstr "" #: output/output_ovirt.ml:44 output/output_null.ml:42 #: output/output_glance.ml:44 msgid "no -oo (output options) are allowed here" msgstr "" #: input/OVA.ml:273 msgid "no .ovf file was found in %s" msgstr "" #: common/mldrivers/linux_bootloaders.ml:402 msgid "no bootloader detected" msgstr "" #: input/parse_domain_from_vmx.ml:359 msgid "no displayName key found in VMX file" msgstr "" #: input/OVF.ml:148 msgid "no href in ovf:File (id=%s)" msgstr "" #: common/mldrivers/linux_kernels.ml:194 msgid "no initrd was found in /boot matching %s %s." msgstr "" #: common/mldrivers/linux_kernels.ml:317 msgid "" "no installed kernel packages were found.\n" "\n" "This probably indicates that %s was unable to inspect this guest properly." msgstr "" #: common/mldrivers/linux_kernels.ml:354 msgid "" "no kernels were found in the bootloader configuration.\n" "\n" "This probably indicates that %s was unable to parse the bootloader " "configuration of this guest." msgstr "" #: output/python_script.ml:55 msgid "no python binary called ‘%s’ can be found on the $PATH" msgstr "" #: input/select_input.ml:106 msgid "" "no support for remote libvirt connections to '-ic %s'. The conversion may " "fail when it tries to read the source disks." msgstr "" #: lib/create_ovf.ml:1027 msgid "" "oVirt cannot emulate ‘%s’ sound cards. This sound card will be dropped from " "the output." msgstr "" #: lib/create_ovf.ml:875 lib/create_ovf.ml:512 msgid "oVirt does not support the output format ‘%s’, only raw or qcow2" msgstr "" #: output/output_openstack.ml:120 msgid "openstack: -oo server-id= not present" msgstr "" #: output/output_openstack.ml:338 msgid "" "openstack: failed to attach cinder volume to VM, see earlier error messages" msgstr "" #: output/output_openstack.ml:291 msgid "openstack: failed to create a cinder volume, see earlier error messages" msgstr "" #: output/output_openstack.ml:304 msgid "" "openstack: failed to query cinder volume status, see earlier error messages" msgstr "" #: output/output_openstack.ml:442 msgid "" "openstack: failed to set image properties on cinder volume, see earlier " "error messages" msgstr "" #: output/output_openstack.ml:199 msgid "" "openstack: precheck failed, there may be a problem with authentication, see " "earlier error messages" msgstr "" #: output/output_openstack.ml:311 msgid "" "openstack: unknown volume status \"%s\": expected \"creating\" or " "\"available\"" msgstr "" #: output/output.ml:133 msgid "output mode only supports raw or qcow2 format (format: %s)" msgstr "" #: input/OVF.ml:263 msgid "" "ova disk has an unknown VMware controller type (%d), please report this as a " "bug supplying the *.ovf file extracted from the ova" msgstr "" #: input/OVF.ml:259 msgid "" "ova disk has no parent controller, please report this as a bug supplying the " "*.ovf file extracted from the ova" msgstr "" #: output/output_ovirt_upload.ml:367 msgid "" "ovirt-upload: -of %s: Only output format ‘raw’ or ‘qcow2’ is supported. If " "the input is in a different format then force one of these output formats by " "adding either ‘-of raw’ or ‘-of qcow2’ on the command line." msgstr "" #: common/mlcustomize/password.ml:51 msgid "" "password-crypto: unknown algorithm %s, use \"md5\", \"sha256\", \"sha512\" " "or \"yescrypt\"" msgstr "" #: common/mlcustomize/password.ml:197 msgid "" "password: using insecure md5 password encryption for guest of type %s " "version %d.%d.\n" "If this is incorrect, use --password-crypto option and file a bug." msgstr "" #: common/mlcustomize/customize_run.ml:359 msgid "passwords could not be set for this type of guest" msgstr "" #: lib/qemuNBD.ml:125 msgid "" "qemu-nbd did not start up. See previous debugging messages for problems." msgstr "" #: lib/qemuNBD.ml:127 msgid "" "qemu-nbd did not start up. There may be errors printed by qemu-nbd above.\n" "\n" "If the messages above are not sufficient to diagnose the problem then add " "the ‘virt-v2v -v -x’ options and examine the debugging output carefully." msgstr "" #: lib/qemuNBD.ml:47 msgid "qemu-nbd: unexpected version in --version: %s" msgstr "" #: common/mlcustomize/customize_run.ml:77 msgid "random seed could not be set for this type of guest" msgstr "" #: input/parse_domain_from_vmx.ml:44 msgid "remote vmx ‘%s’ could not be parsed as a URI" msgstr "" #. common/mlcustomize/inject_virtio_win.ml:357 #. common/mlcustomize/inject_virtio_win.ml:352 #: common/mlcustomize/inject_virtio_win.ml:362 msgid "" "root directory ‘/’ is missing from the virtio-win directory or ISO.\n" "\n" "This should not happen and may indicate that virtio-win or virt-v2v is " "broken in some way. Please report this as a bug with a full debug log." msgstr "" #: common/mltools/tools_utils.ml:417 common/options/keys.c:264 #, c-format msgid "selector '%s': invalid TYPE" msgstr "" #: common/mltools/tools_utils.ml:409 common/options/keys.c:254 #, c-format msgid "selector '%s': missing FILENAME, or too many fields" msgstr "" #: common/mltools/tools_utils.ml:399 common/options/keys.c:232 #, c-format msgid "selector '%s': missing ID" msgstr "" #: common/mltools/tools_utils.ml:404 common/options/keys.c:245 #, c-format msgid "selector '%s': missing KEY_STRING, or too many fields" msgstr "" #: common/mltools/tools_utils.ml:401 common/options/keys.c:239 #, c-format msgid "selector '%s': missing TYPE" msgstr "" #: common/mltools/tools_utils.ml:413 common/options/keys.c:262 #, c-format msgid "selector '%s': too many fields" msgstr "" #: lib/utils.ml:35 msgid "signalled by signal %d" msgstr "" #: common/mlcustomize/guest_packages.ml:40 msgid "" "sorry, ‘%s’ with the ‘%s’ package manager has not been implemented yet.\n" "\n" "You can work around this by using one of the ‘--run*’ or ‘--firstboot*’ " "options instead (described in the virt-customize(1) manual)." msgstr "" #: common/mlcustomize/ssh_key.ml:57 msgid "ssh-inject: $HOME environment variable is not set" msgstr "" #: common/mlcustomize/ssh_key.ml:93 msgid "ssh-inject: key is an empty string" msgstr "" #: common/mlcustomize/ssh_key.ml:66 msgid "ssh-inject: no public key file found in %s" msgstr "" #: common/mlcustomize/ssh_key.ml:83 msgid "ssh-inject: public key file (%s) is empty" msgstr "" #: common/mlcustomize/ssh_key.ml:112 msgid "ssh-inject: the user %s does not exist on the guest" msgstr "" #. common/mltools/tools_utils.ml:461 #: lib/utils.ml:36 common/mltools/tools_utils.ml:542 msgid "stopped by signal %d" msgstr "" #: output/changeuid.ml:58 msgid "subprocess exited with non-zero error code %d" msgstr "" #: output/changeuid.ml:60 msgid "subprocess signalled or stopped by signal %d" msgstr "" #: lib/utils.ml:33 msgid "success" msgstr "" #: output/create_libvirt_xml.ml:297 msgid "" "target hypervisor does not support floppy devices, but floppy devices were " "found in the source guest" msgstr "" #: output/output_ovirt_upload.ml:156 msgid "" "the Python module ‘ovirtsdk4’ could not be loaded, is it installed? See " "previous messages for problems." msgstr "" #: output/output_ovirt_upload.ml:453 msgid "the cluster ‘%s’ does not support the architecture %s but %s" msgstr "" #: common/mlcustomize/customize_run.ml:59 msgid "" "the command may have failed because the network is disabled. Try either " "removing ‘--no-network’ or adding ‘--network’ on the command line." msgstr "" #: common/mltools/JSON_parser.ml:84 msgid "the key ‘%s’ was not found in a list of objects" msgstr "" #: output/output_ovirt_upload.ml:288 msgid "" "the number of ‘-oo ovirt-disk-uuid’ parameters passed on the command line " "has to match the number of guest disk images (for this guest: %d)" msgstr "" #: output/output_vdsm.ml:133 msgid "" "the number of ‘-oo vdsm-image-uuid’ and ‘-oo vdsm-vol-uuid’ parameters " "passed on the command line has to match the number of guest disk images (for " "this guest: %d)" msgstr "" #: output/output_libvirt.ml:239 msgid "the target hypervisor does not support a %s KVM guest" msgstr "" #: common/mltools/JSON_parser.ml:78 msgid "the value for key ‘%s’ is not a string as expected" msgstr "" #: common/mltools/JSON_parser.ml:50 msgid "the value for the key ‘%s’ is not a bool" msgstr "" #: common/mltools/JSON_parser.ml:45 msgid "the value for the key ‘%s’ is not a string" msgstr "" #: common/mltools/JSON_parser.ml:70 msgid "the value for the key ‘%s’ is not an integer" msgstr "" #: common/mltools/JSON_parser.ml:55 msgid "the value for the key ‘%s’ is not an object" msgstr "" #: common/mltools/JSON_parser.ml:59 msgid "the value is not an object" msgstr "" #: common/mltools/JSON_parser.ml:35 msgid "the value of the key ‘%s’ is not an object" msgstr "" #: lib/create_ovf.ml:519 msgid "" "the virtual size of the input disk %d is not an exact multiple of 512 " "bytes. The virtual size is: %Ld.\n" "\n" "This probably means something unexpected is going on, so please file a bug " "about this issue." msgstr "" #: output/output_openstack.ml:144 msgid "" "the ‘%s’ program is not available. It is needed to communicate with " "OpenStack." msgstr "" #: output/output_ovirt.ml:265 msgid "" "there are multiple UUIDs in the %s (%s). This is unexpected, and may be a " "bug in virt-v2v or OVirt." msgstr "" #: output/output_ovirt.ml:262 msgid "there are no UUIDs in the %s (%s). Is it really an OVirt %s?" msgstr "" #: common/mlcustomize/inject_virtio_win.ml:153 msgid "" "there are no virtio drivers available for this version of Windows (%d.%d %s " "%s %s). virt-v2v looks for drivers in %s\n" "\n" "The guest will be configured to use slower emulated devices." msgstr "" #: common/mlcustomize/inject_virtio_win.ml:175 msgid "" "there is no virtio block device driver for this version of Windows (%d.%d " "%s). virt-v2v looks for this driver in %s\n" "\n" "The guest will be configured to use a slower emulated device." msgstr "" #: common/mlcustomize/inject_virtio_win.ml:206 msgid "" "there is no virtio network driver for this version of Windows (%d.%d %s). " "virt-v2v looks for this driver in %s\n" "\n" "The guest will be configured to use a slower emulated device." msgstr "" #: input/parse_libvirt_xml.ml:545 msgid "this guest has a direct network interface which will be ignored" msgid_plural "this guest has direct network interfaces which will be ignored" msgstr[0] "" msgstr[1] "" #: input/parse_libvirt_xml.ml:527 msgid "this guest has a passthrough host device which will be ignored" msgid_plural "this guest has passthrough host devices which will be ignored" msgstr[0] "" msgstr[1] "" #: input/parse_libvirt_xml.ml:248 msgid "this guest has no non-removable disks" msgstr "" #: output/output.ml:65 msgid "this output module doesn't support copying more than %d disks" msgstr "" #: common/mlcustomize/timezone.ml:35 msgid "timezone '%s' does not exist, use a location like 'Europe/London'" msgstr "" #: common/mlcustomize/customize_run.ml:304 msgid "timezone could not be set for this type of guest" msgstr "" #: input/OVA.ml:318 msgid "unable to parse line from manifest file: %S" msgstr "" #: common/mltools/urandom.ml:37 msgid "unexpected end of file while reading /dev/urandom" msgstr "" #: input/input_libvirt.ml:196 msgid "unexpected output from the %s command" msgstr "" #: common/mltools/checksums.ml:58 msgid "unhandled checksum type ‘%s’" msgstr "" #: lib/types.ml:524 msgid "unknown --root option: %s" msgstr "" #: input/select_input.ml:51 msgid "unknown -i option: %s" msgstr "" #: output/select_output.ml:74 msgid "unknown -o option: %s" msgstr "" #: v2v/v2v.ml:164 msgid "unknown -oa option: %s" msgstr "" #: input/input_libvirt.ml:189 msgid "unknown method='%s'" msgstr "" #: input/OVF.ml:103 msgid "unknown Config:firmware value %s (expected \"bios\" or \"efi\")" msgstr "" #: lib/create_ovf.ml:446 lib/create_ovf.ml:247 msgid "unknown Windows 10 variant: %s (%s)" msgstr "" #: v2v/v2v.ml:319 in-place/in_place.ml:256 msgid "unknown block driver ‘--block-driver %s’" msgstr "" #: input/parse_domain_from_vmx.ml:415 msgid "unknown firmware value '%s', assuming BIOS" msgstr "" #: lib/create_ovf.ml:454 lib/create_ovf.ml:255 msgid "unknown guest operating system: %s %s %d.%d %s (%s)" msgstr "" #: v2v/v2v.ml:329 open/open.ml:132 inspector/inspector.ml:238 msgid "unknown input transport ‘-it %s’" msgstr "" #: input/parse_domain_from_vmx.ml:428 msgid "unknown sound device '%s' ignored" msgstr "" #: input/parse_libvirt_xml.ml:215 msgid "unknown sound model %s ignored" msgstr "" #: input/OVF.ml:156 msgid "unsupported compression in OVF: %s" msgstr "" #: input/input_vcenter_https.ml:123 msgid "" "vcenter: was not found in the XML. You need to " "upgrade to libvirt ≥ 1.2.20." msgstr "" #: input/vCenter.ml:79 msgid "vcenter: URL not found: %s" msgstr "" #: input/vCenter.ml:70 msgid "vcenter: incorrect username or password" msgstr "" #: input/vCenter.ml:72 msgid "" "vcenter: incorrect username or password. You might need to specify the " "username in the URI like this: [vpx|esx|..]://USERNAME@[etc]" msgstr "" #: input/vCenter.ml:84 msgid "vcenter: invalid response from server: %s" msgstr "" #: input/vCenter.ml:194 msgid "vcenter: no status code in output of ‘curl’ command." msgstr "" #: output/output_vdsm.ml:148 msgid "vdsm: invalid -os parameter does not contain a valid UUID: %s" msgstr "" #: output/output_openstack.ml:56 msgid "" "virt-v2v -oo server-id= [os-*=...]\n" "\n" "Specify the name or UUID of the conversion appliance using\n" "\n" " virt-v2v ... -o openstack -oo server-id=\n" "\n" "When virt-v2v runs it will attach the Cinder volumes to the\n" "conversion appliance, so this name or UUID must be the name\n" "of the virtual machine on OpenStack where virt-v2v is running.\n" "\n" "In addition, all usual OpenStack “os-*” parameters or “OS_*”\n" "environment variables can be used.\n" "\n" "Openstack “--os-*” parameters must be written as “virt-v2v -oo os-*”.\n" "\n" "For example:\n" "\n" " virt-v2v -oo os-username=\n" "\n" " equivalent to openstack: --os-username=\n" " or the environment variable: OS_USERNAME=\n" "\n" " virt-v2v -oo os-project-name=\n" "\n" " equivalent to openstack: --os-project-name=\n" " or the environment variable: OS_PROJECT_NAME=\n" "\n" "The os-* parameters and environment variables are optional.\n" msgstr "" #: input/parse_libvirt_xml.ml:189 msgid "" "virt-v2v does not support local displays, so in the " "input libvirt XML was ignored" msgstr "" #: input/select_input.ml:83 msgid "virt-v2v-in-place does not support remote libvirt URIs" msgstr "" #: input/parse_domain_from_vmx.ml:50 msgid "vmx URI path component looks incorrect" msgstr "" #: input/parse_domain_from_vmx.ml:48 msgid "vmx URI remote server name omitted" msgstr "" #: input/parse_domain_from_vmx.ml:46 msgid "vmx URI start with ‘ssh://...’" msgstr "" #: input/VMX.ml:313 msgid "vmx parser: cannot parse this line, ignoring: %s" msgstr "" #: input/VMX.ml:346 msgid "vmx parser: duplicate key '%s' ignored" msgstr "" #: output/output_openstack.ml:299 msgid "wait for cinder volume status to change to \"available\"" msgstr "" #: output/output_openstack.ml:360 msgid "waiting for cinder volume %s to attach to the conversion appliance" msgstr "" #: open/open.ml:136 msgid "you must supply the --run parameter" msgstr "" #: input/input_xen_ssh.ml:87 input/input_vddk.ml:189 msgid "‘-ic %s’ URL does not contain a host name field" msgstr "" #: input/input_vddk.ml:273 msgid "‘-io vddk-file=’ must be used exactly %d times" msgstr "" #: input/input_vddk.ml:297 msgid "" "‘-io vddk-libdir=%s’ does not point to a directory. See the virt-v2v-input-" "vmware(1) manual." msgstr "" #: output/output.ml:85 msgid "" "‘-oo compressed’ is only allowed when the output format is a local qcow2-" "format file, i.e. ‘-of qcow2’" msgstr "" #: input/input_vddk.ml:232 msgid "" "‘openssl’ command not found: automatically detecting thumbprint is not " "possible, so you must use ‘-io vddk-thumbprint=XX:XX...’" msgstr "" #: common/mltools/getopt-c.c:68 #, c-format msgid "Try ‘%s --help’ or consult %s(1) for more information.\n" msgstr "" #: common/mltools/getopt-c.c:187 #, c-format msgid "%s: ‘%s’ is not a numeric value.\n" msgstr "" #: common/mltools/getopt-c.c:193 #, c-format msgid "%s: %s: integer out of range\n" msgstr "" #: common/mltools/getopt-c.c:383 #, c-format msgid "%s: ‘%s’ is not allowed for -%c; allowed values are:\n" msgstr "" #: common/mltools/getopt-c.c:386 #, c-format msgid "%s: ‘%s’ is not allowed for %s%s; allowed values are:\n" msgstr "" #: common/mltools/getopt-c.c:421 #, c-format msgid "Extra parameter on the command line: ‘%s’.\n" msgstr "" #: common/options/config.c:72 #, c-format msgid "%s: line %d: error parsing configuration file: %s" msgstr "" #: common/options/decrypt.c:52 #, c-format msgid "string size overflow" msgstr "" #: common/options/decrypt.c:170 #, c-format msgid "" "'clevis_luks_unlock', needed for decrypting %s, is unavailable in this " "libguestfs version" msgstr "" #: common/options/decrypt.c:184 #, c-format msgid "" "could not find key to open LUKS encrypted %s.\n" "\n" "Try using --key on the command line.\n" "\n" "Original error: %s (%d)" msgstr "" #: common/options/inspect.c:78 #, c-format msgid "" "%s: no operating system was found on this disk\n" "\n" "If using guestfish ‘-i’ option, remove this option and instead\n" "use the commands ‘run’ followed by ‘list-filesystems’.\n" "You can then mount filesystems you want by hand using the\n" "‘mount’ or ‘mount-ro’ command.\n" "\n" "If using guestmount ‘-i’, remove this option and choose the\n" "filesystem(s) you want to see by manually adding ‘-m’ option(s).\n" "Use ‘virt-filesystems’ to see what filesystems are available.\n" "\n" "If using other virt tools, this disk image won’t work\n" "with these tools. Use the guestfish equivalent commands\n" "(see the virt tool manual page).\n" msgstr "" #: common/options/inspect.c:99 #, c-format msgid "" "%s: multi-boot operating systems are not supported\n" "\n" "If using guestfish ‘-i’ option, remove this option and instead\n" "use the commands ‘run’ followed by ‘list-filesystems’.\n" "You can then mount filesystems you want by hand using the\n" "‘mount’ or ‘mount-ro’ command.\n" "\n" "If using guestmount ‘-i’, remove this option and choose the\n" "filesystem(s) you want to see by manually adding ‘-m’ option(s).\n" "Use ‘virt-filesystems’ to see what filesystems are available.\n" "\n" "If using other virt tools, multi-boot operating systems won’t work\n" "with these tools. Use the guestfish equivalent commands\n" "(see the virt tool manual page).\n" msgstr "" #: common/options/inspect.c:161 #, c-format msgid "%s: some filesystems could not be mounted (ignored)\n" msgstr "" #: common/options/inspect.c:178 #, c-format msgid "Operating system: %s\n" msgstr "" #: common/options/inspect.c:196 #, c-format msgid "%s mounted on %s\n" msgstr "" #: common/options/keys.c:63 #, c-format msgid "Enter key or passphrase (\"%s\"): " msgstr "" #: common/options/keys.c:146 #, c-format msgid "size_t overflow" msgstr "" #: common/options/keys.c:193 #, c-format msgid "could not read key from user" msgstr "" #: common/options/options.c:283 #, c-format msgid "%s: ‘%s’ could not be mounted.\n" msgstr "" #: common/options/options.c:287 #, c-format msgid "" "%s: Check mount(8) man page to ensure options ‘%s’\n" "%s: are supported by the filesystem that is being mounted.\n" msgstr "" #: common/options/options.c:291 #, c-format msgid "%s: Did you mean to mount one of these filesystems?\n" msgstr "" #: common/options/options.c:304 #, c-format msgid "cannot determine the subvolume for %s: %s (%d)" msgstr "" #: common/options/uri.c:119 #, c-format msgid "%s: --add: could not parse URI ‘%s’\n" msgstr "" #: common/options/uri.c:130 #, c-format msgid "%s: %s: scheme of URI is NULL or empty\n" msgstr "" #: common/options/uri.c:138 #, c-format msgid "%s: %s: cannot have both a server name and a socket query parameter\n" msgstr "" #: common/utils/utils.c:107 #, c-format msgid "%s exited successfully" msgstr "" #: common/utils/utils.c:110 #, c-format msgid "%s exited with error status %d" msgstr "" #: common/utils/utils.c:114 #, c-format msgid "%s killed by signal %d (%s)" msgstr "" #: common/utils/utils.c:118 #, c-format msgid "%s stopped by signal %d (%s)" msgstr "" #: common/utils/utils.c:122 #, c-format msgid "%s exited for an unknown reason (status %d)" msgstr "" ================================================ FILE: po/ta.po ================================================ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR Red Hat Inc. # This file is distributed under the same license as the virt-v2v package. # FIRST AUTHOR , YEAR. # msgid "" msgstr "" "Project-Id-Version: virt-v2v 2.7.7\n" "Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?" "component=libguestfs&product=Virtualization+Tools\n" "POT-Creation-Date: 2025-02-16 17:05+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" "Language: ta\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" #: input/input_ova.ml:135 common/mltools/tools_utils.ml:235 msgid "%s" msgstr "" #: common/mltools/getopt.ml:73 msgid "" "%s\n" "Options:\n" msgstr "" #: common/mltools/tools_utils.ml:695 common/mlcustomize/customize_run.ml:390 msgid "%s (ignored)" msgstr "" #: common/mltools/checksums.ml:71 msgid "%s did not return any output" msgstr "" #: common/mlcustomize/customize_run.ml:183 msgid "%s does not exist in the guest" msgstr "" #: output/output_ovirt.ml:275 msgid "" "%s does not exist or is not a directory.\n" "\n" "Most likely cause: Either the %s (%s) has not been attached to any Data " "Center, or the path %s is not an %s at all.\n" "\n" "You have to attach the %s to a Data Center using the oVirt user interface " "first.\n" "\n" "If you don’t know what the %s mount point should be then you can also find " "this out through the oVirt user interface." msgstr "" #: common/mlcustomize/customize_run.ml:113 msgid "%s ignored for non-Windows guest" msgstr "" #: common/mlcustomize/customize_run.ml:186 msgid "%s is not a regular file in the guest" msgstr "" #. open/open.ml:39 #. inspector/inspector.ml:153 #. inspector/inspector.ml:40 #. in-place/in_place.ml:164 #. in-place/in_place.ml:45 #: v2v/v2v.ml:194 v2v/v2v.ml:183 v2v/v2v.ml:159 v2v/v2v.ml:44 open/open.ml:68 msgid "%s option used more than once on the command line" msgstr "" #: common/mltools/tools_utils.ml:231 common/mltools/tools_utils.ml:202 msgid "%s: %s" msgstr "" #: common/mltools/tools_utils.ml:233 msgid "%s: %s: %s" msgstr "" #: common/mltools/on_exit.ml:77 msgid "" "%s: Exiting on signal %s\n" "%!" msgstr "" #: common/mlcustomize/inject_virtio_win.ml:411 msgid "%s: cannot open virtio-win ISO file: %s" msgstr "" #: common/mlcustomize/customize_run.ml:64 msgid "%s: command exited with an error" msgstr "" #: v2v/v2v.ml:277 msgid "" "%s: convert a guest to use KVM\n" "\n" "virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi -os imported " "esx_guest\n" "\n" "virt-v2v -i libvirtxml guest-domain.xml -o local -os /var/tmp\n" "\n" "virt-v2v -i disk disk.img -o local -os /var/tmp\n" "\n" "There is a companion front-end called \"virt-p2v\" which comes as an\n" "ISO or CD image that can be booted on physical machines.\n" "\n" "A short summary of the options is given below. For detailed help please\n" "read the man page virt-v2v(1).\n" msgstr "" #: in-place/in_place.ml:217 msgid "" "%s: convert a guest to use KVM in-place\n" "\n" "Note this program modifies the guest in-place with no backup.\n" "Normally you should use virt-v2v.\n" "\n" "virt-v2v-in-place -i libvirtxml guest-domain.xml\n" "\n" "virt-v2v-in-place -i disk disk.img\n" "\n" "A short summary of the options is given below. For detailed help please\n" "read the man page virt-v2v-in-place(1).\n" msgstr "" #: input/input_vddk.ml:207 msgid "%s: enter password for ‘%s’: " msgstr "" #: common/mltools/tools_utils.ml:172 msgid "%s: error: %s" msgstr "" #: inspector/inspector.ml:198 msgid "" "%s: estimate disk space needed before virt-v2v conversion\n" "\n" "virt-v2v-inspector -i disk disk.img [-O output.xml]\n" "\n" "A short summary of the options is given below. For detailed help please\n" "read the man page virt-v2v-inspector(1).\n" msgstr "" #: open/open.ml:94 msgid "" "%s: open the virt-v2v input and run a program on it\n" "\n" "virt-v2v-open -i disk disk.img --run 'virt-inspector --format=raw @@'\n" "\n" "A short summary of the options is given below. For detailed help please\n" "read the man page virt-v2v-open(1).\n" msgstr "" #: common/mltools/tools_utils.ml:726 msgid "%s: operation timed out" msgstr "" #: input/OVA.ml:127 input/OVA.ml:121 msgid "" "%s: unsupported file format\n" "\n" "Formats which we currently understand for '-i ova' are: tar (uncompressed, " "compress with gzip or xz), zip" msgstr "" #: common/mltools/tools_utils.ml:191 msgid "%s: warning: %s" msgstr "" #. common/mlcustomize/customize_cmdline.ml:258 #: common/mlcustomize/customize_cmdline.ml:367 msgid "'CMD+ARGS'" msgstr "" #: common/mlcustomize/customize_run.ml:133 msgid "" "--append-line: line must not contain newline characters. Use the --append-" "line option multiple times to add several lines." msgstr "" #: common/mlcustomize/customize_run.ml:152 msgid "--chown: could not parse numeric UID:GID from %s:%s" msgstr "" #: common/mlcustomize/customize_run.ml:216 msgid "" "--inject-blnsvr: blnsvr.exe not found in virtio-win source that you specified" msgstr "" #: common/mlcustomize/customize_run.ml:225 msgid "" "--inject-qemu-ga: QEMU Guest Agent MSI not found in virtio-win source that " "you specified" msgstr "" #: common/mlcustomize/customize_run.ml:241 msgid "" "--inject-virtio-win: virtio drivers were not found for this Windows version " "in the virtio-win source that you specified" msgstr "" #: v2v/v2v.ml:146 inspector/inspector.ml:136 in-place/in_place.ml:143 msgid "--mac ip prefix length field is out of range" msgstr "" #: v2v/v2v.ml:340 msgid "--parallel parameter must be >= 1" msgstr "" #: input/input_disk.ml:42 msgid "-i disk: expecting a disk image (filename) on the command line" msgstr "" #: input/input_xen_ssh.ml:65 msgid "-i libvirt: expecting -ic parameter for Xen over SSH connection" msgstr "" #: input/input_vddk.ml:142 input/input_vcenter_https.ml:88 msgid "-i libvirt: expecting -ic parameter for vcenter connection" msgstr "" #: input/input_vcenter_https.ml:101 msgid "-i libvirt: expecting -ic parameter to contain vcenter server name" msgstr "" #: input/input_vcenter_https.ml:78 msgid "-i libvirt: expecting -ip passwordfile parameter for vCenter connection" msgstr "" #. input/input_vcenter_https.ml:70 #. input/input_libvirt.ml:41 #: input/input_xen_ssh.ml:57 input/input_vddk.ml:132 msgid "-i libvirt: expecting a libvirt guest name on the command line" msgstr "" #: input/input_libvirt.ml:59 msgid "-i libvirtxml: expecting a libvirt XML filename on the command line" msgstr "" #: input/input_ova.ml:243 msgid "-i ova: OVF references file ‘%s’ which was not found in the OVA archive" msgstr "" #: input/input_ova.ml:78 msgid "" "-i ova: corrupt OVA: checksum of disk %s does not match manifest (actual = " "%s, expected = %s)" msgstr "" #: input/input_ova.ml:52 msgid "-i ova: expecting an OVA file name on the command line" msgstr "" #: input/OVA.ml:361 msgid "" "-i ova: invalid OVA file: path ‘%s’ references a file outside the archive" msgstr "" #: input/input_vmx.ml:57 msgid "-i vmx: cannot use -it vddk in this input mode" msgstr "" #: input/input_vmx.ml:60 msgid "-i vmx: expecting a VMX file or ssh:// URI" msgstr "" #: input/vCenter.ml:159 msgid "" "-ip PASSWORD_FILE parameter ignored because 'user@' was not given in the URL" msgstr "" #: input/input_vddk.ml:119 msgid "-it vddk: ‘-io %s’ is not a valid input option" msgstr "" #: output/output.ml:54 msgid "-o %s: %s option cannot be used in this output mode" msgstr "" #: output/output_disk.ml:66 msgid "-o disk: output directory was not specified, use '-os /dir'" msgstr "" #: output/output_libvirt.ml:59 output/output_disk.ml:56 msgid "-o disk: unknown output option ‘-oo %s’" msgstr "" #: output/output_kubevirt.ml:81 msgid "-o kubevirt: output directory was not specified, use '-os /dir'" msgstr "" #: output/output_kubevirt.ml:91 msgid "" "-o kubevirt: the guest name must contain only lowercase alphanumeric " "characters, '-' or '.', and must start and end with an alphanumeric " "character. Rerun virt-v2v with the '-on name' option to rename it." msgstr "" #: output/output_kubevirt.ml:71 msgid "-o kubevirt: unknown output option ‘-oo %s’" msgstr "" #: output/output_libvirt.ml:120 msgid "" "-o libvirt: output pool ‘%s’ does not have /pool/target/path element. See " "virt-v2v-output-local(1)" msgstr "" #: output/output_libvirt.ml:124 msgid "" "-o libvirt: output pool ‘%s’ has type='dir' but the /pool/target/path " "element is not a local directory. See virt-v2v-output-local(1)" msgstr "" #: output/output_libvirt.ml:116 msgid "" "-o libvirt: output pool ‘%s’ is not a directory (type='dir'). See virt-v2v-" "output-local(1)" msgstr "" #: output/output_openstack.ml:88 msgid "-o openstack mode only supports -oa sparse -of raw" msgstr "" #: output/output_openstack.ml:115 msgid "-o openstack: unknown output option ‘-oo %s’" msgstr "" #: output/output_ovirt_upload.ml:97 msgid "-o ovirt-upload: -oo ovirt-cafile set more than once" msgstr "" #: output/output_ovirt_upload.ml:101 msgid "-o ovirt-upload: -oo ovirt-cluster set more than once" msgstr "" #: output/output_ovirt_upload.ml:112 msgid "-o ovirt-upload: invalid UUID for -oo ovirt-disk-uuid" msgstr "" #: output/output_ovirt_upload.ml:76 msgid "" "-o ovirt-upload: output password file was not specified, use ‘-op’ to point " "to a file which contains the password used to connect to the oVirt server" msgstr "" #: output/output_ovirt_upload.ml:83 msgid "-o ovirt-upload: output storage was not specified, use ‘-os’" msgstr "" #: output/output_ovirt_upload.ml:116 msgid "-o ovirt-upload: unknown output option ‘-oo %s’" msgstr "" #: output/output_ovirt_upload.ml:68 msgid "" "-o ovirt-upload: use ‘-oc’ to point to the oVirt server REST API URL, which " "is usually https://servername/ovirt-engine/api" msgstr "" #: output/output_ovirt.ml:51 msgid "-o ovirt: -os option was not specified" msgstr "" #: output/output_qemu.ml:72 msgid "-o qemu: output directory was not specified, use '-os /dir'" msgstr "" #: output/output_qemu.ml:63 msgid "-o qemu: unknown output option ‘-oo %s’" msgstr "" #: output/output_vdsm.ml:102 msgid "-o vdsm: -oo vdsm-image-uuid was not specified" msgstr "" #: output/output_vdsm.ml:81 msgid "-o vdsm: -oo vdsm-ovf-output set more than once" msgstr "" #: output/output_vdsm.ml:77 msgid "-o vdsm: -oo vdsm-vm-uuid set more than once" msgstr "" #: output/output_vdsm.ml:110 msgid "-o vdsm: -os option was not specified" msgstr "" #: output/output_vdsm.ml:97 msgid "-o vdsm: either -oo vdsm-vol-uuid or -oo vdsm-vm-uuid was not specified" msgstr "" #: output/output_vdsm.ml:90 msgid "-o vdsm: unknown output option ‘-oo %s’" msgstr "" #: output/output_vdsm.ml:74 msgid "-o vdsm: unknown vdsm-compat level ‘%s’" msgstr "" #. output/output_kubevirt.ml:84 #. output/output_disk.ml:68 #: output/output_vdsm.ml:112 output/output_qemu.ml:74 msgid "-os %s: output directory does not exist or is not a directory" msgstr "" #: input/parse_libvirt_xml.ml:279 msgid " missing 'method' attribute, ignoring" msgstr "" #: input/parse_libvirt_xml.ml:291 msgid " unknown fail='%s' attribute, ignoring" msgstr "" #: input/parse_libvirt_xml.ml:370 input/parse_libvirt_xml.ml:317 msgid " was ignored" msgstr "" #: input/parse_libvirt_xml.ml:338 msgid " with was ignored" msgstr "" #: input/parse_libvirt_xml.ml:365 msgid " with was ignored" msgstr "" #: input/parse_libvirt_xml.ml:299 msgid " element with no type attribute ignored" msgstr "" #: input/parse_libvirt_xml.ml:167 msgid " in the input libvirt XML was ignored" msgstr "" #: input/parse_libvirt_xml.ml:414 msgid "" " was ignored because the device name could not be recognized" msgstr "" #: input/input_vddk.ml:176 msgid "" " was not found in the output of ‘virsh dumpxml \"%s\"’. The " "most likely reason is that libvirt is too old, try upgrading libvirt to ≥ " "3.7." msgstr "" #: common/mlcustomize/customize_cmdline.ml:305 msgid "Add package(s) to install" msgstr "" #: common/mlcustomize/customize_cmdline.ml:270 msgid "Add package(s) to install at first boot" msgstr "" #: common/mlcustomize/customize_cmdline.ml:175 msgid "Append line(s) to the file" msgstr "" #: common/mlcustomize/customize_run.ml:137 msgid "Appending line to %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:197 msgid "Change the owner user and group ID of a file or directory" msgstr "" #: common/mlcustomize/customize_cmdline.ml:186 msgid "Change the permissions of a file" msgstr "" #: common/mlcustomize/customize_run.ml:155 msgid "Changing owner of %s to %d:%d" msgstr "" #: common/mlcustomize/customize_run.ml:141 msgid "Changing permissions of %s to %s" msgstr "" #: input/input_libvirt.ml:174 input/input_libvirt.ml:157 msgid "Checking %s checksum of disk %d/%d" msgstr "" #: common/mlcustomize/customize_cmdline.ml:488 msgid "Compatibility option doing nothing" msgstr "" #: common/mlcustomize/customize_cmdline.ml:219 msgid "Copy files in disk image" msgstr "" #: common/mlcustomize/customize_cmdline.ml:397 msgid "Copy local files or directories from a tarball into image" msgstr "" #: common/mlcustomize/customize_cmdline.ml:230 msgid "Copy local files or directories into image" msgstr "" #: common/mlcustomize/customize_run.ml:168 msgid "Copying (in image): %s to %s" msgstr "" #: v2v/v2v.ml:518 msgid "Copying disk %d/%d" msgstr "" #: common/mlcustomize/customize_run.ml:172 msgid "Copying: %s to %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:322 msgid "Create a directory" msgstr "" #: common/mlcustomize/customize_cmdline.ml:316 msgid "Create symbolic links" msgstr "" #: v2v/v2v.ml:567 msgid "Creating output metadata" msgstr "" #: common/mlcustomize/customize_cmdline.ml:321 msgid "DIR" msgstr "" #: common/mlcustomize/customize_cmdline.ml:236 msgid "Delete a file or directory" msgstr "" #: common/mlcustomize/customize_run.ml:176 msgid "Deleting: %s" msgstr "" #: common/mltools/getopt.ml:225 msgid "Display brief help" msgstr "" #: common/mltools/tools_utils.ml:385 msgid "Display version and exit" msgstr "" #: common/mlcustomize/customize_cmdline.ml:482 msgid "Do not relabel files with correct SELinux labels" msgstr "" #: v2v/v2v.ml:248 inspector/inspector.ml:177 in-place/in_place.ml:190 msgid "Don't trim filesystems before conversion" msgstr "" #: common/mltools/tools_utils.ml:389 msgid "Don’t print progress messages" msgstr "" #: common/mltools/tools_utils.ml:420 msgid "Don’t turn off echo for passphrases" msgstr "" #: common/mlcustomize/customize_cmdline.ml:247 msgid "Edit file using Perl expression" msgstr "" #: common/mlcustomize/customize_run.ml:180 msgid "Editing: %s" msgstr "" #: common/mltools/tools_utils.ml:386 msgid "Enable libguestfs debugging messages" msgstr "" #: common/mltools/tools_utils.ml:387 msgid "Enable tracing of libguestfs calls" msgstr "" #: output/output_ovirt.ml:77 msgid "Export Storage Domain" msgstr "" #: open/open.ml:88 msgid "External command to run" msgstr "" #. common/mlcustomize/customize_cmdline.ml:408 #. common/mlcustomize/customize_cmdline.ml:373 #: common/mlcustomize/customize_cmdline.ml:414 msgid "FILE" msgstr "" #: common/mlcustomize/customize_cmdline.ml:455 msgid "FILE:CONTENT" msgstr "" #: common/mlcustomize/customize_cmdline.ml:444 msgid "FILE:DEST" msgstr "" #: common/mlcustomize/customize_cmdline.ml:242 msgid "FILE:EXPR" msgstr "" #: common/mlcustomize/customize_cmdline.ml:170 msgid "FILE:LINE" msgstr "" #: common/mlcustomize/customize_cmdline.ml:203 msgid "FILENAME" msgstr "" #. in-place/in_place.ml:378 #: v2v/v2v.ml:571 open/open.ml:220 inspector/inspector.ml:334 msgid "Finishing off" msgstr "" #: common/mlcustomize/customize_cmdline.ml:275 msgid "HOSTNAME" msgstr "" #: v2v/v2v.ml:254 inspector/inspector.ml:183 in-place/in_place.ml:194 msgid "How to choose root filesystem" msgstr "" #: common/mltools/tools_utils.ml:177 msgid "" "If reporting bugs, run %s with debugging enabled and include the complete " "output:\n" "\n" " %s -v -x [...]" msgstr "" #: common/mlcustomize/customize_cmdline.ml:386 msgid "Inject a public key into the guest" msgstr "" #: common/mlcustomize/customize_cmdline.ml:282 msgid "Inject the Balloon Server into a Windows guest" msgstr "" #: common/mlcustomize/customize_cmdline.ml:288 msgid "Inject the QEMU Guest Agent into a Windows guest" msgstr "" #: common/mlcustomize/customize_cmdline.ml:294 msgid "Inject virtio-win drivers into a Windows guest" msgstr "" #. in-place/in_place.ml:176 #: v2v/v2v.ml:216 open/open.ml:80 inspector/inspector.ml:165 msgid "Input format" msgstr "" #: input/input_vddk.ml:77 msgid "" "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" "\n" "Refer to nbdkit-vddk-plugin(1) and the VDDK documentation for further\n" "information on these settings.\n" msgstr "" #: v2v/v2v.ml:222 open/open.ml:86 inspector/inspector.ml:171 msgid "Input transport" msgstr "" #: common/mlcustomize/customize_run.ml:191 msgid "Installing firstboot command: %s" msgstr "" #: common/mlcustomize/customize_run.ml:195 msgid "Installing firstboot packages: %s" msgstr "" #: common/mlcustomize/customize_run.ml:202 msgid "Installing firstboot script: %s" msgstr "" #: common/mlcustomize/customize_run.ml:248 msgid "Installing packages: %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:225 msgid "LOCALPATH:REMOTEDIR" msgstr "" #. in-place/in_place.ml:174 #: v2v/v2v.ml:214 open/open.ml:78 inspector/inspector.ml:163 msgid "Libvirt URI" msgstr "" #: common/mlcustomize/customize_run.ml:255 msgid "Linking: %s -> %s" msgstr "" #. common/mlcustomize/customize_cmdline.ml:287 #. common/mlcustomize/customize_cmdline.ml:281 #: common/mlcustomize/customize_cmdline.ml:293 msgid "METHOD" msgstr "" #: common/mltools/tools_utils.ml:426 msgid "Make output machine readable" msgstr "" #: common/mlcustomize/customize_run.ml:260 msgid "Making directory: %s" msgstr "" #: v2v/v2v.ml:226 inspector/inspector.ml:173 in-place/in_place.ml:182 msgid "Map NIC to network or bridge or assign static IP" msgstr "" #: v2v/v2v.ml:210 inspector/inspector.ml:159 in-place/in_place.ml:170 msgid "Map bridge ‘in’ to ‘out’" msgstr "" #: v2v/v2v.ml:230 inspector/inspector.ml:179 in-place/in_place.ml:186 msgid "Map network ‘in’ to ‘out’" msgstr "" #: common/mlcustomize/customize_cmdline.ml:333 msgid "Move files in disk image" msgstr "" #: common/mlcustomize/customize_run.ml:264 msgid "Moving: %s -> %s" msgstr "" #. input/input_vcenter_https.ml:45 #. input/input_ova.ml:35 #. input/input_libvirt.ml:233 #. input/input_libvirt.ml:221 #. input/input_disk.ml:35 #: input/input_xen_ssh.ml:43 input/input_vmx.ml:36 msgid "No input options can be used in this mode.\n" msgstr "" #: output/output_ovirt.ml:40 output/output_null.ml:38 #: output/output_glance.ml:40 msgid "No output options can be used in this mode.\n" msgstr "" #: output/output_vdsm.ml:166 msgid "OVF (metadata) directory (%s) does not exist or is not a directory" msgstr "" #: common/mlcustomize/firstboot.ml:268 msgid "" "One of rhsrvany.exe or pvvxsvc.exe is missing in %s. One of them is " "required in order to install Windows firstboot scripts. You can get one by " "building rhsrvany (https://github.com/rwmjones/rhsrvany)" msgstr "" #: v2v/v2v.ml:236 msgid "Output hypervisor connection" msgstr "" #: output/output_ovirt_upload.ml:51 msgid "" "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" "\n" "You can override the UUIDs of the disks, instead of using autogenerated " "UUIDs\n" "after their uploads (if you do, you must supply one for each disk):\n" "\n" " -oo ovirt-disk-uuid=UUID Disk UUID\n" msgstr "" #: output/output_qemu.ml:44 msgid "" "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" msgstr "" #: output/output_vdsm.ml:43 msgid "" "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" "\n" "For 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" msgstr "" #: output/output_disk.ml:44 msgid "" "Output options that can be used with -o disk:\n" "\n" " -oo compressed Compress the output file (used only with -of qcow2)\n" msgstr "" #: output/output_kubevirt.ml:51 msgid "" "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" msgstr "" #: output/output_libvirt.ml:47 msgid "" "Output options that can be used with -o libvirt:\n" "\n" " -oo compressed Compress the output file (used only with -of qcow2)\n" msgstr "" #. common/mlcustomize/customize_cmdline.ml:235 #: common/mlcustomize/customize_cmdline.ml:420 msgid "PATH" msgstr "" #: common/mlcustomize/customize_cmdline.ml:181 msgid "PERMISSIONS:FILE" msgstr "" #. common/mlcustomize/customize_cmdline.ml:300 #. common/mlcustomize/customize_cmdline.ml:265 #: common/mlcustomize/customize_cmdline.ml:427 msgid "PKG,PKG.." msgstr "" #: v2v/v2v.ml:263 in-place/in_place.ml:203 msgid "Prefer 'virtio-blk' or 'virtio-scsi'" msgstr "" #: v2v/v2v.ml:252 in-place/in_place.ml:192 msgid "Print source and stop" msgstr "" #: common/mlcustomize/customize_cmdline.ml:208 msgid "Read customize commands from file" msgstr "" #: common/mltools/tools_utils.ml:421 msgid "Read passphrases from stdin" msgstr "" #: common/mlcustomize/customize_cmdline.ml:421 msgid "Recursively truncate all files in directory" msgstr "" #: common/mlcustomize/customize_run.ml:298 msgid "Recursively truncating: %s" msgstr "" #: v2v/v2v.ml:240 msgid "Rename guest when converting" msgstr "" #: common/mlcustomize/customize_cmdline.ml:259 msgid "Run command at first guest boot" msgstr "" #: common/mlcustomize/customize_cmdline.ml:368 msgid "Run command in disk image" msgstr "" #: common/mlcustomize/customize_cmdline.ml:253 msgid "Run script at first guest boot" msgstr "" #: common/mlcustomize/customize_cmdline.ml:362 msgid "Run script in disk image" msgstr "" #: common/mlcustomize/customize_cmdline.ml:409 msgid "Run touch on a file" msgstr "" #: v2v/v2v.ml:250 msgid "Run up to N instances of nbdcopy in parallel" msgstr "" #: open/open.ml:188 msgid "Running external command" msgstr "" #: common/mlcustomize/customize_run.ml:307 msgid "Running touch: %s" msgstr "" #. common/mlcustomize/customize_run.ml:159 #: common/mlcustomize/customize_run.ml:274 msgid "Running: %s" msgstr "" #. common/mlcustomize/customize_cmdline.ml:252 #: common/mlcustomize/customize_cmdline.ml:361 msgid "SCRIPT" msgstr "" #: common/mltools/tools_utils.ml:422 #: common/mlcustomize/customize_cmdline.ml:351 msgid "SELECTOR" msgstr "" #: common/mlcustomize/customize_run.ml:363 msgid "SELinux relabelling" msgstr "" #. common/mlcustomize/customize_cmdline.ml:214 #: common/mlcustomize/customize_cmdline.ml:328 msgid "SOURCE:DEST" msgstr "" #: common/mlcustomize/customize_run.ml:287 msgid "SSH key could not be injected for this type of guest" msgstr "" #: common/mlcustomize/customize_run.ml:284 msgid "SSH key inject: %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:374 msgid "Scrub a file" msgstr "" #: common/mlcustomize/customize_cmdline.ml:466 msgid "Scrub build log file" msgstr "" #: common/mlcustomize/customize_run.ml:374 msgid "Scrubbing the log file" msgstr "" #: common/mlcustomize/customize_run.ml:279 msgid "Scrubbing: %s" msgstr "" #: v2v/v2v.ml:208 msgid "Set bandwidth dynamically from file" msgstr "" #: v2v/v2v.ml:206 msgid "Set bandwidth to bits per sec" msgstr "" #. in-place/in_place.ml:172 #: v2v/v2v.ml:212 open/open.ml:76 inspector/inspector.ml:161 msgid "Set input mode (default: libvirt)" msgstr "" #: v2v/v2v.ml:228 inspector/inspector.ml:175 in-place/in_place.ml:184 msgid "Set memory size" msgstr "" #: v2v/v2v.ml:256 inspector/inspector.ml:185 in-place/in_place.ml:196 msgid "Set number of vCPUs" msgstr "" #. in-place/in_place.ml:178 #: v2v/v2v.ml:218 open/open.ml:82 inspector/inspector.ml:167 msgid "Set option for input mode" msgstr "" #: v2v/v2v.ml:242 msgid "Set option for output mode" msgstr "" #: v2v/v2v.ml:234 msgid "Set output allocation mode" msgstr "" #: v2v/v2v.ml:238 msgid "Set output format" msgstr "" #: v2v/v2v.ml:232 msgid "Set output mode (default: libvirt)" msgstr "" #: v2v/v2v.ml:246 msgid "Set output storage location" msgstr "" #: common/mlcustomize/customize_cmdline.ml:476 msgid "Set password crypto" msgstr "" #: common/mltools/tools_utils.ml:430 msgid "Set program name" msgstr "" #: common/mlcustomize/customize_cmdline.ml:356 msgid "Set root password" msgstr "" #: common/mlcustomize/customize_cmdline.ml:403 msgid "Set the default timezone" msgstr "" #: common/mlcustomize/customize_cmdline.ml:276 msgid "Set the hostname" msgstr "" #: inspector/inspector.ml:181 in-place/in_place.ml:188 msgid "Set the output filename" msgstr "" #: common/mlcustomize/customize_cmdline.ml:345 msgid "Set user password" msgstr "" #: common/mlcustomize/customize_run.ml:75 msgid "Setting a random seed" msgstr "" #: common/mlcustomize/customize_run.ml:354 msgid "Setting passwords" msgstr "" #: common/mlcustomize/password.ml:113 msgid "Setting random password of %s to %s" msgstr "" #: common/mlcustomize/customize_run.ml:207 msgid "Setting the hostname: %s" msgstr "" #: common/mlcustomize/customize_run.ml:90 msgid "Setting the machine ID in %s" msgstr "" #: common/mlcustomize/customize_run.ml:302 msgid "Setting the timezone: %s" msgstr "" #: v2v/v2v.ml:481 msgid "Setting up the destination: %s" msgstr "" #. in-place/in_place.ml:342 #: v2v/v2v.ml:457 open/open.ml:184 inspector/inspector.ml:310 msgid "Setting up the source: %s" msgstr "" #: v2v/v2v.ml:463 in-place/in_place.ml:348 msgid "Source guest information (--print-source option):\n" msgstr "" #: common/mltools/tools_utils.ml:422 msgid "Specify a LUKS key" msgstr "" #: common/mlcustomize/customize_cmdline.ml:392 msgid "TARFILE:REMOTEDIR" msgstr "" #: common/mlcustomize/customize_cmdline.ml:311 msgid "TARGET:LINK[:LINK..]" msgstr "" #: common/mlcustomize/customize_cmdline.ml:402 msgid "TIMEZONE" msgstr "" #: v2v/v2v.ml:200 msgid "" "The --in-place option has been replaced by the ‘virt-v2v-in-place’ program" msgstr "" #: output/output_qemu.ml:251 msgid "" "The Virt machine has no support for IDE. Please report a bug for virt-v2v -- " "refer to virt-v2v(1) section \"BUGS\"." msgstr "" #: output/output_qemu.ml:272 msgid "" "The Virt machine has no support for floppies. Please report a bug for virt-" "v2v -- refer to virt-v2v(1) section \"BUGS\"." msgstr "" #: lib/create_ovf.ml:785 msgid "" "This guest required a password for connection to its display, but this is " "not supported by oVirt. Therefore the converted guest’s display will not " "require a separate password to connect." msgstr "" #: input/input_vmx.ml:111 msgid "" "This transport does not support guests with snapshots. Either collapse the " "snapshots for this guest and try the conversion again, or use one of the " "alternate conversion methods described in virt-v2v-input-vmware(1) section " "\"NOTES\"." msgstr "" #: common/mlcustomize/customize_cmdline.ml:415 msgid "Truncate a file to zero size" msgstr "" #: common/mlcustomize/customize_run.ml:294 msgid "Truncating: %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:192 msgid "UID:GID:PATH" msgstr "" #: common/mlcustomize/customize_cmdline.ml:339 msgid "USER:SELECTOR" msgstr "" #: common/mlcustomize/customize_cmdline.ml:380 msgid "USER[:SELECTOR]" msgstr "" #: common/mlcustomize/customize_cmdline.ml:432 msgid "Uninstall package(s)" msgstr "" #: common/mlcustomize/customize_run.ml:311 msgid "Uninstalling packages: %s" msgstr "" #: common/mlcustomize/customize_run.ml:290 msgid "Unpack tar file: %s to %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:438 msgid "Update packages" msgstr "" #: common/mlcustomize/customize_run.ml:316 msgid "Updating packages" msgstr "" #: common/mlcustomize/customize_cmdline.ml:449 msgid "Upload local file to destination" msgstr "" #: common/mlcustomize/customize_run.ml:321 msgid "Uploading: %s to %s" msgstr "" #: common/mltools/tools_utils.ml:391 msgid "Use ANSI colour sequences even if not tty" msgstr "" #. in-place/in_place.ml:180 #: v2v/v2v.ml:220 open/open.ml:84 inspector/inspector.ml:169 msgid "Use password from file to connect to input hypervisor" msgstr "" #: v2v/v2v.ml:244 msgid "Use password from file to connect to output hypervisor" msgstr "" #: v2v/v2v.ml:224 msgid "Use virt-v2v-in-place instead" msgstr "" #: common/mltools/tools_utils.ml:392 msgid "Wrap log messages even if not tty" msgstr "" #: common/mlcustomize/customize_cmdline.ml:460 msgid "Write file" msgstr "" #: common/mlcustomize/customize_run.ml:346 msgid "Writing: %s" msgstr "" #: lib/YAML.ml:167 msgid "" "YAML block contains newline character. This should not happen, please " "report a bug against virt-v2v." msgstr "" #: output/output_libvirt.ml:96 msgid "" "a libvirt domain called ‘%s’ already exists on the target.\n" "\n" "If using virt-v2v directly, use the ‘-on’ option to select a different name. " "Or delete the existing domain on the target using the ‘virsh undefine’ " "command.\n" "\n" "If using virt-p2v, select a different ‘Name’ in the ‘Target properties’. Or " "delete the existing domain on the target using the ‘virsh undefine’ command." msgstr "" #: common/mlcustomize/append_line.ml:44 msgid "append_line: %s is not a file" msgstr "" #: input/input_libvirt.ml:206 msgid "" "bad checksum for disk %d/%d\n" "Expected checksum: %s\n" "Actual checksum: %s" msgstr "" #: lib/libvirt_utils.ml:59 msgid "cannot find libvirt domain ‘%s’: %s" msgstr "" #: lib/libvirt_utils.ml:96 msgid "" "cannot find libvirt pool ‘%s’: %s\n" "\n" "Use ‘virsh pool-list --all’ to list all available pools, and ‘virsh pool-" "dumpxml ’ to display details about a particular pool.\n" "\n" "To set the pool which virt-v2v uses, add the ‘-os ’ option." msgstr "" #: lib/libvirt_utils.ml:110 msgid "cannot find libvirt volume ‘%s’: %s" msgstr "" #: common/mlcustomize/firstboot.ml:235 msgid "" "cannot finish firstboot installation by running ‘%s’ because host cpu (%s) " "and guest arch (%s) are not compatible. The firstboot service may not run " "at boot." msgstr "" #: output/output_libvirt.ml:180 msgid "cannot get libvirt domain capabilities: %s" msgstr "" #: output/output_libvirt.ml:85 msgid "cannot get libvirt hypervisor capabilities: %s" msgstr "" #: v2v/v2v.ml:105 inspector/inspector.ml:95 in-place/in_place.ml:102 msgid "cannot parse --mac \"%s\" parameter" msgstr "" #: v2v/v2v.ml:129 inspector/inspector.ml:119 in-place/in_place.ml:126 msgid "cannot parse --mac ip %s: doesn’t look like “%s” is an IP address" msgstr "" #: v2v/v2v.ml:143 inspector/inspector.ml:133 in-place/in_place.ml:140 msgid "cannot parse --mac ip prefix length field as an integer: %s" msgstr "" #: common/mlcustomize/guest_packages.ml:29 msgid "" "cannot use ‘%s’ because no package manager has been detected for this guest " "OS.\n" "\n" "If this guest OS is a common one with ordinary package management then this " "may have been caused by a failure of libguestfs inspection.\n" "\n" "For OSes such as Windows that lack package management, this is not " "possible. Try using one of the ‘--firstboot*’ flags instead (described in " "the virt-customize(1) manual)." msgstr "" #: output/output_ovirt.ml:91 msgid "" "cannot write files to the NFS server as %d:%d, even though we appear to be " "running as root. This probably means the NFS client or idmapd is not " "configured properly.\n" "\n" "You will have to chown the files that virt-v2v creates after the run, " "otherwise oVirt will not be able to import the VM." msgstr "" #: output/output_ovirt.ml:99 msgid "" "cannot write files to the NFS server as %d:%d. You might want to stop virt-" "v2v (^C) and rerun it as root." msgstr "" #: common/mlcustomize/customize_cmdline.ml:508 msgid "command '%s' cannot be used in command files, see the man page" msgstr "" #: common/mlcustomize/customize_cmdline.ml:525 msgid "command '%s' not valid, see the man page" msgstr "" #: common/mldrivers/linux_bootloaders.ml:318 msgid "could not add grub2 serial console (ignored)" msgstr "" #: input/ssh.ml:52 msgid "" "could not copy the VMX file from the remote server, see earlier error " "messages" msgstr "" #: output/output_libvirt.ml:211 msgid "" "could not define libvirt domain: %s.\n" "The libvirt XML is still available in ‘%s’. Try running ‘virsh -c %s define " "%s’ yourself instead." msgstr "" #: common/mldrivers/linux_bootloaders.ml:221 msgid "could not determine a way to update the configuration of Grub2" msgstr "" #: input/input_vddk.ml:243 msgid "" "could not fetch thumbprint from the server, you mus use ‘-io vddk-" "thumbprint=XX:XX...’" msgstr "" #: common/mldrivers/linux_bootloaders.ml:376 msgid "could not find bootloader mount point (%s): %s" msgstr "" #: common/mldrivers/windows_drivers.ml:91 msgid "" "could not find registry entry " "HKEY_LOCAL_MACHINE\\SYSTEM\\DriverDatabase\\DeviceIds in this Windows " "guest. It may be either a very old or very new version of Windows that we " "cannot process." msgstr "" #: common/mlcustomize/firstboot.ml:232 msgid "" "could not finish firstboot installation by running ‘%s’ because the command " "failed: %s" msgstr "" #. input/input_vcenter_https.ml:94 #: input/select_input.ml:66 input/input_xen_ssh.ml:71 input/input_vddk.ml:151 msgid "could not parse '-ic %s'. Original error message was: %s" msgstr "" #: input/parse_libvirt_xml.ml:407 input/parse_libvirt_xml.ml:54 msgid "could not parse device name ‘%s’ from the source libvirt XML" msgstr "" #: input/OVF.ml:168 msgid "could not parse disk rasd:HostResource from OVF document" msgstr "" #: input/input_ova.ml:98 msgid "could not parse ovf:Name from OVF document" msgstr "" #: output/output_ovirt.ml:247 msgid "" "could not read the %s specified by the '-os %s' parameter on the command " "line. Is it really an OVirt %s? The original error is: %s" msgstr "" #: common/mldrivers/linux_bootloaders.ml:336 msgid "" "could not rebuild grub2 configuration file (%s). This may mean that grub " "output will not be sent to the serial port, but otherwise should be " "harmless. Original error message: %s" msgstr "" #: output/output_libvirt.ml:156 msgid "could not refresh libvirt pool ‘%s’: %s" msgstr "" #: common/mldrivers/linux_bootloaders.ml:320 msgid "could not remove grub2 serial console (ignored)" msgstr "" #: common/mltools/registry.ml:93 msgid "" "decode_utf16le: Windows UTF16-LE string contains non-7-bit characters. This " "is a bug in %s, please report it." msgstr "" #: common/mltools/registry.ml:87 msgid "" "decode_utf16le: Windows string does not appear to be in UTF16-LE encoding. " "This could be a bug in %s." msgstr "" #: common/mldrivers/linux_bootloaders.ml:126 msgid "didn't find grub entry for kernel %s" msgstr "" #: input/input_disk.ml:150 msgid "disks on the command line have mixed formats" msgstr "" #: input/parse_libvirt_xml.ml:194 msgid "display in the input libvirt XML was ignored" msgstr "" #: output/output_qemu.ml:147 msgid "don’t know how to convert UEFI guests for architecture %s" msgstr "" #: common/mldrivers/linux.ml:158 msgid "don’t know how to find file owner using %s" msgstr "" #: common/mldrivers/linux.ml:89 msgid "don’t know how to get list of files from package using %s" msgstr "" #: common/mltools/curl.ml:82 msgid "downloading %s" msgstr "" #: lib/networks.ml:84 msgid "" "duplicate --mac parameter. Duplicate mappings specified for MAC address %s." msgstr "" #: lib/networks.ml:102 msgid "" "duplicate -b/--bridge parameter. Duplicate mappings specified for bridge %s." msgstr "" #: lib/networks.ml:108 msgid "duplicate -b/--bridge parameter. Only one default mapping is allowed." msgstr "" #: lib/networks.ml:90 msgid "" "duplicate -n/--network parameter. Duplicate mappings specified for network " "%s." msgstr "" #: lib/networks.ml:96 msgid "duplicate -n/--network parameter. Only one default mapping is allowed." msgstr "" #: input/OVF.ml:143 msgid "error parsing disk fileRef" msgstr "" #: input/input_ova.ml:124 msgid "error uncompressing %s, see earlier error messages" msgstr "" #: input/OVA.ml:210 input/OVA.ml:112 msgid "error unpacking %s, see earlier error messages" msgstr "" #: common/mltools/tools_utils.ml:248 msgid "exception: %s" msgstr "" #: common/mltools/tools_utils.ml:455 msgid "exited with error %d" msgstr "" #: lib/utils.ml:34 msgid "exited with non-zero error code %d" msgstr "" #: input/input_disk.ml:147 msgid "expected >= 1 disk name on the command line" msgstr "" #: common/mltools/xpath_helpers.ml:36 msgid "" "expecting XML expression to return an integer (expression: %s, matching " "string: %s)" msgstr "" #: common/mltools/tools_utils.ml:440 msgid "external command" msgstr "" #: output/output_ovirt_upload.ml:265 msgid "failed server prechecks, see earlier errors" msgstr "" #: output/output_ovirt_upload.ml:507 msgid "failed to create virtual machine, see earlier errors" msgstr "" #: output/output_ovirt_upload.ml:479 msgid "failed to finalize the transfers, see earlier errors" msgstr "" #: common/mldrivers/linux_bootloaders.ml:208 msgid "failed to find grub2-mkconfig binary (but Grub2 was detected on guest)" msgstr "" #: input/OVA.ml:461 msgid "failed to parse line returned by tar: %S" msgstr "" #: output/output_ovirt_upload.ml:394 msgid "failed to start transfer, see earlier errors" msgstr "" #: output/output_ovirt_upload.ml:311 msgid "failed vmchecks, see earlier errors" msgstr "" #: common/mltools/tools_utils.ml:239 msgid "failure: %s" msgstr "" #: input/input_ova.ml:134 msgid "file ‘%s’ not found in the ova" msgstr "" #: common/mlcustomize/firstboot.ml:143 msgid "" "firstboot: unknown version for old firstboot.service file %s (md5=%s), it " "will not be removed" msgstr "" #: common/mltools/tools_utils.ml:258 msgid "generated by %s %s" msgstr "" #: output/create_libvirt_xml.ml:39 msgid "get_osinfo_id: unknown guest operating system: %s" msgstr "" #: output/output_glance.ml:66 msgid "" "glance: glance client is not installed or set up correctly. You may need to " "set environment variables or source a script to enable authentication. See " "preceding messages for details." msgstr "" #: output/output_glance.ml:139 msgid "glance: image upload to glance failed, see earlier errors" msgstr "" #: common/mlcustomize/firstboot.ml:386 common/mlcustomize/firstboot.ml:164 msgid "guest type %s is not supported" msgstr "" #: common/mlcustomize/firstboot.ml:413 msgid "guest type %s/%s is not supported" msgstr "" #: common/mltools/tools_utils.ml:749 msgid "" "host (%s/%s) and guest (%s/%s) are not compatible, so you cannot use command " "line options that involve running commands in the guest. Use --firstboot " "scripts instead." msgstr "" #: common/mlcustomize/customize_run.ml:209 msgid "hostname could not be set for this type of guest" msgstr "" #: common/mldrivers/linux_kernels.ml:342 msgid "ignoring kernel %s in bootloader, as it does not exist." msgstr "" #: output/output_vdsm.ml:160 msgid "image directory (%s) does not exist or is not a directory" msgstr "" #: input/parse_libvirt_xml.ml:81 msgid "in the libvirt XML metadata, is missing or empty" msgstr "" #: input/parse_libvirt_xml.ml:87 msgid "in the libvirt XML metadata, is missing or empty" msgstr "" #: input/input_vcenter_https.ml:52 input/input_libvirt.ml:107 msgid "in-place mode does not work with HTTP source" msgstr "" #: input/input_vddk.ml:146 msgid "in-place mode does not work with VDDK source" msgstr "" #: input/input_vmx.ml:43 msgid "in-place mode does not work with VMX source" msgstr "" #: input/input_xen_ssh.ml:50 msgid "in-place mode does not work with Xen over SSH source" msgstr "" #: output/output_kubevirt.ml:116 msgid "" "incorrect number of '-oo disk' parameters. This guest has %d disks, but the " "parameter was used %d times." msgstr "" #: input/input_xen_ssh.ml:119 msgid "" "input from xen over ssh does not support disks stored on remote block " "devices. See virt-v2v-input-xen(1) section \"Xen or ssh conversions from " "block devices\"." msgstr "" #. in-place/in_place.ml:397 #: v2v/v2v.ml:590 open/open.ml:238 inspector/inspector.ml:353 msgid "" "insufficient free space in the conversion server temporary directory %s " "(%s).\n" "\n" "Either free up space in that directory, or set the LIBGUESTFS_CACHEDIR " "environment variable to point to another directory with more than 1GB of " "free space.\n" "\n" "See also the virt-v2v(1) manual, section \"Minimum free space check in the " "host\"." msgstr "" #: common/mltools/tools_utils.ml:246 msgid "internal error: Not_found exception was thrown" msgstr "" #: common/mltools/tools_utils.ml:243 msgid "internal error: assertion failed at %s, line %d, char %d" msgstr "" #: common/mltools/tools_utils.ml:241 msgid "internal error: invalid argument: %s" msgstr "" #: common/mldrivers/linux.ml:128 msgid "internal error: is_file_owned: dpkg command returned no output" msgstr "" #: common/mldrivers/linux.ml:133 msgid "internal error: is_file_owned: unexpected output from dpkg command: %s" msgstr "" #: common/mldrivers/linux_bootloaders.ml:130 msgid "internal error: regular expression did not match ‘%s’" msgstr "" #: v2v/v2v.ml:548 msgid "internal error: wait returned unexpected process ID %d status \"%s\"" msgstr "" #: v2v/v2v.ml:114 inspector/inspector.ml:104 in-place/in_place.ml:111 msgid "invalid --mac ip option" msgstr "" #: v2v/v2v.ml:98 inspector/inspector.ml:88 in-place/in_place.ml:95 msgid "invalid -b/--bridge parameter" msgstr "" #: v2v/v2v.ml:90 inspector/inspector.ml:80 in-place/in_place.ml:87 msgid "invalid -n/--network parameter" msgstr "" #: input/parse_domain_from_vmx.ml:402 msgid "invalid cpuid.coresPerSocket < number of vCPUs" msgstr "" #. common/mlcustomize/customize_cmdline.ml:153 #. common/mlcustomize/customize_cmdline.ml:145 #: common/mlcustomize/customize_cmdline.ml:161 msgid "invalid format for '--%s' parameter, see the man page" msgstr "" #: common/mltools/tools_utils.ml:359 msgid "invalid format string for --machine-readable: %s" msgstr "" #: lib/utils.ml:279 msgid "invalid input filename (%s)" msgstr "" #: input/OVA.ml:445 msgid "invalid offset returned by tar: %S" msgstr "" #: common/mltools/tools_utils.ml:374 msgid "invalid output fd for --machine-readable: %s" msgstr "" #: common/mltools/tools_utils.ml:376 msgid "invalid output for --machine-readable: %s" msgstr "" #: common/mltools/tools_utils.ml:368 msgid "invalid output stream for --machine-readable: %s" msgstr "" #: common/mlcustomize/password.ml:73 msgid "invalid password selector ‘%s’; see the man page" msgstr "" #: input/OVA.ml:450 msgid "invalid size returned by tar: %S" msgstr "" #: common/mlcustomize/ssh_key.ml:45 msgid "invalid ssh-inject selector ‘%s’; see the man page" msgstr "" #: input/OVF.ml:82 msgid "invalid vmw:CoresPerSocket (%d) ignored" msgstr "" #: input/OVF.ml:88 msgid "invalid vmw:CoresPerSocket < number of cores" msgstr "" #: common/mldrivers/linux_bootloaders.ml:114 msgid "kernel %s is not under grub tree %s" msgstr "" #: common/mltools/tools_utils.ml:539 common/mltools/tools_utils.ml:458 msgid "killed by signal %d" msgstr "" #: common/mltools/tools_utils.ml:237 msgid "libguestfs error: %s" msgstr "" #: lib/libvirt_utils.ml:72 msgid "" "libvirt domain ‘%s’ is running or paused. Converting a live guest will " "result in corrupted output. However this is safe if you're converting from a " "snapshot" msgstr "" #: common/mlcustomize/customize_run.ml:47 msgid "log file %s: %s (ignored)" msgstr "" #: input/OVA.ml:147 msgid "" "making OVA directory public readable to work around libvirt bug https://" "bugzilla.redhat.com/1045069" msgstr "" #: input/input_ova.ml:86 msgid "manifest has a checksum for non-existent file %s (ignored)" msgstr "" #: common/mlcustomize/customize_cmdline.ml:472 msgid "md5|sha256|sha512" msgstr "" #: common/mlcustomize/customize_run.ml:119 msgid "method '%s' is no longer supported" msgstr "" #: common/mltools/JSON_parser.ml:39 msgid "missing value for the key ‘%s’" msgstr "" #: input/OVA.ml:276 msgid "more than one .ovf file was found in %s" msgstr "" #: common/mltools/JSON_parser.ml:34 msgid "more than value for the key ‘%s’" msgstr "" #: output/output_ovirt.ml:222 msgid "" "mount command failed, see earlier errors.\n" "\n" "This probably means you didn't specify the right %s path [-os %s], or else " "you need to rerun virt-v2v as root." msgstr "" #: common/mlcustomize/customize_run.ml:103 msgid "" "multiple --root-password/--password options set the password for user ‘%s’ " "twice" msgstr "" #: input/input_vddk.ml:319 msgid "" "nbdkit VDDK plugin is not installed or not working. It is required if you " "want to use VDDK.\n" "\n" "It 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 ’/%s/libvixDiskLib.so.?’.\n" "\n" "See also the virt-v2v-input-vmware(1) manual." msgstr "" #: input/input_vddk.ml:313 msgid "" "nbdkit VDDK plugin is not installed or not working. It is required if you " "want to use VDDK.\n" "\n" "The 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" "\n" "See also the virt-v2v-input-vmware(1) manual." msgstr "" #: lib/nbdkit.ml:223 msgid "nbdkit did not start up. See previous debugging messages for problems." msgstr "" #: lib/nbdkit.ml:225 msgid "" "nbdkit did not start up. There may be errors printed by nbdkit above.\n" "\n" "If the messages above are not sufficient to diagnose the problem then add " "the ‘virt-v2v -v -x’ options and examine the debugging output carefully." msgstr "" #: input/nbdkit_ssh.ml:36 input/nbdkit_curl.ml:32 input/input_vddk.ml:283 msgid "nbdkit is not installed or not working" msgstr "" #: input/input_disk.ml:92 msgid "" "nbdkit is not installed or not working. It is required to use ‘-i disk’." msgstr "" #: input/input_libvirt.ml:68 msgid "" "nbdkit is not installed or not working. It is required to use ‘-i libvirt|" "libvirtxml’." msgstr "" #: output/output.ml:178 output/output.ml:77 msgid "" "nbdkit is not installed or not working. It is required to use ‘-o disk’." msgstr "" #: output/output_null.ml:57 msgid "" "nbdkit is not installed or not working. It is required to use ‘-o null’." msgstr "" #: output/output_ovirt_upload.ml:163 msgid "" "nbdkit is not installed or not working. It is required to use ‘-o ovirt-" "upload’. See the virt-v2v-output-ovirt(1) manual." msgstr "" #: input/input_vddk.ml:285 msgid "nbdkit must be >= 1.45.11 for input from VDDK" msgstr "" #: output/output_ovirt_upload.ml:176 msgid "" "nbdkit python plugin is not installed or not working. It is required if you " "want to use ‘-o ovirt-upload’.\n" "\n" "See also the virt-v2v-output-ovirt(1) manual." msgstr "" #: output/output_ovirt_upload.ml:190 msgid "" "nbdkit was compiled without SELinux support. You will have to recompile " "nbdkit with libselinux-devel installed, or else set SELinux to Permissive " "mode while doing the conversion." msgstr "" #. input/input_libvirt.ml:76 #. input/input_disk.ml:98 #: input/nbdkit_ssh.ml:42 input/nbdkit_curl.ml:38 input/input_vddk.ml:289 msgid "nbdkit-cow-filter is not installed or not working" msgstr "" #: input/nbdkit_curl.ml:35 msgid "nbdkit-curl-plugin is not installed" msgstr "" #. input/input_disk.ml:96 #: output/output.ml:181 output/output.ml:80 input/input_libvirt.ml:72 msgid "nbdkit-file-plugin is not installed or not working" msgstr "" #: input/input_libvirt.ml:74 msgid "nbdkit-nbd-plugin is not installed or not working" msgstr "" #: output/output_null.ml:60 msgid "nbdkit-null-plugin is not installed or not working" msgstr "" #: input/nbdkit_ssh.ml:39 msgid "nbdkit-ssh-plugin is not installed" msgstr "" #: input/input_vddk.ml:287 msgid "nbdkit-vddk-plugin is not installed" msgstr "" #: lib/nbdkit.ml:56 msgid "nbdkit: unexpected version in --dump-config: %s" msgstr "" #. input/input_vcenter_https.ml:49 #. input/input_ova.ml:46 #. input/input_libvirt.ml:35 #. input/input_disk.ml:39 #: input/input_xen_ssh.ml:47 input/input_vmx.ml:40 msgid "no -io (input options) are allowed here" msgstr "" #: output/output_ovirt.ml:44 output/output_null.ml:42 #: output/output_glance.ml:44 msgid "no -oo (output options) are allowed here" msgstr "" #: input/OVA.ml:273 msgid "no .ovf file was found in %s" msgstr "" #: common/mldrivers/linux_bootloaders.ml:402 msgid "no bootloader detected" msgstr "" #: input/parse_domain_from_vmx.ml:359 msgid "no displayName key found in VMX file" msgstr "" #: input/OVF.ml:148 msgid "no href in ovf:File (id=%s)" msgstr "" #: common/mldrivers/linux_kernels.ml:194 msgid "no initrd was found in /boot matching %s %s." msgstr "" #: common/mldrivers/linux_kernels.ml:317 msgid "" "no installed kernel packages were found.\n" "\n" "This probably indicates that %s was unable to inspect this guest properly." msgstr "" #: common/mldrivers/linux_kernels.ml:354 msgid "" "no kernels were found in the bootloader configuration.\n" "\n" "This probably indicates that %s was unable to parse the bootloader " "configuration of this guest." msgstr "" #: output/python_script.ml:55 msgid "no python binary called ‘%s’ can be found on the $PATH" msgstr "" #: input/select_input.ml:106 msgid "" "no support for remote libvirt connections to '-ic %s'. The conversion may " "fail when it tries to read the source disks." msgstr "" #: lib/create_ovf.ml:1027 msgid "" "oVirt cannot emulate ‘%s’ sound cards. This sound card will be dropped from " "the output." msgstr "" #: lib/create_ovf.ml:875 lib/create_ovf.ml:512 msgid "oVirt does not support the output format ‘%s’, only raw or qcow2" msgstr "" #: output/output_openstack.ml:120 msgid "openstack: -oo server-id= not present" msgstr "" #: output/output_openstack.ml:338 msgid "" "openstack: failed to attach cinder volume to VM, see earlier error messages" msgstr "" #: output/output_openstack.ml:291 msgid "openstack: failed to create a cinder volume, see earlier error messages" msgstr "" #: output/output_openstack.ml:304 msgid "" "openstack: failed to query cinder volume status, see earlier error messages" msgstr "" #: output/output_openstack.ml:442 msgid "" "openstack: failed to set image properties on cinder volume, see earlier " "error messages" msgstr "" #: output/output_openstack.ml:199 msgid "" "openstack: precheck failed, there may be a problem with authentication, see " "earlier error messages" msgstr "" #: output/output_openstack.ml:311 msgid "" "openstack: unknown volume status \"%s\": expected \"creating\" or " "\"available\"" msgstr "" #: output/output.ml:133 msgid "output mode only supports raw or qcow2 format (format: %s)" msgstr "" #: input/OVF.ml:263 msgid "" "ova disk has an unknown VMware controller type (%d), please report this as a " "bug supplying the *.ovf file extracted from the ova" msgstr "" #: input/OVF.ml:259 msgid "" "ova disk has no parent controller, please report this as a bug supplying the " "*.ovf file extracted from the ova" msgstr "" #: output/output_ovirt_upload.ml:367 msgid "" "ovirt-upload: -of %s: Only output format ‘raw’ or ‘qcow2’ is supported. If " "the input is in a different format then force one of these output formats by " "adding either ‘-of raw’ or ‘-of qcow2’ on the command line." msgstr "" #: common/mlcustomize/password.ml:51 msgid "" "password-crypto: unknown algorithm %s, use \"md5\", \"sha256\", \"sha512\" " "or \"yescrypt\"" msgstr "" #: common/mlcustomize/password.ml:197 msgid "" "password: using insecure md5 password encryption for guest of type %s " "version %d.%d.\n" "If this is incorrect, use --password-crypto option and file a bug." msgstr "" #: common/mlcustomize/customize_run.ml:359 msgid "passwords could not be set for this type of guest" msgstr "" #: lib/qemuNBD.ml:125 msgid "" "qemu-nbd did not start up. See previous debugging messages for problems." msgstr "" #: lib/qemuNBD.ml:127 msgid "" "qemu-nbd did not start up. There may be errors printed by qemu-nbd above.\n" "\n" "If the messages above are not sufficient to diagnose the problem then add " "the ‘virt-v2v -v -x’ options and examine the debugging output carefully." msgstr "" #: lib/qemuNBD.ml:47 msgid "qemu-nbd: unexpected version in --version: %s" msgstr "" #: common/mlcustomize/customize_run.ml:77 msgid "random seed could not be set for this type of guest" msgstr "" #: input/parse_domain_from_vmx.ml:44 msgid "remote vmx ‘%s’ could not be parsed as a URI" msgstr "" #. common/mlcustomize/inject_virtio_win.ml:357 #. common/mlcustomize/inject_virtio_win.ml:352 #: common/mlcustomize/inject_virtio_win.ml:362 msgid "" "root directory ‘/’ is missing from the virtio-win directory or ISO.\n" "\n" "This should not happen and may indicate that virtio-win or virt-v2v is " "broken in some way. Please report this as a bug with a full debug log." msgstr "" #: common/mltools/tools_utils.ml:417 common/options/keys.c:264 #, c-format msgid "selector '%s': invalid TYPE" msgstr "" #: common/mltools/tools_utils.ml:409 common/options/keys.c:254 #, c-format msgid "selector '%s': missing FILENAME, or too many fields" msgstr "" #: common/mltools/tools_utils.ml:399 common/options/keys.c:232 #, c-format msgid "selector '%s': missing ID" msgstr "" #: common/mltools/tools_utils.ml:404 common/options/keys.c:245 #, c-format msgid "selector '%s': missing KEY_STRING, or too many fields" msgstr "" #: common/mltools/tools_utils.ml:401 common/options/keys.c:239 #, c-format msgid "selector '%s': missing TYPE" msgstr "" #: common/mltools/tools_utils.ml:413 common/options/keys.c:262 #, c-format msgid "selector '%s': too many fields" msgstr "" #: lib/utils.ml:35 msgid "signalled by signal %d" msgstr "" #: common/mlcustomize/guest_packages.ml:40 msgid "" "sorry, ‘%s’ with the ‘%s’ package manager has not been implemented yet.\n" "\n" "You can work around this by using one of the ‘--run*’ or ‘--firstboot*’ " "options instead (described in the virt-customize(1) manual)." msgstr "" #: common/mlcustomize/ssh_key.ml:57 msgid "ssh-inject: $HOME environment variable is not set" msgstr "" #: common/mlcustomize/ssh_key.ml:93 msgid "ssh-inject: key is an empty string" msgstr "" #: common/mlcustomize/ssh_key.ml:66 msgid "ssh-inject: no public key file found in %s" msgstr "" #: common/mlcustomize/ssh_key.ml:83 msgid "ssh-inject: public key file (%s) is empty" msgstr "" #: common/mlcustomize/ssh_key.ml:112 msgid "ssh-inject: the user %s does not exist on the guest" msgstr "" #. common/mltools/tools_utils.ml:461 #: lib/utils.ml:36 common/mltools/tools_utils.ml:542 msgid "stopped by signal %d" msgstr "" #: output/changeuid.ml:58 msgid "subprocess exited with non-zero error code %d" msgstr "" #: output/changeuid.ml:60 msgid "subprocess signalled or stopped by signal %d" msgstr "" #: lib/utils.ml:33 msgid "success" msgstr "" #: output/create_libvirt_xml.ml:297 msgid "" "target hypervisor does not support floppy devices, but floppy devices were " "found in the source guest" msgstr "" #: output/output_ovirt_upload.ml:156 msgid "" "the Python module ‘ovirtsdk4’ could not be loaded, is it installed? See " "previous messages for problems." msgstr "" #: output/output_ovirt_upload.ml:453 msgid "the cluster ‘%s’ does not support the architecture %s but %s" msgstr "" #: common/mlcustomize/customize_run.ml:59 msgid "" "the command may have failed because the network is disabled. Try either " "removing ‘--no-network’ or adding ‘--network’ on the command line." msgstr "" #: common/mltools/JSON_parser.ml:84 msgid "the key ‘%s’ was not found in a list of objects" msgstr "" #: output/output_ovirt_upload.ml:288 msgid "" "the number of ‘-oo ovirt-disk-uuid’ parameters passed on the command line " "has to match the number of guest disk images (for this guest: %d)" msgstr "" #: output/output_vdsm.ml:133 msgid "" "the number of ‘-oo vdsm-image-uuid’ and ‘-oo vdsm-vol-uuid’ parameters " "passed on the command line has to match the number of guest disk images (for " "this guest: %d)" msgstr "" #: output/output_libvirt.ml:239 msgid "the target hypervisor does not support a %s KVM guest" msgstr "" #: common/mltools/JSON_parser.ml:78 msgid "the value for key ‘%s’ is not a string as expected" msgstr "" #: common/mltools/JSON_parser.ml:50 msgid "the value for the key ‘%s’ is not a bool" msgstr "" #: common/mltools/JSON_parser.ml:45 msgid "the value for the key ‘%s’ is not a string" msgstr "" #: common/mltools/JSON_parser.ml:70 msgid "the value for the key ‘%s’ is not an integer" msgstr "" #: common/mltools/JSON_parser.ml:55 msgid "the value for the key ‘%s’ is not an object" msgstr "" #: common/mltools/JSON_parser.ml:59 msgid "the value is not an object" msgstr "" #: common/mltools/JSON_parser.ml:35 msgid "the value of the key ‘%s’ is not an object" msgstr "" #: lib/create_ovf.ml:519 msgid "" "the virtual size of the input disk %d is not an exact multiple of 512 " "bytes. The virtual size is: %Ld.\n" "\n" "This probably means something unexpected is going on, so please file a bug " "about this issue." msgstr "" #: output/output_openstack.ml:144 msgid "" "the ‘%s’ program is not available. It is needed to communicate with " "OpenStack." msgstr "" #: output/output_ovirt.ml:265 msgid "" "there are multiple UUIDs in the %s (%s). This is unexpected, and may be a " "bug in virt-v2v or OVirt." msgstr "" #: output/output_ovirt.ml:262 msgid "there are no UUIDs in the %s (%s). Is it really an OVirt %s?" msgstr "" #: common/mlcustomize/inject_virtio_win.ml:153 msgid "" "there are no virtio drivers available for this version of Windows (%d.%d %s " "%s %s). virt-v2v looks for drivers in %s\n" "\n" "The guest will be configured to use slower emulated devices." msgstr "" #: common/mlcustomize/inject_virtio_win.ml:175 msgid "" "there is no virtio block device driver for this version of Windows (%d.%d " "%s). virt-v2v looks for this driver in %s\n" "\n" "The guest will be configured to use a slower emulated device." msgstr "" #: common/mlcustomize/inject_virtio_win.ml:206 msgid "" "there is no virtio network driver for this version of Windows (%d.%d %s). " "virt-v2v looks for this driver in %s\n" "\n" "The guest will be configured to use a slower emulated device." msgstr "" #: input/parse_libvirt_xml.ml:545 msgid "this guest has a direct network interface which will be ignored" msgid_plural "this guest has direct network interfaces which will be ignored" msgstr[0] "" msgstr[1] "" #: input/parse_libvirt_xml.ml:527 msgid "this guest has a passthrough host device which will be ignored" msgid_plural "this guest has passthrough host devices which will be ignored" msgstr[0] "" msgstr[1] "" #: input/parse_libvirt_xml.ml:248 msgid "this guest has no non-removable disks" msgstr "" #: output/output.ml:65 msgid "this output module doesn't support copying more than %d disks" msgstr "" #: common/mlcustomize/timezone.ml:35 msgid "timezone '%s' does not exist, use a location like 'Europe/London'" msgstr "" #: common/mlcustomize/customize_run.ml:304 msgid "timezone could not be set for this type of guest" msgstr "" #: input/OVA.ml:318 msgid "unable to parse line from manifest file: %S" msgstr "" #: common/mltools/urandom.ml:37 msgid "unexpected end of file while reading /dev/urandom" msgstr "" #: input/input_libvirt.ml:196 msgid "unexpected output from the %s command" msgstr "" #: common/mltools/checksums.ml:58 msgid "unhandled checksum type ‘%s’" msgstr "" #: lib/types.ml:524 msgid "unknown --root option: %s" msgstr "" #: input/select_input.ml:51 msgid "unknown -i option: %s" msgstr "" #: output/select_output.ml:74 msgid "unknown -o option: %s" msgstr "" #: v2v/v2v.ml:164 msgid "unknown -oa option: %s" msgstr "" #: input/input_libvirt.ml:189 msgid "unknown method='%s'" msgstr "" #: input/OVF.ml:103 msgid "unknown Config:firmware value %s (expected \"bios\" or \"efi\")" msgstr "" #: lib/create_ovf.ml:446 lib/create_ovf.ml:247 msgid "unknown Windows 10 variant: %s (%s)" msgstr "" #: v2v/v2v.ml:319 in-place/in_place.ml:256 msgid "unknown block driver ‘--block-driver %s’" msgstr "" #: input/parse_domain_from_vmx.ml:415 msgid "unknown firmware value '%s', assuming BIOS" msgstr "" #: lib/create_ovf.ml:454 lib/create_ovf.ml:255 msgid "unknown guest operating system: %s %s %d.%d %s (%s)" msgstr "" #: v2v/v2v.ml:329 open/open.ml:132 inspector/inspector.ml:238 msgid "unknown input transport ‘-it %s’" msgstr "" #: input/parse_domain_from_vmx.ml:428 msgid "unknown sound device '%s' ignored" msgstr "" #: input/parse_libvirt_xml.ml:215 msgid "unknown sound model %s ignored" msgstr "" #: input/OVF.ml:156 msgid "unsupported compression in OVF: %s" msgstr "" #: input/input_vcenter_https.ml:123 msgid "" "vcenter: was not found in the XML. You need to " "upgrade to libvirt ≥ 1.2.20." msgstr "" #: input/vCenter.ml:79 msgid "vcenter: URL not found: %s" msgstr "" #: input/vCenter.ml:70 msgid "vcenter: incorrect username or password" msgstr "" #: input/vCenter.ml:72 msgid "" "vcenter: incorrect username or password. You might need to specify the " "username in the URI like this: [vpx|esx|..]://USERNAME@[etc]" msgstr "" #: input/vCenter.ml:84 msgid "vcenter: invalid response from server: %s" msgstr "" #: input/vCenter.ml:194 msgid "vcenter: no status code in output of ‘curl’ command." msgstr "" #: output/output_vdsm.ml:148 msgid "vdsm: invalid -os parameter does not contain a valid UUID: %s" msgstr "" #: output/output_openstack.ml:56 msgid "" "virt-v2v -oo server-id= [os-*=...]\n" "\n" "Specify the name or UUID of the conversion appliance using\n" "\n" " virt-v2v ... -o openstack -oo server-id=\n" "\n" "When virt-v2v runs it will attach the Cinder volumes to the\n" "conversion appliance, so this name or UUID must be the name\n" "of the virtual machine on OpenStack where virt-v2v is running.\n" "\n" "In addition, all usual OpenStack “os-*” parameters or “OS_*”\n" "environment variables can be used.\n" "\n" "Openstack “--os-*” parameters must be written as “virt-v2v -oo os-*”.\n" "\n" "For example:\n" "\n" " virt-v2v -oo os-username=\n" "\n" " equivalent to openstack: --os-username=\n" " or the environment variable: OS_USERNAME=\n" "\n" " virt-v2v -oo os-project-name=\n" "\n" " equivalent to openstack: --os-project-name=\n" " or the environment variable: OS_PROJECT_NAME=\n" "\n" "The os-* parameters and environment variables are optional.\n" msgstr "" #: input/parse_libvirt_xml.ml:189 msgid "" "virt-v2v does not support local displays, so in the " "input libvirt XML was ignored" msgstr "" #: input/select_input.ml:83 msgid "virt-v2v-in-place does not support remote libvirt URIs" msgstr "" #: input/parse_domain_from_vmx.ml:50 msgid "vmx URI path component looks incorrect" msgstr "" #: input/parse_domain_from_vmx.ml:48 msgid "vmx URI remote server name omitted" msgstr "" #: input/parse_domain_from_vmx.ml:46 msgid "vmx URI start with ‘ssh://...’" msgstr "" #: input/VMX.ml:313 msgid "vmx parser: cannot parse this line, ignoring: %s" msgstr "" #: input/VMX.ml:346 msgid "vmx parser: duplicate key '%s' ignored" msgstr "" #: output/output_openstack.ml:299 msgid "wait for cinder volume status to change to \"available\"" msgstr "" #: output/output_openstack.ml:360 msgid "waiting for cinder volume %s to attach to the conversion appliance" msgstr "" #: open/open.ml:136 msgid "you must supply the --run parameter" msgstr "" #: input/input_xen_ssh.ml:87 input/input_vddk.ml:189 msgid "‘-ic %s’ URL does not contain a host name field" msgstr "" #: input/input_vddk.ml:273 msgid "‘-io vddk-file=’ must be used exactly %d times" msgstr "" #: input/input_vddk.ml:297 msgid "" "‘-io vddk-libdir=%s’ does not point to a directory. See the virt-v2v-input-" "vmware(1) manual." msgstr "" #: output/output.ml:85 msgid "" "‘-oo compressed’ is only allowed when the output format is a local qcow2-" "format file, i.e. ‘-of qcow2’" msgstr "" #: input/input_vddk.ml:232 msgid "" "‘openssl’ command not found: automatically detecting thumbprint is not " "possible, so you must use ‘-io vddk-thumbprint=XX:XX...’" msgstr "" #: common/mltools/getopt-c.c:68 #, c-format msgid "Try ‘%s --help’ or consult %s(1) for more information.\n" msgstr "" #: common/mltools/getopt-c.c:187 #, c-format msgid "%s: ‘%s’ is not a numeric value.\n" msgstr "" #: common/mltools/getopt-c.c:193 #, c-format msgid "%s: %s: integer out of range\n" msgstr "" #: common/mltools/getopt-c.c:383 #, c-format msgid "%s: ‘%s’ is not allowed for -%c; allowed values are:\n" msgstr "" #: common/mltools/getopt-c.c:386 #, c-format msgid "%s: ‘%s’ is not allowed for %s%s; allowed values are:\n" msgstr "" #: common/mltools/getopt-c.c:421 #, c-format msgid "Extra parameter on the command line: ‘%s’.\n" msgstr "" #: common/options/config.c:72 #, c-format msgid "%s: line %d: error parsing configuration file: %s" msgstr "" #: common/options/decrypt.c:52 #, c-format msgid "string size overflow" msgstr "" #: common/options/decrypt.c:170 #, c-format msgid "" "'clevis_luks_unlock', needed for decrypting %s, is unavailable in this " "libguestfs version" msgstr "" #: common/options/decrypt.c:184 #, c-format msgid "" "could not find key to open LUKS encrypted %s.\n" "\n" "Try using --key on the command line.\n" "\n" "Original error: %s (%d)" msgstr "" #: common/options/inspect.c:78 #, c-format msgid "" "%s: no operating system was found on this disk\n" "\n" "If using guestfish ‘-i’ option, remove this option and instead\n" "use the commands ‘run’ followed by ‘list-filesystems’.\n" "You can then mount filesystems you want by hand using the\n" "‘mount’ or ‘mount-ro’ command.\n" "\n" "If using guestmount ‘-i’, remove this option and choose the\n" "filesystem(s) you want to see by manually adding ‘-m’ option(s).\n" "Use ‘virt-filesystems’ to see what filesystems are available.\n" "\n" "If using other virt tools, this disk image won’t work\n" "with these tools. Use the guestfish equivalent commands\n" "(see the virt tool manual page).\n" msgstr "" #: common/options/inspect.c:99 #, c-format msgid "" "%s: multi-boot operating systems are not supported\n" "\n" "If using guestfish ‘-i’ option, remove this option and instead\n" "use the commands ‘run’ followed by ‘list-filesystems’.\n" "You can then mount filesystems you want by hand using the\n" "‘mount’ or ‘mount-ro’ command.\n" "\n" "If using guestmount ‘-i’, remove this option and choose the\n" "filesystem(s) you want to see by manually adding ‘-m’ option(s).\n" "Use ‘virt-filesystems’ to see what filesystems are available.\n" "\n" "If using other virt tools, multi-boot operating systems won’t work\n" "with these tools. Use the guestfish equivalent commands\n" "(see the virt tool manual page).\n" msgstr "" #: common/options/inspect.c:161 #, c-format msgid "%s: some filesystems could not be mounted (ignored)\n" msgstr "" #: common/options/inspect.c:178 #, c-format msgid "Operating system: %s\n" msgstr "" #: common/options/inspect.c:196 #, c-format msgid "%s mounted on %s\n" msgstr "" #: common/options/keys.c:63 #, c-format msgid "Enter key or passphrase (\"%s\"): " msgstr "" #: common/options/keys.c:146 #, c-format msgid "size_t overflow" msgstr "" #: common/options/keys.c:193 #, c-format msgid "could not read key from user" msgstr "" #: common/options/options.c:283 #, c-format msgid "%s: ‘%s’ could not be mounted.\n" msgstr "" #: common/options/options.c:287 #, c-format msgid "" "%s: Check mount(8) man page to ensure options ‘%s’\n" "%s: are supported by the filesystem that is being mounted.\n" msgstr "" #: common/options/options.c:291 #, c-format msgid "%s: Did you mean to mount one of these filesystems?\n" msgstr "" #: common/options/options.c:304 #, c-format msgid "cannot determine the subvolume for %s: %s (%d)" msgstr "" #: common/options/uri.c:119 #, c-format msgid "%s: --add: could not parse URI ‘%s’\n" msgstr "" #: common/options/uri.c:130 #, c-format msgid "%s: %s: scheme of URI is NULL or empty\n" msgstr "" #: common/options/uri.c:138 #, c-format msgid "%s: %s: cannot have both a server name and a socket query parameter\n" msgstr "" #: common/utils/utils.c:107 #, c-format msgid "%s exited successfully" msgstr "" #: common/utils/utils.c:110 #, c-format msgid "%s exited with error status %d" msgstr "" #: common/utils/utils.c:114 #, c-format msgid "%s killed by signal %d (%s)" msgstr "" #: common/utils/utils.c:118 #, c-format msgid "%s stopped by signal %d (%s)" msgstr "" #: common/utils/utils.c:122 #, c-format msgid "%s exited for an unknown reason (status %d)" msgstr "" ================================================ FILE: po/te.po ================================================ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR Red Hat Inc. # This file is distributed under the same license as the virt-v2v package. # FIRST AUTHOR , YEAR. # msgid "" msgstr "" "Project-Id-Version: virt-v2v 2.7.7\n" "Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?" "component=libguestfs&product=Virtualization+Tools\n" "POT-Creation-Date: 2025-02-16 17:05+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" "Language: te\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" #: input/input_ova.ml:135 common/mltools/tools_utils.ml:235 msgid "%s" msgstr "" #: common/mltools/getopt.ml:73 msgid "" "%s\n" "Options:\n" msgstr "" #: common/mltools/tools_utils.ml:695 common/mlcustomize/customize_run.ml:390 msgid "%s (ignored)" msgstr "" #: common/mltools/checksums.ml:71 msgid "%s did not return any output" msgstr "" #: common/mlcustomize/customize_run.ml:183 msgid "%s does not exist in the guest" msgstr "" #: output/output_ovirt.ml:275 msgid "" "%s does not exist or is not a directory.\n" "\n" "Most likely cause: Either the %s (%s) has not been attached to any Data " "Center, or the path %s is not an %s at all.\n" "\n" "You have to attach the %s to a Data Center using the oVirt user interface " "first.\n" "\n" "If you don’t know what the %s mount point should be then you can also find " "this out through the oVirt user interface." msgstr "" #: common/mlcustomize/customize_run.ml:113 msgid "%s ignored for non-Windows guest" msgstr "" #: common/mlcustomize/customize_run.ml:186 msgid "%s is not a regular file in the guest" msgstr "" #. open/open.ml:39 #. inspector/inspector.ml:153 #. inspector/inspector.ml:40 #. in-place/in_place.ml:164 #. in-place/in_place.ml:45 #: v2v/v2v.ml:194 v2v/v2v.ml:183 v2v/v2v.ml:159 v2v/v2v.ml:44 open/open.ml:68 msgid "%s option used more than once on the command line" msgstr "" #: common/mltools/tools_utils.ml:231 common/mltools/tools_utils.ml:202 msgid "%s: %s" msgstr "" #: common/mltools/tools_utils.ml:233 msgid "%s: %s: %s" msgstr "" #: common/mltools/on_exit.ml:77 msgid "" "%s: Exiting on signal %s\n" "%!" msgstr "" #: common/mlcustomize/inject_virtio_win.ml:411 msgid "%s: cannot open virtio-win ISO file: %s" msgstr "" #: common/mlcustomize/customize_run.ml:64 msgid "%s: command exited with an error" msgstr "" #: v2v/v2v.ml:277 msgid "" "%s: convert a guest to use KVM\n" "\n" "virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi -os imported " "esx_guest\n" "\n" "virt-v2v -i libvirtxml guest-domain.xml -o local -os /var/tmp\n" "\n" "virt-v2v -i disk disk.img -o local -os /var/tmp\n" "\n" "There is a companion front-end called \"virt-p2v\" which comes as an\n" "ISO or CD image that can be booted on physical machines.\n" "\n" "A short summary of the options is given below. For detailed help please\n" "read the man page virt-v2v(1).\n" msgstr "" #: in-place/in_place.ml:217 msgid "" "%s: convert a guest to use KVM in-place\n" "\n" "Note this program modifies the guest in-place with no backup.\n" "Normally you should use virt-v2v.\n" "\n" "virt-v2v-in-place -i libvirtxml guest-domain.xml\n" "\n" "virt-v2v-in-place -i disk disk.img\n" "\n" "A short summary of the options is given below. For detailed help please\n" "read the man page virt-v2v-in-place(1).\n" msgstr "" #: input/input_vddk.ml:207 msgid "%s: enter password for ‘%s’: " msgstr "" #: common/mltools/tools_utils.ml:172 msgid "%s: error: %s" msgstr "" #: inspector/inspector.ml:198 msgid "" "%s: estimate disk space needed before virt-v2v conversion\n" "\n" "virt-v2v-inspector -i disk disk.img [-O output.xml]\n" "\n" "A short summary of the options is given below. For detailed help please\n" "read the man page virt-v2v-inspector(1).\n" msgstr "" #: open/open.ml:94 msgid "" "%s: open the virt-v2v input and run a program on it\n" "\n" "virt-v2v-open -i disk disk.img --run 'virt-inspector --format=raw @@'\n" "\n" "A short summary of the options is given below. For detailed help please\n" "read the man page virt-v2v-open(1).\n" msgstr "" #: common/mltools/tools_utils.ml:726 msgid "%s: operation timed out" msgstr "" #: input/OVA.ml:127 input/OVA.ml:121 msgid "" "%s: unsupported file format\n" "\n" "Formats which we currently understand for '-i ova' are: tar (uncompressed, " "compress with gzip or xz), zip" msgstr "" #: common/mltools/tools_utils.ml:191 msgid "%s: warning: %s" msgstr "" #. common/mlcustomize/customize_cmdline.ml:258 #: common/mlcustomize/customize_cmdline.ml:367 msgid "'CMD+ARGS'" msgstr "" #: common/mlcustomize/customize_run.ml:133 msgid "" "--append-line: line must not contain newline characters. Use the --append-" "line option multiple times to add several lines." msgstr "" #: common/mlcustomize/customize_run.ml:152 msgid "--chown: could not parse numeric UID:GID from %s:%s" msgstr "" #: common/mlcustomize/customize_run.ml:216 msgid "" "--inject-blnsvr: blnsvr.exe not found in virtio-win source that you specified" msgstr "" #: common/mlcustomize/customize_run.ml:225 msgid "" "--inject-qemu-ga: QEMU Guest Agent MSI not found in virtio-win source that " "you specified" msgstr "" #: common/mlcustomize/customize_run.ml:241 msgid "" "--inject-virtio-win: virtio drivers were not found for this Windows version " "in the virtio-win source that you specified" msgstr "" #: v2v/v2v.ml:146 inspector/inspector.ml:136 in-place/in_place.ml:143 msgid "--mac ip prefix length field is out of range" msgstr "" #: v2v/v2v.ml:340 msgid "--parallel parameter must be >= 1" msgstr "" #: input/input_disk.ml:42 msgid "-i disk: expecting a disk image (filename) on the command line" msgstr "" #: input/input_xen_ssh.ml:65 msgid "-i libvirt: expecting -ic parameter for Xen over SSH connection" msgstr "" #: input/input_vddk.ml:142 input/input_vcenter_https.ml:88 msgid "-i libvirt: expecting -ic parameter for vcenter connection" msgstr "" #: input/input_vcenter_https.ml:101 msgid "-i libvirt: expecting -ic parameter to contain vcenter server name" msgstr "" #: input/input_vcenter_https.ml:78 msgid "-i libvirt: expecting -ip passwordfile parameter for vCenter connection" msgstr "" #. input/input_vcenter_https.ml:70 #. input/input_libvirt.ml:41 #: input/input_xen_ssh.ml:57 input/input_vddk.ml:132 msgid "-i libvirt: expecting a libvirt guest name on the command line" msgstr "" #: input/input_libvirt.ml:59 msgid "-i libvirtxml: expecting a libvirt XML filename on the command line" msgstr "" #: input/input_ova.ml:243 msgid "-i ova: OVF references file ‘%s’ which was not found in the OVA archive" msgstr "" #: input/input_ova.ml:78 msgid "" "-i ova: corrupt OVA: checksum of disk %s does not match manifest (actual = " "%s, expected = %s)" msgstr "" #: input/input_ova.ml:52 msgid "-i ova: expecting an OVA file name on the command line" msgstr "" #: input/OVA.ml:361 msgid "" "-i ova: invalid OVA file: path ‘%s’ references a file outside the archive" msgstr "" #: input/input_vmx.ml:57 msgid "-i vmx: cannot use -it vddk in this input mode" msgstr "" #: input/input_vmx.ml:60 msgid "-i vmx: expecting a VMX file or ssh:// URI" msgstr "" #: input/vCenter.ml:159 msgid "" "-ip PASSWORD_FILE parameter ignored because 'user@' was not given in the URL" msgstr "" #: input/input_vddk.ml:119 msgid "-it vddk: ‘-io %s’ is not a valid input option" msgstr "" #: output/output.ml:54 msgid "-o %s: %s option cannot be used in this output mode" msgstr "" #: output/output_disk.ml:66 msgid "-o disk: output directory was not specified, use '-os /dir'" msgstr "" #: output/output_libvirt.ml:59 output/output_disk.ml:56 msgid "-o disk: unknown output option ‘-oo %s’" msgstr "" #: output/output_kubevirt.ml:81 msgid "-o kubevirt: output directory was not specified, use '-os /dir'" msgstr "" #: output/output_kubevirt.ml:91 msgid "" "-o kubevirt: the guest name must contain only lowercase alphanumeric " "characters, '-' or '.', and must start and end with an alphanumeric " "character. Rerun virt-v2v with the '-on name' option to rename it." msgstr "" #: output/output_kubevirt.ml:71 msgid "-o kubevirt: unknown output option ‘-oo %s’" msgstr "" #: output/output_libvirt.ml:120 msgid "" "-o libvirt: output pool ‘%s’ does not have /pool/target/path element. See " "virt-v2v-output-local(1)" msgstr "" #: output/output_libvirt.ml:124 msgid "" "-o libvirt: output pool ‘%s’ has type='dir' but the /pool/target/path " "element is not a local directory. See virt-v2v-output-local(1)" msgstr "" #: output/output_libvirt.ml:116 msgid "" "-o libvirt: output pool ‘%s’ is not a directory (type='dir'). See virt-v2v-" "output-local(1)" msgstr "" #: output/output_openstack.ml:88 msgid "-o openstack mode only supports -oa sparse -of raw" msgstr "" #: output/output_openstack.ml:115 msgid "-o openstack: unknown output option ‘-oo %s’" msgstr "" #: output/output_ovirt_upload.ml:97 msgid "-o ovirt-upload: -oo ovirt-cafile set more than once" msgstr "" #: output/output_ovirt_upload.ml:101 msgid "-o ovirt-upload: -oo ovirt-cluster set more than once" msgstr "" #: output/output_ovirt_upload.ml:112 msgid "-o ovirt-upload: invalid UUID for -oo ovirt-disk-uuid" msgstr "" #: output/output_ovirt_upload.ml:76 msgid "" "-o ovirt-upload: output password file was not specified, use ‘-op’ to point " "to a file which contains the password used to connect to the oVirt server" msgstr "" #: output/output_ovirt_upload.ml:83 msgid "-o ovirt-upload: output storage was not specified, use ‘-os’" msgstr "" #: output/output_ovirt_upload.ml:116 msgid "-o ovirt-upload: unknown output option ‘-oo %s’" msgstr "" #: output/output_ovirt_upload.ml:68 msgid "" "-o ovirt-upload: use ‘-oc’ to point to the oVirt server REST API URL, which " "is usually https://servername/ovirt-engine/api" msgstr "" #: output/output_ovirt.ml:51 msgid "-o ovirt: -os option was not specified" msgstr "" #: output/output_qemu.ml:72 msgid "-o qemu: output directory was not specified, use '-os /dir'" msgstr "" #: output/output_qemu.ml:63 msgid "-o qemu: unknown output option ‘-oo %s’" msgstr "" #: output/output_vdsm.ml:102 msgid "-o vdsm: -oo vdsm-image-uuid was not specified" msgstr "" #: output/output_vdsm.ml:81 msgid "-o vdsm: -oo vdsm-ovf-output set more than once" msgstr "" #: output/output_vdsm.ml:77 msgid "-o vdsm: -oo vdsm-vm-uuid set more than once" msgstr "" #: output/output_vdsm.ml:110 msgid "-o vdsm: -os option was not specified" msgstr "" #: output/output_vdsm.ml:97 msgid "-o vdsm: either -oo vdsm-vol-uuid or -oo vdsm-vm-uuid was not specified" msgstr "" #: output/output_vdsm.ml:90 msgid "-o vdsm: unknown output option ‘-oo %s’" msgstr "" #: output/output_vdsm.ml:74 msgid "-o vdsm: unknown vdsm-compat level ‘%s’" msgstr "" #. output/output_kubevirt.ml:84 #. output/output_disk.ml:68 #: output/output_vdsm.ml:112 output/output_qemu.ml:74 msgid "-os %s: output directory does not exist or is not a directory" msgstr "" #: input/parse_libvirt_xml.ml:279 msgid " missing 'method' attribute, ignoring" msgstr "" #: input/parse_libvirt_xml.ml:291 msgid " unknown fail='%s' attribute, ignoring" msgstr "" #: input/parse_libvirt_xml.ml:370 input/parse_libvirt_xml.ml:317 msgid " was ignored" msgstr "" #: input/parse_libvirt_xml.ml:338 msgid " with was ignored" msgstr "" #: input/parse_libvirt_xml.ml:365 msgid " with was ignored" msgstr "" #: input/parse_libvirt_xml.ml:299 msgid " element with no type attribute ignored" msgstr "" #: input/parse_libvirt_xml.ml:167 msgid " in the input libvirt XML was ignored" msgstr "" #: input/parse_libvirt_xml.ml:414 msgid "" " was ignored because the device name could not be recognized" msgstr "" #: input/input_vddk.ml:176 msgid "" " was not found in the output of ‘virsh dumpxml \"%s\"’. The " "most likely reason is that libvirt is too old, try upgrading libvirt to ≥ " "3.7." msgstr "" #: common/mlcustomize/customize_cmdline.ml:305 msgid "Add package(s) to install" msgstr "" #: common/mlcustomize/customize_cmdline.ml:270 msgid "Add package(s) to install at first boot" msgstr "" #: common/mlcustomize/customize_cmdline.ml:175 msgid "Append line(s) to the file" msgstr "" #: common/mlcustomize/customize_run.ml:137 msgid "Appending line to %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:197 msgid "Change the owner user and group ID of a file or directory" msgstr "" #: common/mlcustomize/customize_cmdline.ml:186 msgid "Change the permissions of a file" msgstr "" #: common/mlcustomize/customize_run.ml:155 msgid "Changing owner of %s to %d:%d" msgstr "" #: common/mlcustomize/customize_run.ml:141 msgid "Changing permissions of %s to %s" msgstr "" #: input/input_libvirt.ml:174 input/input_libvirt.ml:157 msgid "Checking %s checksum of disk %d/%d" msgstr "" #: common/mlcustomize/customize_cmdline.ml:488 msgid "Compatibility option doing nothing" msgstr "" #: common/mlcustomize/customize_cmdline.ml:219 msgid "Copy files in disk image" msgstr "" #: common/mlcustomize/customize_cmdline.ml:397 msgid "Copy local files or directories from a tarball into image" msgstr "" #: common/mlcustomize/customize_cmdline.ml:230 msgid "Copy local files or directories into image" msgstr "" #: common/mlcustomize/customize_run.ml:168 msgid "Copying (in image): %s to %s" msgstr "" #: v2v/v2v.ml:518 msgid "Copying disk %d/%d" msgstr "" #: common/mlcustomize/customize_run.ml:172 msgid "Copying: %s to %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:322 msgid "Create a directory" msgstr "" #: common/mlcustomize/customize_cmdline.ml:316 msgid "Create symbolic links" msgstr "" #: v2v/v2v.ml:567 msgid "Creating output metadata" msgstr "" #: common/mlcustomize/customize_cmdline.ml:321 msgid "DIR" msgstr "" #: common/mlcustomize/customize_cmdline.ml:236 msgid "Delete a file or directory" msgstr "" #: common/mlcustomize/customize_run.ml:176 msgid "Deleting: %s" msgstr "" #: common/mltools/getopt.ml:225 msgid "Display brief help" msgstr "" #: common/mltools/tools_utils.ml:385 msgid "Display version and exit" msgstr "" #: common/mlcustomize/customize_cmdline.ml:482 msgid "Do not relabel files with correct SELinux labels" msgstr "" #: v2v/v2v.ml:248 inspector/inspector.ml:177 in-place/in_place.ml:190 msgid "Don't trim filesystems before conversion" msgstr "" #: common/mltools/tools_utils.ml:389 msgid "Don’t print progress messages" msgstr "" #: common/mltools/tools_utils.ml:420 msgid "Don’t turn off echo for passphrases" msgstr "" #: common/mlcustomize/customize_cmdline.ml:247 msgid "Edit file using Perl expression" msgstr "" #: common/mlcustomize/customize_run.ml:180 msgid "Editing: %s" msgstr "" #: common/mltools/tools_utils.ml:386 msgid "Enable libguestfs debugging messages" msgstr "" #: common/mltools/tools_utils.ml:387 msgid "Enable tracing of libguestfs calls" msgstr "" #: output/output_ovirt.ml:77 msgid "Export Storage Domain" msgstr "" #: open/open.ml:88 msgid "External command to run" msgstr "" #. common/mlcustomize/customize_cmdline.ml:408 #. common/mlcustomize/customize_cmdline.ml:373 #: common/mlcustomize/customize_cmdline.ml:414 msgid "FILE" msgstr "" #: common/mlcustomize/customize_cmdline.ml:455 msgid "FILE:CONTENT" msgstr "" #: common/mlcustomize/customize_cmdline.ml:444 msgid "FILE:DEST" msgstr "" #: common/mlcustomize/customize_cmdline.ml:242 msgid "FILE:EXPR" msgstr "" #: common/mlcustomize/customize_cmdline.ml:170 msgid "FILE:LINE" msgstr "" #: common/mlcustomize/customize_cmdline.ml:203 msgid "FILENAME" msgstr "" #. in-place/in_place.ml:378 #: v2v/v2v.ml:571 open/open.ml:220 inspector/inspector.ml:334 msgid "Finishing off" msgstr "" #: common/mlcustomize/customize_cmdline.ml:275 msgid "HOSTNAME" msgstr "" #: v2v/v2v.ml:254 inspector/inspector.ml:183 in-place/in_place.ml:194 msgid "How to choose root filesystem" msgstr "" #: common/mltools/tools_utils.ml:177 msgid "" "If reporting bugs, run %s with debugging enabled and include the complete " "output:\n" "\n" " %s -v -x [...]" msgstr "" #: common/mlcustomize/customize_cmdline.ml:386 msgid "Inject a public key into the guest" msgstr "" #: common/mlcustomize/customize_cmdline.ml:282 msgid "Inject the Balloon Server into a Windows guest" msgstr "" #: common/mlcustomize/customize_cmdline.ml:288 msgid "Inject the QEMU Guest Agent into a Windows guest" msgstr "" #: common/mlcustomize/customize_cmdline.ml:294 msgid "Inject virtio-win drivers into a Windows guest" msgstr "" #. in-place/in_place.ml:176 #: v2v/v2v.ml:216 open/open.ml:80 inspector/inspector.ml:165 msgid "Input format" msgstr "" #: input/input_vddk.ml:77 msgid "" "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" "\n" "Refer to nbdkit-vddk-plugin(1) and the VDDK documentation for further\n" "information on these settings.\n" msgstr "" #: v2v/v2v.ml:222 open/open.ml:86 inspector/inspector.ml:171 msgid "Input transport" msgstr "" #: common/mlcustomize/customize_run.ml:191 msgid "Installing firstboot command: %s" msgstr "" #: common/mlcustomize/customize_run.ml:195 msgid "Installing firstboot packages: %s" msgstr "" #: common/mlcustomize/customize_run.ml:202 msgid "Installing firstboot script: %s" msgstr "" #: common/mlcustomize/customize_run.ml:248 msgid "Installing packages: %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:225 msgid "LOCALPATH:REMOTEDIR" msgstr "" #. in-place/in_place.ml:174 #: v2v/v2v.ml:214 open/open.ml:78 inspector/inspector.ml:163 msgid "Libvirt URI" msgstr "" #: common/mlcustomize/customize_run.ml:255 msgid "Linking: %s -> %s" msgstr "" #. common/mlcustomize/customize_cmdline.ml:287 #. common/mlcustomize/customize_cmdline.ml:281 #: common/mlcustomize/customize_cmdline.ml:293 msgid "METHOD" msgstr "" #: common/mltools/tools_utils.ml:426 msgid "Make output machine readable" msgstr "" #: common/mlcustomize/customize_run.ml:260 msgid "Making directory: %s" msgstr "" #: v2v/v2v.ml:226 inspector/inspector.ml:173 in-place/in_place.ml:182 msgid "Map NIC to network or bridge or assign static IP" msgstr "" #: v2v/v2v.ml:210 inspector/inspector.ml:159 in-place/in_place.ml:170 msgid "Map bridge ‘in’ to ‘out’" msgstr "" #: v2v/v2v.ml:230 inspector/inspector.ml:179 in-place/in_place.ml:186 msgid "Map network ‘in’ to ‘out’" msgstr "" #: common/mlcustomize/customize_cmdline.ml:333 msgid "Move files in disk image" msgstr "" #: common/mlcustomize/customize_run.ml:264 msgid "Moving: %s -> %s" msgstr "" #. input/input_vcenter_https.ml:45 #. input/input_ova.ml:35 #. input/input_libvirt.ml:233 #. input/input_libvirt.ml:221 #. input/input_disk.ml:35 #: input/input_xen_ssh.ml:43 input/input_vmx.ml:36 msgid "No input options can be used in this mode.\n" msgstr "" #: output/output_ovirt.ml:40 output/output_null.ml:38 #: output/output_glance.ml:40 msgid "No output options can be used in this mode.\n" msgstr "" #: output/output_vdsm.ml:166 msgid "OVF (metadata) directory (%s) does not exist or is not a directory" msgstr "" #: common/mlcustomize/firstboot.ml:268 msgid "" "One of rhsrvany.exe or pvvxsvc.exe is missing in %s. One of them is " "required in order to install Windows firstboot scripts. You can get one by " "building rhsrvany (https://github.com/rwmjones/rhsrvany)" msgstr "" #: v2v/v2v.ml:236 msgid "Output hypervisor connection" msgstr "" #: output/output_ovirt_upload.ml:51 msgid "" "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" "\n" "You can override the UUIDs of the disks, instead of using autogenerated " "UUIDs\n" "after their uploads (if you do, you must supply one for each disk):\n" "\n" " -oo ovirt-disk-uuid=UUID Disk UUID\n" msgstr "" #: output/output_qemu.ml:44 msgid "" "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" msgstr "" #: output/output_vdsm.ml:43 msgid "" "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" "\n" "For 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" msgstr "" #: output/output_disk.ml:44 msgid "" "Output options that can be used with -o disk:\n" "\n" " -oo compressed Compress the output file (used only with -of qcow2)\n" msgstr "" #: output/output_kubevirt.ml:51 msgid "" "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" msgstr "" #: output/output_libvirt.ml:47 msgid "" "Output options that can be used with -o libvirt:\n" "\n" " -oo compressed Compress the output file (used only with -of qcow2)\n" msgstr "" #. common/mlcustomize/customize_cmdline.ml:235 #: common/mlcustomize/customize_cmdline.ml:420 msgid "PATH" msgstr "" #: common/mlcustomize/customize_cmdline.ml:181 msgid "PERMISSIONS:FILE" msgstr "" #. common/mlcustomize/customize_cmdline.ml:300 #. common/mlcustomize/customize_cmdline.ml:265 #: common/mlcustomize/customize_cmdline.ml:427 msgid "PKG,PKG.." msgstr "" #: v2v/v2v.ml:263 in-place/in_place.ml:203 msgid "Prefer 'virtio-blk' or 'virtio-scsi'" msgstr "" #: v2v/v2v.ml:252 in-place/in_place.ml:192 msgid "Print source and stop" msgstr "" #: common/mlcustomize/customize_cmdline.ml:208 msgid "Read customize commands from file" msgstr "" #: common/mltools/tools_utils.ml:421 msgid "Read passphrases from stdin" msgstr "" #: common/mlcustomize/customize_cmdline.ml:421 msgid "Recursively truncate all files in directory" msgstr "" #: common/mlcustomize/customize_run.ml:298 msgid "Recursively truncating: %s" msgstr "" #: v2v/v2v.ml:240 msgid "Rename guest when converting" msgstr "" #: common/mlcustomize/customize_cmdline.ml:259 msgid "Run command at first guest boot" msgstr "" #: common/mlcustomize/customize_cmdline.ml:368 msgid "Run command in disk image" msgstr "" #: common/mlcustomize/customize_cmdline.ml:253 msgid "Run script at first guest boot" msgstr "" #: common/mlcustomize/customize_cmdline.ml:362 msgid "Run script in disk image" msgstr "" #: common/mlcustomize/customize_cmdline.ml:409 msgid "Run touch on a file" msgstr "" #: v2v/v2v.ml:250 msgid "Run up to N instances of nbdcopy in parallel" msgstr "" #: open/open.ml:188 msgid "Running external command" msgstr "" #: common/mlcustomize/customize_run.ml:307 msgid "Running touch: %s" msgstr "" #. common/mlcustomize/customize_run.ml:159 #: common/mlcustomize/customize_run.ml:274 msgid "Running: %s" msgstr "" #. common/mlcustomize/customize_cmdline.ml:252 #: common/mlcustomize/customize_cmdline.ml:361 msgid "SCRIPT" msgstr "" #: common/mltools/tools_utils.ml:422 #: common/mlcustomize/customize_cmdline.ml:351 msgid "SELECTOR" msgstr "" #: common/mlcustomize/customize_run.ml:363 msgid "SELinux relabelling" msgstr "" #. common/mlcustomize/customize_cmdline.ml:214 #: common/mlcustomize/customize_cmdline.ml:328 msgid "SOURCE:DEST" msgstr "" #: common/mlcustomize/customize_run.ml:287 msgid "SSH key could not be injected for this type of guest" msgstr "" #: common/mlcustomize/customize_run.ml:284 msgid "SSH key inject: %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:374 msgid "Scrub a file" msgstr "" #: common/mlcustomize/customize_cmdline.ml:466 msgid "Scrub build log file" msgstr "" #: common/mlcustomize/customize_run.ml:374 msgid "Scrubbing the log file" msgstr "" #: common/mlcustomize/customize_run.ml:279 msgid "Scrubbing: %s" msgstr "" #: v2v/v2v.ml:208 msgid "Set bandwidth dynamically from file" msgstr "" #: v2v/v2v.ml:206 msgid "Set bandwidth to bits per sec" msgstr "" #. in-place/in_place.ml:172 #: v2v/v2v.ml:212 open/open.ml:76 inspector/inspector.ml:161 msgid "Set input mode (default: libvirt)" msgstr "" #: v2v/v2v.ml:228 inspector/inspector.ml:175 in-place/in_place.ml:184 msgid "Set memory size" msgstr "" #: v2v/v2v.ml:256 inspector/inspector.ml:185 in-place/in_place.ml:196 msgid "Set number of vCPUs" msgstr "" #. in-place/in_place.ml:178 #: v2v/v2v.ml:218 open/open.ml:82 inspector/inspector.ml:167 msgid "Set option for input mode" msgstr "" #: v2v/v2v.ml:242 msgid "Set option for output mode" msgstr "" #: v2v/v2v.ml:234 msgid "Set output allocation mode" msgstr "" #: v2v/v2v.ml:238 msgid "Set output format" msgstr "" #: v2v/v2v.ml:232 msgid "Set output mode (default: libvirt)" msgstr "" #: v2v/v2v.ml:246 msgid "Set output storage location" msgstr "" #: common/mlcustomize/customize_cmdline.ml:476 msgid "Set password crypto" msgstr "" #: common/mltools/tools_utils.ml:430 msgid "Set program name" msgstr "" #: common/mlcustomize/customize_cmdline.ml:356 msgid "Set root password" msgstr "" #: common/mlcustomize/customize_cmdline.ml:403 msgid "Set the default timezone" msgstr "" #: common/mlcustomize/customize_cmdline.ml:276 msgid "Set the hostname" msgstr "" #: inspector/inspector.ml:181 in-place/in_place.ml:188 msgid "Set the output filename" msgstr "" #: common/mlcustomize/customize_cmdline.ml:345 msgid "Set user password" msgstr "" #: common/mlcustomize/customize_run.ml:75 msgid "Setting a random seed" msgstr "" #: common/mlcustomize/customize_run.ml:354 msgid "Setting passwords" msgstr "" #: common/mlcustomize/password.ml:113 msgid "Setting random password of %s to %s" msgstr "" #: common/mlcustomize/customize_run.ml:207 msgid "Setting the hostname: %s" msgstr "" #: common/mlcustomize/customize_run.ml:90 msgid "Setting the machine ID in %s" msgstr "" #: common/mlcustomize/customize_run.ml:302 msgid "Setting the timezone: %s" msgstr "" #: v2v/v2v.ml:481 msgid "Setting up the destination: %s" msgstr "" #. in-place/in_place.ml:342 #: v2v/v2v.ml:457 open/open.ml:184 inspector/inspector.ml:310 msgid "Setting up the source: %s" msgstr "" #: v2v/v2v.ml:463 in-place/in_place.ml:348 msgid "Source guest information (--print-source option):\n" msgstr "" #: common/mltools/tools_utils.ml:422 msgid "Specify a LUKS key" msgstr "" #: common/mlcustomize/customize_cmdline.ml:392 msgid "TARFILE:REMOTEDIR" msgstr "" #: common/mlcustomize/customize_cmdline.ml:311 msgid "TARGET:LINK[:LINK..]" msgstr "" #: common/mlcustomize/customize_cmdline.ml:402 msgid "TIMEZONE" msgstr "" #: v2v/v2v.ml:200 msgid "" "The --in-place option has been replaced by the ‘virt-v2v-in-place’ program" msgstr "" #: output/output_qemu.ml:251 msgid "" "The Virt machine has no support for IDE. Please report a bug for virt-v2v -- " "refer to virt-v2v(1) section \"BUGS\"." msgstr "" #: output/output_qemu.ml:272 msgid "" "The Virt machine has no support for floppies. Please report a bug for virt-" "v2v -- refer to virt-v2v(1) section \"BUGS\"." msgstr "" #: lib/create_ovf.ml:785 msgid "" "This guest required a password for connection to its display, but this is " "not supported by oVirt. Therefore the converted guest’s display will not " "require a separate password to connect." msgstr "" #: input/input_vmx.ml:111 msgid "" "This transport does not support guests with snapshots. Either collapse the " "snapshots for this guest and try the conversion again, or use one of the " "alternate conversion methods described in virt-v2v-input-vmware(1) section " "\"NOTES\"." msgstr "" #: common/mlcustomize/customize_cmdline.ml:415 msgid "Truncate a file to zero size" msgstr "" #: common/mlcustomize/customize_run.ml:294 msgid "Truncating: %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:192 msgid "UID:GID:PATH" msgstr "" #: common/mlcustomize/customize_cmdline.ml:339 msgid "USER:SELECTOR" msgstr "" #: common/mlcustomize/customize_cmdline.ml:380 msgid "USER[:SELECTOR]" msgstr "" #: common/mlcustomize/customize_cmdline.ml:432 msgid "Uninstall package(s)" msgstr "" #: common/mlcustomize/customize_run.ml:311 msgid "Uninstalling packages: %s" msgstr "" #: common/mlcustomize/customize_run.ml:290 msgid "Unpack tar file: %s to %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:438 msgid "Update packages" msgstr "" #: common/mlcustomize/customize_run.ml:316 msgid "Updating packages" msgstr "" #: common/mlcustomize/customize_cmdline.ml:449 msgid "Upload local file to destination" msgstr "" #: common/mlcustomize/customize_run.ml:321 msgid "Uploading: %s to %s" msgstr "" #: common/mltools/tools_utils.ml:391 msgid "Use ANSI colour sequences even if not tty" msgstr "" #. in-place/in_place.ml:180 #: v2v/v2v.ml:220 open/open.ml:84 inspector/inspector.ml:169 msgid "Use password from file to connect to input hypervisor" msgstr "" #: v2v/v2v.ml:244 msgid "Use password from file to connect to output hypervisor" msgstr "" #: v2v/v2v.ml:224 msgid "Use virt-v2v-in-place instead" msgstr "" #: common/mltools/tools_utils.ml:392 msgid "Wrap log messages even if not tty" msgstr "" #: common/mlcustomize/customize_cmdline.ml:460 msgid "Write file" msgstr "" #: common/mlcustomize/customize_run.ml:346 msgid "Writing: %s" msgstr "" #: lib/YAML.ml:167 msgid "" "YAML block contains newline character. This should not happen, please " "report a bug against virt-v2v." msgstr "" #: output/output_libvirt.ml:96 msgid "" "a libvirt domain called ‘%s’ already exists on the target.\n" "\n" "If using virt-v2v directly, use the ‘-on’ option to select a different name. " "Or delete the existing domain on the target using the ‘virsh undefine’ " "command.\n" "\n" "If using virt-p2v, select a different ‘Name’ in the ‘Target properties’. Or " "delete the existing domain on the target using the ‘virsh undefine’ command." msgstr "" #: common/mlcustomize/append_line.ml:44 msgid "append_line: %s is not a file" msgstr "" #: input/input_libvirt.ml:206 msgid "" "bad checksum for disk %d/%d\n" "Expected checksum: %s\n" "Actual checksum: %s" msgstr "" #: lib/libvirt_utils.ml:59 msgid "cannot find libvirt domain ‘%s’: %s" msgstr "" #: lib/libvirt_utils.ml:96 msgid "" "cannot find libvirt pool ‘%s’: %s\n" "\n" "Use ‘virsh pool-list --all’ to list all available pools, and ‘virsh pool-" "dumpxml ’ to display details about a particular pool.\n" "\n" "To set the pool which virt-v2v uses, add the ‘-os ’ option." msgstr "" #: lib/libvirt_utils.ml:110 msgid "cannot find libvirt volume ‘%s’: %s" msgstr "" #: common/mlcustomize/firstboot.ml:235 msgid "" "cannot finish firstboot installation by running ‘%s’ because host cpu (%s) " "and guest arch (%s) are not compatible. The firstboot service may not run " "at boot." msgstr "" #: output/output_libvirt.ml:180 msgid "cannot get libvirt domain capabilities: %s" msgstr "" #: output/output_libvirt.ml:85 msgid "cannot get libvirt hypervisor capabilities: %s" msgstr "" #: v2v/v2v.ml:105 inspector/inspector.ml:95 in-place/in_place.ml:102 msgid "cannot parse --mac \"%s\" parameter" msgstr "" #: v2v/v2v.ml:129 inspector/inspector.ml:119 in-place/in_place.ml:126 msgid "cannot parse --mac ip %s: doesn’t look like “%s” is an IP address" msgstr "" #: v2v/v2v.ml:143 inspector/inspector.ml:133 in-place/in_place.ml:140 msgid "cannot parse --mac ip prefix length field as an integer: %s" msgstr "" #: common/mlcustomize/guest_packages.ml:29 msgid "" "cannot use ‘%s’ because no package manager has been detected for this guest " "OS.\n" "\n" "If this guest OS is a common one with ordinary package management then this " "may have been caused by a failure of libguestfs inspection.\n" "\n" "For OSes such as Windows that lack package management, this is not " "possible. Try using one of the ‘--firstboot*’ flags instead (described in " "the virt-customize(1) manual)." msgstr "" #: output/output_ovirt.ml:91 msgid "" "cannot write files to the NFS server as %d:%d, even though we appear to be " "running as root. This probably means the NFS client or idmapd is not " "configured properly.\n" "\n" "You will have to chown the files that virt-v2v creates after the run, " "otherwise oVirt will not be able to import the VM." msgstr "" #: output/output_ovirt.ml:99 msgid "" "cannot write files to the NFS server as %d:%d. You might want to stop virt-" "v2v (^C) and rerun it as root." msgstr "" #: common/mlcustomize/customize_cmdline.ml:508 msgid "command '%s' cannot be used in command files, see the man page" msgstr "" #: common/mlcustomize/customize_cmdline.ml:525 msgid "command '%s' not valid, see the man page" msgstr "" #: common/mldrivers/linux_bootloaders.ml:318 msgid "could not add grub2 serial console (ignored)" msgstr "" #: input/ssh.ml:52 msgid "" "could not copy the VMX file from the remote server, see earlier error " "messages" msgstr "" #: output/output_libvirt.ml:211 msgid "" "could not define libvirt domain: %s.\n" "The libvirt XML is still available in ‘%s’. Try running ‘virsh -c %s define " "%s’ yourself instead." msgstr "" #: common/mldrivers/linux_bootloaders.ml:221 msgid "could not determine a way to update the configuration of Grub2" msgstr "" #: input/input_vddk.ml:243 msgid "" "could not fetch thumbprint from the server, you mus use ‘-io vddk-" "thumbprint=XX:XX...’" msgstr "" #: common/mldrivers/linux_bootloaders.ml:376 msgid "could not find bootloader mount point (%s): %s" msgstr "" #: common/mldrivers/windows_drivers.ml:91 msgid "" "could not find registry entry " "HKEY_LOCAL_MACHINE\\SYSTEM\\DriverDatabase\\DeviceIds in this Windows " "guest. It may be either a very old or very new version of Windows that we " "cannot process." msgstr "" #: common/mlcustomize/firstboot.ml:232 msgid "" "could not finish firstboot installation by running ‘%s’ because the command " "failed: %s" msgstr "" #. input/input_vcenter_https.ml:94 #: input/select_input.ml:66 input/input_xen_ssh.ml:71 input/input_vddk.ml:151 msgid "could not parse '-ic %s'. Original error message was: %s" msgstr "" #: input/parse_libvirt_xml.ml:407 input/parse_libvirt_xml.ml:54 msgid "could not parse device name ‘%s’ from the source libvirt XML" msgstr "" #: input/OVF.ml:168 msgid "could not parse disk rasd:HostResource from OVF document" msgstr "" #: input/input_ova.ml:98 msgid "could not parse ovf:Name from OVF document" msgstr "" #: output/output_ovirt.ml:247 msgid "" "could not read the %s specified by the '-os %s' parameter on the command " "line. Is it really an OVirt %s? The original error is: %s" msgstr "" #: common/mldrivers/linux_bootloaders.ml:336 msgid "" "could not rebuild grub2 configuration file (%s). This may mean that grub " "output will not be sent to the serial port, but otherwise should be " "harmless. Original error message: %s" msgstr "" #: output/output_libvirt.ml:156 msgid "could not refresh libvirt pool ‘%s’: %s" msgstr "" #: common/mldrivers/linux_bootloaders.ml:320 msgid "could not remove grub2 serial console (ignored)" msgstr "" #: common/mltools/registry.ml:93 msgid "" "decode_utf16le: Windows UTF16-LE string contains non-7-bit characters. This " "is a bug in %s, please report it." msgstr "" #: common/mltools/registry.ml:87 msgid "" "decode_utf16le: Windows string does not appear to be in UTF16-LE encoding. " "This could be a bug in %s." msgstr "" #: common/mldrivers/linux_bootloaders.ml:126 msgid "didn't find grub entry for kernel %s" msgstr "" #: input/input_disk.ml:150 msgid "disks on the command line have mixed formats" msgstr "" #: input/parse_libvirt_xml.ml:194 msgid "display in the input libvirt XML was ignored" msgstr "" #: output/output_qemu.ml:147 msgid "don’t know how to convert UEFI guests for architecture %s" msgstr "" #: common/mldrivers/linux.ml:158 msgid "don’t know how to find file owner using %s" msgstr "" #: common/mldrivers/linux.ml:89 msgid "don’t know how to get list of files from package using %s" msgstr "" #: common/mltools/curl.ml:82 msgid "downloading %s" msgstr "" #: lib/networks.ml:84 msgid "" "duplicate --mac parameter. Duplicate mappings specified for MAC address %s." msgstr "" #: lib/networks.ml:102 msgid "" "duplicate -b/--bridge parameter. Duplicate mappings specified for bridge %s." msgstr "" #: lib/networks.ml:108 msgid "duplicate -b/--bridge parameter. Only one default mapping is allowed." msgstr "" #: lib/networks.ml:90 msgid "" "duplicate -n/--network parameter. Duplicate mappings specified for network " "%s." msgstr "" #: lib/networks.ml:96 msgid "duplicate -n/--network parameter. Only one default mapping is allowed." msgstr "" #: input/OVF.ml:143 msgid "error parsing disk fileRef" msgstr "" #: input/input_ova.ml:124 msgid "error uncompressing %s, see earlier error messages" msgstr "" #: input/OVA.ml:210 input/OVA.ml:112 msgid "error unpacking %s, see earlier error messages" msgstr "" #: common/mltools/tools_utils.ml:248 msgid "exception: %s" msgstr "" #: common/mltools/tools_utils.ml:455 msgid "exited with error %d" msgstr "" #: lib/utils.ml:34 msgid "exited with non-zero error code %d" msgstr "" #: input/input_disk.ml:147 msgid "expected >= 1 disk name on the command line" msgstr "" #: common/mltools/xpath_helpers.ml:36 msgid "" "expecting XML expression to return an integer (expression: %s, matching " "string: %s)" msgstr "" #: common/mltools/tools_utils.ml:440 msgid "external command" msgstr "" #: output/output_ovirt_upload.ml:265 msgid "failed server prechecks, see earlier errors" msgstr "" #: output/output_ovirt_upload.ml:507 msgid "failed to create virtual machine, see earlier errors" msgstr "" #: output/output_ovirt_upload.ml:479 msgid "failed to finalize the transfers, see earlier errors" msgstr "" #: common/mldrivers/linux_bootloaders.ml:208 msgid "failed to find grub2-mkconfig binary (but Grub2 was detected on guest)" msgstr "" #: input/OVA.ml:461 msgid "failed to parse line returned by tar: %S" msgstr "" #: output/output_ovirt_upload.ml:394 msgid "failed to start transfer, see earlier errors" msgstr "" #: output/output_ovirt_upload.ml:311 msgid "failed vmchecks, see earlier errors" msgstr "" #: common/mltools/tools_utils.ml:239 msgid "failure: %s" msgstr "" #: input/input_ova.ml:134 msgid "file ‘%s’ not found in the ova" msgstr "" #: common/mlcustomize/firstboot.ml:143 msgid "" "firstboot: unknown version for old firstboot.service file %s (md5=%s), it " "will not be removed" msgstr "" #: common/mltools/tools_utils.ml:258 msgid "generated by %s %s" msgstr "" #: output/create_libvirt_xml.ml:39 msgid "get_osinfo_id: unknown guest operating system: %s" msgstr "" #: output/output_glance.ml:66 msgid "" "glance: glance client is not installed or set up correctly. You may need to " "set environment variables or source a script to enable authentication. See " "preceding messages for details." msgstr "" #: output/output_glance.ml:139 msgid "glance: image upload to glance failed, see earlier errors" msgstr "" #: common/mlcustomize/firstboot.ml:386 common/mlcustomize/firstboot.ml:164 msgid "guest type %s is not supported" msgstr "" #: common/mlcustomize/firstboot.ml:413 msgid "guest type %s/%s is not supported" msgstr "" #: common/mltools/tools_utils.ml:749 msgid "" "host (%s/%s) and guest (%s/%s) are not compatible, so you cannot use command " "line options that involve running commands in the guest. Use --firstboot " "scripts instead." msgstr "" #: common/mlcustomize/customize_run.ml:209 msgid "hostname could not be set for this type of guest" msgstr "" #: common/mldrivers/linux_kernels.ml:342 msgid "ignoring kernel %s in bootloader, as it does not exist." msgstr "" #: output/output_vdsm.ml:160 msgid "image directory (%s) does not exist or is not a directory" msgstr "" #: input/parse_libvirt_xml.ml:81 msgid "in the libvirt XML metadata, is missing or empty" msgstr "" #: input/parse_libvirt_xml.ml:87 msgid "in the libvirt XML metadata, is missing or empty" msgstr "" #: input/input_vcenter_https.ml:52 input/input_libvirt.ml:107 msgid "in-place mode does not work with HTTP source" msgstr "" #: input/input_vddk.ml:146 msgid "in-place mode does not work with VDDK source" msgstr "" #: input/input_vmx.ml:43 msgid "in-place mode does not work with VMX source" msgstr "" #: input/input_xen_ssh.ml:50 msgid "in-place mode does not work with Xen over SSH source" msgstr "" #: output/output_kubevirt.ml:116 msgid "" "incorrect number of '-oo disk' parameters. This guest has %d disks, but the " "parameter was used %d times." msgstr "" #: input/input_xen_ssh.ml:119 msgid "" "input from xen over ssh does not support disks stored on remote block " "devices. See virt-v2v-input-xen(1) section \"Xen or ssh conversions from " "block devices\"." msgstr "" #. in-place/in_place.ml:397 #: v2v/v2v.ml:590 open/open.ml:238 inspector/inspector.ml:353 msgid "" "insufficient free space in the conversion server temporary directory %s " "(%s).\n" "\n" "Either free up space in that directory, or set the LIBGUESTFS_CACHEDIR " "environment variable to point to another directory with more than 1GB of " "free space.\n" "\n" "See also the virt-v2v(1) manual, section \"Minimum free space check in the " "host\"." msgstr "" #: common/mltools/tools_utils.ml:246 msgid "internal error: Not_found exception was thrown" msgstr "" #: common/mltools/tools_utils.ml:243 msgid "internal error: assertion failed at %s, line %d, char %d" msgstr "" #: common/mltools/tools_utils.ml:241 msgid "internal error: invalid argument: %s" msgstr "" #: common/mldrivers/linux.ml:128 msgid "internal error: is_file_owned: dpkg command returned no output" msgstr "" #: common/mldrivers/linux.ml:133 msgid "internal error: is_file_owned: unexpected output from dpkg command: %s" msgstr "" #: common/mldrivers/linux_bootloaders.ml:130 msgid "internal error: regular expression did not match ‘%s’" msgstr "" #: v2v/v2v.ml:548 msgid "internal error: wait returned unexpected process ID %d status \"%s\"" msgstr "" #: v2v/v2v.ml:114 inspector/inspector.ml:104 in-place/in_place.ml:111 msgid "invalid --mac ip option" msgstr "" #: v2v/v2v.ml:98 inspector/inspector.ml:88 in-place/in_place.ml:95 msgid "invalid -b/--bridge parameter" msgstr "" #: v2v/v2v.ml:90 inspector/inspector.ml:80 in-place/in_place.ml:87 msgid "invalid -n/--network parameter" msgstr "" #: input/parse_domain_from_vmx.ml:402 msgid "invalid cpuid.coresPerSocket < number of vCPUs" msgstr "" #. common/mlcustomize/customize_cmdline.ml:153 #. common/mlcustomize/customize_cmdline.ml:145 #: common/mlcustomize/customize_cmdline.ml:161 msgid "invalid format for '--%s' parameter, see the man page" msgstr "" #: common/mltools/tools_utils.ml:359 msgid "invalid format string for --machine-readable: %s" msgstr "" #: lib/utils.ml:279 msgid "invalid input filename (%s)" msgstr "" #: input/OVA.ml:445 msgid "invalid offset returned by tar: %S" msgstr "" #: common/mltools/tools_utils.ml:374 msgid "invalid output fd for --machine-readable: %s" msgstr "" #: common/mltools/tools_utils.ml:376 msgid "invalid output for --machine-readable: %s" msgstr "" #: common/mltools/tools_utils.ml:368 msgid "invalid output stream for --machine-readable: %s" msgstr "" #: common/mlcustomize/password.ml:73 msgid "invalid password selector ‘%s’; see the man page" msgstr "" #: input/OVA.ml:450 msgid "invalid size returned by tar: %S" msgstr "" #: common/mlcustomize/ssh_key.ml:45 msgid "invalid ssh-inject selector ‘%s’; see the man page" msgstr "" #: input/OVF.ml:82 msgid "invalid vmw:CoresPerSocket (%d) ignored" msgstr "" #: input/OVF.ml:88 msgid "invalid vmw:CoresPerSocket < number of cores" msgstr "" #: common/mldrivers/linux_bootloaders.ml:114 msgid "kernel %s is not under grub tree %s" msgstr "" #: common/mltools/tools_utils.ml:539 common/mltools/tools_utils.ml:458 msgid "killed by signal %d" msgstr "" #: common/mltools/tools_utils.ml:237 msgid "libguestfs error: %s" msgstr "" #: lib/libvirt_utils.ml:72 msgid "" "libvirt domain ‘%s’ is running or paused. Converting a live guest will " "result in corrupted output. However this is safe if you're converting from a " "snapshot" msgstr "" #: common/mlcustomize/customize_run.ml:47 msgid "log file %s: %s (ignored)" msgstr "" #: input/OVA.ml:147 msgid "" "making OVA directory public readable to work around libvirt bug https://" "bugzilla.redhat.com/1045069" msgstr "" #: input/input_ova.ml:86 msgid "manifest has a checksum for non-existent file %s (ignored)" msgstr "" #: common/mlcustomize/customize_cmdline.ml:472 msgid "md5|sha256|sha512" msgstr "" #: common/mlcustomize/customize_run.ml:119 msgid "method '%s' is no longer supported" msgstr "" #: common/mltools/JSON_parser.ml:39 msgid "missing value for the key ‘%s’" msgstr "" #: input/OVA.ml:276 msgid "more than one .ovf file was found in %s" msgstr "" #: common/mltools/JSON_parser.ml:34 msgid "more than value for the key ‘%s’" msgstr "" #: output/output_ovirt.ml:222 msgid "" "mount command failed, see earlier errors.\n" "\n" "This probably means you didn't specify the right %s path [-os %s], or else " "you need to rerun virt-v2v as root." msgstr "" #: common/mlcustomize/customize_run.ml:103 msgid "" "multiple --root-password/--password options set the password for user ‘%s’ " "twice" msgstr "" #: input/input_vddk.ml:319 msgid "" "nbdkit VDDK plugin is not installed or not working. It is required if you " "want to use VDDK.\n" "\n" "It 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 ’/%s/libvixDiskLib.so.?’.\n" "\n" "See also the virt-v2v-input-vmware(1) manual." msgstr "" #: input/input_vddk.ml:313 msgid "" "nbdkit VDDK plugin is not installed or not working. It is required if you " "want to use VDDK.\n" "\n" "The 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" "\n" "See also the virt-v2v-input-vmware(1) manual." msgstr "" #: lib/nbdkit.ml:223 msgid "nbdkit did not start up. See previous debugging messages for problems." msgstr "" #: lib/nbdkit.ml:225 msgid "" "nbdkit did not start up. There may be errors printed by nbdkit above.\n" "\n" "If the messages above are not sufficient to diagnose the problem then add " "the ‘virt-v2v -v -x’ options and examine the debugging output carefully." msgstr "" #: input/nbdkit_ssh.ml:36 input/nbdkit_curl.ml:32 input/input_vddk.ml:283 msgid "nbdkit is not installed or not working" msgstr "" #: input/input_disk.ml:92 msgid "" "nbdkit is not installed or not working. It is required to use ‘-i disk’." msgstr "" #: input/input_libvirt.ml:68 msgid "" "nbdkit is not installed or not working. It is required to use ‘-i libvirt|" "libvirtxml’." msgstr "" #: output/output.ml:178 output/output.ml:77 msgid "" "nbdkit is not installed or not working. It is required to use ‘-o disk’." msgstr "" #: output/output_null.ml:57 msgid "" "nbdkit is not installed or not working. It is required to use ‘-o null’." msgstr "" #: output/output_ovirt_upload.ml:163 msgid "" "nbdkit is not installed or not working. It is required to use ‘-o ovirt-" "upload’. See the virt-v2v-output-ovirt(1) manual." msgstr "" #: input/input_vddk.ml:285 msgid "nbdkit must be >= 1.45.11 for input from VDDK" msgstr "" #: output/output_ovirt_upload.ml:176 msgid "" "nbdkit python plugin is not installed or not working. It is required if you " "want to use ‘-o ovirt-upload’.\n" "\n" "See also the virt-v2v-output-ovirt(1) manual." msgstr "" #: output/output_ovirt_upload.ml:190 msgid "" "nbdkit was compiled without SELinux support. You will have to recompile " "nbdkit with libselinux-devel installed, or else set SELinux to Permissive " "mode while doing the conversion." msgstr "" #. input/input_libvirt.ml:76 #. input/input_disk.ml:98 #: input/nbdkit_ssh.ml:42 input/nbdkit_curl.ml:38 input/input_vddk.ml:289 msgid "nbdkit-cow-filter is not installed or not working" msgstr "" #: input/nbdkit_curl.ml:35 msgid "nbdkit-curl-plugin is not installed" msgstr "" #. input/input_disk.ml:96 #: output/output.ml:181 output/output.ml:80 input/input_libvirt.ml:72 msgid "nbdkit-file-plugin is not installed or not working" msgstr "" #: input/input_libvirt.ml:74 msgid "nbdkit-nbd-plugin is not installed or not working" msgstr "" #: output/output_null.ml:60 msgid "nbdkit-null-plugin is not installed or not working" msgstr "" #: input/nbdkit_ssh.ml:39 msgid "nbdkit-ssh-plugin is not installed" msgstr "" #: input/input_vddk.ml:287 msgid "nbdkit-vddk-plugin is not installed" msgstr "" #: lib/nbdkit.ml:56 msgid "nbdkit: unexpected version in --dump-config: %s" msgstr "" #. input/input_vcenter_https.ml:49 #. input/input_ova.ml:46 #. input/input_libvirt.ml:35 #. input/input_disk.ml:39 #: input/input_xen_ssh.ml:47 input/input_vmx.ml:40 msgid "no -io (input options) are allowed here" msgstr "" #: output/output_ovirt.ml:44 output/output_null.ml:42 #: output/output_glance.ml:44 msgid "no -oo (output options) are allowed here" msgstr "" #: input/OVA.ml:273 msgid "no .ovf file was found in %s" msgstr "" #: common/mldrivers/linux_bootloaders.ml:402 msgid "no bootloader detected" msgstr "" #: input/parse_domain_from_vmx.ml:359 msgid "no displayName key found in VMX file" msgstr "" #: input/OVF.ml:148 msgid "no href in ovf:File (id=%s)" msgstr "" #: common/mldrivers/linux_kernels.ml:194 msgid "no initrd was found in /boot matching %s %s." msgstr "" #: common/mldrivers/linux_kernels.ml:317 msgid "" "no installed kernel packages were found.\n" "\n" "This probably indicates that %s was unable to inspect this guest properly." msgstr "" #: common/mldrivers/linux_kernels.ml:354 msgid "" "no kernels were found in the bootloader configuration.\n" "\n" "This probably indicates that %s was unable to parse the bootloader " "configuration of this guest." msgstr "" #: output/python_script.ml:55 msgid "no python binary called ‘%s’ can be found on the $PATH" msgstr "" #: input/select_input.ml:106 msgid "" "no support for remote libvirt connections to '-ic %s'. The conversion may " "fail when it tries to read the source disks." msgstr "" #: lib/create_ovf.ml:1027 msgid "" "oVirt cannot emulate ‘%s’ sound cards. This sound card will be dropped from " "the output." msgstr "" #: lib/create_ovf.ml:875 lib/create_ovf.ml:512 msgid "oVirt does not support the output format ‘%s’, only raw or qcow2" msgstr "" #: output/output_openstack.ml:120 msgid "openstack: -oo server-id= not present" msgstr "" #: output/output_openstack.ml:338 msgid "" "openstack: failed to attach cinder volume to VM, see earlier error messages" msgstr "" #: output/output_openstack.ml:291 msgid "openstack: failed to create a cinder volume, see earlier error messages" msgstr "" #: output/output_openstack.ml:304 msgid "" "openstack: failed to query cinder volume status, see earlier error messages" msgstr "" #: output/output_openstack.ml:442 msgid "" "openstack: failed to set image properties on cinder volume, see earlier " "error messages" msgstr "" #: output/output_openstack.ml:199 msgid "" "openstack: precheck failed, there may be a problem with authentication, see " "earlier error messages" msgstr "" #: output/output_openstack.ml:311 msgid "" "openstack: unknown volume status \"%s\": expected \"creating\" or " "\"available\"" msgstr "" #: output/output.ml:133 msgid "output mode only supports raw or qcow2 format (format: %s)" msgstr "" #: input/OVF.ml:263 msgid "" "ova disk has an unknown VMware controller type (%d), please report this as a " "bug supplying the *.ovf file extracted from the ova" msgstr "" #: input/OVF.ml:259 msgid "" "ova disk has no parent controller, please report this as a bug supplying the " "*.ovf file extracted from the ova" msgstr "" #: output/output_ovirt_upload.ml:367 msgid "" "ovirt-upload: -of %s: Only output format ‘raw’ or ‘qcow2’ is supported. If " "the input is in a different format then force one of these output formats by " "adding either ‘-of raw’ or ‘-of qcow2’ on the command line." msgstr "" #: common/mlcustomize/password.ml:51 msgid "" "password-crypto: unknown algorithm %s, use \"md5\", \"sha256\", \"sha512\" " "or \"yescrypt\"" msgstr "" #: common/mlcustomize/password.ml:197 msgid "" "password: using insecure md5 password encryption for guest of type %s " "version %d.%d.\n" "If this is incorrect, use --password-crypto option and file a bug." msgstr "" #: common/mlcustomize/customize_run.ml:359 msgid "passwords could not be set for this type of guest" msgstr "" #: lib/qemuNBD.ml:125 msgid "" "qemu-nbd did not start up. See previous debugging messages for problems." msgstr "" #: lib/qemuNBD.ml:127 msgid "" "qemu-nbd did not start up. There may be errors printed by qemu-nbd above.\n" "\n" "If the messages above are not sufficient to diagnose the problem then add " "the ‘virt-v2v -v -x’ options and examine the debugging output carefully." msgstr "" #: lib/qemuNBD.ml:47 msgid "qemu-nbd: unexpected version in --version: %s" msgstr "" #: common/mlcustomize/customize_run.ml:77 msgid "random seed could not be set for this type of guest" msgstr "" #: input/parse_domain_from_vmx.ml:44 msgid "remote vmx ‘%s’ could not be parsed as a URI" msgstr "" #. common/mlcustomize/inject_virtio_win.ml:357 #. common/mlcustomize/inject_virtio_win.ml:352 #: common/mlcustomize/inject_virtio_win.ml:362 msgid "" "root directory ‘/’ is missing from the virtio-win directory or ISO.\n" "\n" "This should not happen and may indicate that virtio-win or virt-v2v is " "broken in some way. Please report this as a bug with a full debug log." msgstr "" #: common/mltools/tools_utils.ml:417 common/options/keys.c:264 #, c-format msgid "selector '%s': invalid TYPE" msgstr "" #: common/mltools/tools_utils.ml:409 common/options/keys.c:254 #, c-format msgid "selector '%s': missing FILENAME, or too many fields" msgstr "" #: common/mltools/tools_utils.ml:399 common/options/keys.c:232 #, c-format msgid "selector '%s': missing ID" msgstr "" #: common/mltools/tools_utils.ml:404 common/options/keys.c:245 #, c-format msgid "selector '%s': missing KEY_STRING, or too many fields" msgstr "" #: common/mltools/tools_utils.ml:401 common/options/keys.c:239 #, c-format msgid "selector '%s': missing TYPE" msgstr "" #: common/mltools/tools_utils.ml:413 common/options/keys.c:262 #, c-format msgid "selector '%s': too many fields" msgstr "" #: lib/utils.ml:35 msgid "signalled by signal %d" msgstr "" #: common/mlcustomize/guest_packages.ml:40 msgid "" "sorry, ‘%s’ with the ‘%s’ package manager has not been implemented yet.\n" "\n" "You can work around this by using one of the ‘--run*’ or ‘--firstboot*’ " "options instead (described in the virt-customize(1) manual)." msgstr "" #: common/mlcustomize/ssh_key.ml:57 msgid "ssh-inject: $HOME environment variable is not set" msgstr "" #: common/mlcustomize/ssh_key.ml:93 msgid "ssh-inject: key is an empty string" msgstr "" #: common/mlcustomize/ssh_key.ml:66 msgid "ssh-inject: no public key file found in %s" msgstr "" #: common/mlcustomize/ssh_key.ml:83 msgid "ssh-inject: public key file (%s) is empty" msgstr "" #: common/mlcustomize/ssh_key.ml:112 msgid "ssh-inject: the user %s does not exist on the guest" msgstr "" #. common/mltools/tools_utils.ml:461 #: lib/utils.ml:36 common/mltools/tools_utils.ml:542 msgid "stopped by signal %d" msgstr "" #: output/changeuid.ml:58 msgid "subprocess exited with non-zero error code %d" msgstr "" #: output/changeuid.ml:60 msgid "subprocess signalled or stopped by signal %d" msgstr "" #: lib/utils.ml:33 msgid "success" msgstr "" #: output/create_libvirt_xml.ml:297 msgid "" "target hypervisor does not support floppy devices, but floppy devices were " "found in the source guest" msgstr "" #: output/output_ovirt_upload.ml:156 msgid "" "the Python module ‘ovirtsdk4’ could not be loaded, is it installed? See " "previous messages for problems." msgstr "" #: output/output_ovirt_upload.ml:453 msgid "the cluster ‘%s’ does not support the architecture %s but %s" msgstr "" #: common/mlcustomize/customize_run.ml:59 msgid "" "the command may have failed because the network is disabled. Try either " "removing ‘--no-network’ or adding ‘--network’ on the command line." msgstr "" #: common/mltools/JSON_parser.ml:84 msgid "the key ‘%s’ was not found in a list of objects" msgstr "" #: output/output_ovirt_upload.ml:288 msgid "" "the number of ‘-oo ovirt-disk-uuid’ parameters passed on the command line " "has to match the number of guest disk images (for this guest: %d)" msgstr "" #: output/output_vdsm.ml:133 msgid "" "the number of ‘-oo vdsm-image-uuid’ and ‘-oo vdsm-vol-uuid’ parameters " "passed on the command line has to match the number of guest disk images (for " "this guest: %d)" msgstr "" #: output/output_libvirt.ml:239 msgid "the target hypervisor does not support a %s KVM guest" msgstr "" #: common/mltools/JSON_parser.ml:78 msgid "the value for key ‘%s’ is not a string as expected" msgstr "" #: common/mltools/JSON_parser.ml:50 msgid "the value for the key ‘%s’ is not a bool" msgstr "" #: common/mltools/JSON_parser.ml:45 msgid "the value for the key ‘%s’ is not a string" msgstr "" #: common/mltools/JSON_parser.ml:70 msgid "the value for the key ‘%s’ is not an integer" msgstr "" #: common/mltools/JSON_parser.ml:55 msgid "the value for the key ‘%s’ is not an object" msgstr "" #: common/mltools/JSON_parser.ml:59 msgid "the value is not an object" msgstr "" #: common/mltools/JSON_parser.ml:35 msgid "the value of the key ‘%s’ is not an object" msgstr "" #: lib/create_ovf.ml:519 msgid "" "the virtual size of the input disk %d is not an exact multiple of 512 " "bytes. The virtual size is: %Ld.\n" "\n" "This probably means something unexpected is going on, so please file a bug " "about this issue." msgstr "" #: output/output_openstack.ml:144 msgid "" "the ‘%s’ program is not available. It is needed to communicate with " "OpenStack." msgstr "" #: output/output_ovirt.ml:265 msgid "" "there are multiple UUIDs in the %s (%s). This is unexpected, and may be a " "bug in virt-v2v or OVirt." msgstr "" #: output/output_ovirt.ml:262 msgid "there are no UUIDs in the %s (%s). Is it really an OVirt %s?" msgstr "" #: common/mlcustomize/inject_virtio_win.ml:153 msgid "" "there are no virtio drivers available for this version of Windows (%d.%d %s " "%s %s). virt-v2v looks for drivers in %s\n" "\n" "The guest will be configured to use slower emulated devices." msgstr "" #: common/mlcustomize/inject_virtio_win.ml:175 msgid "" "there is no virtio block device driver for this version of Windows (%d.%d " "%s). virt-v2v looks for this driver in %s\n" "\n" "The guest will be configured to use a slower emulated device." msgstr "" #: common/mlcustomize/inject_virtio_win.ml:206 msgid "" "there is no virtio network driver for this version of Windows (%d.%d %s). " "virt-v2v looks for this driver in %s\n" "\n" "The guest will be configured to use a slower emulated device." msgstr "" #: input/parse_libvirt_xml.ml:545 msgid "this guest has a direct network interface which will be ignored" msgid_plural "this guest has direct network interfaces which will be ignored" msgstr[0] "" msgstr[1] "" #: input/parse_libvirt_xml.ml:527 msgid "this guest has a passthrough host device which will be ignored" msgid_plural "this guest has passthrough host devices which will be ignored" msgstr[0] "" msgstr[1] "" #: input/parse_libvirt_xml.ml:248 msgid "this guest has no non-removable disks" msgstr "" #: output/output.ml:65 msgid "this output module doesn't support copying more than %d disks" msgstr "" #: common/mlcustomize/timezone.ml:35 msgid "timezone '%s' does not exist, use a location like 'Europe/London'" msgstr "" #: common/mlcustomize/customize_run.ml:304 msgid "timezone could not be set for this type of guest" msgstr "" #: input/OVA.ml:318 msgid "unable to parse line from manifest file: %S" msgstr "" #: common/mltools/urandom.ml:37 msgid "unexpected end of file while reading /dev/urandom" msgstr "" #: input/input_libvirt.ml:196 msgid "unexpected output from the %s command" msgstr "" #: common/mltools/checksums.ml:58 msgid "unhandled checksum type ‘%s’" msgstr "" #: lib/types.ml:524 msgid "unknown --root option: %s" msgstr "" #: input/select_input.ml:51 msgid "unknown -i option: %s" msgstr "" #: output/select_output.ml:74 msgid "unknown -o option: %s" msgstr "" #: v2v/v2v.ml:164 msgid "unknown -oa option: %s" msgstr "" #: input/input_libvirt.ml:189 msgid "unknown method='%s'" msgstr "" #: input/OVF.ml:103 msgid "unknown Config:firmware value %s (expected \"bios\" or \"efi\")" msgstr "" #: lib/create_ovf.ml:446 lib/create_ovf.ml:247 msgid "unknown Windows 10 variant: %s (%s)" msgstr "" #: v2v/v2v.ml:319 in-place/in_place.ml:256 msgid "unknown block driver ‘--block-driver %s’" msgstr "" #: input/parse_domain_from_vmx.ml:415 msgid "unknown firmware value '%s', assuming BIOS" msgstr "" #: lib/create_ovf.ml:454 lib/create_ovf.ml:255 msgid "unknown guest operating system: %s %s %d.%d %s (%s)" msgstr "" #: v2v/v2v.ml:329 open/open.ml:132 inspector/inspector.ml:238 msgid "unknown input transport ‘-it %s’" msgstr "" #: input/parse_domain_from_vmx.ml:428 msgid "unknown sound device '%s' ignored" msgstr "" #: input/parse_libvirt_xml.ml:215 msgid "unknown sound model %s ignored" msgstr "" #: input/OVF.ml:156 msgid "unsupported compression in OVF: %s" msgstr "" #: input/input_vcenter_https.ml:123 msgid "" "vcenter: was not found in the XML. You need to " "upgrade to libvirt ≥ 1.2.20." msgstr "" #: input/vCenter.ml:79 msgid "vcenter: URL not found: %s" msgstr "" #: input/vCenter.ml:70 msgid "vcenter: incorrect username or password" msgstr "" #: input/vCenter.ml:72 msgid "" "vcenter: incorrect username or password. You might need to specify the " "username in the URI like this: [vpx|esx|..]://USERNAME@[etc]" msgstr "" #: input/vCenter.ml:84 msgid "vcenter: invalid response from server: %s" msgstr "" #: input/vCenter.ml:194 msgid "vcenter: no status code in output of ‘curl’ command." msgstr "" #: output/output_vdsm.ml:148 msgid "vdsm: invalid -os parameter does not contain a valid UUID: %s" msgstr "" #: output/output_openstack.ml:56 msgid "" "virt-v2v -oo server-id= [os-*=...]\n" "\n" "Specify the name or UUID of the conversion appliance using\n" "\n" " virt-v2v ... -o openstack -oo server-id=\n" "\n" "When virt-v2v runs it will attach the Cinder volumes to the\n" "conversion appliance, so this name or UUID must be the name\n" "of the virtual machine on OpenStack where virt-v2v is running.\n" "\n" "In addition, all usual OpenStack “os-*” parameters or “OS_*”\n" "environment variables can be used.\n" "\n" "Openstack “--os-*” parameters must be written as “virt-v2v -oo os-*”.\n" "\n" "For example:\n" "\n" " virt-v2v -oo os-username=\n" "\n" " equivalent to openstack: --os-username=\n" " or the environment variable: OS_USERNAME=\n" "\n" " virt-v2v -oo os-project-name=\n" "\n" " equivalent to openstack: --os-project-name=\n" " or the environment variable: OS_PROJECT_NAME=\n" "\n" "The os-* parameters and environment variables are optional.\n" msgstr "" #: input/parse_libvirt_xml.ml:189 msgid "" "virt-v2v does not support local displays, so in the " "input libvirt XML was ignored" msgstr "" #: input/select_input.ml:83 msgid "virt-v2v-in-place does not support remote libvirt URIs" msgstr "" #: input/parse_domain_from_vmx.ml:50 msgid "vmx URI path component looks incorrect" msgstr "" #: input/parse_domain_from_vmx.ml:48 msgid "vmx URI remote server name omitted" msgstr "" #: input/parse_domain_from_vmx.ml:46 msgid "vmx URI start with ‘ssh://...’" msgstr "" #: input/VMX.ml:313 msgid "vmx parser: cannot parse this line, ignoring: %s" msgstr "" #: input/VMX.ml:346 msgid "vmx parser: duplicate key '%s' ignored" msgstr "" #: output/output_openstack.ml:299 msgid "wait for cinder volume status to change to \"available\"" msgstr "" #: output/output_openstack.ml:360 msgid "waiting for cinder volume %s to attach to the conversion appliance" msgstr "" #: open/open.ml:136 msgid "you must supply the --run parameter" msgstr "" #: input/input_xen_ssh.ml:87 input/input_vddk.ml:189 msgid "‘-ic %s’ URL does not contain a host name field" msgstr "" #: input/input_vddk.ml:273 msgid "‘-io vddk-file=’ must be used exactly %d times" msgstr "" #: input/input_vddk.ml:297 msgid "" "‘-io vddk-libdir=%s’ does not point to a directory. See the virt-v2v-input-" "vmware(1) manual." msgstr "" #: output/output.ml:85 msgid "" "‘-oo compressed’ is only allowed when the output format is a local qcow2-" "format file, i.e. ‘-of qcow2’" msgstr "" #: input/input_vddk.ml:232 msgid "" "‘openssl’ command not found: automatically detecting thumbprint is not " "possible, so you must use ‘-io vddk-thumbprint=XX:XX...’" msgstr "" #: common/mltools/getopt-c.c:68 #, c-format msgid "Try ‘%s --help’ or consult %s(1) for more information.\n" msgstr "" #: common/mltools/getopt-c.c:187 #, c-format msgid "%s: ‘%s’ is not a numeric value.\n" msgstr "" #: common/mltools/getopt-c.c:193 #, c-format msgid "%s: %s: integer out of range\n" msgstr "" #: common/mltools/getopt-c.c:383 #, c-format msgid "%s: ‘%s’ is not allowed for -%c; allowed values are:\n" msgstr "" #: common/mltools/getopt-c.c:386 #, c-format msgid "%s: ‘%s’ is not allowed for %s%s; allowed values are:\n" msgstr "" #: common/mltools/getopt-c.c:421 #, c-format msgid "Extra parameter on the command line: ‘%s’.\n" msgstr "" #: common/options/config.c:72 #, c-format msgid "%s: line %d: error parsing configuration file: %s" msgstr "" #: common/options/decrypt.c:52 #, c-format msgid "string size overflow" msgstr "" #: common/options/decrypt.c:170 #, c-format msgid "" "'clevis_luks_unlock', needed for decrypting %s, is unavailable in this " "libguestfs version" msgstr "" #: common/options/decrypt.c:184 #, c-format msgid "" "could not find key to open LUKS encrypted %s.\n" "\n" "Try using --key on the command line.\n" "\n" "Original error: %s (%d)" msgstr "" #: common/options/inspect.c:78 #, c-format msgid "" "%s: no operating system was found on this disk\n" "\n" "If using guestfish ‘-i’ option, remove this option and instead\n" "use the commands ‘run’ followed by ‘list-filesystems’.\n" "You can then mount filesystems you want by hand using the\n" "‘mount’ or ‘mount-ro’ command.\n" "\n" "If using guestmount ‘-i’, remove this option and choose the\n" "filesystem(s) you want to see by manually adding ‘-m’ option(s).\n" "Use ‘virt-filesystems’ to see what filesystems are available.\n" "\n" "If using other virt tools, this disk image won’t work\n" "with these tools. Use the guestfish equivalent commands\n" "(see the virt tool manual page).\n" msgstr "" #: common/options/inspect.c:99 #, c-format msgid "" "%s: multi-boot operating systems are not supported\n" "\n" "If using guestfish ‘-i’ option, remove this option and instead\n" "use the commands ‘run’ followed by ‘list-filesystems’.\n" "You can then mount filesystems you want by hand using the\n" "‘mount’ or ‘mount-ro’ command.\n" "\n" "If using guestmount ‘-i’, remove this option and choose the\n" "filesystem(s) you want to see by manually adding ‘-m’ option(s).\n" "Use ‘virt-filesystems’ to see what filesystems are available.\n" "\n" "If using other virt tools, multi-boot operating systems won’t work\n" "with these tools. Use the guestfish equivalent commands\n" "(see the virt tool manual page).\n" msgstr "" #: common/options/inspect.c:161 #, c-format msgid "%s: some filesystems could not be mounted (ignored)\n" msgstr "" #: common/options/inspect.c:178 #, c-format msgid "Operating system: %s\n" msgstr "" #: common/options/inspect.c:196 #, c-format msgid "%s mounted on %s\n" msgstr "" #: common/options/keys.c:63 #, c-format msgid "Enter key or passphrase (\"%s\"): " msgstr "" #: common/options/keys.c:146 #, c-format msgid "size_t overflow" msgstr "" #: common/options/keys.c:193 #, c-format msgid "could not read key from user" msgstr "" #: common/options/options.c:283 #, c-format msgid "%s: ‘%s’ could not be mounted.\n" msgstr "" #: common/options/options.c:287 #, c-format msgid "" "%s: Check mount(8) man page to ensure options ‘%s’\n" "%s: are supported by the filesystem that is being mounted.\n" msgstr "" #: common/options/options.c:291 #, c-format msgid "%s: Did you mean to mount one of these filesystems?\n" msgstr "" #: common/options/options.c:304 #, c-format msgid "cannot determine the subvolume for %s: %s (%d)" msgstr "" #: common/options/uri.c:119 #, c-format msgid "%s: --add: could not parse URI ‘%s’\n" msgstr "" #: common/options/uri.c:130 #, c-format msgid "%s: %s: scheme of URI is NULL or empty\n" msgstr "" #: common/options/uri.c:138 #, c-format msgid "%s: %s: cannot have both a server name and a socket query parameter\n" msgstr "" #: common/utils/utils.c:107 #, c-format msgid "%s exited successfully" msgstr "" #: common/utils/utils.c:110 #, c-format msgid "%s exited with error status %d" msgstr "" #: common/utils/utils.c:114 #, c-format msgid "%s killed by signal %d (%s)" msgstr "" #: common/utils/utils.c:118 #, c-format msgid "%s stopped by signal %d (%s)" msgstr "" #: common/utils/utils.c:122 #, c-format msgid "%s exited for an unknown reason (status %d)" msgstr "" ================================================ FILE: po/tg.po ================================================ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR Red Hat Inc. # This file is distributed under the same license as the virt-v2v package. # FIRST AUTHOR , YEAR. # msgid "" msgstr "" "Project-Id-Version: virt-v2v 2.7.7\n" "Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?" "component=libguestfs&product=Virtualization+Tools\n" "POT-Creation-Date: 2025-02-16 17:05+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" "Language: tg\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" #: input/input_ova.ml:135 common/mltools/tools_utils.ml:235 msgid "%s" msgstr "" #: common/mltools/getopt.ml:73 msgid "" "%s\n" "Options:\n" msgstr "" #: common/mltools/tools_utils.ml:695 common/mlcustomize/customize_run.ml:390 msgid "%s (ignored)" msgstr "" #: common/mltools/checksums.ml:71 msgid "%s did not return any output" msgstr "" #: common/mlcustomize/customize_run.ml:183 msgid "%s does not exist in the guest" msgstr "" #: output/output_ovirt.ml:275 msgid "" "%s does not exist or is not a directory.\n" "\n" "Most likely cause: Either the %s (%s) has not been attached to any Data " "Center, or the path %s is not an %s at all.\n" "\n" "You have to attach the %s to a Data Center using the oVirt user interface " "first.\n" "\n" "If you don’t know what the %s mount point should be then you can also find " "this out through the oVirt user interface." msgstr "" #: common/mlcustomize/customize_run.ml:113 msgid "%s ignored for non-Windows guest" msgstr "" #: common/mlcustomize/customize_run.ml:186 msgid "%s is not a regular file in the guest" msgstr "" #. open/open.ml:39 #. inspector/inspector.ml:153 #. inspector/inspector.ml:40 #. in-place/in_place.ml:164 #. in-place/in_place.ml:45 #: v2v/v2v.ml:194 v2v/v2v.ml:183 v2v/v2v.ml:159 v2v/v2v.ml:44 open/open.ml:68 msgid "%s option used more than once on the command line" msgstr "" #: common/mltools/tools_utils.ml:231 common/mltools/tools_utils.ml:202 msgid "%s: %s" msgstr "" #: common/mltools/tools_utils.ml:233 msgid "%s: %s: %s" msgstr "" #: common/mltools/on_exit.ml:77 msgid "" "%s: Exiting on signal %s\n" "%!" msgstr "" #: common/mlcustomize/inject_virtio_win.ml:411 msgid "%s: cannot open virtio-win ISO file: %s" msgstr "" #: common/mlcustomize/customize_run.ml:64 msgid "%s: command exited with an error" msgstr "" #: v2v/v2v.ml:277 msgid "" "%s: convert a guest to use KVM\n" "\n" "virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi -os imported " "esx_guest\n" "\n" "virt-v2v -i libvirtxml guest-domain.xml -o local -os /var/tmp\n" "\n" "virt-v2v -i disk disk.img -o local -os /var/tmp\n" "\n" "There is a companion front-end called \"virt-p2v\" which comes as an\n" "ISO or CD image that can be booted on physical machines.\n" "\n" "A short summary of the options is given below. For detailed help please\n" "read the man page virt-v2v(1).\n" msgstr "" #: in-place/in_place.ml:217 msgid "" "%s: convert a guest to use KVM in-place\n" "\n" "Note this program modifies the guest in-place with no backup.\n" "Normally you should use virt-v2v.\n" "\n" "virt-v2v-in-place -i libvirtxml guest-domain.xml\n" "\n" "virt-v2v-in-place -i disk disk.img\n" "\n" "A short summary of the options is given below. For detailed help please\n" "read the man page virt-v2v-in-place(1).\n" msgstr "" #: input/input_vddk.ml:207 msgid "%s: enter password for ‘%s’: " msgstr "" #: common/mltools/tools_utils.ml:172 msgid "%s: error: %s" msgstr "" #: inspector/inspector.ml:198 msgid "" "%s: estimate disk space needed before virt-v2v conversion\n" "\n" "virt-v2v-inspector -i disk disk.img [-O output.xml]\n" "\n" "A short summary of the options is given below. For detailed help please\n" "read the man page virt-v2v-inspector(1).\n" msgstr "" #: open/open.ml:94 msgid "" "%s: open the virt-v2v input and run a program on it\n" "\n" "virt-v2v-open -i disk disk.img --run 'virt-inspector --format=raw @@'\n" "\n" "A short summary of the options is given below. For detailed help please\n" "read the man page virt-v2v-open(1).\n" msgstr "" #: common/mltools/tools_utils.ml:726 msgid "%s: operation timed out" msgstr "" #: input/OVA.ml:127 input/OVA.ml:121 msgid "" "%s: unsupported file format\n" "\n" "Formats which we currently understand for '-i ova' are: tar (uncompressed, " "compress with gzip or xz), zip" msgstr "" #: common/mltools/tools_utils.ml:191 msgid "%s: warning: %s" msgstr "" #. common/mlcustomize/customize_cmdline.ml:258 #: common/mlcustomize/customize_cmdline.ml:367 msgid "'CMD+ARGS'" msgstr "" #: common/mlcustomize/customize_run.ml:133 msgid "" "--append-line: line must not contain newline characters. Use the --append-" "line option multiple times to add several lines." msgstr "" #: common/mlcustomize/customize_run.ml:152 msgid "--chown: could not parse numeric UID:GID from %s:%s" msgstr "" #: common/mlcustomize/customize_run.ml:216 msgid "" "--inject-blnsvr: blnsvr.exe not found in virtio-win source that you specified" msgstr "" #: common/mlcustomize/customize_run.ml:225 msgid "" "--inject-qemu-ga: QEMU Guest Agent MSI not found in virtio-win source that " "you specified" msgstr "" #: common/mlcustomize/customize_run.ml:241 msgid "" "--inject-virtio-win: virtio drivers were not found for this Windows version " "in the virtio-win source that you specified" msgstr "" #: v2v/v2v.ml:146 inspector/inspector.ml:136 in-place/in_place.ml:143 msgid "--mac ip prefix length field is out of range" msgstr "" #: v2v/v2v.ml:340 msgid "--parallel parameter must be >= 1" msgstr "" #: input/input_disk.ml:42 msgid "-i disk: expecting a disk image (filename) on the command line" msgstr "" #: input/input_xen_ssh.ml:65 msgid "-i libvirt: expecting -ic parameter for Xen over SSH connection" msgstr "" #: input/input_vddk.ml:142 input/input_vcenter_https.ml:88 msgid "-i libvirt: expecting -ic parameter for vcenter connection" msgstr "" #: input/input_vcenter_https.ml:101 msgid "-i libvirt: expecting -ic parameter to contain vcenter server name" msgstr "" #: input/input_vcenter_https.ml:78 msgid "-i libvirt: expecting -ip passwordfile parameter for vCenter connection" msgstr "" #. input/input_vcenter_https.ml:70 #. input/input_libvirt.ml:41 #: input/input_xen_ssh.ml:57 input/input_vddk.ml:132 msgid "-i libvirt: expecting a libvirt guest name on the command line" msgstr "" #: input/input_libvirt.ml:59 msgid "-i libvirtxml: expecting a libvirt XML filename on the command line" msgstr "" #: input/input_ova.ml:243 msgid "-i ova: OVF references file ‘%s’ which was not found in the OVA archive" msgstr "" #: input/input_ova.ml:78 msgid "" "-i ova: corrupt OVA: checksum of disk %s does not match manifest (actual = " "%s, expected = %s)" msgstr "" #: input/input_ova.ml:52 msgid "-i ova: expecting an OVA file name on the command line" msgstr "" #: input/OVA.ml:361 msgid "" "-i ova: invalid OVA file: path ‘%s’ references a file outside the archive" msgstr "" #: input/input_vmx.ml:57 msgid "-i vmx: cannot use -it vddk in this input mode" msgstr "" #: input/input_vmx.ml:60 msgid "-i vmx: expecting a VMX file or ssh:// URI" msgstr "" #: input/vCenter.ml:159 msgid "" "-ip PASSWORD_FILE parameter ignored because 'user@' was not given in the URL" msgstr "" #: input/input_vddk.ml:119 msgid "-it vddk: ‘-io %s’ is not a valid input option" msgstr "" #: output/output.ml:54 msgid "-o %s: %s option cannot be used in this output mode" msgstr "" #: output/output_disk.ml:66 msgid "-o disk: output directory was not specified, use '-os /dir'" msgstr "" #: output/output_libvirt.ml:59 output/output_disk.ml:56 msgid "-o disk: unknown output option ‘-oo %s’" msgstr "" #: output/output_kubevirt.ml:81 msgid "-o kubevirt: output directory was not specified, use '-os /dir'" msgstr "" #: output/output_kubevirt.ml:91 msgid "" "-o kubevirt: the guest name must contain only lowercase alphanumeric " "characters, '-' or '.', and must start and end with an alphanumeric " "character. Rerun virt-v2v with the '-on name' option to rename it." msgstr "" #: output/output_kubevirt.ml:71 msgid "-o kubevirt: unknown output option ‘-oo %s’" msgstr "" #: output/output_libvirt.ml:120 msgid "" "-o libvirt: output pool ‘%s’ does not have /pool/target/path element. See " "virt-v2v-output-local(1)" msgstr "" #: output/output_libvirt.ml:124 msgid "" "-o libvirt: output pool ‘%s’ has type='dir' but the /pool/target/path " "element is not a local directory. See virt-v2v-output-local(1)" msgstr "" #: output/output_libvirt.ml:116 msgid "" "-o libvirt: output pool ‘%s’ is not a directory (type='dir'). See virt-v2v-" "output-local(1)" msgstr "" #: output/output_openstack.ml:88 msgid "-o openstack mode only supports -oa sparse -of raw" msgstr "" #: output/output_openstack.ml:115 msgid "-o openstack: unknown output option ‘-oo %s’" msgstr "" #: output/output_ovirt_upload.ml:97 msgid "-o ovirt-upload: -oo ovirt-cafile set more than once" msgstr "" #: output/output_ovirt_upload.ml:101 msgid "-o ovirt-upload: -oo ovirt-cluster set more than once" msgstr "" #: output/output_ovirt_upload.ml:112 msgid "-o ovirt-upload: invalid UUID for -oo ovirt-disk-uuid" msgstr "" #: output/output_ovirt_upload.ml:76 msgid "" "-o ovirt-upload: output password file was not specified, use ‘-op’ to point " "to a file which contains the password used to connect to the oVirt server" msgstr "" #: output/output_ovirt_upload.ml:83 msgid "-o ovirt-upload: output storage was not specified, use ‘-os’" msgstr "" #: output/output_ovirt_upload.ml:116 msgid "-o ovirt-upload: unknown output option ‘-oo %s’" msgstr "" #: output/output_ovirt_upload.ml:68 msgid "" "-o ovirt-upload: use ‘-oc’ to point to the oVirt server REST API URL, which " "is usually https://servername/ovirt-engine/api" msgstr "" #: output/output_ovirt.ml:51 msgid "-o ovirt: -os option was not specified" msgstr "" #: output/output_qemu.ml:72 msgid "-o qemu: output directory was not specified, use '-os /dir'" msgstr "" #: output/output_qemu.ml:63 msgid "-o qemu: unknown output option ‘-oo %s’" msgstr "" #: output/output_vdsm.ml:102 msgid "-o vdsm: -oo vdsm-image-uuid was not specified" msgstr "" #: output/output_vdsm.ml:81 msgid "-o vdsm: -oo vdsm-ovf-output set more than once" msgstr "" #: output/output_vdsm.ml:77 msgid "-o vdsm: -oo vdsm-vm-uuid set more than once" msgstr "" #: output/output_vdsm.ml:110 msgid "-o vdsm: -os option was not specified" msgstr "" #: output/output_vdsm.ml:97 msgid "-o vdsm: either -oo vdsm-vol-uuid or -oo vdsm-vm-uuid was not specified" msgstr "" #: output/output_vdsm.ml:90 msgid "-o vdsm: unknown output option ‘-oo %s’" msgstr "" #: output/output_vdsm.ml:74 msgid "-o vdsm: unknown vdsm-compat level ‘%s’" msgstr "" #. output/output_kubevirt.ml:84 #. output/output_disk.ml:68 #: output/output_vdsm.ml:112 output/output_qemu.ml:74 msgid "-os %s: output directory does not exist or is not a directory" msgstr "" #: input/parse_libvirt_xml.ml:279 msgid " missing 'method' attribute, ignoring" msgstr "" #: input/parse_libvirt_xml.ml:291 msgid " unknown fail='%s' attribute, ignoring" msgstr "" #: input/parse_libvirt_xml.ml:370 input/parse_libvirt_xml.ml:317 msgid " was ignored" msgstr "" #: input/parse_libvirt_xml.ml:338 msgid " with was ignored" msgstr "" #: input/parse_libvirt_xml.ml:365 msgid " with was ignored" msgstr "" #: input/parse_libvirt_xml.ml:299 msgid " element with no type attribute ignored" msgstr "" #: input/parse_libvirt_xml.ml:167 msgid " in the input libvirt XML was ignored" msgstr "" #: input/parse_libvirt_xml.ml:414 msgid "" " was ignored because the device name could not be recognized" msgstr "" #: input/input_vddk.ml:176 msgid "" " was not found in the output of ‘virsh dumpxml \"%s\"’. The " "most likely reason is that libvirt is too old, try upgrading libvirt to ≥ " "3.7." msgstr "" #: common/mlcustomize/customize_cmdline.ml:305 msgid "Add package(s) to install" msgstr "" #: common/mlcustomize/customize_cmdline.ml:270 msgid "Add package(s) to install at first boot" msgstr "" #: common/mlcustomize/customize_cmdline.ml:175 msgid "Append line(s) to the file" msgstr "" #: common/mlcustomize/customize_run.ml:137 msgid "Appending line to %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:197 msgid "Change the owner user and group ID of a file or directory" msgstr "" #: common/mlcustomize/customize_cmdline.ml:186 msgid "Change the permissions of a file" msgstr "" #: common/mlcustomize/customize_run.ml:155 msgid "Changing owner of %s to %d:%d" msgstr "" #: common/mlcustomize/customize_run.ml:141 msgid "Changing permissions of %s to %s" msgstr "" #: input/input_libvirt.ml:174 input/input_libvirt.ml:157 msgid "Checking %s checksum of disk %d/%d" msgstr "" #: common/mlcustomize/customize_cmdline.ml:488 msgid "Compatibility option doing nothing" msgstr "" #: common/mlcustomize/customize_cmdline.ml:219 msgid "Copy files in disk image" msgstr "" #: common/mlcustomize/customize_cmdline.ml:397 msgid "Copy local files or directories from a tarball into image" msgstr "" #: common/mlcustomize/customize_cmdline.ml:230 msgid "Copy local files or directories into image" msgstr "" #: common/mlcustomize/customize_run.ml:168 msgid "Copying (in image): %s to %s" msgstr "" #: v2v/v2v.ml:518 msgid "Copying disk %d/%d" msgstr "" #: common/mlcustomize/customize_run.ml:172 msgid "Copying: %s to %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:322 msgid "Create a directory" msgstr "" #: common/mlcustomize/customize_cmdline.ml:316 msgid "Create symbolic links" msgstr "" #: v2v/v2v.ml:567 msgid "Creating output metadata" msgstr "" #: common/mlcustomize/customize_cmdline.ml:321 msgid "DIR" msgstr "" #: common/mlcustomize/customize_cmdline.ml:236 msgid "Delete a file or directory" msgstr "" #: common/mlcustomize/customize_run.ml:176 msgid "Deleting: %s" msgstr "" #: common/mltools/getopt.ml:225 msgid "Display brief help" msgstr "" #: common/mltools/tools_utils.ml:385 msgid "Display version and exit" msgstr "" #: common/mlcustomize/customize_cmdline.ml:482 msgid "Do not relabel files with correct SELinux labels" msgstr "" #: v2v/v2v.ml:248 inspector/inspector.ml:177 in-place/in_place.ml:190 msgid "Don't trim filesystems before conversion" msgstr "" #: common/mltools/tools_utils.ml:389 msgid "Don’t print progress messages" msgstr "" #: common/mltools/tools_utils.ml:420 msgid "Don’t turn off echo for passphrases" msgstr "" #: common/mlcustomize/customize_cmdline.ml:247 msgid "Edit file using Perl expression" msgstr "" #: common/mlcustomize/customize_run.ml:180 msgid "Editing: %s" msgstr "" #: common/mltools/tools_utils.ml:386 msgid "Enable libguestfs debugging messages" msgstr "" #: common/mltools/tools_utils.ml:387 msgid "Enable tracing of libguestfs calls" msgstr "" #: output/output_ovirt.ml:77 msgid "Export Storage Domain" msgstr "" #: open/open.ml:88 msgid "External command to run" msgstr "" #. common/mlcustomize/customize_cmdline.ml:408 #. common/mlcustomize/customize_cmdline.ml:373 #: common/mlcustomize/customize_cmdline.ml:414 msgid "FILE" msgstr "" #: common/mlcustomize/customize_cmdline.ml:455 msgid "FILE:CONTENT" msgstr "" #: common/mlcustomize/customize_cmdline.ml:444 msgid "FILE:DEST" msgstr "" #: common/mlcustomize/customize_cmdline.ml:242 msgid "FILE:EXPR" msgstr "" #: common/mlcustomize/customize_cmdline.ml:170 msgid "FILE:LINE" msgstr "" #: common/mlcustomize/customize_cmdline.ml:203 msgid "FILENAME" msgstr "" #. in-place/in_place.ml:378 #: v2v/v2v.ml:571 open/open.ml:220 inspector/inspector.ml:334 msgid "Finishing off" msgstr "" #: common/mlcustomize/customize_cmdline.ml:275 msgid "HOSTNAME" msgstr "" #: v2v/v2v.ml:254 inspector/inspector.ml:183 in-place/in_place.ml:194 msgid "How to choose root filesystem" msgstr "" #: common/mltools/tools_utils.ml:177 msgid "" "If reporting bugs, run %s with debugging enabled and include the complete " "output:\n" "\n" " %s -v -x [...]" msgstr "" #: common/mlcustomize/customize_cmdline.ml:386 msgid "Inject a public key into the guest" msgstr "" #: common/mlcustomize/customize_cmdline.ml:282 msgid "Inject the Balloon Server into a Windows guest" msgstr "" #: common/mlcustomize/customize_cmdline.ml:288 msgid "Inject the QEMU Guest Agent into a Windows guest" msgstr "" #: common/mlcustomize/customize_cmdline.ml:294 msgid "Inject virtio-win drivers into a Windows guest" msgstr "" #. in-place/in_place.ml:176 #: v2v/v2v.ml:216 open/open.ml:80 inspector/inspector.ml:165 msgid "Input format" msgstr "" #: input/input_vddk.ml:77 msgid "" "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" "\n" "Refer to nbdkit-vddk-plugin(1) and the VDDK documentation for further\n" "information on these settings.\n" msgstr "" #: v2v/v2v.ml:222 open/open.ml:86 inspector/inspector.ml:171 msgid "Input transport" msgstr "" #: common/mlcustomize/customize_run.ml:191 msgid "Installing firstboot command: %s" msgstr "" #: common/mlcustomize/customize_run.ml:195 msgid "Installing firstboot packages: %s" msgstr "" #: common/mlcustomize/customize_run.ml:202 msgid "Installing firstboot script: %s" msgstr "" #: common/mlcustomize/customize_run.ml:248 msgid "Installing packages: %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:225 msgid "LOCALPATH:REMOTEDIR" msgstr "" #. in-place/in_place.ml:174 #: v2v/v2v.ml:214 open/open.ml:78 inspector/inspector.ml:163 msgid "Libvirt URI" msgstr "" #: common/mlcustomize/customize_run.ml:255 msgid "Linking: %s -> %s" msgstr "" #. common/mlcustomize/customize_cmdline.ml:287 #. common/mlcustomize/customize_cmdline.ml:281 #: common/mlcustomize/customize_cmdline.ml:293 msgid "METHOD" msgstr "" #: common/mltools/tools_utils.ml:426 msgid "Make output machine readable" msgstr "" #: common/mlcustomize/customize_run.ml:260 msgid "Making directory: %s" msgstr "" #: v2v/v2v.ml:226 inspector/inspector.ml:173 in-place/in_place.ml:182 msgid "Map NIC to network or bridge or assign static IP" msgstr "" #: v2v/v2v.ml:210 inspector/inspector.ml:159 in-place/in_place.ml:170 msgid "Map bridge ‘in’ to ‘out’" msgstr "" #: v2v/v2v.ml:230 inspector/inspector.ml:179 in-place/in_place.ml:186 msgid "Map network ‘in’ to ‘out’" msgstr "" #: common/mlcustomize/customize_cmdline.ml:333 msgid "Move files in disk image" msgstr "" #: common/mlcustomize/customize_run.ml:264 msgid "Moving: %s -> %s" msgstr "" #. input/input_vcenter_https.ml:45 #. input/input_ova.ml:35 #. input/input_libvirt.ml:233 #. input/input_libvirt.ml:221 #. input/input_disk.ml:35 #: input/input_xen_ssh.ml:43 input/input_vmx.ml:36 msgid "No input options can be used in this mode.\n" msgstr "" #: output/output_ovirt.ml:40 output/output_null.ml:38 #: output/output_glance.ml:40 msgid "No output options can be used in this mode.\n" msgstr "" #: output/output_vdsm.ml:166 msgid "OVF (metadata) directory (%s) does not exist or is not a directory" msgstr "" #: common/mlcustomize/firstboot.ml:268 msgid "" "One of rhsrvany.exe or pvvxsvc.exe is missing in %s. One of them is " "required in order to install Windows firstboot scripts. You can get one by " "building rhsrvany (https://github.com/rwmjones/rhsrvany)" msgstr "" #: v2v/v2v.ml:236 msgid "Output hypervisor connection" msgstr "" #: output/output_ovirt_upload.ml:51 msgid "" "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" "\n" "You can override the UUIDs of the disks, instead of using autogenerated " "UUIDs\n" "after their uploads (if you do, you must supply one for each disk):\n" "\n" " -oo ovirt-disk-uuid=UUID Disk UUID\n" msgstr "" #: output/output_qemu.ml:44 msgid "" "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" msgstr "" #: output/output_vdsm.ml:43 msgid "" "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" "\n" "For 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" msgstr "" #: output/output_disk.ml:44 msgid "" "Output options that can be used with -o disk:\n" "\n" " -oo compressed Compress the output file (used only with -of qcow2)\n" msgstr "" #: output/output_kubevirt.ml:51 msgid "" "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" msgstr "" #: output/output_libvirt.ml:47 msgid "" "Output options that can be used with -o libvirt:\n" "\n" " -oo compressed Compress the output file (used only with -of qcow2)\n" msgstr "" #. common/mlcustomize/customize_cmdline.ml:235 #: common/mlcustomize/customize_cmdline.ml:420 msgid "PATH" msgstr "" #: common/mlcustomize/customize_cmdline.ml:181 msgid "PERMISSIONS:FILE" msgstr "" #. common/mlcustomize/customize_cmdline.ml:300 #. common/mlcustomize/customize_cmdline.ml:265 #: common/mlcustomize/customize_cmdline.ml:427 msgid "PKG,PKG.." msgstr "" #: v2v/v2v.ml:263 in-place/in_place.ml:203 msgid "Prefer 'virtio-blk' or 'virtio-scsi'" msgstr "" #: v2v/v2v.ml:252 in-place/in_place.ml:192 msgid "Print source and stop" msgstr "" #: common/mlcustomize/customize_cmdline.ml:208 msgid "Read customize commands from file" msgstr "" #: common/mltools/tools_utils.ml:421 msgid "Read passphrases from stdin" msgstr "" #: common/mlcustomize/customize_cmdline.ml:421 msgid "Recursively truncate all files in directory" msgstr "" #: common/mlcustomize/customize_run.ml:298 msgid "Recursively truncating: %s" msgstr "" #: v2v/v2v.ml:240 msgid "Rename guest when converting" msgstr "" #: common/mlcustomize/customize_cmdline.ml:259 msgid "Run command at first guest boot" msgstr "" #: common/mlcustomize/customize_cmdline.ml:368 msgid "Run command in disk image" msgstr "" #: common/mlcustomize/customize_cmdline.ml:253 msgid "Run script at first guest boot" msgstr "" #: common/mlcustomize/customize_cmdline.ml:362 msgid "Run script in disk image" msgstr "" #: common/mlcustomize/customize_cmdline.ml:409 msgid "Run touch on a file" msgstr "" #: v2v/v2v.ml:250 msgid "Run up to N instances of nbdcopy in parallel" msgstr "" #: open/open.ml:188 msgid "Running external command" msgstr "" #: common/mlcustomize/customize_run.ml:307 msgid "Running touch: %s" msgstr "" #. common/mlcustomize/customize_run.ml:159 #: common/mlcustomize/customize_run.ml:274 msgid "Running: %s" msgstr "" #. common/mlcustomize/customize_cmdline.ml:252 #: common/mlcustomize/customize_cmdline.ml:361 msgid "SCRIPT" msgstr "" #: common/mltools/tools_utils.ml:422 #: common/mlcustomize/customize_cmdline.ml:351 msgid "SELECTOR" msgstr "" #: common/mlcustomize/customize_run.ml:363 msgid "SELinux relabelling" msgstr "" #. common/mlcustomize/customize_cmdline.ml:214 #: common/mlcustomize/customize_cmdline.ml:328 msgid "SOURCE:DEST" msgstr "" #: common/mlcustomize/customize_run.ml:287 msgid "SSH key could not be injected for this type of guest" msgstr "" #: common/mlcustomize/customize_run.ml:284 msgid "SSH key inject: %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:374 msgid "Scrub a file" msgstr "" #: common/mlcustomize/customize_cmdline.ml:466 msgid "Scrub build log file" msgstr "" #: common/mlcustomize/customize_run.ml:374 msgid "Scrubbing the log file" msgstr "" #: common/mlcustomize/customize_run.ml:279 msgid "Scrubbing: %s" msgstr "" #: v2v/v2v.ml:208 msgid "Set bandwidth dynamically from file" msgstr "" #: v2v/v2v.ml:206 msgid "Set bandwidth to bits per sec" msgstr "" #. in-place/in_place.ml:172 #: v2v/v2v.ml:212 open/open.ml:76 inspector/inspector.ml:161 msgid "Set input mode (default: libvirt)" msgstr "" #: v2v/v2v.ml:228 inspector/inspector.ml:175 in-place/in_place.ml:184 msgid "Set memory size" msgstr "" #: v2v/v2v.ml:256 inspector/inspector.ml:185 in-place/in_place.ml:196 msgid "Set number of vCPUs" msgstr "" #. in-place/in_place.ml:178 #: v2v/v2v.ml:218 open/open.ml:82 inspector/inspector.ml:167 msgid "Set option for input mode" msgstr "" #: v2v/v2v.ml:242 msgid "Set option for output mode" msgstr "" #: v2v/v2v.ml:234 msgid "Set output allocation mode" msgstr "" #: v2v/v2v.ml:238 msgid "Set output format" msgstr "" #: v2v/v2v.ml:232 msgid "Set output mode (default: libvirt)" msgstr "" #: v2v/v2v.ml:246 msgid "Set output storage location" msgstr "" #: common/mlcustomize/customize_cmdline.ml:476 msgid "Set password crypto" msgstr "" #: common/mltools/tools_utils.ml:430 msgid "Set program name" msgstr "" #: common/mlcustomize/customize_cmdline.ml:356 msgid "Set root password" msgstr "" #: common/mlcustomize/customize_cmdline.ml:403 msgid "Set the default timezone" msgstr "" #: common/mlcustomize/customize_cmdline.ml:276 msgid "Set the hostname" msgstr "" #: inspector/inspector.ml:181 in-place/in_place.ml:188 msgid "Set the output filename" msgstr "" #: common/mlcustomize/customize_cmdline.ml:345 msgid "Set user password" msgstr "" #: common/mlcustomize/customize_run.ml:75 msgid "Setting a random seed" msgstr "" #: common/mlcustomize/customize_run.ml:354 msgid "Setting passwords" msgstr "" #: common/mlcustomize/password.ml:113 msgid "Setting random password of %s to %s" msgstr "" #: common/mlcustomize/customize_run.ml:207 msgid "Setting the hostname: %s" msgstr "" #: common/mlcustomize/customize_run.ml:90 msgid "Setting the machine ID in %s" msgstr "" #: common/mlcustomize/customize_run.ml:302 msgid "Setting the timezone: %s" msgstr "" #: v2v/v2v.ml:481 msgid "Setting up the destination: %s" msgstr "" #. in-place/in_place.ml:342 #: v2v/v2v.ml:457 open/open.ml:184 inspector/inspector.ml:310 msgid "Setting up the source: %s" msgstr "" #: v2v/v2v.ml:463 in-place/in_place.ml:348 msgid "Source guest information (--print-source option):\n" msgstr "" #: common/mltools/tools_utils.ml:422 msgid "Specify a LUKS key" msgstr "" #: common/mlcustomize/customize_cmdline.ml:392 msgid "TARFILE:REMOTEDIR" msgstr "" #: common/mlcustomize/customize_cmdline.ml:311 msgid "TARGET:LINK[:LINK..]" msgstr "" #: common/mlcustomize/customize_cmdline.ml:402 msgid "TIMEZONE" msgstr "" #: v2v/v2v.ml:200 msgid "" "The --in-place option has been replaced by the ‘virt-v2v-in-place’ program" msgstr "" #: output/output_qemu.ml:251 msgid "" "The Virt machine has no support for IDE. Please report a bug for virt-v2v -- " "refer to virt-v2v(1) section \"BUGS\"." msgstr "" #: output/output_qemu.ml:272 msgid "" "The Virt machine has no support for floppies. Please report a bug for virt-" "v2v -- refer to virt-v2v(1) section \"BUGS\"." msgstr "" #: lib/create_ovf.ml:785 msgid "" "This guest required a password for connection to its display, but this is " "not supported by oVirt. Therefore the converted guest’s display will not " "require a separate password to connect." msgstr "" #: input/input_vmx.ml:111 msgid "" "This transport does not support guests with snapshots. Either collapse the " "snapshots for this guest and try the conversion again, or use one of the " "alternate conversion methods described in virt-v2v-input-vmware(1) section " "\"NOTES\"." msgstr "" #: common/mlcustomize/customize_cmdline.ml:415 msgid "Truncate a file to zero size" msgstr "" #: common/mlcustomize/customize_run.ml:294 msgid "Truncating: %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:192 msgid "UID:GID:PATH" msgstr "" #: common/mlcustomize/customize_cmdline.ml:339 msgid "USER:SELECTOR" msgstr "" #: common/mlcustomize/customize_cmdline.ml:380 msgid "USER[:SELECTOR]" msgstr "" #: common/mlcustomize/customize_cmdline.ml:432 msgid "Uninstall package(s)" msgstr "" #: common/mlcustomize/customize_run.ml:311 msgid "Uninstalling packages: %s" msgstr "" #: common/mlcustomize/customize_run.ml:290 msgid "Unpack tar file: %s to %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:438 msgid "Update packages" msgstr "" #: common/mlcustomize/customize_run.ml:316 msgid "Updating packages" msgstr "" #: common/mlcustomize/customize_cmdline.ml:449 msgid "Upload local file to destination" msgstr "" #: common/mlcustomize/customize_run.ml:321 msgid "Uploading: %s to %s" msgstr "" #: common/mltools/tools_utils.ml:391 msgid "Use ANSI colour sequences even if not tty" msgstr "" #. in-place/in_place.ml:180 #: v2v/v2v.ml:220 open/open.ml:84 inspector/inspector.ml:169 msgid "Use password from file to connect to input hypervisor" msgstr "" #: v2v/v2v.ml:244 msgid "Use password from file to connect to output hypervisor" msgstr "" #: v2v/v2v.ml:224 msgid "Use virt-v2v-in-place instead" msgstr "" #: common/mltools/tools_utils.ml:392 msgid "Wrap log messages even if not tty" msgstr "" #: common/mlcustomize/customize_cmdline.ml:460 msgid "Write file" msgstr "" #: common/mlcustomize/customize_run.ml:346 msgid "Writing: %s" msgstr "" #: lib/YAML.ml:167 msgid "" "YAML block contains newline character. This should not happen, please " "report a bug against virt-v2v." msgstr "" #: output/output_libvirt.ml:96 msgid "" "a libvirt domain called ‘%s’ already exists on the target.\n" "\n" "If using virt-v2v directly, use the ‘-on’ option to select a different name. " "Or delete the existing domain on the target using the ‘virsh undefine’ " "command.\n" "\n" "If using virt-p2v, select a different ‘Name’ in the ‘Target properties’. Or " "delete the existing domain on the target using the ‘virsh undefine’ command." msgstr "" #: common/mlcustomize/append_line.ml:44 msgid "append_line: %s is not a file" msgstr "" #: input/input_libvirt.ml:206 msgid "" "bad checksum for disk %d/%d\n" "Expected checksum: %s\n" "Actual checksum: %s" msgstr "" #: lib/libvirt_utils.ml:59 msgid "cannot find libvirt domain ‘%s’: %s" msgstr "" #: lib/libvirt_utils.ml:96 msgid "" "cannot find libvirt pool ‘%s’: %s\n" "\n" "Use ‘virsh pool-list --all’ to list all available pools, and ‘virsh pool-" "dumpxml ’ to display details about a particular pool.\n" "\n" "To set the pool which virt-v2v uses, add the ‘-os ’ option." msgstr "" #: lib/libvirt_utils.ml:110 msgid "cannot find libvirt volume ‘%s’: %s" msgstr "" #: common/mlcustomize/firstboot.ml:235 msgid "" "cannot finish firstboot installation by running ‘%s’ because host cpu (%s) " "and guest arch (%s) are not compatible. The firstboot service may not run " "at boot." msgstr "" #: output/output_libvirt.ml:180 msgid "cannot get libvirt domain capabilities: %s" msgstr "" #: output/output_libvirt.ml:85 msgid "cannot get libvirt hypervisor capabilities: %s" msgstr "" #: v2v/v2v.ml:105 inspector/inspector.ml:95 in-place/in_place.ml:102 msgid "cannot parse --mac \"%s\" parameter" msgstr "" #: v2v/v2v.ml:129 inspector/inspector.ml:119 in-place/in_place.ml:126 msgid "cannot parse --mac ip %s: doesn’t look like “%s” is an IP address" msgstr "" #: v2v/v2v.ml:143 inspector/inspector.ml:133 in-place/in_place.ml:140 msgid "cannot parse --mac ip prefix length field as an integer: %s" msgstr "" #: common/mlcustomize/guest_packages.ml:29 msgid "" "cannot use ‘%s’ because no package manager has been detected for this guest " "OS.\n" "\n" "If this guest OS is a common one with ordinary package management then this " "may have been caused by a failure of libguestfs inspection.\n" "\n" "For OSes such as Windows that lack package management, this is not " "possible. Try using one of the ‘--firstboot*’ flags instead (described in " "the virt-customize(1) manual)." msgstr "" #: output/output_ovirt.ml:91 msgid "" "cannot write files to the NFS server as %d:%d, even though we appear to be " "running as root. This probably means the NFS client or idmapd is not " "configured properly.\n" "\n" "You will have to chown the files that virt-v2v creates after the run, " "otherwise oVirt will not be able to import the VM." msgstr "" #: output/output_ovirt.ml:99 msgid "" "cannot write files to the NFS server as %d:%d. You might want to stop virt-" "v2v (^C) and rerun it as root." msgstr "" #: common/mlcustomize/customize_cmdline.ml:508 msgid "command '%s' cannot be used in command files, see the man page" msgstr "" #: common/mlcustomize/customize_cmdline.ml:525 msgid "command '%s' not valid, see the man page" msgstr "" #: common/mldrivers/linux_bootloaders.ml:318 msgid "could not add grub2 serial console (ignored)" msgstr "" #: input/ssh.ml:52 msgid "" "could not copy the VMX file from the remote server, see earlier error " "messages" msgstr "" #: output/output_libvirt.ml:211 msgid "" "could not define libvirt domain: %s.\n" "The libvirt XML is still available in ‘%s’. Try running ‘virsh -c %s define " "%s’ yourself instead." msgstr "" #: common/mldrivers/linux_bootloaders.ml:221 msgid "could not determine a way to update the configuration of Grub2" msgstr "" #: input/input_vddk.ml:243 msgid "" "could not fetch thumbprint from the server, you mus use ‘-io vddk-" "thumbprint=XX:XX...’" msgstr "" #: common/mldrivers/linux_bootloaders.ml:376 msgid "could not find bootloader mount point (%s): %s" msgstr "" #: common/mldrivers/windows_drivers.ml:91 msgid "" "could not find registry entry " "HKEY_LOCAL_MACHINE\\SYSTEM\\DriverDatabase\\DeviceIds in this Windows " "guest. It may be either a very old or very new version of Windows that we " "cannot process." msgstr "" #: common/mlcustomize/firstboot.ml:232 msgid "" "could not finish firstboot installation by running ‘%s’ because the command " "failed: %s" msgstr "" #. input/input_vcenter_https.ml:94 #: input/select_input.ml:66 input/input_xen_ssh.ml:71 input/input_vddk.ml:151 msgid "could not parse '-ic %s'. Original error message was: %s" msgstr "" #: input/parse_libvirt_xml.ml:407 input/parse_libvirt_xml.ml:54 msgid "could not parse device name ‘%s’ from the source libvirt XML" msgstr "" #: input/OVF.ml:168 msgid "could not parse disk rasd:HostResource from OVF document" msgstr "" #: input/input_ova.ml:98 msgid "could not parse ovf:Name from OVF document" msgstr "" #: output/output_ovirt.ml:247 msgid "" "could not read the %s specified by the '-os %s' parameter on the command " "line. Is it really an OVirt %s? The original error is: %s" msgstr "" #: common/mldrivers/linux_bootloaders.ml:336 msgid "" "could not rebuild grub2 configuration file (%s). This may mean that grub " "output will not be sent to the serial port, but otherwise should be " "harmless. Original error message: %s" msgstr "" #: output/output_libvirt.ml:156 msgid "could not refresh libvirt pool ‘%s’: %s" msgstr "" #: common/mldrivers/linux_bootloaders.ml:320 msgid "could not remove grub2 serial console (ignored)" msgstr "" #: common/mltools/registry.ml:93 msgid "" "decode_utf16le: Windows UTF16-LE string contains non-7-bit characters. This " "is a bug in %s, please report it." msgstr "" #: common/mltools/registry.ml:87 msgid "" "decode_utf16le: Windows string does not appear to be in UTF16-LE encoding. " "This could be a bug in %s." msgstr "" #: common/mldrivers/linux_bootloaders.ml:126 msgid "didn't find grub entry for kernel %s" msgstr "" #: input/input_disk.ml:150 msgid "disks on the command line have mixed formats" msgstr "" #: input/parse_libvirt_xml.ml:194 msgid "display in the input libvirt XML was ignored" msgstr "" #: output/output_qemu.ml:147 msgid "don’t know how to convert UEFI guests for architecture %s" msgstr "" #: common/mldrivers/linux.ml:158 msgid "don’t know how to find file owner using %s" msgstr "" #: common/mldrivers/linux.ml:89 msgid "don’t know how to get list of files from package using %s" msgstr "" #: common/mltools/curl.ml:82 msgid "downloading %s" msgstr "" #: lib/networks.ml:84 msgid "" "duplicate --mac parameter. Duplicate mappings specified for MAC address %s." msgstr "" #: lib/networks.ml:102 msgid "" "duplicate -b/--bridge parameter. Duplicate mappings specified for bridge %s." msgstr "" #: lib/networks.ml:108 msgid "duplicate -b/--bridge parameter. Only one default mapping is allowed." msgstr "" #: lib/networks.ml:90 msgid "" "duplicate -n/--network parameter. Duplicate mappings specified for network " "%s." msgstr "" #: lib/networks.ml:96 msgid "duplicate -n/--network parameter. Only one default mapping is allowed." msgstr "" #: input/OVF.ml:143 msgid "error parsing disk fileRef" msgstr "" #: input/input_ova.ml:124 msgid "error uncompressing %s, see earlier error messages" msgstr "" #: input/OVA.ml:210 input/OVA.ml:112 msgid "error unpacking %s, see earlier error messages" msgstr "" #: common/mltools/tools_utils.ml:248 msgid "exception: %s" msgstr "" #: common/mltools/tools_utils.ml:455 msgid "exited with error %d" msgstr "" #: lib/utils.ml:34 msgid "exited with non-zero error code %d" msgstr "" #: input/input_disk.ml:147 msgid "expected >= 1 disk name on the command line" msgstr "" #: common/mltools/xpath_helpers.ml:36 msgid "" "expecting XML expression to return an integer (expression: %s, matching " "string: %s)" msgstr "" #: common/mltools/tools_utils.ml:440 msgid "external command" msgstr "" #: output/output_ovirt_upload.ml:265 msgid "failed server prechecks, see earlier errors" msgstr "" #: output/output_ovirt_upload.ml:507 msgid "failed to create virtual machine, see earlier errors" msgstr "" #: output/output_ovirt_upload.ml:479 msgid "failed to finalize the transfers, see earlier errors" msgstr "" #: common/mldrivers/linux_bootloaders.ml:208 msgid "failed to find grub2-mkconfig binary (but Grub2 was detected on guest)" msgstr "" #: input/OVA.ml:461 msgid "failed to parse line returned by tar: %S" msgstr "" #: output/output_ovirt_upload.ml:394 msgid "failed to start transfer, see earlier errors" msgstr "" #: output/output_ovirt_upload.ml:311 msgid "failed vmchecks, see earlier errors" msgstr "" #: common/mltools/tools_utils.ml:239 msgid "failure: %s" msgstr "" #: input/input_ova.ml:134 msgid "file ‘%s’ not found in the ova" msgstr "" #: common/mlcustomize/firstboot.ml:143 msgid "" "firstboot: unknown version for old firstboot.service file %s (md5=%s), it " "will not be removed" msgstr "" #: common/mltools/tools_utils.ml:258 msgid "generated by %s %s" msgstr "" #: output/create_libvirt_xml.ml:39 msgid "get_osinfo_id: unknown guest operating system: %s" msgstr "" #: output/output_glance.ml:66 msgid "" "glance: glance client is not installed or set up correctly. You may need to " "set environment variables or source a script to enable authentication. See " "preceding messages for details." msgstr "" #: output/output_glance.ml:139 msgid "glance: image upload to glance failed, see earlier errors" msgstr "" #: common/mlcustomize/firstboot.ml:386 common/mlcustomize/firstboot.ml:164 msgid "guest type %s is not supported" msgstr "" #: common/mlcustomize/firstboot.ml:413 msgid "guest type %s/%s is not supported" msgstr "" #: common/mltools/tools_utils.ml:749 msgid "" "host (%s/%s) and guest (%s/%s) are not compatible, so you cannot use command " "line options that involve running commands in the guest. Use --firstboot " "scripts instead." msgstr "" #: common/mlcustomize/customize_run.ml:209 msgid "hostname could not be set for this type of guest" msgstr "" #: common/mldrivers/linux_kernels.ml:342 msgid "ignoring kernel %s in bootloader, as it does not exist." msgstr "" #: output/output_vdsm.ml:160 msgid "image directory (%s) does not exist or is not a directory" msgstr "" #: input/parse_libvirt_xml.ml:81 msgid "in the libvirt XML metadata, is missing or empty" msgstr "" #: input/parse_libvirt_xml.ml:87 msgid "in the libvirt XML metadata, is missing or empty" msgstr "" #: input/input_vcenter_https.ml:52 input/input_libvirt.ml:107 msgid "in-place mode does not work with HTTP source" msgstr "" #: input/input_vddk.ml:146 msgid "in-place mode does not work with VDDK source" msgstr "" #: input/input_vmx.ml:43 msgid "in-place mode does not work with VMX source" msgstr "" #: input/input_xen_ssh.ml:50 msgid "in-place mode does not work with Xen over SSH source" msgstr "" #: output/output_kubevirt.ml:116 msgid "" "incorrect number of '-oo disk' parameters. This guest has %d disks, but the " "parameter was used %d times." msgstr "" #: input/input_xen_ssh.ml:119 msgid "" "input from xen over ssh does not support disks stored on remote block " "devices. See virt-v2v-input-xen(1) section \"Xen or ssh conversions from " "block devices\"." msgstr "" #. in-place/in_place.ml:397 #: v2v/v2v.ml:590 open/open.ml:238 inspector/inspector.ml:353 msgid "" "insufficient free space in the conversion server temporary directory %s " "(%s).\n" "\n" "Either free up space in that directory, or set the LIBGUESTFS_CACHEDIR " "environment variable to point to another directory with more than 1GB of " "free space.\n" "\n" "See also the virt-v2v(1) manual, section \"Minimum free space check in the " "host\"." msgstr "" #: common/mltools/tools_utils.ml:246 msgid "internal error: Not_found exception was thrown" msgstr "" #: common/mltools/tools_utils.ml:243 msgid "internal error: assertion failed at %s, line %d, char %d" msgstr "" #: common/mltools/tools_utils.ml:241 msgid "internal error: invalid argument: %s" msgstr "" #: common/mldrivers/linux.ml:128 msgid "internal error: is_file_owned: dpkg command returned no output" msgstr "" #: common/mldrivers/linux.ml:133 msgid "internal error: is_file_owned: unexpected output from dpkg command: %s" msgstr "" #: common/mldrivers/linux_bootloaders.ml:130 msgid "internal error: regular expression did not match ‘%s’" msgstr "" #: v2v/v2v.ml:548 msgid "internal error: wait returned unexpected process ID %d status \"%s\"" msgstr "" #: v2v/v2v.ml:114 inspector/inspector.ml:104 in-place/in_place.ml:111 msgid "invalid --mac ip option" msgstr "" #: v2v/v2v.ml:98 inspector/inspector.ml:88 in-place/in_place.ml:95 msgid "invalid -b/--bridge parameter" msgstr "" #: v2v/v2v.ml:90 inspector/inspector.ml:80 in-place/in_place.ml:87 msgid "invalid -n/--network parameter" msgstr "" #: input/parse_domain_from_vmx.ml:402 msgid "invalid cpuid.coresPerSocket < number of vCPUs" msgstr "" #. common/mlcustomize/customize_cmdline.ml:153 #. common/mlcustomize/customize_cmdline.ml:145 #: common/mlcustomize/customize_cmdline.ml:161 msgid "invalid format for '--%s' parameter, see the man page" msgstr "" #: common/mltools/tools_utils.ml:359 msgid "invalid format string for --machine-readable: %s" msgstr "" #: lib/utils.ml:279 msgid "invalid input filename (%s)" msgstr "" #: input/OVA.ml:445 msgid "invalid offset returned by tar: %S" msgstr "" #: common/mltools/tools_utils.ml:374 msgid "invalid output fd for --machine-readable: %s" msgstr "" #: common/mltools/tools_utils.ml:376 msgid "invalid output for --machine-readable: %s" msgstr "" #: common/mltools/tools_utils.ml:368 msgid "invalid output stream for --machine-readable: %s" msgstr "" #: common/mlcustomize/password.ml:73 msgid "invalid password selector ‘%s’; see the man page" msgstr "" #: input/OVA.ml:450 msgid "invalid size returned by tar: %S" msgstr "" #: common/mlcustomize/ssh_key.ml:45 msgid "invalid ssh-inject selector ‘%s’; see the man page" msgstr "" #: input/OVF.ml:82 msgid "invalid vmw:CoresPerSocket (%d) ignored" msgstr "" #: input/OVF.ml:88 msgid "invalid vmw:CoresPerSocket < number of cores" msgstr "" #: common/mldrivers/linux_bootloaders.ml:114 msgid "kernel %s is not under grub tree %s" msgstr "" #: common/mltools/tools_utils.ml:539 common/mltools/tools_utils.ml:458 msgid "killed by signal %d" msgstr "" #: common/mltools/tools_utils.ml:237 msgid "libguestfs error: %s" msgstr "" #: lib/libvirt_utils.ml:72 msgid "" "libvirt domain ‘%s’ is running or paused. Converting a live guest will " "result in corrupted output. However this is safe if you're converting from a " "snapshot" msgstr "" #: common/mlcustomize/customize_run.ml:47 msgid "log file %s: %s (ignored)" msgstr "" #: input/OVA.ml:147 msgid "" "making OVA directory public readable to work around libvirt bug https://" "bugzilla.redhat.com/1045069" msgstr "" #: input/input_ova.ml:86 msgid "manifest has a checksum for non-existent file %s (ignored)" msgstr "" #: common/mlcustomize/customize_cmdline.ml:472 msgid "md5|sha256|sha512" msgstr "" #: common/mlcustomize/customize_run.ml:119 msgid "method '%s' is no longer supported" msgstr "" #: common/mltools/JSON_parser.ml:39 msgid "missing value for the key ‘%s’" msgstr "" #: input/OVA.ml:276 msgid "more than one .ovf file was found in %s" msgstr "" #: common/mltools/JSON_parser.ml:34 msgid "more than value for the key ‘%s’" msgstr "" #: output/output_ovirt.ml:222 msgid "" "mount command failed, see earlier errors.\n" "\n" "This probably means you didn't specify the right %s path [-os %s], or else " "you need to rerun virt-v2v as root." msgstr "" #: common/mlcustomize/customize_run.ml:103 msgid "" "multiple --root-password/--password options set the password for user ‘%s’ " "twice" msgstr "" #: input/input_vddk.ml:319 msgid "" "nbdkit VDDK plugin is not installed or not working. It is required if you " "want to use VDDK.\n" "\n" "It 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 ’/%s/libvixDiskLib.so.?’.\n" "\n" "See also the virt-v2v-input-vmware(1) manual." msgstr "" #: input/input_vddk.ml:313 msgid "" "nbdkit VDDK plugin is not installed or not working. It is required if you " "want to use VDDK.\n" "\n" "The 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" "\n" "See also the virt-v2v-input-vmware(1) manual." msgstr "" #: lib/nbdkit.ml:223 msgid "nbdkit did not start up. See previous debugging messages for problems." msgstr "" #: lib/nbdkit.ml:225 msgid "" "nbdkit did not start up. There may be errors printed by nbdkit above.\n" "\n" "If the messages above are not sufficient to diagnose the problem then add " "the ‘virt-v2v -v -x’ options and examine the debugging output carefully." msgstr "" #: input/nbdkit_ssh.ml:36 input/nbdkit_curl.ml:32 input/input_vddk.ml:283 msgid "nbdkit is not installed or not working" msgstr "" #: input/input_disk.ml:92 msgid "" "nbdkit is not installed or not working. It is required to use ‘-i disk’." msgstr "" #: input/input_libvirt.ml:68 msgid "" "nbdkit is not installed or not working. It is required to use ‘-i libvirt|" "libvirtxml’." msgstr "" #: output/output.ml:178 output/output.ml:77 msgid "" "nbdkit is not installed or not working. It is required to use ‘-o disk’." msgstr "" #: output/output_null.ml:57 msgid "" "nbdkit is not installed or not working. It is required to use ‘-o null’." msgstr "" #: output/output_ovirt_upload.ml:163 msgid "" "nbdkit is not installed or not working. It is required to use ‘-o ovirt-" "upload’. See the virt-v2v-output-ovirt(1) manual." msgstr "" #: input/input_vddk.ml:285 msgid "nbdkit must be >= 1.45.11 for input from VDDK" msgstr "" #: output/output_ovirt_upload.ml:176 msgid "" "nbdkit python plugin is not installed or not working. It is required if you " "want to use ‘-o ovirt-upload’.\n" "\n" "See also the virt-v2v-output-ovirt(1) manual." msgstr "" #: output/output_ovirt_upload.ml:190 msgid "" "nbdkit was compiled without SELinux support. You will have to recompile " "nbdkit with libselinux-devel installed, or else set SELinux to Permissive " "mode while doing the conversion." msgstr "" #. input/input_libvirt.ml:76 #. input/input_disk.ml:98 #: input/nbdkit_ssh.ml:42 input/nbdkit_curl.ml:38 input/input_vddk.ml:289 msgid "nbdkit-cow-filter is not installed or not working" msgstr "" #: input/nbdkit_curl.ml:35 msgid "nbdkit-curl-plugin is not installed" msgstr "" #. input/input_disk.ml:96 #: output/output.ml:181 output/output.ml:80 input/input_libvirt.ml:72 msgid "nbdkit-file-plugin is not installed or not working" msgstr "" #: input/input_libvirt.ml:74 msgid "nbdkit-nbd-plugin is not installed or not working" msgstr "" #: output/output_null.ml:60 msgid "nbdkit-null-plugin is not installed or not working" msgstr "" #: input/nbdkit_ssh.ml:39 msgid "nbdkit-ssh-plugin is not installed" msgstr "" #: input/input_vddk.ml:287 msgid "nbdkit-vddk-plugin is not installed" msgstr "" #: lib/nbdkit.ml:56 msgid "nbdkit: unexpected version in --dump-config: %s" msgstr "" #. input/input_vcenter_https.ml:49 #. input/input_ova.ml:46 #. input/input_libvirt.ml:35 #. input/input_disk.ml:39 #: input/input_xen_ssh.ml:47 input/input_vmx.ml:40 msgid "no -io (input options) are allowed here" msgstr "" #: output/output_ovirt.ml:44 output/output_null.ml:42 #: output/output_glance.ml:44 msgid "no -oo (output options) are allowed here" msgstr "" #: input/OVA.ml:273 msgid "no .ovf file was found in %s" msgstr "" #: common/mldrivers/linux_bootloaders.ml:402 msgid "no bootloader detected" msgstr "" #: input/parse_domain_from_vmx.ml:359 msgid "no displayName key found in VMX file" msgstr "" #: input/OVF.ml:148 msgid "no href in ovf:File (id=%s)" msgstr "" #: common/mldrivers/linux_kernels.ml:194 msgid "no initrd was found in /boot matching %s %s." msgstr "" #: common/mldrivers/linux_kernels.ml:317 msgid "" "no installed kernel packages were found.\n" "\n" "This probably indicates that %s was unable to inspect this guest properly." msgstr "" #: common/mldrivers/linux_kernels.ml:354 msgid "" "no kernels were found in the bootloader configuration.\n" "\n" "This probably indicates that %s was unable to parse the bootloader " "configuration of this guest." msgstr "" #: output/python_script.ml:55 msgid "no python binary called ‘%s’ can be found on the $PATH" msgstr "" #: input/select_input.ml:106 msgid "" "no support for remote libvirt connections to '-ic %s'. The conversion may " "fail when it tries to read the source disks." msgstr "" #: lib/create_ovf.ml:1027 msgid "" "oVirt cannot emulate ‘%s’ sound cards. This sound card will be dropped from " "the output." msgstr "" #: lib/create_ovf.ml:875 lib/create_ovf.ml:512 msgid "oVirt does not support the output format ‘%s’, only raw or qcow2" msgstr "" #: output/output_openstack.ml:120 msgid "openstack: -oo server-id= not present" msgstr "" #: output/output_openstack.ml:338 msgid "" "openstack: failed to attach cinder volume to VM, see earlier error messages" msgstr "" #: output/output_openstack.ml:291 msgid "openstack: failed to create a cinder volume, see earlier error messages" msgstr "" #: output/output_openstack.ml:304 msgid "" "openstack: failed to query cinder volume status, see earlier error messages" msgstr "" #: output/output_openstack.ml:442 msgid "" "openstack: failed to set image properties on cinder volume, see earlier " "error messages" msgstr "" #: output/output_openstack.ml:199 msgid "" "openstack: precheck failed, there may be a problem with authentication, see " "earlier error messages" msgstr "" #: output/output_openstack.ml:311 msgid "" "openstack: unknown volume status \"%s\": expected \"creating\" or " "\"available\"" msgstr "" #: output/output.ml:133 msgid "output mode only supports raw or qcow2 format (format: %s)" msgstr "" #: input/OVF.ml:263 msgid "" "ova disk has an unknown VMware controller type (%d), please report this as a " "bug supplying the *.ovf file extracted from the ova" msgstr "" #: input/OVF.ml:259 msgid "" "ova disk has no parent controller, please report this as a bug supplying the " "*.ovf file extracted from the ova" msgstr "" #: output/output_ovirt_upload.ml:367 msgid "" "ovirt-upload: -of %s: Only output format ‘raw’ or ‘qcow2’ is supported. If " "the input is in a different format then force one of these output formats by " "adding either ‘-of raw’ or ‘-of qcow2’ on the command line." msgstr "" #: common/mlcustomize/password.ml:51 msgid "" "password-crypto: unknown algorithm %s, use \"md5\", \"sha256\", \"sha512\" " "or \"yescrypt\"" msgstr "" #: common/mlcustomize/password.ml:197 msgid "" "password: using insecure md5 password encryption for guest of type %s " "version %d.%d.\n" "If this is incorrect, use --password-crypto option and file a bug." msgstr "" #: common/mlcustomize/customize_run.ml:359 msgid "passwords could not be set for this type of guest" msgstr "" #: lib/qemuNBD.ml:125 msgid "" "qemu-nbd did not start up. See previous debugging messages for problems." msgstr "" #: lib/qemuNBD.ml:127 msgid "" "qemu-nbd did not start up. There may be errors printed by qemu-nbd above.\n" "\n" "If the messages above are not sufficient to diagnose the problem then add " "the ‘virt-v2v -v -x’ options and examine the debugging output carefully." msgstr "" #: lib/qemuNBD.ml:47 msgid "qemu-nbd: unexpected version in --version: %s" msgstr "" #: common/mlcustomize/customize_run.ml:77 msgid "random seed could not be set for this type of guest" msgstr "" #: input/parse_domain_from_vmx.ml:44 msgid "remote vmx ‘%s’ could not be parsed as a URI" msgstr "" #. common/mlcustomize/inject_virtio_win.ml:357 #. common/mlcustomize/inject_virtio_win.ml:352 #: common/mlcustomize/inject_virtio_win.ml:362 msgid "" "root directory ‘/’ is missing from the virtio-win directory or ISO.\n" "\n" "This should not happen and may indicate that virtio-win or virt-v2v is " "broken in some way. Please report this as a bug with a full debug log." msgstr "" #: common/mltools/tools_utils.ml:417 common/options/keys.c:264 #, c-format msgid "selector '%s': invalid TYPE" msgstr "" #: common/mltools/tools_utils.ml:409 common/options/keys.c:254 #, c-format msgid "selector '%s': missing FILENAME, or too many fields" msgstr "" #: common/mltools/tools_utils.ml:399 common/options/keys.c:232 #, c-format msgid "selector '%s': missing ID" msgstr "" #: common/mltools/tools_utils.ml:404 common/options/keys.c:245 #, c-format msgid "selector '%s': missing KEY_STRING, or too many fields" msgstr "" #: common/mltools/tools_utils.ml:401 common/options/keys.c:239 #, c-format msgid "selector '%s': missing TYPE" msgstr "" #: common/mltools/tools_utils.ml:413 common/options/keys.c:262 #, c-format msgid "selector '%s': too many fields" msgstr "" #: lib/utils.ml:35 msgid "signalled by signal %d" msgstr "" #: common/mlcustomize/guest_packages.ml:40 msgid "" "sorry, ‘%s’ with the ‘%s’ package manager has not been implemented yet.\n" "\n" "You can work around this by using one of the ‘--run*’ or ‘--firstboot*’ " "options instead (described in the virt-customize(1) manual)." msgstr "" #: common/mlcustomize/ssh_key.ml:57 msgid "ssh-inject: $HOME environment variable is not set" msgstr "" #: common/mlcustomize/ssh_key.ml:93 msgid "ssh-inject: key is an empty string" msgstr "" #: common/mlcustomize/ssh_key.ml:66 msgid "ssh-inject: no public key file found in %s" msgstr "" #: common/mlcustomize/ssh_key.ml:83 msgid "ssh-inject: public key file (%s) is empty" msgstr "" #: common/mlcustomize/ssh_key.ml:112 msgid "ssh-inject: the user %s does not exist on the guest" msgstr "" #. common/mltools/tools_utils.ml:461 #: lib/utils.ml:36 common/mltools/tools_utils.ml:542 msgid "stopped by signal %d" msgstr "" #: output/changeuid.ml:58 msgid "subprocess exited with non-zero error code %d" msgstr "" #: output/changeuid.ml:60 msgid "subprocess signalled or stopped by signal %d" msgstr "" #: lib/utils.ml:33 msgid "success" msgstr "" #: output/create_libvirt_xml.ml:297 msgid "" "target hypervisor does not support floppy devices, but floppy devices were " "found in the source guest" msgstr "" #: output/output_ovirt_upload.ml:156 msgid "" "the Python module ‘ovirtsdk4’ could not be loaded, is it installed? See " "previous messages for problems." msgstr "" #: output/output_ovirt_upload.ml:453 msgid "the cluster ‘%s’ does not support the architecture %s but %s" msgstr "" #: common/mlcustomize/customize_run.ml:59 msgid "" "the command may have failed because the network is disabled. Try either " "removing ‘--no-network’ or adding ‘--network’ on the command line." msgstr "" #: common/mltools/JSON_parser.ml:84 msgid "the key ‘%s’ was not found in a list of objects" msgstr "" #: output/output_ovirt_upload.ml:288 msgid "" "the number of ‘-oo ovirt-disk-uuid’ parameters passed on the command line " "has to match the number of guest disk images (for this guest: %d)" msgstr "" #: output/output_vdsm.ml:133 msgid "" "the number of ‘-oo vdsm-image-uuid’ and ‘-oo vdsm-vol-uuid’ parameters " "passed on the command line has to match the number of guest disk images (for " "this guest: %d)" msgstr "" #: output/output_libvirt.ml:239 msgid "the target hypervisor does not support a %s KVM guest" msgstr "" #: common/mltools/JSON_parser.ml:78 msgid "the value for key ‘%s’ is not a string as expected" msgstr "" #: common/mltools/JSON_parser.ml:50 msgid "the value for the key ‘%s’ is not a bool" msgstr "" #: common/mltools/JSON_parser.ml:45 msgid "the value for the key ‘%s’ is not a string" msgstr "" #: common/mltools/JSON_parser.ml:70 msgid "the value for the key ‘%s’ is not an integer" msgstr "" #: common/mltools/JSON_parser.ml:55 msgid "the value for the key ‘%s’ is not an object" msgstr "" #: common/mltools/JSON_parser.ml:59 msgid "the value is not an object" msgstr "" #: common/mltools/JSON_parser.ml:35 msgid "the value of the key ‘%s’ is not an object" msgstr "" #: lib/create_ovf.ml:519 msgid "" "the virtual size of the input disk %d is not an exact multiple of 512 " "bytes. The virtual size is: %Ld.\n" "\n" "This probably means something unexpected is going on, so please file a bug " "about this issue." msgstr "" #: output/output_openstack.ml:144 msgid "" "the ‘%s’ program is not available. It is needed to communicate with " "OpenStack." msgstr "" #: output/output_ovirt.ml:265 msgid "" "there are multiple UUIDs in the %s (%s). This is unexpected, and may be a " "bug in virt-v2v or OVirt." msgstr "" #: output/output_ovirt.ml:262 msgid "there are no UUIDs in the %s (%s). Is it really an OVirt %s?" msgstr "" #: common/mlcustomize/inject_virtio_win.ml:153 msgid "" "there are no virtio drivers available for this version of Windows (%d.%d %s " "%s %s). virt-v2v looks for drivers in %s\n" "\n" "The guest will be configured to use slower emulated devices." msgstr "" #: common/mlcustomize/inject_virtio_win.ml:175 msgid "" "there is no virtio block device driver for this version of Windows (%d.%d " "%s). virt-v2v looks for this driver in %s\n" "\n" "The guest will be configured to use a slower emulated device." msgstr "" #: common/mlcustomize/inject_virtio_win.ml:206 msgid "" "there is no virtio network driver for this version of Windows (%d.%d %s). " "virt-v2v looks for this driver in %s\n" "\n" "The guest will be configured to use a slower emulated device." msgstr "" #: input/parse_libvirt_xml.ml:545 msgid "this guest has a direct network interface which will be ignored" msgid_plural "this guest has direct network interfaces which will be ignored" msgstr[0] "" msgstr[1] "" #: input/parse_libvirt_xml.ml:527 msgid "this guest has a passthrough host device which will be ignored" msgid_plural "this guest has passthrough host devices which will be ignored" msgstr[0] "" msgstr[1] "" #: input/parse_libvirt_xml.ml:248 msgid "this guest has no non-removable disks" msgstr "" #: output/output.ml:65 msgid "this output module doesn't support copying more than %d disks" msgstr "" #: common/mlcustomize/timezone.ml:35 msgid "timezone '%s' does not exist, use a location like 'Europe/London'" msgstr "" #: common/mlcustomize/customize_run.ml:304 msgid "timezone could not be set for this type of guest" msgstr "" #: input/OVA.ml:318 msgid "unable to parse line from manifest file: %S" msgstr "" #: common/mltools/urandom.ml:37 msgid "unexpected end of file while reading /dev/urandom" msgstr "" #: input/input_libvirt.ml:196 msgid "unexpected output from the %s command" msgstr "" #: common/mltools/checksums.ml:58 msgid "unhandled checksum type ‘%s’" msgstr "" #: lib/types.ml:524 msgid "unknown --root option: %s" msgstr "" #: input/select_input.ml:51 msgid "unknown -i option: %s" msgstr "" #: output/select_output.ml:74 msgid "unknown -o option: %s" msgstr "" #: v2v/v2v.ml:164 msgid "unknown -oa option: %s" msgstr "" #: input/input_libvirt.ml:189 msgid "unknown method='%s'" msgstr "" #: input/OVF.ml:103 msgid "unknown Config:firmware value %s (expected \"bios\" or \"efi\")" msgstr "" #: lib/create_ovf.ml:446 lib/create_ovf.ml:247 msgid "unknown Windows 10 variant: %s (%s)" msgstr "" #: v2v/v2v.ml:319 in-place/in_place.ml:256 msgid "unknown block driver ‘--block-driver %s’" msgstr "" #: input/parse_domain_from_vmx.ml:415 msgid "unknown firmware value '%s', assuming BIOS" msgstr "" #: lib/create_ovf.ml:454 lib/create_ovf.ml:255 msgid "unknown guest operating system: %s %s %d.%d %s (%s)" msgstr "" #: v2v/v2v.ml:329 open/open.ml:132 inspector/inspector.ml:238 msgid "unknown input transport ‘-it %s’" msgstr "" #: input/parse_domain_from_vmx.ml:428 msgid "unknown sound device '%s' ignored" msgstr "" #: input/parse_libvirt_xml.ml:215 msgid "unknown sound model %s ignored" msgstr "" #: input/OVF.ml:156 msgid "unsupported compression in OVF: %s" msgstr "" #: input/input_vcenter_https.ml:123 msgid "" "vcenter: was not found in the XML. You need to " "upgrade to libvirt ≥ 1.2.20." msgstr "" #: input/vCenter.ml:79 msgid "vcenter: URL not found: %s" msgstr "" #: input/vCenter.ml:70 msgid "vcenter: incorrect username or password" msgstr "" #: input/vCenter.ml:72 msgid "" "vcenter: incorrect username or password. You might need to specify the " "username in the URI like this: [vpx|esx|..]://USERNAME@[etc]" msgstr "" #: input/vCenter.ml:84 msgid "vcenter: invalid response from server: %s" msgstr "" #: input/vCenter.ml:194 msgid "vcenter: no status code in output of ‘curl’ command." msgstr "" #: output/output_vdsm.ml:148 msgid "vdsm: invalid -os parameter does not contain a valid UUID: %s" msgstr "" #: output/output_openstack.ml:56 msgid "" "virt-v2v -oo server-id= [os-*=...]\n" "\n" "Specify the name or UUID of the conversion appliance using\n" "\n" " virt-v2v ... -o openstack -oo server-id=\n" "\n" "When virt-v2v runs it will attach the Cinder volumes to the\n" "conversion appliance, so this name or UUID must be the name\n" "of the virtual machine on OpenStack where virt-v2v is running.\n" "\n" "In addition, all usual OpenStack “os-*” parameters or “OS_*”\n" "environment variables can be used.\n" "\n" "Openstack “--os-*” parameters must be written as “virt-v2v -oo os-*”.\n" "\n" "For example:\n" "\n" " virt-v2v -oo os-username=\n" "\n" " equivalent to openstack: --os-username=\n" " or the environment variable: OS_USERNAME=\n" "\n" " virt-v2v -oo os-project-name=\n" "\n" " equivalent to openstack: --os-project-name=\n" " or the environment variable: OS_PROJECT_NAME=\n" "\n" "The os-* parameters and environment variables are optional.\n" msgstr "" #: input/parse_libvirt_xml.ml:189 msgid "" "virt-v2v does not support local displays, so in the " "input libvirt XML was ignored" msgstr "" #: input/select_input.ml:83 msgid "virt-v2v-in-place does not support remote libvirt URIs" msgstr "" #: input/parse_domain_from_vmx.ml:50 msgid "vmx URI path component looks incorrect" msgstr "" #: input/parse_domain_from_vmx.ml:48 msgid "vmx URI remote server name omitted" msgstr "" #: input/parse_domain_from_vmx.ml:46 msgid "vmx URI start with ‘ssh://...’" msgstr "" #: input/VMX.ml:313 msgid "vmx parser: cannot parse this line, ignoring: %s" msgstr "" #: input/VMX.ml:346 msgid "vmx parser: duplicate key '%s' ignored" msgstr "" #: output/output_openstack.ml:299 msgid "wait for cinder volume status to change to \"available\"" msgstr "" #: output/output_openstack.ml:360 msgid "waiting for cinder volume %s to attach to the conversion appliance" msgstr "" #: open/open.ml:136 msgid "you must supply the --run parameter" msgstr "" #: input/input_xen_ssh.ml:87 input/input_vddk.ml:189 msgid "‘-ic %s’ URL does not contain a host name field" msgstr "" #: input/input_vddk.ml:273 msgid "‘-io vddk-file=’ must be used exactly %d times" msgstr "" #: input/input_vddk.ml:297 msgid "" "‘-io vddk-libdir=%s’ does not point to a directory. See the virt-v2v-input-" "vmware(1) manual." msgstr "" #: output/output.ml:85 msgid "" "‘-oo compressed’ is only allowed when the output format is a local qcow2-" "format file, i.e. ‘-of qcow2’" msgstr "" #: input/input_vddk.ml:232 msgid "" "‘openssl’ command not found: automatically detecting thumbprint is not " "possible, so you must use ‘-io vddk-thumbprint=XX:XX...’" msgstr "" #: common/mltools/getopt-c.c:68 #, c-format msgid "Try ‘%s --help’ or consult %s(1) for more information.\n" msgstr "" #: common/mltools/getopt-c.c:187 #, c-format msgid "%s: ‘%s’ is not a numeric value.\n" msgstr "" #: common/mltools/getopt-c.c:193 #, c-format msgid "%s: %s: integer out of range\n" msgstr "" #: common/mltools/getopt-c.c:383 #, c-format msgid "%s: ‘%s’ is not allowed for -%c; allowed values are:\n" msgstr "" #: common/mltools/getopt-c.c:386 #, c-format msgid "%s: ‘%s’ is not allowed for %s%s; allowed values are:\n" msgstr "" #: common/mltools/getopt-c.c:421 #, c-format msgid "Extra parameter on the command line: ‘%s’.\n" msgstr "" #: common/options/config.c:72 #, c-format msgid "%s: line %d: error parsing configuration file: %s" msgstr "" #: common/options/decrypt.c:52 #, c-format msgid "string size overflow" msgstr "" #: common/options/decrypt.c:170 #, c-format msgid "" "'clevis_luks_unlock', needed for decrypting %s, is unavailable in this " "libguestfs version" msgstr "" #: common/options/decrypt.c:184 #, c-format msgid "" "could not find key to open LUKS encrypted %s.\n" "\n" "Try using --key on the command line.\n" "\n" "Original error: %s (%d)" msgstr "" #: common/options/inspect.c:78 #, c-format msgid "" "%s: no operating system was found on this disk\n" "\n" "If using guestfish ‘-i’ option, remove this option and instead\n" "use the commands ‘run’ followed by ‘list-filesystems’.\n" "You can then mount filesystems you want by hand using the\n" "‘mount’ or ‘mount-ro’ command.\n" "\n" "If using guestmount ‘-i’, remove this option and choose the\n" "filesystem(s) you want to see by manually adding ‘-m’ option(s).\n" "Use ‘virt-filesystems’ to see what filesystems are available.\n" "\n" "If using other virt tools, this disk image won’t work\n" "with these tools. Use the guestfish equivalent commands\n" "(see the virt tool manual page).\n" msgstr "" #: common/options/inspect.c:99 #, c-format msgid "" "%s: multi-boot operating systems are not supported\n" "\n" "If using guestfish ‘-i’ option, remove this option and instead\n" "use the commands ‘run’ followed by ‘list-filesystems’.\n" "You can then mount filesystems you want by hand using the\n" "‘mount’ or ‘mount-ro’ command.\n" "\n" "If using guestmount ‘-i’, remove this option and choose the\n" "filesystem(s) you want to see by manually adding ‘-m’ option(s).\n" "Use ‘virt-filesystems’ to see what filesystems are available.\n" "\n" "If using other virt tools, multi-boot operating systems won’t work\n" "with these tools. Use the guestfish equivalent commands\n" "(see the virt tool manual page).\n" msgstr "" #: common/options/inspect.c:161 #, c-format msgid "%s: some filesystems could not be mounted (ignored)\n" msgstr "" #: common/options/inspect.c:178 #, c-format msgid "Operating system: %s\n" msgstr "" #: common/options/inspect.c:196 #, c-format msgid "%s mounted on %s\n" msgstr "" #: common/options/keys.c:63 #, c-format msgid "Enter key or passphrase (\"%s\"): " msgstr "" #: common/options/keys.c:146 #, c-format msgid "size_t overflow" msgstr "" #: common/options/keys.c:193 #, c-format msgid "could not read key from user" msgstr "" #: common/options/options.c:283 #, c-format msgid "%s: ‘%s’ could not be mounted.\n" msgstr "" #: common/options/options.c:287 #, c-format msgid "" "%s: Check mount(8) man page to ensure options ‘%s’\n" "%s: are supported by the filesystem that is being mounted.\n" msgstr "" #: common/options/options.c:291 #, c-format msgid "%s: Did you mean to mount one of these filesystems?\n" msgstr "" #: common/options/options.c:304 #, c-format msgid "cannot determine the subvolume for %s: %s (%d)" msgstr "" #: common/options/uri.c:119 #, c-format msgid "%s: --add: could not parse URI ‘%s’\n" msgstr "" #: common/options/uri.c:130 #, c-format msgid "%s: %s: scheme of URI is NULL or empty\n" msgstr "" #: common/options/uri.c:138 #, c-format msgid "%s: %s: cannot have both a server name and a socket query parameter\n" msgstr "" #: common/utils/utils.c:107 #, c-format msgid "%s exited successfully" msgstr "" #: common/utils/utils.c:110 #, c-format msgid "%s exited with error status %d" msgstr "" #: common/utils/utils.c:114 #, c-format msgid "%s killed by signal %d (%s)" msgstr "" #: common/utils/utils.c:118 #, c-format msgid "%s stopped by signal %d (%s)" msgstr "" #: common/utils/utils.c:122 #, c-format msgid "%s exited for an unknown reason (status %d)" msgstr "" ================================================ FILE: po/uk.po ================================================ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR Red Hat Inc. # This file is distributed under the same license as the PACKAGE package. # # Translators: # Yuri Chornoivan , 2011-2014 # Yuri Chornoivan , 2013 # Yuri Chornoivan , 2015. #zanata # Yuri Chornoivan , 2016. #zanata # Yuri Chornoivan , 2017. #zanata # Yuri Chornoivan , 2018. #zanata msgid "" msgstr "" "Project-Id-Version: libguestfs 1.39.12\n" "Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?" "component=libguestfs&product=Virtualization+Tools\n" "POT-Creation-Date: 2025-02-16 17:05+0000\n" "PO-Revision-Date: 2026-02-19 19:39+0000\n" "Last-Translator: Yuri Chornoivan \n" "Language-Team: Ukrainian \n" "Language: uk\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" "X-Generator: Weblate 5.16\n" #: input/input_ova.ml:135 common/mltools/tools_utils.ml:235 msgid "%s" msgstr "%s" #: common/mltools/getopt.ml:73 msgid "" "%s\n" "Options:\n" msgstr "" "%s\n" "Параметри:\n" #: common/mltools/tools_utils.ml:695 common/mlcustomize/customize_run.ml:390 msgid "%s (ignored)" msgstr "%s (проігноровано)" #: common/mltools/checksums.ml:71 msgid "%s did not return any output" msgstr "%s не повернуто жодних даних" #: common/mlcustomize/customize_run.ml:183 msgid "%s does not exist in the guest" msgstr "%s не існує у гостьовій системі" #: output/output_ovirt.ml:275 msgid "" "%s does not exist or is not a directory.\n" "\n" "Most likely cause: Either the %s (%s) has not been attached to any Data " "Center, or the path %s is not an %s at all.\n" "\n" "You have to attach the %s to a Data Center using the oVirt user interface " "first.\n" "\n" "If you don’t know what the %s mount point should be then you can also find " "this out through the oVirt user interface." msgstr "" "%s не існує або не є каталогом.\n" "\n" "Найімовірніша причина: %s (%s) не було долучено до жодного Data Center або " "шлях %s взагалі не є %s.\n" "\n" "Спочатку вам слід долучити %s до Data Center за допомогою інтерфейсу " "користувача OVirt.\n" "\n" "Якщо вам не вдається встановити, якою має бути точка монтування %s, ви " "можете скористатися для цього інтерфейсом користувача OVirt." #: common/mlcustomize/customize_run.ml:113 msgid "%s ignored for non-Windows guest" msgstr "%s проігноровано для відмінної від Windows гостьової системи" #: common/mlcustomize/customize_run.ml:186 msgid "%s is not a regular file in the guest" msgstr "%s не є звичайним файлом у гостьовій системі" #. open/open.ml:39 #. inspector/inspector.ml:153 #. inspector/inspector.ml:40 #. in-place/in_place.ml:164 #. in-place/in_place.ml:45 #: v2v/v2v.ml:194 v2v/v2v.ml:183 v2v/v2v.ml:159 v2v/v2v.ml:44 open/open.ml:68 msgid "%s option used more than once on the command line" msgstr "у командному рядку параметр %s використано декілька разів" #: common/mltools/tools_utils.ml:231 common/mltools/tools_utils.ml:202 msgid "%s: %s" msgstr "%s: %s" #: common/mltools/tools_utils.ml:233 msgid "%s: %s: %s" msgstr "%s: %s: %s" #: common/mltools/on_exit.ml:77 msgid "" "%s: Exiting on signal %s\n" "%!" msgstr "" "%s: вихід за сигналом %s\n" "%!" #: common/mlcustomize/inject_virtio_win.ml:411 msgid "%s: cannot open virtio-win ISO file: %s" msgstr "%s: не вдалося відкрити файл ISO virtio-win: %s" #: common/mlcustomize/customize_run.ml:64 msgid "%s: command exited with an error" msgstr "%s: виконання команди завершилося повідомленням про помилку" #: v2v/v2v.ml:277 msgid "" "%s: convert a guest to use KVM\n" "\n" "virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi -os imported " "esx_guest\n" "\n" "virt-v2v -i libvirtxml guest-domain.xml -o local -os /var/tmp\n" "\n" "virt-v2v -i disk disk.img -o local -os /var/tmp\n" "\n" "There is a companion front-end called \"virt-p2v\" which comes as an\n" "ISO or CD image that can be booted on physical machines.\n" "\n" "A short summary of the options is given below. For detailed help please\n" "read the man page virt-v2v(1).\n" msgstr "" "%s: перетворити гостьову систему для використання з KVM\n" "\n" "virt-v2v -ic vpx://vcenterexample.com/Datacenter/esxi -os imported " "esx_guest\n" "\n" "virt-v2v -i libvirtxml guest-domain.xml -o local -os /var/tmp\n" "\n" "virt-v2v -i disk disk.img -o local -os /var/tmp\n" "\n" "Передбачено супутню програму з назвою «virt-p2v, яка постачається у форматі\n" "образу ISO або компакт-диска, який можна завантажити на фізичній машині.\n" "\n" "Коротке резюме щодо параметрів наведено нижче. Докладний опис можна знайти " "на\n" "сторінці підручника virt-v2v(1).\n" #: in-place/in_place.ml:217 msgid "" "%s: convert a guest to use KVM in-place\n" "\n" "Note this program modifies the guest in-place with no backup.\n" "Normally you should use virt-v2v.\n" "\n" "virt-v2v-in-place -i libvirtxml guest-domain.xml\n" "\n" "virt-v2v-in-place -i disk disk.img\n" "\n" "A short summary of the options is given below. For detailed help please\n" "read the man page virt-v2v-in-place(1).\n" msgstr "" "%s: виконати перетворення гостьової системи для використання у KVM «на " "місці»\n" "\n" "Зауважте, що ця програма змінює гостьову систему на місці без резервного " "копіювання.\n" "Зазвичай, краще скористатися virt-v2v.\n" "\n" "virt-v2v-in-place -i libvirtxml гостьовий-домен.xml\n" "\n" "virt-v2v-in-place -i disk диск.img\n" "\n" "Нижче наведено коротке резюме щодо параметрів. Докладніший опис\n" "можна знайти на сторінці man virt-v2v-in-place(1).\n" #: input/input_vddk.ml:207 msgid "%s: enter password for ‘%s’: " msgstr "%s: введіть пароль до «%s»: " #: common/mltools/tools_utils.ml:172 msgid "%s: error: %s" msgstr "%s: помилка: %s" #: inspector/inspector.ml:198 msgid "" "%s: estimate disk space needed before virt-v2v conversion\n" "\n" "virt-v2v-inspector -i disk disk.img [-O output.xml]\n" "\n" "A short summary of the options is given below. For detailed help please\n" "read the man page virt-v2v-inspector(1).\n" msgstr "" "%s: оцінка потрібного місця на диску до перетворення virt-v2v\n" "\n" "virt-v2v-inspector -i disk диск.img [-O результат.xml]\n" "\n" "Нижче наведено коротке резюме щодо параметрів. Докладні довідкові дані\n" "можна знайти на сторінці підручника (man) з virt-v2v-inspector(1).\n" #: open/open.ml:94 msgid "" "%s: open the virt-v2v input and run a program on it\n" "\n" "virt-v2v-open -i disk disk.img --run 'virt-inspector --format=raw @@'\n" "\n" "A short summary of the options is given below. For detailed help please\n" "read the man page virt-v2v-open(1).\n" msgstr "" "%s: відкрити канал вхідних даних virt-v2v і запустити у ньому програму\n" "\n" "virt-v2v-open -i disk disk.img --run 'virt-inspector --format=raw @@'\n" "\n" "Нижче наведено коротке резюме щодо параметрів. Докладні довідкові дані\n" "можна знайти на сторінці підручника (man) з virt-v2v-open(1).\n" #: common/mltools/tools_utils.ml:726 msgid "%s: operation timed out" msgstr "%s: перевищено час виконання дії" #: input/OVA.ml:127 input/OVA.ml:121 msgid "" "%s: unsupported file format\n" "\n" "Formats which we currently understand for '-i ova' are: tar (uncompressed, " "compress with gzip or xz), zip" msgstr "" "%s: непідтримуваний формат файлів\n" "\n" "У поточній версії передбачено підтримку таких форматів для «-i ova»: " "нестиснений tar (нестиснений, стиснений за допомогою gzip або xz), zip" #: common/mltools/tools_utils.ml:191 msgid "%s: warning: %s" msgstr "%s: попередження: %s" #. common/mlcustomize/customize_cmdline.ml:258 #: common/mlcustomize/customize_cmdline.ml:367 msgid "'CMD+ARGS'" msgstr "'КОМАНДА+ПАРАМЕТРИ'" #: common/mlcustomize/customize_run.ml:133 msgid "" "--append-line: line must not contain newline characters. Use the --append-" "line option multiple times to add several lines." msgstr "" "--append-line: рядок не повинен містити символів розриву рядка. " "Скористайтеся параметром --append-line потрібну кількість разів, щоб додати " "декілька рядків." #: common/mlcustomize/customize_run.ml:152 msgid "--chown: could not parse numeric UID:GID from %s:%s" msgstr "--chown: не вдалося визначити числові значення UID:GID на основі %s:%s" #: common/mlcustomize/customize_run.ml:216 msgid "" "--inject-blnsvr: blnsvr.exe not found in virtio-win source that you specified" msgstr "" "--inject-blnsvr: blnsvr.exe не знайдено у вказаному вами джерелі virtio-win" #: common/mlcustomize/customize_run.ml:225 msgid "" "--inject-qemu-ga: QEMU Guest Agent MSI not found in virtio-win source that " "you specified" msgstr "" "--inject-qemu-ga: не знайдено MSI гостьового агента QEMU у вказаному вами " "джерелі virtio-win" #: common/mlcustomize/customize_run.ml:241 msgid "" "--inject-virtio-win: virtio drivers were not found for this Windows version " "in the virtio-win source that you specified" msgstr "" "--inject-virtio-win: не знайдено драйверів virtio для цієї версії Windows у " "вказаному вами джерелі virtio-win" #: v2v/v2v.ml:146 inspector/inspector.ml:136 in-place/in_place.ml:143 msgid "--mac ip prefix length field is out of range" msgstr "" "поле довжини префікса IP-адреси --mac лежить поза припустимим діапазоном" #: v2v/v2v.ml:340 msgid "--parallel parameter must be >= 1" msgstr "параметр --parallel має бути >= 1" #: input/input_disk.ml:42 msgid "-i disk: expecting a disk image (filename) on the command line" msgstr "" "-i disk: у командному рядку мало бути вказано образ диска (назва файла)" #: input/input_xen_ssh.ml:65 msgid "-i libvirt: expecting -ic parameter for Xen over SSH connection" msgstr "" "-i libvirt: мало бути вказано параметр -ic для з'єднання із Xen з " "використанням SSH" #: input/input_vddk.ml:142 input/input_vcenter_https.ml:88 msgid "-i libvirt: expecting -ic parameter for vcenter connection" msgstr "" "-i libvirt: мало бути вказано параметр -ic для встановлення з'єднання vcenter" #: input/input_vcenter_https.ml:101 msgid "-i libvirt: expecting -ic parameter to contain vcenter server name" msgstr "-i libvirt: параметр -ic має містити назву сервера vcenter" #: input/input_vcenter_https.ml:78 msgid "-i libvirt: expecting -ip passwordfile parameter for vCenter connection" msgstr "" "-i libvirt: мало бути вказано параметр -ip файл_пароля для встановлення " "з'єднання vCenter" #. input/input_vcenter_https.ml:70 #. input/input_libvirt.ml:41 #: input/input_xen_ssh.ml:57 input/input_vddk.ml:132 msgid "-i libvirt: expecting a libvirt guest name on the command line" msgstr "" "-i libvirt: у командному рядку мало бути вказано назву гостьової системи " "libvirt" #: input/input_libvirt.ml:59 msgid "-i libvirtxml: expecting a libvirt XML filename on the command line" msgstr "" "-i libvirtxml: у командному рядку мало бути вказано назву файла XML libvirt" #: input/input_ova.ml:243 msgid "-i ova: OVF references file ‘%s’ which was not found in the OVA archive" msgstr "-i ova: файл посилань OVF «%s», якого не було знайдено в архіві OVA" #: input/input_ova.ml:78 msgid "" "-i ova: corrupt OVA: checksum of disk %s does not match manifest (actual = " "%s, expected = %s)" msgstr "" "-i ova: пошкоджений OVA: контрольна сума диска %s не відповідає маніфесту " "(маємо %s, мало бути %s)" #: input/input_ova.ml:52 msgid "-i ova: expecting an OVA file name on the command line" msgstr "-i ova: у командному рядку мало бути вказано назву файла OVA" #: input/OVA.ml:361 msgid "" "-i ova: invalid OVA file: path ‘%s’ references a file outside the archive" msgstr "" "-i ova: некоректний файл OVA: шлях «%s» посилається на файл поза архівом" #: input/input_vmx.ml:57 msgid "-i vmx: cannot use -it vddk in this input mode" msgstr "-i vmx: не можна використовувати -it vddk у цьому режимі вхідних даних" #: input/input_vmx.ml:60 msgid "-i vmx: expecting a VMX file or ssh:// URI" msgstr "-i vmx: мало бути вказано файл VMX або адресу ssh://" #: input/vCenter.ml:159 msgid "" "-ip PASSWORD_FILE parameter ignored because 'user@' was not given in the URL" msgstr "" "параметр -ip ФАЙЛ_ПАРОЛЯ проігноровано, оскільки у адресі не вказано частини " "«користувач@»" #: input/input_vddk.ml:119 msgid "-it vddk: ‘-io %s’ is not a valid input option" msgstr "-it vddk: «-io %s» не є коректним параметром вхідних даних" #: output/output.ml:54 msgid "-o %s: %s option cannot be used in this output mode" msgstr "" "-o %s: параметр %s не можна використовувати у цьому режимі виведення даних" #: output/output_disk.ml:66 msgid "-o disk: output directory was not specified, use '-os /dir'" msgstr "" "-o disk: не вказано каталогу для виведення даних, скористайтеся «-os /" "каталог»" #: output/output_libvirt.ml:59 output/output_disk.ml:56 msgid "-o disk: unknown output option ‘-oo %s’" msgstr "-o disk: невідомий параметр виведення — «-oo %s»" #: output/output_kubevirt.ml:81 msgid "-o kubevirt: output directory was not specified, use '-os /dir'" msgstr "" "-o kubevirt: не вказано каталогу для виведення даних, скористайтеся «-os /" "каталог»" #: output/output_kubevirt.ml:91 msgid "" "-o kubevirt: the guest name must contain only lowercase alphanumeric " "characters, '-' or '.', and must start and end with an alphanumeric " "character. Rerun virt-v2v with the '-on name' option to rename it." msgstr "" "-o kubevirt: назва гостьової системи має складатися лише літер нижчого " "регістру, цифр і символів «-» або «.» і має починатися і завершуватися " "літерою або цифрою. Повторно запустіть з параметром «-on назва», щоб " "перейменувати її." #: output/output_kubevirt.ml:71 msgid "-o kubevirt: unknown output option ‘-oo %s’" msgstr "-o kubevirt: невідомий параметр виведення — «-oo %s»" #: output/output_libvirt.ml:120 msgid "" "-o libvirt: output pool ‘%s’ does not have /pool/target/path element. See " "virt-v2v-output-local(1)" msgstr "" "-o libvirt: у буфері виведення «%s» немає елемента /pool/target/path. Див. " "virt-v2v-output-local(1)" #: output/output_libvirt.ml:124 msgid "" "-o libvirt: output pool ‘%s’ has type='dir' but the /pool/target/path " "element is not a local directory. See virt-v2v-output-local(1)" msgstr "" "-o libvirt: буфер виведення «%s» належить до типу «dir», але елемент /pool/" "target/path не є локальним каталогом. Див. virt-v2v-output-local(1)" #: output/output_libvirt.ml:116 msgid "" "-o libvirt: output pool ‘%s’ is not a directory (type='dir'). See virt-v2v-" "output-local(1)" msgstr "" "-o libvirt: буфер виведення «%s» не є каталогом (type='dir'). Див. virt-v2v-" "output-local(1)" #: output/output_openstack.ml:88 msgid "-o openstack mode only supports -oa sparse -of raw" msgstr "у режимі -o openstack передбачено підтримку лише -oa sparse -of raw" #: output/output_openstack.ml:115 msgid "-o openstack: unknown output option ‘-oo %s’" msgstr "-o openstack: невідомий параметр виведення — «-oo %s»" #: output/output_ovirt_upload.ml:97 msgid "-o ovirt-upload: -oo ovirt-cafile set more than once" msgstr "-o ovirt-upload: -oo ovirt-cafile встановлено декілька разів" #: output/output_ovirt_upload.ml:101 msgid "-o ovirt-upload: -oo ovirt-cluster set more than once" msgstr "-o ovirt-upload: -oo ovirt-cluster встановлено декілька разів" #: output/output_ovirt_upload.ml:112 msgid "-o ovirt-upload: invalid UUID for -oo ovirt-disk-uuid" msgstr "-o ovirt-upload: некоректне значення UUID для -oo ovirt-disk-uuid" #: output/output_ovirt_upload.ml:76 msgid "" "-o ovirt-upload: output password file was not specified, use ‘-op’ to point " "to a file which contains the password used to connect to the oVirt server" msgstr "" "-o ovirt-upload: файл пароля введення не вказано, скористайтеся «-op», що " "вказати файл, який містить пароль, який буде використано для встановлення " "з'єднання із сервером oVirt" #: output/output_ovirt_upload.ml:83 msgid "-o ovirt-upload: output storage was not specified, use ‘-os’" msgstr "-ovirt-upload: не вказано сховище виведення даних, скористайтеся «-os»" #: output/output_ovirt_upload.ml:116 msgid "-o ovirt-upload: unknown output option ‘-oo %s’" msgstr "-o ovirt-upload: невідомий параметр виведення «-oo %s»" #: output/output_ovirt_upload.ml:68 msgid "" "-o ovirt-upload: use ‘-oc’ to point to the oVirt server REST API URL, which " "is usually https://servername/ovirt-engine/api" msgstr "" "-o ovirt-upload: скористайтеся «-oc», щоб вказати адресу програмного " "інтерфейсу REST сервера oVirt. Зазвичай, такою адресою є https://" "назва_сервера/ovirt-engine/api" #: output/output_ovirt.ml:51 msgid "-o ovirt: -os option was not specified" msgstr "-o ovirt: не вказано параметр -os" #: output/output_qemu.ml:72 msgid "-o qemu: output directory was not specified, use '-os /dir'" msgstr "" "-o qemu: не вказано каталогу для виведення даних, скористайтеся «-os /" "каталог»" #: output/output_qemu.ml:63 msgid "-o qemu: unknown output option ‘-oo %s’" msgstr "-o qemu: невідомий параметр виведення — «-oo %s»" #: output/output_vdsm.ml:102 msgid "-o vdsm: -oo vdsm-image-uuid was not specified" msgstr "-o vdsm: не вказано --oo vdsm-image-uuid" #: output/output_vdsm.ml:81 msgid "-o vdsm: -oo vdsm-ovf-output set more than once" msgstr "-o vdsm: -oo vdsm-ovf-output встановлено декілька разів" #: output/output_vdsm.ml:77 msgid "-o vdsm: -oo vdsm-vm-uuid set more than once" msgstr "-o vdsm: -oo vdsm-vm-uuid встановлено декілька разів" #: output/output_vdsm.ml:110 msgid "-o vdsm: -os option was not specified" msgstr "-o vdsm: не було вказано параметр -os" #: output/output_vdsm.ml:97 msgid "-o vdsm: either -oo vdsm-vol-uuid or -oo vdsm-vm-uuid was not specified" msgstr "-o vdsm: не вказано -oo vdsm-vol-uuid або -oo vdsm-vm-uuid" #: output/output_vdsm.ml:90 msgid "-o vdsm: unknown output option ‘-oo %s’" msgstr "-o vdsm: невідомий параметр виведення — «-oo %s»" #: output/output_vdsm.ml:74 msgid "-o vdsm: unknown vdsm-compat level ‘%s’" msgstr "-o vdsm: невідомий рівень vdsm-compat «%s»" #. output/output_kubevirt.ml:84 #. output/output_disk.ml:68 #: output/output_vdsm.ml:112 output/output_qemu.ml:74 msgid "-os %s: output directory does not exist or is not a directory" msgstr "-os %s: каталогу виведення даних не існує або вказано не каталог" #: input/parse_libvirt_xml.ml:279 msgid " missing 'method' attribute, ignoring" msgstr "у пропущено атрибут «method», ігноруємо" #: input/parse_libvirt_xml.ml:291 msgid " unknown fail='%s' attribute, ignoring" msgstr "невідомий атрибут fail='%s', ігноруємо" #: input/parse_libvirt_xml.ml:370 input/parse_libvirt_xml.ml:317 msgid " was ignored" msgstr " проігноровано" #: input/parse_libvirt_xml.ml:338 msgid " with was ignored" msgstr " з проігноровано" #: input/parse_libvirt_xml.ml:365 msgid " with was ignored" msgstr " з проігноровано" #: input/parse_libvirt_xml.ml:299 msgid " element with no type attribute ignored" msgstr "проігноровано елемент без атрибута типу (type)" #: input/parse_libvirt_xml.ml:167 msgid " in the input libvirt XML was ignored" msgstr " у вхідних даних XML libvirt було проігноровано" #: input/parse_libvirt_xml.ml:414 msgid "" " was ignored because the device name could not be recognized" msgstr "" " було проігноровано, оскільки не вдалося визначити назву " "пристрою" #: input/input_vddk.ml:176 msgid "" " was not found in the output of ‘virsh dumpxml \"%s\"’. The " "most likely reason is that libvirt is too old, try upgrading libvirt to ≥ " "3.7." msgstr "" "У даних, які виведено «virsh dumpxml \"%s\"» не виявлено . " "Найімовірнішою причиною є те, що встановлена версія libvirt є застарілою. " "Спробуйте оновити libvirt до ≥ 3.7." #: common/mlcustomize/customize_cmdline.ml:305 msgid "Add package(s) to install" msgstr "Додати пакунки для встановлення" #: common/mlcustomize/customize_cmdline.ml:270 msgid "Add package(s) to install at first boot" msgstr "Додати пакунки для встановлення під час першого завантаження" #: common/mlcustomize/customize_cmdline.ml:175 msgid "Append line(s) to the file" msgstr "Дописати рядки до файла" #: common/mlcustomize/customize_run.ml:137 msgid "Appending line to %s" msgstr "Дописуємо рядок до %s" #: common/mlcustomize/customize_cmdline.ml:197 msgid "Change the owner user and group ID of a file or directory" msgstr "Змінити ідентифікатор користувача і групи власника файла або каталогу" #: common/mlcustomize/customize_cmdline.ml:186 msgid "Change the permissions of a file" msgstr "Змінити права доступу до файла" #: common/mlcustomize/customize_run.ml:155 msgid "Changing owner of %s to %d:%d" msgstr "Змінюємо власника %s на %d:%d" #: common/mlcustomize/customize_run.ml:141 msgid "Changing permissions of %s to %s" msgstr "Зміна прав доступу до %s на %s" #: input/input_libvirt.ml:174 input/input_libvirt.ml:157 msgid "Checking %s checksum of disk %d/%d" msgstr "Перевіряємо суму %s диска %d з %d" #: common/mlcustomize/customize_cmdline.ml:488 msgid "Compatibility option doing nothing" msgstr "Параметр сумісності ні на що не впливає" #: common/mlcustomize/customize_cmdline.ml:219 msgid "Copy files in disk image" msgstr "Копіювати файли на образ диска" #: common/mlcustomize/customize_cmdline.ml:397 msgid "Copy local files or directories from a tarball into image" msgstr "Копіювати локальні файли або каталоги з архіву tar до образу" #: common/mlcustomize/customize_cmdline.ml:230 msgid "Copy local files or directories into image" msgstr "Копіювати локальні файли або каталоги до образу" #: common/mlcustomize/customize_run.ml:168 msgid "Copying (in image): %s to %s" msgstr "Копіюємо (на образ): %s у %s" #: v2v/v2v.ml:518 msgid "Copying disk %d/%d" msgstr "Копіювання диска %d з %d" #: common/mlcustomize/customize_run.ml:172 msgid "Copying: %s to %s" msgstr "Копіюємо %s до %s" #: common/mlcustomize/customize_cmdline.ml:322 msgid "Create a directory" msgstr "Створити каталог" #: common/mlcustomize/customize_cmdline.ml:316 msgid "Create symbolic links" msgstr "Створювати символічні посилання" #: v2v/v2v.ml:567 msgid "Creating output metadata" msgstr "Створюємо метадані результатів" #: common/mlcustomize/customize_cmdline.ml:321 msgid "DIR" msgstr "КАТАЛОГ" #: common/mlcustomize/customize_cmdline.ml:236 msgid "Delete a file or directory" msgstr "Вилучити файл або каталог" #: common/mlcustomize/customize_run.ml:176 msgid "Deleting: %s" msgstr "Вилучаємо: %s" #: common/mltools/getopt.ml:225 msgid "Display brief help" msgstr "Показати коротку довідку" #: common/mltools/tools_utils.ml:385 msgid "Display version and exit" msgstr "Вивести версію та вийти" #: common/mlcustomize/customize_cmdline.ml:482 msgid "Do not relabel files with correct SELinux labels" msgstr "Не змінити мітки файлів на коректні мітки SELinux" #: v2v/v2v.ml:248 inspector/inspector.ml:177 in-place/in_place.ml:190 msgid "Don't trim filesystems before conversion" msgstr "" #: common/mltools/tools_utils.ml:389 msgid "Don’t print progress messages" msgstr "Не виводити повідомлень щодо поступу" #: common/mltools/tools_utils.ml:420 msgid "Don’t turn off echo for passphrases" msgstr "Не вимикати луна-повторення у паролях" #: common/mlcustomize/customize_cmdline.ml:247 msgid "Edit file using Perl expression" msgstr "Редагувати файл за допомогою виразу Perl" #: common/mlcustomize/customize_run.ml:180 msgid "Editing: %s" msgstr "Редагування: %s" #: common/mltools/tools_utils.ml:386 msgid "Enable libguestfs debugging messages" msgstr "Увімкнути діагностичні повідомлення libguestfs" #: common/mltools/tools_utils.ml:387 msgid "Enable tracing of libguestfs calls" msgstr "Увімкнути трасування викликів libguestfs" #: output/output_ovirt.ml:77 msgid "Export Storage Domain" msgstr "Експортувати домен сховища" #: open/open.ml:88 msgid "External command to run" msgstr "Зовнішня команда" #. common/mlcustomize/customize_cmdline.ml:408 #. common/mlcustomize/customize_cmdline.ml:373 #: common/mlcustomize/customize_cmdline.ml:414 msgid "FILE" msgstr "ФАЙЛ" #: common/mlcustomize/customize_cmdline.ml:455 msgid "FILE:CONTENT" msgstr "ФАЙЛ:ВМІСТ" #: common/mlcustomize/customize_cmdline.ml:444 msgid "FILE:DEST" msgstr "ФАЙЛ:ПРИЗНАЧЕННЯ" #: common/mlcustomize/customize_cmdline.ml:242 msgid "FILE:EXPR" msgstr "ФАЙЛ:ВИРАЗ" #: common/mlcustomize/customize_cmdline.ml:170 msgid "FILE:LINE" msgstr "ФАЙЛ:РЯДОК" #: common/mlcustomize/customize_cmdline.ml:203 msgid "FILENAME" msgstr "НАЗВА_ФАЙЛА" #. in-place/in_place.ml:378 #: v2v/v2v.ml:571 open/open.ml:220 inspector/inspector.ml:334 msgid "Finishing off" msgstr "Завершуємо" #: common/mlcustomize/customize_cmdline.ml:275 msgid "HOSTNAME" msgstr "НАЗВА_ВУЗЛА" #: v2v/v2v.ml:254 inspector/inspector.ml:183 in-place/in_place.ml:194 msgid "How to choose root filesystem" msgstr "Як вибрати кореневу файлову систему" #: common/mltools/tools_utils.ml:177 msgid "" "If reporting bugs, run %s with debugging enabled and include the complete " "output:\n" "\n" " %s -v -x [...]" msgstr "" "Якщо звітуєте про вади, запустіть %s з увімкненою діагностикою і включіть " "виведені дані повністю:\n" "\n" " %s -v -x [...]" #: common/mlcustomize/customize_cmdline.ml:386 msgid "Inject a public key into the guest" msgstr "Вставити відкритий ключ до гостьової системи" #: common/mlcustomize/customize_cmdline.ml:282 msgid "Inject the Balloon Server into a Windows guest" msgstr "Вставити Balloon Server до гостьової системи Windows" #: common/mlcustomize/customize_cmdline.ml:288 msgid "Inject the QEMU Guest Agent into a Windows guest" msgstr "Вставити агент гостьової системи QEMU до гостьової системи Windows" #: common/mlcustomize/customize_cmdline.ml:294 msgid "Inject virtio-win drivers into a Windows guest" msgstr "Вставити драйвери virtio-win до гостьової системи Windows" #. in-place/in_place.ml:176 #: v2v/v2v.ml:216 open/open.ml:80 inspector/inspector.ml:165 msgid "Input format" msgstr "Формат вхідних даних" #: input/input_vddk.ml:77 msgid "" "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" "\n" "Refer to nbdkit-vddk-plugin(1) and the VDDK documentation for further\n" "information on these settings.\n" msgstr "" "Параметри вхідних даних (-io), якими можна скористатися за допомогою -it " "vddk (усі інші параметри є необов'язковими):\n" "\n" " -io vddk-config=ФАЙЛ файл налаштувань VDDK\n" " -io vddk-cookie=КУКА кука VDDK\n" " -io vddk-libdir=КАТ_БІБ батьківський каталог бібліотек VDDK\n" " -io vddk-nfchostport=ПОРТ nfchostport VDDK\n" " -io vddk-file=ФАЙД перевизначити параметр nbdkit-vddk-plugin " "file=\n" " -io vddk-port=ПОРТ порт VDDK\n" " -io vddk-snapshot=SNAPSHOT-MOREF\n" " moref знімка VDDK\n" " -io vddk-thumbprint=xx:xx:xx:...\n" " відбиток сервера VDDK\n" " -io vddk-transports=РЕЖИМ:РЕЖИМ:..\n" " способи передавання даних VDDK\n" "\n" "Зверніться до документації з nbdkit-vddk-plugin(1) та VDDK, щоб дізнатися " "більше\n" "про ці параметри.\n" #: v2v/v2v.ml:222 open/open.ml:86 inspector/inspector.ml:171 msgid "Input transport" msgstr "Вхідне передавання" #: common/mlcustomize/customize_run.ml:191 msgid "Installing firstboot command: %s" msgstr "Встановлюємо програму firstboot: %s" #: common/mlcustomize/customize_run.ml:195 msgid "Installing firstboot packages: %s" msgstr "Встановлюємо пакунки firstboot: %s" #: common/mlcustomize/customize_run.ml:202 msgid "Installing firstboot script: %s" msgstr "Встановлюємо скрипт firstboot: %s" #: common/mlcustomize/customize_run.ml:248 msgid "Installing packages: %s" msgstr "Встановлюємо пакунки: %s" #: common/mlcustomize/customize_cmdline.ml:225 msgid "LOCALPATH:REMOTEDIR" msgstr "ЛОКАЛЬНИЙШЛЯХ:ВІДДАЛЕНИЙКАТАЛОГ" #. in-place/in_place.ml:174 #: v2v/v2v.ml:214 open/open.ml:78 inspector/inspector.ml:163 msgid "Libvirt URI" msgstr "Адреса libvirt" #: common/mlcustomize/customize_run.ml:255 msgid "Linking: %s -> %s" msgstr "Компонування: %s -> %s" #. common/mlcustomize/customize_cmdline.ml:287 #. common/mlcustomize/customize_cmdline.ml:281 #: common/mlcustomize/customize_cmdline.ml:293 msgid "METHOD" msgstr "МЕТОД" #: common/mltools/tools_utils.ml:426 msgid "Make output machine readable" msgstr "Зробити машину виведення придатною до читання" #: common/mlcustomize/customize_run.ml:260 msgid "Making directory: %s" msgstr "Створюємо каталог: %s" #: v2v/v2v.ml:226 inspector/inspector.ml:173 in-place/in_place.ml:182 msgid "Map NIC to network or bridge or assign static IP" msgstr "" "Пов'язати NIC із мережею або містком чи пов'язати із ним статичну IP-адресу" #: v2v/v2v.ml:210 inspector/inspector.ml:159 in-place/in_place.ml:170 msgid "Map bridge ‘in’ to ‘out’" msgstr "Відобразити місток «in» на «out»" #: v2v/v2v.ml:230 inspector/inspector.ml:179 in-place/in_place.ml:186 msgid "Map network ‘in’ to ‘out’" msgstr "Пов'язати мережу «in» із мережею «out»" #: common/mlcustomize/customize_cmdline.ml:333 msgid "Move files in disk image" msgstr "Пересунути файли на образ диска" #: common/mlcustomize/customize_run.ml:264 msgid "Moving: %s -> %s" msgstr "Пересуваємо: %s -> %s" #. input/input_vcenter_https.ml:45 #. input/input_ova.ml:35 #. input/input_libvirt.ml:233 #. input/input_libvirt.ml:221 #. input/input_disk.ml:35 #: input/input_xen_ssh.ml:43 input/input_vmx.ml:36 msgid "No input options can be used in this mode.\n" msgstr "У цьому режимі не можна використовувати параметри вхідних даних.\n" #: output/output_ovirt.ml:40 output/output_null.ml:38 #: output/output_glance.ml:40 msgid "No output options can be used in this mode.\n" msgstr "У цьому режимі не можна використовувати параметри виведення.\n" #: output/output_vdsm.ml:166 msgid "OVF (metadata) directory (%s) does not exist or is not a directory" msgstr "Каталогу OVF (метаданих) (%s) не існує або це не каталог" #: common/mlcustomize/firstboot.ml:268 msgid "" "One of rhsrvany.exe or pvvxsvc.exe is missing in %s. One of them is " "required in order to install Windows firstboot scripts. You can get one by " "building rhsrvany (https://github.com/rwmjones/rhsrvany)" msgstr "" "На «%s» не знайдено хоча б одного з файлів rhsrvany.exe або pvvxsvc.exe. " "Один із цих файлів потрібен для встановлення скриптів першого завантаження " "Windows. Отримати цей файл можна зібравши rhsrvany (https://github.com/" "rwmjones/rhsrvany)." #: v2v/v2v.ml:236 msgid "Output hypervisor connection" msgstr "Вивести з'єднання гіпервізора" #: output/output_ovirt_upload.ml:51 #, fuzzy #| msgid "" #| "Output options (-oo) which can be used with -o rhv-upload:\n" #| "\n" #| " -oo rhv-cafile=CA.PEM Set ‘ca.pem’ certificate bundle " #| "filename.\n" #| " -oo rhv-cluster=CLUSTERNAME Set RHV cluster name.\n" #| " -oo rhv-proxy Connect via oVirt Engine proxy (default: " #| "false).\n" #| " -oo rhv-verifypeer[=true|false] Verify server identity (default: " #| "false).\n" #| "\n" #| "You can override the UUIDs of the disks, instead of using autogenerated " #| "UUIDs\n" #| "after their uploads (if you do, you must supply one for each disk):\n" #| "\n" #| " -oo rhv-disk-uuid=UUID Disk UUID\n" msgid "" "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" "\n" "You can override the UUIDs of the disks, instead of using autogenerated " "UUIDs\n" "after their uploads (if you do, you must supply one for each disk):\n" "\n" " -oo ovirt-disk-uuid=UUID Disk UUID\n" msgstr "" "Параметри виведення (-oo), якими можна скористатися із -o rhv-upload:\n" "\n" " -oo rhv-cafile=CA.PEM Встановити назву файла комплекту " "сертифіката «ca.pem».\n" " -oo rhv-cluster=НАЗВА_КЛАСТЕРА Встановити назву кластера RHV.\n" " -oo rhv-proxy Встановити з'єднання з використанням проксі " "oVirt Engine (типове значення: false).\n" " -oo rhv-verifypeer[=true|false] Перевіряти ідентичність сервера (типово: " "false).\n" "\n" "Ви можете перевизначити UUID дисків, замість використання автоматично " "створених UUID\n" "після їхнього вивантаження (якщо ви зробите це, вам слід вказати один для " "кожного диска):\n" "\n" " -oo rhv-disk-uuid=UUID UUID диска\n" #: output/output_qemu.ml:44 msgid "" "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" msgstr "" "Параметри виведення (-oo), якими можна скористатися із -o qemu:\n" "\n" " -oo compressed стиснути файл виведених даних (можна використовувати " "лише з -of qcow2)\n" " -oo qemu-boot завантажити гостьову систему до qemu після " "перетворення\n" #: output/output_vdsm.ml:43 #, fuzzy #| msgid "" #| "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: " #| "rhvexp)\n" #| "\n" #| "For 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" msgid "" "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" "\n" "For 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" msgstr "" "Параметри виведення (-oo), якими можна скористатися з -o vdsm:\n" "\n" " -oo vdsm-compat=0.10|1.1 Записати qcow2 з compat=0.10|1.1\n" " (типово: 0.10)\n" " -oo vdsm-vm-uuid=UUID UUID ВМ (обов'язковий)\n" " -oo vdsm-ovf-output=КАТАЛОГ каталог метаданих OVF (обов'язковий)\n" " -oo vdsm-ovf-flavour=%s\n" " Встановити тип створеного OVF (типово: " "rhvexp)\n" "\n" "Для кожного диска вам слід вказати один з таких параметрів:\n" "\n" " -oo vdsm-image-uuid=UUID UUID каталогу образу\n" " -oo vdsm-vol-uuid=UUID UUID тому диска\n" #: output/output_disk.ml:44 msgid "" "Output options that can be used with -o disk:\n" "\n" " -oo compressed Compress the output file (used only with -of qcow2)\n" msgstr "" "Параметри виведення, якими можна скористатися з -o disk:\n" "\n" " -oo compressed стиснути файл виведення (можна використовувати лише з " "-of qcow2)\n" #: output/output_kubevirt.ml:51 #, fuzzy #| msgid "" #| "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" msgid "" "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" msgstr "" "Параметри виведення (-oo), якими можна скористатися із -o qemu:\n" "\n" " -oo compressed стиснути файл виведених даних (можна використовувати " "лише з -of qcow2)\n" " -oo qemu-boot завантажити гостьову систему до qemu після " "перетворення\n" #: output/output_libvirt.ml:47 msgid "" "Output options that can be used with -o libvirt:\n" "\n" " -oo compressed Compress the output file (used only with -of qcow2)\n" msgstr "" "Параметри виведення, якими можна скористатися з -o libvirt:\n" "\n" " -oo compressed стиснути файл виведення (можна використовувати лише з " "-of qcow2)\n" #. common/mlcustomize/customize_cmdline.ml:235 #: common/mlcustomize/customize_cmdline.ml:420 msgid "PATH" msgstr "ШЛЯХ" #: common/mlcustomize/customize_cmdline.ml:181 msgid "PERMISSIONS:FILE" msgstr "ПРАВА_ДОСТУПУ:ФАЙЛ" #. common/mlcustomize/customize_cmdline.ml:300 #. common/mlcustomize/customize_cmdline.ml:265 #: common/mlcustomize/customize_cmdline.ml:427 msgid "PKG,PKG.." msgstr "ПАКУНОК,ПАКУНОК.." #: v2v/v2v.ml:263 in-place/in_place.ml:203 msgid "Prefer 'virtio-blk' or 'virtio-scsi'" msgstr "Перевага «virtio-blk» або «virtio-scsi»" #: v2v/v2v.ml:252 in-place/in_place.ml:192 msgid "Print source and stop" msgstr "Вивести джерело і припинити обробку" #: common/mlcustomize/customize_cmdline.ml:208 msgid "Read customize commands from file" msgstr "Прочитати команди налаштовування з файла" #: common/mltools/tools_utils.ml:421 msgid "Read passphrases from stdin" msgstr "Читати паролі зі стандартного введення (stdin)" #: common/mlcustomize/customize_cmdline.ml:421 msgid "Recursively truncate all files in directory" msgstr "Рекурсивно обрізати усі файли у каталозі" #: common/mlcustomize/customize_run.ml:298 msgid "Recursively truncating: %s" msgstr "Рекурсивно обрізаємо: %s" #: v2v/v2v.ml:240 msgid "Rename guest when converting" msgstr "Перейменувати гостьову систему під час перетворення" #: common/mlcustomize/customize_cmdline.ml:259 msgid "Run command at first guest boot" msgstr "Виконати команду під час першого завантаження гостьової системи" #: common/mlcustomize/customize_cmdline.ml:368 msgid "Run command in disk image" msgstr "Виконати команду у образі диска" #: common/mlcustomize/customize_cmdline.ml:253 msgid "Run script at first guest boot" msgstr "Виконати скрипт під час першого завантаження гостьової системи" #: common/mlcustomize/customize_cmdline.ml:362 msgid "Run script in disk image" msgstr "Виконати скрипт у образі диска" #: common/mlcustomize/customize_cmdline.ml:409 msgid "Run touch on a file" msgstr "Обробити файл за допомогою touch" #: v2v/v2v.ml:250 msgid "Run up to N instances of nbdcopy in parallel" msgstr "Запускати паралельно до N екземплярів nbdcopy" #: open/open.ml:188 #, fuzzy #| msgid "external command" msgid "Running external command" msgstr "зовнішня команда" #: common/mlcustomize/customize_run.ml:307 msgid "Running touch: %s" msgstr "Виконуємо touch: %s" #. common/mlcustomize/customize_run.ml:159 #: common/mlcustomize/customize_run.ml:274 msgid "Running: %s" msgstr "Виконуємо: %s" #. common/mlcustomize/customize_cmdline.ml:252 #: common/mlcustomize/customize_cmdline.ml:361 msgid "SCRIPT" msgstr "СКРИПТ" #: common/mltools/tools_utils.ml:422 #: common/mlcustomize/customize_cmdline.ml:351 msgid "SELECTOR" msgstr "СЕЛЕКТОР" #: common/mlcustomize/customize_run.ml:363 msgid "SELinux relabelling" msgstr "Зміна міток SELinux" #. common/mlcustomize/customize_cmdline.ml:214 #: common/mlcustomize/customize_cmdline.ml:328 msgid "SOURCE:DEST" msgstr "ДЖЕРЕЛО:ПРИЗНАЧЕННЯ" #: common/mlcustomize/customize_run.ml:287 msgid "SSH key could not be injected for this type of guest" msgstr "Ключ SSH не можна вставляти до цього типу гостьових систем" #: common/mlcustomize/customize_run.ml:284 msgid "SSH key inject: %s" msgstr "Вставлення ключа SSH: %s" #: common/mlcustomize/customize_cmdline.ml:374 msgid "Scrub a file" msgstr "Витерти файл" #: common/mlcustomize/customize_cmdline.ml:466 msgid "Scrub build log file" msgstr "Витерти файл журналу збирання" #: common/mlcustomize/customize_run.ml:374 msgid "Scrubbing the log file" msgstr "Витираємо файл журналу" #: common/mlcustomize/customize_run.ml:279 msgid "Scrubbing: %s" msgstr "Витираємо: %s" #: v2v/v2v.ml:208 msgid "Set bandwidth dynamically from file" msgstr "Встановити ширину каналу динамічно з файла" #: v2v/v2v.ml:206 msgid "Set bandwidth to bits per sec" msgstr "Встановити ширину каналу у бітах за секунду" #. in-place/in_place.ml:172 #: v2v/v2v.ml:212 open/open.ml:76 inspector/inspector.ml:161 msgid "Set input mode (default: libvirt)" msgstr "Встановити режим введення даних (типовий: libvirt)" #: v2v/v2v.ml:228 inspector/inspector.ml:175 in-place/in_place.ml:184 msgid "Set memory size" msgstr "" #: v2v/v2v.ml:256 inspector/inspector.ml:185 in-place/in_place.ml:196 msgid "Set number of vCPUs" msgstr "" #. in-place/in_place.ml:178 #: v2v/v2v.ml:218 open/open.ml:82 inspector/inspector.ml:167 msgid "Set option for input mode" msgstr "Встановити варіант для режиму вхідних даних" #: v2v/v2v.ml:242 msgid "Set option for output mode" msgstr "Встановити варіант для режиму виведення" #: v2v/v2v.ml:234 msgid "Set output allocation mode" msgstr "Встановити режим отримання пам’яті для виведення даних" #: v2v/v2v.ml:238 msgid "Set output format" msgstr "встановити формат виведення даних" #: v2v/v2v.ml:232 msgid "Set output mode (default: libvirt)" msgstr "Встановити режим виведення (типовий: libvirt)" #: v2v/v2v.ml:246 msgid "Set output storage location" msgstr "Встановити розташування сховища виведених даних" #: common/mlcustomize/customize_cmdline.ml:476 msgid "Set password crypto" msgstr "Встановити алгоритм шифрування пароля" #: common/mltools/tools_utils.ml:430 msgid "Set program name" msgstr "Встановити назву програми" #: common/mlcustomize/customize_cmdline.ml:356 msgid "Set root password" msgstr "Встановити пароль root" #: common/mlcustomize/customize_cmdline.ml:403 msgid "Set the default timezone" msgstr "Встановити типовий часовий пояс" #: common/mlcustomize/customize_cmdline.ml:276 msgid "Set the hostname" msgstr "Встановити назву вузла" #: inspector/inspector.ml:181 in-place/in_place.ml:188 msgid "Set the output filename" msgstr "Встановити назву файла результатів" #: common/mlcustomize/customize_cmdline.ml:345 msgid "Set user password" msgstr "Встановити пароль користувача" #: common/mlcustomize/customize_run.ml:75 msgid "Setting a random seed" msgstr "Встановлюємо базу випадковості" #: common/mlcustomize/customize_run.ml:354 msgid "Setting passwords" msgstr "Встановлення паролів" #: common/mlcustomize/password.ml:113 msgid "Setting random password of %s to %s" msgstr "Встановлюємо випадковий пароль %s у значення %s" #: common/mlcustomize/customize_run.ml:207 msgid "Setting the hostname: %s" msgstr "Встановлюємо назву вузла: %s" #: common/mlcustomize/customize_run.ml:90 msgid "Setting the machine ID in %s" msgstr "Встановлюємо ідентифікатор комп'ютера у %s" #: common/mlcustomize/customize_run.ml:302 msgid "Setting the timezone: %s" msgstr "Встановлюємо часовий пояс: %s" #: v2v/v2v.ml:481 msgid "Setting up the destination: %s" msgstr "Налаштовуємо призначення: %s" #. in-place/in_place.ml:342 #: v2v/v2v.ml:457 open/open.ml:184 inspector/inspector.ml:310 msgid "Setting up the source: %s" msgstr "Налаштовуємо джерело: %s" #: v2v/v2v.ml:463 in-place/in_place.ml:348 msgid "Source guest information (--print-source option):\n" msgstr "Дані щодо гостьової системи джерела (параметр --print-source):\n" #: common/mltools/tools_utils.ml:422 msgid "Specify a LUKS key" msgstr "Вказати ключ LUKS" #: common/mlcustomize/customize_cmdline.ml:392 msgid "TARFILE:REMOTEDIR" msgstr "ФАЙЛTAR:ВІДДАЛЕНИЙКАТАЛОГ" #: common/mlcustomize/customize_cmdline.ml:311 msgid "TARGET:LINK[:LINK..]" msgstr "ПРИЗНАЧЕННЯ:ПОСИЛАННЯ[:ПОСИЛАННЯ..]" #: common/mlcustomize/customize_cmdline.ml:402 msgid "TIMEZONE" msgstr "ЧАСОВИЙ_ПОЯС" #: v2v/v2v.ml:200 msgid "" "The --in-place option has been replaced by the ‘virt-v2v-in-place’ program" msgstr "Параметр --in-place замінено на програму «virt-v2v-in-place»" #: output/output_qemu.ml:251 msgid "" "The Virt machine has no support for IDE. Please report a bug for virt-v2v -- " "refer to virt-v2v(1) section \"BUGS\"." msgstr "" "У віртуальній машині не передбачено підтримки комплексних середовищ " "розробки. Будь ласка, повідомте про ваду у virt-v2v — скористайтеся розділом " "«BUGS» сторінки підручника virt-v2v(1)." #: output/output_qemu.ml:272 msgid "" "The Virt machine has no support for floppies. Please report a bug for virt-" "v2v -- refer to virt-v2v(1) section \"BUGS\"." msgstr "" "У віртуальній машині не передбачено підтримки дискет. Будь ласка, повідомте " "про ваду у virt-v2v — скористайтеся розділом «BUGS» сторінки підручника virt-" "v2v(1)." #: lib/create_ovf.ml:785 #, fuzzy #| msgid "" #| "This guest required a password for connection to its display, but this is " #| "not supported by RHV. Therefore the converted guest’s display will not " #| "require a separate password to connect." msgid "" "This guest required a password for connection to its display, but this is " "not supported by oVirt. Therefore the converted guest’s display will not " "require a separate password to connect." msgstr "" "Для з’єднання з дисплеєм цієї гостьової системи слід вказати пароль, але " "передавання паролів не передбачено у RHV. Тому перетворений дисплей " "гостьової системи не вимагатиме окремого пароля для встановлення з’єднання." #: input/input_vmx.ml:111 msgid "" "This transport does not support guests with snapshots. Either collapse the " "snapshots for this guest and try the conversion again, or use one of the " "alternate conversion methods described in virt-v2v-input-vmware(1) section " "\"NOTES\"." msgstr "" "Для цього каналу передавання даних не передбачено підтримки гостьових систем " "зі знімками. Або згорніть усі знімки для цієї гостьової системи і повторіть " "спробу перетворення, або скористайтеся альтернативними способами " "перетворення, які описано у підручнику з virt-v2v-input-vmware(1), розділ " "«ПРИМІТКИ»." #: common/mlcustomize/customize_cmdline.ml:415 msgid "Truncate a file to zero size" msgstr "Обрізати файл до нульового розміру" #: common/mlcustomize/customize_run.ml:294 msgid "Truncating: %s" msgstr "Обрізаємо: %s" #: common/mlcustomize/customize_cmdline.ml:192 msgid "UID:GID:PATH" msgstr "UID:GID:ШЛЯХ" #: common/mlcustomize/customize_cmdline.ml:339 msgid "USER:SELECTOR" msgstr "КОРИСТУВАЧ:ВАРІАНТ" #: common/mlcustomize/customize_cmdline.ml:380 msgid "USER[:SELECTOR]" msgstr "КОРИСТУВАЧ[:СЕЛЕКТОР]" #: common/mlcustomize/customize_cmdline.ml:432 msgid "Uninstall package(s)" msgstr "Вилучити пакунки" #: common/mlcustomize/customize_run.ml:311 msgid "Uninstalling packages: %s" msgstr "Вилучаємо пакунки: %s" #: common/mlcustomize/customize_run.ml:290 msgid "Unpack tar file: %s to %s" msgstr "Розпаковування файла tar: %s до %s" #: common/mlcustomize/customize_cmdline.ml:438 msgid "Update packages" msgstr "Оновити пакунки" #: common/mlcustomize/customize_run.ml:316 msgid "Updating packages" msgstr "Оновлюємо пакунки" #: common/mlcustomize/customize_cmdline.ml:449 msgid "Upload local file to destination" msgstr "Вивантажити локальний файл у систему призначення" #: common/mlcustomize/customize_run.ml:321 msgid "Uploading: %s to %s" msgstr "Вивантажуємо: %s до %s" #: common/mltools/tools_utils.ml:391 msgid "Use ANSI colour sequences even if not tty" msgstr "Використовувати послідовності ANSI для кольорів, навіть якщо це не tty" #. in-place/in_place.ml:180 #: v2v/v2v.ml:220 open/open.ml:84 inspector/inspector.ml:169 msgid "Use password from file to connect to input hypervisor" msgstr "Скористатися паролем з файла для з'єднання із вхідним гіпервізором" #: v2v/v2v.ml:244 msgid "Use password from file to connect to output hypervisor" msgstr "Скористатися паролем з файла для з'єднання із вихідним гіпервізором" #: v2v/v2v.ml:224 msgid "Use virt-v2v-in-place instead" msgstr "Скористайтеся краще virt-v2v-in-place" #: common/mltools/tools_utils.ml:392 msgid "Wrap log messages even if not tty" msgstr "Переносити рядки повідомлень журналу, навіть якщо це не tty" #: common/mlcustomize/customize_cmdline.ml:460 msgid "Write file" msgstr "Записати файл" #: common/mlcustomize/customize_run.ml:346 msgid "Writing: %s" msgstr "Записуємо: %s" #: lib/YAML.ml:167 msgid "" "YAML block contains newline character. This should not happen, please " "report a bug against virt-v2v." msgstr "" "Блок YAML містить символ розриву рядка. Такого не мало трапитися. Будь " "ласка, повідомте про цю ваду у virt-v2v." #: output/output_libvirt.ml:96 msgid "" "a libvirt domain called ‘%s’ already exists on the target.\n" "\n" "If using virt-v2v directly, use the ‘-on’ option to select a different name. " "Or delete the existing domain on the target using the ‘virsh undefine’ " "command.\n" "\n" "If using virt-p2v, select a different ‘Name’ in the ‘Target properties’. Or " "delete the existing domain on the target using the ‘virsh undefine’ command." msgstr "" "у системі призначення вже є домен libvirt із назвою «%s».\n" "\n" "Якщо використовуєте virt-v2v безпосередньо, скористайтеся параметром «-on» " "для вибору іншої назви. Ви також можете вилучити наявний домен у системі " "призначення за допомогою команди «virsh undefine».\n" "\n" "Якщо використовуєте virt-p2v, виберіть інше значення «Назва» у «Властивостях " "цілі». Ви також можете вилучити наявний домен у системі призначення за " "допомогою команди «virsh undefine»." #: common/mlcustomize/append_line.ml:44 msgid "append_line: %s is not a file" msgstr "append_line: %s не є файлом" #: input/input_libvirt.ml:206 msgid "" "bad checksum for disk %d/%d\n" "Expected checksum: %s\n" "Actual checksum: %s" msgstr "" "Помилкова контрольна сума для диска %dз %d\n" "Очікувана контрольна сума: %s\n" "Справжня контрольна сума: %s" #: lib/libvirt_utils.ml:59 msgid "cannot find libvirt domain ‘%s’: %s" msgstr "не вдалося знайти домен libvirt «%s»: %s" #: lib/libvirt_utils.ml:96 msgid "" "cannot find libvirt pool ‘%s’: %s\n" "\n" "Use ‘virsh pool-list --all’ to list all available pools, and ‘virsh pool-" "dumpxml ’ to display details about a particular pool.\n" "\n" "To set the pool which virt-v2v uses, add the ‘-os ’ option." msgstr "" "не вдалося знайти буфер libvirt «%s»: %s\n" "\n" "Скористайтеся командою «virsh pool-list --all», щоб переглянути список усіх " "доступних буферів, або командою «virsh pool-dumpxml <буфер>», щоб " "переглянути параметри певного буфера.\n" "\n" "Щоб встановити буфер, який використовуватиме virt-v2v, додайте параметр «-os " "<буфер>»." #: lib/libvirt_utils.ml:110 msgid "cannot find libvirt volume ‘%s’: %s" msgstr "не вдалося знайти том libvirt «%s»: %s" #: common/mlcustomize/firstboot.ml:235 msgid "" "cannot finish firstboot installation by running ‘%s’ because host cpu (%s) " "and guest arch (%s) are not compatible. The firstboot service may not run " "at boot." msgstr "" "не вдалося завершити встановлення firstboot запуском «%s», оскільки процесор " "основної системи (%s) та архітектура гостьової системи (%s) є несумісними. " "Служба firstboot може не запуститися під час завантаження." #: output/output_libvirt.ml:180 #, fuzzy #| msgid "cannot get libvirt hypervisor capabilities: %s" msgid "cannot get libvirt domain capabilities: %s" msgstr "не вдалося отримати список можливостей гіпервізора libvirt: %s" #: output/output_libvirt.ml:85 msgid "cannot get libvirt hypervisor capabilities: %s" msgstr "не вдалося отримати список можливостей гіпервізора libvirt: %s" #: v2v/v2v.ml:105 inspector/inspector.ml:95 in-place/in_place.ml:102 msgid "cannot parse --mac \"%s\" parameter" msgstr "не вдалося обробити параметр --mac \"%s\"" #: v2v/v2v.ml:129 inspector/inspector.ml:119 in-place/in_place.ml:126 msgid "cannot parse --mac ip %s: doesn’t look like “%s” is an IP address" msgstr "Не вдалося обробити --mac ip %s: здається, «%s» не є IP-адресою" #: v2v/v2v.ml:143 inspector/inspector.ml:133 in-place/in_place.ml:140 msgid "cannot parse --mac ip prefix length field as an integer: %s" msgstr "не вдалося обробити поле довжини префікса --mac ip як ціле число: %s" #: common/mlcustomize/guest_packages.ml:29 msgid "" "cannot use ‘%s’ because no package manager has been detected for this guest " "OS.\n" "\n" "If this guest OS is a common one with ordinary package management then this " "may have been caused by a failure of libguestfs inspection.\n" "\n" "For OSes such as Windows that lack package management, this is not " "possible. Try using one of the ‘--firstboot*’ flags instead (described in " "the virt-customize(1) manual)." msgstr "" "не вдалося скористатися «%s», оскільки для цієї гостьової системи не було " "виявлено засобу для керування пакунками.\n" "\n" "Якщо ця гостьова система є типовою зі звичайним керуванням пакунками, " "причиною можуть бути проблеми із виявленням у libguestfs.\n" "\n" "Для операційних систем, подібних до Windows, де немає керування пакунками, " "це неможливо. Спробуйте натомість скористатися прапорцями «--firstboot*» (їх " "описано на сторінці підручника щодо virt-customize(1))." #: output/output_ovirt.ml:91 #, fuzzy #| msgid "" #| "cannot write files to the NFS server as %d:%d, even though we appear to " #| "be running as root. This probably means the NFS client or idmapd is not " #| "configured properly.\n" #| "\n" #| "You will have to chown the files that virt-v2v creates after the run, " #| "otherwise RHV-M will not be able to import the VM." msgid "" "cannot write files to the NFS server as %d:%d, even though we appear to be " "running as root. This probably means the NFS client or idmapd is not " "configured properly.\n" "\n" "You will have to chown the files that virt-v2v creates after the run, " "otherwise oVirt will not be able to import the VM." msgstr "" "запис файлів на сервер NFS неможливий від імені %d:%d, хоча програма і " "працювала від імені користувача root. Це, ймовірно, означає, що клієнт NFS " "або idmapd налаштовано неналежним чином.\n" "\n" "Вам доведеться змінити власника файлів, які virt-v2v створює після запуску, " "інакше RHV-M не зможе імпортувати віртуальну машину." #: output/output_ovirt.ml:99 msgid "" "cannot write files to the NFS server as %d:%d. You might want to stop virt-" "v2v (^C) and rerun it as root." msgstr "" "запис файлів на сервер NFS від імені %d:%d неможливий. Вам варто зупинити " "роботу virt-v2v (^C), а потім повторно запустити програму від імені " "користувача root." #: common/mlcustomize/customize_cmdline.ml:508 msgid "command '%s' cannot be used in command files, see the man page" msgstr "" "у командних файлах не можна використовувати команду «%s», див. сторінку man" #: common/mlcustomize/customize_cmdline.ml:525 msgid "command '%s' not valid, see the man page" msgstr "команда «%s» є некоректною, див. сторінку man" #: common/mldrivers/linux_bootloaders.ml:318 msgid "could not add grub2 serial console (ignored)" msgstr "не вдалося додати послідовну консоль grub2 (проігноровано)" #: input/ssh.ml:52 msgid "" "could not copy the VMX file from the remote server, see earlier error " "messages" msgstr "" "не вдалося скопіювати файл VMX з віддаленого сервера; див. попередні " "повідомлення про помилки" #: output/output_libvirt.ml:211 msgid "" "could not define libvirt domain: %s.\n" "The libvirt XML is still available in ‘%s’. Try running ‘virsh -c %s define " "%s’ yourself instead." msgstr "" "не вдалося визначити домен libvirt: %s.\n" "XML libvirt все ще доступний у «%s». Спробуйте замість цього віддати команду " "«virsh -c %s define %s»." #: common/mldrivers/linux_bootloaders.ml:221 msgid "could not determine a way to update the configuration of Grub2" msgstr "не вдалося визначити спосіб оновлення налаштувань Grub2" #: input/input_vddk.ml:243 msgid "" "could not fetch thumbprint from the server, you mus use ‘-io vddk-" "thumbprint=XX:XX...’" msgstr "" #: common/mldrivers/linux_bootloaders.ml:376 msgid "could not find bootloader mount point (%s): %s" msgstr "не вдалося виявити точки монтування завантажувача (%s): %s" #: common/mldrivers/windows_drivers.ml:91 msgid "" "could not find registry entry " "HKEY_LOCAL_MACHINE\\SYSTEM\\DriverDatabase\\DeviceIds in this Windows " "guest. It may be either a very old or very new version of Windows that we " "cannot process." msgstr "" "не вдалося знайти запис реєстру " "HKEY_LOCAL_MACHINE\\SYSTEM\\DriverDatabase\\DeviceIds у цій гостьовій " "системі Windows. Це може бути або дуже давня або дуже нова версія Windows, з " "якою ми не можемо працювати." #: common/mlcustomize/firstboot.ml:232 msgid "" "could not finish firstboot installation by running ‘%s’ because the command " "failed: %s" msgstr "" "не вдалося завершити встановлення firstboot за допомогою команди «%s», " "оскільки виконання цієї команди завершилося повідомленням про помилку: %s" #. input/input_vcenter_https.ml:94 #: input/select_input.ml:66 input/input_xen_ssh.ml:71 input/input_vddk.ml:151 msgid "could not parse '-ic %s'. Original error message was: %s" msgstr "" "не вдалося обробити параметр «-ic %s». Початкове повідомлення щодо помилки: " "%s" #: input/parse_libvirt_xml.ml:407 input/parse_libvirt_xml.ml:54 msgid "could not parse device name ‘%s’ from the source libvirt XML" msgstr "не вдалося обробити назву пристрою «%s» XML libvirt джерела" #: input/OVF.ml:168 msgid "could not parse disk rasd:HostResource from OVF document" msgstr "не вдалося обробити значення rasd:HostResource диска з документа OVF" #: input/input_ova.ml:98 msgid "could not parse ovf:Name from OVF document" msgstr "не вдалося обробити значення ovf:Name з документа OVF" #: output/output_ovirt.ml:247 #, fuzzy #| msgid "" #| "could not read the %s specified by the '-os %s' parameter on the command " #| "line. Is it really an OVirt or RHV-M %s? The original error is: %s" msgid "" "could not read the %s specified by the '-os %s' parameter on the command " "line. Is it really an OVirt %s? The original error is: %s" msgstr "" "не вдалося прочитати %s, вказаний за допомогою параметра «-os %s» у " "командному рядку. Чи справді це %s OVirt або RHV-M? Початкове повідомлення " "щодо помилки: %s" #: common/mldrivers/linux_bootloaders.ml:336 msgid "" "could not rebuild grub2 configuration file (%s). This may mean that grub " "output will not be sent to the serial port, but otherwise should be " "harmless. Original error message: %s" msgstr "" "не вдалося перебудувати файл налаштувань grub2 (%s). Це може значити, що " "виведені grub дані не буде надіслано до послідовного порту, але, окрім " "цього, не зашкодить. Початкове повідомлення щодо помилки: %s" #: output/output_libvirt.ml:156 msgid "could not refresh libvirt pool ‘%s’: %s" msgstr "не вдалося оновити буфер libvirt «%s»: %s" #: common/mldrivers/linux_bootloaders.ml:320 msgid "could not remove grub2 serial console (ignored)" msgstr "не вдалося вилучити послідовну консоль grub2 (проігноровано)" #: common/mltools/registry.ml:93 msgid "" "decode_utf16le: Windows UTF16-LE string contains non-7-bit characters. This " "is a bug in %s, please report it." msgstr "" "decode_utf16le: рядок Windows UTF16-LE містить символи, які не є 7-бітовими. " "Це вада у %s. Будь ласка, повідомте про неї розробникам." #: common/mltools/registry.ml:87 msgid "" "decode_utf16le: Windows string does not appear to be in UTF16-LE encoding. " "This could be a bug in %s." msgstr "" "decode_utf16le: рядок Windows, здається, не містить даних у кодуванні UTF16-" "LE. Ймовірно, це вада у %s." #: common/mldrivers/linux_bootloaders.ml:126 msgid "didn't find grub entry for kernel %s" msgstr "не знайдено запис grub для ядра %s" #: input/input_disk.ml:150 msgid "disks on the command line have mixed formats" msgstr "диски у командному рядку мають мішані формати" #: input/parse_libvirt_xml.ml:194 msgid "display in the input libvirt XML was ignored" msgstr "дисплей у вхідному XML libvirt проігноровано" #: output/output_qemu.ml:147 msgid "don’t know how to convert UEFI guests for architecture %s" msgstr "спосіб перетворення гостьових систем UEFI для архітектури %s невідомий" #: common/mldrivers/linux.ml:158 msgid "don’t know how to find file owner using %s" msgstr "" "спосіб отримання даних щодо власника файла за допомогою %s є невідомим " "програмі" #: common/mldrivers/linux.ml:89 msgid "don’t know how to get list of files from package using %s" msgstr "" "спосіб отримання списку файлів з пакунка за допомогою %s невідомий програмі" #: common/mltools/curl.ml:82 msgid "downloading %s" msgstr "отримуємо %s" #: lib/networks.ml:84 msgid "" "duplicate --mac parameter. Duplicate mappings specified for MAC address %s." msgstr "" "дублювання параметра --mac. Вказано дублікати прив'язок для MAC-адреси %s." #: lib/networks.ml:102 msgid "" "duplicate -b/--bridge parameter. Duplicate mappings specified for bridge %s." msgstr "" "дублювання параметра -b/--bridge. Вказано дублікати прив'язок для містка %s." #: lib/networks.ml:108 msgid "duplicate -b/--bridge parameter. Only one default mapping is allowed." msgstr "дублювання параметра -b/--bridge. Можлива лише одна типова прив’язка." #: lib/networks.ml:90 msgid "" "duplicate -n/--network parameter. Duplicate mappings specified for network " "%s." msgstr "" "дублювання параметра -n/--network. Вказано повторну прив’язку для мережі %s." #: lib/networks.ml:96 msgid "duplicate -n/--network parameter. Only one default mapping is allowed." msgstr "дублювання параметра -n/--network. Можлива лише одна типова прив’язка." #: input/OVF.ml:143 msgid "error parsing disk fileRef" msgstr "помилка під час спроби обробити fileRef диска" #: input/input_ova.ml:124 msgid "error uncompressing %s, see earlier error messages" msgstr "" "помилка під час розпаковування %s, див. попередні повідомлення щодо помилок" #: input/OVA.ml:210 input/OVA.ml:112 msgid "error unpacking %s, see earlier error messages" msgstr "" "помилка під час розпаковування %s, див. попередні повідомлення щодо помилок" #: common/mltools/tools_utils.ml:248 msgid "exception: %s" msgstr "виключення: %s" #: common/mltools/tools_utils.ml:455 msgid "exited with error %d" msgstr "завершено роботу з помилкою %d" #: lib/utils.ml:34 msgid "exited with non-zero error code %d" msgstr "завершено роботу з ненульовим кодом виходу %d" #: input/input_disk.ml:147 msgid "expected >= 1 disk name on the command line" msgstr "у рядку команди мало бути >= 1 назви диска" #: common/mltools/xpath_helpers.ml:36 msgid "" "expecting XML expression to return an integer (expression: %s, matching " "string: %s)" msgstr "" "очікуємо, що вираз XML поверне ціле число (вираз: %s, відповідний рядок: %s)" #: common/mltools/tools_utils.ml:440 msgid "external command" msgstr "зовнішня команда" #: output/output_ovirt_upload.ml:265 msgid "failed server prechecks, see earlier errors" msgstr "" "не пройдено попередніх перевірок сервера; див. попередні повідомлення про " "помилки" #: output/output_ovirt_upload.ml:507 msgid "failed to create virtual machine, see earlier errors" msgstr "" "не вдалося створити віртуальну машину; див. попередні повідомлення про " "помилки" #: output/output_ovirt_upload.ml:479 msgid "failed to finalize the transfers, see earlier errors" msgstr "" "не вдалося завершити перенесення; див. попередні повідомлення про помилки" #: common/mldrivers/linux_bootloaders.ml:208 msgid "failed to find grub2-mkconfig binary (but Grub2 was detected on guest)" msgstr "" "не вдалося знайти виконуваний файл grub2-mkconfig (втім, на гостьовій " "системі виявлено Grub2)" #: input/OVA.ml:461 msgid "failed to parse line returned by tar: %S" msgstr "не вдалося обробити рядок, який повернуто tar: %S" #: output/output_ovirt_upload.ml:394 msgid "failed to start transfer, see earlier errors" msgstr "" "не вдалося розпочати перенесення; див. попередні повідомлення про помилки" #: output/output_ovirt_upload.ml:311 msgid "failed vmchecks, see earlier errors" msgstr "" "не вдалося пройти перевірки віртуальної машини; див. попередні повідомлення " "про помилки" #: common/mltools/tools_utils.ml:239 msgid "failure: %s" msgstr "помилка: %s" #: input/input_ova.ml:134 msgid "file ‘%s’ not found in the ova" msgstr "файл «%s» не знайдено в ova" #: common/mlcustomize/firstboot.ml:143 msgid "" "firstboot: unknown version for old firstboot.service file %s (md5=%s), it " "will not be removed" msgstr "" "firstboot: невідома версія старого файла firstboot.service %s (md5=%s), його " "не буде вилучено" #: common/mltools/tools_utils.ml:258 msgid "generated by %s %s" msgstr "створено за допомогою %s %s" #: output/create_libvirt_xml.ml:39 #, fuzzy #| msgid "get_osinfo_id: unknown guest operating system: %s %s %d.%d %s (%s)" msgid "get_osinfo_id: unknown guest operating system: %s" msgstr "" "get_osinfo_id: невідома гостьова операційна система: %s %s %d.%d %s (%s)" #: output/output_glance.ml:66 msgid "" "glance: glance client is not installed or set up correctly. You may need to " "set environment variables or source a script to enable authentication. See " "preceding messages for details." msgstr "" "glance: клієнт glance не встановлено або не налаштовано належним чином. " "Ймовірно, вам слід встановити належні значення змінних середовища або " "створити скрипт для уможливлення розпізнавання. Див. попередні повідомлення, " "щоб дізнатися більше." #: output/output_glance.ml:139 msgid "glance: image upload to glance failed, see earlier errors" msgstr "" "glance: помилка вивантаження образу до glance, див. попередні повідомлення " "щодо помилок" #: common/mlcustomize/firstboot.ml:386 common/mlcustomize/firstboot.ml:164 msgid "guest type %s is not supported" msgstr "підтримки типу гостьової системи %s не передбачено" #: common/mlcustomize/firstboot.ml:413 msgid "guest type %s/%s is not supported" msgstr "підтримки типу гостьової системи %s/%s не передбачено" #: common/mltools/tools_utils.ml:749 msgid "" "host (%s/%s) and guest (%s/%s) are not compatible, so you cannot use command " "line options that involve running commands in the guest. Use --firstboot " "scripts instead." msgstr "" "основна система (%s/%s) і гостьова система (%s/%s) є несумісними, отже ви не " "можете скористатися параметрами командного рядка, зокрема запускати програми " "у гостьовій системі. Замість цього слід користуватися скриптами --firstboot." #: common/mlcustomize/customize_run.ml:209 msgid "hostname could not be set for this type of guest" msgstr "для цього типу гостьових систем не можна встановлювати назви вузла" #: common/mldrivers/linux_kernels.ml:342 msgid "ignoring kernel %s in bootloader, as it does not exist." msgstr "ігноруємо ядро %s у завантажувачі, оскільки його не існує." #: output/output_vdsm.ml:160 msgid "image directory (%s) does not exist or is not a directory" msgstr "каталогу образу (%s) не існує, або ж це не каталог" #: input/parse_libvirt_xml.ml:81 msgid "in the libvirt XML metadata, is missing or empty" msgstr "" "у метаданих XML libvirt пропущено або вказано порожнє " "значення" #: input/parse_libvirt_xml.ml:87 msgid "in the libvirt XML metadata, is missing or empty" msgstr "у метаданих XML libvirt пропущено або вказано порожнє значення" #: input/input_vcenter_https.ml:52 input/input_libvirt.ml:107 msgid "in-place mode does not work with HTTP source" msgstr "режим «на місці» не працює із джерелами HTTP" #: input/input_vddk.ml:146 msgid "in-place mode does not work with VDDK source" msgstr "режим «на місці» не працює із джерелами VDDK" #: input/input_vmx.ml:43 msgid "in-place mode does not work with VMX source" msgstr "режим «на місці» не працює із джерелами VMX" #: input/input_xen_ssh.ml:50 msgid "in-place mode does not work with Xen over SSH source" msgstr "режим «на місці» не працює із джерелами Xen з використанням SSH" #: output/output_kubevirt.ml:116 msgid "" "incorrect number of '-oo disk' parameters. This guest has %d disks, but the " "parameter was used %d times." msgstr "" #: input/input_xen_ssh.ml:119 msgid "" "input from xen over ssh does not support disks stored on remote block " "devices. See virt-v2v-input-xen(1) section \"Xen or ssh conversions from " "block devices\"." msgstr "" "якщо використано вхідні дані з xen з ssh, не можна скористатися підтримкою " "дисків, які зберігаються на віддалених блокових пристроях. Див. підручник з " "virt-v2v-input-xen(1), розділ «Xen or ssh conversions from block devices»." #. in-place/in_place.ml:397 #: v2v/v2v.ml:590 open/open.ml:238 inspector/inspector.ml:353 msgid "" "insufficient free space in the conversion server temporary directory %s " "(%s).\n" "\n" "Either free up space in that directory, or set the LIBGUESTFS_CACHEDIR " "environment variable to point to another directory with more than 1GB of " "free space.\n" "\n" "See also the virt-v2v(1) manual, section \"Minimum free space check in the " "host\"." msgstr "" "недостатньо вільного місця у тимчасовому каталозі сервера перетворення %s " "(%s).\n" "\n" "Або вивільніть місце у цьому каталозі, або встановіть значення для змінної " "середовища LIBGUESTFS_CACHEDIR так, щоб вона вказувала на інший каталог, де " "є понад 1 ГБ вільного місця.\n" "\n" "Також ознайомтеся із підручником з virt-v2v(1), розділ «Minimum free space " "check in the host» («Мінімальний розмір вільного місця у основній системі»)." #: common/mltools/tools_utils.ml:246 msgid "internal error: Not_found exception was thrown" msgstr "внутрішня помилка: надіслано виключення Not_found" #: common/mltools/tools_utils.ml:243 msgid "internal error: assertion failed at %s, line %d, char %d" msgstr "внутрішня помилка: помилка оцінки у %s, рядок %d, символ %d" #: common/mltools/tools_utils.ml:241 msgid "internal error: invalid argument: %s" msgstr "внутрішня помилка: некоректний аргумент: %s" #: common/mldrivers/linux.ml:128 msgid "internal error: is_file_owned: dpkg command returned no output" msgstr "" "внутрішня помилка: is_file_owned: програма dpkg не повернула ніяких даних" #: common/mldrivers/linux.ml:133 msgid "internal error: is_file_owned: unexpected output from dpkg command: %s" msgstr "" "внутрішня помилка: is_file_owned: неочікуване виведення від програми dpkg: %s" #: common/mldrivers/linux_bootloaders.ml:130 msgid "internal error: regular expression did not match ‘%s’" msgstr "внутрішня помилка: формальний вираз не відповідає «%s»" #: v2v/v2v.ml:548 msgid "internal error: wait returned unexpected process ID %d status \"%s\"" msgstr "" "внутрішня помилка: wait повернуто неочікуваний для ідентифікатора процесу %d " "стан «%s»" #: v2v/v2v.ml:114 inspector/inspector.ml:104 in-place/in_place.ml:111 msgid "invalid --mac ip option" msgstr "некоректний параметр --mac ip" #: v2v/v2v.ml:98 inspector/inspector.ml:88 in-place/in_place.ml:95 msgid "invalid -b/--bridge parameter" msgstr "некоректний параметр -b/--bridge" #: v2v/v2v.ml:90 inspector/inspector.ml:80 in-place/in_place.ml:87 msgid "invalid -n/--network parameter" msgstr "некоректний параметр -n/--network" #: input/parse_domain_from_vmx.ml:402 msgid "invalid cpuid.coresPerSocket < number of vCPUs" msgstr "" "некоректне значення cpuid.coresPerSocket < кількості віртуальних процесорів" #. common/mlcustomize/customize_cmdline.ml:153 #. common/mlcustomize/customize_cmdline.ml:145 #: common/mlcustomize/customize_cmdline.ml:161 msgid "invalid format for '--%s' parameter, see the man page" msgstr "некоректний формат параметра «--%s», див. сторінку підручника" #: common/mltools/tools_utils.ml:359 msgid "invalid format string for --machine-readable: %s" msgstr "некоректний рядок форматування для --machine-readable: %s" #: lib/utils.ml:279 msgid "invalid input filename (%s)" msgstr "некоректна назва файла вхідних даних (%s)" #: input/OVA.ml:445 msgid "invalid offset returned by tar: %S" msgstr "tar повернуто некоректний відступ: %S" #: common/mltools/tools_utils.ml:374 msgid "invalid output fd for --machine-readable: %s" msgstr "некоректне виведення fd для --machine-readable: %s" #: common/mltools/tools_utils.ml:376 msgid "invalid output for --machine-readable: %s" msgstr "некоректне виведення для --machine-readable: %s" #: common/mltools/tools_utils.ml:368 msgid "invalid output stream for --machine-readable: %s" msgstr "некоректне потік виведення для --machine-readable: %s" #: common/mlcustomize/password.ml:73 msgid "invalid password selector ‘%s’; see the man page" msgstr "некоректний варіант пароля «%s»; див. сторінку man" #: input/OVA.ml:450 msgid "invalid size returned by tar: %S" msgstr "tar повернуто некоректний розмір: %S" #: common/mlcustomize/ssh_key.ml:45 msgid "invalid ssh-inject selector ‘%s’; see the man page" msgstr "некоректний варіант ssh-inject «%s»; див. сторінку man" #: input/OVF.ml:82 msgid "invalid vmw:CoresPerSocket (%d) ignored" msgstr "некоректне значення vmw:CoresPerSocket (%d) проігноровано" #: input/OVF.ml:88 msgid "invalid vmw:CoresPerSocket < number of cores" msgstr "некоректне значення vmw:CoresPerSocket < кількості ядер" #: common/mldrivers/linux_bootloaders.ml:114 msgid "kernel %s is not under grub tree %s" msgstr "ядро %s перебуває поза ієрархією grub %s" #: common/mltools/tools_utils.ml:539 common/mltools/tools_utils.ml:458 msgid "killed by signal %d" msgstr "припинено за допомогою сигналу %d" #: common/mltools/tools_utils.ml:237 msgid "libguestfs error: %s" msgstr "помилка libguestfs: %s" #: lib/libvirt_utils.ml:72 #, fuzzy #| msgid "" #| "libvirt domain ‘%s’ is running or paused. It must be shut down in order " #| "to perform virt-v2v conversion" msgid "" "libvirt domain ‘%s’ is running or paused. Converting a live guest will " "result in corrupted output. However this is safe if you're converting from a " "snapshot" msgstr "" "Домен libvirt «%s» працює або його призупинено. Роботу домену слід завершити " "для виконання перетворення virt-v2v" #: common/mlcustomize/customize_run.ml:47 msgid "log file %s: %s (ignored)" msgstr "файл журналу %s: %s (проігноровано)" #: input/OVA.ml:147 msgid "" "making OVA directory public readable to work around libvirt bug https://" "bugzilla.redhat.com/1045069" msgstr "" "робимо каталог OVA загальнодоступним для читання, щоб обійти ваду у libvirt: " "https://bugzilla.redhat.com/1045069" #: input/input_ova.ml:86 msgid "manifest has a checksum for non-existent file %s (ignored)" msgstr "у маніфесті є контрольна сума файла, якого не існує %s (проігноровано)" #: common/mlcustomize/customize_cmdline.ml:472 msgid "md5|sha256|sha512" msgstr "md5|sha256|sha512" #: common/mlcustomize/customize_run.ml:119 #, fuzzy #| msgid "guest type %s is not supported" msgid "method '%s' is no longer supported" msgstr "підтримки типу гостьової системи %s не передбачено" #: common/mltools/JSON_parser.ml:39 msgid "missing value for the key ‘%s’" msgstr "немає значення для ключа «%s»" #: input/OVA.ml:276 msgid "more than one .ovf file was found in %s" msgstr "у %s виявлено декілька файлів .ovf" #: common/mltools/JSON_parser.ml:34 msgid "more than value for the key ‘%s’" msgstr "декілька значень для ключа «%s»" #: output/output_ovirt.ml:222 msgid "" "mount command failed, see earlier errors.\n" "\n" "This probably means you didn't specify the right %s path [-os %s], or else " "you need to rerun virt-v2v as root." msgstr "" "помилка команди монтування, див. попередні повідомлення щодо помилки.\n" "\n" "Ймовірно, це означає, що вами не вказано належного шляху %s [-os %s]. Крім " "того, можливо, вам слід повторно запустити virt-v2v від імені користувача " "root." #: common/mlcustomize/customize_run.ml:103 msgid "" "multiple --root-password/--password options set the password for user ‘%s’ " "twice" msgstr "" "параметрами --root-password/--password двічі встановлено пароль для " "користувача «%s»" #: input/input_vddk.ml:319 msgid "" "nbdkit VDDK plugin is not installed or not working. It is required if you " "want to use VDDK.\n" "\n" "It 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 ’/%s/libvixDiskLib.so.?’.\n" "\n" "See also the virt-v2v-input-vmware(1) manual." msgstr "" "Не встановлено додаток VDDK nbdkit або цей додаток є непрацездатним. Додаток " "потрібен для користування VDDK.\n" "\n" "Здається, ви вказали неправильний шлях за допомогою параметра «--io vddk-" "libdir» або ваша копію каталогу VDDK є неповною. У каталозі має бути " "бібліотека із назвою «/%s/libvixDiskLib.so.?».\n" "\n" "Див. розділ «ВХІДНІ ДАНІ З VDDK» у підручнику з virt-v2v()." #: input/input_vddk.ml:313 msgid "" "nbdkit VDDK plugin is not installed or not working. It is required if you " "want to use VDDK.\n" "\n" "The 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" "\n" "See also the virt-v2v-input-vmware(1) manual." msgstr "" "Не встановлено додаток VDDK nbdkit або цей додаток є непрацездатним. Додаток " "потрібен для використання VDDK.\n" "\n" "Додаток VDDK типово вимкнено під час збирання nbdkit. Вам слід ознайомитися " "із настановами у початковому коді nbdkit, а саме, вмістом файла plugins/vddk/" "README.VDDK, щоб дізнатися про те, як увімкнути додаток VDDK.\n" "\n" "Див. також сторінку підручника virt-v2v-input-vmware(1)." #: lib/nbdkit.ml:223 msgid "nbdkit did not start up. See previous debugging messages for problems." msgstr "" "nbdkit не запустилася. Див. попередні діагностичні повідомлення, щоб виявити " "джерело проблеми." #: lib/nbdkit.ml:225 msgid "" "nbdkit did not start up. There may be errors printed by nbdkit above.\n" "\n" "If the messages above are not sufficient to diagnose the problem then add " "the ‘virt-v2v -v -x’ options and examine the debugging output carefully." msgstr "" "nbdkit не запустилася. Можливо, повідомлення про помилки nbdkit виведено " "вище.\n" "\n" "Якщо повідомлень, виведених вище, недостатньо для визначення причини " "проблеми, додайте параметри «virt-v2v -v -x» і уважно вивчіть виведені " "діагностичні дані." #: input/nbdkit_ssh.ml:36 input/nbdkit_curl.ml:32 input/input_vddk.ml:283 msgid "nbdkit is not installed or not working" msgstr "nbdkit не встановлено або програма не працює" #: input/input_disk.ml:92 msgid "" "nbdkit is not installed or not working. It is required to use ‘-i disk’." msgstr "" "Не встановлено nbdkit або програма не працює. Програма потрібна для " "використання «-i disk»." #: input/input_libvirt.ml:68 msgid "" "nbdkit is not installed or not working. It is required to use ‘-i libvirt|" "libvirtxml’." msgstr "" "Не встановлено nbdkit або програма не працює. Програма потрібна для " "використання «-i libvirt|libvirtxml»." #: output/output.ml:178 output/output.ml:77 msgid "" "nbdkit is not installed or not working. It is required to use ‘-o disk’." msgstr "" "Не встановлено nbdkit або програма не працює. Програма потрібна для " "використання «-o disk»." #: output/output_null.ml:57 msgid "" "nbdkit is not installed or not working. It is required to use ‘-o null’." msgstr "" "Не встановлено nbdkit або програма не працює. Програма потрібна для " "використання «-o null»." #: output/output_ovirt_upload.ml:163 #, fuzzy #| msgid "" #| "nbdkit is not installed or not working. It is required to use ‘-o rhv-" #| "upload’. See the virt-v2v-output-rhv(1) manual." msgid "" "nbdkit is not installed or not working. It is required to use ‘-o ovirt-" "upload’. See the virt-v2v-output-ovirt(1) manual." msgstr "" "Не встановлено nbdkit або програма не працює. Програма потрібна для " "використання «-o rhv-upload». Див. підручник virt-v2v-output-rhv(1)." #: input/input_vddk.ml:285 msgid "nbdkit must be >= 1.45.11 for input from VDDK" msgstr "" #: output/output_ovirt_upload.ml:176 #, fuzzy #| msgid "" #| "nbdkit python plugin is not installed or not working. It is required if " #| "you want to use ‘-o rhv-upload’.\n" #| "\n" #| "See also the virt-v2v-output-rhv(1) manual." msgid "" "nbdkit python plugin is not installed or not working. It is required if you " "want to use ‘-o ovirt-upload’.\n" "\n" "See also the virt-v2v-output-ovirt(1) manual." msgstr "" "Не встановлено додаток nbdkit для python або додаток не працює. Цей додаток " "потрібне, якщо ви хочете скористатися «-o rhv-upload».\n" "\n" "Див. також підручник virt-v2v-output-rhv(1)." #: output/output_ovirt_upload.ml:190 msgid "" "nbdkit was compiled without SELinux support. You will have to recompile " "nbdkit with libselinux-devel installed, or else set SELinux to Permissive " "mode while doing the conversion." msgstr "" "nbdkit було зібрано без підтримки SELinux. Вам слід повторно зібрати nbdkit " "після встановлення пакунка libselinux-devel або встановити у SELinux режим " "допуску (Permissive) на час перетворення." #. input/input_libvirt.ml:76 #. input/input_disk.ml:98 #: input/nbdkit_ssh.ml:42 input/nbdkit_curl.ml:38 input/input_vddk.ml:289 msgid "nbdkit-cow-filter is not installed or not working" msgstr "nbdkit-cow-filter не встановлено або програма не працює" #: input/nbdkit_curl.ml:35 msgid "nbdkit-curl-plugin is not installed" msgstr "Додаток nbdkit-curl не встановлено" #. input/input_disk.ml:96 #: output/output.ml:181 output/output.ml:80 input/input_libvirt.ml:72 msgid "nbdkit-file-plugin is not installed or not working" msgstr "nbdkit-file-plugin не встановлено або програма не працює" #: input/input_libvirt.ml:74 msgid "nbdkit-nbd-plugin is not installed or not working" msgstr "nbdkit-nbd-plugin не встановлено або програма не працює" #: output/output_null.ml:60 msgid "nbdkit-null-plugin is not installed or not working" msgstr "nbdkit-null-plugin не встановлено або програма не працює" #: input/nbdkit_ssh.ml:39 msgid "nbdkit-ssh-plugin is not installed" msgstr "Додаток nbdkit-ssh не встановлено" #: input/input_vddk.ml:287 msgid "nbdkit-vddk-plugin is not installed" msgstr "Додаток nbdkit-vddk не встановлено" #: lib/nbdkit.ml:56 msgid "nbdkit: unexpected version in --dump-config: %s" msgstr "nbdkit: неочікувана версія у --dump-config: %s" #. input/input_vcenter_https.ml:49 #. input/input_ova.ml:46 #. input/input_libvirt.ml:35 #. input/input_disk.ml:39 #: input/input_xen_ssh.ml:47 input/input_vmx.ml:40 msgid "no -io (input options) are allowed here" msgstr "тут не можна використовувати -io (вхідні параметри)" #: output/output_ovirt.ml:44 output/output_null.ml:42 #: output/output_glance.ml:44 msgid "no -oo (output options) are allowed here" msgstr "тут не можна використовувати -oo (параметри виведення)" #: input/OVA.ml:273 msgid "no .ovf file was found in %s" msgstr "у %s не знайдено файла .ovf" #: common/mldrivers/linux_bootloaders.ml:402 msgid "no bootloader detected" msgstr "не виявлено завантажувача" #: input/parse_domain_from_vmx.ml:359 msgid "no displayName key found in VMX file" msgstr "у файлі VMX не виявлено ключа displayName" #: input/OVF.ml:148 msgid "no href in ovf:File (id=%s)" msgstr "немає href у ovf:File (id=%s)" #: common/mldrivers/linux_kernels.ml:194 msgid "no initrd was found in /boot matching %s %s." msgstr "у /boot не знайдено initrd, що відповідає %s %s." #: common/mldrivers/linux_kernels.ml:317 msgid "" "no installed kernel packages were found.\n" "\n" "This probably indicates that %s was unable to inspect this guest properly." msgstr "" "не знайдено встановлених пакунків ядра.\n" "\n" "Це, ймовірно, означає, що %s не вдасться вивчити належним чином гостьову " "систему." #: common/mldrivers/linux_kernels.ml:354 msgid "" "no kernels were found in the bootloader configuration.\n" "\n" "This probably indicates that %s was unable to parse the bootloader " "configuration of this guest." msgstr "" "У налаштуваннях завантажувача не знайдено записів ядер.\n" "\n" "Це, ймовірно, означає, що %s не вдалося обробити налаштування завантажувача " "цієї гостьової системи." #: output/python_script.ml:55 msgid "no python binary called ‘%s’ can be found on the $PATH" msgstr "не знайдено виконуваного файла python із назвою «%s» у $PATH" #: input/select_input.ml:106 msgid "" "no support for remote libvirt connections to '-ic %s'. The conversion may " "fail when it tries to read the source disks." msgstr "" "немає підтримки віддалених з’єднань libvirt з «-ic %s». Перетворення може " "призвести до помилок під час спроб прочитати диски джерел даних." #: lib/create_ovf.ml:1027 msgid "" "oVirt cannot emulate ‘%s’ sound cards. This sound card will be dropped from " "the output." msgstr "" "Система oVirt не здатна емулювати звукові картки «%s». Цю звукову картку " "буде викинуто з виведених даних." #: lib/create_ovf.ml:875 lib/create_ovf.ml:512 #, fuzzy #| msgid "RHV does not support the output format ‘%s’, only raw or qcow2" msgid "oVirt does not support the output format ‘%s’, only raw or qcow2" msgstr "" "У RHV не передбачено формату виведення даних «‘%s», лише формати raw та qcow2" #: output/output_openstack.ml:120 msgid "openstack: -oo server-id= not present" msgstr "openstack: немає -oo server-id=<НАЗВА|UUID>" #: output/output_openstack.ml:338 msgid "" "openstack: failed to attach cinder volume to VM, see earlier error messages" msgstr "" "openstack: не вдалося долучити том cinder до ВМ; див попередні повідомлення " "про помилки" #: output/output_openstack.ml:291 msgid "openstack: failed to create a cinder volume, see earlier error messages" msgstr "" "openstack: не вдалося створити том cinder; див. попередні повідомлення про " "помилки" #: output/output_openstack.ml:304 msgid "" "openstack: failed to query cinder volume status, see earlier error messages" msgstr "" "openstack: не вдалося опитати стан тому cinder; див. попередні повідомлення " "про помилки" #: output/output_openstack.ml:442 msgid "" "openstack: failed to set image properties on cinder volume, see earlier " "error messages" msgstr "" "openstack: не вдалося встановити властивості образу на томі cinder; див. " "попередні повідомлення про помилки" #: output/output_openstack.ml:199 msgid "" "openstack: precheck failed, there may be a problem with authentication, see " "earlier error messages" msgstr "" "openstack: не вдалося пройти попередню перевірку; можливі проблеми із " "розпізнаванням; див. попередні повідомлення про помилки" #: output/output_openstack.ml:311 msgid "" "openstack: unknown volume status \"%s\": expected \"creating\" or " "\"available\"" msgstr "" "openstack: невідомий стан тому «%s»: стан мав бути «creating» або «available»" #: output/output.ml:133 msgid "output mode only supports raw or qcow2 format (format: %s)" msgstr "" "для режиму введення передбачено підтримку лише форматів raw і qcow2 (формат: " "%s)" #: input/OVF.ml:263 msgid "" "ova disk has an unknown VMware controller type (%d), please report this as a " "bug supplying the *.ovf file extracted from the ova" msgstr "" "Диск ova має невідомий тип контролера VMware (%d). Будь ласка, повідомте про " "цю ваду, додавши файл *.ovf, видобутий з ova" #: input/OVF.ml:259 msgid "" "ova disk has no parent controller, please report this as a bug supplying the " "*.ovf file extracted from the ova" msgstr "" "Диск ova не має батьківського контролера. Будь ласка, повідомте про цю ваду, " "додавши файл *.ovf, видобутий з ova" #: output/output_ovirt_upload.ml:367 #, fuzzy #| msgid "" #| "rhv-upload: -of %s: Only output format ‘raw’ or ‘qcow2’ is supported. If " #| "the input is in a different format then force one of these output formats " #| "by adding either ‘-of raw’ or ‘-of qcow2’ on the command line." msgid "" "ovirt-upload: -of %s: Only output format ‘raw’ or ‘qcow2’ is supported. If " "the input is in a different format then force one of these output formats by " "adding either ‘-of raw’ or ‘-of qcow2’ on the command line." msgstr "" "rhv-upload: -of %s: передбачено підтримку лише форматів виведення «raw» і " "«qcow2». Якщо вхідні дані записано у іншому форматі, примусово вкажіть один " "з цих форматів виведення за допомогою додавання до командного рядка " "параметра «-of raw» або «-of qcow2»." #: common/mlcustomize/password.ml:51 msgid "" "password-crypto: unknown algorithm %s, use \"md5\", \"sha256\", \"sha512\" " "or \"yescrypt\"" msgstr "" "password-crypto: невідомий алгоритм %s, скористайтеся \"md5\", \"sha256\", " "\"sha512\" або \"yescrypt\"" #: common/mlcustomize/password.ml:197 msgid "" "password: using insecure md5 password encryption for guest of type %s " "version %d.%d.\n" "If this is incorrect, use --password-crypto option and file a bug." msgstr "" "пароль: використано незахищене шифрування пароля md5 для гостьової системи " "типу %s, версія %d.%d.\n" "Якщо це не так, скористайтеся параметром --password-crypto і створіть " "повідомлення щодо вади." #: common/mlcustomize/customize_run.ml:359 msgid "passwords could not be set for this type of guest" msgstr "для цього типу гостьових систем не можна встановлювати паролі" #: lib/qemuNBD.ml:125 msgid "" "qemu-nbd did not start up. See previous debugging messages for problems." msgstr "" "qemu-nbd не запустилася. Див. попередні діагностичні повідомлення, щоб " "виявити джерело проблеми." #: lib/qemuNBD.ml:127 msgid "" "qemu-nbd did not start up. There may be errors printed by qemu-nbd above.\n" "\n" "If the messages above are not sufficient to diagnose the problem then add " "the ‘virt-v2v -v -x’ options and examine the debugging output carefully." msgstr "" "qemu-nbd не запустилася. Можливо, повідомлення про помилки qemu-nbd виведено " "вище.\n" "\n" "Якщо повідомлень, виведених вище, недостатньо для визначення причини " "проблеми, додайте параметри «virt-v2v -v -x» і уважно вивчіть виведені " "діагностичні дані." #: lib/qemuNBD.ml:47 msgid "qemu-nbd: unexpected version in --version: %s" msgstr "qemu-nbd: неочікувана версія у --version: %s" #: common/mlcustomize/customize_run.ml:77 msgid "random seed could not be set for this type of guest" msgstr "" "для цього типу гостьових систем не можна встановлювати базу випадковості" #: input/parse_domain_from_vmx.ml:44 msgid "remote vmx ‘%s’ could not be parsed as a URI" msgstr "«%s» для віддаленого vmx не вдалося обробити як адресу" #. common/mlcustomize/inject_virtio_win.ml:357 #. common/mlcustomize/inject_virtio_win.ml:352 #: common/mlcustomize/inject_virtio_win.ml:362 msgid "" "root directory ‘/’ is missing from the virtio-win directory or ISO.\n" "\n" "This should not happen and may indicate that virtio-win or virt-v2v is " "broken in some way. Please report this as a bug with a full debug log." msgstr "" "у каталозі virtio-win або образі ISO немає кореневого каталогу «/».\n" "\n" "Цього не повинно було трапитися. Це може вказувати на те, що virtio-win або " "virt-v2v певним чином працюють не так, як належить. Будь ласка, повідомте " "про цю ваду, надавши повний діагностичний журнал." #: common/mltools/tools_utils.ml:417 common/options/keys.c:264 #, c-format msgid "selector '%s': invalid TYPE" msgstr "вибір «%s»: некоректне значення TYPE" #: common/mltools/tools_utils.ml:409 common/options/keys.c:254 #, c-format msgid "selector '%s': missing FILENAME, or too many fields" msgstr "вибір «%s»: пропущено FILENAME або забагато полів" #: common/mltools/tools_utils.ml:399 common/options/keys.c:232 #, c-format msgid "selector '%s': missing ID" msgstr "вибір «%s»: пропущено ідентифікатор" #: common/mltools/tools_utils.ml:404 common/options/keys.c:245 #, c-format msgid "selector '%s': missing KEY_STRING, or too many fields" msgstr "вибір «%s»: пропущено KEY_STRING або забагато полів" #: common/mltools/tools_utils.ml:401 common/options/keys.c:239 #, c-format msgid "selector '%s': missing TYPE" msgstr "вибір «%s»: пропущено TYPE" #: common/mltools/tools_utils.ml:413 common/options/keys.c:262 #, c-format msgid "selector '%s': too many fields" msgstr "вибір «%s»: забагато полів" #: lib/utils.ml:35 msgid "signalled by signal %d" msgstr "повідомлень за допомогою сигналу %d" #: common/mlcustomize/guest_packages.ml:40 msgid "" "sorry, ‘%s’ with the ‘%s’ package manager has not been implemented yet.\n" "\n" "You can work around this by using one of the ‘--run*’ or ‘--firstboot*’ " "options instead (described in the virt-customize(1) manual)." msgstr "" "вибачте, «%s» із засобом керування пакунками «%s» ще не реалізовано.\n" "\n" "Ви можете обійти цю проблему, скориставшись параметром «--run*» або «--" "firstboot*» (описано у підручнику щодо virt-customize(1))." #: common/mlcustomize/ssh_key.ml:57 msgid "ssh-inject: $HOME environment variable is not set" msgstr "ssh-inject: значення змінної середовища $HOME не встановлено" #: common/mlcustomize/ssh_key.ml:93 msgid "ssh-inject: key is an empty string" msgstr "ssh-inject: ключ є порожнім рядком" #: common/mlcustomize/ssh_key.ml:66 msgid "ssh-inject: no public key file found in %s" msgstr "ssh-inject: у %s не знайдено відкритого ключа" #: common/mlcustomize/ssh_key.ml:83 msgid "ssh-inject: public key file (%s) is empty" msgstr "ssh-inject: файл відкритого ключа (%s) є порожнім" #: common/mlcustomize/ssh_key.ml:112 msgid "ssh-inject: the user %s does not exist on the guest" msgstr "ssh-inject: запису користувача %s у гостьовій системі не існує" #. common/mltools/tools_utils.ml:461 #: lib/utils.ml:36 common/mltools/tools_utils.ml:542 msgid "stopped by signal %d" msgstr "завершено за допомогою сигналу %d" #: output/changeuid.ml:58 msgid "subprocess exited with non-zero error code %d" msgstr "підпроцес завершив роботу з ненульовим кодом виходу %d" #: output/changeuid.ml:60 msgid "subprocess signalled or stopped by signal %d" msgstr "підпроцес надіслав сигнал або зупинив роботу внаслідок сигналу %d" #: lib/utils.ml:33 msgid "success" msgstr "успіх" #: output/create_libvirt_xml.ml:297 msgid "" "target hypervisor does not support floppy devices, but floppy devices were " "found in the source guest" msgstr "" #: output/output_ovirt_upload.ml:156 msgid "" "the Python module ‘ovirtsdk4’ could not be loaded, is it installed? See " "previous messages for problems." msgstr "" "не вдалося завантажити модуль Python «ovirtsdk4». Чи встановлено цей модуль? " "Див. попередні повідомлення про помилки." #: output/output_ovirt_upload.ml:453 msgid "the cluster ‘%s’ does not support the architecture %s but %s" msgstr "на кластері «%s» не передбачено підтримки архітектури %s, але %s" #: common/mlcustomize/customize_run.ml:59 msgid "" "the command may have failed because the network is disabled. Try either " "removing ‘--no-network’ or adding ‘--network’ on the command line." msgstr "" "спроба виконати команду могла зазнати невдачі через те, що мережу було " "вимкнено. Спробуйте або вилучити «--no-network» з рядка команди, або додати " "«--network» до нього." #: common/mltools/JSON_parser.ml:84 msgid "the key ‘%s’ was not found in a list of objects" msgstr "ключа «%s» у списку об’єктів не знайдено" #: output/output_ovirt_upload.ml:288 #, fuzzy #| msgid "" #| "the number of ‘-oo rhv-disk-uuid’ parameters passed on the command line " #| "has to match the number of guest disk images (for this guest: %d)" msgid "" "the number of ‘-oo ovirt-disk-uuid’ parameters passed on the command line " "has to match the number of guest disk images (for this guest: %d)" msgstr "" "кількість параметрів «-oo rhv-disk-uuid», переданих за допомогою командного " "рядка, має дорівнювати кількості образів дисків гостьових систем (для цієї " "гостьової системи: %d)" #: output/output_vdsm.ml:133 msgid "" "the number of ‘-oo vdsm-image-uuid’ and ‘-oo vdsm-vol-uuid’ parameters " "passed on the command line has to match the number of guest disk images (for " "this guest: %d)" msgstr "" "кількість параметрів «--oo vdsm-image-uuid» і «--oo vdsm-vol-uuid», " "переданих за допомогою командного рядка, має дорівнювати кількості образів " "дисків гостьових систем (для цієї гостьової системи: %d)" #: output/output_libvirt.ml:239 msgid "the target hypervisor does not support a %s KVM guest" msgstr "" "у гіпервізорі призначення не передбачено підтримки гостьових систем KVM %s" #: common/mltools/JSON_parser.ml:78 msgid "the value for key ‘%s’ is not a string as expected" msgstr "значенням ключа «%s» не є, як очікувалося, рядок" #: common/mltools/JSON_parser.ml:50 msgid "the value for the key ‘%s’ is not a bool" msgstr "значенням ключа «%s» не є булеве значення" #: common/mltools/JSON_parser.ml:45 msgid "the value for the key ‘%s’ is not a string" msgstr "значенням ключа «%s» не є рядок" #: common/mltools/JSON_parser.ml:70 msgid "the value for the key ‘%s’ is not an integer" msgstr "значенням ключа «%s» не є ціле число" #: common/mltools/JSON_parser.ml:55 msgid "the value for the key ‘%s’ is not an object" msgstr "значенням ключа «%s» не є об’єкт" #: common/mltools/JSON_parser.ml:59 msgid "the value is not an object" msgstr "значення не є об’єктом" #: common/mltools/JSON_parser.ml:35 msgid "the value of the key ‘%s’ is not an object" msgstr "значенням ключа «%s» не є об’єкт" #: lib/create_ovf.ml:519 msgid "" "the virtual size of the input disk %d is not an exact multiple of 512 " "bytes. The virtual size is: %Ld.\n" "\n" "This probably means something unexpected is going on, so please file a bug " "about this issue." msgstr "" "віртуальний розмір диска вхідних даних %d не є точно кратним до 512 байтів. " "Віртуальний розмір: %Ld.\n" "\n" "Ймовірно, це означає, що відбувається щось неочікуване. Будь ласка, створіть " "повідомлення щодо цієї вади." #: output/output_openstack.ml:144 msgid "" "the ‘%s’ program is not available. It is needed to communicate with " "OpenStack." msgstr "" "програма «%s» недоступна. Ця програма потрібна для обміну даними з OpenStack." #: output/output_ovirt.ml:265 msgid "" "there are multiple UUIDs in the %s (%s). This is unexpected, and may be a " "bug in virt-v2v or OVirt." msgstr "" "у %s (%s) є декілька UUID. Цього не повинно було статися. Можливо, це " "пов’язано із вадою у virt-v2v або OVirt." #: output/output_ovirt.ml:262 #, fuzzy #| msgid "" #| "there are no UUIDs in the %s (%s). Is it really an OVirt or RHV-M %s?" msgid "there are no UUIDs in the %s (%s). Is it really an OVirt %s?" msgstr "у %s (%s) немає UUID. Це справді OVirt чи RHV-M %s?" #: common/mlcustomize/inject_virtio_win.ml:153 msgid "" "there are no virtio drivers available for this version of Windows (%d.%d %s " "%s %s). virt-v2v looks for drivers in %s\n" "\n" "The guest will be configured to use slower emulated devices." msgstr "" "немає драйверів virtio для цієї версії Windows (%d.%d %s %s %s). virt-v2v " "шукає драйвери у %s\n" "\n" "Гостьову систему буде налаштовано на використання повільніших емульованих " "пристроїв." #: common/mlcustomize/inject_virtio_win.ml:175 msgid "" "there is no virtio block device driver for this version of Windows (%d.%d " "%s). virt-v2v looks for this driver in %s\n" "\n" "The guest will be configured to use a slower emulated device." msgstr "" "немає драйвера блокового пристрою virtio для цієї версії Windows (d.%d %s). " "virt-v2v шукає цей драйвер у %s\n" "\n" "Гостьову систему буде налаштовано на використання повільнішого емульованого " "пристрою." #: common/mlcustomize/inject_virtio_win.ml:206 msgid "" "there is no virtio network driver for this version of Windows (%d.%d %s). " "virt-v2v looks for this driver in %s\n" "\n" "The guest will be configured to use a slower emulated device." msgstr "" "немає драйвера мережі virtio для цієї версії Windows (d.%d %s). virt-v2v " "шукає цей драйвер у %s\n" "\n" "Гостьову систему буде налаштовано на використання повільнішого емульованого " "пристрою." #: input/parse_libvirt_xml.ml:545 msgid "this guest has a direct network interface which will be ignored" msgid_plural "this guest has direct network interfaces which will be ignored" msgstr[0] "" "ця гостьова система має безпосередні інтерфейс мережі, який буде " "проігноровано" msgstr[1] "" "ця гостьова система має безпосередні інтерфейси мережі, які буде " "проігноровано" msgstr[2] "" "ця гостьова система має безпосередні інтерфейси мережі, які буде " "проігноровано" #: input/parse_libvirt_xml.ml:527 msgid "this guest has a passthrough host device which will be ignored" msgid_plural "this guest has passthrough host devices which will be ignored" msgstr[0] "" "у цій гостьовій системі міститься основний пристрій передавання даних, який " "буде проігноровано" msgstr[1] "" "у цій гостьовій системі містяться основні пристрої передавання даних, який " "буде проігноровано" msgstr[2] "" "у цій гостьовій системі містяться основні пристрої передавання даних, який " "буде проігноровано" #: input/parse_libvirt_xml.ml:248 msgid "this guest has no non-removable disks" msgstr "у цій гостьовій системі немає непортативних дисків" #: output/output.ml:65 msgid "this output module doesn't support copying more than %d disks" msgstr "" "у цьому модулі виведення не передбачено підтримки копіювання понад %d дисків" #: common/mlcustomize/timezone.ml:35 msgid "timezone '%s' does not exist, use a location like 'Europe/London'" msgstr "" "часового поясу «%s» не існує, скористайтеся зазначенням міста, наприклад " "'Europe/London'" #: common/mlcustomize/customize_run.ml:304 msgid "timezone could not be set for this type of guest" msgstr "для цього типу гостьових систем не можна встановлювати часовий пояс" #: input/OVA.ml:318 msgid "unable to parse line from manifest file: %S" msgstr "не вдалося обробити рядок з файла маніфесту: %S" #: common/mltools/urandom.ml:37 msgid "unexpected end of file while reading /dev/urandom" msgstr "неочікуване завершення файла під час читання /dev/urandom" #: input/input_libvirt.ml:196 msgid "unexpected output from the %s command" msgstr "неочікуване виведення від команди %s" #: common/mltools/checksums.ml:58 msgid "unhandled checksum type ‘%s’" msgstr "непридатний до обробки тип контрольних сум «%s»" #: lib/types.ml:524 msgid "unknown --root option: %s" msgstr "невідомий параметр --root: %s" #: input/select_input.ml:51 msgid "unknown -i option: %s" msgstr "невідомий параметр -i: %s" #: output/select_output.ml:74 msgid "unknown -o option: %s" msgstr "невідомий параметр -o: %s" #: v2v/v2v.ml:164 msgid "unknown -oa option: %s" msgstr "невідомий параметр -oa: %s" #: input/input_libvirt.ml:189 msgid "unknown method='%s'" msgstr "невідомий метод '%s'" #: input/OVF.ml:103 msgid "unknown Config:firmware value %s (expected \"bios\" or \"efi\")" msgstr "невідоме значення Config:firmware %s (мало бути «bios» або «efi»)" #: lib/create_ovf.ml:446 lib/create_ovf.ml:247 msgid "unknown Windows 10 variant: %s (%s)" msgstr "невідомий варіант Windows 10: %s (%s)" #: v2v/v2v.ml:319 in-place/in_place.ml:256 msgid "unknown block driver ‘--block-driver %s’" msgstr "невідомий блоковий драйвер «--block-driver %s»" #: input/parse_domain_from_vmx.ml:415 msgid "unknown firmware value '%s', assuming BIOS" msgstr "невідоме значення мікропрограми, «%s», припускаємо BIOS" #: lib/create_ovf.ml:454 lib/create_ovf.ml:255 msgid "unknown guest operating system: %s %s %d.%d %s (%s)" msgstr "невідома гостьова операційна система: %s %s %d.%d %s (%s)" #: v2v/v2v.ml:329 open/open.ml:132 inspector/inspector.ml:238 msgid "unknown input transport ‘-it %s’" msgstr "невідомий вхідний канал передавання «-it %s»" #: input/parse_domain_from_vmx.ml:428 msgid "unknown sound device '%s' ignored" msgstr "невідомий звуковий пристрій «%s» проігноровано" #: input/parse_libvirt_xml.ml:215 msgid "unknown sound model %s ignored" msgstr "невідому звукову модель %s проігноровано" #: input/OVF.ml:156 msgid "unsupported compression in OVF: %s" msgstr "непідтримуване стискання у OVF: %s" #: input/input_vcenter_https.ml:123 msgid "" "vcenter: was not found in the XML. You need to " "upgrade to libvirt ≥ 1.2.20." msgstr "" "vcenter: у XML не виявлено запису . Вам слід оновити " "бібліотеку libvirt принаймні до версії 1.2.20." #: input/vCenter.ml:79 msgid "vcenter: URL not found: %s" msgstr "vcenter: адресу не знайдено: %s" #: input/vCenter.ml:70 msgid "vcenter: incorrect username or password" msgstr "vcenter: помилкове ім’я користувача або пароль" #: input/vCenter.ml:72 msgid "" "vcenter: incorrect username or password. You might need to specify the " "username in the URI like this: [vpx|esx|..]://USERNAME@[etc]" msgstr "" "vcenter: некоректне ім'я користувача або пароль. Ймовірно, вам слід вказати " "ім'я користувача у адресі, ось так: [vpx|esx|..]://ІМ'Я_КОРИСТУВАЧА@[решта " "адреси]" #: input/vCenter.ml:84 msgid "vcenter: invalid response from server: %s" msgstr "vcenter: некоректна відповідь від сервера: %s" #: input/vCenter.ml:194 msgid "vcenter: no status code in output of ‘curl’ command." msgstr "vcenter: у виведених програмою «curl» даних немає коду стану." #: output/output_vdsm.ml:148 msgid "vdsm: invalid -os parameter does not contain a valid UUID: %s" msgstr "vdsm: некоректний параметр -os не містить коректного UUID: %s" #: output/output_openstack.ml:56 msgid "" "virt-v2v -oo server-id= [os-*=...]\n" "\n" "Specify the name or UUID of the conversion appliance using\n" "\n" " virt-v2v ... -o openstack -oo server-id=\n" "\n" "When virt-v2v runs it will attach the Cinder volumes to the\n" "conversion appliance, so this name or UUID must be the name\n" "of the virtual machine on OpenStack where virt-v2v is running.\n" "\n" "In addition, all usual OpenStack “os-*” parameters or “OS_*”\n" "environment variables can be used.\n" "\n" "Openstack “--os-*” parameters must be written as “virt-v2v -oo os-*”.\n" "\n" "For example:\n" "\n" " virt-v2v -oo os-username=\n" "\n" " equivalent to openstack: --os-username=\n" " or the environment variable: OS_USERNAME=\n" "\n" " virt-v2v -oo os-project-name=\n" "\n" " equivalent to openstack: --os-project-name=\n" " or the environment variable: OS_PROJECT_NAME=\n" "\n" "The os-* parameters and environment variables are optional.\n" msgstr "" "virt-v2v -oo server-id=<НАЗВА|UUID> [os-*=...]\n" "\n" "Вкажіть назву або UUID базової системи перетворення за допомогою\n" "\n" " virt-v2v ... -o openstack -oo server-id=<НАЗВА|UUID>\n" "\n" "Коли працює virt-v2v, програма долучить томи Cinder до базової\n" "системи перетворення, отже ця назва або UUID мають бути назвою\n" "тієї віртуальної машини на OpenStack, де запущено virt-v2v.\n" "\n" "Окрім того, може бути використано усі звичайні параметри\n" "OpenStack «os-*» або змінні середовища «OS_*».\n" "\n" "Параметри «--os-*» Openstack має бути записано як «virt-v2v -oo os-*».\n" "\n" "Приклад:\n" "\n" " virt-v2v -oo os-username=<НАЗВА>\n" "\n" " еквівалент openstack: --os-username=<НАЗВА>\n" " або змінна середовища: OS_USERNAME=<НАЗВА>\n" "\n" " virt-v2v -oo os-project-name=<НАЗВА>\n" "\n" " еквівалент openstack: --os-project-name=<НАЗВА>\n" " або змінна середовища: OS_PROJECT_NAME=<НАЗВА>\n" "\n" "Параметри os-* і змінні середовища є необов'язковими.\n" #: input/parse_libvirt_xml.ml:189 msgid "" "virt-v2v does not support local displays, so in the " "input libvirt XML was ignored" msgstr "" "У virt-v2v не передбачено підтримки локальних дисплеїв, отже so у вхідних даних XML libvirt проігноровано" #: input/select_input.ml:83 msgid "virt-v2v-in-place does not support remote libvirt URIs" msgstr "У virt-v2v-in-place не передбачено підтримки віддалених адрес libvirt" #: input/parse_domain_from_vmx.ml:50 msgid "vmx URI path component looks incorrect" msgstr "компонент шляху адреси vmx є помилковим" #: input/parse_domain_from_vmx.ml:48 msgid "vmx URI remote server name omitted" msgstr "пропущено назву віддаленого сервера у адресі vmx" #: input/parse_domain_from_vmx.ml:46 msgid "vmx URI start with ‘ssh://...’" msgstr "адреса vmx починається з «ssh://...»" #: input/VMX.ml:313 msgid "vmx parser: cannot parse this line, ignoring: %s" msgstr "обробник vmx: не вдалося обробити цей рядок, проігноровано: %s" #: input/VMX.ml:346 msgid "vmx parser: duplicate key '%s' ignored" msgstr "обробник vmx: дублікат ключа «%s» проігноровано" #: output/output_openstack.ml:299 msgid "wait for cinder volume status to change to \"available\"" msgstr "зачекати на зміну стану тому cinder на «доступний»" #: output/output_openstack.ml:360 msgid "waiting for cinder volume %s to attach to the conversion appliance" msgstr "очікуємо на долучення тому cinder %s до базової системи перетворення" #: open/open.ml:136 msgid "you must supply the --run parameter" msgstr "" #: input/input_xen_ssh.ml:87 input/input_vddk.ml:189 msgid "‘-ic %s’ URL does not contain a host name field" msgstr "У адресі «-ic %s» не міститься поля назви вузла" #: input/input_vddk.ml:273 msgid "‘-io vddk-file=’ must be used exactly %d times" msgstr "" #: input/input_vddk.ml:297 msgid "" "‘-io vddk-libdir=%s’ does not point to a directory. See the virt-v2v-input-" "vmware(1) manual." msgstr "" "«-io vddk-libdir=%s» не вказує на каталог. Див. підручник з virt-v2v-input-" "vmware(1)." #: output/output.ml:85 msgid "" "‘-oo compressed’ is only allowed when the output format is a local qcow2-" "format file, i.e. ‘-of qcow2’" msgstr "" "«-oo compressed» можна використовувати, лише якщо форматом виведення є " "локальний файл у форматі qcow2, тобто лише з «-of qcow2»" #: input/input_vddk.ml:232 msgid "" "‘openssl’ command not found: automatically detecting thumbprint is not " "possible, so you must use ‘-io vddk-thumbprint=XX:XX...’" msgstr "" #: common/mltools/getopt-c.c:68 #, c-format msgid "Try ‘%s --help’ or consult %s(1) for more information.\n" msgstr "" "Щоб дізнатися більше, скористайтеся командою «%s --help» або зверніться до " "підручника з %s(1).\n" #: common/mltools/getopt-c.c:187 #, c-format msgid "%s: ‘%s’ is not a numeric value.\n" msgstr "%s: «%s» не є числовим значенням.\n" #: common/mltools/getopt-c.c:193 #, c-format msgid "%s: %s: integer out of range\n" msgstr "%s: %s: ціле значення поза межами діапазону\n" #: common/mltools/getopt-c.c:383 #, c-format msgid "%s: ‘%s’ is not allowed for -%c; allowed values are:\n" msgstr "%s: «%s» не можна використовувати з -%c; дозволені значення:\n" #: common/mltools/getopt-c.c:386 #, c-format msgid "%s: ‘%s’ is not allowed for %s%s; allowed values are:\n" msgstr "%s: «%s» не можна використовувати з %s%s; дозволені значення:\n" #: common/mltools/getopt-c.c:421 #, c-format msgid "Extra parameter on the command line: ‘%s’.\n" msgstr "Зайвий параметр у рядку команди: «%s».\n" #: common/options/config.c:72 #, c-format msgid "%s: line %d: error parsing configuration file: %s" msgstr "%s: рядок %d: помилка під час спроби обробки файла налаштувань: %s" #: common/options/decrypt.c:52 #, c-format msgid "string size overflow" msgstr "переповнення розміру рядка" #: common/options/decrypt.c:170 #, c-format msgid "" "'clevis_luks_unlock', needed for decrypting %s, is unavailable in this " "libguestfs version" msgstr "" "у цій версії libguestfs «clevis_luks_unlock», потрібна для розшифрування %s, " "є недоступною" #: common/options/decrypt.c:184 #, c-format msgid "" "could not find key to open LUKS encrypted %s.\n" "\n" "Try using --key on the command line.\n" "\n" "Original error: %s (%d)" msgstr "" "не вдалося знайти ключ для відкриття LUKS, зашифрованої %s.\n" "\n" "Спробуйте скористатися параметром --key у командному рядку.\n" "\n" "Початкове повідомлення про помилку: %s (%d)" #: common/options/inspect.c:78 #, c-format msgid "" "%s: no operating system was found on this disk\n" "\n" "If using guestfish ‘-i’ option, remove this option and instead\n" "use the commands ‘run’ followed by ‘list-filesystems’.\n" "You can then mount filesystems you want by hand using the\n" "‘mount’ or ‘mount-ro’ command.\n" "\n" "If using guestmount ‘-i’, remove this option and choose the\n" "filesystem(s) you want to see by manually adding ‘-m’ option(s).\n" "Use ‘virt-filesystems’ to see what filesystems are available.\n" "\n" "If using other virt tools, this disk image won’t work\n" "with these tools. Use the guestfish equivalent commands\n" "(see the virt tool manual page).\n" msgstr "" "%s: на диску не знайдено жодної операційної системи\n" "\n" "Якщо було використано параметр «-i» guestfish, вилучіть цей\n" "параметр і замість нього використовуйте команди «run» з\n" "наступним «list-filesystems». Після виконання цих команд\n" "ви зможете змонтувати бажані файлові системи за допомогою\n" "команди «mount» або «mount-ro».\n" "\n" "Якщо було використано параметр «-i» guestmount, вилучіть цей\n" "параметр і виберіть файлові системи, які ви бажаєте бачити,\n" "вручну за допомогою додавання параметрів «-m».\n" "Для перегляду списку доступних файлових систем скористайтеся\n" "командою «virt-filesystems».\n" "\n" "Якщо ви користуєтеся іншими інструментами віртуалізації, ви\n" "не зможете скористатися цим образом диска. Скористайтеся\n" "відповідними командами guestfish (докладний опис можна знайти\n" "на сторінках довідника (man) щодо інструмента віртуалізації).\n" #: common/options/inspect.c:99 #, c-format msgid "" "%s: multi-boot operating systems are not supported\n" "\n" "If using guestfish ‘-i’ option, remove this option and instead\n" "use the commands ‘run’ followed by ‘list-filesystems’.\n" "You can then mount filesystems you want by hand using the\n" "‘mount’ or ‘mount-ro’ command.\n" "\n" "If using guestmount ‘-i’, remove this option and choose the\n" "filesystem(s) you want to see by manually adding ‘-m’ option(s).\n" "Use ‘virt-filesystems’ to see what filesystems are available.\n" "\n" "If using other virt tools, multi-boot operating systems won’t work\n" "with these tools. Use the guestfish equivalent commands\n" "(see the virt tool manual page).\n" msgstr "" "%s: підтримки операційних систем з варіантами завантаження не\n" "передбачено\n" "\n" "Якщо було використано параметр «-i» guestfish, вилучіть цей\n" "параметр і замість нього використовуйте команди «run» з\n" "наступним «list-filesystems». Після виконання цих команд\n" "ви зможете змонтувати бажані файлові системи за допомогою\n" "команди «mount» або «mount-ro».\n" "\n" "Якщо було використано параметр «-i» guestmount, вилучіть цей\n" "параметр і виберіть файлові системи, які ви бажаєте бачити,\n" "вручну за допомогою додавання параметрів «-m».\n" "Для перегляду списку доступних файлових систем скористайтеся\n" "командою «virt-filesystems».\n" "\n" "Якщо ви користуєтеся іншими інструментами віртуалізації, ви\n" "не зможете скористатися операційними системами з варіантами\n" "завантаження. Скористайтеся відповідними командами guestfish\n" "(докладний опис можна знайти на сторінках довідника (man)\n" "щодо інструмента віртуалізації).\n" #: common/options/inspect.c:161 #, c-format msgid "%s: some filesystems could not be mounted (ignored)\n" msgstr "%s: деякі з файлових систем не вдалося змонтувати (проігноровано)\n" #: common/options/inspect.c:178 #, c-format msgid "Operating system: %s\n" msgstr "Операційна система: %s\n" #: common/options/inspect.c:196 #, c-format msgid "%s mounted on %s\n" msgstr "%s змонтовано до %s\n" #: common/options/keys.c:63 #, c-format msgid "Enter key or passphrase (\"%s\"): " msgstr "Введіть ключ або пароль («%s»): " #: common/options/keys.c:146 #, c-format msgid "size_t overflow" msgstr "переповнення size_t" #: common/options/keys.c:193 #, c-format msgid "could not read key from user" msgstr "не вдалося прочитати ключ з запису користувача" #: common/options/options.c:283 #, c-format msgid "%s: ‘%s’ could not be mounted.\n" msgstr "%s: не вдалося змонтувати «%s».\n" #: common/options/options.c:287 #, c-format msgid "" "%s: Check mount(8) man page to ensure options ‘%s’\n" "%s: are supported by the filesystem that is being mounted.\n" msgstr "" "%s: зверніться до сторінки довідника mount(8), щоб ознайомитися з " "параметрами «%s»\n" "%s: підтримуються файловою системою, яка монтується.\n" #: common/options/options.c:291 #, c-format msgid "%s: Did you mean to mount one of these filesystems?\n" msgstr "%s: ви хотіли змонтувати одну з цих файлових систем?\n" #: common/options/options.c:304 #, c-format msgid "cannot determine the subvolume for %s: %s (%d)" msgstr "не вдалося визначити підтом для %s: %s (%d)" #: common/options/uri.c:119 #, c-format msgid "%s: --add: could not parse URI ‘%s’\n" msgstr "%s: --add: не вдалося обробити адресу «%s»\n" #: common/options/uri.c:130 #, c-format msgid "%s: %s: scheme of URI is NULL or empty\n" msgstr "%s: %s: схема адреси є нульовою або порожньою\n" #: common/options/uri.c:138 #, c-format msgid "%s: %s: cannot have both a server name and a socket query parameter\n" msgstr "" "%s: %s: не можна вказувати одразу назву сервера та параметр запиту до " "сокета\n" #: common/utils/utils.c:107 #, c-format msgid "%s exited successfully" msgstr "Успішно завершено роботу %s" #: common/utils/utils.c:110 #, c-format msgid "%s exited with error status %d" msgstr "Роботу %s завершено зі станом виходу %d" #: common/utils/utils.c:114 #, c-format msgid "%s killed by signal %d (%s)" msgstr "Роботу %s припинено за допомогою сигналу %d (%s)" #: common/utils/utils.c:118 #, c-format msgid "%s stopped by signal %d (%s)" msgstr "Роботу %s завершено за допомогою сигналу %d (%s)" #: common/utils/utils.c:122 #, c-format msgid "%s exited for an unknown reason (status %d)" msgstr "Роботу %s завершено з невідомої причини (стан %d)" #~ msgid "" #~ "ssh-agent authentication has not been set up ($SSH_AUTH_SOCK is not " #~ "set). This is required by qemu to do passwordless ssh access. See the " #~ "virt-v2v(1) man page for more information." #~ msgstr "" #~ "Розпізнавання ssh-agent не налаштовано (не встановлено змінної середовища " #~ "$SSH_AUTH_SOCK). Таке розпізнавання є обов'язковим для встановлення у " #~ "qemu доступу до ssh без пароля. Докладніший опис можна знайти на сторінці " #~ "підручника virt-v2v(1)." #~ msgid "-it vddk: duplicate -io options on the command line" #~ msgstr "-it vddk: дублювання параметрів -io у командному рядку" #~ msgid "Attach to a subscription-manager pool" #~ msgstr "Долучити до буфера subscription-manager" #~ msgid "Attaching to compatible subscriptions" #~ msgstr "Долучаємо до сумісних підписок" #~ msgid "Attaching to the pool %s" #~ msgstr "Долучаємо до буфера %s" #~ msgid "Boot in qemu (-o qemu only)" #~ msgstr "Завантажитися у qemu (лише для -o qemu)" #~ msgid "Compress output file (-of qcow2 only)" #~ msgstr "Стиснути файл виведення (лише для -of qcow2)" #~ msgid "Credentials for subscription-manager" #~ msgstr "Реєстраційні дані для subscription-manager" #~ msgid "Ignored for backwards compatibility" #~ msgstr "Ігноровано, для зворотної сумісності" #~ msgid "" #~ "Output options that can be used with -o kubevirt:\n" #~ "\n" #~ " -oo compressed Compress the output file (used only with -of " #~ "qcow2)\n" #~ msgstr "" #~ "Параметри виведення, якими можна скористатися з -o kubevirt:\n" #~ "\n" #~ " -oo compressed стиснути файл виведення (можна використовувати лише " #~ "з -of qcow2)\n" #~ msgid "Register using subscription-manager" #~ msgstr "Зареєструвати за допомогою subscription-manager" #~ msgid "Registering with subscription-manager" #~ msgstr "Реєструємо за допомогою subscription-manager" #~ msgid "Remove all the subscriptions" #~ msgstr "Вилучити усі підписки" #~ msgid "Removing all the subscriptions" #~ msgstr "Вилучаємо усі підписки" #~ msgid "Same as ‘-io vddk-config=filename’" #~ msgstr "Те саме, що і «-io vddk-config=назва_файла»" #~ msgid "Same as ‘-io vddk-cookie=filename’" #~ msgstr "Те саме, що і «-io vddk-cookie=назва_файла»" #~ msgid "Same as ‘-io vddk-libdir=libdir’" #~ msgstr "Те саме, що і «-io vddk-libdir=каталог_бібліотек»" #~ msgid "Same as ‘-io vddk-nfchostport=nfchostport’" #~ msgstr "Те саме, що і «-io vddk-nfchostport=nfchostport»" #~ msgid "Same as ‘-io vddk-port=port’" #~ msgstr "Те саме, що і «-io vddk-port=порт»" #~ msgid "Same as ‘-io vddk-snapshot=snapshot-moref’" #~ msgstr "Те саме, що і «-io vddk-snapshot=snapshot-moref»" #~ msgid "Same as ‘-io vddk-thumbprint=thumbprint’" #~ msgstr "Те саме, що і «-io vddk-thumbprint=відбиток»" #~ msgid "Same as ‘-io vddk-transports=transports’" #~ msgstr "Те саме, що і «-io vddk-transports=способи_передавання»" #~ msgid "Same as ‘-ip filename’" #~ msgstr "Те саме, що і «-ip назва_файла»" #~ msgid "Same as ‘-oo vdsm-compat=0.10|1.1’" #~ msgstr "Те саме, що і «-oo vdsm-compat=0.10|1.1»" #~ msgid "Same as ‘-oo vdsm-image-uuid=uuid’" #~ msgstr "Те саме, що і «-oo vdsm-image-uuid=uuid»" #~ msgid "Same as ‘-oo vdsm-ovf-flavour=flavour’" #~ msgstr "Те саме, що і «-oo vdsm-ovf-flavour=варіант»" #~ msgid "Same as ‘-oo vdsm-ovf-output=dir’" #~ msgstr "Те саме, що і «-oo vdsm-ovf-output=каталог»" #~ msgid "Same as ‘-oo vdsm-vm-uuid=uuid’" #~ msgstr "Те саме, що і «-oo vdsm-vm-uuid=uuid»" #~ msgid "Same as ‘-oo vdsm-vol-uuid=uuid’" #~ msgstr "Те саме, що і «-oo vdsm-vol-uuid=uuid»" #~ msgid "Unregister using subscription-manager" #~ msgstr "Скасувати реєстрацію за допомогою subscription-manager" #~ msgid "Unregistering with subscription-manager" #~ msgstr "Скасовуємо реєстрацію за допомогою subscription-manager" #~ msgid "" #~ "You must pass the ‘-io vddk-thumbprint’ option with the SSL thumbprint of " #~ "the VMware server. To find the thumbprint, see the nbdkit-vddk-plugin(1) " #~ "manual. See also the virt-v2v-input-vmware(1) manual." #~ msgstr "" #~ "Вам слід передати параметр «-io vddk-thumbprint» із відбитком SSL сервера " #~ "VMware. Для визначення відбитка скористайтеся порадами з підручника з " #~ "nbdkit-vddk-plugin(). Див. також підручник з virt-v2v-input-vmware(1)." #~ msgid "don’t know how to remove packages using %s: packages: %s" #~ msgstr "" #~ "спосіб вилучення пакунків за допомогою %s невідомий програмі: пакунки: %s" #~ msgid "invalid sm-attach selector ‘%s’; see the man page" #~ msgstr "некоректний варіант sm-attach «%s»; див. сторінку man" #~ msgid "invalid sm-credentials selector ‘%s’; see the man page" #~ msgstr "некоректний варіант sm-credentials «%s»; див. сторінку man" #~ msgid "nbdkit is not new enough, you need to upgrade to nbdkit ≥ %s" #~ msgstr "" #~ "nbdkit є недостатньо новим, вам слід оновити nbdkit принаймні до версії " #~ "більшої або рівної %s" #~ msgid "nbdkit is too old. nbdkit >= %d.%d.%d is required." #~ msgstr "nbdkit є надто старим. Потрібен nbdkit >= %d.%d.%d." #~ msgid "subscription-manager credentials required for --sm-register" #~ msgstr "для --sm-register потрібні реєстраційні дані subscription-manager" #~ msgid "the --no-trim option has been removed and now does nothing" #~ msgstr "" #~ "параметр --no-trim вилучено зі списку параметрів, тепер він не потрібен" #~ msgid "the --vmtype option has been removed and now does nothing" #~ msgstr "" #~ "параметр --vmtype вилучено зі списку параметрів, тепер він не потрібен" #~ msgid "-oo compressed option requires nbdcopy >= 1.13.5" #~ msgstr "використання параметра -oo compressed потребує nbdcopy >= 1.13.5" #~ msgid "" #~ "cannot find firmware for UEFI guests.\n" #~ "\n" #~ "You probably need to install OVMF (x86-64), or AAVMF (aarch64)" #~ msgstr "" #~ "не вдалося знайти мікропрограму для гостьових систем UEFI\n" #~ "\n" #~ "Ймовірно, вам слід встановити OVMF (x86-64) або AAVMF (aarch64)" #~ msgid "nbdcopy command failed, see earlier error messages" #~ msgstr "" #~ "помилка під час спроби виконати nbdcopy, див. попередні повідомлення щодо " #~ "помилок" #~ msgid "external command ‘%s’ killed by signal %d" #~ msgstr "виконання зовнішньої програми «%s» завершено сигналом %d" #~ msgid "external command ‘%s’ stopped by signal %d" #~ msgstr "виконання зовнішньої програми «%s» зупинено сигналом %d" #~ msgid "-o qemu: use -oo qemu-boot[=true|false]" #~ msgstr "-o qemu: використати -oo qemu-boot[=true|false]" #~ msgid "invalid selector string for --key: %s" #~ msgstr "некоректний рядок вибору для --key: %s" #~ msgid "-o json: -oo json-disks-pattern set more than once" #~ msgstr "-o json: -oo json-disks-pattern встановлено декілька разів" #~ msgid "-o json: -oo json-disks-pattern: invalid variable %%{%s}" #~ msgstr "-o json: -oo json-disks-pattern: некоректна змінна %%{%s}" #~ msgid "-o json: -oo json-disks-pattern: unhandled variable %%{%s}" #~ msgstr "" #~ "-o json: -oo json-disks-pattern: непридатна до обробки змінна %%{%s}" #~ msgid "-o json: output directory was not specified, use '-os /dir'" #~ msgstr "" #~ "-o json: не вказано каталогу для виведення даних, скористайтеся «-os /" #~ "каталог»" #~ msgid "-o json: unknown output option ‘-oo %s’" #~ msgstr "-o json: невідомий параметр виведення — «-oo %s»" #~ msgid "" #~ "Output options (-oo) which can be used with -o json:\n" #~ "\n" #~ " -oo json-disks-pattern=PATTERN Pattern for the disks.\n" #~ msgstr "" #~ "Параметри виведення (-oo), які може бути використано із -o json:\n" #~ "\n" #~ " -oo json-disks-pattern=ВЗІРЕЦЬ Взірець для дисків.\n" #~ msgid "" #~ "%s is missing, but the output hypervisor is oVirt or RHV. Installing " #~ "RHEV-APT in the guest would mean the guest is automatically updated with " #~ "new drivers etc. You may wish to install RHEV-APT manually after " #~ "conversion." #~ msgstr "" #~ "Не вистачає %s, але вказано гіпервізор виведення даних oVirt або RHV. " #~ "Встановлення RHEV-APT у гостьовій системі забезпечить оновлення драйверів " #~ "тощо. Вам варто встановити RHEV-APT вручну після перетворення." #~ msgid "%s is missing. Firstboot scripts may conflict with PnP." #~ msgstr "Не вистачає %s. Скрипти Firstboot можуть конфліктувати з PnP." #~ msgid "" #~ "%s references unknown device \"%s\". You may have to fix this entry " #~ "manually after conversion." #~ msgstr "" #~ "%s посилається на невідомий пристрій «%s». Ймовірно, вам доведеться " #~ "виправити цей запис після перетворення." #~ msgid "" #~ "%s: convert a guest to use KVM\n" #~ "\n" #~ " virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi -os imported " #~ "esx_guest\n" #~ "\n" #~ " virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi esx_guest -o rhv " #~ "-os rhv.nfs:/export_domain --network ovirtmgmt\n" #~ "\n" #~ " virt-v2v -i libvirtxml guest-domain.xml -o local -os /var/tmp\n" #~ "\n" #~ " virt-v2v -i disk disk.img -o local -os /var/tmp\n" #~ "\n" #~ " virt-v2v -i disk disk.img -o glance\n" #~ "\n" #~ "There is a companion front-end called \"virt-p2v\" which comes as an\n" #~ "ISO or CD image that can be booted on physical machines.\n" #~ "\n" #~ "A short summary of the options is given below. For detailed help please\n" #~ "read the man page virt-v2v(1).\n" #~ msgstr "" #~ "%s: перетворити гостьову систему для використання з KVM\n" #~ "\n" #~ " virt-v2v -ic vpx://vcenterexample.com/Datacenter/esxi -os imported " #~ "esx_guest\n" #~ "\n" #~ " virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi esx_guest -o rhv " #~ "-os rhv.nfs:/export_domain --network ovirtmgmt\n" #~ "\n" #~ " virt-v2v -i libvirtxml guest-domain.xml -o local -os /var/tmp\n" #~ "\n" #~ " virt-v2v -i disk disk.img -o local -os /var/tmp\n" #~ "\n" #~ " virt-v2v -i disk disk.img -o glance\n" #~ "\n" #~ "Передбачено супутню програму з назвою «virt-p2v, яка постачається у " #~ "форматі\n" #~ "образу ISO або компакт-диска, який можна завантажити на фізичній машині.\n" #~ "\n" #~ "Коротке резюме щодо параметрів наведено нижче. Докладний опис можна " #~ "знайти на\n" #~ "сторінці підручника virt-v2v(1).\n" #~ msgid "--in-place and --print-estimate cannot be used together" #~ msgstr "" #~ "Параметри --in-place і --print-estimate не можна використовувати одночасно" #~ msgid "-o and --in-place cannot be used at the same time" #~ msgstr "-o і --in-place не можна використовувати одночасно" #~ msgid "-o local: output directory was not specified, use '-os /dir'" #~ msgstr "" #~ "-o local: каталог виведення даних не вказано, скористайтеся параметром «-" #~ "os /каталог»" #~ msgid "-o rhv: output storage was not specified, use ‘-os’" #~ msgstr "-o rhv: не вказано сховище виведення даних, скористайтеся «-os»" #~ msgid "-o vdsm: output storage was not specified, use ‘-os’" #~ msgstr "-o vdsm: не вказано сховище виведення даних, скористайтеся «-os»" #~ msgid "Assigning disks to buses" #~ msgstr "Пов’язування дисків із каналами" #~ msgid "CD-ROM" #~ msgstr "CD-ROM" #~ msgid "Can't find file: '%s' needed for UEFI fixing" #~ msgstr "Не вдалося знайти файл: потрібен «%s» для виправлення UEFI" #~ msgid "Can't fix UEFI bootloader. VM may not boot." #~ msgstr "" #~ "Не вдалося виправити завантажувач UEFI. Віртуальна машина може бути " #~ "непридатною до завантаження." #~ msgid "Checking for sufficient free disk space in the guest" #~ msgstr "Перевіряємо, чи достатньо вільного місця на диску гостьової системи" #~ msgid "Checking if the guest needs BIOS or UEFI to boot" #~ msgstr "" #~ "Перевіряємо, чи потрібні гостьовій системі BIOS або UEFI для завантаження" #~ msgid "Closing the overlay" #~ msgstr "Закриваємо оверлей" #~ msgid "Closing the source VM" #~ msgstr "Закриваємо ВМ джерела" #~ msgid "Converting %s to run on KVM" #~ msgstr "Перетворюємо %s для уможливлення запуску у KVM" #~ msgid "Converting the guest to run on KVM" #~ msgstr "Перетворюємо гостьову систему для запуску у KVM" #~ msgid "Copying disk %d/%d to qemu URI %s (%s)" #~ msgstr "Копіюємо диск %d з %d до адреси qemu %s (%s)" #~ msgid "Creating an overlay to protect the source from being modified" #~ msgstr "Створюємо оверлей для захисту джерела від внесення змін" #~ msgid "" #~ "Dual- or multi-boot operating system detected. Choose the root " #~ "filesystem\n" #~ "that contains the main operating system from the list below:\n" #~ msgstr "" #~ "Виявлено операційну систему із варіантами завантаження. Виберіть кореневу " #~ "файлову\n" #~ "систему, що містить основну операційну систему зі списку, наведеного " #~ "нижче:\n" #~ msgid "Enter a number between 1 and %d, or ‘exit’: " #~ msgstr "Вкажіть число від 1 до %d або введіть «exit»: " #~ msgid "Estimate size of source and stop" #~ msgstr "Оцінити розмір джерела і припинити обробку" #~ msgid "Estimating space required on target for each disk" #~ msgstr "" #~ "Оцінюємо простір, потрібний у системі призначення для кожного з дисків" #~ msgid "Fixing UEFI bootloader." #~ msgstr "Виправляємо завантажувач UEFI." #~ msgid "Initializing the target %s" #~ msgstr "Ініціалізуємо призначення %s" #~ msgid "Input format (for -i disk)" #~ msgstr "Формат вхідних даних (для -i диск)" #~ msgid "Inspecting the source VM" #~ msgstr "Вивчаємо ВМ джерела" #~ msgid "Just write the metadata" #~ msgstr "Просто записати метадані" #~ msgid "Mapping filesystem data to avoid copying unused and blank areas" #~ msgstr "" #~ "Виконуємо прив’язку даних файлової системи для уникнення копіювання " #~ "невикористаних та порожніх областей" #~ msgid "No -io (input options) are supported with this input transport.\n" #~ msgstr "" #~ "Для цього вхідного способу передавання даних не передбачено жодних -io " #~ "(параметрів вхідних даних).\n" #~ msgid "No UEFI fix rule for %s %d" #~ msgstr "Немає правила виправлення UEFI для %s %d" #~ msgid "Only tune the guest in the input VM" #~ msgstr "Лише скоригувати гостьову систему у вхідній ВМ" #~ msgid "Opening the overlay" #~ msgstr "Відкриваємо оверлей" #~ msgid "Opening the source VM" #~ msgstr "Відкриваємо ВМ джерела" #~ msgid "Overlay saved as %s [--debug-overlays]" #~ msgstr "Накладку збережено як %s [--debug-overlays]" #~ msgid "" #~ "Parallels tools was detected, but uninstallation failed. The error " #~ "message was: %s (ignored)" #~ msgstr "" #~ "Виявлено інструменти Parallels, але спроба вилучення зазнала невдачі. " #~ "Повідомлення про помилку: %s (ignored)" #~ msgid "Picked %s because '--root %s' was used." #~ msgstr "Вибрано %s, оскільки використано «--root %s»." #~ msgid "Picked %s because '--root first' was used." #~ msgstr "Вибрано %s, оскільки використано «--root first»." #~ msgid "" #~ "QEMU Guest Agent MSI not found on tools ISO/directory. You may want to " #~ "install the guest agent manually after conversion." #~ msgstr "" #~ "У інструментах ISO або каталогу не знайдено пакунка MSI агента гостьової " #~ "системи QEMU. Ймовірно, вам варто встановити агент гостьової системи " #~ "вручну після перетворення." #~ msgid "Save overlay files" #~ msgstr "Зберегти файли оверлеїв" #~ msgid "" #~ "The display driver was updated to ‘%s’, but X11 does not seem to be " #~ "installed in the guest. X may not function correctly." #~ msgstr "" #~ "Графічний драйвер було оновлено до «%s». Втім, здається, у гостьовій " #~ "системі не встановлено X11. Графічний сервер не зможе працювати належним " #~ "чином." #~ msgid "This guest does not have virtio drivers installed." #~ msgstr "У цій гостьовій системі не встановлено драйверів virtio." #~ msgid "This guest has virtio drivers installed." #~ msgstr "У цій гостьовій системі встановлено драйвери virtio." #~ msgid "This guest requires UEFI on the target to boot." #~ msgstr "Ця гостьова система потребує UEFI на призначенні для завантаження." #~ msgid "" #~ "VDDK library path %s not found or not a directory. See the virt-v2v-" #~ "input-vmware(1) manual." #~ msgstr "" #~ "Не знайдено шлях до бібліотек VDDK %s або шлях не є каталогом. Див. " #~ "підручник з virt-v2v-input-vmware(1)." #~ msgid "" #~ "VMware tools was detected, but uninstallation failed. The error message " #~ "was: %s (ignored)" #~ msgstr "" #~ "Виявлено засоби VMware, але спроба вилучення зазнала невдачі. " #~ "Повідомлення щодо помилки: %s (проігноровано)" #~ msgid "" #~ "VirtualBox Guest Additions were detected, but uninstallation failed. The " #~ "error message was: %s (ignored)" #~ msgstr "" #~ "Виявлено VirtualBox Guest Additions, але спроба вилучення зазнала " #~ "невдачі. Повідомлення щодо помилки: %s (проігноровано)" #~ msgid "" #~ "because of libvirt bug https://bugzilla.redhat.com/1134878 you must " #~ "EITHER upgrade to libvirt >= 2.1.0 OR set this environment variable:\n" #~ "\n" #~ "export LIBGUESTFS_BACKEND=direct\n" #~ "\n" #~ "and then rerun the virt-v2v command." #~ msgstr "" #~ "через ваду у libvirt, https://bugzilla.redhat.com/1134878 , вам слід або " #~ "оновити libvirt до версії 2.1.0 або новішої, або встановити таке значення " #~ "змінної середовища:\n" #~ "\n" #~ "export LIBGUESTFS_BACKEND=direct\n" #~ "\n" #~ "а потім перезапустити програму virt-v2v." #~ msgid "cannot detect the input disk format; use the -if parameter" #~ msgstr "" #~ "не вдалося визначити формат диска вхідних даних; скористайтеся параметром " #~ "-if" #~ msgid "" #~ "cannot uninstall %s: registry key ‘HKLM\\SOFTWARE\\%s\\%s’ with " #~ "DisplayName ‘%s’ doesn't contain value ‘%s’" #~ msgstr "" #~ "не вдалося вилучити %s: у ключі реєстру «HKLM\\SOFTWARE\\%s\\%s» із " #~ "DisplayName «%s» не міститься значення «%s»" #~ msgid "" #~ "cannot uninstall Xen PV drivers: registry key " #~ "‘HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\%s’ does " #~ "not contain an ‘%s’ key" #~ msgstr "" #~ "неможливо вилучити драйвери Xen PV: ключ реєстру " #~ "«HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\%s» не " #~ "містить ключа «%s»" #~ msgid "connection closed" #~ msgstr "з'єднання закрито" #~ msgid "" #~ "could not find registry key " #~ "HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion" #~ msgstr "" #~ "не вдалося знайти ключ реєстру " #~ "HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion" #~ msgid "could not write to the guest filesystem: %s" #~ msgstr "не вдалося виконати запис до файлової системи гостьової системи: %s" #~ msgid "" #~ "disk %s (%s) has no defined format.\n" #~ "\n" #~ "The input metadata did not define the disk format (eg. raw/qcow2/etc) of " #~ "this disk, and so virt-v2v will try to autodetect the format when reading " #~ "it.\n" #~ "\n" #~ "However because the input format was not defined, we do not know what " #~ "output format you want to use. You have two choices: either define the " #~ "original format in the source metadata, or use the ‘-of’ option to force " #~ "the output format." #~ msgstr "" #~ "диск %s (%s) не має визначеного формату.\n" #~ "\n" #~ "Вхідні метадані не визначають формату цього диска (наприклад raw/qcow2/" #~ "тощо), отже virt-v2v спробує автоматично визначити формат під час читання " #~ "диска.\n" #~ "\n" #~ "Втім, оскільки вхідний формат не визначено, програмі невідомий формат " #~ "виведення, яким ви хочете скористатися. Ви можете скористатися одним із " #~ "таких варіантів: визначити початковий формат у метаданих джерела, " #~ "використати параметр «-of» для примусового визначення формату виведення " #~ "даних." #~ msgid "don’t know how to install packages using %s: packages: %s" #~ msgstr "" #~ "спосіб встановлення пакунків за допомогою %s невідомий програмі: пакунки: " #~ "%s" #~ msgid "don’t know how to update %s which loads the %s module" #~ msgstr "спосіб оновлення %s, який завантажує модуль %s, невідомий програмі" #~ msgid "don’t know what is the architecture string of %s using %s on %s" #~ msgstr "невідомий рядок архітектури %s з використанням %s на %s" #~ msgid "don’t know what is the extension of binary packages using %s" #~ msgstr "невідомий суфікс назви бінарних пакунків з використанням %s" #~ msgid "" #~ "expecting a single VMX file name or SSH remote path on the command line" #~ msgstr "" #~ "мало бути вказано одну назву файла VMX або віддалений шлях SSH у " #~ "командному рядку" #~ msgid "failed to install QEMU Guest Agent: %s" #~ msgstr "не вдалося встановити агент гостьової системи QEMU: %s" #~ msgid "" #~ "filesystem was mounted read-only, even though we asked for it to be " #~ "mounted read-write. This usually means that the filesystem was not " #~ "cleanly unmounted. Possible causes include trying to convert a guest " #~ "which is running, or using Windows Hibernation or Fast Restart.\n" #~ "\n" #~ "Original error message: %s" #~ msgstr "" #~ "файлову систему було змонтовано у режимі лише для читання, хоча ми " #~ "просили змонтувати її у режимі читання-запису. Це, зазвичай, означає, що " #~ "файлову систему не було демонтовано у штатному режимі. Можливими " #~ "причинами можуть бути спроба перетворити гостьову систему, яка працювала, " #~ "або використання режимів присипляння або швидкого перезапуску Windows.\n" #~ "\n" #~ "Початкове повідомлення про помилку: %s" #~ msgid "floppy disk" #~ msgstr "дискета" #~ msgid "" #~ "fstrim on guest filesystem %s failed. Usually you can ignore this " #~ "message. To find out more read \"Trimming\" in virt-v2v(1).\n" #~ "\n" #~ "Original message: %s" #~ msgstr "" #~ "Помилка fstrim на гостьовій файловій системі %s. Зазвичай, ви можете " #~ "ігнорувати це повідомлення. Щоб дізнатися більше про причини, ознайомтеся " #~ "із розділом «Обрізання» у довіднику щодо virt-v2v(1).\n" #~ "\n" #~ "Початкове повідомлення: %s" #~ msgid "" #~ "guest disk %s appears to be zero bytes in size.\n" #~ "\n" #~ "There could be several reasons for this:\n" #~ "\n" #~ "Check that the guest doesn't really have a zero-sized disk. virt-v2v " #~ "cannot convert such a guest.\n" #~ "\n" #~ "If you are converting a guest from an ssh source and the guest has a disk " #~ "on a block device (eg. on a host partition or host LVM LV), then " #~ "conversions of this type are not supported. See the virt-v2v-input-" #~ "xen(1) manual for a workaround." #~ msgstr "" #~ "Розмір диска %s у гостьовій системі дорівнює нулеві.\n" #~ "\n" #~ "Може бути декілька причин:\n" #~ "\n" #~ "Перевірте, чи й справді у гостьовій системі немає дисків із нульовим " #~ "розміром. virt-v2v не здатна перетворювати гостьові системи із такими " #~ "дисками.\n" #~ "\n" #~ "Якщо виконується перетворення гостьової системи із джерела з ssh і у " #~ "гостьовій системі є диск із блоковим пристроєм (наприклад розділ основної " #~ "системи або логічний том LVM основної системи), перетворення такого типу " #~ "не може бути виконано. Способи обійти проблему описано на сторінці " #~ "підручника virt-v2v-input-xen(1)." #~ msgid "" #~ "inspection could not detect the source guest (or physical machine).\n" #~ "\n" #~ "Assuming that you are running virt-v2v/virt-p2v on a source which is " #~ "supported (and not, for example, a blank disk), then this should not " #~ "happen.\n" #~ "\n" #~ "Inspection field ‘%s’ was ‘unknown’." #~ msgstr "" #~ "під час вивчення не вдалося виявити гостьової системи (або фізичної " #~ "машини) джерела.\n" #~ "\n" #~ "Якщо припустити, що virt-vv/virt-p2v запущено для джерела, підтримку " #~ "якого передбачено (а не, наприклад, порожнього диска), такого не мало " #~ "трапитися.\n" #~ "\n" #~ "Значенням визначеного поля «%s» було «unknown»." #~ msgid "" #~ "inspection could not detect the source guest (or physical machine).\n" #~ "\n" #~ "Assuming that you are running virt-v2v/virt-p2v on a source which is " #~ "supported (and not, for example, a blank disk), then this should not " #~ "happen.\n" #~ "\n" #~ "No root device found in this operating system image." #~ msgstr "" #~ "під час вивчення не вдалося виявити гостьової системи (або фізичної " #~ "машини) джерела.\n" #~ "\n" #~ "Якщо припустити, що virt-vv/virt-p2v запущено для джерела, підтримку " #~ "якого передбачено (а не, наприклад, порожнього диска), такого не мало " #~ "трапитися.\n" #~ "\n" #~ "У образі операційної системи не виявлено кореневого пристрою." #~ msgid "" #~ "inspection of the package database failed for this Linux guest. Rerun " #~ "virt-v2v with -v -x and see earlier errors. This is an internal error " #~ "which probably means that this guest is not supported by libguestfs " #~ "inspection. If the guest should work with virt-v2v (see virt-v2v docs) " #~ "then a fix will be required in libguestfs." #~ msgstr "" #~ "для цієї гостьової системи Linux не вдалося успішно виконати інспекцію " #~ "бази даних пакунків. Повторно запустіть virt-v2v із параметрами -v -x і " #~ "перегляньте список помилок. Ця помилка є внутрішньою помилкою програми, " #~ "яка, ймовірно, свідчить про те, що у засобах інспектування libguestfs не " #~ "передбачено підтримки цієї гостьової системи. Якщо ця гостьова система " #~ "має працювати з virt-v2v (див. документацію до virt-v2v), до libguestfs " #~ "має бути внесено виправлення." #~ msgid "internal error: qemu corrupted the overlay file" #~ msgstr "внутрішня помилка: файл оверлею пошкоджено qemu" #~ msgid "internal error: qemu-img did not create overlay with backing file" #~ msgstr "внутрішня помилка: qemu-img не створено оверлею із резервним файлом" #~ msgid "" #~ "libguestfs thinks this is not an installed operating system (it might be, " #~ "for example, an installer disk or live CD). If this is wrong, it is " #~ "probably a bug in libguestfs. root=%s fmt=%s" #~ msgstr "" #~ "libguestfs вважає, що це не встановлена операційна система (можливо, " #~ "наприклад, маємо справу із диском для встановлення або образом із " #~ "портативною системою). Якщо це не так, ймовірно, маємо справу із вадою у " #~ "libguestfs. root=%s fmt=%s" #~ msgid "" #~ "multi-boot operating systems are not supported by virt-v2v. Use the --" #~ "root option to change how virt-v2v handles this." #~ msgstr "" #~ "у virt-v2v не передбачено підтримки операційних систем з варіантами " #~ "завантаження. Скористайтеся параметром --root для зміни способу обробки " #~ "таких систем за допомогою virt-v2v." #~ msgid "" #~ "not enough available inodes for conversion on filesystem ‘%s’. %Ld " #~ "inodes available < %Ld inodes needed" #~ msgstr "" #~ "недостатньо доступних inode для перетворення у файловій системі «%s». " #~ "Доступно %Ld inode < потрібно %Ld inode" #~ msgid "" #~ "not enough free space for conversion on filesystem ‘%s’. %.1f MB free < " #~ "%d MB needed" #~ msgstr "" #~ "у файловій системі «%s» недостатньо вільного місця для перетворення. " #~ "Вільними є %.1f МБ < потрібно %d МБ" #~ msgid "" #~ "only Xen kernels are installed in this guest.\n" #~ "\n" #~ "Read the %s(1) manual, section \"Xen paravirtualized guests\", to see " #~ "what to do." #~ msgstr "" #~ "у цій гостьовій системі встановлено лише ядра Xen.\n" #~ "\n" #~ "Ознайомтеся із підручником з %s(1), розділ «ПАРАВІРТУАЛІЗОВАНІ ГОСТЬОВІ " #~ "СИСТЕМИ XEN», щоб дізнатися про подальші дії." #~ msgid "only ‘-it ssh’ can be used here" #~ msgstr "тут можна використовувати лише «-it ssh»" #~ msgid "only ‘-it vddk’ can be used here" #~ msgstr "тут можна використовувати лише «-it vddk»" #~ msgid "" #~ "output format should be ‘raw’ or ‘qcow2’.\n" #~ "\n" #~ "Use the ‘-of ’ option to select a different output format for the " #~ "converted guest.\n" #~ "\n" #~ "Other output formats are not supported at the moment, although might be " #~ "considered in future." #~ msgstr "" #~ "форматом виведення має бути «raw» або «qcow2».\n" #~ "\n" #~ "Скористайтеся параметром «-of <формат>» для вибору іншого формату " #~ "виведення для перетвореної гостьової системи.\n" #~ "\n" #~ "Підтримки інших форматів виведення у поточній версії ще не передбачено, " #~ "хоча їхню підтримку може бути реалізовано у майбутньому." #~ msgid "qemu-img command failed, see earlier errors" #~ msgstr "" #~ "помилка під час спроби виконати qemu-img, див. попередні повідомлення " #~ "щодо помилок" #~ msgid "qemu-img measure failed, see earlier errors" #~ msgstr "" #~ "помилка вимірювання qemu-img, див. попередні повідомлення щодо помилок" #~ msgid "" #~ "removable %s device in slot %d clashes with another disk, so it has been " #~ "moved to a higher numbered slot on the same bus. This may mean that this " #~ "removable device has a different name inside the guest (for example a CD-" #~ "ROM originally called /dev/hdc might move to /dev/hdd, or from D: to E: " #~ "on a Windows guest)." #~ msgstr "" #~ "портативний пристрій %s у слоті %d конфліктує з іншим диском, отже його " #~ "пересунуто до вищого нумерованого слоту на тому самому каналі. Це може " #~ "означати, що цей портативний пристрій має нішу назву у гостьовій системі " #~ "(наприклад CD-ROM із початковою назвою /dev/hdc може бути пересунуто до /" #~ "dev/hdd, або з D: до E: у гостьовій системі Windows)." #~ msgid "" #~ "rhv-upload: currently you must use ‘%s’. This restriction will be " #~ "loosened in a future version." #~ msgstr "" #~ "rhv-upload: у поточній версії слід використовувати «%s». Це обмеження " #~ "буде знято у наступних версіях." #~ msgid "root device %s not found. Roots found were: %s" #~ msgstr "" #~ "не знайдено кореневого пристрою %s. Знайдено такі кореневі пристрої: %s" #~ msgid "source disk has attribute in XML" #~ msgstr "диск джерела має атрибут у XML" #~ msgid "source has multiple hard disk types!" #~ msgstr "у джерела декілька типів жорстких дисків!" #~ msgid "source has multiple network adapter model!" #~ msgstr "у джерела декілька моделей адаптера мережі!" #~ msgid "source has no hard disks!" #~ msgstr "у джерелі немає жорстких дисків!" #~ msgid "source has unrecognized hard disk type" #~ msgstr "у джерела нерозпізнаний тип жорсткого диска" #~ msgid "source has unsupported hard disk type ‘%s’" #~ msgstr "у джерела непідтримуваний тип жорсткого диска, «%s»" #~ msgid "source has unsupported network adapter model ‘%s’" #~ msgstr "у джерела непідтримувана модель адаптера мережі, «%s»" #~ msgid "source has unsupported video adapter model ‘%s’" #~ msgstr "у джерела непідтримувана модель відеоадаптера, «%s»" #~ msgid "" #~ "source sockets * cores * threads <> number of vCPUs.\n" #~ "Sockets %d * cores per socket %d * threads %d = %d, but number of vCPUs = " #~ "%d.\n" #~ "\n" #~ "This is a problem with either the source metadata or the virt-v2v input " #~ "module. In some circumstances this could stop the guest from booting on " #~ "the target." #~ msgstr "" #~ "значення добутку кількості сокетів * ядер * потоків <> кількості " #~ "віртуальних процесорів.\n" #~ "Кількість сокетів %d * ядер на сокет %d * потоків %d = %d, а кількість " #~ "процесорів = %d.\n" #~ "\n" #~ "Це проблема або з метаданими джерела, або із модулем вхідних даних virt-" #~ "v2v. За певних умов це може призвести до неможливості завантаження " #~ "гостьової системи на цільовій системі." #~ msgid "" #~ "the ‘%s’ program is not available. It is needed to communicate with " #~ "vCenter." #~ msgstr "" #~ "програма «%s» недоступна. Ця програма потрібна для обміну даними з " #~ "vCenter." #~ msgid "" #~ "there are no virtio drivers available for this version of Windows (%d.%d " #~ "%s %s). virt-v2v looks for drivers in %s" #~ msgstr "" #~ "немає драйверів virtio для цієї версії Windows (%d.%d %s %s). virt-v2v " #~ "шукає драйвери у %s" #~ msgid "" #~ "there is no QXL driver for this version of Windows (%d.%d %s). virt-v2v " #~ "looks for this driver in %s" #~ msgstr "" #~ "немає драйвера QXL для цієї версії Windows (d.%d %s). virt-v2v шукає цей " #~ "драйвер у %s" #~ msgid "" #~ "there is no QXL driver for this version of Windows (%d.%d %s). virt-v2v " #~ "looks for this driver in %s\n" #~ "\n" #~ "The guest will be configured to use a basic VGA display driver." #~ msgstr "" #~ "немає драйвера QXL для цієї версії Windows (d.%d %s). virt-v2v шукає цей " #~ "драйвер у %s\n" #~ "\n" #~ "Гостьову систему буде налаштовано на використання базового драйвера " #~ "дисплеїв VGA." #~ msgid "" #~ "there is no vioscsi (virtio SCSI) driver for this version of Windows (%d." #~ "%d %s). virt-v2v looks for this driver in %s\n" #~ "\n" #~ "The guest will be configured to use a slower emulated device." #~ msgstr "" #~ "немає драйвера vioscsi (virtio SCSI) для цієї версії Windows (d.%d %s). " #~ "virt-v2v шукає цей драйвер у %s\n" #~ "\n" #~ "Гостьову систему буде налаштовано на використання повільнішого " #~ "емульованого пристрою." #~ msgid "" #~ "there is no virtio network driver for this version of Windows (%d.%d " #~ "%s). virt-v2v looks for this driver in %s" #~ msgstr "" #~ "немає драйвера мережі virtio для цієї версії Windows (d.%d %s). virt-v2v " #~ "шукає цей драйвер у %s" #~ msgid "" #~ "there must be ‘-oo rhv-disk-uuid’ parameters passed on the command line " #~ "to specify the UUIDs of guest disk images (for this guest: %d)" #~ msgstr "" #~ "у командному рядку має бути передано параметри «-oo rhv-disk-uuid» для " #~ "визначення UUID образів дисків гостьової системи (для цієї гостьової " #~ "системи: %d)" #~ msgid "" #~ "this guest cannot run on the target, because the target does not support " #~ "%s firmware (supported firmware on target: %s)" #~ msgstr "" #~ "ця гостьова система не може працювати у призначенні, оскільки у " #~ "призначенні не передбачено підтримки мікропрограм %s (підтримувана " #~ "мікропрограма на призначенні: %s)" #~ msgid "" #~ "this guest has Anti-Virus (AV) software and a new virtio block device " #~ "driver was installed. In some circumstances, AV may prevent new drivers " #~ "from working (resulting in a 7B boot error). If this happens, try " #~ "disabling AV before doing the conversion." #~ msgstr "" #~ "у цій гостьовій системі встановлено антивірусне програмне забезпечення і " #~ "встановлено новий драйвер блокових пристроїв virtio. У певних випадках " #~ "антивірусне програмне забезпечення може перешкоджати роботі нових " #~ "драйверів (результатом є помилка завантаження 7B). Якщо таке трапляється, " #~ "спробуйте вимкнути антивірус до перетворення." #~ msgid "" #~ "this guest has Windows Group Policy Objects (GPO) and a new virtio block " #~ "device driver was installed. In some circumstances, Group Policy may " #~ "prevent new drivers from working (resulting in a 7B boot error). If this " #~ "happens, try disabling Group Policy before doing the conversion." #~ msgstr "" #~ "у цій гостьовій системі працює Windows Group Policy Objects (GPO) і " #~ "встановлено новий драйвер блокових пристроїв virtio. У певних випадках " #~ "групові правила можуть перешкоджати роботі нових драйверів (результатом є " #~ "помилка завантаження 7B). Якщо таке трапляється, спробуйте вимкнути " #~ "групові правила до перетворення." #~ msgid "transfer of disk %d/%d failed, see earlier error messages" #~ msgstr "" #~ "не вдалося перенести диск %d з %d; див. попередні повідомлення про помилку" #~ msgid "" #~ "unable to find any valid modprobe configuration file such as /etc/" #~ "modprobe.conf" #~ msgstr "" #~ "не вдалося знайти жодного коректного файла налаштувань modprobe, зокрема /" #~ "etc/modprobe.conf" #~ msgid "" #~ "unable to mount the disk image for writing. This has probably happened " #~ "because Windows Hibernation or Fast Restart is being used in this guest. " #~ "You have to disable this (in the guest) in order to use virt-v2v.\n" #~ "\n" #~ "Original error message: %s" #~ msgstr "" #~ "не вдалося змонтувати образ диска для запису. Ймовірно, це сталося через " #~ "те, що у гостьовій системі використано Windows Hibernation або Fast " #~ "Restart. Вам слід вимкнути ці можливості (у гостьовій системі), щоб " #~ "скористатися virt-v2v.\n" #~ "\n" #~ "Початкове повідомлення щодо помилки: %s" #~ msgid "" #~ "unable to rebuild initrd (%s) because mkinitrd or dracut was not found in " #~ "the guest" #~ msgstr "" #~ "не вдалося перебудувати initrd (%s), оскільки у гостьовій системі не " #~ "знайдено mkinitrd або dracut" #~ msgid "" #~ "unable to rebuild initrd (%s) because update-initramfs was not found in " #~ "the guest" #~ msgstr "" #~ "не вдалося перебудувати initrd (%s), оскільки у гостьовій системі не " #~ "знайдено update-initramfs" #~ msgid "unknown source hypervisor (‘%s’) in metadata" #~ msgstr "невідомий гіпервізор джерела («%s») у метаданих" #~ msgid "virt-v2v is unable to convert this guest type (%s/%s)" #~ msgstr "" #~ "virt-v2v не може виконувати перетворення цього типу гостьових систем (%s/" #~ "%s)" #~ msgid "don’t use --live and -i options together" #~ msgstr "не використовуйте одразу параметри --live і -i" #~ msgid "input helper command (%s) does not exist or is not working" #~ msgstr "" #~ "допоміжної команди введення (%s) не існує або вона не є працездатною" #~ msgid "output helper command (%s) does not exist or is not working" #~ msgstr "" #~ "допоміжної команди виведення (%s) не існує або вона не є працездатною" #~ msgid "Fetching the remote libvirt XML metadata ..." #~ msgstr "Отримуємо метадані XML віддаленої libvirt…" #~ msgid "Parsing the remote libvirt XML metadata ..." #~ msgstr "Обробляємо метадані XML віддаленої libvirt…" #~ msgid "Use password from file" #~ msgstr "Скористатися паролем із файла" #~ msgid "Writing libvirt XML metadata to %s ..." #~ msgstr "Записуємо метадані XML libvirt до %s…" #~ msgid "copy command failed, see earlier errors" #~ msgstr "" #~ "помилка під час спроби виконати copy, див. попередні повідомлення щодо " #~ "помилок" #~ msgid "missing guest name. See the virt-v2v-copy-to-local(1) manual page." #~ msgstr "" #~ "не вказано назви гостьової системи. Див. сторінку підручника virt-v2v-" #~ "copy-to-local(1)." #~ msgid "" #~ "only copies from Xen over SSH are supported. See the virt-v2v-copy-to-" #~ "local(1) manual page." #~ msgstr "" #~ "підтримку копіювання за допомогою SSH передбачено лише з Xen. Див. " #~ "сторінку підручника virt-v2v-copy-to-local(1)." #~ msgid "ssh copy command failed, see earlier errors" #~ msgstr "" #~ "помилка під час спроби виконати copy для ssh, див. попередні повідомлення " #~ "щодо помилок" #~ msgid "the -ic parameter is required" #~ msgstr "слід вказати параметр -ic" #~ msgid "" #~ "too many command line parameters. See the virt-v2v-copy-to-local(1) " #~ "manual page." #~ msgstr "" #~ "забагато параметрів командного рядка. Див. сторінку підручника virt-v2v-" #~ "copy-to-local(1)." #~ msgid "" #~ "because of libvirt bug https://bugzilla.redhat.com/1140166 you must set " #~ "this environment variable:\n" #~ "\n" #~ "export LIBGUESTFS_BACKEND=direct\n" #~ "\n" #~ "and then rerun the virt-v2v command." #~ msgstr "" #~ "через ваду у libvirt, https://bugzilla.redhat.com/1140166 вам слід " #~ "встановити таке значення змінної середовища:\n" #~ "\n" #~ "export LIBGUESTFS_BACKEND=direct\n" #~ "\n" #~ "а потім перезапустити програму virt-v2v." #~ msgid "package ‘%s’ contains no files" #~ msgstr "у пакунку «%s» не міститься файлів" #~ msgid "" #~ "vcenter: could not read session cookie from the vCenter Server, " #~ "conversion may consume all sessions on the server and fail part way " #~ "through" #~ msgstr "" #~ "vcenter: не вдалося прочитати куку сеансу з сервера vCenter. Перетворення " #~ "може спожити усі сеанси на сервері і помилитися для одного з них." ================================================ FILE: po/virt-v2v.pot ================================================ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR Red Hat Inc. # This file is distributed under the same license as the virt-v2v package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: virt-v2v 2.11.8\n" "Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?" "component=libguestfs&product=Virtualization+Tools\n" "POT-Creation-Date: 2026-04-29 12:01+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" #: input/input_ova.ml:135 common/mltools/tools_utils.ml:238 msgid "%s" msgstr "" #: common/mltools/getopt.ml:73 msgid "" "%s\n" "Options:\n" msgstr "" #: common/mltools/tools_utils.ml:698 common/mlcustomize/customize_run.ml:390 msgid "%s (ignored)" msgstr "" #: common/mltools/checksums.ml:71 msgid "%s did not return any output" msgstr "" #: common/mlcustomize/customize_run.ml:183 msgid "%s does not exist in the guest" msgstr "" #: output/output_ovirt.ml:275 msgid "" "%s does not exist or is not a directory.\n" "\n" "Most likely cause: Either the %s (%s) has not been attached to any Data " "Center, or the path %s is not an %s at all.\n" "\n" "You have to attach the %s to a Data Center using the oVirt user interface " "first.\n" "\n" "If you don’t know what the %s mount point should be then you can also find " "this out through the oVirt user interface." msgstr "" #: common/mlcustomize/customize_run.ml:113 msgid "%s ignored for non-Windows guest" msgstr "" #: common/mlcustomize/customize_run.ml:186 msgid "%s is not a regular file in the guest" msgstr "" #. open/open.ml:39 #. inspector/inspector.ml:153 #. inspector/inspector.ml:40 #. in-place/in_place.ml:164 #. in-place/in_place.ml:45 #: v2v/v2v.ml:194 v2v/v2v.ml:183 v2v/v2v.ml:159 v2v/v2v.ml:44 open/open.ml:68 msgid "%s option used more than once on the command line" msgstr "" #: common/mltools/tools_utils.ml:234 common/mltools/tools_utils.ml:202 msgid "%s: %s" msgstr "" #: common/mltools/tools_utils.ml:236 msgid "%s: %s: %s" msgstr "" #: common/mltools/on_exit.ml:77 msgid "" "%s: Exiting on signal %s\n" "%!" msgstr "" #: common/mlcustomize/inject_virtio_win.ml:411 msgid "%s: cannot open virtio-win ISO file: %s" msgstr "" #: common/mlcustomize/customize_run.ml:64 msgid "%s: command exited with an error" msgstr "" #: v2v/v2v.ml:277 msgid "" "%s: convert a guest to use KVM\n" "\n" "virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi -os imported " "esx_guest\n" "\n" "virt-v2v -i libvirtxml guest-domain.xml -o local -os /var/tmp\n" "\n" "virt-v2v -i disk disk.img -o local -os /var/tmp\n" "\n" "There is a companion front-end called \"virt-p2v\" which comes as an\n" "ISO or CD image that can be booted on physical machines.\n" "\n" "A short summary of the options is given below. For detailed help please\n" "read the man page virt-v2v(1).\n" msgstr "" #: in-place/in_place.ml:217 msgid "" "%s: convert a guest to use KVM in-place\n" "\n" "Note this program modifies the guest in-place with no backup.\n" "Normally you should use virt-v2v.\n" "\n" "virt-v2v-in-place -i libvirtxml guest-domain.xml\n" "\n" "virt-v2v-in-place -i disk disk.img\n" "\n" "A short summary of the options is given below. For detailed help please\n" "read the man page virt-v2v-in-place(1).\n" msgstr "" #: input/input_vddk.ml:207 msgid "%s: enter password for ‘%s’: " msgstr "" #: common/mltools/tools_utils.ml:172 msgid "%s: error: %s" msgstr "" #: inspector/inspector.ml:198 msgid "" "%s: estimate disk space needed before virt-v2v conversion\n" "\n" "virt-v2v-inspector -i disk disk.img [-O output.xml]\n" "\n" "A short summary of the options is given below. For detailed help please\n" "read the man page virt-v2v-inspector(1).\n" msgstr "" #: open/open.ml:94 msgid "" "%s: open the virt-v2v input and run a program on it\n" "\n" "virt-v2v-open -i disk disk.img --run 'virt-inspector --format=raw @@'\n" "\n" "A short summary of the options is given below. For detailed help please\n" "read the man page virt-v2v-open(1).\n" msgstr "" #: common/mltools/tools_utils.ml:729 msgid "%s: operation timed out" msgstr "" #: input/OVA.ml:127 input/OVA.ml:121 msgid "" "%s: unsupported file format\n" "\n" "Formats which we currently understand for '-i ova' are: tar (uncompressed, " "compress with gzip or xz), zip" msgstr "" #: common/mltools/tools_utils.ml:191 msgid "%s: warning: %s" msgstr "" #. common/mlcustomize/customize_cmdline.ml:258 #: common/mlcustomize/customize_cmdline.ml:367 msgid "'CMD+ARGS'" msgstr "" #: common/mlcustomize/customize_run.ml:133 msgid "" "--append-line: line must not contain newline characters. Use the --append-" "line option multiple times to add several lines." msgstr "" #: common/mlcustomize/customize_run.ml:152 msgid "--chown: could not parse numeric UID:GID from %s:%s" msgstr "" #: common/mlcustomize/customize_run.ml:216 msgid "" "--inject-blnsvr: blnsvr.exe not found in virtio-win source that you specified" msgstr "" #: common/mlcustomize/customize_run.ml:225 msgid "" "--inject-qemu-ga: QEMU Guest Agent MSI not found in virtio-win source that " "you specified" msgstr "" #: common/mlcustomize/customize_run.ml:241 msgid "" "--inject-virtio-win: virtio drivers were not found for this Windows version " "in the virtio-win source that you specified" msgstr "" #: v2v/v2v.ml:146 inspector/inspector.ml:136 in-place/in_place.ml:143 msgid "--mac ip prefix length field is out of range" msgstr "" #: v2v/v2v.ml:340 msgid "--parallel parameter must be >= 1" msgstr "" #: input/input_disk.ml:43 msgid "-i disk: expecting a disk image (filename) on the command line" msgstr "" #: input/input_xen_ssh.ml:65 msgid "-i libvirt: expecting -ic parameter for Xen over SSH connection" msgstr "" #: input/input_vddk.ml:142 input/input_vcenter_https.ml:88 msgid "-i libvirt: expecting -ic parameter for vcenter connection" msgstr "" #: input/input_vcenter_https.ml:101 msgid "-i libvirt: expecting -ic parameter to contain vcenter server name" msgstr "" #: input/input_vcenter_https.ml:78 msgid "-i libvirt: expecting -ip passwordfile parameter for vCenter connection" msgstr "" #. input/input_vcenter_https.ml:70 #. input/input_libvirt.ml:41 #: input/input_xen_ssh.ml:57 input/input_vddk.ml:132 msgid "-i libvirt: expecting a libvirt guest name on the command line" msgstr "" #: input/input_libvirt.ml:59 msgid "-i libvirtxml: expecting a libvirt XML filename on the command line" msgstr "" #: input/input_ova.ml:243 msgid "-i ova: OVF references file ‘%s’ which was not found in the OVA archive" msgstr "" #: input/input_ova.ml:78 msgid "" "-i ova: corrupt OVA: checksum of disk %s does not match manifest (actual = " "%s, expected = %s)" msgstr "" #: input/input_ova.ml:52 msgid "-i ova: expecting an OVA file name on the command line" msgstr "" #: input/OVA.ml:361 msgid "" "-i ova: invalid OVA file: path ‘%s’ references a file outside the archive" msgstr "" #: input/input_vmx.ml:57 msgid "-i vmx: cannot use -it vddk in this input mode" msgstr "" #: input/input_vmx.ml:60 msgid "-i vmx: expecting a VMX file or ssh:// URI" msgstr "" #: input/vCenter.ml:159 msgid "" "-ip PASSWORD_FILE parameter ignored because 'user@' was not given in the URL" msgstr "" #: input/input_vddk.ml:119 msgid "-it vddk: ‘-io %s’ is not a valid input option" msgstr "" #: output/output.ml:54 msgid "-o %s: %s option cannot be used in this output mode" msgstr "" #: output/output_disk.ml:66 msgid "-o disk: output directory was not specified, use '-os /dir'" msgstr "" #: output/output_libvirt.ml:59 output/output_disk.ml:56 msgid "-o disk: unknown output option ‘-oo %s’" msgstr "" #: output/output_kubevirt.ml:81 msgid "-o kubevirt: output directory was not specified, use '-os /dir'" msgstr "" #: output/output_kubevirt.ml:91 msgid "" "-o kubevirt: the guest name must contain only lowercase alphanumeric " "characters, '-' or '.', and must start and end with an alphanumeric " "character. Rerun virt-v2v with the '-on name' option to rename it." msgstr "" #: output/output_kubevirt.ml:71 msgid "-o kubevirt: unknown output option ‘-oo %s’" msgstr "" #: output/output_libvirt.ml:120 msgid "" "-o libvirt: output pool ‘%s’ does not have /pool/target/path element. See " "virt-v2v-output-local(1)" msgstr "" #: output/output_libvirt.ml:124 msgid "" "-o libvirt: output pool ‘%s’ has type='dir' but the /pool/target/path " "element is not a local directory. See virt-v2v-output-local(1)" msgstr "" #: output/output_libvirt.ml:116 msgid "" "-o libvirt: output pool ‘%s’ is not a directory (type='dir'). See virt-v2v-" "output-local(1)" msgstr "" #: output/output_openstack.ml:88 msgid "-o openstack mode only supports -oa sparse -of raw" msgstr "" #: output/output_openstack.ml:115 msgid "-o openstack: unknown output option ‘-oo %s’" msgstr "" #: output/output_ovirt_upload.ml:97 msgid "-o ovirt-upload: -oo ovirt-cafile set more than once" msgstr "" #: output/output_ovirt_upload.ml:101 msgid "-o ovirt-upload: -oo ovirt-cluster set more than once" msgstr "" #: output/output_ovirt_upload.ml:112 msgid "-o ovirt-upload: invalid UUID for -oo ovirt-disk-uuid" msgstr "" #: output/output_ovirt_upload.ml:76 msgid "" "-o ovirt-upload: output password file was not specified, use ‘-op’ to point " "to a file which contains the password used to connect to the oVirt server" msgstr "" #: output/output_ovirt_upload.ml:83 msgid "-o ovirt-upload: output storage was not specified, use ‘-os’" msgstr "" #: output/output_ovirt_upload.ml:116 msgid "-o ovirt-upload: unknown output option ‘-oo %s’" msgstr "" #: output/output_ovirt_upload.ml:68 msgid "" "-o ovirt-upload: use ‘-oc’ to point to the oVirt server REST API URL, which " "is usually https://servername/ovirt-engine/api" msgstr "" #: output/output_ovirt.ml:51 msgid "-o ovirt: -os option was not specified" msgstr "" #: output/output_qemu.ml:72 msgid "-o qemu: output directory was not specified, use '-os /dir'" msgstr "" #: output/output_qemu.ml:63 msgid "-o qemu: unknown output option ‘-oo %s’" msgstr "" #: output/output_vdsm.ml:102 msgid "-o vdsm: -oo vdsm-image-uuid was not specified" msgstr "" #: output/output_vdsm.ml:81 msgid "-o vdsm: -oo vdsm-ovf-output set more than once" msgstr "" #: output/output_vdsm.ml:77 msgid "-o vdsm: -oo vdsm-vm-uuid set more than once" msgstr "" #: output/output_vdsm.ml:110 msgid "-o vdsm: -os option was not specified" msgstr "" #: output/output_vdsm.ml:97 msgid "-o vdsm: either -oo vdsm-vol-uuid or -oo vdsm-vm-uuid was not specified" msgstr "" #: output/output_vdsm.ml:90 msgid "-o vdsm: unknown output option ‘-oo %s’" msgstr "" #: output/output_vdsm.ml:74 msgid "-o vdsm: unknown vdsm-compat level ‘%s’" msgstr "" #. output/output_kubevirt.ml:84 #. output/output_disk.ml:68 #: output/output_vdsm.ml:112 output/output_qemu.ml:74 msgid "-os %s: output directory does not exist or is not a directory" msgstr "" #: input/parse_libvirt_xml.ml:279 msgid " missing 'method' attribute, ignoring" msgstr "" #: input/parse_libvirt_xml.ml:291 msgid " unknown fail='%s' attribute, ignoring" msgstr "" #: input/parse_libvirt_xml.ml:370 input/parse_libvirt_xml.ml:317 msgid " was ignored" msgstr "" #: input/parse_libvirt_xml.ml:338 msgid " with was ignored" msgstr "" #: input/parse_libvirt_xml.ml:365 msgid " with was ignored" msgstr "" #: input/parse_libvirt_xml.ml:299 msgid " element with no type attribute ignored" msgstr "" #: input/parse_libvirt_xml.ml:167 msgid " in the input libvirt XML was ignored" msgstr "" #: input/parse_libvirt_xml.ml:414 msgid "" " was ignored because the device name could not be recognized" msgstr "" #: input/input_vddk.ml:176 msgid "" " was not found in the output of ‘virsh dumpxml \"%s\"’. The " "most likely reason is that libvirt is too old, try upgrading libvirt to ≥ " "3.7." msgstr "" #: common/mlcustomize/customize_cmdline.ml:305 msgid "Add package(s) to install" msgstr "" #: common/mlcustomize/customize_cmdline.ml:270 msgid "Add package(s) to install at first boot" msgstr "" #: common/mlcustomize/customize_cmdline.ml:175 msgid "Append line(s) to the file" msgstr "" #: common/mlcustomize/customize_run.ml:137 msgid "Appending line to %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:197 msgid "Change the owner user and group ID of a file or directory" msgstr "" #: common/mlcustomize/customize_cmdline.ml:186 msgid "Change the permissions of a file" msgstr "" #: common/mlcustomize/customize_run.ml:155 msgid "Changing owner of %s to %d:%d" msgstr "" #: common/mlcustomize/customize_run.ml:141 msgid "Changing permissions of %s to %s" msgstr "" #: input/input_libvirt.ml:174 input/input_libvirt.ml:157 msgid "Checking %s checksum of disk %d/%d" msgstr "" #: common/mlcustomize/customize_cmdline.ml:488 msgid "Compatibility option doing nothing" msgstr "" #: common/mlcustomize/customize_cmdline.ml:219 msgid "Copy files in disk image" msgstr "" #: common/mlcustomize/customize_cmdline.ml:397 msgid "Copy local files or directories from a tarball into image" msgstr "" #: common/mlcustomize/customize_cmdline.ml:230 msgid "Copy local files or directories into image" msgstr "" #: common/mlcustomize/customize_run.ml:168 msgid "Copying (in image): %s to %s" msgstr "" #: v2v/v2v.ml:518 msgid "Copying disk %d/%d" msgstr "" #: common/mlcustomize/customize_run.ml:172 msgid "Copying: %s to %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:322 msgid "Create a directory" msgstr "" #: common/mlcustomize/customize_cmdline.ml:316 msgid "Create symbolic links" msgstr "" #: v2v/v2v.ml:567 msgid "Creating output metadata" msgstr "" #: common/mlcustomize/customize_cmdline.ml:321 msgid "DIR" msgstr "" #: common/mlcustomize/customize_cmdline.ml:236 msgid "Delete a file or directory" msgstr "" #: common/mlcustomize/customize_run.ml:176 msgid "Deleting: %s" msgstr "" #: common/mltools/getopt.ml:225 msgid "Display brief help" msgstr "" #: common/mltools/tools_utils.ml:388 msgid "Display version and exit" msgstr "" #: common/mlcustomize/customize_cmdline.ml:482 msgid "Do not relabel files with correct SELinux labels" msgstr "" #: v2v/v2v.ml:248 inspector/inspector.ml:177 in-place/in_place.ml:190 msgid "Don't trim filesystems before conversion" msgstr "" #: common/mltools/tools_utils.ml:392 msgid "Don’t print progress messages" msgstr "" #: common/mltools/tools_utils.ml:423 msgid "Don’t turn off echo for passphrases" msgstr "" #: common/mlcustomize/customize_cmdline.ml:247 msgid "Edit file using Perl expression" msgstr "" #: common/mlcustomize/customize_run.ml:180 msgid "Editing: %s" msgstr "" #: common/mltools/tools_utils.ml:389 msgid "Enable libguestfs debugging messages" msgstr "" #: common/mltools/tools_utils.ml:390 msgid "Enable tracing of libguestfs calls" msgstr "" #: output/output_ovirt.ml:77 msgid "Export Storage Domain" msgstr "" #: open/open.ml:88 msgid "External command to run" msgstr "" #. common/mlcustomize/customize_cmdline.ml:408 #. common/mlcustomize/customize_cmdline.ml:373 #: common/mlcustomize/customize_cmdline.ml:414 msgid "FILE" msgstr "" #: common/mlcustomize/customize_cmdline.ml:455 msgid "FILE:CONTENT" msgstr "" #: common/mlcustomize/customize_cmdline.ml:444 msgid "FILE:DEST" msgstr "" #: common/mlcustomize/customize_cmdline.ml:242 msgid "FILE:EXPR" msgstr "" #: common/mlcustomize/customize_cmdline.ml:170 msgid "FILE:LINE" msgstr "" #: common/mlcustomize/customize_cmdline.ml:203 msgid "FILENAME" msgstr "" #. in-place/in_place.ml:378 #: v2v/v2v.ml:571 open/open.ml:220 inspector/inspector.ml:334 msgid "Finishing off" msgstr "" #: common/mlcustomize/customize_cmdline.ml:275 msgid "HOSTNAME" msgstr "" #: v2v/v2v.ml:254 inspector/inspector.ml:183 in-place/in_place.ml:194 msgid "How to choose root filesystem" msgstr "" #: common/mltools/tools_utils.ml:177 msgid "" "If reporting bugs, run %s with debugging enabled and include the complete " "output:\n" "\n" " %s -v -x [...]" msgstr "" #: common/mlcustomize/customize_cmdline.ml:386 msgid "Inject a public key into the guest" msgstr "" #: common/mlcustomize/customize_cmdline.ml:282 msgid "Inject the Balloon Server into a Windows guest" msgstr "" #: common/mlcustomize/customize_cmdline.ml:288 msgid "Inject the QEMU Guest Agent into a Windows guest" msgstr "" #: common/mlcustomize/customize_cmdline.ml:294 msgid "Inject virtio-win drivers into a Windows guest" msgstr "" #. in-place/in_place.ml:176 #: v2v/v2v.ml:216 open/open.ml:80 inspector/inspector.ml:165 msgid "Input format" msgstr "" #: input/input_vddk.ml:77 msgid "" "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" "\n" "Refer to nbdkit-vddk-plugin(1) and the VDDK documentation for further\n" "information on these settings.\n" msgstr "" #: v2v/v2v.ml:222 open/open.ml:86 inspector/inspector.ml:171 msgid "Input transport" msgstr "" #: common/mlcustomize/customize_run.ml:191 msgid "Installing firstboot command: %s" msgstr "" #: common/mlcustomize/customize_run.ml:195 msgid "Installing firstboot packages: %s" msgstr "" #: common/mlcustomize/customize_run.ml:202 msgid "Installing firstboot script: %s" msgstr "" #: common/mlcustomize/customize_run.ml:248 msgid "Installing packages: %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:225 msgid "LOCALPATH:REMOTEDIR" msgstr "" #. in-place/in_place.ml:174 #: v2v/v2v.ml:214 open/open.ml:78 inspector/inspector.ml:163 msgid "Libvirt URI" msgstr "" #: common/mlcustomize/customize_run.ml:255 msgid "Linking: %s -> %s" msgstr "" #. common/mlcustomize/customize_cmdline.ml:287 #. common/mlcustomize/customize_cmdline.ml:281 #: common/mlcustomize/customize_cmdline.ml:293 msgid "METHOD" msgstr "" #: common/mltools/tools_utils.ml:429 msgid "Make output machine readable" msgstr "" #: common/mlcustomize/customize_run.ml:260 msgid "Making directory: %s" msgstr "" #: v2v/v2v.ml:226 inspector/inspector.ml:173 in-place/in_place.ml:182 msgid "Map NIC to network or bridge or assign static IP" msgstr "" #: v2v/v2v.ml:210 inspector/inspector.ml:159 in-place/in_place.ml:170 msgid "Map bridge ‘in’ to ‘out’" msgstr "" #: v2v/v2v.ml:230 inspector/inspector.ml:179 in-place/in_place.ml:186 msgid "Map network ‘in’ to ‘out’" msgstr "" #: common/mlcustomize/customize_cmdline.ml:333 msgid "Move files in disk image" msgstr "" #: common/mlcustomize/customize_run.ml:264 msgid "Moving: %s -> %s" msgstr "" #. input/input_vcenter_https.ml:45 #. input/input_ova.ml:35 #. input/input_libvirt.ml:233 #. input/input_libvirt.ml:221 #. input/input_disk.ml:35 #: input/input_xen_ssh.ml:43 input/input_vmx.ml:36 msgid "No input options can be used in this mode.\n" msgstr "" #: output/output_ovirt.ml:40 output/output_null.ml:38 #: output/output_glance.ml:40 msgid "No output options can be used in this mode.\n" msgstr "" #: output/output_vdsm.ml:166 msgid "OVF (metadata) directory (%s) does not exist or is not a directory" msgstr "" #: common/mlcustomize/firstboot.ml:268 msgid "" "One of rhsrvany.exe or pvvxsvc.exe is missing in %s. One of them is " "required in order to install Windows firstboot scripts. You can get one by " "building rhsrvany (https://github.com/rwmjones/rhsrvany)" msgstr "" #: v2v/v2v.ml:236 msgid "Output hypervisor connection" msgstr "" #: output/output_ovirt_upload.ml:51 msgid "" "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" "\n" "You can override the UUIDs of the disks, instead of using autogenerated " "UUIDs\n" "after their uploads (if you do, you must supply one for each disk):\n" "\n" " -oo ovirt-disk-uuid=UUID Disk UUID\n" msgstr "" #: output/output_qemu.ml:44 msgid "" "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" msgstr "" #: output/output_vdsm.ml:43 msgid "" "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" "\n" "For 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" msgstr "" #: output/output_disk.ml:44 msgid "" "Output options that can be used with -o disk:\n" "\n" " -oo compressed Compress the output file (used only with -of qcow2)\n" msgstr "" #: output/output_kubevirt.ml:51 msgid "" "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" msgstr "" #: output/output_libvirt.ml:47 msgid "" "Output options that can be used with -o libvirt:\n" "\n" " -oo compressed Compress the output file (used only with -of qcow2)\n" msgstr "" #. common/mlcustomize/customize_cmdline.ml:235 #: common/mlcustomize/customize_cmdline.ml:420 msgid "PATH" msgstr "" #: common/mlcustomize/customize_cmdline.ml:181 msgid "PERMISSIONS:FILE" msgstr "" #. common/mlcustomize/customize_cmdline.ml:300 #. common/mlcustomize/customize_cmdline.ml:265 #: common/mlcustomize/customize_cmdline.ml:427 msgid "PKG,PKG.." msgstr "" #: v2v/v2v.ml:263 in-place/in_place.ml:203 msgid "Prefer 'virtio-blk' or 'virtio-scsi'" msgstr "" #: v2v/v2v.ml:252 in-place/in_place.ml:192 msgid "Print source and stop" msgstr "" #: common/mlcustomize/customize_cmdline.ml:208 msgid "Read customize commands from file" msgstr "" #: common/mltools/tools_utils.ml:424 msgid "Read passphrases from stdin" msgstr "" #: common/mlcustomize/customize_cmdline.ml:421 msgid "Recursively truncate all files in directory" msgstr "" #: common/mlcustomize/customize_run.ml:298 msgid "Recursively truncating: %s" msgstr "" #: v2v/v2v.ml:240 msgid "Rename guest when converting" msgstr "" #: common/mlcustomize/customize_cmdline.ml:259 msgid "Run command at first guest boot" msgstr "" #: common/mlcustomize/customize_cmdline.ml:368 msgid "Run command in disk image" msgstr "" #: common/mlcustomize/customize_cmdline.ml:253 msgid "Run script at first guest boot" msgstr "" #: common/mlcustomize/customize_cmdline.ml:362 msgid "Run script in disk image" msgstr "" #: common/mlcustomize/customize_cmdline.ml:409 msgid "Run touch on a file" msgstr "" #: v2v/v2v.ml:250 msgid "Run up to N instances of nbdcopy in parallel" msgstr "" #: open/open.ml:188 msgid "Running external command" msgstr "" #: common/mlcustomize/customize_run.ml:307 msgid "Running touch: %s" msgstr "" #. common/mlcustomize/customize_run.ml:159 #: common/mlcustomize/customize_run.ml:274 msgid "Running: %s" msgstr "" #. common/mlcustomize/customize_cmdline.ml:252 #: common/mlcustomize/customize_cmdline.ml:361 msgid "SCRIPT" msgstr "" #: common/mltools/tools_utils.ml:425 #: common/mlcustomize/customize_cmdline.ml:351 msgid "SELECTOR" msgstr "" #: common/mlcustomize/customize_run.ml:363 msgid "SELinux relabelling" msgstr "" #. common/mlcustomize/customize_cmdline.ml:214 #: common/mlcustomize/customize_cmdline.ml:328 msgid "SOURCE:DEST" msgstr "" #: common/mlcustomize/customize_run.ml:287 msgid "SSH key could not be injected for this type of guest" msgstr "" #: common/mlcustomize/customize_run.ml:284 msgid "SSH key inject: %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:374 msgid "Scrub a file" msgstr "" #: common/mlcustomize/customize_cmdline.ml:466 msgid "Scrub build log file" msgstr "" #: common/mlcustomize/customize_run.ml:374 msgid "Scrubbing the log file" msgstr "" #: common/mlcustomize/customize_run.ml:279 msgid "Scrubbing: %s" msgstr "" #: v2v/v2v.ml:208 msgid "Set bandwidth dynamically from file" msgstr "" #: v2v/v2v.ml:206 msgid "Set bandwidth to bits per sec" msgstr "" #. in-place/in_place.ml:172 #: v2v/v2v.ml:212 open/open.ml:76 inspector/inspector.ml:161 msgid "Set input mode (default: libvirt)" msgstr "" #: v2v/v2v.ml:228 inspector/inspector.ml:175 in-place/in_place.ml:184 msgid "Set memory size" msgstr "" #: v2v/v2v.ml:256 inspector/inspector.ml:185 in-place/in_place.ml:196 msgid "Set number of vCPUs" msgstr "" #. in-place/in_place.ml:178 #: v2v/v2v.ml:218 open/open.ml:82 inspector/inspector.ml:167 msgid "Set option for input mode" msgstr "" #: v2v/v2v.ml:242 msgid "Set option for output mode" msgstr "" #: v2v/v2v.ml:234 msgid "Set output allocation mode" msgstr "" #: v2v/v2v.ml:238 msgid "Set output format" msgstr "" #: v2v/v2v.ml:232 msgid "Set output mode (default: libvirt)" msgstr "" #: v2v/v2v.ml:246 msgid "Set output storage location" msgstr "" #: common/mlcustomize/customize_cmdline.ml:476 msgid "Set password crypto" msgstr "" #: common/mltools/tools_utils.ml:433 msgid "Set program name" msgstr "" #: common/mlcustomize/customize_cmdline.ml:356 msgid "Set root password" msgstr "" #: common/mlcustomize/customize_cmdline.ml:403 msgid "Set the default timezone" msgstr "" #: common/mlcustomize/customize_cmdline.ml:276 msgid "Set the hostname" msgstr "" #: inspector/inspector.ml:181 in-place/in_place.ml:188 msgid "Set the output filename" msgstr "" #: common/mlcustomize/customize_cmdline.ml:345 msgid "Set user password" msgstr "" #: common/mlcustomize/customize_run.ml:75 msgid "Setting a random seed" msgstr "" #: common/mlcustomize/customize_run.ml:354 msgid "Setting passwords" msgstr "" #: common/mlcustomize/password.ml:113 msgid "Setting random password of %s to %s" msgstr "" #: common/mlcustomize/customize_run.ml:207 msgid "Setting the hostname: %s" msgstr "" #: common/mlcustomize/customize_run.ml:90 msgid "Setting the machine ID in %s" msgstr "" #: common/mlcustomize/customize_run.ml:302 msgid "Setting the timezone: %s" msgstr "" #: v2v/v2v.ml:481 msgid "Setting up the destination: %s" msgstr "" #. in-place/in_place.ml:342 #: v2v/v2v.ml:457 open/open.ml:184 inspector/inspector.ml:310 msgid "Setting up the source: %s" msgstr "" #: v2v/v2v.ml:463 in-place/in_place.ml:348 msgid "Source guest information (--print-source option):\n" msgstr "" #: common/mltools/tools_utils.ml:425 msgid "Specify a LUKS key" msgstr "" #: common/mlcustomize/customize_cmdline.ml:392 msgid "TARFILE:REMOTEDIR" msgstr "" #: common/mlcustomize/customize_cmdline.ml:311 msgid "TARGET:LINK[:LINK..]" msgstr "" #: common/mlcustomize/customize_cmdline.ml:402 msgid "TIMEZONE" msgstr "" #: v2v/v2v.ml:200 msgid "" "The --in-place option has been replaced by the ‘virt-v2v-in-place’ program" msgstr "" #: output/output_qemu.ml:251 msgid "" "The Virt machine has no support for IDE. Please report a bug for virt-v2v -- " "refer to virt-v2v(1) section \"BUGS\"." msgstr "" #: output/output_qemu.ml:272 msgid "" "The Virt machine has no support for floppies. Please report a bug for virt-" "v2v -- refer to virt-v2v(1) section \"BUGS\"." msgstr "" #: lib/create_ovf.ml:785 msgid "" "This guest required a password for connection to its display, but this is " "not supported by oVirt. Therefore the converted guest’s display will not " "require a separate password to connect." msgstr "" #: input/input_vmx.ml:111 msgid "" "This transport does not support guests with snapshots. Either collapse the " "snapshots for this guest and try the conversion again, or use one of the " "alternate conversion methods described in virt-v2v-input-vmware(1) section " "\"NOTES\"." msgstr "" #: common/mlcustomize/customize_cmdline.ml:415 msgid "Truncate a file to zero size" msgstr "" #: common/mlcustomize/customize_run.ml:294 msgid "Truncating: %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:192 msgid "UID:GID:PATH" msgstr "" #: common/mlcustomize/customize_cmdline.ml:339 msgid "USER:SELECTOR" msgstr "" #: common/mlcustomize/customize_cmdline.ml:380 msgid "USER[:SELECTOR]" msgstr "" #: common/mlcustomize/customize_cmdline.ml:432 msgid "Uninstall package(s)" msgstr "" #: common/mlcustomize/customize_run.ml:311 msgid "Uninstalling packages: %s" msgstr "" #: common/mlcustomize/customize_run.ml:290 msgid "Unpack tar file: %s to %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:438 msgid "Update packages" msgstr "" #: common/mlcustomize/customize_run.ml:316 msgid "Updating packages" msgstr "" #: common/mlcustomize/customize_cmdline.ml:449 msgid "Upload local file to destination" msgstr "" #: common/mlcustomize/customize_run.ml:321 msgid "Uploading: %s to %s" msgstr "" #: common/mltools/tools_utils.ml:394 msgid "Use ANSI colour sequences even if not tty" msgstr "" #. in-place/in_place.ml:180 #: v2v/v2v.ml:220 open/open.ml:84 inspector/inspector.ml:169 msgid "Use password from file to connect to input hypervisor" msgstr "" #: v2v/v2v.ml:244 msgid "Use password from file to connect to output hypervisor" msgstr "" #: v2v/v2v.ml:224 msgid "Use virt-v2v-in-place instead" msgstr "" #: common/mltools/tools_utils.ml:395 msgid "Wrap log messages even if not tty" msgstr "" #: common/mlcustomize/customize_cmdline.ml:460 msgid "Write file" msgstr "" #: common/mlcustomize/customize_run.ml:346 msgid "Writing: %s" msgstr "" #: lib/YAML.ml:167 msgid "" "YAML block contains newline character. This should not happen, please " "report a bug against virt-v2v." msgstr "" #: output/output_libvirt.ml:96 msgid "" "a libvirt domain called ‘%s’ already exists on the target.\n" "\n" "If using virt-v2v directly, use the ‘-on’ option to select a different name. " "Or delete the existing domain on the target using the ‘virsh undefine’ " "command.\n" "\n" "If using virt-p2v, select a different ‘Name’ in the ‘Target properties’. Or " "delete the existing domain on the target using the ‘virsh undefine’ command." msgstr "" #: common/mlcustomize/append_line.ml:44 msgid "append_line: %s is not a file" msgstr "" #: input/input_libvirt.ml:206 msgid "" "bad checksum for disk %d/%d\n" "Expected checksum: %s\n" "Actual checksum: %s" msgstr "" #: lib/libvirt_utils.ml:59 msgid "cannot find libvirt domain ‘%s’: %s" msgstr "" #: lib/libvirt_utils.ml:96 msgid "" "cannot find libvirt pool ‘%s’: %s\n" "\n" "Use ‘virsh pool-list --all’ to list all available pools, and ‘virsh pool-" "dumpxml ’ to display details about a particular pool.\n" "\n" "To set the pool which virt-v2v uses, add the ‘-os ’ option." msgstr "" #: lib/libvirt_utils.ml:110 msgid "cannot find libvirt volume ‘%s’: %s" msgstr "" #: common/mlcustomize/firstboot.ml:235 msgid "" "cannot finish firstboot installation by running ‘%s’ because host cpu (%s) " "and guest arch (%s) are not compatible. The firstboot service may not run " "at boot." msgstr "" #: output/output_libvirt.ml:180 msgid "cannot get libvirt domain capabilities: %s" msgstr "" #: output/output_libvirt.ml:85 msgid "cannot get libvirt hypervisor capabilities: %s" msgstr "" #: v2v/v2v.ml:105 inspector/inspector.ml:95 in-place/in_place.ml:102 msgid "cannot parse --mac \"%s\" parameter" msgstr "" #: v2v/v2v.ml:129 inspector/inspector.ml:119 in-place/in_place.ml:126 msgid "cannot parse --mac ip %s: doesn’t look like “%s” is an IP address" msgstr "" #: v2v/v2v.ml:143 inspector/inspector.ml:133 in-place/in_place.ml:140 msgid "cannot parse --mac ip prefix length field as an integer: %s" msgstr "" #: common/mlcustomize/guest_packages.ml:29 msgid "" "cannot use ‘%s’ because no package manager has been detected for this guest " "OS.\n" "\n" "If this guest OS is a common one with ordinary package management then this " "may have been caused by a failure of libguestfs inspection.\n" "\n" "For OSes such as Windows that lack package management, this is not " "possible. Try using one of the ‘--firstboot*’ flags instead (described in " "the virt-customize(1) manual)." msgstr "" #: output/output_ovirt.ml:91 msgid "" "cannot write files to the NFS server as %d:%d, even though we appear to be " "running as root. This probably means the NFS client or idmapd is not " "configured properly.\n" "\n" "You will have to chown the files that virt-v2v creates after the run, " "otherwise oVirt will not be able to import the VM." msgstr "" #: output/output_ovirt.ml:99 msgid "" "cannot write files to the NFS server as %d:%d. You might want to stop virt-" "v2v (^C) and rerun it as root." msgstr "" #: common/mlcustomize/customize_cmdline.ml:508 msgid "command '%s' cannot be used in command files, see the man page" msgstr "" #: common/mlcustomize/customize_cmdline.ml:525 msgid "command '%s' not valid, see the man page" msgstr "" #: common/mldrivers/linux_bootloaders.ml:318 msgid "could not add grub2 serial console (ignored)" msgstr "" #: input/ssh.ml:52 msgid "" "could not copy the VMX file from the remote server, see earlier error " "messages" msgstr "" #: output/output_libvirt.ml:211 msgid "" "could not define libvirt domain: %s.\n" "The libvirt XML is still available in ‘%s’. Try running ‘virsh -c %s define " "%s’ yourself instead." msgstr "" #: common/mldrivers/linux_bootloaders.ml:221 msgid "could not determine a way to update the configuration of Grub2" msgstr "" #: input/input_vddk.ml:243 msgid "" "could not fetch thumbprint from the server, you mus use ‘-io vddk-" "thumbprint=XX:XX...’" msgstr "" #: common/mldrivers/linux_bootloaders.ml:376 msgid "could not find bootloader mount point (%s): %s" msgstr "" #: common/mldrivers/windows_drivers.ml:91 msgid "" "could not find registry entry " "HKEY_LOCAL_MACHINE\\SYSTEM\\DriverDatabase\\DeviceIds in this Windows " "guest. It may be either a very old or very new version of Windows that we " "cannot process." msgstr "" #: common/mlcustomize/firstboot.ml:232 msgid "" "could not finish firstboot installation by running ‘%s’ because the command " "failed: %s" msgstr "" #. input/input_vcenter_https.ml:94 #: input/select_input.ml:66 input/input_xen_ssh.ml:71 input/input_vddk.ml:151 msgid "could not parse '-ic %s'. Original error message was: %s" msgstr "" #: input/parse_libvirt_xml.ml:407 input/parse_libvirt_xml.ml:54 msgid "could not parse device name ‘%s’ from the source libvirt XML" msgstr "" #: input/OVF.ml:168 msgid "could not parse disk rasd:HostResource from OVF document" msgstr "" #: input/input_ova.ml:98 msgid "could not parse ovf:Name from OVF document" msgstr "" #: output/output_ovirt.ml:247 msgid "" "could not read the %s specified by the '-os %s' parameter on the command " "line. Is it really an OVirt %s? The original error is: %s" msgstr "" #: common/mldrivers/linux_bootloaders.ml:336 msgid "" "could not rebuild grub2 configuration file (%s). This may mean that grub " "output will not be sent to the serial port, but otherwise should be " "harmless. Original error message: %s" msgstr "" #: output/output_libvirt.ml:156 msgid "could not refresh libvirt pool ‘%s’: %s" msgstr "" #: common/mldrivers/linux_bootloaders.ml:320 msgid "could not remove grub2 serial console (ignored)" msgstr "" #: common/mltools/registry.ml:93 msgid "" "decode_utf16le: Windows UTF16-LE string contains non-7-bit characters. This " "is a bug in %s, please report it." msgstr "" #: common/mltools/registry.ml:87 msgid "" "decode_utf16le: Windows string does not appear to be in UTF16-LE encoding. " "This could be a bug in %s." msgstr "" #: common/mldrivers/linux_bootloaders.ml:126 msgid "didn't find grub entry for kernel %s" msgstr "" #: input/parse_libvirt_xml.ml:194 msgid "display in the input libvirt XML was ignored" msgstr "" #: output/output_qemu.ml:147 msgid "don’t know how to convert UEFI guests for architecture %s" msgstr "" #: common/mldrivers/linux.ml:158 msgid "don’t know how to find file owner using %s" msgstr "" #: common/mldrivers/linux.ml:89 msgid "don’t know how to get list of files from package using %s" msgstr "" #: common/mltools/curl.ml:82 msgid "downloading %s" msgstr "" #: lib/networks.ml:84 msgid "" "duplicate --mac parameter. Duplicate mappings specified for MAC address %s." msgstr "" #: lib/networks.ml:102 msgid "" "duplicate -b/--bridge parameter. Duplicate mappings specified for bridge %s." msgstr "" #: lib/networks.ml:108 msgid "duplicate -b/--bridge parameter. Only one default mapping is allowed." msgstr "" #: lib/networks.ml:90 msgid "" "duplicate -n/--network parameter. Duplicate mappings specified for network " "%s." msgstr "" #: lib/networks.ml:96 msgid "duplicate -n/--network parameter. Only one default mapping is allowed." msgstr "" #: input/OVF.ml:143 msgid "error parsing disk fileRef" msgstr "" #: input/input_ova.ml:124 msgid "error uncompressing %s, see earlier error messages" msgstr "" #: input/OVA.ml:210 input/OVA.ml:112 msgid "error unpacking %s, see earlier error messages" msgstr "" #: common/mltools/tools_utils.ml:251 msgid "exception: %s" msgstr "" #: common/mltools/tools_utils.ml:458 msgid "exited with error %d" msgstr "" #: lib/utils.ml:34 msgid "exited with non-zero error code %d" msgstr "" #: common/mltools/xpath_helpers.ml:36 msgid "" "expecting XML expression to return an integer (expression: %s, matching " "string: %s)" msgstr "" #: common/mltools/tools_utils.ml:443 msgid "external command" msgstr "" #: output/output_ovirt_upload.ml:265 msgid "failed server prechecks, see earlier errors" msgstr "" #: output/output_ovirt_upload.ml:507 msgid "failed to create virtual machine, see earlier errors" msgstr "" #: output/output_ovirt_upload.ml:479 msgid "failed to finalize the transfers, see earlier errors" msgstr "" #: common/mldrivers/linux_bootloaders.ml:208 msgid "failed to find grub2-mkconfig binary (but Grub2 was detected on guest)" msgstr "" #: input/OVA.ml:461 msgid "failed to parse line returned by tar: %S" msgstr "" #: output/output_ovirt_upload.ml:394 msgid "failed to start transfer, see earlier errors" msgstr "" #: output/output_ovirt_upload.ml:311 msgid "failed vmchecks, see earlier errors" msgstr "" #: common/mltools/tools_utils.ml:242 msgid "failure: %s" msgstr "" #: input/input_ova.ml:134 msgid "file ‘%s’ not found in the ova" msgstr "" #: common/mlcustomize/firstboot.ml:143 msgid "" "firstboot: unknown version for old firstboot.service file %s (md5=%s), it " "will not be removed" msgstr "" #: common/mltools/tools_utils.ml:261 msgid "generated by %s %s" msgstr "" #: output/create_libvirt_xml.ml:39 msgid "get_osinfo_id: unknown guest operating system: %s" msgstr "" #: output/output_glance.ml:66 msgid "" "glance: glance client is not installed or set up correctly. You may need to " "set environment variables or source a script to enable authentication. See " "preceding messages for details." msgstr "" #: output/output_glance.ml:139 msgid "glance: image upload to glance failed, see earlier errors" msgstr "" #: common/mlcustomize/firstboot.ml:391 common/mlcustomize/firstboot.ml:164 msgid "guest type %s is not supported" msgstr "" #: common/mlcustomize/firstboot.ml:418 msgid "guest type %s/%s is not supported" msgstr "" #: common/mltools/tools_utils.ml:752 msgid "" "host (%s/%s) and guest (%s/%s) are not compatible, so you cannot use command " "line options that involve running commands in the guest. Use --firstboot " "scripts instead." msgstr "" #: common/mlcustomize/customize_run.ml:209 msgid "hostname could not be set for this type of guest" msgstr "" #: common/mldrivers/linux_kernels.ml:342 msgid "ignoring kernel %s in bootloader, as it does not exist." msgstr "" #: output/output_vdsm.ml:160 msgid "image directory (%s) does not exist or is not a directory" msgstr "" #: input/parse_libvirt_xml.ml:81 msgid "in the libvirt XML metadata, is missing or empty" msgstr "" #: input/parse_libvirt_xml.ml:87 msgid "in the libvirt XML metadata, is missing or empty" msgstr "" #: input/input_vcenter_https.ml:52 input/input_libvirt.ml:107 msgid "in-place mode does not work with HTTP source" msgstr "" #: input/input_vddk.ml:146 msgid "in-place mode does not work with VDDK source" msgstr "" #: input/input_vmx.ml:43 msgid "in-place mode does not work with VMX source" msgstr "" #: input/input_xen_ssh.ml:50 msgid "in-place mode does not work with Xen over SSH source" msgstr "" #: output/output_kubevirt.ml:116 msgid "" "incorrect number of '-oo disk' parameters. This guest has %d disks, but the " "parameter was used %d times." msgstr "" #: input/input_xen_ssh.ml:119 msgid "" "input from xen over ssh does not support disks stored on remote block " "devices. See virt-v2v-input-xen(1) section \"Xen or ssh conversions from " "block devices\"." msgstr "" #. in-place/in_place.ml:397 #: v2v/v2v.ml:590 open/open.ml:238 inspector/inspector.ml:353 msgid "" "insufficient free space in the conversion server temporary directory %s " "(%s).\n" "\n" "Either free up space in that directory, or set the LIBGUESTFS_CACHEDIR " "environment variable to point to another directory with more than 1GB of " "free space.\n" "\n" "See also the virt-v2v(1) manual, section \"Minimum free space check in the " "host\"." msgstr "" #: common/mltools/tools_utils.ml:249 msgid "internal error: Not_found exception was thrown" msgstr "" #: common/mltools/tools_utils.ml:246 msgid "internal error: assertion failed at %s, line %d, char %d" msgstr "" #: common/mltools/tools_utils.ml:244 msgid "internal error: invalid argument: %s" msgstr "" #: common/mldrivers/linux.ml:128 msgid "internal error: is_file_owned: dpkg command returned no output" msgstr "" #: common/mldrivers/linux.ml:133 msgid "internal error: is_file_owned: unexpected output from dpkg command: %s" msgstr "" #: common/mldrivers/linux_bootloaders.ml:130 msgid "internal error: regular expression did not match ‘%s’" msgstr "" #: v2v/v2v.ml:548 msgid "internal error: wait returned unexpected process ID %d status \"%s\"" msgstr "" #: v2v/v2v.ml:114 inspector/inspector.ml:104 in-place/in_place.ml:111 msgid "invalid --mac ip option" msgstr "" #: v2v/v2v.ml:98 inspector/inspector.ml:88 in-place/in_place.ml:95 msgid "invalid -b/--bridge parameter" msgstr "" #: v2v/v2v.ml:90 inspector/inspector.ml:80 in-place/in_place.ml:87 msgid "invalid -n/--network parameter" msgstr "" #: input/parse_domain_from_vmx.ml:402 msgid "invalid cpuid.coresPerSocket < number of vCPUs" msgstr "" #. common/mlcustomize/customize_cmdline.ml:153 #. common/mlcustomize/customize_cmdline.ml:145 #: common/mlcustomize/customize_cmdline.ml:161 msgid "invalid format for '--%s' parameter, see the man page" msgstr "" #: common/mltools/tools_utils.ml:362 msgid "invalid format string for --machine-readable: %s" msgstr "" #: lib/utils.ml:279 msgid "invalid input filename (%s)" msgstr "" #: input/OVA.ml:445 msgid "invalid offset returned by tar: %S" msgstr "" #: common/mltools/tools_utils.ml:377 msgid "invalid output fd for --machine-readable: %s" msgstr "" #: common/mltools/tools_utils.ml:379 msgid "invalid output for --machine-readable: %s" msgstr "" #: common/mltools/tools_utils.ml:371 msgid "invalid output stream for --machine-readable: %s" msgstr "" #: common/mlcustomize/password.ml:73 msgid "invalid password selector ‘%s’; see the man page" msgstr "" #: input/OVA.ml:450 msgid "invalid size returned by tar: %S" msgstr "" #: common/mlcustomize/ssh_key.ml:45 msgid "invalid ssh-inject selector ‘%s’; see the man page" msgstr "" #: input/OVF.ml:82 msgid "invalid vmw:CoresPerSocket (%d) ignored" msgstr "" #: input/OVF.ml:88 msgid "invalid vmw:CoresPerSocket < number of cores" msgstr "" #: common/mldrivers/linux_bootloaders.ml:114 msgid "kernel %s is not under grub tree %s" msgstr "" #: common/mltools/tools_utils.ml:542 common/mltools/tools_utils.ml:461 msgid "killed by signal %d" msgstr "" #: common/mltools/tools_utils.ml:240 msgid "libguestfs error: %s" msgstr "" #: lib/libvirt_utils.ml:72 msgid "" "libvirt domain ‘%s’ is running or paused. Converting a live guest will " "result in corrupted output. However this is safe if you're converting from a " "snapshot" msgstr "" #: common/mlcustomize/customize_run.ml:47 msgid "log file %s: %s (ignored)" msgstr "" #: input/OVA.ml:147 msgid "" "making OVA directory public readable to work around libvirt bug https://" "bugzilla.redhat.com/1045069" msgstr "" #: input/input_ova.ml:86 msgid "manifest has a checksum for non-existent file %s (ignored)" msgstr "" #: common/mlcustomize/customize_cmdline.ml:472 msgid "md5|sha256|sha512" msgstr "" #: common/mlcustomize/customize_run.ml:119 msgid "method '%s' is no longer supported" msgstr "" #: common/mltools/JSON_parser.ml:39 msgid "missing value for the key ‘%s’" msgstr "" #: input/OVA.ml:276 msgid "more than one .ovf file was found in %s" msgstr "" #: common/mltools/JSON_parser.ml:34 msgid "more than value for the key ‘%s’" msgstr "" #: output/output_ovirt.ml:222 msgid "" "mount command failed, see earlier errors.\n" "\n" "This probably means you didn't specify the right %s path [-os %s], or else " "you need to rerun virt-v2v as root." msgstr "" #: common/mlcustomize/customize_run.ml:103 msgid "" "multiple --root-password/--password options set the password for user ‘%s’ " "twice" msgstr "" #: input/input_vddk.ml:319 msgid "" "nbdkit VDDK plugin is not installed or not working. It is required if you " "want to use VDDK.\n" "\n" "It 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 ’/%s/libvixDiskLib.so.?’.\n" "\n" "See also the virt-v2v-input-vmware(1) manual." msgstr "" #: input/input_vddk.ml:313 msgid "" "nbdkit VDDK plugin is not installed or not working. It is required if you " "want to use VDDK.\n" "\n" "The 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" "\n" "See also the virt-v2v-input-vmware(1) manual." msgstr "" #: lib/nbdkit.ml:223 msgid "nbdkit did not start up. See previous debugging messages for problems." msgstr "" #: lib/nbdkit.ml:225 msgid "" "nbdkit did not start up. There may be errors printed by nbdkit above.\n" "\n" "If the messages above are not sufficient to diagnose the problem then add " "the ‘virt-v2v -v -x’ options and examine the debugging output carefully." msgstr "" #: input/nbdkit_ssh.ml:36 input/nbdkit_curl.ml:32 input/input_vddk.ml:283 msgid "nbdkit is not installed or not working" msgstr "" #: input/input_disk.ml:48 msgid "" "nbdkit is not installed or not working. It is required to use ‘-i disk’." msgstr "" #: input/input_libvirt.ml:68 msgid "" "nbdkit is not installed or not working. It is required to use ‘-i libvirt|" "libvirtxml’." msgstr "" #: output/output.ml:178 output/output.ml:77 msgid "" "nbdkit is not installed or not working. It is required to use ‘-o disk’." msgstr "" #: output/output_null.ml:57 msgid "" "nbdkit is not installed or not working. It is required to use ‘-o null’." msgstr "" #: output/output_ovirt_upload.ml:163 msgid "" "nbdkit is not installed or not working. It is required to use ‘-o ovirt-" "upload’. See the virt-v2v-output-ovirt(1) manual." msgstr "" #: input/input_vddk.ml:285 msgid "nbdkit must be >= 1.45.11 for input from VDDK" msgstr "" #: output/output_ovirt_upload.ml:176 msgid "" "nbdkit python plugin is not installed or not working. It is required if you " "want to use ‘-o ovirt-upload’.\n" "\n" "See also the virt-v2v-output-ovirt(1) manual." msgstr "" #: output/output_ovirt_upload.ml:190 msgid "" "nbdkit was compiled without SELinux support. You will have to recompile " "nbdkit with libselinux-devel installed, or else set SELinux to Permissive " "mode while doing the conversion." msgstr "" #. input/input_libvirt.ml:76 #. input/input_disk.ml:53 #: input/nbdkit_ssh.ml:42 input/nbdkit_curl.ml:38 input/input_vddk.ml:289 msgid "nbdkit-cow-filter is not installed or not working" msgstr "" #: input/nbdkit_curl.ml:35 msgid "nbdkit-curl-plugin is not installed" msgstr "" #. input/input_disk.ml:51 #: output/output.ml:181 output/output.ml:80 input/input_libvirt.ml:72 msgid "nbdkit-file-plugin is not installed or not working" msgstr "" #: input/input_libvirt.ml:74 input/input_disk.ml:71 msgid "nbdkit-nbd-plugin is not installed or not working" msgstr "" #: output/output_null.ml:60 msgid "nbdkit-null-plugin is not installed or not working" msgstr "" #: input/nbdkit_ssh.ml:39 msgid "nbdkit-ssh-plugin is not installed" msgstr "" #: input/input_vddk.ml:287 msgid "nbdkit-vddk-plugin is not installed" msgstr "" #: lib/nbdkit.ml:56 msgid "nbdkit: unexpected version in --dump-config: %s" msgstr "" #. input/input_vcenter_https.ml:49 #. input/input_ova.ml:46 #. input/input_libvirt.ml:35 #. input/input_disk.ml:39 #: input/input_xen_ssh.ml:47 input/input_vmx.ml:40 msgid "no -io (input options) are allowed here" msgstr "" #: output/output_ovirt.ml:44 output/output_null.ml:42 #: output/output_glance.ml:44 msgid "no -oo (output options) are allowed here" msgstr "" #: input/OVA.ml:273 msgid "no .ovf file was found in %s" msgstr "" #: common/mldrivers/linux_bootloaders.ml:402 msgid "no bootloader detected" msgstr "" #: input/parse_domain_from_vmx.ml:359 msgid "no displayName key found in VMX file" msgstr "" #: input/OVF.ml:148 msgid "no href in ovf:File (id=%s)" msgstr "" #: common/mldrivers/linux_kernels.ml:194 msgid "no initrd was found in /boot matching %s %s." msgstr "" #: common/mldrivers/linux_kernels.ml:317 msgid "" "no installed kernel packages were found.\n" "\n" "This probably indicates that %s was unable to inspect this guest properly." msgstr "" #: common/mldrivers/linux_kernels.ml:354 msgid "" "no kernels were found in the bootloader configuration.\n" "\n" "This probably indicates that %s was unable to parse the bootloader " "configuration of this guest." msgstr "" #: output/python_script.ml:55 msgid "no python binary called ‘%s’ can be found on the $PATH" msgstr "" #: input/select_input.ml:106 msgid "" "no support for remote libvirt connections to '-ic %s'. The conversion may " "fail when it tries to read the source disks." msgstr "" #: lib/create_ovf.ml:1027 msgid "" "oVirt cannot emulate ‘%s’ sound cards. This sound card will be dropped from " "the output." msgstr "" #: lib/create_ovf.ml:875 lib/create_ovf.ml:512 msgid "oVirt does not support the output format ‘%s’, only raw or qcow2" msgstr "" #: output/output_openstack.ml:120 msgid "openstack: -oo server-id= not present" msgstr "" #: output/output_openstack.ml:338 msgid "" "openstack: failed to attach cinder volume to VM, see earlier error messages" msgstr "" #: output/output_openstack.ml:291 msgid "openstack: failed to create a cinder volume, see earlier error messages" msgstr "" #: output/output_openstack.ml:304 msgid "" "openstack: failed to query cinder volume status, see earlier error messages" msgstr "" #: output/output_openstack.ml:442 msgid "" "openstack: failed to set image properties on cinder volume, see earlier " "error messages" msgstr "" #: output/output_openstack.ml:199 msgid "" "openstack: precheck failed, there may be a problem with authentication, see " "earlier error messages" msgstr "" #: output/output_openstack.ml:311 msgid "" "openstack: unknown volume status \"%s\": expected \"creating\" or " "\"available\"" msgstr "" #: output/output.ml:133 msgid "output mode only supports raw or qcow2 format (format: %s)" msgstr "" #: input/OVF.ml:263 msgid "" "ova disk has an unknown VMware controller type (%d), please report this as a " "bug supplying the *.ovf file extracted from the ova" msgstr "" #: input/OVF.ml:259 msgid "" "ova disk has no parent controller, please report this as a bug supplying the " "*.ovf file extracted from the ova" msgstr "" #: output/output_ovirt_upload.ml:367 msgid "" "ovirt-upload: -of %s: Only output format ‘raw’ or ‘qcow2’ is supported. If " "the input is in a different format then force one of these output formats by " "adding either ‘-of raw’ or ‘-of qcow2’ on the command line." msgstr "" #: common/mlcustomize/password.ml:51 msgid "" "password-crypto: unknown algorithm %s, use \"md5\", \"sha256\", \"sha512\" " "or \"yescrypt\"" msgstr "" #: common/mlcustomize/password.ml:197 msgid "" "password: using insecure md5 password encryption for guest of type %s " "version %d.%d.\n" "If this is incorrect, use --password-crypto option and file a bug." msgstr "" #: common/mlcustomize/customize_run.ml:359 msgid "passwords could not be set for this type of guest" msgstr "" #: lib/qemuNBD.ml:125 msgid "" "qemu-nbd did not start up. See previous debugging messages for problems." msgstr "" #: lib/qemuNBD.ml:127 msgid "" "qemu-nbd did not start up. There may be errors printed by qemu-nbd above.\n" "\n" "If the messages above are not sufficient to diagnose the problem then add " "the ‘virt-v2v -v -x’ options and examine the debugging output carefully." msgstr "" #: lib/qemuNBD.ml:47 msgid "qemu-nbd: unexpected version in --version: %s" msgstr "" #: common/mlcustomize/customize_run.ml:77 msgid "random seed could not be set for this type of guest" msgstr "" #: input/parse_domain_from_vmx.ml:44 msgid "remote vmx ‘%s’ could not be parsed as a URI" msgstr "" #. common/mlcustomize/inject_virtio_win.ml:357 #. common/mlcustomize/inject_virtio_win.ml:352 #: common/mlcustomize/inject_virtio_win.ml:362 msgid "" "root directory ‘/’ is missing from the virtio-win directory or ISO.\n" "\n" "This should not happen and may indicate that virtio-win or virt-v2v is " "broken in some way. Please report this as a bug with a full debug log." msgstr "" #: common/mltools/tools_utils.ml:420 common/options/keys.c:306 #, c-format msgid "selector '%s': invalid TYPE" msgstr "" #: common/mltools/tools_utils.ml:412 common/options/keys.c:296 #, c-format msgid "selector '%s': missing FILENAME, or too many fields" msgstr "" #: common/mltools/tools_utils.ml:402 common/options/keys.c:274 #, c-format msgid "selector '%s': missing ID" msgstr "" #: common/mltools/tools_utils.ml:407 common/options/keys.c:287 #, c-format msgid "selector '%s': missing KEY_STRING, or too many fields" msgstr "" #: common/mltools/tools_utils.ml:404 common/options/keys.c:281 #, c-format msgid "selector '%s': missing TYPE" msgstr "" #: common/mltools/tools_utils.ml:416 common/options/keys.c:304 #, c-format msgid "selector '%s': too many fields" msgstr "" #: lib/utils.ml:35 msgid "signalled by signal %d" msgstr "" #: common/mlcustomize/guest_packages.ml:40 msgid "" "sorry, ‘%s’ with the ‘%s’ package manager has not been implemented yet.\n" "\n" "You can work around this by using one of the ‘--run*’ or ‘--firstboot*’ " "options instead (described in the virt-customize(1) manual)." msgstr "" #: common/mlcustomize/ssh_key.ml:57 msgid "ssh-inject: $HOME environment variable is not set" msgstr "" #: common/mlcustomize/ssh_key.ml:93 msgid "ssh-inject: key is an empty string" msgstr "" #: common/mlcustomize/ssh_key.ml:66 msgid "ssh-inject: no public key file found in %s" msgstr "" #: common/mlcustomize/ssh_key.ml:83 msgid "ssh-inject: public key file (%s) is empty" msgstr "" #: common/mlcustomize/ssh_key.ml:112 msgid "ssh-inject: the user %s does not exist on the guest" msgstr "" #. common/mltools/tools_utils.ml:464 #: lib/utils.ml:36 common/mltools/tools_utils.ml:545 msgid "stopped by signal %d" msgstr "" #: output/changeuid.ml:58 msgid "subprocess exited with non-zero error code %d" msgstr "" #: output/changeuid.ml:60 msgid "subprocess signalled or stopped by signal %d" msgstr "" #: lib/utils.ml:33 msgid "success" msgstr "" #: output/create_libvirt_xml.ml:297 msgid "" "target hypervisor does not support floppy devices, but floppy devices were " "found in the source guest" msgstr "" #: output/output_ovirt_upload.ml:156 msgid "" "the Python module ‘ovirtsdk4’ could not be loaded, is it installed? See " "previous messages for problems." msgstr "" #: output/output_ovirt_upload.ml:453 msgid "the cluster ‘%s’ does not support the architecture %s but %s" msgstr "" #: common/mlcustomize/customize_run.ml:59 msgid "" "the command may have failed because the network is disabled. Try either " "removing ‘--no-network’ or adding ‘--network’ on the command line." msgstr "" #: common/mltools/JSON_parser.ml:84 msgid "the key ‘%s’ was not found in a list of objects" msgstr "" #: output/output_ovirt_upload.ml:288 msgid "" "the number of ‘-oo ovirt-disk-uuid’ parameters passed on the command line " "has to match the number of guest disk images (for this guest: %d)" msgstr "" #: output/output_vdsm.ml:133 msgid "" "the number of ‘-oo vdsm-image-uuid’ and ‘-oo vdsm-vol-uuid’ parameters " "passed on the command line has to match the number of guest disk images (for " "this guest: %d)" msgstr "" #: output/output_libvirt.ml:239 msgid "the target hypervisor does not support a %s KVM guest" msgstr "" #: common/mltools/JSON_parser.ml:78 msgid "the value for key ‘%s’ is not a string as expected" msgstr "" #: common/mltools/JSON_parser.ml:50 msgid "the value for the key ‘%s’ is not a bool" msgstr "" #: common/mltools/JSON_parser.ml:45 msgid "the value for the key ‘%s’ is not a string" msgstr "" #: common/mltools/JSON_parser.ml:70 msgid "the value for the key ‘%s’ is not an integer" msgstr "" #: common/mltools/JSON_parser.ml:55 msgid "the value for the key ‘%s’ is not an object" msgstr "" #: common/mltools/JSON_parser.ml:59 msgid "the value is not an object" msgstr "" #: common/mltools/JSON_parser.ml:35 msgid "the value of the key ‘%s’ is not an object" msgstr "" #: lib/create_ovf.ml:519 msgid "" "the virtual size of the input disk %d is not an exact multiple of 512 " "bytes. The virtual size is: %Ld.\n" "\n" "This probably means something unexpected is going on, so please file a bug " "about this issue." msgstr "" #: output/output_openstack.ml:144 msgid "" "the ‘%s’ program is not available. It is needed to communicate with " "OpenStack." msgstr "" #: output/output_ovirt.ml:265 msgid "" "there are multiple UUIDs in the %s (%s). This is unexpected, and may be a " "bug in virt-v2v or OVirt." msgstr "" #: output/output_ovirt.ml:262 msgid "there are no UUIDs in the %s (%s). Is it really an OVirt %s?" msgstr "" #: common/mlcustomize/inject_virtio_win.ml:153 msgid "" "there are no virtio drivers available for this version of Windows (%d.%d %s " "%s %s). virt-v2v looks for drivers in %s\n" "\n" "The guest will be configured to use slower emulated devices." msgstr "" #: common/mlcustomize/inject_virtio_win.ml:175 msgid "" "there is no virtio block device driver for this version of Windows (%d.%d " "%s). virt-v2v looks for this driver in %s\n" "\n" "The guest will be configured to use a slower emulated device." msgstr "" #: common/mlcustomize/inject_virtio_win.ml:206 msgid "" "there is no virtio network driver for this version of Windows (%d.%d %s). " "virt-v2v looks for this driver in %s\n" "\n" "The guest will be configured to use a slower emulated device." msgstr "" #: input/parse_libvirt_xml.ml:545 msgid "this guest has a direct network interface which will be ignored" msgid_plural "this guest has direct network interfaces which will be ignored" msgstr[0] "" msgstr[1] "" #: input/parse_libvirt_xml.ml:527 msgid "this guest has a passthrough host device which will be ignored" msgid_plural "this guest has passthrough host devices which will be ignored" msgstr[0] "" msgstr[1] "" #: input/parse_libvirt_xml.ml:248 msgid "this guest has no non-removable disks" msgstr "" #: output/output.ml:65 msgid "this output module doesn't support copying more than %d disks" msgstr "" #: common/mlcustomize/timezone.ml:35 msgid "timezone '%s' does not exist, use a location like 'Europe/London'" msgstr "" #: common/mlcustomize/customize_run.ml:304 msgid "timezone could not be set for this type of guest" msgstr "" #: input/OVA.ml:318 msgid "unable to parse line from manifest file: %S" msgstr "" #: common/mltools/urandom.ml:37 msgid "unexpected end of file while reading /dev/urandom" msgstr "" #: input/input_libvirt.ml:196 msgid "unexpected output from the %s command" msgstr "" #: common/mltools/checksums.ml:58 msgid "unhandled checksum type ‘%s’" msgstr "" #: lib/types.ml:524 msgid "unknown --root option: %s" msgstr "" #: input/select_input.ml:51 msgid "unknown -i option: %s" msgstr "" #: output/select_output.ml:74 msgid "unknown -o option: %s" msgstr "" #: v2v/v2v.ml:164 msgid "unknown -oa option: %s" msgstr "" #: input/input_libvirt.ml:189 msgid "unknown method='%s'" msgstr "" #: input/OVF.ml:103 msgid "unknown Config:firmware value %s (expected \"bios\" or \"efi\")" msgstr "" #: lib/create_ovf.ml:446 lib/create_ovf.ml:247 msgid "unknown Windows 10 variant: %s (%s)" msgstr "" #: v2v/v2v.ml:319 in-place/in_place.ml:256 msgid "unknown block driver ‘--block-driver %s’" msgstr "" #: input/parse_domain_from_vmx.ml:415 msgid "unknown firmware value '%s', assuming BIOS" msgstr "" #: lib/create_ovf.ml:454 lib/create_ovf.ml:255 msgid "unknown guest operating system: %s %s %d.%d %s (%s)" msgstr "" #: v2v/v2v.ml:329 open/open.ml:132 inspector/inspector.ml:238 msgid "unknown input transport ‘-it %s’" msgstr "" #: input/parse_domain_from_vmx.ml:428 msgid "unknown sound device '%s' ignored" msgstr "" #: input/parse_libvirt_xml.ml:215 msgid "unknown sound model %s ignored" msgstr "" #: input/OVF.ml:156 msgid "unsupported compression in OVF: %s" msgstr "" #: input/input_vcenter_https.ml:123 msgid "" "vcenter: was not found in the XML. You need to " "upgrade to libvirt ≥ 1.2.20." msgstr "" #: input/vCenter.ml:79 msgid "vcenter: URL not found: %s" msgstr "" #: input/vCenter.ml:70 msgid "vcenter: incorrect username or password" msgstr "" #: input/vCenter.ml:72 msgid "" "vcenter: incorrect username or password. You might need to specify the " "username in the URI like this: [vpx|esx|..]://USERNAME@[etc]" msgstr "" #: input/vCenter.ml:84 msgid "vcenter: invalid response from server: %s" msgstr "" #: input/vCenter.ml:194 msgid "vcenter: no status code in output of ‘curl’ command." msgstr "" #: output/output_vdsm.ml:148 msgid "vdsm: invalid -os parameter does not contain a valid UUID: %s" msgstr "" #: output/output_openstack.ml:56 msgid "" "virt-v2v -oo server-id= [os-*=...]\n" "\n" "Specify the name or UUID of the conversion appliance using\n" "\n" " virt-v2v ... -o openstack -oo server-id=\n" "\n" "When virt-v2v runs it will attach the Cinder volumes to the\n" "conversion appliance, so this name or UUID must be the name\n" "of the virtual machine on OpenStack where virt-v2v is running.\n" "\n" "In addition, all usual OpenStack “os-*” parameters or “OS_*”\n" "environment variables can be used.\n" "\n" "Openstack “--os-*” parameters must be written as “virt-v2v -oo os-*”.\n" "\n" "For example:\n" "\n" " virt-v2v -oo os-username=\n" "\n" " equivalent to openstack: --os-username=\n" " or the environment variable: OS_USERNAME=\n" "\n" " virt-v2v -oo os-project-name=\n" "\n" " equivalent to openstack: --os-project-name=\n" " or the environment variable: OS_PROJECT_NAME=\n" "\n" "The os-* parameters and environment variables are optional.\n" msgstr "" #: input/parse_libvirt_xml.ml:189 msgid "" "virt-v2v does not support local displays, so in the " "input libvirt XML was ignored" msgstr "" #: input/select_input.ml:83 msgid "virt-v2v-in-place does not support remote libvirt URIs" msgstr "" #: input/parse_domain_from_vmx.ml:50 msgid "vmx URI path component looks incorrect" msgstr "" #: input/parse_domain_from_vmx.ml:48 msgid "vmx URI remote server name omitted" msgstr "" #: input/parse_domain_from_vmx.ml:46 msgid "vmx URI start with ‘ssh://...’" msgstr "" #: input/VMX.ml:313 msgid "vmx parser: cannot parse this line, ignoring: %s" msgstr "" #: input/VMX.ml:346 msgid "vmx parser: duplicate key '%s' ignored" msgstr "" #: output/output_openstack.ml:299 msgid "wait for cinder volume status to change to \"available\"" msgstr "" #: output/output_openstack.ml:360 msgid "waiting for cinder volume %s to attach to the conversion appliance" msgstr "" #: open/open.ml:136 msgid "you must supply the --run parameter" msgstr "" #: input/input_xen_ssh.ml:87 input/input_vddk.ml:189 msgid "‘-ic %s’ URL does not contain a host name field" msgstr "" #: input/input_vddk.ml:273 msgid "‘-io vddk-file=’ must be used exactly %d times" msgstr "" #: input/input_vddk.ml:297 msgid "" "‘-io vddk-libdir=%s’ does not point to a directory. See the virt-v2v-input-" "vmware(1) manual." msgstr "" #: output/output.ml:85 msgid "" "‘-oo compressed’ is only allowed when the output format is a local qcow2-" "format file, i.e. ‘-of qcow2’" msgstr "" #: input/input_vddk.ml:232 msgid "" "‘openssl’ command not found: automatically detecting thumbprint is not " "possible, so you must use ‘-io vddk-thumbprint=XX:XX...’" msgstr "" #: common/mltools/getopt-c.c:68 #, c-format msgid "Try ‘%s --help’ or consult %s(1) for more information.\n" msgstr "" #: common/mltools/getopt-c.c:187 #, c-format msgid "%s: ‘%s’ is not a numeric value.\n" msgstr "" #: common/mltools/getopt-c.c:193 #, c-format msgid "%s: %s: integer out of range\n" msgstr "" #: common/mltools/getopt-c.c:383 #, c-format msgid "%s: ‘%s’ is not allowed for -%c; allowed values are:\n" msgstr "" #: common/mltools/getopt-c.c:386 #, c-format msgid "%s: ‘%s’ is not allowed for %s%s; allowed values are:\n" msgstr "" #: common/mltools/getopt-c.c:421 #, c-format msgid "Extra parameter on the command line: ‘%s’.\n" msgstr "" #: common/options/config.c:72 #, c-format msgid "%s: line %d: error parsing configuration file: %s" msgstr "" #: common/options/decrypt.c:52 #, c-format msgid "string size overflow" msgstr "" #: common/options/decrypt.c:170 #, c-format msgid "" "'clevis_luks_unlock', needed for decrypting %s, is unavailable in this " "libguestfs version" msgstr "" #: common/options/decrypt.c:184 #, c-format msgid "" "could not find key to open LUKS encrypted %s.\n" "\n" "Try using --key on the command line.\n" "\n" "Original error: %s (%d)" msgstr "" #: common/options/inspect.c:78 #, c-format msgid "" "%s: no operating system was found on this disk\n" "\n" "If using guestfish ‘-i’ option, remove this option and instead\n" "use the commands ‘run’ followed by ‘list-filesystems’.\n" "You can then mount filesystems you want by hand using the\n" "‘mount’ or ‘mount-ro’ command.\n" "\n" "If using guestmount ‘-i’, remove this option and choose the\n" "filesystem(s) you want to see by manually adding ‘-m’ option(s).\n" "Use ‘virt-filesystems’ to see what filesystems are available.\n" "\n" "If using other virt tools, this disk image won’t work\n" "with these tools. Use the guestfish equivalent commands\n" "(see the virt tool manual page).\n" msgstr "" #: common/options/inspect.c:99 #, c-format msgid "" "%s: multi-boot operating systems are not supported\n" "\n" "If using guestfish ‘-i’ option, remove this option and instead\n" "use the commands ‘run’ followed by ‘list-filesystems’.\n" "You can then mount filesystems you want by hand using the\n" "‘mount’ or ‘mount-ro’ command.\n" "\n" "If using guestmount ‘-i’, remove this option and choose the\n" "filesystem(s) you want to see by manually adding ‘-m’ option(s).\n" "Use ‘virt-filesystems’ to see what filesystems are available.\n" "\n" "If using other virt tools, multi-boot operating systems won’t work\n" "with these tools. Use the guestfish equivalent commands\n" "(see the virt tool manual page).\n" msgstr "" #: common/options/inspect.c:161 #, c-format msgid "%s: some filesystems could not be mounted (ignored)\n" msgstr "" #: common/options/inspect.c:178 #, c-format msgid "Operating system: %s\n" msgstr "" #: common/options/inspect.c:196 #, c-format msgid "%s mounted on %s\n" msgstr "" #: common/options/keys.c:69 #, c-format msgid "Enter key or passphrase (\"%s\"): " msgstr "" #: common/options/keys.c:189 #, c-format msgid "size_t overflow" msgstr "" #: common/options/keys.c:235 #, c-format msgid "could not read key from user" msgstr "" #: common/options/options.c:283 #, c-format msgid "%s: ‘%s’ could not be mounted.\n" msgstr "" #: common/options/options.c:287 #, c-format msgid "" "%s: Check mount(8) man page to ensure options ‘%s’\n" "%s: are supported by the filesystem that is being mounted.\n" msgstr "" #: common/options/options.c:291 #, c-format msgid "%s: Did you mean to mount one of these filesystems?\n" msgstr "" #: common/options/options.c:304 #, c-format msgid "cannot determine the subvolume for %s: %s (%d)" msgstr "" #: common/options/uri.c:119 #, c-format msgid "%s: --add: could not parse URI ‘%s’\n" msgstr "" #: common/options/uri.c:130 #, c-format msgid "%s: %s: scheme of URI is NULL or empty\n" msgstr "" #: common/options/uri.c:138 #, c-format msgid "%s: %s: cannot have both a server name and a socket query parameter\n" msgstr "" #: common/utils/utils.c:107 #, c-format msgid "%s exited successfully" msgstr "" #: common/utils/utils.c:110 #, c-format msgid "%s exited with error status %d" msgstr "" #: common/utils/utils.c:114 #, c-format msgid "%s killed by signal %d (%s)" msgstr "" #: common/utils/utils.c:118 #, c-format msgid "%s stopped by signal %d (%s)" msgstr "" #: common/utils/utils.c:122 #, c-format msgid "%s exited for an unknown reason (status %d)" msgstr "" ================================================ FILE: po/zh_CN.po ================================================ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR Red Hat Inc. # This file is distributed under the same license as the virt-v2v package. # FIRST AUTHOR , YEAR. # msgid "" msgstr "" "Project-Id-Version: virt-v2v 2.7.7\n" "Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?" "component=libguestfs&product=Virtualization+Tools\n" "POT-Creation-Date: 2025-02-16 17:05+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" "Language: zh_CN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" #: input/input_ova.ml:135 common/mltools/tools_utils.ml:235 msgid "%s" msgstr "" #: common/mltools/getopt.ml:73 msgid "" "%s\n" "Options:\n" msgstr "" #: common/mltools/tools_utils.ml:695 common/mlcustomize/customize_run.ml:390 msgid "%s (ignored)" msgstr "" #: common/mltools/checksums.ml:71 msgid "%s did not return any output" msgstr "" #: common/mlcustomize/customize_run.ml:183 msgid "%s does not exist in the guest" msgstr "" #: output/output_ovirt.ml:275 msgid "" "%s does not exist or is not a directory.\n" "\n" "Most likely cause: Either the %s (%s) has not been attached to any Data " "Center, or the path %s is not an %s at all.\n" "\n" "You have to attach the %s to a Data Center using the oVirt user interface " "first.\n" "\n" "If you don’t know what the %s mount point should be then you can also find " "this out through the oVirt user interface." msgstr "" #: common/mlcustomize/customize_run.ml:113 msgid "%s ignored for non-Windows guest" msgstr "" #: common/mlcustomize/customize_run.ml:186 msgid "%s is not a regular file in the guest" msgstr "" #. open/open.ml:39 #. inspector/inspector.ml:153 #. inspector/inspector.ml:40 #. in-place/in_place.ml:164 #. in-place/in_place.ml:45 #: v2v/v2v.ml:194 v2v/v2v.ml:183 v2v/v2v.ml:159 v2v/v2v.ml:44 open/open.ml:68 msgid "%s option used more than once on the command line" msgstr "" #: common/mltools/tools_utils.ml:231 common/mltools/tools_utils.ml:202 msgid "%s: %s" msgstr "" #: common/mltools/tools_utils.ml:233 msgid "%s: %s: %s" msgstr "" #: common/mltools/on_exit.ml:77 msgid "" "%s: Exiting on signal %s\n" "%!" msgstr "" #: common/mlcustomize/inject_virtio_win.ml:411 msgid "%s: cannot open virtio-win ISO file: %s" msgstr "" #: common/mlcustomize/customize_run.ml:64 msgid "%s: command exited with an error" msgstr "" #: v2v/v2v.ml:277 msgid "" "%s: convert a guest to use KVM\n" "\n" "virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi -os imported " "esx_guest\n" "\n" "virt-v2v -i libvirtxml guest-domain.xml -o local -os /var/tmp\n" "\n" "virt-v2v -i disk disk.img -o local -os /var/tmp\n" "\n" "There is a companion front-end called \"virt-p2v\" which comes as an\n" "ISO or CD image that can be booted on physical machines.\n" "\n" "A short summary of the options is given below. For detailed help please\n" "read the man page virt-v2v(1).\n" msgstr "" #: in-place/in_place.ml:217 msgid "" "%s: convert a guest to use KVM in-place\n" "\n" "Note this program modifies the guest in-place with no backup.\n" "Normally you should use virt-v2v.\n" "\n" "virt-v2v-in-place -i libvirtxml guest-domain.xml\n" "\n" "virt-v2v-in-place -i disk disk.img\n" "\n" "A short summary of the options is given below. For detailed help please\n" "read the man page virt-v2v-in-place(1).\n" msgstr "" #: input/input_vddk.ml:207 msgid "%s: enter password for ‘%s’: " msgstr "" #: common/mltools/tools_utils.ml:172 msgid "%s: error: %s" msgstr "" #: inspector/inspector.ml:198 msgid "" "%s: estimate disk space needed before virt-v2v conversion\n" "\n" "virt-v2v-inspector -i disk disk.img [-O output.xml]\n" "\n" "A short summary of the options is given below. For detailed help please\n" "read the man page virt-v2v-inspector(1).\n" msgstr "" #: open/open.ml:94 msgid "" "%s: open the virt-v2v input and run a program on it\n" "\n" "virt-v2v-open -i disk disk.img --run 'virt-inspector --format=raw @@'\n" "\n" "A short summary of the options is given below. For detailed help please\n" "read the man page virt-v2v-open(1).\n" msgstr "" #: common/mltools/tools_utils.ml:726 msgid "%s: operation timed out" msgstr "" #: input/OVA.ml:127 input/OVA.ml:121 msgid "" "%s: unsupported file format\n" "\n" "Formats which we currently understand for '-i ova' are: tar (uncompressed, " "compress with gzip or xz), zip" msgstr "" #: common/mltools/tools_utils.ml:191 msgid "%s: warning: %s" msgstr "" #. common/mlcustomize/customize_cmdline.ml:258 #: common/mlcustomize/customize_cmdline.ml:367 msgid "'CMD+ARGS'" msgstr "" #: common/mlcustomize/customize_run.ml:133 msgid "" "--append-line: line must not contain newline characters. Use the --append-" "line option multiple times to add several lines." msgstr "" #: common/mlcustomize/customize_run.ml:152 msgid "--chown: could not parse numeric UID:GID from %s:%s" msgstr "" #: common/mlcustomize/customize_run.ml:216 msgid "" "--inject-blnsvr: blnsvr.exe not found in virtio-win source that you specified" msgstr "" #: common/mlcustomize/customize_run.ml:225 msgid "" "--inject-qemu-ga: QEMU Guest Agent MSI not found in virtio-win source that " "you specified" msgstr "" #: common/mlcustomize/customize_run.ml:241 msgid "" "--inject-virtio-win: virtio drivers were not found for this Windows version " "in the virtio-win source that you specified" msgstr "" #: v2v/v2v.ml:146 inspector/inspector.ml:136 in-place/in_place.ml:143 msgid "--mac ip prefix length field is out of range" msgstr "" #: v2v/v2v.ml:340 msgid "--parallel parameter must be >= 1" msgstr "" #: input/input_disk.ml:42 msgid "-i disk: expecting a disk image (filename) on the command line" msgstr "" #: input/input_xen_ssh.ml:65 msgid "-i libvirt: expecting -ic parameter for Xen over SSH connection" msgstr "" #: input/input_vddk.ml:142 input/input_vcenter_https.ml:88 msgid "-i libvirt: expecting -ic parameter for vcenter connection" msgstr "" #: input/input_vcenter_https.ml:101 msgid "-i libvirt: expecting -ic parameter to contain vcenter server name" msgstr "" #: input/input_vcenter_https.ml:78 msgid "-i libvirt: expecting -ip passwordfile parameter for vCenter connection" msgstr "" #. input/input_vcenter_https.ml:70 #. input/input_libvirt.ml:41 #: input/input_xen_ssh.ml:57 input/input_vddk.ml:132 msgid "-i libvirt: expecting a libvirt guest name on the command line" msgstr "" #: input/input_libvirt.ml:59 msgid "-i libvirtxml: expecting a libvirt XML filename on the command line" msgstr "" #: input/input_ova.ml:243 msgid "-i ova: OVF references file ‘%s’ which was not found in the OVA archive" msgstr "" #: input/input_ova.ml:78 msgid "" "-i ova: corrupt OVA: checksum of disk %s does not match manifest (actual = " "%s, expected = %s)" msgstr "" #: input/input_ova.ml:52 msgid "-i ova: expecting an OVA file name on the command line" msgstr "" #: input/OVA.ml:361 msgid "" "-i ova: invalid OVA file: path ‘%s’ references a file outside the archive" msgstr "" #: input/input_vmx.ml:57 msgid "-i vmx: cannot use -it vddk in this input mode" msgstr "" #: input/input_vmx.ml:60 msgid "-i vmx: expecting a VMX file or ssh:// URI" msgstr "" #: input/vCenter.ml:159 msgid "" "-ip PASSWORD_FILE parameter ignored because 'user@' was not given in the URL" msgstr "" #: input/input_vddk.ml:119 msgid "-it vddk: ‘-io %s’ is not a valid input option" msgstr "" #: output/output.ml:54 msgid "-o %s: %s option cannot be used in this output mode" msgstr "" #: output/output_disk.ml:66 msgid "-o disk: output directory was not specified, use '-os /dir'" msgstr "" #: output/output_libvirt.ml:59 output/output_disk.ml:56 msgid "-o disk: unknown output option ‘-oo %s’" msgstr "" #: output/output_kubevirt.ml:81 msgid "-o kubevirt: output directory was not specified, use '-os /dir'" msgstr "" #: output/output_kubevirt.ml:91 msgid "" "-o kubevirt: the guest name must contain only lowercase alphanumeric " "characters, '-' or '.', and must start and end with an alphanumeric " "character. Rerun virt-v2v with the '-on name' option to rename it." msgstr "" #: output/output_kubevirt.ml:71 msgid "-o kubevirt: unknown output option ‘-oo %s’" msgstr "" #: output/output_libvirt.ml:120 msgid "" "-o libvirt: output pool ‘%s’ does not have /pool/target/path element. See " "virt-v2v-output-local(1)" msgstr "" #: output/output_libvirt.ml:124 msgid "" "-o libvirt: output pool ‘%s’ has type='dir' but the /pool/target/path " "element is not a local directory. See virt-v2v-output-local(1)" msgstr "" #: output/output_libvirt.ml:116 msgid "" "-o libvirt: output pool ‘%s’ is not a directory (type='dir'). See virt-v2v-" "output-local(1)" msgstr "" #: output/output_openstack.ml:88 msgid "-o openstack mode only supports -oa sparse -of raw" msgstr "" #: output/output_openstack.ml:115 msgid "-o openstack: unknown output option ‘-oo %s’" msgstr "" #: output/output_ovirt_upload.ml:97 msgid "-o ovirt-upload: -oo ovirt-cafile set more than once" msgstr "" #: output/output_ovirt_upload.ml:101 msgid "-o ovirt-upload: -oo ovirt-cluster set more than once" msgstr "" #: output/output_ovirt_upload.ml:112 msgid "-o ovirt-upload: invalid UUID for -oo ovirt-disk-uuid" msgstr "" #: output/output_ovirt_upload.ml:76 msgid "" "-o ovirt-upload: output password file was not specified, use ‘-op’ to point " "to a file which contains the password used to connect to the oVirt server" msgstr "" #: output/output_ovirt_upload.ml:83 msgid "-o ovirt-upload: output storage was not specified, use ‘-os’" msgstr "" #: output/output_ovirt_upload.ml:116 msgid "-o ovirt-upload: unknown output option ‘-oo %s’" msgstr "" #: output/output_ovirt_upload.ml:68 msgid "" "-o ovirt-upload: use ‘-oc’ to point to the oVirt server REST API URL, which " "is usually https://servername/ovirt-engine/api" msgstr "" #: output/output_ovirt.ml:51 msgid "-o ovirt: -os option was not specified" msgstr "" #: output/output_qemu.ml:72 msgid "-o qemu: output directory was not specified, use '-os /dir'" msgstr "" #: output/output_qemu.ml:63 msgid "-o qemu: unknown output option ‘-oo %s’" msgstr "" #: output/output_vdsm.ml:102 msgid "-o vdsm: -oo vdsm-image-uuid was not specified" msgstr "" #: output/output_vdsm.ml:81 msgid "-o vdsm: -oo vdsm-ovf-output set more than once" msgstr "" #: output/output_vdsm.ml:77 msgid "-o vdsm: -oo vdsm-vm-uuid set more than once" msgstr "" #: output/output_vdsm.ml:110 msgid "-o vdsm: -os option was not specified" msgstr "" #: output/output_vdsm.ml:97 msgid "-o vdsm: either -oo vdsm-vol-uuid or -oo vdsm-vm-uuid was not specified" msgstr "" #: output/output_vdsm.ml:90 msgid "-o vdsm: unknown output option ‘-oo %s’" msgstr "" #: output/output_vdsm.ml:74 msgid "-o vdsm: unknown vdsm-compat level ‘%s’" msgstr "" #. output/output_kubevirt.ml:84 #. output/output_disk.ml:68 #: output/output_vdsm.ml:112 output/output_qemu.ml:74 msgid "-os %s: output directory does not exist or is not a directory" msgstr "" #: input/parse_libvirt_xml.ml:279 msgid " missing 'method' attribute, ignoring" msgstr "" #: input/parse_libvirt_xml.ml:291 msgid " unknown fail='%s' attribute, ignoring" msgstr "" #: input/parse_libvirt_xml.ml:370 input/parse_libvirt_xml.ml:317 msgid " was ignored" msgstr "" #: input/parse_libvirt_xml.ml:338 msgid " with was ignored" msgstr "" #: input/parse_libvirt_xml.ml:365 msgid " with was ignored" msgstr "" #: input/parse_libvirt_xml.ml:299 msgid " element with no type attribute ignored" msgstr "" #: input/parse_libvirt_xml.ml:167 msgid " in the input libvirt XML was ignored" msgstr "" #: input/parse_libvirt_xml.ml:414 msgid "" " was ignored because the device name could not be recognized" msgstr "" #: input/input_vddk.ml:176 msgid "" " was not found in the output of ‘virsh dumpxml \"%s\"’. The " "most likely reason is that libvirt is too old, try upgrading libvirt to ≥ " "3.7." msgstr "" #: common/mlcustomize/customize_cmdline.ml:305 msgid "Add package(s) to install" msgstr "" #: common/mlcustomize/customize_cmdline.ml:270 msgid "Add package(s) to install at first boot" msgstr "" #: common/mlcustomize/customize_cmdline.ml:175 msgid "Append line(s) to the file" msgstr "" #: common/mlcustomize/customize_run.ml:137 msgid "Appending line to %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:197 msgid "Change the owner user and group ID of a file or directory" msgstr "" #: common/mlcustomize/customize_cmdline.ml:186 msgid "Change the permissions of a file" msgstr "" #: common/mlcustomize/customize_run.ml:155 msgid "Changing owner of %s to %d:%d" msgstr "" #: common/mlcustomize/customize_run.ml:141 msgid "Changing permissions of %s to %s" msgstr "" #: input/input_libvirt.ml:174 input/input_libvirt.ml:157 msgid "Checking %s checksum of disk %d/%d" msgstr "" #: common/mlcustomize/customize_cmdline.ml:488 msgid "Compatibility option doing nothing" msgstr "" #: common/mlcustomize/customize_cmdline.ml:219 msgid "Copy files in disk image" msgstr "" #: common/mlcustomize/customize_cmdline.ml:397 msgid "Copy local files or directories from a tarball into image" msgstr "" #: common/mlcustomize/customize_cmdline.ml:230 msgid "Copy local files or directories into image" msgstr "" #: common/mlcustomize/customize_run.ml:168 msgid "Copying (in image): %s to %s" msgstr "" #: v2v/v2v.ml:518 msgid "Copying disk %d/%d" msgstr "" #: common/mlcustomize/customize_run.ml:172 msgid "Copying: %s to %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:322 msgid "Create a directory" msgstr "" #: common/mlcustomize/customize_cmdline.ml:316 msgid "Create symbolic links" msgstr "" #: v2v/v2v.ml:567 msgid "Creating output metadata" msgstr "" #: common/mlcustomize/customize_cmdline.ml:321 msgid "DIR" msgstr "" #: common/mlcustomize/customize_cmdline.ml:236 msgid "Delete a file or directory" msgstr "" #: common/mlcustomize/customize_run.ml:176 msgid "Deleting: %s" msgstr "" #: common/mltools/getopt.ml:225 msgid "Display brief help" msgstr "" #: common/mltools/tools_utils.ml:385 msgid "Display version and exit" msgstr "" #: common/mlcustomize/customize_cmdline.ml:482 msgid "Do not relabel files with correct SELinux labels" msgstr "" #: v2v/v2v.ml:248 inspector/inspector.ml:177 in-place/in_place.ml:190 msgid "Don't trim filesystems before conversion" msgstr "" #: common/mltools/tools_utils.ml:389 msgid "Don’t print progress messages" msgstr "" #: common/mltools/tools_utils.ml:420 msgid "Don’t turn off echo for passphrases" msgstr "" #: common/mlcustomize/customize_cmdline.ml:247 msgid "Edit file using Perl expression" msgstr "" #: common/mlcustomize/customize_run.ml:180 msgid "Editing: %s" msgstr "" #: common/mltools/tools_utils.ml:386 msgid "Enable libguestfs debugging messages" msgstr "" #: common/mltools/tools_utils.ml:387 msgid "Enable tracing of libguestfs calls" msgstr "" #: output/output_ovirt.ml:77 msgid "Export Storage Domain" msgstr "" #: open/open.ml:88 msgid "External command to run" msgstr "" #. common/mlcustomize/customize_cmdline.ml:408 #. common/mlcustomize/customize_cmdline.ml:373 #: common/mlcustomize/customize_cmdline.ml:414 msgid "FILE" msgstr "" #: common/mlcustomize/customize_cmdline.ml:455 msgid "FILE:CONTENT" msgstr "" #: common/mlcustomize/customize_cmdline.ml:444 msgid "FILE:DEST" msgstr "" #: common/mlcustomize/customize_cmdline.ml:242 msgid "FILE:EXPR" msgstr "" #: common/mlcustomize/customize_cmdline.ml:170 msgid "FILE:LINE" msgstr "" #: common/mlcustomize/customize_cmdline.ml:203 msgid "FILENAME" msgstr "" #. in-place/in_place.ml:378 #: v2v/v2v.ml:571 open/open.ml:220 inspector/inspector.ml:334 msgid "Finishing off" msgstr "" #: common/mlcustomize/customize_cmdline.ml:275 msgid "HOSTNAME" msgstr "" #: v2v/v2v.ml:254 inspector/inspector.ml:183 in-place/in_place.ml:194 msgid "How to choose root filesystem" msgstr "" #: common/mltools/tools_utils.ml:177 msgid "" "If reporting bugs, run %s with debugging enabled and include the complete " "output:\n" "\n" " %s -v -x [...]" msgstr "" #: common/mlcustomize/customize_cmdline.ml:386 msgid "Inject a public key into the guest" msgstr "" #: common/mlcustomize/customize_cmdline.ml:282 msgid "Inject the Balloon Server into a Windows guest" msgstr "" #: common/mlcustomize/customize_cmdline.ml:288 msgid "Inject the QEMU Guest Agent into a Windows guest" msgstr "" #: common/mlcustomize/customize_cmdline.ml:294 msgid "Inject virtio-win drivers into a Windows guest" msgstr "" #. in-place/in_place.ml:176 #: v2v/v2v.ml:216 open/open.ml:80 inspector/inspector.ml:165 msgid "Input format" msgstr "" #: input/input_vddk.ml:77 msgid "" "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" "\n" "Refer to nbdkit-vddk-plugin(1) and the VDDK documentation for further\n" "information on these settings.\n" msgstr "" #: v2v/v2v.ml:222 open/open.ml:86 inspector/inspector.ml:171 msgid "Input transport" msgstr "" #: common/mlcustomize/customize_run.ml:191 msgid "Installing firstboot command: %s" msgstr "" #: common/mlcustomize/customize_run.ml:195 msgid "Installing firstboot packages: %s" msgstr "" #: common/mlcustomize/customize_run.ml:202 msgid "Installing firstboot script: %s" msgstr "" #: common/mlcustomize/customize_run.ml:248 msgid "Installing packages: %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:225 msgid "LOCALPATH:REMOTEDIR" msgstr "" #. in-place/in_place.ml:174 #: v2v/v2v.ml:214 open/open.ml:78 inspector/inspector.ml:163 msgid "Libvirt URI" msgstr "" #: common/mlcustomize/customize_run.ml:255 msgid "Linking: %s -> %s" msgstr "" #. common/mlcustomize/customize_cmdline.ml:287 #. common/mlcustomize/customize_cmdline.ml:281 #: common/mlcustomize/customize_cmdline.ml:293 msgid "METHOD" msgstr "" #: common/mltools/tools_utils.ml:426 msgid "Make output machine readable" msgstr "" #: common/mlcustomize/customize_run.ml:260 msgid "Making directory: %s" msgstr "" #: v2v/v2v.ml:226 inspector/inspector.ml:173 in-place/in_place.ml:182 msgid "Map NIC to network or bridge or assign static IP" msgstr "" #: v2v/v2v.ml:210 inspector/inspector.ml:159 in-place/in_place.ml:170 msgid "Map bridge ‘in’ to ‘out’" msgstr "" #: v2v/v2v.ml:230 inspector/inspector.ml:179 in-place/in_place.ml:186 msgid "Map network ‘in’ to ‘out’" msgstr "" #: common/mlcustomize/customize_cmdline.ml:333 msgid "Move files in disk image" msgstr "" #: common/mlcustomize/customize_run.ml:264 msgid "Moving: %s -> %s" msgstr "" #. input/input_vcenter_https.ml:45 #. input/input_ova.ml:35 #. input/input_libvirt.ml:233 #. input/input_libvirt.ml:221 #. input/input_disk.ml:35 #: input/input_xen_ssh.ml:43 input/input_vmx.ml:36 msgid "No input options can be used in this mode.\n" msgstr "" #: output/output_ovirt.ml:40 output/output_null.ml:38 #: output/output_glance.ml:40 msgid "No output options can be used in this mode.\n" msgstr "" #: output/output_vdsm.ml:166 msgid "OVF (metadata) directory (%s) does not exist or is not a directory" msgstr "" #: common/mlcustomize/firstboot.ml:268 msgid "" "One of rhsrvany.exe or pvvxsvc.exe is missing in %s. One of them is " "required in order to install Windows firstboot scripts. You can get one by " "building rhsrvany (https://github.com/rwmjones/rhsrvany)" msgstr "" #: v2v/v2v.ml:236 msgid "Output hypervisor connection" msgstr "" #: output/output_ovirt_upload.ml:51 msgid "" "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" "\n" "You can override the UUIDs of the disks, instead of using autogenerated " "UUIDs\n" "after their uploads (if you do, you must supply one for each disk):\n" "\n" " -oo ovirt-disk-uuid=UUID Disk UUID\n" msgstr "" #: output/output_qemu.ml:44 msgid "" "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" msgstr "" #: output/output_vdsm.ml:43 msgid "" "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" "\n" "For 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" msgstr "" #: output/output_disk.ml:44 msgid "" "Output options that can be used with -o disk:\n" "\n" " -oo compressed Compress the output file (used only with -of qcow2)\n" msgstr "" #: output/output_kubevirt.ml:51 msgid "" "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" msgstr "" #: output/output_libvirt.ml:47 msgid "" "Output options that can be used with -o libvirt:\n" "\n" " -oo compressed Compress the output file (used only with -of qcow2)\n" msgstr "" #. common/mlcustomize/customize_cmdline.ml:235 #: common/mlcustomize/customize_cmdline.ml:420 msgid "PATH" msgstr "" #: common/mlcustomize/customize_cmdline.ml:181 msgid "PERMISSIONS:FILE" msgstr "" #. common/mlcustomize/customize_cmdline.ml:300 #. common/mlcustomize/customize_cmdline.ml:265 #: common/mlcustomize/customize_cmdline.ml:427 msgid "PKG,PKG.." msgstr "" #: v2v/v2v.ml:263 in-place/in_place.ml:203 msgid "Prefer 'virtio-blk' or 'virtio-scsi'" msgstr "" #: v2v/v2v.ml:252 in-place/in_place.ml:192 msgid "Print source and stop" msgstr "" #: common/mlcustomize/customize_cmdline.ml:208 msgid "Read customize commands from file" msgstr "" #: common/mltools/tools_utils.ml:421 msgid "Read passphrases from stdin" msgstr "" #: common/mlcustomize/customize_cmdline.ml:421 msgid "Recursively truncate all files in directory" msgstr "" #: common/mlcustomize/customize_run.ml:298 msgid "Recursively truncating: %s" msgstr "" #: v2v/v2v.ml:240 msgid "Rename guest when converting" msgstr "" #: common/mlcustomize/customize_cmdline.ml:259 msgid "Run command at first guest boot" msgstr "" #: common/mlcustomize/customize_cmdline.ml:368 msgid "Run command in disk image" msgstr "" #: common/mlcustomize/customize_cmdline.ml:253 msgid "Run script at first guest boot" msgstr "" #: common/mlcustomize/customize_cmdline.ml:362 msgid "Run script in disk image" msgstr "" #: common/mlcustomize/customize_cmdline.ml:409 msgid "Run touch on a file" msgstr "" #: v2v/v2v.ml:250 msgid "Run up to N instances of nbdcopy in parallel" msgstr "" #: open/open.ml:188 msgid "Running external command" msgstr "" #: common/mlcustomize/customize_run.ml:307 msgid "Running touch: %s" msgstr "" #. common/mlcustomize/customize_run.ml:159 #: common/mlcustomize/customize_run.ml:274 msgid "Running: %s" msgstr "" #. common/mlcustomize/customize_cmdline.ml:252 #: common/mlcustomize/customize_cmdline.ml:361 msgid "SCRIPT" msgstr "" #: common/mltools/tools_utils.ml:422 #: common/mlcustomize/customize_cmdline.ml:351 msgid "SELECTOR" msgstr "" #: common/mlcustomize/customize_run.ml:363 msgid "SELinux relabelling" msgstr "" #. common/mlcustomize/customize_cmdline.ml:214 #: common/mlcustomize/customize_cmdline.ml:328 msgid "SOURCE:DEST" msgstr "" #: common/mlcustomize/customize_run.ml:287 msgid "SSH key could not be injected for this type of guest" msgstr "" #: common/mlcustomize/customize_run.ml:284 msgid "SSH key inject: %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:374 msgid "Scrub a file" msgstr "" #: common/mlcustomize/customize_cmdline.ml:466 msgid "Scrub build log file" msgstr "" #: common/mlcustomize/customize_run.ml:374 msgid "Scrubbing the log file" msgstr "" #: common/mlcustomize/customize_run.ml:279 msgid "Scrubbing: %s" msgstr "" #: v2v/v2v.ml:208 msgid "Set bandwidth dynamically from file" msgstr "" #: v2v/v2v.ml:206 msgid "Set bandwidth to bits per sec" msgstr "" #. in-place/in_place.ml:172 #: v2v/v2v.ml:212 open/open.ml:76 inspector/inspector.ml:161 msgid "Set input mode (default: libvirt)" msgstr "" #: v2v/v2v.ml:228 inspector/inspector.ml:175 in-place/in_place.ml:184 msgid "Set memory size" msgstr "" #: v2v/v2v.ml:256 inspector/inspector.ml:185 in-place/in_place.ml:196 msgid "Set number of vCPUs" msgstr "" #. in-place/in_place.ml:178 #: v2v/v2v.ml:218 open/open.ml:82 inspector/inspector.ml:167 msgid "Set option for input mode" msgstr "" #: v2v/v2v.ml:242 msgid "Set option for output mode" msgstr "" #: v2v/v2v.ml:234 msgid "Set output allocation mode" msgstr "" #: v2v/v2v.ml:238 msgid "Set output format" msgstr "" #: v2v/v2v.ml:232 msgid "Set output mode (default: libvirt)" msgstr "" #: v2v/v2v.ml:246 msgid "Set output storage location" msgstr "" #: common/mlcustomize/customize_cmdline.ml:476 msgid "Set password crypto" msgstr "" #: common/mltools/tools_utils.ml:430 msgid "Set program name" msgstr "" #: common/mlcustomize/customize_cmdline.ml:356 msgid "Set root password" msgstr "" #: common/mlcustomize/customize_cmdline.ml:403 msgid "Set the default timezone" msgstr "" #: common/mlcustomize/customize_cmdline.ml:276 msgid "Set the hostname" msgstr "" #: inspector/inspector.ml:181 in-place/in_place.ml:188 msgid "Set the output filename" msgstr "" #: common/mlcustomize/customize_cmdline.ml:345 msgid "Set user password" msgstr "" #: common/mlcustomize/customize_run.ml:75 msgid "Setting a random seed" msgstr "" #: common/mlcustomize/customize_run.ml:354 msgid "Setting passwords" msgstr "" #: common/mlcustomize/password.ml:113 msgid "Setting random password of %s to %s" msgstr "" #: common/mlcustomize/customize_run.ml:207 msgid "Setting the hostname: %s" msgstr "" #: common/mlcustomize/customize_run.ml:90 msgid "Setting the machine ID in %s" msgstr "" #: common/mlcustomize/customize_run.ml:302 msgid "Setting the timezone: %s" msgstr "" #: v2v/v2v.ml:481 msgid "Setting up the destination: %s" msgstr "" #. in-place/in_place.ml:342 #: v2v/v2v.ml:457 open/open.ml:184 inspector/inspector.ml:310 msgid "Setting up the source: %s" msgstr "" #: v2v/v2v.ml:463 in-place/in_place.ml:348 msgid "Source guest information (--print-source option):\n" msgstr "" #: common/mltools/tools_utils.ml:422 msgid "Specify a LUKS key" msgstr "" #: common/mlcustomize/customize_cmdline.ml:392 msgid "TARFILE:REMOTEDIR" msgstr "" #: common/mlcustomize/customize_cmdline.ml:311 msgid "TARGET:LINK[:LINK..]" msgstr "" #: common/mlcustomize/customize_cmdline.ml:402 msgid "TIMEZONE" msgstr "" #: v2v/v2v.ml:200 msgid "" "The --in-place option has been replaced by the ‘virt-v2v-in-place’ program" msgstr "" #: output/output_qemu.ml:251 msgid "" "The Virt machine has no support for IDE. Please report a bug for virt-v2v -- " "refer to virt-v2v(1) section \"BUGS\"." msgstr "" #: output/output_qemu.ml:272 msgid "" "The Virt machine has no support for floppies. Please report a bug for virt-" "v2v -- refer to virt-v2v(1) section \"BUGS\"." msgstr "" #: lib/create_ovf.ml:785 msgid "" "This guest required a password for connection to its display, but this is " "not supported by oVirt. Therefore the converted guest’s display will not " "require a separate password to connect." msgstr "" #: input/input_vmx.ml:111 msgid "" "This transport does not support guests with snapshots. Either collapse the " "snapshots for this guest and try the conversion again, or use one of the " "alternate conversion methods described in virt-v2v-input-vmware(1) section " "\"NOTES\"." msgstr "" #: common/mlcustomize/customize_cmdline.ml:415 msgid "Truncate a file to zero size" msgstr "" #: common/mlcustomize/customize_run.ml:294 msgid "Truncating: %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:192 msgid "UID:GID:PATH" msgstr "" #: common/mlcustomize/customize_cmdline.ml:339 msgid "USER:SELECTOR" msgstr "" #: common/mlcustomize/customize_cmdline.ml:380 msgid "USER[:SELECTOR]" msgstr "" #: common/mlcustomize/customize_cmdline.ml:432 msgid "Uninstall package(s)" msgstr "" #: common/mlcustomize/customize_run.ml:311 msgid "Uninstalling packages: %s" msgstr "" #: common/mlcustomize/customize_run.ml:290 msgid "Unpack tar file: %s to %s" msgstr "" #: common/mlcustomize/customize_cmdline.ml:438 msgid "Update packages" msgstr "" #: common/mlcustomize/customize_run.ml:316 msgid "Updating packages" msgstr "" #: common/mlcustomize/customize_cmdline.ml:449 msgid "Upload local file to destination" msgstr "" #: common/mlcustomize/customize_run.ml:321 msgid "Uploading: %s to %s" msgstr "" #: common/mltools/tools_utils.ml:391 msgid "Use ANSI colour sequences even if not tty" msgstr "" #. in-place/in_place.ml:180 #: v2v/v2v.ml:220 open/open.ml:84 inspector/inspector.ml:169 msgid "Use password from file to connect to input hypervisor" msgstr "" #: v2v/v2v.ml:244 msgid "Use password from file to connect to output hypervisor" msgstr "" #: v2v/v2v.ml:224 msgid "Use virt-v2v-in-place instead" msgstr "" #: common/mltools/tools_utils.ml:392 msgid "Wrap log messages even if not tty" msgstr "" #: common/mlcustomize/customize_cmdline.ml:460 msgid "Write file" msgstr "" #: common/mlcustomize/customize_run.ml:346 msgid "Writing: %s" msgstr "" #: lib/YAML.ml:167 msgid "" "YAML block contains newline character. This should not happen, please " "report a bug against virt-v2v." msgstr "" #: output/output_libvirt.ml:96 msgid "" "a libvirt domain called ‘%s’ already exists on the target.\n" "\n" "If using virt-v2v directly, use the ‘-on’ option to select a different name. " "Or delete the existing domain on the target using the ‘virsh undefine’ " "command.\n" "\n" "If using virt-p2v, select a different ‘Name’ in the ‘Target properties’. Or " "delete the existing domain on the target using the ‘virsh undefine’ command." msgstr "" #: common/mlcustomize/append_line.ml:44 msgid "append_line: %s is not a file" msgstr "" #: input/input_libvirt.ml:206 msgid "" "bad checksum for disk %d/%d\n" "Expected checksum: %s\n" "Actual checksum: %s" msgstr "" #: lib/libvirt_utils.ml:59 msgid "cannot find libvirt domain ‘%s’: %s" msgstr "" #: lib/libvirt_utils.ml:96 msgid "" "cannot find libvirt pool ‘%s’: %s\n" "\n" "Use ‘virsh pool-list --all’ to list all available pools, and ‘virsh pool-" "dumpxml ’ to display details about a particular pool.\n" "\n" "To set the pool which virt-v2v uses, add the ‘-os ’ option." msgstr "" #: lib/libvirt_utils.ml:110 msgid "cannot find libvirt volume ‘%s’: %s" msgstr "" #: common/mlcustomize/firstboot.ml:235 msgid "" "cannot finish firstboot installation by running ‘%s’ because host cpu (%s) " "and guest arch (%s) are not compatible. The firstboot service may not run " "at boot." msgstr "" #: output/output_libvirt.ml:180 msgid "cannot get libvirt domain capabilities: %s" msgstr "" #: output/output_libvirt.ml:85 msgid "cannot get libvirt hypervisor capabilities: %s" msgstr "" #: v2v/v2v.ml:105 inspector/inspector.ml:95 in-place/in_place.ml:102 msgid "cannot parse --mac \"%s\" parameter" msgstr "" #: v2v/v2v.ml:129 inspector/inspector.ml:119 in-place/in_place.ml:126 msgid "cannot parse --mac ip %s: doesn’t look like “%s” is an IP address" msgstr "" #: v2v/v2v.ml:143 inspector/inspector.ml:133 in-place/in_place.ml:140 msgid "cannot parse --mac ip prefix length field as an integer: %s" msgstr "" #: common/mlcustomize/guest_packages.ml:29 msgid "" "cannot use ‘%s’ because no package manager has been detected for this guest " "OS.\n" "\n" "If this guest OS is a common one with ordinary package management then this " "may have been caused by a failure of libguestfs inspection.\n" "\n" "For OSes such as Windows that lack package management, this is not " "possible. Try using one of the ‘--firstboot*’ flags instead (described in " "the virt-customize(1) manual)." msgstr "" #: output/output_ovirt.ml:91 msgid "" "cannot write files to the NFS server as %d:%d, even though we appear to be " "running as root. This probably means the NFS client or idmapd is not " "configured properly.\n" "\n" "You will have to chown the files that virt-v2v creates after the run, " "otherwise oVirt will not be able to import the VM." msgstr "" #: output/output_ovirt.ml:99 msgid "" "cannot write files to the NFS server as %d:%d. You might want to stop virt-" "v2v (^C) and rerun it as root." msgstr "" #: common/mlcustomize/customize_cmdline.ml:508 msgid "command '%s' cannot be used in command files, see the man page" msgstr "" #: common/mlcustomize/customize_cmdline.ml:525 msgid "command '%s' not valid, see the man page" msgstr "" #: common/mldrivers/linux_bootloaders.ml:318 msgid "could not add grub2 serial console (ignored)" msgstr "" #: input/ssh.ml:52 msgid "" "could not copy the VMX file from the remote server, see earlier error " "messages" msgstr "" #: output/output_libvirt.ml:211 msgid "" "could not define libvirt domain: %s.\n" "The libvirt XML is still available in ‘%s’. Try running ‘virsh -c %s define " "%s’ yourself instead." msgstr "" #: common/mldrivers/linux_bootloaders.ml:221 msgid "could not determine a way to update the configuration of Grub2" msgstr "" #: input/input_vddk.ml:243 msgid "" "could not fetch thumbprint from the server, you mus use ‘-io vddk-" "thumbprint=XX:XX...’" msgstr "" #: common/mldrivers/linux_bootloaders.ml:376 msgid "could not find bootloader mount point (%s): %s" msgstr "" #: common/mldrivers/windows_drivers.ml:91 msgid "" "could not find registry entry " "HKEY_LOCAL_MACHINE\\SYSTEM\\DriverDatabase\\DeviceIds in this Windows " "guest. It may be either a very old or very new version of Windows that we " "cannot process." msgstr "" #: common/mlcustomize/firstboot.ml:232 msgid "" "could not finish firstboot installation by running ‘%s’ because the command " "failed: %s" msgstr "" #. input/input_vcenter_https.ml:94 #: input/select_input.ml:66 input/input_xen_ssh.ml:71 input/input_vddk.ml:151 msgid "could not parse '-ic %s'. Original error message was: %s" msgstr "" #: input/parse_libvirt_xml.ml:407 input/parse_libvirt_xml.ml:54 msgid "could not parse device name ‘%s’ from the source libvirt XML" msgstr "" #: input/OVF.ml:168 msgid "could not parse disk rasd:HostResource from OVF document" msgstr "" #: input/input_ova.ml:98 msgid "could not parse ovf:Name from OVF document" msgstr "" #: output/output_ovirt.ml:247 msgid "" "could not read the %s specified by the '-os %s' parameter on the command " "line. Is it really an OVirt %s? The original error is: %s" msgstr "" #: common/mldrivers/linux_bootloaders.ml:336 msgid "" "could not rebuild grub2 configuration file (%s). This may mean that grub " "output will not be sent to the serial port, but otherwise should be " "harmless. Original error message: %s" msgstr "" #: output/output_libvirt.ml:156 msgid "could not refresh libvirt pool ‘%s’: %s" msgstr "" #: common/mldrivers/linux_bootloaders.ml:320 msgid "could not remove grub2 serial console (ignored)" msgstr "" #: common/mltools/registry.ml:93 msgid "" "decode_utf16le: Windows UTF16-LE string contains non-7-bit characters. This " "is a bug in %s, please report it." msgstr "" #: common/mltools/registry.ml:87 msgid "" "decode_utf16le: Windows string does not appear to be in UTF16-LE encoding. " "This could be a bug in %s." msgstr "" #: common/mldrivers/linux_bootloaders.ml:126 msgid "didn't find grub entry for kernel %s" msgstr "" #: input/input_disk.ml:150 msgid "disks on the command line have mixed formats" msgstr "" #: input/parse_libvirt_xml.ml:194 msgid "display in the input libvirt XML was ignored" msgstr "" #: output/output_qemu.ml:147 msgid "don’t know how to convert UEFI guests for architecture %s" msgstr "" #: common/mldrivers/linux.ml:158 msgid "don’t know how to find file owner using %s" msgstr "" #: common/mldrivers/linux.ml:89 msgid "don’t know how to get list of files from package using %s" msgstr "" #: common/mltools/curl.ml:82 msgid "downloading %s" msgstr "" #: lib/networks.ml:84 msgid "" "duplicate --mac parameter. Duplicate mappings specified for MAC address %s." msgstr "" #: lib/networks.ml:102 msgid "" "duplicate -b/--bridge parameter. Duplicate mappings specified for bridge %s." msgstr "" #: lib/networks.ml:108 msgid "duplicate -b/--bridge parameter. Only one default mapping is allowed." msgstr "" #: lib/networks.ml:90 msgid "" "duplicate -n/--network parameter. Duplicate mappings specified for network " "%s." msgstr "" #: lib/networks.ml:96 msgid "duplicate -n/--network parameter. Only one default mapping is allowed." msgstr "" #: input/OVF.ml:143 msgid "error parsing disk fileRef" msgstr "" #: input/input_ova.ml:124 msgid "error uncompressing %s, see earlier error messages" msgstr "" #: input/OVA.ml:210 input/OVA.ml:112 msgid "error unpacking %s, see earlier error messages" msgstr "" #: common/mltools/tools_utils.ml:248 msgid "exception: %s" msgstr "" #: common/mltools/tools_utils.ml:455 msgid "exited with error %d" msgstr "" #: lib/utils.ml:34 msgid "exited with non-zero error code %d" msgstr "" #: input/input_disk.ml:147 msgid "expected >= 1 disk name on the command line" msgstr "" #: common/mltools/xpath_helpers.ml:36 msgid "" "expecting XML expression to return an integer (expression: %s, matching " "string: %s)" msgstr "" #: common/mltools/tools_utils.ml:440 msgid "external command" msgstr "" #: output/output_ovirt_upload.ml:265 msgid "failed server prechecks, see earlier errors" msgstr "" #: output/output_ovirt_upload.ml:507 msgid "failed to create virtual machine, see earlier errors" msgstr "" #: output/output_ovirt_upload.ml:479 msgid "failed to finalize the transfers, see earlier errors" msgstr "" #: common/mldrivers/linux_bootloaders.ml:208 msgid "failed to find grub2-mkconfig binary (but Grub2 was detected on guest)" msgstr "" #: input/OVA.ml:461 msgid "failed to parse line returned by tar: %S" msgstr "" #: output/output_ovirt_upload.ml:394 msgid "failed to start transfer, see earlier errors" msgstr "" #: output/output_ovirt_upload.ml:311 msgid "failed vmchecks, see earlier errors" msgstr "" #: common/mltools/tools_utils.ml:239 msgid "failure: %s" msgstr "" #: input/input_ova.ml:134 msgid "file ‘%s’ not found in the ova" msgstr "" #: common/mlcustomize/firstboot.ml:143 msgid "" "firstboot: unknown version for old firstboot.service file %s (md5=%s), it " "will not be removed" msgstr "" #: common/mltools/tools_utils.ml:258 msgid "generated by %s %s" msgstr "" #: output/create_libvirt_xml.ml:39 msgid "get_osinfo_id: unknown guest operating system: %s" msgstr "" #: output/output_glance.ml:66 msgid "" "glance: glance client is not installed or set up correctly. You may need to " "set environment variables or source a script to enable authentication. See " "preceding messages for details." msgstr "" #: output/output_glance.ml:139 msgid "glance: image upload to glance failed, see earlier errors" msgstr "" #: common/mlcustomize/firstboot.ml:386 common/mlcustomize/firstboot.ml:164 msgid "guest type %s is not supported" msgstr "" #: common/mlcustomize/firstboot.ml:413 msgid "guest type %s/%s is not supported" msgstr "" #: common/mltools/tools_utils.ml:749 msgid "" "host (%s/%s) and guest (%s/%s) are not compatible, so you cannot use command " "line options that involve running commands in the guest. Use --firstboot " "scripts instead." msgstr "" #: common/mlcustomize/customize_run.ml:209 msgid "hostname could not be set for this type of guest" msgstr "" #: common/mldrivers/linux_kernels.ml:342 msgid "ignoring kernel %s in bootloader, as it does not exist." msgstr "" #: output/output_vdsm.ml:160 msgid "image directory (%s) does not exist or is not a directory" msgstr "" #: input/parse_libvirt_xml.ml:81 msgid "in the libvirt XML metadata, is missing or empty" msgstr "" #: input/parse_libvirt_xml.ml:87 msgid "in the libvirt XML metadata, is missing or empty" msgstr "" #: input/input_vcenter_https.ml:52 input/input_libvirt.ml:107 msgid "in-place mode does not work with HTTP source" msgstr "" #: input/input_vddk.ml:146 msgid "in-place mode does not work with VDDK source" msgstr "" #: input/input_vmx.ml:43 msgid "in-place mode does not work with VMX source" msgstr "" #: input/input_xen_ssh.ml:50 msgid "in-place mode does not work with Xen over SSH source" msgstr "" #: output/output_kubevirt.ml:116 msgid "" "incorrect number of '-oo disk' parameters. This guest has %d disks, but the " "parameter was used %d times." msgstr "" #: input/input_xen_ssh.ml:119 msgid "" "input from xen over ssh does not support disks stored on remote block " "devices. See virt-v2v-input-xen(1) section \"Xen or ssh conversions from " "block devices\"." msgstr "" #. in-place/in_place.ml:397 #: v2v/v2v.ml:590 open/open.ml:238 inspector/inspector.ml:353 msgid "" "insufficient free space in the conversion server temporary directory %s " "(%s).\n" "\n" "Either free up space in that directory, or set the LIBGUESTFS_CACHEDIR " "environment variable to point to another directory with more than 1GB of " "free space.\n" "\n" "See also the virt-v2v(1) manual, section \"Minimum free space check in the " "host\"." msgstr "" #: common/mltools/tools_utils.ml:246 msgid "internal error: Not_found exception was thrown" msgstr "" #: common/mltools/tools_utils.ml:243 msgid "internal error: assertion failed at %s, line %d, char %d" msgstr "" #: common/mltools/tools_utils.ml:241 msgid "internal error: invalid argument: %s" msgstr "" #: common/mldrivers/linux.ml:128 msgid "internal error: is_file_owned: dpkg command returned no output" msgstr "" #: common/mldrivers/linux.ml:133 msgid "internal error: is_file_owned: unexpected output from dpkg command: %s" msgstr "" #: common/mldrivers/linux_bootloaders.ml:130 msgid "internal error: regular expression did not match ‘%s’" msgstr "" #: v2v/v2v.ml:548 msgid "internal error: wait returned unexpected process ID %d status \"%s\"" msgstr "" #: v2v/v2v.ml:114 inspector/inspector.ml:104 in-place/in_place.ml:111 msgid "invalid --mac ip option" msgstr "" #: v2v/v2v.ml:98 inspector/inspector.ml:88 in-place/in_place.ml:95 msgid "invalid -b/--bridge parameter" msgstr "" #: v2v/v2v.ml:90 inspector/inspector.ml:80 in-place/in_place.ml:87 msgid "invalid -n/--network parameter" msgstr "" #: input/parse_domain_from_vmx.ml:402 msgid "invalid cpuid.coresPerSocket < number of vCPUs" msgstr "" #. common/mlcustomize/customize_cmdline.ml:153 #. common/mlcustomize/customize_cmdline.ml:145 #: common/mlcustomize/customize_cmdline.ml:161 msgid "invalid format for '--%s' parameter, see the man page" msgstr "" #: common/mltools/tools_utils.ml:359 msgid "invalid format string for --machine-readable: %s" msgstr "" #: lib/utils.ml:279 msgid "invalid input filename (%s)" msgstr "" #: input/OVA.ml:445 msgid "invalid offset returned by tar: %S" msgstr "" #: common/mltools/tools_utils.ml:374 msgid "invalid output fd for --machine-readable: %s" msgstr "" #: common/mltools/tools_utils.ml:376 msgid "invalid output for --machine-readable: %s" msgstr "" #: common/mltools/tools_utils.ml:368 msgid "invalid output stream for --machine-readable: %s" msgstr "" #: common/mlcustomize/password.ml:73 msgid "invalid password selector ‘%s’; see the man page" msgstr "" #: input/OVA.ml:450 msgid "invalid size returned by tar: %S" msgstr "" #: common/mlcustomize/ssh_key.ml:45 msgid "invalid ssh-inject selector ‘%s’; see the man page" msgstr "" #: input/OVF.ml:82 msgid "invalid vmw:CoresPerSocket (%d) ignored" msgstr "" #: input/OVF.ml:88 msgid "invalid vmw:CoresPerSocket < number of cores" msgstr "" #: common/mldrivers/linux_bootloaders.ml:114 msgid "kernel %s is not under grub tree %s" msgstr "" #: common/mltools/tools_utils.ml:539 common/mltools/tools_utils.ml:458 msgid "killed by signal %d" msgstr "" #: common/mltools/tools_utils.ml:237 msgid "libguestfs error: %s" msgstr "" #: lib/libvirt_utils.ml:72 msgid "" "libvirt domain ‘%s’ is running or paused. Converting a live guest will " "result in corrupted output. However this is safe if you're converting from a " "snapshot" msgstr "" #: common/mlcustomize/customize_run.ml:47 msgid "log file %s: %s (ignored)" msgstr "" #: input/OVA.ml:147 msgid "" "making OVA directory public readable to work around libvirt bug https://" "bugzilla.redhat.com/1045069" msgstr "" #: input/input_ova.ml:86 msgid "manifest has a checksum for non-existent file %s (ignored)" msgstr "" #: common/mlcustomize/customize_cmdline.ml:472 msgid "md5|sha256|sha512" msgstr "" #: common/mlcustomize/customize_run.ml:119 msgid "method '%s' is no longer supported" msgstr "" #: common/mltools/JSON_parser.ml:39 msgid "missing value for the key ‘%s’" msgstr "" #: input/OVA.ml:276 msgid "more than one .ovf file was found in %s" msgstr "" #: common/mltools/JSON_parser.ml:34 msgid "more than value for the key ‘%s’" msgstr "" #: output/output_ovirt.ml:222 msgid "" "mount command failed, see earlier errors.\n" "\n" "This probably means you didn't specify the right %s path [-os %s], or else " "you need to rerun virt-v2v as root." msgstr "" #: common/mlcustomize/customize_run.ml:103 msgid "" "multiple --root-password/--password options set the password for user ‘%s’ " "twice" msgstr "" #: input/input_vddk.ml:319 msgid "" "nbdkit VDDK plugin is not installed or not working. It is required if you " "want to use VDDK.\n" "\n" "It 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 ’/%s/libvixDiskLib.so.?’.\n" "\n" "See also the virt-v2v-input-vmware(1) manual." msgstr "" #: input/input_vddk.ml:313 msgid "" "nbdkit VDDK plugin is not installed or not working. It is required if you " "want to use VDDK.\n" "\n" "The 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" "\n" "See also the virt-v2v-input-vmware(1) manual." msgstr "" #: lib/nbdkit.ml:223 msgid "nbdkit did not start up. See previous debugging messages for problems." msgstr "" #: lib/nbdkit.ml:225 msgid "" "nbdkit did not start up. There may be errors printed by nbdkit above.\n" "\n" "If the messages above are not sufficient to diagnose the problem then add " "the ‘virt-v2v -v -x’ options and examine the debugging output carefully." msgstr "" #: input/nbdkit_ssh.ml:36 input/nbdkit_curl.ml:32 input/input_vddk.ml:283 msgid "nbdkit is not installed or not working" msgstr "" #: input/input_disk.ml:92 msgid "" "nbdkit is not installed or not working. It is required to use ‘-i disk’." msgstr "" #: input/input_libvirt.ml:68 msgid "" "nbdkit is not installed or not working. It is required to use ‘-i libvirt|" "libvirtxml’." msgstr "" #: output/output.ml:178 output/output.ml:77 msgid "" "nbdkit is not installed or not working. It is required to use ‘-o disk’." msgstr "" #: output/output_null.ml:57 msgid "" "nbdkit is not installed or not working. It is required to use ‘-o null’." msgstr "" #: output/output_ovirt_upload.ml:163 msgid "" "nbdkit is not installed or not working. It is required to use ‘-o ovirt-" "upload’. See the virt-v2v-output-ovirt(1) manual." msgstr "" #: input/input_vddk.ml:285 msgid "nbdkit must be >= 1.45.11 for input from VDDK" msgstr "" #: output/output_ovirt_upload.ml:176 msgid "" "nbdkit python plugin is not installed or not working. It is required if you " "want to use ‘-o ovirt-upload’.\n" "\n" "See also the virt-v2v-output-ovirt(1) manual." msgstr "" #: output/output_ovirt_upload.ml:190 msgid "" "nbdkit was compiled without SELinux support. You will have to recompile " "nbdkit with libselinux-devel installed, or else set SELinux to Permissive " "mode while doing the conversion." msgstr "" #. input/input_libvirt.ml:76 #. input/input_disk.ml:98 #: input/nbdkit_ssh.ml:42 input/nbdkit_curl.ml:38 input/input_vddk.ml:289 msgid "nbdkit-cow-filter is not installed or not working" msgstr "" #: input/nbdkit_curl.ml:35 msgid "nbdkit-curl-plugin is not installed" msgstr "" #. input/input_disk.ml:96 #: output/output.ml:181 output/output.ml:80 input/input_libvirt.ml:72 msgid "nbdkit-file-plugin is not installed or not working" msgstr "" #: input/input_libvirt.ml:74 msgid "nbdkit-nbd-plugin is not installed or not working" msgstr "" #: output/output_null.ml:60 msgid "nbdkit-null-plugin is not installed or not working" msgstr "" #: input/nbdkit_ssh.ml:39 msgid "nbdkit-ssh-plugin is not installed" msgstr "" #: input/input_vddk.ml:287 msgid "nbdkit-vddk-plugin is not installed" msgstr "" #: lib/nbdkit.ml:56 msgid "nbdkit: unexpected version in --dump-config: %s" msgstr "" #. input/input_vcenter_https.ml:49 #. input/input_ova.ml:46 #. input/input_libvirt.ml:35 #. input/input_disk.ml:39 #: input/input_xen_ssh.ml:47 input/input_vmx.ml:40 msgid "no -io (input options) are allowed here" msgstr "" #: output/output_ovirt.ml:44 output/output_null.ml:42 #: output/output_glance.ml:44 msgid "no -oo (output options) are allowed here" msgstr "" #: input/OVA.ml:273 msgid "no .ovf file was found in %s" msgstr "" #: common/mldrivers/linux_bootloaders.ml:402 msgid "no bootloader detected" msgstr "" #: input/parse_domain_from_vmx.ml:359 msgid "no displayName key found in VMX file" msgstr "" #: input/OVF.ml:148 msgid "no href in ovf:File (id=%s)" msgstr "" #: common/mldrivers/linux_kernels.ml:194 msgid "no initrd was found in /boot matching %s %s." msgstr "" #: common/mldrivers/linux_kernels.ml:317 msgid "" "no installed kernel packages were found.\n" "\n" "This probably indicates that %s was unable to inspect this guest properly." msgstr "" #: common/mldrivers/linux_kernels.ml:354 msgid "" "no kernels were found in the bootloader configuration.\n" "\n" "This probably indicates that %s was unable to parse the bootloader " "configuration of this guest." msgstr "" #: output/python_script.ml:55 msgid "no python binary called ‘%s’ can be found on the $PATH" msgstr "" #: input/select_input.ml:106 msgid "" "no support for remote libvirt connections to '-ic %s'. The conversion may " "fail when it tries to read the source disks." msgstr "" #: lib/create_ovf.ml:1027 msgid "" "oVirt cannot emulate ‘%s’ sound cards. This sound card will be dropped from " "the output." msgstr "" #: lib/create_ovf.ml:875 lib/create_ovf.ml:512 msgid "oVirt does not support the output format ‘%s’, only raw or qcow2" msgstr "" #: output/output_openstack.ml:120 msgid "openstack: -oo server-id= not present" msgstr "" #: output/output_openstack.ml:338 msgid "" "openstack: failed to attach cinder volume to VM, see earlier error messages" msgstr "" #: output/output_openstack.ml:291 msgid "openstack: failed to create a cinder volume, see earlier error messages" msgstr "" #: output/output_openstack.ml:304 msgid "" "openstack: failed to query cinder volume status, see earlier error messages" msgstr "" #: output/output_openstack.ml:442 msgid "" "openstack: failed to set image properties on cinder volume, see earlier " "error messages" msgstr "" #: output/output_openstack.ml:199 msgid "" "openstack: precheck failed, there may be a problem with authentication, see " "earlier error messages" msgstr "" #: output/output_openstack.ml:311 msgid "" "openstack: unknown volume status \"%s\": expected \"creating\" or " "\"available\"" msgstr "" #: output/output.ml:133 msgid "output mode only supports raw or qcow2 format (format: %s)" msgstr "" #: input/OVF.ml:263 msgid "" "ova disk has an unknown VMware controller type (%d), please report this as a " "bug supplying the *.ovf file extracted from the ova" msgstr "" #: input/OVF.ml:259 msgid "" "ova disk has no parent controller, please report this as a bug supplying the " "*.ovf file extracted from the ova" msgstr "" #: output/output_ovirt_upload.ml:367 msgid "" "ovirt-upload: -of %s: Only output format ‘raw’ or ‘qcow2’ is supported. If " "the input is in a different format then force one of these output formats by " "adding either ‘-of raw’ or ‘-of qcow2’ on the command line." msgstr "" #: common/mlcustomize/password.ml:51 msgid "" "password-crypto: unknown algorithm %s, use \"md5\", \"sha256\", \"sha512\" " "or \"yescrypt\"" msgstr "" #: common/mlcustomize/password.ml:197 msgid "" "password: using insecure md5 password encryption for guest of type %s " "version %d.%d.\n" "If this is incorrect, use --password-crypto option and file a bug." msgstr "" #: common/mlcustomize/customize_run.ml:359 msgid "passwords could not be set for this type of guest" msgstr "" #: lib/qemuNBD.ml:125 msgid "" "qemu-nbd did not start up. See previous debugging messages for problems." msgstr "" #: lib/qemuNBD.ml:127 msgid "" "qemu-nbd did not start up. There may be errors printed by qemu-nbd above.\n" "\n" "If the messages above are not sufficient to diagnose the problem then add " "the ‘virt-v2v -v -x’ options and examine the debugging output carefully." msgstr "" #: lib/qemuNBD.ml:47 msgid "qemu-nbd: unexpected version in --version: %s" msgstr "" #: common/mlcustomize/customize_run.ml:77 msgid "random seed could not be set for this type of guest" msgstr "" #: input/parse_domain_from_vmx.ml:44 msgid "remote vmx ‘%s’ could not be parsed as a URI" msgstr "" #. common/mlcustomize/inject_virtio_win.ml:357 #. common/mlcustomize/inject_virtio_win.ml:352 #: common/mlcustomize/inject_virtio_win.ml:362 msgid "" "root directory ‘/’ is missing from the virtio-win directory or ISO.\n" "\n" "This should not happen and may indicate that virtio-win or virt-v2v is " "broken in some way. Please report this as a bug with a full debug log." msgstr "" #: common/mltools/tools_utils.ml:417 common/options/keys.c:264 #, c-format msgid "selector '%s': invalid TYPE" msgstr "" #: common/mltools/tools_utils.ml:409 common/options/keys.c:254 #, c-format msgid "selector '%s': missing FILENAME, or too many fields" msgstr "" #: common/mltools/tools_utils.ml:399 common/options/keys.c:232 #, c-format msgid "selector '%s': missing ID" msgstr "" #: common/mltools/tools_utils.ml:404 common/options/keys.c:245 #, c-format msgid "selector '%s': missing KEY_STRING, or too many fields" msgstr "" #: common/mltools/tools_utils.ml:401 common/options/keys.c:239 #, c-format msgid "selector '%s': missing TYPE" msgstr "" #: common/mltools/tools_utils.ml:413 common/options/keys.c:262 #, c-format msgid "selector '%s': too many fields" msgstr "" #: lib/utils.ml:35 msgid "signalled by signal %d" msgstr "" #: common/mlcustomize/guest_packages.ml:40 msgid "" "sorry, ‘%s’ with the ‘%s’ package manager has not been implemented yet.\n" "\n" "You can work around this by using one of the ‘--run*’ or ‘--firstboot*’ " "options instead (described in the virt-customize(1) manual)." msgstr "" #: common/mlcustomize/ssh_key.ml:57 msgid "ssh-inject: $HOME environment variable is not set" msgstr "" #: common/mlcustomize/ssh_key.ml:93 msgid "ssh-inject: key is an empty string" msgstr "" #: common/mlcustomize/ssh_key.ml:66 msgid "ssh-inject: no public key file found in %s" msgstr "" #: common/mlcustomize/ssh_key.ml:83 msgid "ssh-inject: public key file (%s) is empty" msgstr "" #: common/mlcustomize/ssh_key.ml:112 msgid "ssh-inject: the user %s does not exist on the guest" msgstr "" #. common/mltools/tools_utils.ml:461 #: lib/utils.ml:36 common/mltools/tools_utils.ml:542 msgid "stopped by signal %d" msgstr "" #: output/changeuid.ml:58 msgid "subprocess exited with non-zero error code %d" msgstr "" #: output/changeuid.ml:60 msgid "subprocess signalled or stopped by signal %d" msgstr "" #: lib/utils.ml:33 msgid "success" msgstr "" #: output/create_libvirt_xml.ml:297 msgid "" "target hypervisor does not support floppy devices, but floppy devices were " "found in the source guest" msgstr "" #: output/output_ovirt_upload.ml:156 msgid "" "the Python module ‘ovirtsdk4’ could not be loaded, is it installed? See " "previous messages for problems." msgstr "" #: output/output_ovirt_upload.ml:453 msgid "the cluster ‘%s’ does not support the architecture %s but %s" msgstr "" #: common/mlcustomize/customize_run.ml:59 msgid "" "the command may have failed because the network is disabled. Try either " "removing ‘--no-network’ or adding ‘--network’ on the command line." msgstr "" #: common/mltools/JSON_parser.ml:84 msgid "the key ‘%s’ was not found in a list of objects" msgstr "" #: output/output_ovirt_upload.ml:288 msgid "" "the number of ‘-oo ovirt-disk-uuid’ parameters passed on the command line " "has to match the number of guest disk images (for this guest: %d)" msgstr "" #: output/output_vdsm.ml:133 msgid "" "the number of ‘-oo vdsm-image-uuid’ and ‘-oo vdsm-vol-uuid’ parameters " "passed on the command line has to match the number of guest disk images (for " "this guest: %d)" msgstr "" #: output/output_libvirt.ml:239 msgid "the target hypervisor does not support a %s KVM guest" msgstr "" #: common/mltools/JSON_parser.ml:78 msgid "the value for key ‘%s’ is not a string as expected" msgstr "" #: common/mltools/JSON_parser.ml:50 msgid "the value for the key ‘%s’ is not a bool" msgstr "" #: common/mltools/JSON_parser.ml:45 msgid "the value for the key ‘%s’ is not a string" msgstr "" #: common/mltools/JSON_parser.ml:70 msgid "the value for the key ‘%s’ is not an integer" msgstr "" #: common/mltools/JSON_parser.ml:55 msgid "the value for the key ‘%s’ is not an object" msgstr "" #: common/mltools/JSON_parser.ml:59 msgid "the value is not an object" msgstr "" #: common/mltools/JSON_parser.ml:35 msgid "the value of the key ‘%s’ is not an object" msgstr "" #: lib/create_ovf.ml:519 msgid "" "the virtual size of the input disk %d is not an exact multiple of 512 " "bytes. The virtual size is: %Ld.\n" "\n" "This probably means something unexpected is going on, so please file a bug " "about this issue." msgstr "" #: output/output_openstack.ml:144 msgid "" "the ‘%s’ program is not available. It is needed to communicate with " "OpenStack." msgstr "" #: output/output_ovirt.ml:265 msgid "" "there are multiple UUIDs in the %s (%s). This is unexpected, and may be a " "bug in virt-v2v or OVirt." msgstr "" #: output/output_ovirt.ml:262 msgid "there are no UUIDs in the %s (%s). Is it really an OVirt %s?" msgstr "" #: common/mlcustomize/inject_virtio_win.ml:153 msgid "" "there are no virtio drivers available for this version of Windows (%d.%d %s " "%s %s). virt-v2v looks for drivers in %s\n" "\n" "The guest will be configured to use slower emulated devices." msgstr "" #: common/mlcustomize/inject_virtio_win.ml:175 msgid "" "there is no virtio block device driver for this version of Windows (%d.%d " "%s). virt-v2v looks for this driver in %s\n" "\n" "The guest will be configured to use a slower emulated device." msgstr "" #: common/mlcustomize/inject_virtio_win.ml:206 msgid "" "there is no virtio network driver for this version of Windows (%d.%d %s). " "virt-v2v looks for this driver in %s\n" "\n" "The guest will be configured to use a slower emulated device." msgstr "" #: input/parse_libvirt_xml.ml:545 msgid "this guest has a direct network interface which will be ignored" msgid_plural "this guest has direct network interfaces which will be ignored" msgstr[0] "" #: input/parse_libvirt_xml.ml:527 msgid "this guest has a passthrough host device which will be ignored" msgid_plural "this guest has passthrough host devices which will be ignored" msgstr[0] "" #: input/parse_libvirt_xml.ml:248 msgid "this guest has no non-removable disks" msgstr "" #: output/output.ml:65 msgid "this output module doesn't support copying more than %d disks" msgstr "" #: common/mlcustomize/timezone.ml:35 msgid "timezone '%s' does not exist, use a location like 'Europe/London'" msgstr "" #: common/mlcustomize/customize_run.ml:304 msgid "timezone could not be set for this type of guest" msgstr "" #: input/OVA.ml:318 msgid "unable to parse line from manifest file: %S" msgstr "" #: common/mltools/urandom.ml:37 msgid "unexpected end of file while reading /dev/urandom" msgstr "" #: input/input_libvirt.ml:196 msgid "unexpected output from the %s command" msgstr "" #: common/mltools/checksums.ml:58 msgid "unhandled checksum type ‘%s’" msgstr "" #: lib/types.ml:524 msgid "unknown --root option: %s" msgstr "" #: input/select_input.ml:51 msgid "unknown -i option: %s" msgstr "" #: output/select_output.ml:74 msgid "unknown -o option: %s" msgstr "" #: v2v/v2v.ml:164 msgid "unknown -oa option: %s" msgstr "" #: input/input_libvirt.ml:189 msgid "unknown method='%s'" msgstr "" #: input/OVF.ml:103 msgid "unknown Config:firmware value %s (expected \"bios\" or \"efi\")" msgstr "" #: lib/create_ovf.ml:446 lib/create_ovf.ml:247 msgid "unknown Windows 10 variant: %s (%s)" msgstr "" #: v2v/v2v.ml:319 in-place/in_place.ml:256 msgid "unknown block driver ‘--block-driver %s’" msgstr "" #: input/parse_domain_from_vmx.ml:415 msgid "unknown firmware value '%s', assuming BIOS" msgstr "" #: lib/create_ovf.ml:454 lib/create_ovf.ml:255 msgid "unknown guest operating system: %s %s %d.%d %s (%s)" msgstr "" #: v2v/v2v.ml:329 open/open.ml:132 inspector/inspector.ml:238 msgid "unknown input transport ‘-it %s’" msgstr "" #: input/parse_domain_from_vmx.ml:428 msgid "unknown sound device '%s' ignored" msgstr "" #: input/parse_libvirt_xml.ml:215 msgid "unknown sound model %s ignored" msgstr "" #: input/OVF.ml:156 msgid "unsupported compression in OVF: %s" msgstr "" #: input/input_vcenter_https.ml:123 msgid "" "vcenter: was not found in the XML. You need to " "upgrade to libvirt ≥ 1.2.20." msgstr "" #: input/vCenter.ml:79 msgid "vcenter: URL not found: %s" msgstr "" #: input/vCenter.ml:70 msgid "vcenter: incorrect username or password" msgstr "" #: input/vCenter.ml:72 msgid "" "vcenter: incorrect username or password. You might need to specify the " "username in the URI like this: [vpx|esx|..]://USERNAME@[etc]" msgstr "" #: input/vCenter.ml:84 msgid "vcenter: invalid response from server: %s" msgstr "" #: input/vCenter.ml:194 msgid "vcenter: no status code in output of ‘curl’ command." msgstr "" #: output/output_vdsm.ml:148 msgid "vdsm: invalid -os parameter does not contain a valid UUID: %s" msgstr "" #: output/output_openstack.ml:56 msgid "" "virt-v2v -oo server-id= [os-*=...]\n" "\n" "Specify the name or UUID of the conversion appliance using\n" "\n" " virt-v2v ... -o openstack -oo server-id=\n" "\n" "When virt-v2v runs it will attach the Cinder volumes to the\n" "conversion appliance, so this name or UUID must be the name\n" "of the virtual machine on OpenStack where virt-v2v is running.\n" "\n" "In addition, all usual OpenStack “os-*” parameters or “OS_*”\n" "environment variables can be used.\n" "\n" "Openstack “--os-*” parameters must be written as “virt-v2v -oo os-*”.\n" "\n" "For example:\n" "\n" " virt-v2v -oo os-username=\n" "\n" " equivalent to openstack: --os-username=\n" " or the environment variable: OS_USERNAME=\n" "\n" " virt-v2v -oo os-project-name=\n" "\n" " equivalent to openstack: --os-project-name=\n" " or the environment variable: OS_PROJECT_NAME=\n" "\n" "The os-* parameters and environment variables are optional.\n" msgstr "" #: input/parse_libvirt_xml.ml:189 msgid "" "virt-v2v does not support local displays, so in the " "input libvirt XML was ignored" msgstr "" #: input/select_input.ml:83 msgid "virt-v2v-in-place does not support remote libvirt URIs" msgstr "" #: input/parse_domain_from_vmx.ml:50 msgid "vmx URI path component looks incorrect" msgstr "" #: input/parse_domain_from_vmx.ml:48 msgid "vmx URI remote server name omitted" msgstr "" #: input/parse_domain_from_vmx.ml:46 msgid "vmx URI start with ‘ssh://...’" msgstr "" #: input/VMX.ml:313 msgid "vmx parser: cannot parse this line, ignoring: %s" msgstr "" #: input/VMX.ml:346 msgid "vmx parser: duplicate key '%s' ignored" msgstr "" #: output/output_openstack.ml:299 msgid "wait for cinder volume status to change to \"available\"" msgstr "" #: output/output_openstack.ml:360 msgid "waiting for cinder volume %s to attach to the conversion appliance" msgstr "" #: open/open.ml:136 msgid "you must supply the --run parameter" msgstr "" #: input/input_xen_ssh.ml:87 input/input_vddk.ml:189 msgid "‘-ic %s’ URL does not contain a host name field" msgstr "" #: input/input_vddk.ml:273 msgid "‘-io vddk-file=’ must be used exactly %d times" msgstr "" #: input/input_vddk.ml:297 msgid "" "‘-io vddk-libdir=%s’ does not point to a directory. See the virt-v2v-input-" "vmware(1) manual." msgstr "" #: output/output.ml:85 msgid "" "‘-oo compressed’ is only allowed when the output format is a local qcow2-" "format file, i.e. ‘-of qcow2’" msgstr "" #: input/input_vddk.ml:232 msgid "" "‘openssl’ command not found: automatically detecting thumbprint is not " "possible, so you must use ‘-io vddk-thumbprint=XX:XX...’" msgstr "" #: common/mltools/getopt-c.c:68 #, c-format msgid "Try ‘%s --help’ or consult %s(1) for more information.\n" msgstr "" #: common/mltools/getopt-c.c:187 #, c-format msgid "%s: ‘%s’ is not a numeric value.\n" msgstr "" #: common/mltools/getopt-c.c:193 #, c-format msgid "%s: %s: integer out of range\n" msgstr "" #: common/mltools/getopt-c.c:383 #, c-format msgid "%s: ‘%s’ is not allowed for -%c; allowed values are:\n" msgstr "" #: common/mltools/getopt-c.c:386 #, c-format msgid "%s: ‘%s’ is not allowed for %s%s; allowed values are:\n" msgstr "" #: common/mltools/getopt-c.c:421 #, c-format msgid "Extra parameter on the command line: ‘%s’.\n" msgstr "" #: common/options/config.c:72 #, c-format msgid "%s: line %d: error parsing configuration file: %s" msgstr "" #: common/options/decrypt.c:52 #, c-format msgid "string size overflow" msgstr "" #: common/options/decrypt.c:170 #, c-format msgid "" "'clevis_luks_unlock', needed for decrypting %s, is unavailable in this " "libguestfs version" msgstr "" #: common/options/decrypt.c:184 #, c-format msgid "" "could not find key to open LUKS encrypted %s.\n" "\n" "Try using --key on the command line.\n" "\n" "Original error: %s (%d)" msgstr "" #: common/options/inspect.c:78 #, c-format msgid "" "%s: no operating system was found on this disk\n" "\n" "If using guestfish ‘-i’ option, remove this option and instead\n" "use the commands ‘run’ followed by ‘list-filesystems’.\n" "You can then mount filesystems you want by hand using the\n" "‘mount’ or ‘mount-ro’ command.\n" "\n" "If using guestmount ‘-i’, remove this option and choose the\n" "filesystem(s) you want to see by manually adding ‘-m’ option(s).\n" "Use ‘virt-filesystems’ to see what filesystems are available.\n" "\n" "If using other virt tools, this disk image won’t work\n" "with these tools. Use the guestfish equivalent commands\n" "(see the virt tool manual page).\n" msgstr "" #: common/options/inspect.c:99 #, c-format msgid "" "%s: multi-boot operating systems are not supported\n" "\n" "If using guestfish ‘-i’ option, remove this option and instead\n" "use the commands ‘run’ followed by ‘list-filesystems’.\n" "You can then mount filesystems you want by hand using the\n" "‘mount’ or ‘mount-ro’ command.\n" "\n" "If using guestmount ‘-i’, remove this option and choose the\n" "filesystem(s) you want to see by manually adding ‘-m’ option(s).\n" "Use ‘virt-filesystems’ to see what filesystems are available.\n" "\n" "If using other virt tools, multi-boot operating systems won’t work\n" "with these tools. Use the guestfish equivalent commands\n" "(see the virt tool manual page).\n" msgstr "" #: common/options/inspect.c:161 #, c-format msgid "%s: some filesystems could not be mounted (ignored)\n" msgstr "" #: common/options/inspect.c:178 #, c-format msgid "Operating system: %s\n" msgstr "" #: common/options/inspect.c:196 #, c-format msgid "%s mounted on %s\n" msgstr "" #: common/options/keys.c:63 #, c-format msgid "Enter key or passphrase (\"%s\"): " msgstr "" #: common/options/keys.c:146 #, c-format msgid "size_t overflow" msgstr "" #: common/options/keys.c:193 #, c-format msgid "could not read key from user" msgstr "" #: common/options/options.c:283 #, c-format msgid "%s: ‘%s’ could not be mounted.\n" msgstr "" #: common/options/options.c:287 #, c-format msgid "" "%s: Check mount(8) man page to ensure options ‘%s’\n" "%s: are supported by the filesystem that is being mounted.\n" msgstr "" #: common/options/options.c:291 #, c-format msgid "%s: Did you mean to mount one of these filesystems?\n" msgstr "" #: common/options/options.c:304 #, c-format msgid "cannot determine the subvolume for %s: %s (%d)" msgstr "" #: common/options/uri.c:119 #, c-format msgid "%s: --add: could not parse URI ‘%s’\n" msgstr "" #: common/options/uri.c:130 #, c-format msgid "%s: %s: scheme of URI is NULL or empty\n" msgstr "" #: common/options/uri.c:138 #, c-format msgid "%s: %s: cannot have both a server name and a socket query parameter\n" msgstr "" #: common/utils/utils.c:107 #, c-format msgid "%s exited successfully" msgstr "" #: common/utils/utils.c:110 #, c-format msgid "%s exited with error status %d" msgstr "" #: common/utils/utils.c:114 #, c-format msgid "%s killed by signal %d (%s)" msgstr "" #: common/utils/utils.c:118 #, c-format msgid "%s stopped by signal %d (%s)" msgstr "" #: common/utils/utils.c:122 #, c-format msgid "%s exited for an unknown reason (status %d)" msgstr "" ================================================ FILE: po-docs/LINGUAS ================================================ cs de en_GB es eu fi fr gu hi it ja ka kn ml mr nl or pa pl pt_BR ru si ta te tg uk zh_CN id ================================================ FILE: po-docs/Makefile.am ================================================ # libguestfs translations of man pages and POD files # Copyright (C) 2010-2025 Red Hat Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. include $(top_srcdir)/subdir-rules.mk # XXX The use of po4a is naive here. Also we should integrate this # into the po/ directory and the translations into the usual # libguestfs.pot file. # Languages. # Don't use LINGUAS (uppercase) as Gentoo defines it (RHBZ#804464). linguas := $(shell cat $(srcdir)/LINGUAS) # Languages that we translate, as they have enough coverage. linguas_translated = ja uk EXTRA_DIST = \ LINGUAS \ virt-v2v-docs.pot \ $(linguas:%=%.po) \ podfiles # Build the final man pages from the translated POD files. Each # language directory contains a Makefile.am that we need to keep up to # date (note each $lang/Makefile.am should be identical). # XXX Is there a better way? SUBDIRS = $(linguas_translated) virt-v2v-docs.pot: cd $(top_srcdir) && $(PO4A_UPDATEPO) \ --no-deprecation \ -o no-warn-simple \ -f pod \ -M utf-8 \ --package-name $(PACKAGE_NAME) \ --package-version $(PACKAGE_VERSION) \ --msgid-bugs-address guestfs@lists.libguestfs.org \ --copyright-holder "Red Hat Inc." \ -p $(abs_srcdir)/$@ \ $(patsubst %,-m %,$(shell cat $(srcdir)/podfiles)) podfiles: Makefile rm -f $@ $@-t cd $(top_srcdir) && find . -name '*.pod' -printf '%P\n'| \ grep -v ^debian/ | \ grep -v '^virt-v2v-[12]' | \ grep -v ^po-docs/ | \ grep -v ^stamp- | \ grep -v /stamp- \ > $(abs_srcdir)/$@-t LC_ALL=C sort -o $@-t $@-t mv $@-t $@ ================================================ FILE: po-docs/cs.po ================================================ # Zdenek , 2016. #zanata # Zdenek , 2017. #zanata msgid "" msgstr "" "Project-Id-Version: libguestfs 1.39.12\n" "Report-Msgid-Bugs-To: guestfs@lists.libguestfs.org\n" "POT-Creation-Date: 2026-04-13 15:16+0100\n" "PO-Revision-Date: 2017-09-11 04:54+0000\n" "Last-Translator: Zdenek \n" "Language-Team: Czech\n" "Language: cs\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2\n" "X-Generator: Zanata 4.6.2\n" #. type: =end #: common/mlcustomize/customize-options.pod:1 #: common/mlcustomize/customize-options.pod:25 #: common/mlcustomize/v2v-customize-options.pod:1 #: common/mlcustomize/v2v-customize-options.pod:25 #: docs/virt-v2v-release-notes-1.42.pod:141 #: docs/virt-v2v-release-notes-1.42.pod:145 #: docs/virt-v2v-release-notes-2.0.pod:138 #: docs/virt-v2v-release-notes-2.0.pod:142 #: docs/virt-v2v-release-notes-2.0.pod:370 #: docs/virt-v2v-release-notes-2.0.pod:374 #: docs/virt-v2v-release-notes-2.10.pod:12 #: docs/virt-v2v-release-notes-2.10.pod:16 #: docs/virt-v2v-release-notes-2.10.pod:184 #: docs/virt-v2v-release-notes-2.10.pod:188 #: docs/virt-v2v-release-notes-2.10.pod:278 #: docs/virt-v2v-release-notes-2.10.pod:282 #: docs/virt-v2v-release-notes-2.2.pod:135 #: docs/virt-v2v-release-notes-2.2.pod:139 #: docs/virt-v2v-release-notes-2.2.pod:284 #: docs/virt-v2v-release-notes-2.2.pod:288 #: docs/virt-v2v-release-notes-2.4.pod:12 #: docs/virt-v2v-release-notes-2.4.pod:16 #: docs/virt-v2v-release-notes-2.4.pod:93 #: docs/virt-v2v-release-notes-2.4.pod:97 #: docs/virt-v2v-release-notes-2.4.pod:161 #: docs/virt-v2v-release-notes-2.4.pod:165 #: docs/virt-v2v-release-notes-2.6.pod:12 #: docs/virt-v2v-release-notes-2.6.pod:16 #: docs/virt-v2v-release-notes-2.6.pod:42 #: docs/virt-v2v-release-notes-2.6.pod:46 #: docs/virt-v2v-release-notes-2.6.pod:92 #: docs/virt-v2v-release-notes-2.6.pod:96 #: docs/virt-v2v-release-notes-2.6.pod:188 #: docs/virt-v2v-release-notes-2.6.pod:192 #: docs/virt-v2v-release-notes-2.8.pod:12 #: docs/virt-v2v-release-notes-2.8.pod:16 #: docs/virt-v2v-release-notes-2.8.pod:208 #: docs/virt-v2v-release-notes-2.8.pod:214 #: docs/virt-v2v-release-notes-2.8.pod:323 #: docs/virt-v2v-release-notes-2.8.pod:327 msgid "comment" msgstr "" #. type: verbatim #: common/mlcustomize/customize-options.pod:3 #: common/mlcustomize/v2v-customize-options.pod:3 #, no-wrap msgid "" "libguestfs generated file\n" " WARNING: THIS FILE IS GENERATED FROM THE FOLLOWING FILES:\n" " generator/customize.ml\n" " and from the code in the generator/ subdirectory.\n" " ANY CHANGES YOU MAKE TO THIS FILE WILL BE LOST.\n" "\n" msgstr "" #. type: verbatim #: common/mlcustomize/customize-options.pod:9 #: common/mlcustomize/v2v-customize-options.pod:9 #, no-wrap msgid "" " Copyright (C) 2009-2025 Red Hat Inc.\n" "\n" msgstr "" #. type: verbatim #: common/mlcustomize/customize-options.pod:11 #: common/mlcustomize/v2v-customize-options.pod:11 #, no-wrap msgid "" " This program is free software; you can redistribute it and/or modify\n" " it under the terms of the GNU General Public License as published by\n" " the Free Software Foundation; either version 2 of the License, or\n" " (at your option) any later version.\n" "\n" msgstr "" #. type: verbatim #: common/mlcustomize/customize-options.pod:16 #: common/mlcustomize/v2v-customize-options.pod:16 #, no-wrap msgid "" " This program is distributed in the hope that it will be useful,\n" " but WITHOUT ANY WARRANTY; without even the implied warranty of\n" " MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" " GNU General Public License for more details.\n" "\n" msgstr "" #. type: verbatim #: common/mlcustomize/customize-options.pod:21 #: common/mlcustomize/v2v-customize-options.pod:21 #, no-wrap msgid "" " 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" msgstr "" #. type: =item #: common/mlcustomize/customize-options.pod:29 #: common/mlcustomize/v2v-customize-options.pod:29 msgid "B<--append-line> FILE:LINE" msgstr "" #. type: textblock #: common/mlcustomize/customize-options.pod:31 #: common/mlcustomize/v2v-customize-options.pod:31 msgid "" "Append a single line of text to the C. If the file does not already " "end with a newline, then one is added before the appended line. Also a " "newline is added to the end of the C string automatically." msgstr "" #. type: textblock #: common/mlcustomize/customize-options.pod:36 #: common/mlcustomize/v2v-customize-options.pod:36 msgid "For example (assuming ordinary shell quoting) this command:" msgstr "" #. type: verbatim #: common/mlcustomize/customize-options.pod:38 #: common/mlcustomize/v2v-customize-options.pod:38 #, no-wrap msgid "" " --append-line '/etc/hosts:10.0.0.1 foo'\n" "\n" msgstr "" #. type: textblock #: common/mlcustomize/customize-options.pod:40 #: common/mlcustomize/v2v-customize-options.pod:40 msgid "" "will add either C<10.0.0.1 foo⏎> or C<⏎10.0.0.1 foo⏎> to the file, the " "latter only if the existing file does not already end with a newline." msgstr "" #. type: textblock #: common/mlcustomize/customize-options.pod:44 #: common/mlcustomize/v2v-customize-options.pod:44 msgid "" "C<⏎> represents a newline character, which is guessed by looking at the " "existing content of the file, so this command does the right thing for files " "using Unix or Windows line endings. It also works for empty or non-existent " "files." msgstr "" #. type: textblock #: common/mlcustomize/customize-options.pod:49 #: common/mlcustomize/v2v-customize-options.pod:49 msgid "To insert several lines, use the same option several times:" msgstr "" #. type: verbatim #: common/mlcustomize/customize-options.pod:51 #: common/mlcustomize/v2v-customize-options.pod:51 #, no-wrap msgid "" " --append-line '/etc/hosts:10.0.0.1 foo'\n" " --append-line '/etc/hosts:10.0.0.2 bar'\n" "\n" msgstr "" #. type: textblock #: common/mlcustomize/customize-options.pod:54 #: common/mlcustomize/v2v-customize-options.pod:54 msgid "To insert a blank line before the appended line, do:" msgstr "" #. type: verbatim #: common/mlcustomize/customize-options.pod:56 #: common/mlcustomize/v2v-customize-options.pod:56 #, no-wrap msgid "" " --append-line '/etc/hosts:'\n" " --append-line '/etc/hosts:10.0.0.1 foo'\n" "\n" msgstr "" #. type: =item #: common/mlcustomize/customize-options.pod:59 #: common/mlcustomize/v2v-customize-options.pod:59 msgid "B<--chmod> PERMISSIONS:FILE" msgstr "" #. type: textblock #: common/mlcustomize/customize-options.pod:61 #: common/mlcustomize/v2v-customize-options.pod:61 msgid "Change the permissions of C to C." msgstr "" #. type: textblock #: common/mlcustomize/customize-options.pod:63 #: common/mlcustomize/v2v-customize-options.pod:63 msgid "" "I: C by default would be decimal, unless you prefix it " "with C<0> to get octal, ie. use C<0700> not C<700>." msgstr "" #. type: =item #: common/mlcustomize/customize-options.pod:66 #: common/mlcustomize/v2v-customize-options.pod:66 msgid "B<--chown> UID:GID:PATH" msgstr "" #. type: textblock #: common/mlcustomize/customize-options.pod:68 #: common/mlcustomize/v2v-customize-options.pod:68 msgid "" "Change the owner user and group ID of a file or directory in the guest. " "Note:" msgstr "" #. type: =item #: common/mlcustomize/customize-options.pod:73 #: common/mlcustomize/customize-options.pod:78 #: common/mlcustomize/customize-options.pod:381 #: common/mlcustomize/customize-options.pod:385 #: common/mlcustomize/v2v-customize-options.pod:73 #: common/mlcustomize/v2v-customize-options.pod:78 #: common/mlcustomize/v2v-customize-options.pod:327 #: common/mlcustomize/v2v-customize-options.pod:331 #: docs/virt-v2v-hacking.pod:23 docs/virt-v2v-hacking.pod:27 #: docs/virt-v2v-input-vmware.pod:426 docs/virt-v2v-input-vmware.pod:430 #: docs/virt-v2v-input-vmware.pod:498 docs/virt-v2v-input-vmware.pod:502 #: docs/virt-v2v-input-vmware.pod:506 docs/virt-v2v-input-vmware.pod:510 #: docs/virt-v2v-input-vmware.pod:514 docs/virt-v2v-output-local.pod:71 #: docs/virt-v2v-output-local.pod:76 docs/virt-v2v-output-local.pod:81 #: docs/virt-v2v-output-ovirt.pod:120 docs/virt-v2v-output-ovirt.pod:125 #: docs/virt-v2v-release-notes-2.10.pod:28 #: docs/virt-v2v-release-notes-2.10.pod:33 #: docs/virt-v2v-release-notes-2.10.pod:91 #: docs/virt-v2v-release-notes-2.10.pod:95 #: docs/virt-v2v-release-notes-2.10.pod:100 #: docs/virt-v2v-release-notes-2.10.pod:105 docs/virt-v2v.pod:207 #: docs/virt-v2v.pod:212 docs/virt-v2v.pod:217 docs/virt-v2v.pod:221 #: docs/virt-v2v.pod:225 docs/virt-v2v.pod:748 docs/virt-v2v.pod:753 #: docs/virt-v2v.pod:758 docs/virt-v2v.pod:762 docs/virt-v2v.pod:1481 #: docs/virt-v2v.pod:1486 docs/virt-v2v.pod:1497 docs/virt-v2v.pod:1509 #: docs/virt-v2v.pod:1515 docs/virt-v2v.pod:1520 docs/virt-v2v.pod:1538 #: docs/virt-v2v.pod:1542 inspector/virt-v2v-inspector.pod:41 #: inspector/virt-v2v-inspector.pod:49 inspector/virt-v2v-inspector.pod:53 #: open/virt-v2v-open.pod:35 open/virt-v2v-open.pod:40 msgid "*" msgstr "" #. type: textblock #: common/mlcustomize/customize-options.pod:75 #: common/mlcustomize/v2v-customize-options.pod:75 msgid "" "Only numeric UIDs and GIDs will work, and these may not be the same inside " "the guest as on the host." msgstr "" #. type: textblock #: common/mlcustomize/customize-options.pod:80 #: common/mlcustomize/v2v-customize-options.pod:80 msgid "This will not work with Windows guests." msgstr "" #. type: textblock #: common/mlcustomize/customize-options.pod:84 #: common/mlcustomize/v2v-customize-options.pod:84 #: docs/virt-v2v-output-openstack.pod:101 msgid "For example:" msgstr "Na příklad:" #. type: verbatim #: common/mlcustomize/customize-options.pod:86 #: common/mlcustomize/v2v-customize-options.pod:86 #, no-wrap msgid "" " virt-customize --chown '0:0:/var/log/audit.log'\n" "\n" msgstr "" #. type: textblock #: common/mlcustomize/customize-options.pod:88 #: common/mlcustomize/v2v-customize-options.pod:88 msgid "See also: I<--upload>." msgstr "" #. type: =item #: common/mlcustomize/customize-options.pod:90 #: common/mlcustomize/v2v-customize-options.pod:90 msgid "B<--commands-from-file> FILENAME" msgstr "" #. type: textblock #: common/mlcustomize/customize-options.pod:92 #: common/mlcustomize/v2v-customize-options.pod:92 msgid "" "Read the customize commands from a file, one (and its arguments) each line." msgstr "" #. type: textblock #: common/mlcustomize/customize-options.pod:95 #: common/mlcustomize/v2v-customize-options.pod:95 msgid "" "Each line contains a single customization command and its arguments, for " "example:" msgstr "" #. type: verbatim #: common/mlcustomize/customize-options.pod:98 #: common/mlcustomize/v2v-customize-options.pod:98 #, no-wrap msgid "" " delete /some/file\n" " install some-package\n" " password some-user:password:its-new-password\n" "\n" msgstr "" #. type: textblock #: common/mlcustomize/customize-options.pod:102 #: common/mlcustomize/v2v-customize-options.pod:102 msgid "" "Empty lines are ignored, and lines starting with C<#> are comments and are " "ignored as well. Furthermore, arguments can be spread across multiple " "lines, by adding a C<\\> (continuation character) at the of a line, for " "example" msgstr "" #. type: verbatim #: common/mlcustomize/customize-options.pod:107 #: common/mlcustomize/v2v-customize-options.pod:107 #, no-wrap msgid "" " edit /some/file:\\\n" " s/^OPT=.*/OPT=ok/\n" "\n" msgstr "" #. type: textblock #: common/mlcustomize/customize-options.pod:110 #: common/mlcustomize/v2v-customize-options.pod:110 msgid "" "The commands are handled in the same order as they are in the file, as if " "they were specified as I<--delete /some/file> on the command line." msgstr "" #. type: =item #: common/mlcustomize/customize-options.pod:114 #: common/mlcustomize/v2v-customize-options.pod:114 msgid "B<--copy> SOURCE:DEST" msgstr "" #. type: textblock #: common/mlcustomize/customize-options.pod:116 #: common/mlcustomize/v2v-customize-options.pod:116 msgid "Copy files or directories recursively inside the guest." msgstr "" #. type: textblock #: common/mlcustomize/customize-options.pod:118 #: common/mlcustomize/customize-options.pod:125 #: common/mlcustomize/customize-options.pod:277 #: common/mlcustomize/v2v-customize-options.pod:118 #: common/mlcustomize/v2v-customize-options.pod:125 #: common/mlcustomize/v2v-customize-options.pod:223 msgid "Wildcards cannot be used." msgstr "" #. type: =item #: common/mlcustomize/customize-options.pod:120 #: common/mlcustomize/v2v-customize-options.pod:120 msgid "B<--copy-in> LOCALPATH:REMOTEDIR" msgstr "" #. type: textblock #: common/mlcustomize/customize-options.pod:122 #: common/mlcustomize/v2v-customize-options.pod:122 msgid "" "Copy local files or directories recursively into the disk image, placing " "them in the directory C (which must exist)." msgstr "" #. type: =item #: common/mlcustomize/customize-options.pod:127 #: common/mlcustomize/v2v-customize-options.pod:127 msgid "B<--delete> PATH" msgstr "" #. type: textblock #: common/mlcustomize/customize-options.pod:129 #: common/mlcustomize/v2v-customize-options.pod:129 msgid "" "Delete a file from the guest. Or delete a directory (and all its contents, " "recursively)." msgstr "" #. type: textblock #: common/mlcustomize/customize-options.pod:132 #: common/mlcustomize/v2v-customize-options.pod:132 msgid "" "You can use shell glob characters in the specified path. Be careful to " "escape glob characters from the host shell, if that is required. For " "example:" msgstr "" #. type: verbatim #: common/mlcustomize/customize-options.pod:136 #: common/mlcustomize/v2v-customize-options.pod:136 #, no-wrap msgid "" " virt-customize --delete '/var/log/*.log'.\n" "\n" msgstr "" #. type: textblock #: common/mlcustomize/customize-options.pod:138 #: common/mlcustomize/v2v-customize-options.pod:138 msgid "See also: I<--upload>, I<--scrub>." msgstr "" #. type: =item #: common/mlcustomize/customize-options.pod:140 #: common/mlcustomize/v2v-customize-options.pod:140 msgid "B<--edit> FILE:EXPR" msgstr "" #. type: textblock #: common/mlcustomize/customize-options.pod:142 #: common/mlcustomize/v2v-customize-options.pod:142 msgid "Edit C using the Perl expression C." msgstr "" #. type: textblock #: common/mlcustomize/customize-options.pod:144 #: common/mlcustomize/v2v-customize-options.pod:144 msgid "" "Be careful to properly quote the expression to prevent it from being altered " "by the shell." msgstr "" #. type: textblock #: common/mlcustomize/customize-options.pod:147 #: common/mlcustomize/v2v-customize-options.pod:147 msgid "Note that this option is only available when Perl 5 is installed." msgstr "" #. type: textblock #: common/mlcustomize/customize-options.pod:149 #: common/mlcustomize/v2v-customize-options.pod:149 msgid "See L." msgstr "" #. type: =item #: common/mlcustomize/customize-options.pod:151 #: common/mlcustomize/v2v-customize-options.pod:151 msgid "B<--firstboot> SCRIPT" msgstr "" #. type: textblock #: common/mlcustomize/customize-options.pod:153 #: common/mlcustomize/v2v-customize-options.pod:153 msgid "" "Install C

Getting started

sudo yum install libguestfs-tools      # Fedora/RHEL/CentOS
sudo apt-get install libguestfs-tools  # Debian/Ubuntu
guestfish --ro -i -a disk.img

For examples using guestfish and other tools see the recipes page. For other examples see these blog entries.

rjones AT redhat DOT com
================================================ FILE: website/pod.css ================================================ /* CSS to make pod2html files look a little bit better. */ body { margin-left: 4em; } body p, body ul, ol, body dl { margin-left: 2em; width: 31em; } pre { width: 31em; } li { padding-bottom: 0.5em; } /* Code sections. */ pre { background-color: #f8f8f8; color: rgb(204,0,0); font-weight: 550; border-left: 6px solid rgb(204,64,64); padding: 6px; margin-left: 1em; font-size: 120%; } /* Bold, italic in man pages. */ b, strong { color: rgb(204,0,0); } i, em { color: rgb(204,0,0); } /* Name heading. */ body > h1:first-of-type { display: none; } body > h1:first-of-type + p { font-size: 125%; font-weight: bold; color: rgb(204,0,0); margin-left: -32px; } /* Warning heading in man pages. */ a[name="warning"] { -moz-border-radius-topleft: 5px; -moz-border-radius-topright: 5px; border-radius-topleft: 5px; border-radius-topright: 5px; color: white; background-color: rgb(204,0,0); } a[name="warning"]:before { content: "\00a0\00a0\00a0"; } a[name="warning"]:after { content: "\00a0\00a0\00a0"; } /* Put the index on the right hand side in a floating box. */ ul[id="index"] { float: right; width: 18em; border-left: 3em solid white; background-color: #fcfcfc; margin-top: 32px; padding-top: 0px; margin-left: 1em; padding-left: 1em; padding-right: 1em; font-size: 90%; } ul[id="index"] a[href] { text-decoration: none; } ul[id="index"] a[href]:hover { text-decoration: underline; } ul[id="index"] a[href]:before { content: '#\00a0'; color: rgb(204,0,0); font-size: x-small; } ul[id="index"] { width: 17em; list-style: none; margin-left: 0px; margin-right: 0px; padding-left: 0px; padding-right: 0px; } ul[id="index"] > li { margin-bottom: 0.5em; } ul[id="index"] > li ul { width: 16em; list-style: none; margin-left: 0px; margin-right: 0px; padding-left: 0px; padding-right: 0px; margin-bottom: 0.5em; } ul[id="index"] > li ul li { display: inline; margin-right: 1em; } /* ul[id="index"] > li ul li:after { color: #ccc; content: '\2014'; } */ /* Get rid of those horrible
's :-( */ hr { display: none; } /* Demote

's and set rest of headers relative. */ h1 { font-size: 100%; color: black; border-bottom: solid 1px rgb(204,0,0); } h2 { font-size: 95%; border-bottom: none; } h3 { font-size: 90%; } h4 { font-size: 85%; } ================================================ FILE: website/standard.css ================================================ /* CSS for et.redhat.com/~rjones/ * $Id: standard.css,v 1.15 2009/07/22 10:32:02 rjones Exp $ */ body { margin-left: 1em; } body p, body ul, ol, body dl { margin-left: 2em; width: 35em; } li { padding-bottom: 0.5em; } /* Headings. */ h1 { font-size: 140%; border-bottom: 1px solid #000; } h2 { border-bottom: 1px solid #eee; } h1, h2, h3, h4 { color: #333; } /* Code sections. */ code { font-size: 120%; } pre { background-color: #fcfcfc; /*border: 1px dotted #888;*/ border-left: 6px solid #f0f0f0; padding: 5px; margin-left: 1em; font-size: 120%; } /* Notes. */ p.note { margin-left: 2em; margin-right: 1em; /*border: 1px dotted #888;*/ padding-left: 36px; background: url(../images/note.png) no-repeat; } p.warning { margin-left: 2em; margin-right: 1em; border: 1px dotted #800; padding-left: 36px; background: url(../images/warning.png) no-repeat #fee; } /* Highlighted text. */ span.highlight { color: red; } /* Images. */ img.frame_img { border: 1px solid #888; padding: 6px; } /* Floating images with text around. */ img.leftpara { float: left; clear: left; margin-right: 1em; margin-bottom: 1em; } img.rightpara { float: right; clear: right; margin-left: 1em; margin-bottom: 1em; } /* Nice-looking tables. */ table.top_table { border-collapse: collapse; } table.top_table th { vertical-align: top; padding: 3px; border-bottom: 1px solid #ddd; } table.top_table td { vertical-align: top; padding: 3px; } table.top_table td.number { text-align: right; } table.top_table th.divider { text-align: center; padding: 6px; border-top: 1px solid #ddd; border-bottom: 1px solid #ddd; } table.left_table { border-collapse: collapse; } table.left_table th { text-align: right; vertical-align: top; padding: 3px; padding-right: 1em; } table.left_table td { vertical-align: top; padding: 3px; } table.left_table td.number { text-align: right; } table.left_table th.divider { text-align: center; padding: 6px; border-top: 1px solid #eee; border-bottom: 1px solid #eee; } /*
    styled as menus. */ ul.menu { width: 60em; padding: 0px; margin-left: 1em; list-style: none; } ul.menu li { display: inline; border-left: 1px solid #666; padding-left: 5px; } ul.menu li.first { border-left: none; padding-left: 0px; } /* Highlight for Javascript "go" sections. */ .jsgo { border: 1px solid #fff; cursor: pointer; cursor: hand; } .jsgo:hover { border: 1px solid #ccc; background: #eef; }