This patch adds the --import option to virt-install. --import is a new install method, which arranges for the guest to boot off the first specified storage device. So, given an existing disk image '/home/user/myvm.img', an example command line could be: virt-install --name myvm --ram 512 \ --disk path=/home/user/myvm.img --import Thanks, Cole
# HG changeset patch # User Cole Robinson <crobinso@xxxxxxxxxx> # Date 1235006852 18000 # Node ID 216b907240c03328103419302c04303431822bd8 # Parent 38db2ccaff913afb4c4ef823e58f2ce7d609b73f Add virt-install --import option, to use the ImportInstaller diff -r 38db2ccaff91 -r 216b907240c0 man/en/virt-install.pod --- a/man/en/virt-install.pod Wed Feb 18 20:16:03 2009 -0500 +++ b/man/en/virt-install.pod Wed Feb 18 20:27:32 2009 -0500 @@ -309,6 +309,12 @@ needs to be configured to boot off the CDROM device permanently. It may be desirable to also use the C<--nodisks> flag in combination. +=item --import + +Skip the OS installation process, and build a guest around an existing +disk image. The device used for booting is the first device specified via +C<--disk> or C<--file>. + =item -v, --hvm This guest should be a fully virtualized guest Request the use of full virtualization, if both para & full virtualization are @@ -667,8 +673,16 @@ --nographics \ --location http://download.fedora.redhat.com/pub/fedora/linux/core/6/x86_64/os/ +Create a guest from an existing disk image 'mydisk.img' using defaults for +the rest of the options. -=head1 AUTHOR + # virt-install \ + --name demo + --ram 512 + --disk path=/home/user/VMs/mydisk.img + --import + +=head1 AUTHORS Written by Daniel P. Berrange, Hugh Brock, Jeremy Katz, Cole Robinson and a team of many other contributors. See the AUTHORS file in the source @@ -687,7 +701,7 @@ =head1 COPYRIGHT -Copyright (C) 2006-2007 Red Hat, Inc, and various contributors. +Copyright (C) 2006-2009 Red Hat, Inc, and various contributors. This is free software. You may redistribute copies of it under the terms of the GNU General Public License C<http://www.gnu.org/licenses/gpl.html>. There is NO WARRANTY, to the extent permitted by law. diff -r 38db2ccaff91 -r 216b907240c0 virt-install --- a/virt-install Wed Feb 18 20:16:03 2009 -0500 +++ b/virt-install Wed Feb 18 20:27:32 2009 -0500 @@ -260,10 +260,16 @@ guest.extraargs = extra -def get_install_media(location, cdpath, pxe, livecd, guest, ishvm): +def get_install_media(location, cdpath, pxe, livecd, import_install, + guest, ishvm): - if (pxe and location) or (location and cdpath) or (cdpath and pxe): - fail(_("Only one of --pxe, --location and --cdrom can be used")) + found = False + for m in [pxe, location, cdpath, import_install]: + if m: + if found: + fail(_("Only one install method (%s) can be used") % + "--pxe, --location, --cdrom, --import") + found = True if not ishvm: if pxe: @@ -271,22 +277,21 @@ "guests")) if cdpath or livecd: fail(_("Paravirtualized guests cannot install off cdrom media.")) - if location is None: - fail(_("location must be specified for paravirtualized guests.")) if location and virtinst.util.is_uri_remote(guest.conn.getURI()): fail(_("--location can not be specified for remote connections.")) cdinstall = (cdpath or False) - if not (pxe or cdpath or location): + if not (pxe or cdpath or location or import_install): # Look at Guest disks: if there is a cdrom, use for install for disk in guest.disks: if disk.device == virtinst.VirtualDisk.DEVICE_CDROM: cdinstall = True if not cdinstall: - fail(_("One of --pxe, --location, or cdrom media must be " - "specified.")) - if pxe: + fail(_("One of %s, or cdrom media must be specified.") % + "--pxe, --location, --import") + + if pxe or import_install: return try: if location or cdpath: @@ -391,6 +396,8 @@ help=_("Boot from the network using the PXE protocol")) insg.add_option("", "--livecd", action="store_true", dest="livecd", help=_("Treat the CD-ROM media as a Live CD")) + insg.add_option("", "--import", action="store_true", dest="import_install", + help=_("Build guest around an existing disk image")) insg.add_option("-x", "--extra-args", type="string", dest="extra", default="", help=_("Additional arguments to pass to the kernel " @@ -555,6 +562,8 @@ fail(_("Can't use --pxe with --nonetworks")) instclass = virtinst.PXEInstaller + elif options.import_install: + instclass = virtinst.ImportInstaller else: instclass = virtinst.DistroInstaller installer = instclass(type=hv_name, os_type=virt_type, conn=conn) @@ -595,7 +604,7 @@ # and now for the full-virt vs paravirt specific questions get_install_media(options.location, options.cdrom, options.pxe, - options.livecd, guest, ishvm) + options.livecd, options.import_install, guest, ishvm) if not ishvm: # paravirt continue_inst = False else:
_______________________________________________ et-mgmt-tools mailing list et-mgmt-tools@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/et-mgmt-tools