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 <[email protected]>
# 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
[email protected]
https://www.redhat.com/mailman/listinfo/et-mgmt-tools