.\" Automatically generated by Podwrapper::Man 1.42.3 (Pod::Simple 3.42) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" ======================================================================== .\" .IX Title "virt-p2v-make-kiwi 1" .TH virt-p2v-make-kiwi 1 "2022-10-13" "virt-p2v-1.42.3" "Virtualization Support" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" virt\-p2v\-make\-kiwi \- Build the virt\-p2v kiwi configuration .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& virt\-p2v\-make\-kiwi [\-\-inject\-ssh\-identity path] [\-o kiwi\-folder] .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fBvirt\-p2v\fR\|(1) converts a physical machine to run virtualized on \s-1KVM,\s0 managed by libvirt, OpenStack, oVirt, Red Hat Enterprise Virtualisation (\s-1RHEV\s0), or one of the other targets supported by \&\fBvirt\-v2v\fR\|(1). .PP Kiwi is a tool used mainly by \s-1SUSE\s0 Linux Enterprise and openSUSE to build live CDs, make appliances and so on. It is driven by a few files including an xml description of the machine. .PP virt\-p2v\-make\-kiwi builds a folder containing all the pieces needed for kiwi to build a bootable P2V live \s-1CD ISO, USB\s0 key, or \s-1PXE\s0 image. This tool only builds the kiwi configuration, but this manual page describes some of the ways you can use the kiwi configuration. .PP The root user on the disk image uses \f(CW\*(C`p2v\*(C'\fR as its initial password. .SH "BUILDING THE KIWI CONFIGURATION" .IX Header "BUILDING THE KIWI CONFIGURATION" Using virt\-p2v\-make\-kiwi is very simple: .PP .Vb 1 \& virt\-p2v\-make\-kiwi .Ve .PP will build a kiwi configuration based on the current machine’s distribution. .PP To control the name of the output folder, use the \fI\-o\fR parameter. .SH "BUILDING A LIVE CD / ISO" .IX Header "BUILDING A LIVE CD / ISO" Once you have the kiwi configuration folder, you can use \fBkiwi\fR\|(1) to make a live \s-1CD:\s0 .PP .Vb 1 \& sudo kiwi \-\-build p2v.kiwi \-d build \-\-type iso .Ve .PP Before running this, you may have to tweak the \f(CW\*(C`config.xml\*(C'\fR file to change the locale and keyboard mapping to the one you need. .PP If running on a \s-1SUSE\s0 Linux Entreprise Server, add the path to your packages repositories using the \f(CW\*(C`\-\-ignore\-repos\*(C'\fR and \f(CW\*(C`\-\-add\-repo\*(C'\fR kiwi parameters. .PP The generated \s-1ISO\s0 image will be placed in the \f(CW\*(C`build\*(C'\fR folder. .SH "BUILDING A BOOTABLE USB KEY" .IX Header "BUILDING A BOOTABLE USB KEY" Use the \fBdd\fR\|(1) program to write the \s-1ISO\s0 created above to a \s-1USB\s0 key: .PP .Vb 1 \& sudo dd if=path/to/p2v.iso of=/dev/sdX .Ve .SH "BUILDING A PXE BOOT IMAGE" .IX Header "BUILDING A PXE BOOT IMAGE" To create a \s-1PXE\s0 boot image, run kiwi in such a way: .PP .Vb 1 \& sudo kiwi \-\-build $PWD/p2v.kiwi \-d build \-\-add\-profile netboot \-\-type pxe .Ve .PP For more details on how to use the generated image, report to the kiwi documentation on \s-1PXE\s0 images: https://doc.opensuse.org/projects/kiwi/doc/#chap.pxe .SH "ADDING AN SSH IDENTITY" .IX Header "ADDING AN SSH IDENTITY" You can inject an \s-1SSH\s0 identity (private key) file to the kiwi config and hence into the \s-1ISO\s0 using the \fI\-\-inject\-ssh\-identity\fR option. Note that you \fIcannot\fR inject a key once the \s-1ISO\s0 has been built. .PP First create a key pair. It must have an empty passphrase: .PP .Vb 1 \& ssh\-keygen \-t rsa \-N \*(Aq\*(Aq \-f id_rsa .Ve .PP This creates a private key (\f(CW\*(C`id_rsa\*(C'\fR) and a public key (\f(CW\*(C`id_rsa.pub\*(C'\fR) pair. The public key should be appended to the \&\f(CW\*(C`authorized_keys\*(C'\fR file on the virt\-v2v conversion server (usually to \&\f(CW\*(C`/root/.ssh/authorized_keys\*(C'\fR). .PP The private key should be added to the kiwi config and then discarded: .PP .Vb 2 \& virt\-p2v\-make\-kiwi [...] \-\-inject\-ssh\-identity id_rsa \& rm id_rsa .Ve .PP The \s-1ISO\s0 can then be built from the kickstart in the usual way (see above), and it will contain the embedded \s-1SSH\s0 identity (\fI/var/tmp/id_rsa\fR). .PP When booting virt\-p2v, specify the \s-1URL\s0 of the injected file like this: .PP .Vb 5 \& │ User name: [root_\|_\|_\|_\|_\|_\|_\|_\|_\|_\|_\|_\|_\|_\|_\|_\|_\|_\|_\|_\|_\|_\|_\|_\|_\|_\|_\|_\|_] │ \& │ │ \& │ Password: [ ] │ \& │ │ \& │ SSH Identity URL: [file:///var/tmp/id_rsa_\|_\|_\|_\|_\|_\|_\|_\|_\|_\|_] │ .Ve .PP or if using the kernel command line, add: .PP .Vb 1 \& p2v.identity=file:///var/tmp/id_rsa .Ve .PP For more information, see \*(L"\s-1SSH IDENTITIES\*(R"\s0 in \fBvirt\-p2v\fR\|(1). .SH "OPTIONS" .IX Header "OPTIONS" .IP "\fB\-\-help\fR" 4 .IX Item "--help" Display help. .IP "\fB\-\-inject\-ssh\-identity\fR id_rsa" 4 .IX Item "--inject-ssh-identity id_rsa" Add an \s-1SSH\s0 identity (private key) file into the kickstart. See \*(L"\s-1ADDING AN SSH IDENTITY\*(R"\s0 above. .IP "\fB\-o\fR \s-1OUTPUT\s0" 4 .IX Item "-o OUTPUT" .PD 0 .IP "\fB\-\-output\fR \s-1OUTPUT\s0" 4 .IX Item "--output OUTPUT" .PD Write kiwi configuration to the \f(CW\*(C`OUTPUT\*(C'\fR folder. If not specified, the default is \&\fIp2v.kiwi\fR in the current directory. .IP "\fB\-V\fR" 4 .IX Item "-V" .PD 0 .IP "\fB\-\-version\fR" 4 .IX Item "--version" .PD Display version number and exit. .SH "FILES" .IX Header "FILES" .IP "\fI\f(CI$libdir\fI/virt\-p2v/virt\-p2v.xz\fR" 4 .IX Item "$libdir/virt-p2v/virt-p2v.xz" The \fBvirt\-p2v\fR\|(1) binary which is copied into the kiwi configuration. .Sp The location of the binary can be changed by setting the \&\f(CW\*(C`VIRT_P2V_DATA_DIR\*(C'\fR environment variable. .IP "\fI\f(CI$datadir\fI/virt\-p2v/issue\fR" 4 .IX Item "$datadir/virt-p2v/issue" .PD 0 .IP "\fI\f(CI$datadir\fI/virt\-p2v/launch\-virt\-p2v.in\fR" 4 .IX Item "$datadir/virt-p2v/launch-virt-p2v.in" .IP "\fI\f(CI$datadir\fI/virt\-p2v/kiwi\fR" 4 .IX Item "$datadir/virt-p2v/kiwi" .IP "\fI\f(CI$datadir\fI/virt\-p2v/p2v.service\fR" 4 .IX Item "$datadir/virt-p2v/p2v.service" .PD Various data files that are used to make the kiwi appliance. .Sp The location of these files can be changed by setting the \&\f(CW\*(C`VIRT_P2V_DATA_DIR\*(C'\fR environment variable. .SH "ENVIRONMENT VARIABLES" .IX Header "ENVIRONMENT VARIABLES" .ie n .IP """VIRT_P2V_DATA_DIR""" 4 .el .IP "\f(CWVIRT_P2V_DATA_DIR\fR" 4 .IX Item "VIRT_P2V_DATA_DIR" The directory where virt\-p2v\-make\-kiwi looks for data files and the virt\-p2v binary (see \*(L"\s-1FILES\*(R"\s0 above). If not set, a compiled-in location is used. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fBvirt\-p2v\fR\|(1), \&\fBvirt\-p2v\-make\-disk\fR\|(1), \&\fBvirt\-v2v\fR\|(1), \&\fBkiwi\fR\|(1), http://libguestfs.org/. .SH "AUTHORS" .IX Header "AUTHORS" Cédric Bosdonnat .SH "COPYRIGHT" .IX Header "COPYRIGHT" Copyright (C) 2016 \s-1SUSE\s0 Ltd. .SH "LICENSE" .IX Header "LICENSE" This program is free software; you can redistribute it and/or modify it under the terms of the \s-1GNU\s0 General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. .PP This program is distributed in the hope that it will be useful, but \&\s-1WITHOUT ANY WARRANTY\s0; without even the implied warranty of \&\s-1MERCHANTABILITY\s0 or \s-1FITNESS FOR A PARTICULAR PURPOSE.\s0 See the \s-1GNU\s0 General Public License for more details. .PP You should have received a copy of the \s-1GNU\s0 General Public License along with this program. If not, see . .SH "BUGS" .IX Header "BUGS" To get a list of bugs against libguestfs (which include virt\-p2v), use this link: https://bugzilla.redhat.com/buglist.cgi?component=libguestfs&product=Virtualization+Tools .PP To report a new bug against libguestfs, use this link: https://bugzilla.redhat.com/enter_bug.cgi?component=libguestfs&product=Virtualization+Tools .PP When reporting a bug, please supply: .IP "\(bu" 4 The version of virt\-p2v. .IP "\(bu" 4 Where you got virt\-p2v (eg. which Linux distro, compiled from source, etc) .IP "\(bu" 4 Describe the bug accurately and give a way to reproduce it.