[Pkg-libvirt-commits] [SCM] Virtinst Debian packaging branch, master, updated. debian/0.500.0-1

Guido Günther agx at sigxcpu.org
Wed Jul 29 15:27:37 UTC 2009


The following commit has been merged in the master branch:
commit d275b5a279ce8663bab752e534e925aec2aa9e6b
Author: Guido Günther <agx at sigxcpu.org>
Date:   Wed Jul 29 15:54:33 2009 +0200

    Imported Upstream version 0.500.0

diff --git a/AUTHORS b/AUTHORS
index 9cfd099..e5cb4e5 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -1,12 +1,12 @@
       virtinst  Authors
       =================
 
-The virtinst  library / virt-install tool are written and maintained
-by
+The virtinst  library / virt-* tools are written and maintained by
 
    Jeremy Katz  <katzj-at-redhat-dot-com>
    Daniel Berrange <berrange-at-redhat-dot-com>
    Hugh Brock <hbrock-at-redhat-dot-com>
+   Cole Robinson <crobinso-at-redhat-dot-com>
 
 Patches also received from
 
@@ -19,7 +19,6 @@ Patches also received from
    Shigeki Sakamoto <fj0588di-at-aa-dot-jp-dot-fujitsu-dot-com>
    Rich Jones <rjones-at-redhat-dot-com>
    Kazuki Mizushima <mizushima-dot-kazuk-at-jp-dot-fujitsu-dot-com>
-   Cole Robinson <crobinso-at-redhat-dot-com>
    Robert Nelson <robertn-at-the-nelsons-dot-org>
    John Danielson <john.danielson-at-sun-dot-com>
    Mark Johnson <johnson.nh-at-gmail-dot-com>
@@ -37,6 +36,12 @@ Patches also received from
    Michael Marineau <marineam-at-gentoo-dot-org>
    Tomas Hoger <thoger-at-redhat-dot-com>
    Ben Kochie <ben-at-nerp-dot-net>
+   Doug Goldstein <cardoe-at-gentoo-dot-org>
+   Kaspar Brand <rhel+vi-at-velox-dot-ch>
+   David Robinson <zxvdr-dot-au-at-gmail-dot-com>
+   Laurent Léonard <laurent-at-open-minds-dot-org>
+   Christophe Sauthier <christophe-dot-sauthier-at-objectif-libre-dot-com>
+   Michal Novotny <minovotn-at-redhat-dot-com>
 
    ...send patches and get your name here...
 
diff --git a/ChangeLog b/ChangeLog
index c7974ff..89cb389 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,9 +1,1166 @@
+2009-07-28  Cole Robinson  <crobinso at redhat.com>
+
+	* tests/urltest.py:
+	Update url test suite with newer fedora links.
+	[fca47128bbd8] [tip]
+
+	* virtinst/osdict.py:
+	osdict: Add Fedora 12.
+	[e668af73cd4f]
+
+	* .hgignore, MANIFEST.in, man/en/virt-install.1, po/es.po, po/fr.po,
+	po/it.po, po/ja.po, po/pl.po, po/pt_BR.po, po/sr.po, po/sr at latin.po,
+	po/virtinst.pot, po/zh_CN.po, python-virtinst.spec.in:
+	Refresh man pages, translations, MANIFEST.
+	[c61ce97b6ed0]
+
+	* virtinst/VirtualDisk.py:
+	VirtualDisk: make sure we can actually read volume file.
+
+	If user deletes the file behind libvirt's back, we would end up
+	throwing a confusing error.
+	[eee6f60003fb]
+
+	* virtinst/Storage.py:
+	storage: Add 'glusterfs' format option for net pools
+	[e21b110a0642]
+
+	* AUTHORS:
+	Add Michal to AUTHORS.
+	[0d328d5631c9]
+
+	* HACKING, man/en/virt-image-xml.pod:
+	Replace et-mgmt-tools references with virt-tools-list.
+	[face828924df]
+
+2009-07-27  Michal Novotny  <minovotn at redhat.com>
+
+	* virtinst/Guest.py:
+	Fix CPU Pinning check for pinning string ending with comma
+
+	When you provided CPU pinning string that was ending with comma an
+	uncaught exception occured of ValueError about invalid literal for
+	int() with base 10 because of empty string passed to int() function.
+	This patch fixes the lines ending with comma, lines like "1," and
+	corrects this to correct CPU pinning string, ie. "1".
+	[3aa9c601c112]
+
+2009-07-27  Cole Robinson  <crobinso at redhat.com>
+
+	* man/en/virt-convert.pod, tests/virtconv-files/ovf_input/test1.ovf,
+	tests/virtconv-files/ovf_input/test2.ovf, tests/virtconv-
+	files/virtimage_output/ovf2virtimage_test1.virt-image, tests
+	/virtconv-files/virtimage_output/ovf2virtimage_test2.virt-image,
+	tests/virtconv-test.py, virtconv/diskcfg.py,
+	virtconv/parsers/ovf.py:
+	virtconv: Add OVF input support.
+	[70cd7dfe1f1f]
+
+	* tests/virtconv-files/virtimage2vmx/image.virt-image, tests/virtconv-
+	files/virtimage2vmx/image.vmx, tests/virtconv-
+	files/virtimage_input/test1.virt-image, tests/virtconv-
+	files/virtimage_output/vmx2virtimage_test1.virt-image, tests
+	/virtconv-files/vmx2virtimage/test.virt-image, tests/virtconv-
+	files/vmx2virtimage/test.vmx, tests/virtconv-
+	files/vmx_input/test1.vmx, tests/virtconv-
+	files/vmx_output/virtimage2vmx_test1.vmx, tests/virtconv-test.py:
+	tests: Rearrange virtconv test files.
+
+	Split everything into input or output dirs. Don't maintain file
+	lists in the test code: every input file should at least not crash
+	if converted to a valid output format.
+	[b7a131ae79ad]
+
+	* virt-convert:
+	virt-convert: Move logging earlier to catch option errors
+	[8ab4127b4b07]
+
+	* tests/virtconv-files/virtimage2vmx/image.vmx,
+	virtconv/parsers/vmx.py:
+	Change virt-manager URL in generated VMX output.
+	[7a76c54a1274]
+
+	* setup.py:
+	test: Add --testfile option to setup.py test, allow running a single
+	file.
+	[a7a34ebb127b]
+
+2009-07-20  Cole Robinson  <crobinso at redhat.com>
+
+	* tests/__init__.py, tests/testdriver.xml, tests/validation.py:
+	tests: Add some pool capacity checks to disk validation suite.
+	[a4baddfadf5c]
+
+	* virtinst/VirtualDisk.py:
+	VirtualDisk: Fix error message referencing variable before assign.
+	[da6435f91f2e]
+
+	* tests/validation.py:
+	tests: Cleanup indentation for VirtualDisk validation tests.
+	[36722ed865db]
+
+	* virtinst/CloneManager.py, virtinst/VirtualDisk.py,
+	virtinst/_util.py, virtinst/cli.py:
+	VirtualDisk: Add static method 'path_exists'
+
+	Allows API users to verify the passed path exists on the connection
+	host. This is useful for use in virt-manager, and can replace the
+	hack method we currently use in virtinst.
+	[0fcc9a5a9af7]
+
+2009-07-18  Cole Robinson  <crobinso at redhat.com>
+
+	* virtinst/CloneManager.py:
+	clone: Fix up setting list parameters in CloneDesign
+	[20efa2c49f1a]
+
+	* virtinst/CloneManager.py:
+	clone: Allow changing libvirt connection on CloneDesign object
+	[c546d23bcb51]
+
+2009-07-16  Christophe Sauthier  <christophe.sauthier at objectif-libre.com>
+
+	* AUTHORS, virtinst/osdict.py:
+	osdict: Add Ubuntu Karmic.
+	[05e3723da0e7]
+
+2009-07-14  Cole Robinson  <crobinso at redhat.com>
+
+	* virtinst/osdict.py:
+	osdict: Add SLES 11 (supports virtio)
+	[dbda3bfc28f8]
+
+	* tests/xmlconfig-xml/boot-windowsxp-kvm.xml, tests/xmlconfig-xml
+	/boot-windowsxp.xml, tests/xmlconfig-xml/install-windowsxp-kvm.xml,
+	tests/xmlconfig-xml/install-windowsxp-xennew.xml, tests/xmlconfig-
+	xml/install-windowsxp-xenold.xml, tests/xmlconfig-xml/install-
+	windowsxp.xml, tests/xmlconfig.py, virtinst/osdict.py:
+	Turn on ACPI/APIC for windows, except for Xen < 3.1.0.
+
+	See discussion at:
+
+	https://www.redhat.com/archives/et-mgmt-
+	tools/2009-July/msg00000.html
+	[3c68ba7758a6]
+
+	* virtinst/Guest.py, virtinst/osdict.py:
+	Refactor osdict lookup routines.
+
+	Allow specifying minimally supported libvirt and hypervisor version
+	for various parameters. Move most of this code out of Guest and into
+	osdict.
+	[8b5d60a01fe3]
+
+2009-07-14  Laurent Léonard  <laurent at open-minds.org>
+
+	* AUTHORS, virtinst/osdict.py:
+	Add windows 7 to the osdict.
+	[020c0a312e7f]
+
+2009-07-13  Cole Robinson  <crobinso at redhat.com>
+
+	* man/en/virt-install.pod.in, tests/clitest.py, virt-install,
+	virtinst/cli.py:
+	virt-install: Add --video option.
+
+	Takes the video model (cirrus, vga, etc) as the only argument. Can
+	easily be expanded in the future if needed.
+	[dbaa46d3ae83]
+
+	* man/en/virt-install.pod.in, tests/clitest.py, virt-install,
+	virtinst/cli.py:
+	virt-install: Add --serial and --parallel options.
+
+	Options take the same form of OPT1=VAL1,OPT2=VAL2,... similar to the
+	--disk option. The docs describe the rest.
+	[e27511d0dbfd]
+
+	* virtinst/CloneManager.py:
+	CloneManager: support setting properties as lists.
+
+	Many properties (skip_target, force_target, clone_devices,
+	clone_mac) can currently only be appended to, since behind the
+	scenes they are lists. Allow passing a list value to overwrite the
+	stored list.
+
+	Also fix an improper error message.
+	[ca5246fe1546]
+
+	* virtinst/VirtualDisk.py:
+	Remove more noisy debugging.
+	[b7668b77cd72]
+
+2009-07-12  Cole Robinson  <crobinso at redhat.com>
+
+	* tests/storage.py, virtinst/Storage.py:
+	storage: Implement 'disk' volume creation.
+	[389052a6eb36]
+
+2009-07-08  Cole Robinson  <crobinso at redhat.com>
+
+	* virtinst/VirtualNetworkInterface.py:
+	Add VirtualNetworkInterface function for returning network type
+	descriptions.
+	[77b5e67be942]
+
+	* tests/validation.py, tests/xmlconfig-xml/boot-many-chars.xml,
+	tests/xmlconfig.py, virtinst/VirtualCharDevice.py:
+	Properly generate 'protocol' XML for TCP char devices.
+
+	Libvirt docs were incorrect, and I never checked that it actually
+	worked :(
+	[ce5bd38b3a2b]
+
+	* tests/cli-test-xml/faketree/images/xen/initrd.img, tests/cli-test-
+	xml/faketree/images/xen/vmlinuz, tests/clitest.py, tests/xmlconfig-
+	xml/boot-many-devices.xml, tests/xmlconfig.py:
+	Test suite improvements and fixes.
+
+	Bring back definition of XML in xmlconfig.py. Add a URL test for
+	paravirt installs.
+	[1aa79e013ba6]
+
+	* tests/xmlconfig-xml/boot-many-disks2.xml, virtinst/VirtualDisk.py:
+	If creating a disk with no media, fill in a default 'type'.
+
+	Previously, we could end up with type='None' in the xml, which
+	causes errors.
+	[f2dfad48325a]
+
+	* tests/xmlconfig-xml/boot-many-devices.xml,
+	virtinst/VirtualVideoDevice.py:
+	Fix video device XML generation.
+	[70176b36e355]
+
+	* tests/xmlconfig-xml/boot-many-devices.xml, tests/xmlconfig.py,
+	virtinst/VirtualDevice.py, virtinst/VirtualVideoDevice.py,
+	virtinst/__init__.py:
+	Add VirtualVideoDevice module, corresponding to new libvirt device
+	<video>
+	[daafa39eb8cb]
+
+	* tests/clonetest.py:
+	Fix test suite with latest libvirt.
+
+	Libvirt adds a default <video> element if none is specified, which
+	breaks some round trip define/compare tests.
+	[18b1b9c31eb0]
+
+	* virtinst/VirtualCharDevice.py:
+	Add description lookup functions for VirtualCharDevice values.
+	[4f5216795603]
+
+	* virtinst/VirtualCharDevice.py:
+	Rename VirtualCharDevice source_mode values to be more accurate.
+	[1140cc9cabd0]
+
+	* tests/xmlconfig-xml/boot-many-chars.xml, tests/xmlconfig.py,
+	virtinst/VirtualCharDevice.py:
+	s/source_name/bind_name/g and s/connect_name/source_name/g for UDP
+	chardev.
+
+	This makes source name consistently the default 'connect' target for
+	network character devices.
+	[ce13a97146c5]
+
+	* tests/clitest.py, virt-install, virtinst/cli.py:
+	Break out duplicate command optstring parsing.
+
+	We are duplicating effort for --disk and --network: break this code
+	out into a separate function (will also be useful for --serial,
+	--parallel, etc.)
+	[88885f046356]
+
+2009-07-07  "Cole Robinson  <crobinso at redhat.com>
+
+	* virtinst/VirtualCharDevice.py:
+	Return proper character device class for dev type 'dev'
+	[959c8406bbfe]
+
+	* virtinst/__init__.py:
+	Add VirtualDevice class to the public API.
+	[c071bd24ae5a]
+
+2009-07-06  Cole Robinson  <crobinso at redhat.com>
+
+	* virtinst/VirtualDisk.py:
+	Fix generating disk driver XML from vol_install parameters.
+
+	We were mixing up driver name and type. This was breaking XML built
+	via virt-manager's create wizard. Should have only existed in HG.
+	[5746a86367d2]
+
+2009-07-02  Cole Robinson  <crobinso at redhat.com>
+
+	* virtinst/Storage.py:
+	Implement LVM storage pool building from raw disk devices.
+
+	The only previous method was for defining a pool from an existing
+	VG.
+	[05ce5fe6ced0]
+
+2009-06-26  David Robinson  <zxvdr.au at gmail.com>
+
+	* AUTHORS, virtinst/OSDistro.py:
+	Fix invalid/empty .treeinfo file from causing an exception.
+	[bb8d3a5bb858]
+
+2009-06-24  Cole Robinson  <crobinso at redhat.com>
+
+	* virt-clone, virtinst/CloneManager.py:
+	CloneDesign: Move name and disk path generators into the public API.
+
+	These utility functions will be useful for other apps looking to
+	auto generate new names or paths for guests.
+	[4398f61e8979]
+
+	* tests/clone-xml/skip-in.xml, tests/clone-xml/skip-out.xml:
+	Actually add 'skip_target' test files.
+	[4669fb49e4a9]
+
+	* virtinst/Storage.py:
+	Use allocation as the max value for progress meter when creating
+	volumes.
+	[66ef1609e353]
+
+	* virtinst/_util.py:
+	Document _util.generate_name, add a few extra parameters for
+	customizability.
+	[905a04faef39]
+
+	* tests/storage.py, virtinst/Storage.py:
+	Add 'conn' parameter to is_create_vol_from_supported to futureproof
+	it.
+	[df308f78f28d]
+
+	* tests/clonetest.py, virtinst/CloneManager.py:
+	CloneDesign: Add 'skip_target' property
+
+	This works similar to force_target, except tells CloneDesign to
+	forcibly skip the passed targets. This takes precedence over
+	force_target.
+	[a24cfe70a6de]
+
+	* virt-clone, virtinst/CloneManager.py:
+	CloneDesign: deal with cloning to/from empty paths.
+
+	CloneDesign can now handle empty disks in it's original_devices
+	list, and handle 'None' as a clone_device path. This is requird to
+	be able to use devices_list to get a full output of disks in the
+	original XML.
+	[d3679b93f526]
+
+	* virtinst/CloneManager.py:
+	Add 'clone_policy' property to CloneDesign.
+
+	This allows the user to list what metrics the Design will use to
+	decide what devices should be queued up for cloning. Options are:
+
+	CLONE_POLICY_NO_READONLY = 1 CLONE_POLICY_NO_SHAREABLE = 2
+	CLONE_POLICY_NO_EMPTYMEDIA = 3
+
+	This allows us to change the default CloneDesign behavior, which is
+	to skip all of the above.
+	[895976b12eaa]
+
+	* tests/clone-xml/cross-pool-in.xml, tests/clone-xml/cross-pool-
+	out.xml, tests/clone-xml/force-in.xml, tests/clone-xml/force-
+	out.xml, tests/clone-xml/managed-storage-in.xml, tests/clone-xml
+	/managed-storage-out.xml, tests/clone-xml/readonly-disks-in.xml,
+	tests/clone-xml/readonly-disks-out.xml, tests/clonetest.py,
+	tests/testdriver.xml:
+	Add force_target testing to clonetest suite.
+
+	Also expand the testdriver to have a lvm pool, and tweak some typos
+	in clone test xml.
+	[702031e8325a]
+
+2009-06-23  Cole Robinson  <crobinso at redhat.com>
+
+	* tests/clitest.py, virtinst/cli.py:
+	Allow faux remote URI testing.
+
+	We basically add a hack to virtinst/cli which looks for a magic
+	string __virtinst_test_remote__ at the start of the passed libvirt
+	uri. If found, we convince the library that we are on a remote
+	connection, to exercise code paths where we deliberately check this.
+	Kind of crazy, but hey, it works, and helped find 2 regressions.
+	[0e9226cc19d1]
+
+	* virtinst/CloneManager.py:
+	Don't erroneously deny remote cloning if libvirt supports it.
+	[8d0afe6242b4]
+
+	* virtinst/VirtualDisk.py:
+	Unbreak managed storage on remote connection.
+
+	This regressed via semi recent virtualdisk refactoring. Regression
+	tests coming soon!
+	[a5693cd57868]
+
+	* tests/cli-test-xml/clone-disk-managed.xml, tests/clitest.py, tests
+	/clone-xml/cross-pool-out.xml, tests/clonetest.py,
+	tests/testdriver.xml, tests/validation.py:
+	Use a custom libvirt test driver for test suite.
+
+	This allows us to avoid setting up non-default storage pools, and
+	helps with volume testing in the cli suite. This requires some bug
+	fixes committed to libvirt quite recently.
+	[b979803366d9]
+
+	* tests/clitest.py:
+	Add some IDE target cli tests.
+	[4816ee537667]
+
+	* virtinst/CloneManager.py:
+	Don't check for MAC collision in setup_original.
+
+	We check at set time now, so it's kind of redundant. If we ever want
+	to have absolute last minute validation, we need better
+	infrastructure anyways.
+	[817ce13dd178]
+
+	* virtinst/CloneManager.py:
+	Simplifications and cleanups in CloneManager.
+
+	Don't carry around an index array to specify disks to clone: just
+	set 'target' in virtual disk. Also, make better use of xml parsing
+	utility functions.
+	[9221412446f8]
+
+	* virtinst/util.py:
+	Fix get_xml_path to return first entry if parse list of options.
+	[03c37e22a631]
+
+	* virtinst/CloneManager.py:
+	Add some documentation to CloneManager properties.
+	[93392d39396c]
+
+2009-06-22  Cole Robinson  <crobinso at redhat.com>
+
+	* AUTHORS:
+	Add myself as a primary AUTHOR, because I'm cool like that.
+	[12e14d427eaf]
+
+	* AUTHORS, tests/clone-xml/cross-pool-in.xml, tests/clone-xml/empty-
+	disks-in.xml, tests/clone-xml/general-cfg-in.xml, tests/clone-xml
+	/managed-storage-in.xml, tests/clone-xml/noclone-storage-in.xml,
+	tests/clone-xml/readonly-disks-in.xml:
+	Replace remaining usages of incorrect qemu/kvm mac prefix (Kaspar
+	Brand)
+	[9f11c8f159ff]
+
+2009-06-19  Cole Robinson  <crobinso at redhat.com>
+
+	* man/en/virt-clone.pod, man/en/virt-install.pod.in, virtinst/util.py:
+	Correctly generate QEMU/KVM mac address (we were using wrong
+	prefix).
+
+	See https://www.redhat.com/archives/libvir-
+	list/2009-June/msg00336.html
+	[a3334a88986f]
+
+2009-06-18  Cole Robinson  <crobinso at redhat.com>
+
+	* tests/cli-test-xml/faketree/images/boot.iso, tests/cli-test-
+	xml/faketree/images/pxeboot/initrd.img, tests/cli-test-
+	xml/faketree/images/pxeboot/vmlinuz, tests/clitest.py:
+	Add cli test cases for --location and --cdrom URL.
+
+	Make a fake centos install directory in the test files that we can
+	use to trigger the desired behavior.
+	[335ecbb1c2cd]
+
+	* virt-install, virtinst/DistroInstaller.py:
+	virt-install: Fix --cdrom URL installs
+
+	This has been busted since at least the prompting refresh.
+	[e76a9fc2b1fa]
+
+2009-06-17  Cole Robinson  <crobinso at redhat.com>
+
+	* virtinst/VirtualNetworkInterface.py, virtinst/_util.py,
+	virtinst/util.py:
+	Refactor default net device searching.
+
+	We had some duplicate code, and some pretty careless code that could
+	bomb out in corner cases (rhbz 506319)
+	[503cd42936a9]
+
+	* virtinst/VirtualAudio.py:
+	Add 'ac97' to sound model list.
+	[9da0cafaf0e9]
+
+2009-06-12  Cole Robinson  <crobinso at redhat.com>
+
+	* virt-clone, virt-image, virt-install, virtinst/cli.py:
+	Let libvirt decide the default connection.
+
+	Rather than look for xen or qemu files to determine the default
+	connection, just pass None to libvirt.open and let it decide for us.
+	[030fbc6df74f]
+
+	* virtconv/diskcfg.py:
+	Fix diskcfg typo in kvm-img commit.
+	[dbae1daaaded]
+
+2009-06-12  Guido  <Guido Gunther>
+
+	* virtinst/osdict.py:
+	use QEMU's USB Tablet with Squeeze guests evdev picks this up as
+	mouse which gives more exact mouse handling without the need to
+	grab/ungrab the mouse anymore.
+	--- virtinst/osdict.py | 7 +++++++ 1 files changed, 7
+	insertions(+), 0 deletions(-)
+	[9f62291919b3]
+
+2009-06-09  Cole Robinson  <crobinso at redhat.com>
+
+	* AUTHORS, virtconv/diskcfg.py:
+	Use kvm-img if qemu-img is not available. (Doug Goldstein)
+	[89c9f3ece3fb]
+
+2009-06-04  Cole Robinson  <crobinso at redhat.com>
+
+	* tests/__init__.py, tests/pylint-virtinst.sh, tests/xmlconfig.py,
+	virt-install, virtinst/ParaVirtGuest.py:
+	Move file backed disks to use 'tap' driver in ParaVirtGuest.
+
+	Add some test cases to exercise the changes, and update pylint
+	script to be happy.
+	[ab66c26436cf]
+
+2009-06-04  Guido Gunther  <agx at sigxcpu.org>
+
+	* virtinst/util.py:
+	Parse /etc/default/console-setup for keymap
+
+	as used on Debian based distributions.
+	[3a188381a461]
+
+2009-06-04  Cole Robinson  <crobinso at redhat.com>
+
+	* tests/urltest.py:
+	Don't bail URL test suite if distro detection fails.
+	[da8fa4e29394]
+
+	* tests/urltest.py, virtinst/OSDistro.py:
+	Fix fetching a boot.iso from an install URL for most distros.
+
+	A deficieny in the test suite was hiding an error. Fix the bug (and
+	the test suite to catch this in the future).
+	[eba75d447521]
+
+2009-06-03  Cole Robinson  <crobinso at redhat.com>
+
+	* virtinst/cli.py:
+	Remove accidental debug print.
+	[d9f580f804f1]
+
+2009-05-07  Cole Robinson  <crobinso at redhat.com>
+
+	* virtinst/cli.py:
+	Allow PolicyKit and SASL authentication.
+
+	Use openAuth when opening the initial connection: allows PolicyKit
+	and SASA username/password auth.
+	[5d6dc8af58b5]
+
+2009-05-26  Cole Robinson  <crobinso at redhat.com>
+
+	* man/en/virt-install.pod.in, virt-install:
+	virt-install: Make --accelerate behavior the default.
+
+	With introduction of the --virt-type option, there is now a way to
+	specify a deliberately un-accelerated guest (--virt-type qemu). Now
+	we can make
+	--accelerate the default behavior, since if KVM/KQEMU is present we
+	can assume the user wants to make use of it.
+	[bec888f2890f]
+
+2009-05-22  Cole Robinson  <crobinso at redhat.com>
+
+	* man/en/virt-install.pod.in, tests/clitest.py, virt-install:
+	virt-install: Add --virt-type option.
+
+	Allows manually specifying a hypervisor name (kvm, qemu, xen, ...)
+	which maps to the /domain/@type attribute in libvirt xml.
+	[238f8cc1568f]
+
+	* man/en/virt-clone.pod, tests/clitest.py, virt-clone,
+	virtinst/CloneManager.py:
+	virt-clone: Add --auto-clone option
+
+	This option will generate a new VM name, and paths for new storage,
+	mostly by appending '-clone' to the source name/paths.
+	[26ad0e1b5959]
+
+	* virtinst/Storage.py, virtinst/_util.py:
+	Add a name generation function to _util.
+
+	Useful for finding non colliding names and paths.
+	[1b3c4b8a358b]
+
+	* tests/clone-xml/cross-pool-in.xml, tests/clone-xml/cross-pool-
+	out.xml, tests/clone-xml/managed-storage-in.xml, tests/clone-xml
+	/managed-storage-out.xml, tests/clonetest.py,
+	virtinst/CloneManager.py, virtinst/Storage.py,
+	virtinst/VirtualDisk.py:
+	Support managed storage cloning with virt-clone.
+
+	We move all the cloning routines into VirtualDisk, which saves us
+	lots of duplicate validation. A new parameter is added to
+	VirtualDisk: clone_path.
+
+	Several test cases are also added.
+	[b3a11d01c011]
+
+2009-05-21  Cole Robinson  <crobinso at redhat.com>
+
+	* tests/storage.py, virtinst/Storage.py, virtinst/_util.py:
+	Add CloneVolume class.
+
+	Used for directly cloning a volume, just using name substitution in
+	the xml. This is the only future proof way to do it, rather than
+	pulling info out of the source xml and trying to populate a new
+	Volume object.
+	[7d341704bc49]
+
+2009-05-26  Cole Robinson  <crobinso at redhat.com>
+
+	* virtinst/Storage.py, virtinst/VirtualDisk.py:
+	Add explicit 'file_type' for file vs. block to StorageVolume
+	classes.
+
+	Previously we could only glean this information from instanceof.
+	[95f416db5c10]
+
+	* tests/storage.py, virtinst/Storage.py:
+	Add 'input_vol' parameter to StorageVolume objects.
+
+	Maps through to virStorageVolCreateXMLFrom, which allows storage
+	cloning and conversion.
+	[7aeacfce408e]
+
+	* virtinst/Storage.py:
+	Report libvirt storage allocation progress.
+
+	Requires libvirt 0.6.4 (not yet released) or later.
+	[94fb3e5f62d7]
+
+2009-05-22  Cole Robinson  <crobinso at redhat.com>
+
+	* virtinst/VirtualDisk.py:
+	Silence some debugging.
+	[7019487d9b19]
+
+	* virt-install:
+	virt-install: Small cleanup
+	[a900721b30ac]
+
+	* man/en/virt-install.pod.in, virt-install:
+	virt-install: Fix --wait -1
+	[ec66e66f7c02]
+
+	* virt-install:
+	Fix typo in error message.
+	[61f57fa3c2b9]
+
+2009-05-15  Cole Robinson  <crobinso at redhat.com>
+
+	* virtinst/VirtualDisk.py:
+	Remove libvirt storage sparse-only hack.
+
+	Libvirt upstream no longer blocks all pool operations while a file
+	volume is being allocated, so drop the hack.
+	[e34de678f53a]
+
+2009-05-26  Cole Robinson  <crobinso at redhat.com>
+
+	* virtinst/VirtualNetworkInterface.py:
+	Don't make VirtualNetworkInterface.type read only.
+	[9e5ead73e8d2]
+
+2009-05-21  Cole Robinson  <crobinso at redhat.com>
+
+	* man/en/virt-image.pod, man/en/virt-install.pod.in, virt-image, virt-
+	install, virtinst/cli.py:
+	Mark older network and storage cli options as deprectated.
+
+	Expand the cli tools output to include simple examples, and don't
+	list help output for deprecated options.
+	[29da8d156bdc]
+
+2009-05-20  Cole Robinson  <crobinso at redhat.com>
+
+	* man/en/virt-install.pod.in, tests/clitest.py, virtinst/cli.py:
+	Allow specifying mac= with --network option.
+	[8b8b79b2bfd0]
+
+	* tests/clitest.py, virt-image, virt-install, virtinst/cli.py:
+	Clean up cli network parameter handling.
+
+	Try to make the whole setup more extensible for adding future
+	parameters to --network, without having to touch every cli tool that
+	uses it.
+	[5c76390e0f24]
+
+	* tests/clitest.py, virtinst/VirtualNetworkInterface.py:
+	Clean up some validation in VirtualNetworkInterface
+	[ffc4facf5214]
+
+2009-05-11  Cole Robinson  <crobinso at redhat.com>
+
+	* virt-image, virtinst/cli.py:
+	Remove some unnecessary wrapper functions from virt-image.
+	[601c4ff64c69]
+
+	* tests/clitest.py:
+	Add some more cli test cases.
+	[c42486cb1cbf]
+
+	* virt-image:
+	Fix virt-image --nographics
+	[acc28db587ff]
+
+2009-05-20  Cole Robinson  <crobinso at redhat.com>
+
+	* tests/xmlconfig-xml/boot-many-chars.xml, tests/xmlconfig-xml/boot-
+	many-devices.xml, tests/xmlconfig.py:
+	Add character device xml building into the test suite.
+	[328414090700]
+
+	* tests/image-xml/image2guest/image-xenfv32.xml, tests/xmlconfig-xml
+	/boot-fullyvirt-disk-block.xml, tests/xmlconfig-xml/boot-fullyvirt-
+	disk-file.xml, tests/xmlconfig-xml/boot-fullyvirt-pxe-nodisks.xml,
+	tests/xmlconfig-xml/boot-fullyvirt-pxe.xml, tests/xmlconfig-xml
+	/boot-many-devices.xml, tests/xmlconfig-xml/boot-many-disks2.xml,
+	tests/xmlconfig-xml/boot-many-hostdevs.xml, tests/xmlconfig-xml
+	/boot-many-nics.xml, tests/xmlconfig-xml/boot-many-sounds.xml, tests
+	/xmlconfig-xml/boot-windowsxp.xml, tests/xmlconfig-
+	xml/install-f10.xml, tests/xmlconfig-xml/install-f11.xml, tests
+	/xmlconfig-xml/install-fullyvirt-disk-block.xml, tests/xmlconfig-xml
+	/install-fullyvirt-disk-file.xml, tests/xmlconfig-xml/install-
+	fullyvirt-import.xml, tests/xmlconfig-xml/install-fullyvirt-
+	livecd.xml, tests/xmlconfig-xml/install-fullyvirt-pxe-nodisks.xml,
+	tests/xmlconfig-xml/install-fullyvirt-pxe.xml, tests/xmlconfig-xml
+	/install-windowsxp.xml, tests/xmlconfig-xml/misc-qemu-driver-
+	name.xml, tests/xmlconfig-xml/misc-qemu-driver-type.xml, tests
+	/xmlconfig-xml/misc-xml-escaping.xml, virtinst/FullVirtGuest.py:
+	Use device API for the previously hardcoded 'console' device.
+
+	Since this changes the xml ordering, lots of test files need
+	updating.
+	[a138086e2fdf]
+
+	* virtinst/FullVirtGuest.py, virtinst/Guest.py,
+	virtinst/ParaVirtGuest.py:
+	Use device APIs for building guest XML.
+	[bcc69213ad1a]
+
+	* virtinst/FullVirtGuest.py, virtinst/Guest.py,
+	virtinst/ParaVirtGuest.py:
+	Use VirtualInputDevice internally.
+
+	We now only added the default input device if one wasn't manually
+	specified. This will allow future users to overwrite the previously
+	hardcoded default.
+	[a7a8c0bfb00e]
+
+	* tests/pylint-virtinst.sh, tests/xmlconfig.py,
+	virtinst/FullVirtGuest.py, virtinst/Guest.py,
+	virtinst/ImageManager.py, virtinst/ParaVirtGuest.py:
+	Use internal device APIs when running the install process.
+	[f2267925858f]
+
+	* virtinst/Guest.py:
+	Add Guest device add/remove API.
+
+	Rather than maintain a separate list for each type of device (disks,
+	nics, hostdevs, ...), add an API for add, removing, and fetching
+	devices.
+
+	Back compat with the existing device lists is maintained, but the
+	new API is required for adding arbitrary input or char devices (and
+	all new devices going forward.)
+	[9b0cda365e95]
+
+	* tests/validation.py, virtinst/VirtualDevice.py,
+	virtinst/VirtualInputDevice.py, virtinst/__init__.py:
+	Add VirtualInputDevice class.
+	[d94c42f50eea]
+
+	* tests/pylint-virtinst.sh, tests/validation.py,
+	virtinst/VirtualCharDevice.py, virtinst/VirtualDevice.py,
+	virtinst/__init__.py:
+	Add VirtualCharDevice module.
+
+	Used for building serial, parallel, and back-compat console device
+	xml.
+	[c8cd5021fb2b]
+
+	* virtinst/VirtualAudio.py, virtinst/VirtualDevice.py,
+	virtinst/VirtualDisk.py, virtinst/VirtualGraphics.py,
+	virtinst/VirtualHostDevice.py, virtinst/VirtualNetworkInterface.py:
+	Add 'virtual_device_type' field to every device class.
+
+	Will facilitate a unified device add/remove API for the Guest class.
+	[f331a34a1c6e]
+
+	* tests/xmlconfig-xml/boot-many-devices.xml, tests/xmlconfig-xml/boot-
+	many-disks2.xml, tests/xmlconfig-xml/boot-many-hostdevs.xml, tests
+	/xmlconfig-xml/boot-many-nics.xml, tests/xmlconfig-xml/boot-many-
+	sounds.xml, tests/xmlconfig-xml/boot-windowsxp.xml, tests/xmlconfig-
+	xml/install-f10.xml, tests/xmlconfig-xml/install-f11.xml, tests
+	/xmlconfig-xml/install-windowsxp.xml, tests/xmlconfig.py:
+	Add xml test cases for OS Type/Variant installs + and multi device
+	xml.
+	[4a8a85512873]
+
+	* tests/nodedev.py, virtinst/VirtualHostDevice.py:
+	Fix cosmetic spacing issue with HostDevice xml generation.
+
+	Make it more inline with existing device convention.
+	[b6a00397fc03]
+
+	* tests/__init__.py, tests/image-xml/image.xml, tests/image-
+	xml/image2guest/image-xenfv32.xml, tests/image-xml/image2guest
+	/image-xenpv32.xml, tests/image.py:
+	Use prepare_install in image2guest test suite.
+
+	This actually populates devices in the final XML.
+	[cb97b3abb8cd]
+
+2009-05-11  Guido Günther  <agx at sigxcpu.org>
+
+	* man/en/virt-install.pod.in, tests/clitest.py, virt-image, virt-
+	install, virtinst/cli.py:
+	Allow to specify nic model with --network
+	[ea0fe33e53a8]
+
+2009-05-09  Cole Robinson  <crobinso at redhat.com>
+
+	* tests/pylint-virtinst.sh, tests/xmlconfig-xml/misc-qemu-driver-
+	name.xml, tests/xmlconfig-xml/misc-qemu-driver-type.xml,
+	tests/xmlconfig.py, virtinst/VirtualDisk.py:
+	Add support for QEMU driver name and type to VirtualDisk.
+
+	Also add a few test cases to make sure we get expected behavior.
+	[96bc6e8c5376]
+
+	* virtinst/VirtualDevice.py:
+	Add a _get_uri function to VirtualDevice
+
+	Useful for overriding in the test suite to make to fake any uri we
+	want.
+	[08ae1c1786e1]
+
+	* tests/clitest.py, virtinst/cli.py:
+	Fix --disk vol= and pool=
+
+	Regressed with changes to bring back parameter prompting. Also added
+	are several cli test cases to catch these regressions in the future.
+	[676312613510]
+
+	* tests/clitest.py:
+	Use proper image path in clitest, enable a disabled test case.
+	[6b4e1cd9a5cc]
+
+2009-05-07  Cole Robinson  <crobinso at redhat.com>
+
+	* virtinst/cli.py:
+	Log the full virt-* command line.
+	[2450a9dcaa03]
+
+	* man/en/virt-clone.pod, man/en/virt-convert.pod, man/en/virt-
+	image.pod, man/en/virt-install.pod.in:
+	Update bug reporting info in manpages.
+
+	Basically offload it to http://virt-
+	manager.et.redhat.com/page/BugReporting
+	[fec32be02fba]
+
+	* man/en/virt-image.pod, man/en/virt-install.pod.in:
+	Tweak 'vnclisten' man page description.
+	[e683588c4177]
+
+	* virtinst/OSDistro.py:
+	Make sure autodetected OS type/variant are in the osdict.
+
+	If not, log a message and set the values to None, rather than barf
+	later down the line.
+	[db997572bdc8]
+
+	* tests/urltest.py, virtinst/OSDistro.py:
+	Fix os_variant autodetection for F11-{alpha/beta/preview}
+
+	Prevents URL installs for the stated releases, unless an --os-
+	variant is manually specified.
+	[9768e52d4d62]
+
+	* virtinst/_util.py, virtinst/cli.py:
+	Add helper 'log_exception' function.
+
+	Will log a traceback at the DEBUG level. Useful for logging
+	deliberately ignored exceptions, without spamming stderr when using
+	virt-* tools.
+	[94be2c80832a]
+
+	* tests/pylint-virtinst.sh:
+	Expand 'ignore' parameters regex for pylint script.
+	[9c40046826c9]
+
+2009-05-06  Cole Robinson  <crobinso at redhat.com>
+
+	* man/en/virt-image.pod, man/en/virt-install.pod.in, tests/clitest.py,
+	virt-image, virt-install, virtinst/cli.py:
+	Add a --vnclisten option to virt-install and virt-image.
+	[78e590ca02ea]
+
+	* virt-image, virt-install, virtinst/cli.py:
+	Move duplicate graphics options definitions to cli.py
+	[bb6eb6a7dad0]
+
+2009-05-07  Cole Robinson  <crobinso at redhat.com>
+
+	* HACKING, setup.py, tests/cli-test-xml/clone-disk.xml, tests/cli-
+	test-xml/image.xml, tests/clitest.py:
+	Add a new test suite 'test_cli'
+
+	Exercises various invocations of virt-install, virt-clone, and virt-
+	image.
+	[76523994ee2b]
+
+2009-05-06  Cole Robinson  <crobinso at redhat.com>
+
+	* tests/clonetest.py:
+	Fix a bug in the clone test suite.
+	[668b1901f5bd]
+
+	* virtinst/CloneManager.py:
+	Fix a syntax error in CloneManager
+
+	Not too harmful, but was squashing legitimate errors if they arose.
+	[7322f9c73adb]
+
+	* virtinst/VirtualHostDevice.py:
+	Call host device detach/reset on the correct object.
+
+	Fixes PCI assignment, which on libvirt 0.6.2 was busted.
+	[ab3111177ec1]
+
+2009-04-23  John Levon  <john.levon at sun.com>
+
+	* virtinst/OSDistro.py:
+	Fix processing of extra args for OpenSolaris domains
+
+	Signed-off-by: John Levon <john.levon at sun.com>
+	[722e1b1dacfd]
+
+2009-04-22  Cole Robinson  <crobinso at redhat.com>
+
+	* tests/pylint-virtinst.sh, virtinst/VirtualDisk.py,
+	virtinst/_util.py:
+	Add selinux_label option to VirtualDisk
+
+	If not overridden by the user, selinux_label will be filled with the
+	label of the specified storage, or "" if we are creating storage.
+
+	If the user specifies a label, it will be used to label the new
+	storage or relabel the existing storage when 'setup()' is called.
+
+	This is deliberately crippled at the moment: even if the user
+	requests it, we will only change the label for existing, local
+	storage that is marked readonly (basically CD-ROM devices), since
+	that is the priority case at the moment for Fedora. The code
+	attempts to be robust in the case of selinux not being present, so
+	this shouldn't change behavior for other distros.
+	[47459aeae1ad]
+
+	* virtinst/cli.py:
+	Don't print two errors if cli validation fails, and not in prompting
+	mode.
+	[34c0a5dad404]
+
+	* virtinst/VirtualDisk.py:
+	Break VirtualDisk local file creation out into it's own function.
+	[6dcea8f463af]
+
+	* virtinst/CloneManager.py, virtinst/VirtualDisk.py:
+	Use BaseMeter to skip some 'meter == None' checks
+	[ed4e31291784]
+
+	* virtinst/VirtualDisk.py:
+	Factor out some duplicate checking in VirtualDisk
+	[df1ae8b2555c]
+
+	* virtconv/diskcfg.py:
+	popen2 is deprecated, switch to subprocess.
+	[cdf4e907f334]
+
+	* tests/pylint-virtinst.sh, virtinst/Installer.py, virtinst/_util.py:
+	Make sure kernel/initrd tmp directory has correct selinux labelling.
+	[aee2b9aba590]
+
+2009-04-20  Cole Robinson  <crobinso at redhat.com>
+
+	* virtinst/OSDistro.py:
+	Support post-2009.06 OpenSolaris releases (John Levon)
+	[bb99f9a13ea4]
+
+2009-04-14  Cole Robinson  <crobinso at redhat.com>
+
+	* po/pl.po:
+	Updated polish translation.
+	[cdb5d5b6fee6]
+
+2009-04-09  Cole Robinson  <crobinso at redhat.com>
+
+	* po/es.po, po/fr.po, po/it.po, po/ja.po, po/pl.po, po/pt_BR.po,
+	po/sr.po, po/sr at latin.po, po/virtinst.pot, po/zh_CN.po:
+	Import updated translations, and resync pot file.
+	[e686e9aae123]
+
+2009-04-08  Cole Robinson  <crobinso at redhat.com>
+
+	* tests/pylint-virtinst.sh, tests/storage.py, tests/validation.py,
+	virt-convert, virtconv/parsers/virtimage.py:
+	Fix up some pylint shown on Fedora 11.
+	[712276328f75]
+
+2009-04-06  Cole Robinson  <crobinso at redhat.com>
+
+	* virtinst/Installer.py:
+	Only use xen scratchdir if running as root.
+	[f971c1442dc8]
+
+	* tests/capabilities-xml/capabilities-qemu.xml, tests/capabilities.py,
+	virtinst/CapabilitiesParser.py:
+	Add capabilities 'secmodel' parsing.
+	[fbe3d06d2a81]
+
+	* tests/xmlconfig.py:
+	Fix test suite breakage with latest libvirt.
+	[b90cfb58f8a9]
+
+	* virt-install:
+	virt-install: Fix error message typo
+	[e65f527bef12]
+
+2009-03-23  Cole Robinson  <crobinso at redhat.com>
+
+	* po/es.po:
+	Add spanish translation.
+	[a4a3db71aa9e]
+
+	* man/en/virt-clone.1, man/en/virt-clone.pod, man/en/virt-image.1,
+	man/en/virt-image.pod, man/en/virt-install.1, man/en/virt-
+	install.pod.in, virt-clone, virt-image, virt-install,
+	virtinst/cli.py:
+	Bring back prompting for virt-install, virt-image. (though not as
+	the default behavior)
+
+	All apps now have prompting off by default. It can be turned back on
+	with the --prompt option. A hint to this effect is given when we
+	error out.
+
+	Additionally prompt for the virt-install --accelerate option.
+	[cda75d189b9c]
+
+	* virt-install:
+	Correctly handle 'virt-install --wait 0'
+	[b5c6e3cb0ebf]
+
+	* virtinst/ImageParser.py:
+	Fix virt-image with scratch + user disks.
+	[8fdb20af39f9]
+
+	* man/en/virt-image.pod:
+	fix --nographics description in virt-image man page.
+	[d5f630ee97ea]
+
+2009-03-20  Cole Robinson  <crobinso at redhat.com>
+
+	* virtinst/VirtualDisk.py:
+	Remove unneeded logging in VirtualDisk
+	[bb55bc475983]
+
+2009-03-19  Cole Robinson  <crobinso at redhat.com>
+
+	* virtinst/FullVirtGuest.py, virtinst/VirtualDisk.py:
+	Fix specifying --disk device=floppy
+	[fd4baa6410d8]
+
+	* virtinst/CloneManager.py, virtinst/_util.py:
+	Add 'disk_exists' util method, use in CloneManager
+	[a55347f926f5]
+
+2009-03-18  Cole Robinson  <crobinso at redhat.com>
+
+	* tests/pylint-virtinst.sh:
+	Add exception to pylint script.
+	[18f93adc0bd2]
+
+2009-03-18  John Levon  <john.levon at sun.com>
+
+	* virtinst/Guest.py:
+	Ignore failures to kill the child console process
+
+	For example, it may have quit already.
+
+	Signed-off-by: John Levon <john.levon at sun.com>
+	[03e7d0e8ca3b]
+
+	* virtinst/OSDistro.py:
+	Support OpenSolaris 2009.06
+
+	This has unfortunately moved the location of the boot archive for
+	SPARC support.
+
+	Signed-off-by: John Levon <john.levon at sun.com>
+	[6d43e2816650]
+
+	* virtinst/DistroInstaller.py, virtinst/OSDistro.py,
+	virtinst/osdict.py:
+	Support NetWare PV installs
+
+	Signed-off-by: John Levon <john.levon at sun.com>
+	[afffc9d2e1c7]
+
+2009-03-18  Cole Robinson  <crobinso at redhat.com>
+
+	* virtinst/_util.py, virtinst/cli.py, virtinst/util.py:
+	Validate passed --keymap value (Tomohiro Takahashi)
+	[1af9f5e4281c]
+
+	* virtinst/VirtualHostDevice.py:
+	Set host device managed=no for xen
+	[96dceaf29571]
+
+2009-03-17  Cole Robinson  <crobinso at redhat.com>
+
+	* virtinst/NodeDeviceParser.py, virtinst/VirtualHostDevice.py:
+	Fix node device dettach/reset libvirt calls
+	[1288ff456cdb]
+
 2009-03-09  Cole Robinson  <crobinso at redhat.com>
 
+	* .hgtags:
+	Added tag virtinst-0_400_3 for changeset 6c4f3454c7a4
+	[143cad71a2a6]
+
+	* ChangeLog, NEWS, setup.py:
+	Update NEWS, ChangeLog, version #
+	[6c4f3454c7a4] [virtinst-0_400_3]
+
 	* man/en/virt-install.1, po/fr.po, po/it.po, po/ja.po, po/pl.po,
 	po/pt_BR.po, po/sr.po, po/sr at latin.po, po/virtinst.pot, po/zh_CN.po:
 	Update translations.
-	[d89edf29dbb0] [tip]
+	[2c64b3c9c7ce]
+
+	* virtinst/NodeDeviceParser.py:
+	Add child_dev option to NodeDevice pretty_description.
+	[9f2a2b99822e]
 
 2009-03-08  Cole Robinson  <crobinso at redhat.com>
 
diff --git a/HACKING b/HACKING
index 8208fb0..38f785d 100644
--- a/HACKING
+++ b/HACKING
@@ -16,16 +16,17 @@ The following commands will be useful for anyone writing patches:
     python setup.py test      : Run local unit test suite
     python setup.py check     : Run a pylint script against the codebase
     python setup.py test_urls : Test our install media fetching infrastructure
+    python setup.py test_cli  : Test various CLI invocations
 
 Any patches shouldn't change the output of 'test' or 'check'. Our pylint
 script uses a blacklist rather than a whitelist approach, so it could
-throw some false positives or useless messages. If you think you're patch
+throw some false positives or useless messages. If you think your patch
 exposes one of these, bring it up on the mailing list
-(et-mgmt-tools at redhat.com).
+(virt-tools-list at redhat.com).
 
 'test_urls' only needs to be run if the patch is against the url fetching
 code (virtinst/OSDistro.py). This stuff is notoriously fragile, so running
 'test_urls' is a must. If you are debugging a certain url failure, you can
 use the --match option to specify specific distros to test.
 
-'test' and 'test_urls' have a --debug option if you are hitting problems.
+'test*' have a --debug option if you are hitting problems.
diff --git a/NEWS b/NEWS
index e7391f2..919be5a 100644
--- a/NEWS
+++ b/NEWS
@@ -1,6 +1,22 @@
-   Virt Install News
+   Virtinst News
    =================
 
+Release 0.500.0 (July 28, 2009)
+-------------------------------
+
+This release includes:
+
+ - New virt-install device options --serial, --parallel, and --video
+ - Allow various auth types for libvirt connections (PolicyKit, SASL, ...)
+ - New virt-clone option --auto-clone: generates all needed input.
+ - Option to specify network device model via virt-install --network
+     (Guido Gunther)
+ - New virt-install option --virt-type for specifying hypervisor type
+     (kvm, qemu). --accelerate is now the default behavior: To provision a
+     plain qemu VM on a KVM enabled host, use '--virt-type qemu'
+ - OVF input support for virt-convert
+ - Many bug fixes and improvements
+
 Release 0.400.3 (March 9, 2009)
 -------------------------------
 
diff --git a/PKG-INFO b/PKG-INFO
index 3b7240e..dc4dba9 100644
--- a/PKG-INFO
+++ b/PKG-INFO
@@ -1,6 +1,6 @@
 Metadata-Version: 1.0
 Name: virtinst
-Version: 0.400.3
+Version: 0.500.0
 Summary: Virtual machine installation
 Home-page: http://virt-manager.et.redhat.com
 Author: Jeremy Katz, Daniel Berrange, Cole Robinson
diff --git a/man/en/virt-clone.1 b/man/en/virt-clone.1
index a8faeb2..5a87447 100644
--- a/man/en/virt-clone.1
+++ b/man/en/virt-clone.1
@@ -1,4 +1,4 @@
-.\" Automatically generated by Pod::Man 2.16 (Pod::Simple 3.05)
+.\" Automatically generated by Pod::Man 2.16 (Pod::Simple 3.07)
 .\"
 .\" Standard preamble:
 .\" ========================================================================
@@ -132,7 +132,7 @@
 .\" ========================================================================
 .\"
 .IX Title "VIRT-CLONE 1"
-.TH VIRT-CLONE 1 "2009-03-09" "perl v5.10.0" "Virtual Machine Install Tools"
+.TH VIRT-CLONE 1 "2009-03-23" "perl v5.10.0" "Virtual Machine Install Tools"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l
@@ -149,6 +149,11 @@ images using the \f(CW\*(C`libvirt\*(C'\fR hypervisor management library. It wil
 the disk images of any existing virtual machine, and define a new guest
 with an identical virtual hardware configuration. Elements which require
 uniqueness will be updated to avoid a clash between old and new guests.
+.PP
+By default, virt-clone will show an error if the necessary information to
+clone the guest is not provided. An interactive mode is available
+with the \-\-prompt option, but this will only ask for the minimum required
+options.
 .SH "OPTIONS"
 .IX Header "OPTIONS"
 Most options are not required. Minimum requirements are \-\-original or
@@ -222,6 +227,10 @@ even if this parameter is omitted.
 .IX Item "--force"
 Prevent interactive prompts. If the intended prompt was a yes/no prompt, always
 say yes. For any other prompts, the application will exit.
+.IP "\-\-prompt" 2
+.IX Item "--prompt"
+Specifically enable prompting for required information. Default prompting
+is off.
 .SH "EXAMPLES"
 .IX Header "EXAMPLES"
 Clone the guest called \f(CW\*(C`demo\*(C'\fR which has a single disk to copy
diff --git a/man/en/virt-clone.pod b/man/en/virt-clone.pod
index ec787fa..e656b8e 100644
--- a/man/en/virt-clone.pod
+++ b/man/en/virt-clone.pod
@@ -16,6 +16,12 @@ the disk images of any existing virtual machine, and define a new guest
 with an identical virtual hardware configuration. Elements which require
 uniqueness will be updated to avoid a clash between old and new guests.
 
+By default, virt-clone will show an error if the necessary information to
+clone the guest is not provided. The --auto-clone option will generate
+all needed input, aside from the source guest to clone. An interactive mode
+is available with the --prompt option, but this will only ask for the
+minimum required options.
+
 =head1 OPTIONS
 
 Most options are not required. Minimum requirements are --original or
@@ -51,6 +57,21 @@ Libvirt guest xml file to use as the original guest. The guest does not need to
 be defined on the libvirt connection. This takes the place of the
 C<--original> parameter.
 
+=item --auto-clone
+
+Generate a new guest name, and paths for new storage.
+
+An example or possible generated output:
+
+  Original name        : MyVM
+  Generated clone name : MyVM-clone
+
+  Original disk path   : /home/user/foobar.img
+  Generated disk path  : /home/user/foobar-clone.img
+
+If generated names collide with existing VMs or storage, a number is appended,
+such as foobar-clone-1.img, or MyVM-clone-3.
+
 =item -n NAME, --name=NAME
 
 Name of the new guest virtual machine instance. This must be unique amongst
@@ -122,10 +143,22 @@ even if this parameter is omitted.
 Prevent interactive prompts. If the intended prompt was a yes/no prompt, always
 say yes. For any other prompts, the application will exit.
 
+=item --prompt
+
+Specifically enable prompting for required information. Default prompting
+is off.
+
 =back
 
 =head1 EXAMPLES
 
+Clone the guest called C<demo> on the default connection, auto generating
+a new name and disk clone path.
+
+  # virt-clone \
+       --original demo \
+       --auto-clone
+
 Clone the guest called C<demo> which has a single disk to copy
 
   # virt-clone \
@@ -150,7 +183,7 @@ new guest can do a filesystem resize when it boots.
        --connect qemu:///system \
        --name demo \
        --file /dev/HostVG/DemoVM \
-       --mac 54:52:00:34:11:54
+       --mac 52:54:00:34:11:54
 
 =head1 AUTHOR
 
@@ -159,9 +192,7 @@ file in the source distribution for the complete list of credits.
 
 =head1 BUGS
 
-Report bugs to the mailing list C<http://www.redhat.com/mailman/listinfo/et-mgmt-tools>
-or directly to BugZilla C<http://bugzilla.redhat.com/bugzilla/> against the
-C<Fedora> product, and the C<python-virtinst> component.
+Please see http://virt-manager.org/page/BugReporting
 
 =head1 COPYRIGHT
 
diff --git a/man/en/virt-convert.1 b/man/en/virt-convert.1
index c5c99ee..3f39c92 100644
--- a/man/en/virt-convert.1
+++ b/man/en/virt-convert.1
@@ -132,7 +132,7 @@
 .\" ========================================================================
 .\"
 .IX Title "VIRT-CONVERT 1"
-.TH VIRT-CONVERT 1 "2009-03-09" "perl v5.10.0" "Virtual Machine Install Tools"
+.TH VIRT-CONVERT 1 "2009-03-03" "perl v5.10.0" "Virtual Machine Install Tools"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l
diff --git a/man/en/virt-convert.pod b/man/en/virt-convert.pod
index 8bb7af9..a27c565 100644
--- a/man/en/virt-convert.pod
+++ b/man/en/virt-convert.pod
@@ -46,7 +46,7 @@ Show the help message and exit
 
 =item  -i format
 
-Input format. Currently, C<vmx>  and C<virt-image> are supported.
+Input format. Currently, C<vmx>, C<virt-image>, and C<ovf> are supported.
 
 =item  -o format
 
@@ -145,9 +145,7 @@ See the AUTHORS file in the source distribution for the complete list of credits
 
 =head1 BUGS
 
-Report bugs to the mailing list C<http://www.redhat.com/mailman/listinfo/et-mgmt-tools>
-or directly to BugZilla C<http://bugzilla.redhat.com/bugzilla/> against the
-C<Fedora> product, and the C<python-virtinst> component.
+Please see http://virt-manager.org/page/BugReporting
 
 =head1 COPYRIGHT
 
@@ -158,8 +156,7 @@ permitted by law.
 
 =head1 SEE ALSO
 
-L<virt-pack(1)>, L<virt-image(5)>, the project website
-C<http://virt-manager.org>
+L<virt-image(5)>, the project website C<http://virt-manager.org>
 
 =cut
 
diff --git a/man/en/virt-image-xml.pod b/man/en/virt-image-xml.pod
index 07cee37..82a5c48 100644
--- a/man/en/virt-image-xml.pod
+++ b/man/en/virt-image-xml.pod
@@ -213,7 +213,7 @@ you only need the ISO image from the System Rescue CD website.
       </domain>
       <storage>
         <disk file="root.raw" use="scratch" size="100" format="raw"/>
-        <disk id="sysresc" file="isos/systemrescuecd.iso" 
+        <disk id="sysresc" file="isos/systemrescuecd.iso"
               use="system" format="iso"/>
       </storage>
     </image>
@@ -224,21 +224,19 @@ To create a virtual machine, save the above XML in F<image.xml> and run:
 
 =head1 AUTHOR
 
-Written by David Lutterkort. See the AUTHORS file in the source distribution for
-the complete list of credits.
+Written by David Lutterkort. See the AUTHORS file in the source distribution
+for the complete list of credits.
 
 =head1 BUGS
 
-Report bugs to the mailing list C<http://www.redhat.com/mailman/listinfo/et-mgmt-tools>
-or directly to BugZilla C<http://bugzilla.redhat.com/bugzilla/> against the
-C<Fedora> product, and the C<python-virtinst> component.
+Please see C<http://virt-manager.org/page/BugReporting>
 
 =head1 COPYRIGHT
 
-Copyright (C) 2006-2007 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.
+Copyright (C) 2006-2007 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.
 
 =head1 SEE ALSO
 
diff --git a/man/en/virt-image.1 b/man/en/virt-image.1
index fe6555c..039a004 100644
--- a/man/en/virt-image.1
+++ b/man/en/virt-image.1
@@ -1,4 +1,4 @@
-.\" Automatically generated by Pod::Man 2.16 (Pod::Simple 3.05)
+.\" Automatically generated by Pod::Man 2.16 (Pod::Simple 3.07)
 .\"
 .\" Standard preamble:
 .\" ========================================================================
@@ -132,7 +132,7 @@
 .\" ========================================================================
 .\"
 .IX Title "VIRT-IMAGE 1"
-.TH VIRT-IMAGE 1 "2009-03-09" "perl v5.10.0" "Virtual Machine Install Tools"
+.TH VIRT-IMAGE 1 "2009-03-23" "perl v5.10.0" "Virtual Machine Install Tools"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l
@@ -149,8 +149,8 @@ virt\-image \- create virtual machines from an image descriptor
 the virtual machine are taken from the \s-1XML\s0 descriptor (e.g., where the
 files to back the virtual machine's disks are and how to map them into the
 guest), though certain information must be added on the command line, such
-as the name of the guest. Missing information will be queried
-interactively.
+as the name of the guest. By default, missing information will cause an
+error, but an interactive mode is available with the \-\-prompt option.
 .PP
 The \s-1XML\s0 descriptor defines most attributes of the guest, making it possible
 to bundle and distribute it together with the files backing the guest's
@@ -239,7 +239,7 @@ Setup a virtual console in the guest and display an \s-1SDL\s0 window in the
 host to render the output. See \fIvirt\-install\fR\|(1) for details
 .IP "\-\-nographics" 2
 .IX Item "--nographics"
-Disable all interactive prompts for the guest virtual console. See
+Do not attach a graphical device to the guest. See
 \&\fIvirt\-install\fR\|(1) for details
 .IP "\-k \s-1KEYMAP\s0, \-\-keymap=KEYMAP" 2
 .IX Item "-k KEYMAP, --keymap=KEYMAP"
@@ -271,6 +271,10 @@ Print debugging information
 .IX Item "--force"
 Prevent interactive prompts. If the intended prompt was a yes/no prompt, always
 say yes. For any other prompts, the application will exit.
+.IP "\-\-prompt" 2
+.IX Item "--prompt"
+Specifically enable prompting for information not provided in the image
+description. Default prompting is off.
 .SH "EXAMPLES"
 .IX Header "EXAMPLES"
 Create and start a guest called \f(CW\*(C`example\*(C'\fR with a \s-1VNC\s0 console from
diff --git a/man/en/virt-image.pod b/man/en/virt-image.pod
index a68e132..31ae450 100644
--- a/man/en/virt-image.pod
+++ b/man/en/virt-image.pod
@@ -15,8 +15,8 @@ XML image descriptor C<IMAGE.XML> (L<virt-image(5)>). Most attributes of
 the virtual machine are taken from the XML descriptor (e.g., where the
 files to back the virtual machine's disks are and how to map them into the
 guest), though certain information must be added on the command line, such
-as the name of the guest. Missing information will be queried
-interactively.
+as the name of the guest. By default, missing information will cause an
+error, but an interactive mode is available with the --prompt option.
 
 The XML descriptor defines most attributes of the guest, making it possible
 to bundle and distribute it together with the files backing the guest's
@@ -108,12 +108,11 @@ Disables ACPI for fully virtualized guest (overrides value in XML descriptor)
 
 =item -m MAC, --mac=MAC
 
-Fixed MAC address for the guest. See L<virt-install(1)> for details
+This is deprecated in favor of C<--network ...,mac=MAC,...>
 
 =item -b BRIDGE, --bridge=BRIDGE
 
-Bridge device to connect the guest NIC to. This is deprecated in favor of
-C<--network>
+This is deprecated in favor of C<--network bridge=BRIDGE>
 
 =item -w NETWORK, --network=NETWORK
 
@@ -138,6 +137,15 @@ the host. See L<virt-install(1)> for details
 Request a permanent, statically assigned port number for the guest VNC
 console. See L<virt-install(1)> for details
 
+=item --vnclisten=VNCLISTEN
+
+Address to listen on for VNC connections. See L<virt-install(1)> for details.
+
+=item -k KEYMAP, --keymap=KEYMAP
+
+Request that the virtual VNC console be configured to run with a non-English
+keyboard layout.
+
 =item --sdl
 
 Setup a virtual console in the guest and display an SDL window in the
@@ -145,14 +153,9 @@ host to render the output. See L<virt-install(1)> for details
 
 =item --nographics
 
-Disable all interactive prompts for the guest virtual console. See
+Do not attach a graphical device to the guest. See
 L<virt-install(1)> for details
 
-=item -k KEYMAP, --keymap=KEYMAP
-
-Request that the virtual console be configured to run with a non-English
-keyboard layout.
-
 =back
 
 =head2 Miscellaneous Options
@@ -189,6 +192,11 @@ Print debugging information
 Prevent interactive prompts. If the intended prompt was a yes/no prompt, always
 say yes. For any other prompts, the application will exit.
 
+=item --prompt
+
+Specifically enable prompting for information not provided in the image
+description. Default prompting is off.
+
 =back
 
 =head1 EXAMPLES
@@ -210,10 +218,7 @@ distribution for the complete list of credits.
 
 =head1 BUGS
 
-Report bugs to the mailing list
-C<http://www.redhat.com/mailman/listinfo/et-mgmt-tools> or directly to
-BugZilla C<http://bugzilla.redhat.com/bugzilla/> against the C<Fedora>
-product, and the C<python-virtinst> component.
+Please see http://virt-manager.org/page/BugReporting
 
 =head1 COPYRIGHT
 
diff --git a/man/en/virt-install.1 b/man/en/virt-install.1
index cba7ebd..eb373d8 100644
--- a/man/en/virt-install.1
+++ b/man/en/virt-install.1
@@ -1,4 +1,4 @@
-.\" Automatically generated by Pod::Man 2.16 (Pod::Simple 3.05)
+.\" Automatically generated by Pod::Man 2.16 (Pod::Simple 3.07)
 .\"
 .\" Standard preamble:
 .\" ========================================================================
@@ -132,7 +132,7 @@
 .\" ========================================================================
 .\"
 .IX Title "VIRT-INSTALL 1"
-.TH VIRT-INSTALL 1 "2009-03-09" "perl v5.10.0" "Virtual Machine Install Tools"
+.TH VIRT-INSTALL 1 "2009-07-28" "perl v5.10.0" "Virtual Machine Install Tools"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l
@@ -159,8 +159,9 @@ an existing disk image (thus skipping the install phase) are also supported.
 .PP
 Given suitable command line arguments, \f(CW\*(C`virt\-install\*(C'\fR is capable of running
 completely unattended, with the guest 'kickstarting' itself too. This allows
-for easy automation of guest installs. A companion tool \f(CW\*(C`virt\-clone(1)\*(C'\fR is
-provided for cloning pre-existing guests.
+for easy automation of guest installs. An interactive mode is also available
+with the \-\-prompt option, but this will only ask for the minimum required
+options.
 .SH "OPTIONS"
 .IX Header "OPTIONS"
 Most options are not required. Minimum requirements are \-\-name, \-\-ram,
@@ -206,9 +207,7 @@ away from the host operating system to satisfy this allocation.
 .IP "\-\-arch=ARCH" 2
 .IX Item "--arch=ARCH"
 Request a non-native \s-1CPU\s0 architecture for the guest virtual machine.
-The option is only currently available with \s-1QEMU\s0 guests, and will not
-enable use of acceleration. If omitted, the host \s-1CPU\s0 architecture will
-be used in the guest.
+If omitted, the host \s-1CPU\s0 architecture will be used in the guest.
 .IP "\-u \s-1UUID\s0, \-\-uuid=UUID" 2
 .IX Item "-u UUID, --uuid=UUID"
 \&\s-1UUID\s0 for the guest; if none is given a random \s-1UUID\s0 will be generated. If you
@@ -257,6 +256,9 @@ Debian Etch
 .IP "debianlenny" 4
 .IX Item "debianlenny"
 Debian Lenny
+.IP "debiansqueeze" 4
+.IX Item "debiansqueeze"
+Debian Squeeze
 .IP "fedora5" 4
 .IX Item "fedora5"
 Fedora Core 5
@@ -278,6 +280,9 @@ Fedora 10
 .IP "fedora11" 4
 .IX Item "fedora11"
 Fedora 11
+.IP "fedora12" 4
+.IX Item "fedora12"
+Fedora 12
 .IP "generic24" 4
 .IX Item "generic24"
 Generic 2.4.x kernel
@@ -302,6 +307,9 @@ Red Hat Enterprise Linux 5
 .IP "sles10" 4
 .IX Item "sles10"
 Suse Linux Enterprise Server
+.IP "sles11" 4
+.IX Item "sles11"
+Suse Linux Enterprise Server 11
 .IP "ubuntuhardy" 4
 .IX Item "ubuntuhardy"
 Ubuntu 8.04 \s-1LTS\s0 (Hardy Heron)
@@ -311,6 +319,9 @@ Ubuntu 8.10 (Intrepid Ibex)
 .IP "ubuntujaunty" 4
 .IX Item "ubuntujaunty"
 Ubuntu 9.04 (Jaunty Jackalope)
+.IP "ubuntukarmic" 4
+.IX Item "ubuntukarmic"
+Ubuntu 9.10 (Karmic Koala)
 .RE
 .RS 4
 .RE
@@ -388,6 +399,9 @@ Microsoft Windows 2003
 .IP "win2k8" 4
 .IX Item "win2k8"
 Microsoft Windows 2008
+.IP "win7" 4
+.IX Item "win7"
+Microsoft Windows 7
 .IP "winxp" 4
 .IX Item "winxp"
 Microsoft Windows \s-1XP\s0 (x86)
@@ -410,6 +424,78 @@ Parameters specific only to fully virtualized guest installs.
 .IP "\-\-sound" 2
 .IX Item "--sound"
 Attach a virtual audio device to the guest.
+.IP "\-\-parallel=CHAROPTS" 2
+.IX Item "--parallel=CHAROPTS"
+.PD 0
+.IP "\-\-serial=CHAROPTS" 2
+.IX Item "--serial=CHAROPTS"
+.PD
+Specifies a serial device to attach to the guest, with various options. The
+general format of a serial string is
+.Sp
+.Vb 1
+\&    \-\-serial type,opt1=val1,opt2=val2,...
+.Ve
+.Sp
+\&\-\-serial and \-\-parallel devices share all the same options, unless otherwise
+noted. Some of the types of character device redirection are:
+.RS 2
+.IP "\fB\-\-serial pty\fR" 4
+.IX Item "--serial pty"
+Psuedo \s-1TTY\s0. The allocated pty will be listed in the running guests \s-1XML\s0
+description.
+.IP "\fB\-\-serial dev,path=HOSTPATH\fR" 4
+.IX Item "--serial dev,path=HOSTPATH"
+Host device. For serial devices, this could be /dev/ttyS0. For parallel
+devices, this could be /dev/parport0.
+.IP "\fB\-\-serial file,path=FILENAME\fR" 4
+.IX Item "--serial file,path=FILENAME"
+Write output to \s-1FILENAME\s0.
+.IP "\fB\-\-serial pipe,path=PIPEPATH\fR" 4
+.IX Item "--serial pipe,path=PIPEPATH"
+Named pipe (see \fIpipe\fR\|(7))
+.IP "\fB\-\-serial tcp,host=HOST:PORT,mode=MODE,protocol=PROTOCOL\fR" 4
+.IX Item "--serial tcp,host=HOST:PORT,mode=MODE,protocol=PROTOCOL"
+\&\s-1TCP\s0 net console. \s-1MODE\s0 is either 'bind' (wait for connections on \s-1HOST:PORT\s0)
+or 'connect' (send output to \s-1HOST:PORT\s0), default is 'connect'. \s-1HOST\s0 defaults
+to '127.0.0.1', but \s-1PORT\s0 is required. \s-1PROTOCOL\s0 can be either 'raw' or 'telnet'
+(default 'raw'). If 'telnet', the port acts like a telnet server or client.
+Some examples:
+.Sp
+Connect to localhost, port 1234:
+.Sp
+\&\-\-serial tcp,host=:1234
+.Sp
+Wait for connections on any address, port 4567:
+.Sp
+\&\-\-serial tcp,host=0.0.0.0:4567,mode=bind
+.Sp
+Wait for telnet connection on localhost, port 2222. The user could then
+connect interactively to this console via 'telnet localhost 2222':
+.Sp
+\&\-\-serial tcp,host=:2222,mode=bind,protocol=telnet
+.IP "\fB\-\-serial udp,host=CONNECT_HOST:PORT,bind_port=BIND_HOST:BIND_PORT\fR" 4
+.IX Item "--serial udp,host=CONNECT_HOST:PORT,bind_port=BIND_HOST:BIND_PORT"
+\&\s-1UDP\s0 net console. \s-1HOST:PORT\s0 is the destination to send output to (default
+\&\s-1HOST\s0 is '127.0.0.1', \s-1PORT\s0 is required. \s-1BIND_HOST:PORT\s0 is the optional local
+address to bind to (default \s-1BIND_HOST\s0 is 127.0.0.1, but is only set if
+\&\s-1BIND_PORT\s0 is specified.) Some examples:
+.Sp
+Send output to default syslog port (may need to edit /etc/rsyslog.conf
+accordingly):
+.Sp
+\&\-\-serial udp,host=:514
+.Sp
+Send output to remote host 192.168.10.20, port 4444 (this output can be
+read on the remote host using 'nc \-u \-l 4444':
+.Sp
+\&\-\-serial udp,host=192.168.10.20:4444
+.IP "\fB\-\-serial unix,path=UNIXPATH,mode=MODE\fR" 4
+.IX Item "--serial unix,path=UNIXPATH,mode=MODE"
+Unix socket (see \fIunix\fR\|(7). \s-1MODE\s0 has similar behavior and defaults as 'tcp'.
+.RE
+.RS 2
+.RE
 .IP "\-\-noapic" 2
 .IX Item "--noapic"
 Override the \s-1OS\s0 type / variant to disables the \s-1APIC\s0 setting for fully
@@ -432,12 +518,15 @@ parameter is implied if connecting to a \s-1QEMU\s0 based hypervisor.
 This guest should be a paravirtualized guest. If the host supports both
 para & full virtualization, and neither this parameter nor the \f(CW\*(C`\-\-hvm\*(C'\fR
 are specified, this will be assumed.
+.IP "\-\-virt\-type" 2
+.IX Item "--virt-type"
+The hypervisor to install on. Example choices are kvm, qemu, xen, or kqemu.
+Availabile options are listed via 'virsh capabilities' in the <domain> tags.
 .IP "\-\-accelerate" 2
 .IX Item "--accelerate"
-When installing a \s-1QEMU\s0 guest, make use of the \s-1KVM\s0 or \s-1KQEMU\s0 kernel acceleration
-capabilities if available. Use of this option is recommended unless a guest
-\&\s-1OS\s0 is known to be incompatible with the accelerators. The \s-1KVM\s0 accelerator is
-preferred over \s-1KQEMU\s0 if both are available.
+Prefer \s-1KVM\s0 or \s-1KQEMU\s0 (in that order) if installing a \s-1QEMU\s0 guest. This behavior
+is now the default, and this option is deprecated. To install a plain \s-1QEMU\s0
+guest, use '\-\-virt\-type qemu'
 .Sh "Installation Method options"
 .IX Subsection "Installation Method options"
 .IP "\-c \s-1CDROM\s0, \-\-cdrom=CDROM" 2
@@ -576,37 +665,34 @@ read and write caching.
 See the examples section for some uses. This option deprecates \f(CW\*(C`\-\-file\*(C'\fR,
 \&\f(CW\*(C`\-\-file\-size\*(C'\fR, and \f(CW\*(C`\-\-nonsparse\*(C'\fR.
 .RE
+.IP "\-\-nodisks" 2
+.IX Item "--nodisks"
+Request a virtual machine without any local disk storage, typically used for
+running 'Live \s-1CD\s0' images or installing to network storage (iSCSI or \s-1NFS\s0 root).
 .IP "\-f \s-1DISKFILE\s0, \-\-file=DISKFILE" 2
 .IX Item "-f DISKFILE, --file=DISKFILE"
-Path to the file, disk partition, or logical volume to use as the backing store
-for the guest's virtual disk. This option is deprecated in favor of \f(CW\*(C`\-\-disk\*(C'\fR.
+This option is deprecated in favor of \f(CW\*(C`\-\-disk path=DISKFILE\*(C'\fR.
 .IP "\-s \s-1DISKSIZE\s0, \-\-file\-size=DISKSIZE" 2
 .IX Item "-s DISKSIZE, --file-size=DISKSIZE"
-Size of the file to create for the guest virtual disk. This is deprecated in
-favor of \f(CW\*(C`\-\-disk\*(C'\fR.
+This option is deprecated in favor of \f(CW\*(C`\-\-disk ...,size=DISKSIZE,...\*(C'\fR
 .IP "\-\-nonsparse" 2
 .IX Item "--nonsparse"
-Fully allocate the storage when creating. This is deprecated in favort of
-\&\f(CW\*(C`\-\-disk\*(C'\fR
-.IP "\-\-nodisks" 2
-.IX Item "--nodisks"
-Request a virtual machine without any local disk storage, typically used for
-running 'Live \s-1CD\s0' images or installing to network storage (iSCSI or \s-1NFS\s0 root).
+This option is deprecated in favor of \f(CW\*(C`\-\-disk ...,sparse=false,...\*(C'\fR
 .Sh "Networking Configuration"
 .IX Subsection "Networking Configuration"
-.IP "\-w \s-1NETWORK\s0, \-\-network=NETWORK" 2
-.IX Item "-w NETWORK, --network=NETWORK"
+.IP "\-w \s-1NETWORK\s0, \-\-network=NETWORK,opt1=val1,opt2=val2" 2
+.IX Item "-w NETWORK, --network=NETWORK,opt1=val1,opt2=val2"
 Connect the guest to the host network. The value for \f(CW\*(C`NETWORK\*(C'\fR can take
 one of 3 formats:
 .RS 2
-.IP "bridge:BRIDGE" 4
-.IX Item "bridge:BRIDGE"
+.IP "bridge=BRIDGE" 4
+.IX Item "bridge=BRIDGE"
 Connect to a bridge device in the host called \f(CW\*(C`BRIDGE\*(C'\fR. Use this option if
 the host has static networking config & the guest requires full outbound
 and inbound connectivity  to/from the \s-1LAN\s0. Also use this if live migration
 will be used with this guest.
-.IP "network:NAME" 4
-.IX Item "network:NAME"
+.IP "network=NAME" 4
+.IX Item "network=NAME"
 Connect to a virtual network in the host called \f(CW\*(C`NAME\*(C'\fR. Virtual networks
 can be listed, created, deleted using the \f(CW\*(C`virsh\*(C'\fR command line tool. In
 an unmodified install of \f(CW\*(C`libvirt\*(C'\fR there is usually a virtual network
@@ -625,21 +711,32 @@ there is a bridge device in the host with a physical interface enslaved,
 that will be used for connectivity. Failing that, the virtual network
 called \f(CW\*(C`default\*(C'\fR will be used. This option can be specified multiple
 times to setup more than one \s-1NIC\s0.
-.RE
-.IP "\-b \s-1BRIDGE\s0, \-\-bridge=BRIDGE" 2
-.IX Item "-b BRIDGE, --bridge=BRIDGE"
-Bridge device to connect the guest \s-1NIC\s0 to. This parameter is deprecated in
-favour of the \f(CW\*(C`\-\-network\*(C'\fR parameter.
-.IP "\-m \s-1MAC\s0, \-\-mac=MAC" 2
-.IX Item "-m MAC, --mac=MAC"
+.Sp
+Other available options are:
+.IP "\fBmodel\fR" 4
+.IX Item "model"
+Network device model as seen by the guest. Value can be any nic model supported
+by the hypervisor, e.g.: 'e1000', 'rtl8139', 'virtio', ...
+.IP "\fBmac\fR" 4
+.IX Item "mac"
 Fixed \s-1MAC\s0 address for the guest; If this parameter is omitted, or the value
 \&\f(CW\*(C`RANDOM\*(C'\fR is specified a suitable address will be randomly generated. For
 Xen virtual machines it is required that the first 3 pairs in the \s-1MAC\s0 address
 be the sequence '00:16:3e', while for \s-1QEMU\s0 or \s-1KVM\s0 virtual machines it must
-be '54:52:00'.
+be '52:54:00'.
+.RE
+.RS 2
+.RE
 .IP "\-\-nonetworks" 2
 .IX Item "--nonetworks"
 Request a virtual machine without any network interfaces.
+.IP "\-b \s-1BRIDGE\s0, \-\-bridge=BRIDGE" 2
+.IX Item "-b BRIDGE, --bridge=BRIDGE"
+This parameter is deprecated in favour of
+\&\f(CW\*(C`\-\-network bridge=bridge_name\*(C'\fR.
+.IP "\-m \s-1MAC\s0, \-\-mac=MAC" 2
+.IX Item "-m MAC, --mac=MAC"
+This parameter is deprecated in favour of \f(CW\*(C`\-\-network NETWORK,mac=12:34...\*(C'\fR
 .Sh "Graphics Configuration"
 .IX Subsection "Graphics Configuration"
 If no graphics option is specified, \f(CW\*(C`virt\-install\*(C'\fR will default to \-\-vnc
@@ -657,11 +754,26 @@ detail for the use).
 Request a permanent, statically assigned port number for the guest \s-1VNC\s0
 console. Use of this option is discouraged as other guests may automatically
 choose to run on this port causing a clash.
+.IP "\-\-vnclisten=VNCLISTEN" 2
+.IX Item "--vnclisten=VNCLISTEN"
+Address to listen on for \s-1VNC\s0 connections. Default is typically 127.0.0.1
+(localhost only), but some hypervisors allow changing this globally (for
+example, the qemu driver default can be changed in /etc/libvirt/qemu.conf).
+Use 0.0.0.0 to allow access from other machines.
+.IP "\-k \s-1KEYMAP\s0, \-\-keymap=KEYMAP" 2
+.IX Item "-k KEYMAP, --keymap=KEYMAP"
+Request that the virtual \s-1VNC\s0 console be configured to run with a non-English
+keyboard layout.
 .IP "\-\-sdl" 2
 .IX Item "--sdl"
 Setup a virtual console in the guest and display an \s-1SDL\s0 window in the
 host to render the output. If the \s-1SDL\s0 window is closed the guest may
 be unconditionally terminated.
+.IP "\-\-video=VIDEO" 2
+.IX Item "--video=VIDEO"
+Specify what video device model will be attached to the guest. Valid values
+for \s-1VIDEO\s0 are hypervisor specific, but some options for recent kvm are
+cirrus, vga, or vmvga (vmware).
 .IP "\-\-nographics" 2
 .IX Item "--nographics"
 No graphical console will be allocated for the guest. Fully virtualized guests
@@ -675,10 +787,6 @@ Don't automatically try to connect to the guest console. The default behaviour
 is to launch a \s-1VNC\s0 client to display the graphical console, or to run the
 \&\f(CW\*(C`virsh\*(C'\fR \f(CW\*(C`console\*(C'\fR command to display the text console. Use of this parameter
 will disable this behaviour.
-.IP "\-k \s-1KEYMAP\s0, \-\-keymap=KEYMAP" 2
-.IX Item "-k KEYMAP, --keymap=KEYMAP"
-Request that the virtual \s-1VNC\s0 console be configured to run with a non-English
-keyboard layout.
 .Sh "Miscellaneous Options"
 .IX Subsection "Miscellaneous Options"
 .IP "\-d, \-\-debug" 2
@@ -697,7 +805,7 @@ Without this option, virt-install will wait for the console to close (not
 neccessarily indicating the guest has shutdown), or in the case of
 \&\-\-noautoconsole, simply kick off the install and exit. Any negative
 value will make virt-install wait indefinitely, a value of 0 triggers the
-same results as noautoconsole. If the time limit is succeeded, virt-install
+same results as noautoconsole. If the time limit is exceeded, virt-install
 simply exits, leaving the virtual machine in its current state.
 .IP "\-\-force" 2
 .IX Item "--force"
@@ -705,26 +813,26 @@ Prevent interactive prompts. If the intended prompt was a yes/no prompt, always
 say yes. For any other prompts, the application will exit.
 .IP "\-\-prompt" 2
 .IX Item "--prompt"
-Specifically enable prompting. Default prompting is off (as of
-virtinst 0.400.0)
+Specifically enable prompting for required information. Default prompting
+is off (as of virtinst 0.400.0)
 .SH "EXAMPLES"
 .IX Header "EXAMPLES"
-Install a \s-1KVM\s0 guest, creating a new storage file, virtual networking,
-booting from the host \s-1CDROM\s0, using \s-1VNC\s0 server/viewer
+Install a \s-1KVM\s0 guest (assuming proper host support), creating a new
++storage file, virtual networking, booting from the host \s-1CDROM\s0, using
++VNC server/viewer.
 .PP
-.Vb 9
+.Vb 8
 \&  # virt\-install \e
 \&       \-\-connect qemu:///system \e
 \&       \-\-name demo \e
 \&       \-\-ram 500 \e
 \&       \-\-disk path=/var/lib/libvirt/images/demo.img,size=5 \e
-\&       \-\-network network:default \e
-\&       \-\-accelerate \e
+\&       \-\-network network=default,model=virtio \e
 \&       \-\-vnc \e
 \&       \-\-cdrom /dev/cdrom
 .Ve
 .PP
-Install a Fedora 9 \s-1KVM\s0 guest, using \s-1LVM\s0 partition, virtual networking,
+Install a Fedora 9 plain \s-1QEMU\s0 guest, using \s-1LVM\s0 partition, virtual networking,
 booting from \s-1PXE\s0, using \s-1VNC\s0 server/viewer
 .PP
 .Vb 9
@@ -733,14 +841,15 @@ booting from \s-1PXE\s0, using \s-1VNC\s0 server/viewer
 \&       \-\-name demo \e
 \&       \-\-ram 500 \e
 \&       \-\-disk path=/dev/HostVG/DemoVM \e
-\&       \-\-network network:default \e
-\&       \-\-accelerate \e
+\&       \-\-network network=default \e
+\&       \-\-virt\-type qemu
 \&       \-\-vnc \e
 \&       \-\-os\-variant fedora9
 .Ve
 .PP
-Install a \s-1QEMU\s0 guest, with a real partition, for a different architecture
-using \s-1SDL\s0 graphics, using a remote kernel and initrd pair:
+Install a guest with a real partition, with the default \s-1QEMU\s0 hypervisor for
+a different architecture using \s-1SDL\s0 graphics, using a remote kernel and initrd
+pair:
 .PP
 .Vb 9
 \&  # virt\-install \e
@@ -748,7 +857,7 @@ using \s-1SDL\s0 graphics, using a remote kernel and initrd pair:
 \&       \-\-name demo \e
 \&       \-\-ram 500 \e
 \&       \-\-disk path=/dev/hdc \e
-\&       \-\-network bridge:eth1 \e
+\&       \-\-network bridge=eth1 \e
 \&       \-\-arch ppc64 \e
 \&       \-\-sdl \e
 \&       \-\-location http://download.fedora.redhat.com/pub/fedora/linux/core/6/x86_64/os/
@@ -799,14 +908,7 @@ team of many other contributors. See the \s-1AUTHORS\s0 file in the source
 distribution for the complete list of credits.
 .SH "BUGS"
 .IX Header "BUGS"
-Report bugs to the mailing list
-\&\f(CW\*(C`http://www.redhat.com/mailman/listinfo/et\-mgmt\-tools\*(C'\fR
-or directly to BugZilla \f(CW\*(C`http://bugzilla.redhat.com/bugzilla/\*(C'\fR against the
-\&\f(CW\*(C`Fedora\*(C'\fR product, and the \f(CW\*(C`python\-virtinst\*(C'\fR component.
-.PP
-When filing a bug, please run the failing command with the \-\-debug command
-line flag and post the output to the bug report, along with
-\&\f(CW$HOME\fR/.virtinst/virt\-install.log
+Please see http://virt\-manager.org/page/BugReporting
 .SH "COPYRIGHT"
 .IX Header "COPYRIGHT"
 Copyright (C) 2006\-2009 Red Hat, Inc, and various contributors.
diff --git a/man/en/virt-install.pod b/man/en/virt-install.pod
index 66e9a82..d08b64d 100644
--- a/man/en/virt-install.pod
+++ b/man/en/virt-install.pod
@@ -25,8 +25,9 @@ an existing disk image (thus skipping the install phase) are also supported.
 
 Given suitable command line arguments, C<virt-install> is capable of running
 completely unattended, with the guest 'kickstarting' itself too. This allows
-for easy automation of guest installs. A companion tool C<virt-clone(1)> is
-provided for cloning pre-existing guests.
+for easy automation of guest installs. An interactive mode is also available
+with the --prompt option, but this will only ask for the minimum required
+options.
 
 =head1 OPTIONS
 
@@ -88,9 +89,7 @@ away from the host operating system to satisfy this allocation.
 =item  --arch=ARCH
 
 Request a non-native CPU architecture for the guest virtual machine.
-The option is only currently available with QEMU guests, and will not
-enable use of acceleration. If omitted, the host CPU architecture will
-be used in the guest.
+If omitted, the host CPU architecture will be used in the guest.
 
 =item -u UUID, --uuid=UUID
 
@@ -146,6 +145,10 @@ Debian Etch
 
 Debian Lenny
 
+=item debiansqueeze
+
+Debian Squeeze
+
 =item fedora5
 
 Fedora Core 5
@@ -174,6 +177,10 @@ Fedora 10
 
 Fedora 11
 
+=item fedora12
+
+Fedora 12
+
 =item generic24
 
 Generic 2.4.x kernel
@@ -206,6 +213,10 @@ Red Hat Enterprise Linux 5
 
 Suse Linux Enterprise Server
 
+=item sles11
+
+Suse Linux Enterprise Server 11
+
 =item ubuntuhardy
 
 Ubuntu 8.04 LTS (Hardy Heron)
@@ -218,6 +229,10 @@ Ubuntu 8.10 (Intrepid Ibex)
 
 Ubuntu 9.04 (Jaunty Jackalope)
 
+=item ubuntukarmic
+
+Ubuntu 9.10 (Karmic Koala)
+
 =back
 
 =item other
@@ -302,6 +317,10 @@ Microsoft Windows 2003
 
 Microsoft Windows 2008
 
+=item win7
+
+Microsoft Windows 7
+
 =item winxp
 
 Microsoft Windows XP (x86)
@@ -333,6 +352,82 @@ Parameters specific only to fully virtualized guest installs.
 
 Attach a virtual audio device to the guest.
 
+=item --parallel=CHAROPTS
+
+=item --serial=CHAROPTS
+
+Specifies a serial device to attach to the guest, with various options. The
+general format of a serial string is
+
+    --serial type,opt1=val1,opt2=val2,...
+
+--serial and --parallel devices share all the same options, unless otherwise
+noted. Some of the types of character device redirection are:
+
+=over 4
+
+=item B<--serial pty>
+
+Psuedo TTY. The allocated pty will be listed in the running guests XML
+description.
+
+=item B<--serial dev,path=HOSTPATH>
+
+Host device. For serial devices, this could be /dev/ttyS0. For parallel
+devices, this could be /dev/parport0.
+
+=item B<--serial file,path=FILENAME>
+
+Write output to FILENAME.
+
+=item B<--serial pipe,path=PIPEPATH>
+
+Named pipe (see pipe(7))
+
+=item B<--serial tcp,host=HOST:PORT,mode=MODE,protocol=PROTOCOL>
+
+TCP net console. MODE is either 'bind' (wait for connections on HOST:PORT)
+or 'connect' (send output to HOST:PORT), default is 'connect'. HOST defaults
+to '127.0.0.1', but PORT is required. PROTOCOL can be either 'raw' or 'telnet'
+(default 'raw'). If 'telnet', the port acts like a telnet server or client.
+Some examples:
+
+Connect to localhost, port 1234:
+
+--serial tcp,host=:1234
+
+Wait for connections on any address, port 4567:
+
+--serial tcp,host=0.0.0.0:4567,mode=bind
+
+Wait for telnet connection on localhost, port 2222. The user could then
+connect interactively to this console via 'telnet localhost 2222':
+
+--serial tcp,host=:2222,mode=bind,protocol=telnet
+
+=item B<--serial udp,host=CONNECT_HOST:PORT,bind_port=BIND_HOST:BIND_PORT>
+
+UDP net console. HOST:PORT is the destination to send output to (default
+HOST is '127.0.0.1', PORT is required. BIND_HOST:PORT is the optional local
+address to bind to (default BIND_HOST is 127.0.0.1, but is only set if
+BIND_PORT is specified.) Some examples:
+
+Send output to default syslog port (may need to edit /etc/rsyslog.conf
+accordingly):
+
+--serial udp,host=:514
+
+Send output to remote host 192.168.10.20, port 4444 (this output can be
+read on the remote host using 'nc -u -l 4444':
+
+--serial udp,host=192.168.10.20:4444
+
+=item B<--serial unix,path=UNIXPATH,mode=MODE>
+
+Unix socket (see unix(7). MODE has similar behavior and defaults as 'tcp'.
+
+=back
+
 =item  --noapic
 
 Override the OS type / variant to disables the APIC setting for fully
@@ -364,12 +459,16 @@ This guest should be a paravirtualized guest. If the host supports both
 para & full virtualization, and neither this parameter nor the C<--hvm>
 are specified, this will be assumed.
 
+=item --virt-type
+
+The hypervisor to install on. Example choices are kvm, qemu, xen, or kqemu.
+Availabile options are listed via 'virsh capabilities' in the <domain> tags.
+
 =item  --accelerate
 
-When installing a QEMU guest, make use of the KVM or KQEMU kernel acceleration
-capabilities if available. Use of this option is recommended unless a guest
-OS is known to be incompatible with the accelerators. The KVM accelerator is
-preferred over KQEMU if both are available.
+Prefer KVM or KQEMU (in that order) if installing a QEMU guest. This behavior
+is now the default, and this option is deprecated. To install a plain QEMU
+guest, use '--virt-type qemu'
 
 =back
 
@@ -543,25 +642,22 @@ read and write caching.
 See the examples section for some uses. This option deprecates C<--file>,
 C<--file-size>, and C<--nonsparse>.
 
+=item --nodisks
+
+Request a virtual machine without any local disk storage, typically used for
+running 'Live CD' images or installing to network storage (iSCSI or NFS root).
+
 =item -f DISKFILE, --file=DISKFILE
 
-Path to the file, disk partition, or logical volume to use as the backing store
-for the guest's virtual disk. This option is deprecated in favor of C<--disk>.
+This option is deprecated in favor of C<--disk path=DISKFILE>.
 
 =item -s DISKSIZE, --file-size=DISKSIZE
 
-Size of the file to create for the guest virtual disk. This is deprecated in
-favor of C<--disk>.
+This option is deprecated in favor of C<--disk ...,size=DISKSIZE,...>
 
 =item --nonsparse
 
-Fully allocate the storage when creating. This is deprecated in favort of
-C<--disk>
-
-=item --nodisks
-
-Request a virtual machine without any local disk storage, typically used for
-running 'Live CD' images or installing to network storage (iSCSI or NFS root).
+This option is deprecated in favor of C<--disk ...,sparse=false,...>
 
 =back
 
@@ -569,21 +665,21 @@ running 'Live CD' images or installing to network storage (iSCSI or NFS root).
 
 =over 2
 
-=item -w NETWORK, --network=NETWORK
+=item -w NETWORK, --network=NETWORK,opt1=val1,opt2=val2
 
 Connect the guest to the host network. The value for C<NETWORK> can take
 one of 3 formats:
 
 =over 4
 
-=item bridge:BRIDGE
+=item bridge=BRIDGE
 
 Connect to a bridge device in the host called C<BRIDGE>. Use this option if
 the host has static networking config & the guest requires full outbound
 and inbound connectivity  to/from the LAN. Also use this if live migration
 will be used with this guest.
 
-=item network:NAME
+=item network=NAME
 
 Connect to a virtual network in the host called C<NAME>. Virtual networks
 can be listed, created, deleted using the C<virsh> command line tool. In
@@ -605,23 +701,38 @@ that will be used for connectivity. Failing that, the virtual network
 called C<default> will be used. This option can be specified multiple
 times to setup more than one NIC.
 
-=item -b BRIDGE, --bridge=BRIDGE
+Other available options are:
 
-Bridge device to connect the guest NIC to. This parameter is deprecated in
-favour of the C<--network> parameter.
+=over 4
 
-=item -m MAC, --mac=MAC
+=item B<model>
+
+Network device model as seen by the guest. Value can be any nic model supported
+by the hypervisor, e.g.: 'e1000', 'rtl8139', 'virtio', ...
+
+=item B<mac>
 
 Fixed MAC address for the guest; If this parameter is omitted, or the value
 C<RANDOM> is specified a suitable address will be randomly generated. For
 Xen virtual machines it is required that the first 3 pairs in the MAC address
 be the sequence '00:16:3e', while for QEMU or KVM virtual machines it must
-be '54:52:00'.
+be '52:54:00'.
+
+=back
 
 =item --nonetworks
 
 Request a virtual machine without any network interfaces.
 
+=item -b BRIDGE, --bridge=BRIDGE
+
+This parameter is deprecated in favour of
+C<--network bridge=bridge_name>.
+
+=item -m MAC, --mac=MAC
+
+This parameter is deprecated in favour of C<--network NETWORK,mac=12:34...>
+
 =back
 
 =head2 Graphics Configuration
@@ -646,12 +757,30 @@ Request a permanent, statically assigned port number for the guest VNC
 console. Use of this option is discouraged as other guests may automatically
 choose to run on this port causing a clash.
 
+=item --vnclisten=VNCLISTEN
+
+Address to listen on for VNC connections. Default is typically 127.0.0.1
+(localhost only), but some hypervisors allow changing this globally (for
+example, the qemu driver default can be changed in /etc/libvirt/qemu.conf).
+Use 0.0.0.0 to allow access from other machines.
+
+=item  -k KEYMAP, --keymap=KEYMAP
+
+Request that the virtual VNC console be configured to run with a non-English
+keyboard layout.
+
 =item  --sdl
 
 Setup a virtual console in the guest and display an SDL window in the
 host to render the output. If the SDL window is closed the guest may
 be unconditionally terminated.
 
+=item --video=VIDEO
+
+Specify what video device model will be attached to the guest. Valid values
+for VIDEO are hypervisor specific, but some options for recent kvm are
+cirrus, vga, or vmvga (vmware).
+
 =item  --nographics
 
 No graphical console will be allocated for the guest. Fully virtualized guests
@@ -667,11 +796,6 @@ is to launch a VNC client to display the graphical console, or to run the
 C<virsh> C<console> command to display the text console. Use of this parameter
 will disable this behaviour.
 
-=item  -k KEYMAP, --keymap=KEYMAP
-
-Request that the virtual VNC console be configured to run with a non-English
-keyboard layout.
-
 =back
 
 =head2 Miscellaneous Options
@@ -696,7 +820,7 @@ Without this option, virt-install will wait for the console to close (not
 neccessarily indicating the guest has shutdown), or in the case of
 --noautoconsole, simply kick off the install and exit. Any negative
 value will make virt-install wait indefinitely, a value of 0 triggers the
-same results as noautoconsole. If the time limit is succeeded, virt-install
+same results as noautoconsole. If the time limit is exceeded, virt-install
 simply exits, leaving the virtual machine in its current state.
 
 =item --force
@@ -706,28 +830,27 @@ say yes. For any other prompts, the application will exit.
 
 =item --prompt
 
-Specifically enable prompting. Default prompting is off (as of
-virtinst 0.400.0)
+Specifically enable prompting for required information. Default prompting
+is off (as of virtinst 0.400.0)
 
 =back
 
 =head1 EXAMPLES
 
-Install a KVM guest, creating a new storage file, virtual networking,
-booting from the host CDROM, using VNC server/viewer
+Install a KVM guest (assuming proper host support), creating a new
++storage file, virtual networking, booting from the host CDROM, using
++VNC server/viewer.
 
   # virt-install \
        --connect qemu:///system \
        --name demo \
        --ram 500 \
        --disk path=/var/lib/libvirt/images/demo.img,size=5 \
-       --network network:default \
-       --accelerate \
+       --network network=default,model=virtio \
        --vnc \
        --cdrom /dev/cdrom
 
-
-Install a Fedora 9 KVM guest, using LVM partition, virtual networking,
+Install a Fedora 9 plain QEMU guest, using LVM partition, virtual networking,
 booting from PXE, using VNC server/viewer
 
   # virt-install \
@@ -735,20 +858,21 @@ booting from PXE, using VNC server/viewer
        --name demo \
        --ram 500 \
        --disk path=/dev/HostVG/DemoVM \
-       --network network:default \
-       --accelerate \
+       --network network=default \
+       --virt-type qemu
        --vnc \
        --os-variant fedora9
 
-Install a QEMU guest, with a real partition, for a different architecture
-using SDL graphics, using a remote kernel and initrd pair:
+Install a guest with a real partition, with the default QEMU hypervisor for
+a different architecture using SDL graphics, using a remote kernel and initrd
+pair:
 
   # virt-install \
        --connect qemu:///system \
        --name demo \
        --ram 500 \
        --disk path=/dev/hdc \
-       --network bridge:eth1 \
+       --network bridge=eth1 \
        --arch ppc64 \
        --sdl \
        --location http://download.fedora.redhat.com/pub/fedora/linux/core/6/x86_64/os/
@@ -794,14 +918,7 @@ distribution for the complete list of credits.
 
 =head1 BUGS
 
-Report bugs to the mailing list
-C<http://www.redhat.com/mailman/listinfo/et-mgmt-tools>
-or directly to BugZilla C<http://bugzilla.redhat.com/bugzilla/> against the
-C<Fedora> product, and the C<python-virtinst> component.
-
-When filing a bug, please run the failing command with the --debug command
-line flag and post the output to the bug report, along with
-$HOME/.virtinst/virt-install.log
+Please see http://virt-manager.org/page/BugReporting
 
 =head1 COPYRIGHT
 
diff --git a/man/en/virt-install.pod.in b/man/en/virt-install.pod.in
index 6c5f38d..3b7c6c8 100644
--- a/man/en/virt-install.pod.in
+++ b/man/en/virt-install.pod.in
@@ -25,8 +25,9 @@ an existing disk image (thus skipping the install phase) are also supported.
 
 Given suitable command line arguments, C<virt-install> is capable of running
 completely unattended, with the guest 'kickstarting' itself too. This allows
-for easy automation of guest installs. A companion tool C<virt-clone(1)> is
-provided for cloning pre-existing guests.
+for easy automation of guest installs. An interactive mode is also available
+with the --prompt option, but this will only ask for the minimum required
+options.
 
 =head1 OPTIONS
 
@@ -88,9 +89,7 @@ away from the host operating system to satisfy this allocation.
 =item  --arch=ARCH
 
 Request a non-native CPU architecture for the guest virtual machine.
-The option is only currently available with QEMU guests, and will not
-enable use of acceleration. If omitted, the host CPU architecture will
-be used in the guest.
+If omitted, the host CPU architecture will be used in the guest.
 
 =item -u UUID, --uuid=UUID
 
@@ -151,6 +150,82 @@ Parameters specific only to fully virtualized guest installs.
 
 Attach a virtual audio device to the guest.
 
+=item --parallel=CHAROPTS
+
+=item --serial=CHAROPTS
+
+Specifies a serial device to attach to the guest, with various options. The
+general format of a serial string is
+
+    --serial type,opt1=val1,opt2=val2,...
+
+--serial and --parallel devices share all the same options, unless otherwise
+noted. Some of the types of character device redirection are:
+
+=over 4
+
+=item B<--serial pty>
+
+Psuedo TTY. The allocated pty will be listed in the running guests XML
+description.
+
+=item B<--serial dev,path=HOSTPATH>
+
+Host device. For serial devices, this could be /dev/ttyS0. For parallel
+devices, this could be /dev/parport0.
+
+=item B<--serial file,path=FILENAME>
+
+Write output to FILENAME.
+
+=item B<--serial pipe,path=PIPEPATH>
+
+Named pipe (see pipe(7))
+
+=item B<--serial tcp,host=HOST:PORT,mode=MODE,protocol=PROTOCOL>
+
+TCP net console. MODE is either 'bind' (wait for connections on HOST:PORT)
+or 'connect' (send output to HOST:PORT), default is 'connect'. HOST defaults
+to '127.0.0.1', but PORT is required. PROTOCOL can be either 'raw' or 'telnet'
+(default 'raw'). If 'telnet', the port acts like a telnet server or client.
+Some examples:
+
+Connect to localhost, port 1234:
+
+--serial tcp,host=:1234
+
+Wait for connections on any address, port 4567:
+
+--serial tcp,host=0.0.0.0:4567,mode=bind
+
+Wait for telnet connection on localhost, port 2222. The user could then
+connect interactively to this console via 'telnet localhost 2222':
+
+--serial tcp,host=:2222,mode=bind,protocol=telnet
+
+=item B<--serial udp,host=CONNECT_HOST:PORT,bind_port=BIND_HOST:BIND_PORT>
+
+UDP net console. HOST:PORT is the destination to send output to (default
+HOST is '127.0.0.1', PORT is required. BIND_HOST:PORT is the optional local
+address to bind to (default BIND_HOST is 127.0.0.1, but is only set if
+BIND_PORT is specified.) Some examples:
+
+Send output to default syslog port (may need to edit /etc/rsyslog.conf
+accordingly):
+
+--serial udp,host=:514
+
+Send output to remote host 192.168.10.20, port 4444 (this output can be
+read on the remote host using 'nc -u -l 4444':
+
+--serial udp,host=192.168.10.20:4444
+
+=item B<--serial unix,path=UNIXPATH,mode=MODE>
+
+Unix socket (see unix(7). MODE has similar behavior and defaults as 'tcp'.
+
+=back
+
 =item  --noapic
 
 Override the OS type / variant to disables the APIC setting for fully
@@ -182,12 +257,16 @@ This guest should be a paravirtualized guest. If the host supports both
 para & full virtualization, and neither this parameter nor the C<--hvm>
 are specified, this will be assumed.
 
+=item --virt-type
+
+The hypervisor to install on. Example choices are kvm, qemu, xen, or kqemu.
+Availabile options are listed via 'virsh capabilities' in the <domain> tags.
+
 =item  --accelerate
 
-When installing a QEMU guest, make use of the KVM or KQEMU kernel acceleration
-capabilities if available. Use of this option is recommended unless a guest
-OS is known to be incompatible with the accelerators. The KVM accelerator is
-preferred over KQEMU if both are available.
+Prefer KVM or KQEMU (in that order) if installing a QEMU guest. This behavior
+is now the default, and this option is deprecated. To install a plain QEMU
+guest, use '--virt-type qemu'
 
 =back
 
@@ -361,25 +440,22 @@ read and write caching.
 See the examples section for some uses. This option deprecates C<--file>,
 C<--file-size>, and C<--nonsparse>.
 
+=item --nodisks
+
+Request a virtual machine without any local disk storage, typically used for
+running 'Live CD' images or installing to network storage (iSCSI or NFS root).
+
 =item -f DISKFILE, --file=DISKFILE
 
-Path to the file, disk partition, or logical volume to use as the backing store
-for the guest's virtual disk. This option is deprecated in favor of C<--disk>.
+This option is deprecated in favor of C<--disk path=DISKFILE>.
 
 =item -s DISKSIZE, --file-size=DISKSIZE
 
-Size of the file to create for the guest virtual disk. This is deprecated in
-favor of C<--disk>.
+This option is deprecated in favor of C<--disk ...,size=DISKSIZE,...>
 
 =item --nonsparse
 
-Fully allocate the storage when creating. This is deprecated in favort of
-C<--disk>
-
-=item --nodisks
-
-Request a virtual machine without any local disk storage, typically used for
-running 'Live CD' images or installing to network storage (iSCSI or NFS root).
+This option is deprecated in favor of C<--disk ...,sparse=false,...>
 
 =back
 
@@ -387,21 +463,21 @@ running 'Live CD' images or installing to network storage (iSCSI or NFS root).
 
 =over 2
 
-=item -w NETWORK, --network=NETWORK
+=item -w NETWORK, --network=NETWORK,opt1=val1,opt2=val2
 
 Connect the guest to the host network. The value for C<NETWORK> can take
 one of 3 formats:
 
 =over 4
 
-=item bridge:BRIDGE
+=item bridge=BRIDGE
 
 Connect to a bridge device in the host called C<BRIDGE>. Use this option if
 the host has static networking config & the guest requires full outbound
 and inbound connectivity  to/from the LAN. Also use this if live migration
 will be used with this guest.
 
-=item network:NAME
+=item network=NAME
 
 Connect to a virtual network in the host called C<NAME>. Virtual networks
 can be listed, created, deleted using the C<virsh> command line tool. In
@@ -423,23 +499,38 @@ that will be used for connectivity. Failing that, the virtual network
 called C<default> will be used. This option can be specified multiple
 times to setup more than one NIC.
 
-=item -b BRIDGE, --bridge=BRIDGE
+Other available options are:
 
-Bridge device to connect the guest NIC to. This parameter is deprecated in
-favour of the C<--network> parameter.
+=over 4
 
-=item -m MAC, --mac=MAC
+=item B<model>
+
+Network device model as seen by the guest. Value can be any nic model supported
+by the hypervisor, e.g.: 'e1000', 'rtl8139', 'virtio', ...
+
+=item B<mac>
 
 Fixed MAC address for the guest; If this parameter is omitted, or the value
 C<RANDOM> is specified a suitable address will be randomly generated. For
 Xen virtual machines it is required that the first 3 pairs in the MAC address
 be the sequence '00:16:3e', while for QEMU or KVM virtual machines it must
-be '54:52:00'.
+be '52:54:00'.
+
+=back
 
 =item --nonetworks
 
 Request a virtual machine without any network interfaces.
 
+=item -b BRIDGE, --bridge=BRIDGE
+
+This parameter is deprecated in favour of
+C<--network bridge=bridge_name>.
+
+=item -m MAC, --mac=MAC
+
+This parameter is deprecated in favour of C<--network NETWORK,mac=12:34...>
+
 =back
 
 =head2 Graphics Configuration
@@ -464,12 +555,30 @@ Request a permanent, statically assigned port number for the guest VNC
 console. Use of this option is discouraged as other guests may automatically
 choose to run on this port causing a clash.
 
+=item --vnclisten=VNCLISTEN
+
+Address to listen on for VNC connections. Default is typically 127.0.0.1
+(localhost only), but some hypervisors allow changing this globally (for
+example, the qemu driver default can be changed in /etc/libvirt/qemu.conf).
+Use 0.0.0.0 to allow access from other machines.
+
+=item  -k KEYMAP, --keymap=KEYMAP
+
+Request that the virtual VNC console be configured to run with a non-English
+keyboard layout.
+
 =item  --sdl
 
 Setup a virtual console in the guest and display an SDL window in the
 host to render the output. If the SDL window is closed the guest may
 be unconditionally terminated.
 
+=item --video=VIDEO
+
+Specify what video device model will be attached to the guest. Valid values
+for VIDEO are hypervisor specific, but some options for recent kvm are
+cirrus, vga, or vmvga (vmware).
+
 =item  --nographics
 
 No graphical console will be allocated for the guest. Fully virtualized guests
@@ -485,11 +594,6 @@ is to launch a VNC client to display the graphical console, or to run the
 C<virsh> C<console> command to display the text console. Use of this parameter
 will disable this behaviour.
 
-=item  -k KEYMAP, --keymap=KEYMAP
-
-Request that the virtual VNC console be configured to run with a non-English
-keyboard layout.
-
 =back
 
 =head2 Miscellaneous Options
@@ -514,7 +618,7 @@ Without this option, virt-install will wait for the console to close (not
 neccessarily indicating the guest has shutdown), or in the case of
 --noautoconsole, simply kick off the install and exit. Any negative
 value will make virt-install wait indefinitely, a value of 0 triggers the
-same results as noautoconsole. If the time limit is succeeded, virt-install
+same results as noautoconsole. If the time limit is exceeded, virt-install
 simply exits, leaving the virtual machine in its current state.
 
 =item --force
@@ -524,28 +628,27 @@ say yes. For any other prompts, the application will exit.
 
 =item --prompt
 
-Specifically enable prompting. Default prompting is off (as of
-virtinst 0.400.0)
+Specifically enable prompting for required information. Default prompting
+is off (as of virtinst 0.400.0)
 
 =back
 
 =head1 EXAMPLES
 
-Install a KVM guest, creating a new storage file, virtual networking,
-booting from the host CDROM, using VNC server/viewer
+Install a KVM guest (assuming proper host support), creating a new
++storage file, virtual networking, booting from the host CDROM, using
++VNC server/viewer.
 
   # virt-install \
        --connect qemu:///system \
        --name demo \
        --ram 500 \
        --disk path=/var/lib/libvirt/images/demo.img,size=5 \
-       --network network:default \
-       --accelerate \
+       --network network=default,model=virtio \
        --vnc \
        --cdrom /dev/cdrom
 
-
-Install a Fedora 9 KVM guest, using LVM partition, virtual networking,
+Install a Fedora 9 plain QEMU guest, using LVM partition, virtual networking,
 booting from PXE, using VNC server/viewer
 
   # virt-install \
@@ -553,20 +656,21 @@ booting from PXE, using VNC server/viewer
        --name demo \
        --ram 500 \
        --disk path=/dev/HostVG/DemoVM \
-       --network network:default \
-       --accelerate \
+       --network network=default \
+       --virt-type qemu
        --vnc \
        --os-variant fedora9
 
-Install a QEMU guest, with a real partition, for a different architecture
-using SDL graphics, using a remote kernel and initrd pair:
+Install a guest with a real partition, with the default QEMU hypervisor for
+a different architecture using SDL graphics, using a remote kernel and initrd
+pair:
 
   # virt-install \
        --connect qemu:///system \
        --name demo \
        --ram 500 \
        --disk path=/dev/hdc \
-       --network bridge:eth1 \
+       --network bridge=eth1 \
        --arch ppc64 \
        --sdl \
        --location http://download.fedora.redhat.com/pub/fedora/linux/core/6/x86_64/os/
@@ -612,14 +716,7 @@ distribution for the complete list of credits.
 
 =head1 BUGS
 
-Report bugs to the mailing list
-C<http://www.redhat.com/mailman/listinfo/et-mgmt-tools>
-or directly to BugZilla C<http://bugzilla.redhat.com/bugzilla/> against the
-C<Fedora> product, and the C<python-virtinst> component.
-
-When filing a bug, please run the failing command with the --debug command
-line flag and post the output to the bug report, along with
-$HOME/.virtinst/virt-install.log
+Please see http://virt-manager.org/page/BugReporting
 
 =head1 COPYRIGHT
 
diff --git a/po/es.po b/po/es.po
new file mode 100644
index 0000000..eeffc55
--- /dev/null
+++ b/po/es.po
@@ -0,0 +1,2527 @@
+# Fedora Spanish Translation of virtinst.
+# This file is distributed under the same license as the virtinst package.
+#
+# Héctor Daniel Cabrera <h.daniel.cabrera at gmail.com>, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Fedora Spanish Translation of virtinst\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-07-28 20:34-0400\n"
+"PO-Revision-Date: 2009-01-20 13:06-0300\n"
+"Last-Translator: héctor daniel cabrera <h.daniel.cabrera at gmail.com>\n"
+"Language-Team: Fedora Spanish <fedora-trans-es at redhat.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: virtinst/CapabilitiesParser.py:172
+#, fuzzy, python-format
+msgid "No domains available for virt type '%(type)s', arch %(arch)s."
+msgstr "No existen dominios disponibles para este huésped."
+
+#: virtinst/CapabilitiesParser.py:412
+#, python-format
+msgid "for arch '%s'"
+msgstr "para arq '%s'"
+
+#: virtinst/CapabilitiesParser.py:416
+#, fuzzy, python-format
+msgid "virtualization type '%s'"
+msgstr "Tipo de virtualización '%s' no soportada"
+
+#: virtinst/CapabilitiesParser.py:418
+#, fuzzy
+msgid "any virtualization options"
+msgstr "Opciones del Tipo de Virtualización"
+
+#: virtinst/CapabilitiesParser.py:420
+#, python-format
+msgid "Host does not support %(virttype)s %(arch)s"
+msgstr ""
+
+#: virtinst/CapabilitiesParser.py:433
+#, python-format
+msgid ""
+"Host does not support domain type '%(domain)s' for virtualization type '%"
+"(virttype)s' arch '%(arch)s'"
+msgstr ""
+
+#: virtinst/cli.py:152
+msgid "Exiting at user request."
+msgstr "Saliendo a pedido del usuario."
+
+#: virtinst/cli.py:159
+msgid "Must be root to create Xen guests"
+msgstr "Debe ser root para poder crear un huésped Xen"
+
+#: virtinst/cli.py:297
+msgid "(use --prompt to run interactively)"
+msgstr ""
+
+#: virtinst/cli.py:317
+msgid " (Use --prompt or --force to override)"
+msgstr ""
+
+#: virtinst/cli.py:352
+msgid "Graphics Configuration"
+msgstr "Configuración de Gráficos"
+
+#: virtinst/cli.py:354
+msgid "Use VNC for graphics support"
+msgstr "Utilizar VNC para el soporte gráfico"
+
+#: virtinst/cli.py:356
+msgid "Port to use for VNC"
+msgstr "Puerto a ser usado para VNC"
+
+#: virtinst/cli.py:358
+msgid "Address to listen on for VNC connections."
+msgstr ""
+
+#: virtinst/cli.py:361
+#, fuzzy
+msgid "set up keymap for the VNC console"
+msgstr "define un mapa de teclado para una consola gráfica"
+
+#: virtinst/cli.py:363
+msgid "Use SDL for graphics support"
+msgstr "Utilizar SDL para soporte gráfico"
+
+#: virtinst/cli.py:365
+msgid "Don't set up a graphical console for the guest."
+msgstr "No configura una consola gráfica para el huésped."
+
+#: virtinst/cli.py:388
+#, fuzzy
+msgid "A disk path must be specified."
+msgstr "Se debe especificar, o bien grupo, o bien pool_name."
+
+#: virtinst/cli.py:390
+#, fuzzy
+msgid "What would you like to use as the disk (file path)?"
+msgstr "¿Qué (ruta de archivo) le gustaría utilizar para el disco clonado?"
+
+#: virtinst/cli.py:392
+#, python-format
+msgid ""
+"Please enter the path to the file you would like to use for storage. It will "
+"have size %sGB."
+msgstr ""
+
+#: virtinst/cli.py:401
+#, fuzzy
+msgid "A size must be specified for non-existent disks."
+msgstr "Un tamaño debe ser especificado para rutas no existentes: '%s'"
+
+#: virtinst/cli.py:403
+#, python-format
+msgid "How large would you like the disk (%s) to be (in gigabytes)?"
+msgstr ""
+
+#: virtinst/cli.py:424 virt-install:274
+#, python-format
+msgid "Error with storage parameters: %s"
+msgstr "Error en los parámetros de almacenamiento: %s"
+
+#: virtinst/cli.py:426
+#, fuzzy
+msgid "Do you really want to use this disk (yes or no)"
+msgstr "¿Realmente quiere utilizar este disco (si o no)?"
+
+#: virtinst/cli.py:430
+#, python-format
+msgid "This will overwrite the existing path '%s'!\n"
+msgstr "Esto sobrescribirá las rutas existentes '%s'!\n"
+
+#: virtinst/cli.py:437
+#, python-format
+msgid "Disk %s is already in use by another guest!\n"
+msgstr "¡El disco %s ya está siendo utilizado por otro huésped!\n"
+
+#: virtinst/cli.py:464
+#, fuzzy
+msgid "What is the name of your virtual machine?"
+msgstr "¿Cuál es el nombre de la máquina virtual clonada?"
+
+#: virtinst/cli.py:465
+msgid "A name is required for the virtual machine."
+msgstr "Se requiere un nombre para la máquina virtual."
+
+#: virtinst/cli.py:472
+msgid "How much RAM should be allocated (in megabytes)?"
+msgstr ""
+
+#: virtinst/cli.py:473
+msgid "Memory amount is required for the virtual machine."
+msgstr "Se requiere una cantidad de memoria para la máquina virtual."
+
+#: virtinst/cli.py:477
+#, python-format
+msgid "Installs currently require %d megs of RAM."
+msgstr "La instalación actualmente requiere %d megas de RAM."
+
+#: virtinst/cli.py:498
+#, fuzzy, python-format
+msgid ""
+"You have asked for more virtual CPUs (%d) than there are physical CPUs (%d) "
+"on the host. This will work, but performance will be poor. "
+msgstr ""
+"Ha pedido más CPUs virtuales (%d) que los CPUs físicos (%d) en el anfitrión. "
+"Esto podría funcionar, pero el desempeño será pobre. ¿Esta seguro? (si o no)"
+
+#: virtinst/cli.py:501
+msgid "Are you sure? (yes or no)"
+msgstr ""
+
+#: virtinst/cli.py:612
+#, fuzzy, python-format
+msgid "Unknown network option '%s'"
+msgstr "Tipo de red desconocido %s"
+
+#: virtinst/cli.py:630
+msgid "Cannot mix both --bridge and --network arguments"
+msgstr "No se pueden mezclar los argumentos de --bridge y de --network"
+
+#: virtinst/cli.py:645
+#, fuzzy
+msgid "Cannot pass more mac addresses than networks."
+msgstr "No se pueden mezclar los argumentos de --bridge y de --network"
+
+#: virtinst/cli.py:672
+msgid "Can't specify more than one of VNC, SDL, or --nographics"
+msgstr "No se puede especificar más de un VNC, SDL, o --nographics"
+
+#: virtinst/cli.py:700
+#, python-format
+msgid "Didn't match keymap '%s' in keytable!"
+msgstr ""
+
+#: virtinst/cli.py:731 virtinst/cli.py:736
+#, python-format
+msgid "%s option requires an argument"
+msgstr "La opción %s requiere un argumento"
+
+#: virtinst/CloneManager.py:109
+#, fuzzy
+msgid "Connection must be a 'virConnect' instance."
+msgstr "'conn' debe ser una instancia de virConnect."
+
+#: virtinst/CloneManager.py:162
+#, fuzzy
+msgid "Original xml must be a string."
+msgstr "La variante del sistema operativo debe ser una cadena."
+
+#: virtinst/CloneManager.py:177
+#, python-format
+msgid "Invalid name for new guest: %s"
+msgstr "Nombre inválido para el nuevo huéped: %s"
+
+#: virtinst/CloneManager.py:182
+#, fuzzy, python-format
+msgid "Domain name '%s' already in use."
+msgstr "¡El nombre del dominio %s ya existe!"
+
+#: virtinst/CloneManager.py:195
+#, python-format
+msgid "Invalid uuid for new guest: %s"
+msgstr "UUID inválido para el nuevo huéped: %s"
+
+#: virtinst/CloneManager.py:198
+#, fuzzy, python-format
+msgid "UUID '%s' is in use by another guest."
+msgstr "¡El disco %s ya está siendo utilizado por otro huésped!\n"
+
+#: virtinst/CloneManager.py:226
+#, fuzzy, python-format
+msgid "Could not use path '%s' for cloning: %s"
+msgstr "No se puede iniciar grupo de almacenamiento: %s"
+
+#: virtinst/CloneManager.py:356
+msgid "Cloning policy must be a list of rules."
+msgstr ""
+
+#: virtinst/CloneManager.py:373
+#, fuzzy
+msgid "Original guest name or xml is required."
+msgstr "Se requiere el nombre del anfitrión"
+
+#: virtinst/CloneManager.py:391
+msgid "Domain with devices to clone must be paused or shutoff."
+msgstr ""
+
+#: virtinst/CloneManager.py:437
+#, python-format
+msgid ""
+"More disks to clone that new paths specified. (%(passed)d specified, %(need)"
+"d needed"
+msgstr ""
+
+#: virtinst/CloneManager.py:557
+#, fuzzy, python-format
+msgid "Disk '%s' does not exist."
+msgstr "El disco del sistema %s no existe"
+
+#: virtinst/CloneManager.py:568
+#, fuzzy, python-format
+msgid "Could not determine original disk information: %s"
+msgstr "No se puede definir grupo de almacenamiento: %s"
+
+#: virtinst/CloneManager.py:613
+#, fuzzy, python-format
+msgid "Domain '%s' was not found."
+msgstr "No se encuentra el dominio %s"
+
+#: virtinst/DistroInstaller.py:57
+msgid "Invalid NFS format: No path specified."
+msgstr "Formato NFS inválido: No se ha especificado ninguna ruta."
+
+#: virtinst/DistroInstaller.py:101
+#, fuzzy, python-format
+msgid "Invalid 'location' type %s."
+msgstr "Se ha indicado una dirección de archivo inválida:"
+
+#: virtinst/DistroInstaller.py:107
+#, fuzzy
+msgid "'conn' must be specified if 'location' is a storage tuple."
+msgstr "debe especificarse 'conn' con 'pool_name'"
+
+#: virtinst/DistroInstaller.py:145
+#, fuzzy, python-format
+msgid "Checking installer location failed: Could not find media '%s'."
+msgstr "Verificando falla en el localizador de instalación: %s"
+
+#: virtinst/DistroInstaller.py:148
+#, fuzzy
+msgid ""
+"Install media location must be an NFS, HTTP or FTP network install source, "
+"or an existing file/device"
+msgstr ""
+"La fuente del archivo de instalación debe encontrarse en una red NFS, HTTP o "
+"FTP, o en un archivo/dispositvo local "
+
+#: virtinst/DistroInstaller.py:155
+#, fuzzy
+msgid "Privilege is required for NFS installations"
+msgstr "Se requiere un nombre para la máquina virtual."
+
+#: virtinst/Guest.py:108
+msgid "Unable to connect to hypervisor, aborting installation!"
+msgstr "¡No se ha podido conectar con el hypervisor, abortando la instalación!"
+
+#: virtinst/Guest.py:126
+msgid "Guest"
+msgstr ""
+
+#: virtinst/Guest.py:133
+#, fuzzy, python-format
+msgid "Guest name '%s' is already in use."
+msgstr "El nombre '%s' ya está siendo usado por otro grupo."
+
+#: virtinst/Guest.py:141
+msgid "Memory value must be an integer greater than 0"
+msgstr "El valor de la memoria debe ser un entero mayor que 0"
+
+#: virtinst/Guest.py:153
+msgid "Max Memory value must be an integer greater than 0"
+msgstr "El valor de la memoria máxima debe ser un entero mayor que 0"
+
+#: virtinst/Guest.py:172
+msgid "Number of vcpus must be a postive integer."
+msgstr "El número de cpus virtuales debe ser un entero positivo."
+
+#: virtinst/Guest.py:174
+#, python-format
+msgid "Number of vcpus must be no greater than %d for this vm type."
+msgstr ""
+"El número de cpus virtuales no debe mayor que %d para este tipo de máquina "
+"virtual."
+
+#: virtinst/Guest.py:184
+msgid "cpuset must be string"
+msgstr "cpuset debe ser una cadena"
+
+#: virtinst/Guest.py:186
+msgid "cpuset can only contain numeric, ',', or '-' characters"
+msgstr ""
+"cpuset debe contener solo caracteres númericos, o los signos \",\", y \"-\""
+
+#: virtinst/Guest.py:194
+msgid "cpuset contains invalid format."
+msgstr "cpuset contiene un formato inválido."
+
+#: virtinst/Guest.py:196 virtinst/Guest.py:202
+msgid "cpuset's pCPU numbers must be less than pCPUs."
+msgstr "Los números cpuset de las pCPU deben ser menores que las pCPUs."
+
+#: virtinst/Guest.py:222
+msgid "OS type must be a string."
+msgstr "El tipo de sistema operativo debe ser una cadena."
+
+#: virtinst/Guest.py:234
+#, python-format
+msgid "OS type '%s' does not exist in our dictionary"
+msgstr "El tipo de sistema operativo '%s' no existe en nuestro diccionario"
+
+#: virtinst/Guest.py:242
+msgid "OS variant must be a string."
+msgstr "La variante del sistema operativo debe ser una cadena."
+
+#: virtinst/Guest.py:248
+#, python-format
+msgid ""
+"OS variant '%(var)s; does not exist in our dictionary for OS type '%(ty)s'"
+msgstr ""
+"La variante '%(var)s'; no existe en nuestro diccionario para el sistema "
+"operativo '%(ty)s'"
+
+#: virtinst/Guest.py:260
+#, python-format
+msgid "Unknown OS variant '%s'"
+msgstr "Variante de sistema operativo desconocida '%s'"
+
+#: virtinst/Guest.py:301
+msgid "Must specify whether graphics are enabled"
+msgstr "Debe especificarse si el modo gráfico está habilitado"
+
+#: virtinst/Guest.py:324
+msgid "Graphics enabled must be True or False"
+msgstr "Modo gráfico habilitado deber ser Verdadero o Falso"
+
+#: virtinst/Guest.py:383
+msgid "You must specify a valid ISO or CD-ROM location for the installation"
+msgstr ""
+"Debe especificar una imagen ISO o una dirección de CD-ROM válida para la "
+"instalación"
+
+#: virtinst/Guest.py:386
+msgid "The specified media path does not exist."
+msgstr "No existe la ruta al contenido especificado."
+
+#: virtinst/Guest.py:415
+#, fuzzy
+msgid "Must pass a VirtualDevice instance."
+msgstr "'conn' debe ser una instancia de virConnect."
+
+#: virtinst/Guest.py:660
+msgid "Unable to start domain for guest, aborting installation!"
+msgstr "¡Imposible iniciar dominio para el huéped, abortando la instalación!"
+
+#: virtinst/Guest.py:716
+#, python-format
+msgid "Could not remove old vm '%s': %s"
+msgstr "No se puede eliminar la antigua máquina virtual '%s': %s"
+
+#: virtinst/Guest.py:718
+#, python-format
+msgid "Domain named %s already exists!"
+msgstr "¡El nombre del dominio %s ya existe!"
+
+#: virtinst/Guest.py:725
+msgid "Creating domain..."
+msgstr "Creando dominio..."
+
+#: virtinst/Guest.py:728
+msgid "Unable to create domain for the guest, aborting installation!"
+msgstr ""
+"¡No se ha podido crear el dominio para el huésped, abortando la instalación!"
+
+#: virtinst/Guest.py:736
+msgid ""
+"It appears that your installation has crashed.  You should be able to find "
+"more information in the logs"
+msgstr ""
+"Aparentemente su instalación ha fallado. Debería poder encontrar más "
+"información en los logs"
+
+#: virtinst/Guest.py:770
+msgid ""
+"Domain has not existed.  You should be able to find more information in the "
+"logs"
+msgstr ""
+"El dominio no existe. Debería poder encontrar más información en los logs"
+
+#: virtinst/Guest.py:772
+msgid ""
+"Domain has not run yet.  You should be able to find more information in the "
+"logs"
+msgstr ""
+"El dominio no está ejecutándose aún. Debería poder encontrar más información "
+"en los logs"
+
+#: virtinst/Guest.py:789
+msgid "Domain has already been started!"
+msgstr "¡El dominio ya se está ejecutando!"
+
+#: virtinst/Guest.py:809
+msgid "The UUID you entered is already in use by another guest!"
+msgstr "¡El UUID que ha ingresado está siendo utilizado por otro huésped!"
+
+#: virtinst/Guest.py:812
+msgid "Name and memory must be specified for all guests!"
+msgstr ""
+"¡El nombre y la memoria debe ser especificado para todos los huéspedes!"
+
+#: virtinst/ImageFetcher.py:86
+#, python-format
+msgid "Retrieving file %s..."
+msgstr "Obteniendo archivo %s..."
+
+#: virtinst/ImageFetcher.py:88
+#, python-format
+msgid "Couldn't acquire file %s: %s"
+msgstr "No se ha podido adquirir el archivo %s: %s"
+
+#: virtinst/ImageFetcher.py:110
+#, fuzzy, python-format
+msgid "Opening URL %s failed."
+msgstr "Fallo al abril la URL %s: %s"
+
+#: virtinst/ImageFetcher.py:187
+#, fuzzy, python-format
+msgid "Mounting location '%s' failed"
+msgstr "Fallo al intentar montar la dirección %s"
+
+#: virtinst/ImageManager.py:47
+#, fuzzy
+msgid "'capabilities' must be a Capabilities instance."
+msgstr "'grupo' debe ser una instancia de virStoragePool."
+
+#: virtinst/ImageManager.py:51
+#, fuzzy
+msgid "'conn' or 'capabilities' must be specified."
+msgstr "Se debe especificar, o bien grupo, o bien pool_name."
+
+#: virtinst/ImageManager.py:58
+msgid "Could not find suitable boot descriptor for this host"
+msgstr ""
+"No se ha podido encontrar un descriptor de inicialización acorde a este "
+"anfitrión"
+
+#: virtinst/ImageManager.py:63
+msgid "boot_index out of range."
+msgstr ""
+
+#: virtinst/ImageManager.py:70
+#, fuzzy, python-format
+msgid "Unsupported virtualization type: %s %s"
+msgstr "Tipo de virtualización '%s' no soportada"
+
+#: virtinst/ImageManager.py:145
+#, python-format
+msgid "System disk %s does not exist"
+msgstr "El disco del sistema %s no existe"
+
+#: virtinst/ImageParser.py:83
+msgid "Expected exactly one 'domain' element"
+msgstr "Se esperaba solo un elemento de \"dominio\""
+
+#: virtinst/ImageParser.py:88
+#, python-format
+msgid "Disk entry for '%s' not found"
+msgstr "No se ha podido encontrar la entrada de disco para '%s'"
+
+#: virtinst/ImageParser.py:115
+#, python-format
+msgid "Memory must be an integer, but is '%s'"
+msgstr "La memoria debe ser un entero, pero es '%s'"
+
+#: virtinst/ImageParser.py:232
+#, python-format
+msgid "The format for disk %s must be one of %s"
+msgstr "El formato para disco %s debe ser uno de %s"
+
+#: virtinst/ImageParser.py:263
+#, python-format
+msgid "Checking disk signature for %s"
+msgstr ""
+
+#: virtinst/ImageParser.py:276
+#, python-format
+msgid "Disk signature for %s does not match Expected: %s  Received: %s"
+msgstr ""
+
+#: virtinst/ImageParser.py:279
+#, fuzzy, python-format
+msgid "Disk signature for %s does not match"
+msgstr "No se ha podido encontrar la entrada de disco para '%s'"
+
+#: virtinst/ImageParser.py:318
+msgid "Root element is not 'image'"
+msgstr "El elemento root no es \"imagen\" "
+
+#: virtinst/ImportInstaller.py:37
+msgid "A disk device must be specified."
+msgstr ""
+
+#: virtinst/Installer.py:156
+msgid "Guest.cdrom must be a boolean type"
+msgstr "Guest.cdrom debe ser de tipo booleano"
+
+#: virtinst/Installer.py:173 virtinst/Installer.py:178
+#: virtinst/Installer.py:182
+msgid "Must pass both a kernel and initrd"
+msgstr "Debe pasar tanto un kernel como un initrd"
+
+#: virtinst/Installer.py:185
+msgid "Kernel and initrd must be specified by a list, dict, or tuple."
+msgstr ""
+"El kernel y el initrd deben ser especificados por una lista, un diccionario "
+"o una tupla."
+
+#: virtinst/Installer.py:340
+#, fuzzy
+msgid "A connection must be specified."
+msgstr "Debe especificarse un lugar desde donde instalar"
+
+#: virtinst/Installer.py:358
+#, fuzzy, python-format
+msgid "No 'Guest' class for virtualization type '%s'"
+msgstr "Tipo de virtualización '%s' no soportada"
+
+#: virtinst/LiveCDInstaller.py:66
+msgid "CDROM media must be specified for the live CD installer."
+msgstr ""
+"El contenido del CDROM debe ser especificado para el instalador de live CD"
+
+#: virtinst/NodeDeviceParser.py:118
+msgid "System"
+msgstr ""
+
+#: virtinst/NodeDeviceParser.py:151
+#, python-format
+msgid "Interface %s"
+msgstr ""
+
+#: virtinst/NodeDeviceParser.py:378 virtinst/NodeDeviceParser.py:406
+#: virtinst/util.py:501 virtinst/VirtualDevice.py:86
+msgid "'conn' must be a virConnect instance."
+msgstr "'conn' debe ser una instancia de virConnect."
+
+#: virtinst/NodeDeviceParser.py:426
+#, fuzzy
+msgid "Connection does not support host device enumeration."
+msgstr "La conexión no soporta gerenciamiento de almacenamiento."
+
+#: virtinst/NodeDeviceParser.py:502
+#, fuzzy, python-format
+msgid "Unknown host device capability '%s'."
+msgstr "Tipo de dispositivo desconocido '%s'"
+
+#: virtinst/osdict.py:129
+#, python-format
+msgid "Invalid dictionary entry for device '%s %s'"
+msgstr "Entrada de diccionario inválida para el dispositivo '%s %s'"
+
+#: virtinst/OSDistro.py:102
+#, python-format
+msgid "Could not find an installable distribution at '%s'"
+msgstr "No se ha podido encontrar una distribución instalable en '%s'"
+
+#: virtinst/OSDistro.py:112
+msgid "Invalid install location: "
+msgstr "Lugar de instalación inválido:"
+
+#: virtinst/OSDistro.py:237
+#, fuzzy, python-format
+msgid "Couldn't find %(type)s kernel for %(distro)s tree."
+msgstr ""
+"No se puede encontrar una ruta de kernel para el tipo '%s' de virtualización"
+
+#: virtinst/OSDistro.py:252
+#, fuzzy, python-format
+msgid "Could not find boot.iso in %s tree."
+msgstr "No se puede encontrar una ruta de inicialización iso para este árbol. "
+
+#: virtinst/OSDistro.py:413
+#, python-format
+msgid "Could not find a kernel path for virt type '%s'"
+msgstr ""
+"No se puede encontrar una ruta de kernel para el tipo '%s' de virtualización"
+
+#: virtinst/OSDistro.py:422
+msgid "Could not find a boot iso path for this tree."
+msgstr "No se puede encontrar una ruta de inicialización iso para este árbol. "
+
+#: virtinst/OSDistro.py:676
+msgid "Unable to determine kernel RPM path"
+msgstr "No se puede determinar la ruta del kernel RPM"
+
+#: virtinst/OSDistro.py:678
+msgid "Unable to determine install-initrd RPM path"
+msgstr "No se puede determinar la ruta del RPM install-initrd"
+
+#: virtinst/OSDistro.py:689
+msgid "Building initrd"
+msgstr "Generando initrd"
+
+#: virtinst/OSDistro.py:1051
+#, python-format
+msgid "Solaris miniroot not found at %s"
+msgstr ""
+
+#: virtinst/OSDistro.py:1089
+#, python-format
+msgid "OpenSolaris PV kernel not found at %s"
+msgstr ""
+
+#: virtinst/Storage.py:81
+#, python-format
+msgid "Unknown storage object type: %s"
+msgstr "Tipo de objeto de almacenamiento desconocido: %s"
+
+#: virtinst/Storage.py:104
+msgid "'conn' must be a libvirt connection object."
+msgstr "'conn' debe ser un objeto de conexión libvirt."
+
+#: virtinst/Storage.py:106
+msgid "Passed connection is not libvirt storage capable"
+msgstr "La conexión pasada no es capaz de almacenamiento libvirt"
+
+#: virtinst/Storage.py:116
+msgid "Storage object"
+msgstr ""
+
+#: virtinst/Storage.py:121
+#, fuzzy
+msgid "Name for the storage object."
+msgstr "Nombre para el nuevo huésped"
+
+#: virtinst/Storage.py:128
+msgid "Permissions must be passed as a dict object"
+msgstr "Deben ser pasados permisos como objeto de diccionario"
+
+#: virtinst/Storage.py:131
+msgid "Permissions must contain 'mode', 'owner', 'group' and 'label' keys."
+msgstr ""
+"Los permisos deben contener las llaves 'mode', 'owner', 'group' y 'label'."
+
+#: virtinst/Storage.py:138
+#, python-format
+msgid "'%s' is not an absolute path."
+msgstr "'%s' no es una ruta absoluta."
+
+#: virtinst/Storage.py:199
+msgid "Filesystem Directory"
+msgstr "Directorio del Sistema de Archivos"
+
+#: virtinst/Storage.py:200
+msgid "Pre-Formatted Block Device"
+msgstr "Dispositivo de Bloque Preformateado"
+
+#: virtinst/Storage.py:201
+msgid "Network Exported Directory"
+msgstr "Directorio de Red Exportado"
+
+#: virtinst/Storage.py:202
+msgid "LVM Volume Group"
+msgstr "Grupo de Volumen LVM"
+
+#: virtinst/Storage.py:203
+msgid "Physical Disk Device"
+msgstr "Dispositivo de Disco Físico"
+
+#: virtinst/Storage.py:204
+msgid "iSCSI Target"
+msgstr "Destino iSCSI"
+
+#: virtinst/Storage.py:214 virtinst/Storage.py:251
+#, python-format
+msgid "Unknown storage pool type: %s"
+msgstr "Tipo de grupo de almacenamiento desconocido: %s"
+
+#: virtinst/Storage.py:273
+msgid "Storage device type the pool will represent."
+msgstr ""
+
+#: virtinst/Storage.py:292
+msgid "Host name must be a string"
+msgstr "El nombre del anfitrión debe ser una cadena"
+
+#: virtinst/Storage.py:311
+#, python-format
+msgid "Name '%s' already in use by another pool."
+msgstr "El nombre '%s' ya está siendo usado por otro grupo."
+
+#: virtinst/Storage.py:349
+#, python-format
+msgid "Could not define storage pool: %s"
+msgstr "No se puede definir grupo de almacenamiento: %s"
+
+#: virtinst/Storage.py:359
+#, python-format
+msgid "Could not build storage pool: %s"
+msgstr "No se puede generar un grupo de almacenamiento: %s"
+
+#: virtinst/Storage.py:368
+#, python-format
+msgid "Could not start storage pool: %s"
+msgstr "No se puede iniciar grupo de almacenamiento: %s"
+
+#: virtinst/Storage.py:395
+msgid "Directory to use for the storage pool."
+msgstr ""
+
+#: virtinst/Storage.py:431
+msgid "The existing device to mount for the pool."
+msgstr ""
+
+#: virtinst/Storage.py:434 virtinst/Storage.py:492
+msgid "Location to mount the source device."
+msgstr ""
+
+#: virtinst/Storage.py:452
+#, python-format
+msgid "Unknown Filesystem format: %s"
+msgstr "Formato del sistema de archivos desconocido: %s"
+
+#: virtinst/Storage.py:455
+msgid "Filesystem type of the source device."
+msgstr ""
+
+#: virtinst/Storage.py:468
+msgid "Device path is required"
+msgstr "Se requiere una ruta de dispositivo"
+
+#: virtinst/Storage.py:487 virtinst/Storage.py:694
+msgid "Path on the host that is being shared."
+msgstr ""
+
+#: virtinst/Storage.py:489 virtinst/Storage.py:666
+#, fuzzy
+msgid "Name of the host sharing the storage."
+msgstr "Nombre de la instancia del huésped"
+
+#: virtinst/Storage.py:510
+#, python-format
+msgid "Unknown Network Filesystem format: %s"
+msgstr "Formato de Sistema de Archivo de Red desconocido: %s"
+
+#: virtinst/Storage.py:513
+msgid "Type of network filesystem."
+msgstr ""
+
+#: virtinst/Storage.py:525 virtinst/Storage.py:705
+msgid "Hostname is required"
+msgstr "Se requiere el nombre del anfitrión"
+
+#: virtinst/Storage.py:527 virtinst/Storage.py:643 virtinst/Storage.py:707
+msgid "Host path is required"
+msgstr "Se requiere una ruta de anfitrión"
+
+#: virtinst/Storage.py:545
+msgid "Location of the existing LVM volume group."
+msgstr ""
+
+#: virtinst/Storage.py:570
+msgid "Optional device(s) to build new LVM volume on."
+msgstr ""
+
+#: virtinst/Storage.py:593
+#, fuzzy
+msgid "Must explicitly specify source path if building' pool"
+msgstr ""
+"Se debe especificar explícitamente un formato de disco si se formatea el "
+"dispositivo de disco."
+
+#: virtinst/Storage.py:609
+msgid "Path to the existing disk device."
+msgstr ""
+
+#: virtinst/Storage.py:612 virtinst/Storage.py:669
+msgid "Root location for identifying new storage volumes."
+msgstr ""
+
+#: virtinst/Storage.py:629
+#, python-format
+msgid "Unknown Disk format: %s"
+msgstr "Formato de disco desconocido: %s"
+
+#: virtinst/Storage.py:632
+msgid "Format of the source device's partition table."
+msgstr ""
+
+#: virtinst/Storage.py:655
+msgid "Must explicitly specify disk format if formatting disk device."
+msgstr ""
+"Se debe especificar explícitamente un formato de disco si se formatea el "
+"dispositivo de disco."
+
+#: virtinst/Storage.py:673
+msgid "iSCSI volume creation is not implemented."
+msgstr ""
+
+#: virtinst/Storage.py:734
+msgid "One of pool or pool_name must be specified."
+msgstr "Se debe especificar, o bien grupo, o bien pool_name."
+
+#: virtinst/Storage.py:737 virtinst/Storage.py:806
+msgid "'conn' must be specified with 'pool_name'"
+msgstr "debe especificarse 'conn' con 'pool_name'"
+
+#: virtinst/Storage.py:802
+msgid "Must specify pool_object or pool_name"
+msgstr "Debe especificarse pool_object, o pool_name"
+
+#: virtinst/Storage.py:808
+msgid "Connection does not support storage management."
+msgstr "La conexión no soporta gerenciamiento de almacenamiento."
+
+#: virtinst/Storage.py:813
+#, python-format
+msgid "Couldn't find storage pool '%s': %s"
+msgstr "No se ha podido encontrar grupo de almacenamiento '%s': %s"
+
+#: virtinst/Storage.py:817
+msgid "pool_object must be a virStoragePool"
+msgstr "pool_object debe ser un virStoragePool"
+
+#: virtinst/Storage.py:831
+msgid "Capacity must be a positive number"
+msgstr "La capacidad debe ser un número positivo"
+
+#: virtinst/Storage.py:852
+msgid "Allocation must be a non-negative number"
+msgstr "El alojamiento debe ser un número no negativo"
+
+#: virtinst/Storage.py:872
+msgid "'pool' must be a virStoragePool instance."
+msgstr "'grupo' debe ser una instancia de virStoragePool."
+
+#: virtinst/Storage.py:874
+#, python-format
+msgid "pool '%s' must be active."
+msgstr "grupo '%s' debe estar activa."
+
+#: virtinst/Storage.py:886 virtinst/Storage.py:1120
+#, fuzzy
+msgid "input_vol must be a virStorageVol"
+msgstr "pool_object debe ser un virStoragePool"
+
+#: virtinst/Storage.py:888
+msgid ""
+"Creating storage from an existing volume is not supported by this libvirt "
+"version."
+msgstr ""
+
+#: virtinst/Storage.py:892
+msgid "virStorageVolume pointer to clone/use as input."
+msgstr ""
+
+#: virtinst/Storage.py:900
+#, python-format
+msgid "'%s' is not a valid format."
+msgstr "'%s' no es un formato válido."
+
+#: virtinst/Storage.py:910
+#, python-format
+msgid "Name '%s' already in use by another volume."
+msgstr "El nombre '%s' ya está siendo utilizado por otro volumen."
+
+#: virtinst/Storage.py:963
+#, python-format
+msgid "Allocating '%s'"
+msgstr ""
+
+#: virtinst/Storage.py:1023
+#, python-format
+msgid ""
+"There is not enough free space on the storage pool to create the volume. (%d "
+"M requested allocation > %d M available)"
+msgstr ""
+"No hay suficiente espacio libre en el grupo de almacenamiento para crear el "
+"volumen. (%d M alojamiento requerido > %d M disponible)"
+
+#: virtinst/Storage.py:1029
+#, python-format
+msgid ""
+"The requested volume capacity will exceed the available pool space when the "
+"volume is fully allocated. (%d M requested capacity > %d M available)"
+msgstr ""
+"La capacidad del volumen solicitada superará el espacio disponible del grupo "
+"de almacenamiento cuando el volumen esté completamente alojado. (%d M "
+"capacidad requerida > %d M disponible)"
+
+#: virtinst/_util.py:128
+msgid "UUID must be a string."
+msgstr "UUID debe ser una cadena."
+
+#: virtinst/_util.py:136
+msgid ""
+"UUID must be a 32-digit hexadecimal number. It may take the form XXXXXXXX-"
+"XXXX-XXXX-XXXX-XXXXXXXXXXXX or may omit hyphens altogether."
+msgstr ""
+"UUID debe ser un número hexadecimal de 32 dígitos. Puede tener la forma de "
+"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX o pueden omitirse los guiones."
+
+#: virtinst/_util.py:147
+#, fuzzy, python-format
+msgid "%s name must be a string between 0 and 50 characters"
+msgstr ""
+"El nombre del sistema debe ser una cadena mayor que 0 y que posea no más de "
+"50 carateres"
+
+#: virtinst/_util.py:150
+#, fuzzy, python-format
+msgid "%s name can not be only numeric characters"
+msgstr "El nombre del sistema no debe contener solo caracteres numéricos"
+
+#: virtinst/_util.py:153
+#, fuzzy, python-format
+msgid "%s name can only contain alphanumeric, '_', '.', or '-' characters"
+msgstr ""
+"El nombre del sistema solo puede contener: caracteres alfanuméricos, y los "
+"signos \"_\", \".\", \":\", \"+\", y \"-\" "
+
+#: virtinst/_util.py:276
+#, fuzzy
+msgid "Name generation range exceeded."
+msgstr "Se ha excedido el rango de la ruta al volumen de destino por defecto."
+
+#: virtinst/util.py:69
+#, python-format
+msgid "Invalid line length while parsing %s."
+msgstr "Tamaño de línea inválido en el proceso de análisis %s."
+
+#: virtinst/util.py:70
+#, python-format
+msgid "Defaulting bridge to xenbr%d"
+msgstr "Estableciendo un puente por defecto hacia xenbr%d"
+
+#: virtinst/util.py:538 virtconv/parsers/ovf.py:160
+#, fuzzy
+msgid "'path' or 'func' is required."
+msgstr "Se requiere una ruta de anfitrión"
+
+#: virtinst/VirtualAudio.py:40
+#, python-format
+msgid "'model' must be a string,  was '%s'."
+msgstr "'modelo' debe ser una cadena, era '%s'."
+
+#: virtinst/VirtualAudio.py:43
+#, python-format
+msgid "Unsupported sound model '%s'"
+msgstr "Modelo de sonido no soportado '%s'"
+
+#: virtinst/VirtualCharDevice.py:64
+msgid "Psuedo TTY"
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:66
+#, fuzzy
+msgid "Physical host character device"
+msgstr "Dispositivo de Disco Físico"
+
+#: virtinst/VirtualCharDevice.py:68
+msgid "Standard input/output"
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:70
+msgid "Named pipe"
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:72
+msgid "Output to a file"
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:74
+msgid "Virtual console"
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:76
+msgid "Null device"
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:78
+msgid "TCP net console"
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:80
+msgid "UDP net console"
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:82
+msgid "Unix socket"
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:94
+msgid "Client mode."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:96
+msgid "Server mode."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:139
+#, fuzzy, python-format
+msgid "Unknown character device type '%s'."
+msgstr "Tipo de dispositivo desconocido '%s'"
+
+#: virtinst/VirtualCharDevice.py:147 virtinst/VirtualCharDevice.py:157
+#, fuzzy, python-format
+msgid "Unknown character device type '%s'"
+msgstr "Tipo de dispositivo desconocido '%s'"
+
+#: virtinst/VirtualCharDevice.py:173
+msgid "Method used to expose character device in the host."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:186
+#, fuzzy, python-format
+msgid "Unknown character mode '%s'."
+msgstr "Tipo de dispositivo desconocido '%s'"
+
+#: virtinst/VirtualCharDevice.py:213
+#, fuzzy, python-format
+msgid "Unknown protocol '%s'."
+msgstr "Opción --disk desconocida '%s'."
+
+#: virtinst/VirtualCharDevice.py:232
+#, python-format
+msgid "A source path is required for character device type '%s'"
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:282
+msgid "Host character device to attach to guest."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:288
+msgid "Named pipe to use for input and output."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:294
+msgid "File path to record device output."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:302 virtinst/VirtualCharDevice.py:312
+msgid "Target connect/listen mode."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:305
+msgid "Unix socket path."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:315
+msgid "Address to connect/listen to."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:318
+msgid "Port on target host to connect/listen to."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:321
+msgid "Format used when sending data."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:325
+#, fuzzy
+msgid "A host and port must be specified."
+msgstr "Se debe especificar, o bien grupo, o bien pool_name."
+
+#: virtinst/VirtualCharDevice.py:337
+msgid "Host address to bind to."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:340
+msgid "Host port to bind to."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:343
+msgid "Host address to send output to."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:346
+msgid "Host port to send output to."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:351
+#, fuzzy
+msgid "A connection port must be specified."
+msgstr "Debe especificarse un lugar desde donde instalar"
+
+#: virtinst/VirtualDevice.py:63
+msgid "Virtual device type must be set in subclass."
+msgstr ""
+
+#: virtinst/VirtualDevice.py:66
+#, fuzzy, python-format
+msgid "Unknown virtual device type '%s'."
+msgstr "Tipo de dispositivo desconocido '%s'"
+
+#: virtinst/VirtualDevice.py:71
+msgid "'conn' must be a virConnect instance"
+msgstr "'conn' debe ser una instancia de virConnect"
+
+#: virtinst/VirtualDevice.py:104
+#, python-format
+msgid "'%s' must be True or False"
+msgstr "'%s' debe ser Verdadero o Falso"
+
+#: virtinst/VirtualDevice.py:108
+#, python-format
+msgid "'%s' must be a string, not '%s'."
+msgstr "'%s' debe ser una cadena, no '%s'."
+
+#: virtinst/VirtualDisk.py:262
+#, fuzzy, python-format
+msgid "Error validating clone path: %s"
+msgstr "Error al crear disco cdrom: %s"
+
+#: virtinst/VirtualDisk.py:271
+msgid "'size' must be a number greater than 0."
+msgstr "'size' debe ser un número mayor que 0."
+
+#: virtinst/VirtualDisk.py:281
+#, python-format
+msgid "Unknown storage type '%s'"
+msgstr "Tipo de almacenamiento desconocido '%s'"
+
+#: virtinst/VirtualDisk.py:290
+#, python-format
+msgid "Unknown device type '%s'"
+msgstr "Tipo de dispositivo desconocido '%s'"
+
+#: virtinst/VirtualDisk.py:324
+msgid "vol_object must be a virStorageVol instance"
+msgstr "vol_object debe ser una instancia de virStorageVol"
+
+#: virtinst/VirtualDisk.py:332
+msgid "vol_install must be a StorageVolume  instance."
+msgstr "vol_install debe ser una instancia de StorageVolume."
+
+#: virtinst/VirtualDisk.py:358
+#, fuzzy, python-format
+msgid "Unknown cache mode '%s'"
+msgstr "Tipo de dispositivo desconocido '%s'"
+
+#: virtinst/VirtualDisk.py:373
+#, fuzzy, python-format
+msgid "SELinux label '%s' is not valid."
+msgstr "'%s' no es un formato válido."
+
+#: virtinst/VirtualDisk.py:433
+msgid "Unknown storage volume type."
+msgstr "Tipo de volumen de almacenamiento desconocido."
+
+#: virtinst/VirtualDisk.py:449
+#, python-format
+msgid "Passed type '%s' does not match detected storage type '%s'"
+msgstr ""
+"El tipo pasado '%s' no se corresponde con el tipo de almacenamiento "
+"detectado '%s'"
+
+#: virtinst/VirtualDisk.py:504
+msgid "volName must be a tuple of the form ('poolname', 'volname')"
+msgstr "volName debe ser un tupla de la forma ('poolname', 'volname')"
+
+#: virtinst/VirtualDisk.py:507
+msgid "'volName' requires a passed connection."
+msgstr "'volName' requiere una conexión pasada."
+
+#: virtinst/VirtualDisk.py:509
+msgid "Connection does not support storage lookup."
+msgstr "La conexión no soporta búsqueda de almacenamiento."
+
+#: virtinst/VirtualDisk.py:515
+#, python-format
+msgid "Couldn't lookup volume object: %s"
+msgstr "No se ha posido buscar el objeto de volumen: %s"
+
+#: virtinst/VirtualDisk.py:540
+#, python-format
+msgid "Device type '%s' requires a path"
+msgstr "El tipo de dispositivo '%s' requiere una ruta"
+
+#: virtinst/VirtualDisk.py:583
+#, fuzzy, python-format
+msgid "Size must be specified for non existent volume path '%s'"
+msgstr "Un tamaño debe ser especificado para rutas no existentes: '%s'"
+
+#: virtinst/VirtualDisk.py:603
+#, python-format
+msgid ""
+"Cannot use storage '%(path)s': '%(rootdir)s' is not managed on the remote "
+"host."
+msgstr ""
+
+#: virtinst/VirtualDisk.py:608
+#, python-format
+msgid "Cannot use storage %(path)s: %(err)s"
+msgstr ""
+
+#: virtinst/VirtualDisk.py:686
+msgid "Connection doesn't support remote storage."
+msgstr "La conexión no soporta almacenamiento remoto."
+
+#: virtinst/VirtualDisk.py:689
+msgid "Must specify libvirt managed storage if on a remote connection"
+msgstr ""
+"Debe especificar almacenamiento gerenciado por libvirt si es una conexión "
+"remota"
+
+#: virtinst/VirtualDisk.py:726
+#, fuzzy, python-format
+msgid "The path '%s' must be a file or a device, not a directory"
+msgstr "La ruta debe ser un archivo o un dispositivo, no un directorio."
+
+#: virtinst/VirtualDisk.py:735
+#, python-format
+msgid "Cannot create storage for %s device."
+msgstr "No se puede crear almacenamiento para el dispositivo %s."
+
+#: virtinst/VirtualDisk.py:740
+#, fuzzy, python-format
+msgid "Local block device path '%s' must exist."
+msgstr "Debe exisitir una ruta de dispositivo de bloque local."
+
+#: virtinst/VirtualDisk.py:749
+#, python-format
+msgid "size is required for non-existent disk '%s'"
+msgstr "se requiere tamaño para discos no existentes '%s'"
+
+#: virtinst/VirtualDisk.py:752
+#, python-format
+msgid "No write access to directory '%s'"
+msgstr "El directorio '%s' no permite acceso para escritura"
+
+#: virtinst/VirtualDisk.py:777
+#, fuzzy, python-format
+msgid "Cloning %(srcfile)s"
+msgstr "Clonando desde %(src)s a %(dst)s"
+
+#: virtinst/VirtualDisk.py:780
+#, fuzzy, python-format
+msgid "Creating storage file %s"
+msgstr "Creando archivo de almacenamiento..."
+
+#: virtinst/VirtualDisk.py:793
+msgid "copying to an existing vdisk is not supported"
+msgstr ""
+
+#: virtinst/VirtualDisk.py:796
+msgid "failed to clone disk"
+msgstr ""
+
+#: virtinst/VirtualDisk.py:807
+#, fuzzy, python-format
+msgid "Error creating vdisk %s"
+msgstr "Error al crear disco cdrom: %s"
+
+#: virtinst/VirtualDisk.py:832
+#, python-format
+msgid "Error creating diskimage %s: %s"
+msgstr "Error al crear una imagen de disco %s: %s"
+
+#: virtinst/VirtualDisk.py:932
+msgid "'disknode' or self.target must be set!"
+msgstr "¡Debe configurarse 'disknode' o self.target! "
+
+#: virtinst/VirtualDisk.py:1003
+msgid ""
+"The filesystem will not have enough free space to fully allocate the sparse "
+"file when the guest is running."
+msgstr ""
+"El sistema de archivos no tendrá suficiente espacio libre para alojar "
+"completamente el archivo separado, una vez que el huésped se encuentre en "
+"ejecución. "
+
+#: virtinst/VirtualDisk.py:1008
+msgid "There is not enough free space to create the disk."
+msgstr "No hay espacio libre suficiente para crear el disco."
+
+#: virtinst/VirtualDisk.py:1012
+#, python-format
+msgid " %d M requested > %d M available"
+msgstr " %d M solicitado > %d disponible"
+
+#: virtinst/VirtualDisk.py:1175
+msgid "Cannot determine device bus/type."
+msgstr "No se puede determinar el dispositivo bus/type."
+
+#: virtinst/VirtualDisk.py:1182
+msgid "IDE CDROM must use 'hdc', but target in use."
+msgstr "IDE CDROM debe usar 'hdc', pero se está utilizando."
+
+#: virtinst/VirtualDisk.py:1198
+#, python-format
+msgid "No more space for disks of type '%s'"
+msgstr "No hay más espacio para discos del tipo '%s'"
+
+#: virtinst/VirtualGraphics.py:40
+msgid "Unknown graphics type"
+msgstr "Tipo de gráficos no soportado"
+
+#: virtinst/VirtualGraphics.py:63
+msgid "Keymap must be a string"
+msgstr "El mapa de teclado debe ser una cadena"
+
+#: virtinst/VirtualGraphics.py:65
+msgid "Keymap must be less than 16 characters"
+msgstr "El mapa de teclado debe ser menor que 16 caracteres"
+
+#: virtinst/VirtualGraphics.py:67
+msgid "Keymap can only contain alphanumeric, '_', or '-' characters"
+msgstr ""
+"El mapa de teclado sólo puede contener caracteres alfanuméricos, y los "
+"signos \"_\", y \"-\""
+
+#: virtinst/VirtualGraphics.py:78
+msgid ""
+"VNC port must be a number between 5900 and 65535, or -1 for auto allocation"
+msgstr ""
+"El puerto VNC debe ser un número entre 5900 y 65535, o -1, para que se "
+"asigne automáticamente "
+
+#: virtinst/VirtualHostDevice.py:43
+msgid "'name' or 'nodedev' required."
+msgstr ""
+
+#: virtinst/VirtualHostDevice.py:62
+#, python-format
+msgid "Node device type '%s' cannot be attached to  guest."
+msgstr ""
+
+#: virtinst/VirtualHostDevice.py:130
+#, fuzzy
+msgid "'nodedev' must be a USBDevice instance."
+msgstr "'conn' debe ser una instancia de virConnect."
+
+#: virtinst/VirtualHostDevice.py:146
+msgid "'vendor' and 'product', or 'bus' and  'device' are required."
+msgstr ""
+
+#: virtinst/VirtualHostDevice.py:179
+#, fuzzy
+msgid "'nodedev' must be a PCIDevice instance."
+msgstr "'conn' debe ser una instancia de virConnect."
+
+#: virtinst/VirtualHostDevice.py:188
+msgid "'domain', 'bus', 'slot', and 'function' must be specified."
+msgstr ""
+
+#: virtinst/VirtualHostDevice.py:215
+#, python-format
+msgid "Could not detach PCI device: %s"
+msgstr ""
+
+#: virtinst/VirtualInputDevice.py:46
+#, fuzzy, python-format
+msgid "Unknown input type '%s'."
+msgstr "Tipo de dispositivo desconocido '%s'"
+
+#: virtinst/VirtualInputDevice.py:54
+#, fuzzy, python-format
+msgid "Unknown input bus '%s'."
+msgstr "Variante de sistema operativo desconocida '%s'"
+
+#: virtinst/VirtualNetworkInterface.py:45
+#, fuzzy
+msgid "Shared physical device"
+msgstr "Dispositivo de Disco Físico"
+
+#: virtinst/VirtualNetworkInterface.py:47
+msgid "Virtual networking"
+msgstr ""
+
+#: virtinst/VirtualNetworkInterface.py:49
+msgid "Usermode networking"
+msgstr ""
+
+#: virtinst/VirtualNetworkInterface.py:51
+#, fuzzy, python-format
+msgid "Unknown network type '%s'"
+msgstr "Tipo de red desconocido %s"
+
+#: virtinst/VirtualNetworkInterface.py:72
+msgid "A network name was not provided"
+msgstr "No se ha provisto un nombre de red"
+
+#: virtinst/VirtualNetworkInterface.py:78
+#, python-format
+msgid "Unknown network type %s"
+msgstr "Tipo de red desconocido %s"
+
+#: virtinst/VirtualNetworkInterface.py:90
+#, fuzzy
+msgid "MAC address must be a string."
+msgstr "El tipo de sistema operativo debe ser una cadena."
+
+#: virtinst/VirtualNetworkInterface.py:94
+msgid "MAC address must be of the format AA:BB:CC:DD:EE:FF"
+msgstr "La dirección MAC debe tener el formato AA:BB:CC:DD:EE:FF"
+
+#: virtinst/VirtualNetworkInterface.py:113
+#, fuzzy, python-format
+msgid "Virtual network '%s' does not exist: %s"
+msgstr "El disco del sistema %s no existe"
+
+#: virtinst/VirtualNetworkInterface.py:116
+#, python-format
+msgid "Virtual network '%s' has not been started."
+msgstr ""
+
+#: virtinst/VirtualNetworkInterface.py:139
+msgid ""
+"The MAC address you entered is already in use by another active virtual "
+"machine."
+msgstr ""
+"La dirección MAC que ha ingresado está siendo utilizada por otra máquina "
+"virtual activa."
+
+#: virtinst/VirtualNetworkInterface.py:142
+msgid ""
+"The MAC address you entered conflicts with a device on the physical host."
+msgstr ""
+"La dirección MAC que ha ingresado presenta conflicitos con un dispositivo en "
+"el anfitrión físico"
+
+#: virtinst/VirtualNetworkInterface.py:144
+msgid ""
+"The MAC address you entered is already in use by another inactive virtual "
+"machine."
+msgstr ""
+"La dirección MAC que ha ingresado está siendo utilizada por otra máquina "
+"virtual inactiva."
+
+#: virtconv/diskcfg.py:251
+#, fuzzy, python-format
+msgid "Cannot convert to disk format %s"
+msgstr "Formato de disco desconocido: %s"
+
+#: virtconv/diskcfg.py:264
+#, python-format
+msgid "Cannot convert disk with absolute path %s"
+msgstr ""
+
+#: virtconv/formats.py:141
+#, fuzzy
+msgid "Unknown format"
+msgstr "Formato de disco desconocido: %s"
+
+#: virtconv/vmcfg.py:71
+msgid "VM name is not set"
+msgstr ""
+
+#: virtconv/vmcfg.py:77
+msgid "VM type is not set"
+msgstr ""
+
+#: virtconv/vmcfg.py:79
+msgid "VM arch is not set"
+msgstr ""
+
+#: virtconv/vmcfg.py:83
+#, fuzzy, python-format
+msgid "Disk %s:%s storage does not exist"
+msgstr "El disco del sistema %s no existe"
+
+#: virtconv/parsers/ovf.py:212
+#, python-format
+msgid "Didn't find parent bus for disk '%s'"
+msgstr ""
+
+#: virtconv/parsers/ovf.py:226 virtconv/parsers/ovf.py:242
+#, fuzzy, python-format
+msgid "Unknown reference id '%s' for path %s."
+msgstr "Formato de disco desconocido: %s"
+
+#: virtconv/parsers/ovf.py:235
+#, fuzzy, python-format
+msgid "Unknown storage path type %s."
+msgstr "Tipo de grupo de almacenamiento desconocido: %s"
+
+#: virtconv/parsers/ovf.py:396
+#, python-format
+msgid ""
+"OVF section '%s' is listed as required, but parser doesn't know how to "
+"handle it."
+msgstr ""
+
+#: virtconv/parsers/virtimage.py:212
+#, fuzzy, python-format
+msgid "Couldn't import file '%s': %s"
+msgstr "No se ha podido adquirir el archivo %s: %s"
+
+#: virtconv/parsers/virtimage.py:219
+#, python-format
+msgid "No Name defined in '%s'"
+msgstr ""
+
+#: virtconv/parsers/virtimage.py:238
+#, fuzzy
+msgid "Unable to determine disk format"
+msgstr "No se puede determinar la ruta del kernel RPM"
+
+#: virtconv/parsers/virtimage.py:265
+msgid "VM must have a memory setting"
+msgstr ""
+
+#: virtconv/parsers/vmx.py:216
+#, python-format
+msgid "Syntax error at line %d: %s"
+msgstr ""
+
+#: virtconv/parsers/vmx.py:230
+#, python-format
+msgid "No displayName defined in \"%s\""
+msgstr ""
+
+#: virt-clone:47
+msgid "What is the name for the cloned virtual machine?"
+msgstr "¿Cuál es el nombre de la máquina virtual clonada?"
+
+#: virt-clone:48
+#, fuzzy
+msgid "A name is required for the new virtual machine."
+msgstr "Se requiere un nombre para la máquina virtual."
+
+#: virt-clone:65
+#, fuzzy
+msgid "What is the name of the original virtual machine?"
+msgstr "¿Cuál es el nombre o el uuid de la máquina virtual original?"
+
+#: virt-clone:66
+#, fuzzy
+msgid "An original machine name or xml file is required."
+msgstr "Se requiere un nombre válido o UUID de huésped a clonar"
+
+#: virt-clone:112
+#, fuzzy, python-format
+msgid "What would you like to use as the cloned disk (file path) for '%s'?"
+msgstr "¿Qué (ruta de archivo) le gustaría utilizar para el disco clonado?"
+
+#: virt-clone:134 virt-image:78 virt-install:499
+msgid "Connect to hypervisor with URI"
+msgstr "Conectar al hipervisor con URI"
+
+#: virt-clone:137 virt-image:81 virt-install:502
+msgid "General Options"
+msgstr "Opciones Generales"
+
+#: virt-clone:140
+#, fuzzy
+msgid "Name of the original guest; The status must be shut off or paused."
+msgstr "Nombre o uuid del huésped original; el status debe ser apagado"
+
+#: virt-clone:145
+#, fuzzy
+msgid "XML file to use as the original guest."
+msgstr "Archivo a ser usado como imagen de disco"
+
+#: virt-clone:147
+msgid ""
+"Auto generate clone name and storage paths from the original guest "
+"configuration."
+msgstr ""
+
+#: virt-clone:151
+msgid "Name for the new guest"
+msgstr "Nombre para el nuevo huésped"
+
+#: virt-clone:155
+msgid "New UUID for the clone guest; Default is a randomly generated UUID"
+msgstr ""
+"Nuevo UUID para el huésped clonado; por defecto se genera en forma aleatoria "
+"una UUID"
+
+#: virt-clone:159 virt-install:588
+msgid "Storage Configuration"
+msgstr "Configuración de Almacenamiento"
+
+#: virt-clone:163
+msgid "New file to use as the disk image for the new guest"
+msgstr ""
+"Nuevo archivo para ser usado como imagen de disco para el nuevo huésped"
+
+#: virt-clone:168
+msgid ""
+"Force to copy devices (eg, if 'hdc' is a readonly cdrom device, --force-"
+"copy=hdc)"
+msgstr ""
+"Copiando dispositivos de manera forzada (por ejemplo, si \"hdc\" es un "
+"dispositivo cdrom sólo de lectura, --force-copy=hdc)"
+
+#: virt-clone:172
+msgid "Do not use a sparse file for the clone's disk image"
+msgstr "No utilice un archivo separado para la imagen del disco de lo clonado"
+
+#: virt-clone:176
+msgid "Preserve a new file to use as the disk image for the new guest"
+msgstr ""
+"Preserve un archivo nuevo para utilizarlo como la imagen del disco del nuevo "
+"huésped "
+
+#: virt-clone:180 virt-image:118 virt-install:610
+msgid "Networking Configuration"
+msgstr "Configuración de Redes"
+
+#: virt-clone:184
+msgid ""
+"New fixed MAC address for the clone guest. Default is a randomly generated "
+"MAC"
+msgstr ""
+"Nueva dirección MAC adecuada para el huésped clonado. Por defecto se genera "
+"en forma aleatoria una MAC "
+
+#: virt-clone:188 virt-image:138 virt-install:639
+msgid "Miscellaneous Options"
+msgstr "Opciones Varias"
+
+#: virt-clone:190 virt-convert:91 virt-image:152 virt-install:641
+msgid "Print debugging information"
+msgstr "Mostrar información de depuración"
+
+#: virt-clone:192 virt-image:154 virt-install:652
+#, fuzzy
+msgid "Request user input for ambiguous situations or required options."
+msgstr ""
+"Solicita entradas del usuario para situaciones ambiguas. Por defecto está "
+"configurado en \"falso\" (false), de modo que finalizará cualquier solicitud "
+"que sea ignorada. "
+
+#: virt-clone:195 virt-image:157
+msgid ""
+"Do not prompt for input. Answers yes where applicable, terminates for all "
+"other prompts"
+msgstr ""
+"No solicite entrada. Una respuesta positiva, cuando se aplique, finaliza "
+"cualquier otra entrada"
+
+#: virt-clone:212
+#, fuzzy
+msgid "Must be privileged to clone Xen guests"
+msgstr "Debe ser root para poder clonar huéspedes Xen"
+
+#: virt-clone:242
+#, python-format
+msgid ""
+"\n"
+"Clone '%s' created successfully."
+msgstr ""
+
+#: virt-clone:257 virt-image:267 virt-install:933
+msgid "Installation aborted at user request"
+msgstr "Instalación abortada a pedido del usuario"
+
+#: virt-convert:50
+msgid "Input format, e.g. 'vmx'"
+msgstr ""
+
+#: virt-convert:53
+msgid "Output format, e.g. 'virt-image'"
+msgstr ""
+
+#: virt-convert:55
+msgid "Output disk format"
+msgstr ""
+
+#: virt-convert:60 virt-install:557
+msgid "This guest should be a fully virtualized guest"
+msgstr "Este huésped debería ser un huésped completamente virtualizado"
+
+#: virt-convert:62 virt-install:559
+msgid "This guest should be a paravirtualized guest"
+msgstr "Este huésped debería ser un huésped paravirtualizado"
+
+#: virt-convert:68
+msgid "Machine Architecture Type (i686/x86_64/ppc)"
+msgstr ""
+
+#: virt-convert:71 virt-install:525
+msgid ""
+"The OS type for fully virtualized guests, e.g. 'linux', 'unix', 'windows'"
+msgstr ""
+"El tipo de sistema operativo para huépedes totalmente virtualizados, por "
+"ejemplo, \"linux\", \"unix\", \"windows\""
+
+#: virt-convert:75
+#, fuzzy
+msgid ""
+"The OS variant for fully virtualized guests, e.g. 'fedora6', 'rhel5', "
+"'solaris10', 'win2k', 'vista'"
+msgstr ""
+"La variante del sistema operativo para huéspedes totalmente virtualizados, "
+"por ejemplo, \"fedora6\", \"rhel5\", \"solaris10\", \"win2k\""
+
+#: virt-convert:78 virt-install:547
+msgid ""
+"Disables APIC for fully virtualized guest (overrides value in os-type/os-"
+"variant db)"
+msgstr ""
+"Deshabilita APIC para un huésped completamente virtual (se anulan los "
+"valores en os-type/os-variant db) "
+
+#: virt-convert:82 virt-install:551
+msgid ""
+"Disables ACPI for fully virtualized guest (overrides value in os-type/os-"
+"variant db)"
+msgstr ""
+"Deshabilita ACPI para un huésped completamente virtual (se anulan los "
+"valores en os-type/os-variant db)"
+
+#: virt-convert:89
+msgid "Don't be verbose"
+msgstr ""
+
+#: virt-convert:100
+#, fuzzy
+msgid "You need to provide an input VM definition"
+msgstr "Necesita indicar un descriptor de imagen XML"
+
+#: virt-convert:102
+msgid "Too many arguments provided"
+msgstr ""
+
+#: virt-convert:106
+#, fuzzy, python-format
+msgid "Unknown output disk format \"%s\""
+msgstr "Formato de disco desconocido: %s"
+
+#: virt-convert:121
+#, fuzzy, python-format
+msgid "Unknown output format \"%s\")"
+msgstr "Formato de disco desconocido: %s"
+
+#: virt-convert:123
+#, python-format
+msgid "No output handler for format \"%s\")"
+msgstr ""
+
+#: virt-convert:127
+#, python-format
+msgid "Couldn't access input argument \"%s\"\n"
+msgstr ""
+
+#: virt-convert:134
+#, fuzzy, python-format
+msgid "Couldn't determine input format for \"%s\": %s"
+msgstr "No se ha podido encontrar grupo de almacenamiento '%s': %s"
+
+#: virt-convert:139
+#, fuzzy, python-format
+msgid "Unknown input format \"%s\")"
+msgstr "Formato de disco desconocido: %s"
+
+#: virt-convert:141
+#, python-format
+msgid "No input handler for format \"%s\""
+msgstr ""
+
+#: virt-convert:176
+#, fuzzy, python-format
+msgid "Couldn't clean up output directory \"%s\": %s"
+msgstr "No se ha posido buscar el objeto de volumen: %s"
+
+#: virt-convert:192 virt-convert:195
+#, fuzzy, python-format
+msgid "Couldn't import file \"%s\": %s"
+msgstr "No se ha podido adquirir el archivo %s: %s"
+
+#: virt-convert:232
+#, python-format
+msgid "Generating output in '%(format)s' format to %(dir)s/"
+msgstr ""
+
+#: virt-convert:251
+#, python-format
+msgid "Converting disk '%(path)s' to type %(format)s..."
+msgstr ""
+
+#: virt-convert:258 virt-convert:261
+#, fuzzy, python-format
+msgid "Couldn't convert disks: %s"
+msgstr "No se ha podido adquirir el archivo %s: %s"
+
+#: virt-convert:267
+#, fuzzy, python-format
+msgid "Couldn't export to file \"%s\": %s"
+msgstr "No se ha podido adquirir el archivo %s: %s"
+
+#: virt-convert:279
+#, fuzzy
+msgid "Aborted at user request"
+msgstr "Instalación abortada a pedido del usuario"
+
+#: virt-image:50
+#, fuzzy, python-format
+msgid ""
+"Warning: more networks were provided [%i] then nics required [%i]. All "
+"extras are ignored."
+msgstr ""
+"Aviso: se han provisto más redes [%i] que las necesarias para los seudónimos "
+"[%i]. Todo lo extra se ha ignorado"
+
+#: virt-image:55
+#, fuzzy, python-format
+msgid "The image requires %i network interface."
+msgstr "La imagen requiere una interfase de red %i "
+
+#: virt-image:84 virt-install:505
+msgid "Name of the guest instance"
+msgstr "Nombre de la instancia del huésped"
+
+#: virt-image:86 virt-install:507
+msgid "Memory to allocate for guest instance in megabytes"
+msgstr "Cantidad de memoria en megabytes para alojar la instancia del huésped "
+
+#: virt-image:90 virt-install:514
+msgid "UUID for the guest."
+msgstr "UUID para el huésped."
+
+#: virt-image:92 virt-install:516
+msgid "Number of vcpus to configure for your guest"
+msgstr "Cantidad de vcpus a configurar para su huésped"
+
+#: virt-image:94 virt-install:518
+msgid "Check that vcpus do not exceed physical CPUs and warn if they do."
+msgstr ""
+"Verifica que los vcpus no excedan los CPUs físicos y avisa si lo hacen."
+
+#: virt-image:98 virt-install:522
+msgid "Set which physical CPUs Domain can use."
+msgstr "Especifique qué dominios físicos del CPU pueden utilizarse. "
+
+#: virt-image:101
+#, fuzzy
+msgid "The OS type being installed, e.g. 'linux', 'unix', 'windows'"
+msgstr ""
+"El tipo de sistema operativo para huépedes totalmente virtualizados, por "
+"ejemplo, \"linux\", \"unix\", \"windows\""
+
+#: virt-image:105
+#, fuzzy
+msgid ""
+"The OS variant being installed, e.g. 'fedora6', 'rhel5', 'solaris10', 'win2k'"
+msgstr ""
+"La variante del sistema operativo para huéspedes totalmente virtualizados, "
+"por ejemplo, \"fedora6\", \"rhel5\", \"solaris10\", \"win2k\""
+
+#: virt-image:109 virt-install:542
+#, fuzzy
+msgid "Full Virtualization specific options"
+msgstr "Opciones específicas de una virtualización total."
+
+#: virt-image:112
+#, fuzzy
+msgid "Disables APIC for fully virtualized guest"
+msgstr "Este huésped debería ser un huésped completamente virtualizado"
+
+#: virt-image:115
+#, fuzzy
+msgid "Disables ACPI for fully virtualized guest"
+msgstr "Este huésped debería ser un huésped completamente virtualizado"
+
+#: virt-image:121
+msgid ""
+"Specify a network interface. Ex:\n"
+"--network bridge=mybr0\n"
+"--network network=libvirt_network_name\n"
+"--network network=mynet,model=e1000,mac=00:11..."
+msgstr ""
+
+#: virt-image:140
+msgid "Print the libvirt XML, but do not start the domain"
+msgstr "Muestra el libvirt XML, pero no inicia el dominio"
+
+#: virt-image:143
+msgid "The zero-based index of the boot record to use"
+msgstr "El índice de base cero del registro de inicialización a ser usado"
+
+#: virt-image:145
+msgid "Overwrite, or destroy, an existing image with the same name"
+msgstr "Anula o destruye cualquier imagen existente con el mismo nombre"
+
+#: virt-image:150
+msgid "Skip disk checksum verification process"
+msgstr ""
+
+#: virt-image:165
+msgid "You need to provide an image XML descriptor"
+msgstr "Necesita indicar un descriptor de imagen XML"
+
+#: virt-image:184
+msgid "Cannot parse"
+msgstr "No fue posible analizar"
+
+#: virt-image:189
+#, python-format
+msgid "The index for --boot must be between 0 and %d"
+msgstr "El índice para --boot debe ser entre 0 y %d"
+
+#: virt-image:245
+#, python-format
+msgid ""
+"\n"
+"\n"
+"Creating guest %s..."
+msgstr ""
+"\n"
+"\n"
+"Creando huésped %s..."
+
+#: virt-image:249
+msgid "Guest creation failed"
+msgstr "Falló la creación del huésped"
+
+#: virt-image:255
+#, python-format
+msgid ""
+"Domain creation may not have been\n"
+"successful.  If it was, you can restart your domain\n"
+"by running 'virsh start %s'; otherwise, please\n"
+"restart your installation."
+msgstr ""
+"La creación del dominio podría no haber sido\n"
+"exitosa. Si lo fue, puede reiniciar su dominio\n"
+"ejecutando \"virsh start %s\"; de lo contrario, por favor\reinicie su "
+"instalación."
+
+#: virt-install:84
+#, python-format
+msgid "Couldn't create default storage pool '%s': %s"
+msgstr "No se ha podido crear un grupo de almacenamiento por defecto '%s': %s"
+
+#: virt-install:107
+#, python-format
+msgid "%(chartype)s type %(devtype)s does not support '%(optname)s' option."
+msgstr ""
+
+#: virt-install:133
+#, fuzzy, python-format
+msgid "Unknown option(s) %s"
+msgstr "Opción --disk desconocida '%s'."
+
+#: virt-install:147
+#, fuzzy, python-format
+msgid "Error in %(chartype)s device parameters: %(err)s"
+msgstr "Error en los parámetros de almacenamiento: %s"
+
+#: virt-install:170
+msgid "--disk path must start with path=, pool=, or vol=."
+msgstr "--disk path debe iniciar con path=, pool=, o vol=."
+
+#: virt-install:177
+#, python-format
+msgid "Unknown --disk option '%s'."
+msgstr "Opción --disk desconocida '%s'."
+
+#: virt-install:185 virt-install:197
+#, python-format
+msgid "Unknown '%s' value '%s'"
+msgstr "Valor '%s' desconocido '%s'"
+
+#: virt-install:190
+#, python-format
+msgid "Improper value for 'size': %s"
+msgstr "Valor desapropiado para 'size': %s"
+
+#: virt-install:212
+msgid "Size must be specified with all 'pool='"
+msgstr "El tamaño debe especificarse en todos los 'pool='"
+
+#: virt-install:226
+#, fuzzy
+msgid "Storage volume must be specified as vol=poolname/volname"
+msgstr ""
+"El volúmen de almacenamiento debe especificarse como pool=poolname/volname"
+
+#: virt-install:282
+#, fuzzy
+msgid "Cannot use --file, --file-size, or --disk with --nodisks"
+msgstr "No es posible utilizar --file, --size o --disk con --nodisks"
+
+#: virt-install:285
+msgid ""
+"Cannot mix --file, --nonsparse, or --file-size with --disk options. Please "
+"see the manual for --disk syntax."
+msgstr ""
+"No se puede mezclar --file, --nonsparse, o --file-size con --disk options. "
+"Por favor vea el manual para --disk syntax."
+
+#: virt-install:288
+msgid "A disk must be specified (use --nodisks to override)"
+msgstr "Un disco debe ser especificado (utilice --nodisks para anular)"
+
+#: virt-install:296
+msgid "Need to pass size for each disk"
+msgstr "Es necesario pasar el tamaño para cada disco"
+
+#: virt-install:311
+msgid "Cannot use --mac with --nonetworks"
+msgstr ""
+
+#: virt-install:313
+#, fuzzy
+msgid "Cannot use --bridges with --nonetworks"
+msgstr "No se pueden mezclar los argumentos de --bridge y de --network"
+
+#: virt-install:315
+#, fuzzy
+msgid "Cannot use --network with --nonetworks"
+msgstr "No es posible utilizar --file, --size o --disk con --nodisks"
+
+#: virt-install:342
+msgid ""
+"Would you like a fully virtualized guest (yes or no)? This will allow you to "
+"run unmodified operating systems."
+msgstr ""
+
+#: virt-install:367
+#, fuzzy, python-format
+msgid "Would you like to use %s acceleration? (yes or no)"
+msgstr "¿Realmente quiere utilizar este disco (si o no)?"
+
+#: virt-install:379
+msgid "Can't do both --hvm and --paravirt"
+msgstr "No se puede hacer --hvm y --paravirt al mismo tiempo"
+
+#: virt-install:401 virt-install:402
+msgid "default"
+msgstr "por defecto"
+
+#: virt-install:423
+#, python-format
+msgid "Only one install method (%s) can be used"
+msgstr ""
+
+#: virt-install:429
+msgid "Network PXE boot is not supported for paravirtualized guests"
+msgstr ""
+"Inicialización PXE en red no está soportado para huéspedes paravirtualizados "
+
+#: virt-install:432
+msgid "Paravirtualized guests cannot install off cdrom media."
+msgstr ""
+"Huéspedes paravirtualizados no pueden instalarse desde un dispositivo cdrom."
+
+#: virt-install:435
+msgid "--location can not be specified for remote connections."
+msgstr "--location no puede ser especificado para conexiones remotas."
+
+#: virt-install:444
+#, fuzzy, python-format
+msgid "One of %s, or cdrom media must be specified."
+msgstr "Debe ser especificao --pxe, --location, o cdrom media. "
+
+#: virt-install:457
+#, python-format
+msgid "Error creating cdrom disk: %s"
+msgstr "Error al crear disco cdrom: %s"
+
+#: virt-install:462
+msgid "What is the install CD-ROM/ISO or URL?"
+msgstr ""
+
+#: virt-install:464
+msgid "What is the install URL?"
+msgstr ""
+
+#: virt-install:511
+msgid "The CPU architecture to simulate"
+msgstr "La arquitectura del CPU a ser simulada"
+
+#: virt-install:529
+msgid ""
+"The OS variant for fully virtualized guests, e.g. 'fedora6', 'rhel5', "
+"'solaris10', 'win2k'"
+msgstr ""
+"La variante del sistema operativo para huéspedes totalmente virtualizados, "
+"por ejemplo, \"fedora6\", \"rhel5\", \"solaris10\", \"win2k\""
+
+#: virt-install:533
+msgid "Add a serial device to the domain."
+msgstr ""
+
+#: virt-install:536
+msgid "Add a parallel device to the domain."
+msgstr ""
+
+#: virt-install:539
+msgid "Physical host device to attach to the domain."
+msgstr ""
+
+#: virt-install:544
+msgid "Use sound device emulation"
+msgstr "Utilice emulación del dispositivo de sonido"
+
+#: virt-install:555
+msgid "Virtualization Type Options"
+msgstr "Opciones del Tipo de Virtualización"
+
+#: virt-install:562
+msgid "Hypervisor name to use (kvm, qemu, xen, ...)"
+msgstr ""
+
+#: virt-install:568
+msgid "Installation Method Options"
+msgstr "Opciones para el Método de Instalación"
+
+#: virt-install:571
+msgid "CD-ROM installation media"
+msgstr "Medio de instalación de CD-ROM"
+
+#: virt-install:574
+msgid ""
+"Installation source (eg, nfs:host:/path, http://host/path, ftp://host/path)"
+msgstr ""
+"Fuente de instalación (por ejemplo, nfs:host:/path, http://host/path, ftp://"
+"host/path)"
+
+#: virt-install:577
+msgid "Boot from the network using the PXE protocol"
+msgstr "Inicialice un instalador desde la red utilizando el protocolo PXE"
+
+#: virt-install:579
+#, fuzzy
+msgid "Build guest around an existing disk image"
+msgstr "Archivo a ser usado como imagen de disco"
+
+#: virt-install:581
+#, fuzzy
+msgid "Treat the CD-ROM media as a Live CD"
+msgstr "Indique que el contenido del CDROM sea tratado como un LiveCD"
+
+#: virt-install:584
+msgid "Additional arguments to pass to the kernel booted from --location"
+msgstr ""
+"Se necesitan argumentos adicionales para pasar al kernel inicializado desde "
+"--location"
+
+#: virt-install:591
+msgid ""
+"Specify storage with various options. Ex.\n"
+"--disk path=/my/existing/disk\n"
+"--disk path=/my/new/disk,size=5 (in gigabytes)\n"
+"--disk vol=poolname:volname,device=cdrom,bus=scsi,..."
+msgstr ""
+
+#: virt-install:596
+msgid "Don't set up any disks for the guest."
+msgstr "No configure ningún disco para el huésped."
+
+#: virt-install:613
+msgid ""
+"Specify a network interface. Ex:\n"
+"--network bridge=mybr0\n"
+"--network network=my_libvirt_virtual_net\n"
+"--network network=mynet,model=virtio,mac=00:11..."
+msgstr ""
+
+#: virt-install:618
+#, fuzzy
+msgid "Don't create network interfaces for the guest."
+msgstr "No configure ningún disco para el huésped."
+
+#: virt-install:632
+msgid "Specify video hardware type."
+msgstr ""
+
+#: virt-install:635
+msgid "Don't automatically try to connect to the guest console"
+msgstr "No intentar conectarse automáticamente con la consola huésped "
+
+#: virt-install:643
+msgid "Disables the automatic rebooting when the installation is complete."
+msgstr ""
+"Deshabilita la reinicialización automática cuando se ha completado la "
+"instalación."
+
+#: virt-install:646
+msgid "Time to wait (in minutes)"
+msgstr ""
+
+#: virt-install:648
+msgid "Forces 'yes' for any applicable prompts, terminates for all others"
+msgstr ""
+"Provoca un \"si\" forzado para cualquier solicitud adecuada, y finaliza "
+"todas los demás"
+
+#: virt-install:671
+msgid ""
+"Unable to connect to graphical console: virt-viewer not installed. Please "
+"install the 'virt-viewer' package."
+msgstr ""
+"No se ha podido conectar a una consola gráfica: no está instalado el virt-"
+"viewer. Por favor, instale el paquete \"virt-viewer\"-"
+
+#: virt-install:713
+msgid "Can't use --pxe with --nonetworks"
+msgstr ""
+
+#: virt-install:818
+msgid ""
+"\n"
+"\n"
+"Starting install..."
+msgstr ""
+"\n"
+"\n"
+"Empezando la instalación..."
+
+#: virt-install:829
+#, python-format
+msgid ""
+"Domain installation does not appear to have been\n"
+" successful.  If it was, you can restart your domain\n"
+" by running 'virsh start %s'; otherwise, please\n"
+" restart your installation."
+msgstr ""
+"La instalación del dominio no parece haber sido\n"
+" exitosa. Si lo fue, puede reiniciar su dominio\n"
+" ejecutando 'virsh start %s'; de lo contrario, por favor\n"
+" reinicie su instalación."
+
+#: virt-install:840
+#, python-format
+msgid ""
+"Guest installation complete... you can restart your domain\n"
+"by running 'virsh start %s'"
+msgstr ""
+"Instalación de huésped completa... puede reiniciar su dominio\n"
+"ejecutando 'virsh start %s'"
+
+#: virt-install:844
+msgid "Guest installation complete... restarting guest."
+msgstr "Instalación de huésped completa... reiniciando huésped."
+
+#: virt-install:850
+#, fuzzy
+msgid "Guest install interrupted."
+msgstr "La instalación del huésped ha fallado"
+
+#: virt-install:857
+#, python-format
+msgid ""
+"Domain installation may not have been\n"
+" successful.  If it was, you can restart your domain\n"
+" by running 'virsh start %s'; otherwise, please\n"
+" restart your installation."
+msgstr ""
+"La instalación del dominio podría no haber sido\n"
+" exitosa. Si lo fue, puede reiniciar su dominio\n"
+" ejecutando 'virsh start %s'; de lo contrario, por favor\n"
+" reinicie su instalación."
+
+#: virt-install:883
+#, fuzzy
+msgid "Guest installation failed."
+msgstr "La instalación del huésped ha fallado"
+
+#: virt-install:893
+#, fuzzy, python-format
+msgid "%d minutes "
+msgstr "%d minutos"
+
+#: virt-install:895
+#, fuzzy, python-format
+msgid ""
+"Domain installation still in progress. Waiting %sfor installation to "
+"complete."
+msgstr ""
+"La instalación del dominio continúa en progreso. Puede reconectarse a \n"
+"la consola para completar el proceso de instalación."
+
+#: virt-install:901
+msgid "Domain has shutdown. Continuing."
+msgstr "El dominio ha concluido. Continuando."
+
+#: virt-install:908
+#, fuzzy, python-format
+msgid "Could not lookup domain after install: %s"
+msgstr "No se ha posido buscar el objeto de volumen: %s"
+
+#: virt-install:915
+#, fuzzy
+msgid "Installation has exceeded specified time limit. Exiting application."
+msgstr "La instalación ha excedido el tiempo especificado. Abortando"
+
+#: virt-install:921
+msgid ""
+"Domain installation still in progress. You can reconnect to \n"
+"the console to complete the installation process."
+msgstr ""
+"La instalación del dominio continúa en progreso. Puede reconectarse a \n"
+"la consola para completar el proceso de instalación."
+
+#~ msgid "Could not find usable default libvirt connection."
+#~ msgstr ""
+#~ "No se ha podido encontrar una conexión por defecto libvirt que sea "
+#~ "utilizable. "
+
+#~ msgid "Unknown network type "
+#~ msgstr "Tipo de red desconocido"
+
+#~ msgid "Need to pass equal numbers of networks & mac addresses"
+#~ msgstr "Se necesita pasar la misma cantidad de redes & y de direcciones mac"
+
+#, fuzzy
+#~ msgid "Cannot clone remote VM storage."
+#~ msgstr "La conexión no soporta almacenamiento remoto."
+
+#, fuzzy
+#~ msgid "Missing path to use as disk clone destination for '%s'"
+#~ msgstr ""
+#~ "No se encuentra el archivo nuevo para usar la imagen de disco para %s"
+
+#, fuzzy
+#~ msgid "Could not determine storage type for '%s'"
+#~ msgstr "No se puede definir grupo de almacenamiento: %s"
+
+#~ msgid ""
+#~ "Bridge to connect guest NIC to; if none given, will try to determine the "
+#~ "default"
+#~ msgstr ""
+#~ "Puente para conectar el NIC del huésped; si no es dado ninguno, se "
+#~ "intentará determinar uno por defecto"
+
+#~ msgid ""
+#~ "Connect the guest to a virtual network, forwarding to the physical "
+#~ "network with NAT"
+#~ msgstr ""
+#~ "Conecta el huésped a la red virtual, reenviándolo a la red física a "
+#~ "través de NAT"
+
+#~ msgid ""
+#~ "Fixed MAC address for the guest; if none or RANDOM is given a random "
+#~ "address will be used"
+#~ msgstr ""
+#~ "Dirección MAC adecuada para el huésped; si ninguna o CUALQUIERA es dada, "
+#~ "se generará una dirección de manera aleatoria"
+
+#~ msgid "Use kernel acceleration capabilities (kvm, kqemu, ...)"
+#~ msgstr "Utilice capacidades de aceleración del kernel (kvm, kquemu, ...)"
+
+#~ msgid "Specify storage to use as a disk with various options."
+#~ msgstr ""
+#~ "Indique almacenamiento a ser utilizado como disco con varias opciones."
+
+#~ msgid "File to use as the disk image"
+#~ msgstr "Archivo a ser usado como imagen de disco"
+
+#~ msgid "Size of the disk image (if it doesn't exist) in gigabytes"
+#~ msgstr "Tamaño de la imagen del disco (si es que no existe) en gigabytes"
+
+#~ msgid ""
+#~ "Don't use sparse files for disks.  Note that this will be significantly "
+#~ "slower for guest creation"
+#~ msgstr ""
+#~ "No utilice archivos separados para los discos. Fíjese que esto será "
+#~ "significativamente más lento para la creación de huéspedes"
+
+#~ msgid "ERROR: "
+#~ msgstr "ERROR:"
+
+#~ msgid "Do you really want to use the disk (yes or no)? "
+#~ msgstr "¿Realmente quiere utilizar el disco (si o no)?"
+
+#~ msgid ""
+#~ "UUID for the guest; if none is given a random UUID will be generated. If "
+#~ "you specify UUID, you should use a 32-digit hexadecimal number."
+#~ msgstr ""
+#~ "UUID para el huésped; si no se provee ninguno, se generará uno en forma "
+#~ "aleatoria. Si especifica algún UUID, debe usar un número hexadecimal de "
+#~ "32 dígitos."
+
+#~ msgid "Cannot parse capabilities"
+#~ msgstr "No fue posible analizar capacidades"
+
+#~ msgid " Do you really want to use the disk (yes or no)?"
+#~ msgstr "¿Realmente desea utilizar el disco? (sí o no)"
+
+#~ msgid "Only one of --pxe, --location and --cdrom can be used"
+#~ msgstr "Sólo uno de --pxe, --location y --cdrom puede ser utilizado"
+
+#~ msgid "location must be specified for paravirtualized guests."
+#~ msgstr "debe especificarse un lugar para los huéspedes paravirtualizados. "
+
+#~ msgid ""
+#~ "Total time to wait for VM to shutdown if console not present. Time less "
+#~ "than 0 waits indefinitely."
+#~ msgstr ""
+#~ "Tiempo total de espera para que se apague la VM si la consola no está "
+#~ "presente. Si el tiempo es menor que 0 la espera es indefinida."
+
+#~ msgid "Domain installation still in progress. Waiting"
+#~ msgstr "Instalación lde dominio todavía en progreso. Esperando"
+
+#~ msgid "The image name and version must be present"
+#~ msgstr "Deben estar presentes el nombre y la versión de la imagen"
+
+#~ msgid "Scratch disk %s does not have a size attribute"
+#~ msgstr "El disco transitorio %s no tiene un atributo de tamaño"
+
+#~ msgid "Disk file %s could not be found"
+#~ msgstr "No puede encontrarse el archivo de disco %s"
+
+#~ msgid "Writing %s"
+#~ msgstr "Escribiendo %s"
+
+#~ msgid "Directory in which packaged file will be put"
+#~ msgstr "Directorio en el cual será puesto el archivo empaquetado"
+
+#~ msgid "The image descriptor must contain name and version"
+#~ msgstr "El descriptor de imagen debe contener un nombre y una versión"
+
+#~ msgid "Validation failed: %s"
+#~ msgstr "Fallo en la validación: %s"
+
+#~ msgid "Packaging failed: %s"
+#~ msgstr "Fallo en el empaquetamiento: %s"
+
+#~ msgid "Force flag is set but input was required. Prompt was: %s"
+#~ msgstr ""
+#~ "Se ha establecido una señal forzada, pero se necesita una entrada. Se "
+#~ "pide: %s "
+
+#~ msgid "Prompting disabled, but input was requested. Prompt was: %s"
+#~ msgstr ""
+#~ "Las peticiones están deshabilitadas, pero se solicita una entrada. Se "
+#~ "pide: %s "
+
+#~ msgid ""
+#~ "Prompting disabled, but yes/no was requested. Try --force to force 'yes' "
+#~ "for such prompts. Prompt was: %s"
+#~ msgstr ""
+#~ "Las peticiones están deshabilitadas, pero se ha solicitado un si/no. "
+#~ "Intente --force para forzar un \"si\" para este tipo de peticiones. Se "
+#~ "pide: %s"
+
+#~ msgid "Name or UUID of guest to clone is required"
+#~ msgstr "Se requiere nombre o  UUID del huésped a clonar"
+
+#~ msgid "New file to use for disk image is required"
+#~ msgstr "Se requiere un nuevo archivo para usar para la imagen del disco"
+
+#~ msgid "Domain status must be SHUTOFF"
+#~ msgstr "El estado del dominio debe ser SHUTOFF"
+
+#~ msgid "Domain %s already exists"
+#~ msgstr "El dominio %s ya existe"
+
+#~ msgid "Cloning domain..."
+#~ msgstr "Clonando dominio..."
+
+#~ msgid "NFS installations are only supported as root"
+#~ msgstr "Instalaciones de tipo NFS solo son soportadas como root"
+
+#~ msgid "Verifying install location..."
+#~ msgstr "Verificando lugar de instalación..."
+
+#~ msgid "Unsupported virtualization type"
+#~ msgstr "Tipo de virtualización no soportada"
+
+#~ msgid "Connection does not support HVM virtualisation, cannot boot live CD"
+#~ msgstr ""
+#~ "La conexión no soporta virtualización HVM, no se puede inicializar live CD"
+
+#~ msgid "Storage object name must be a string "
+#~ msgstr "El nombre del objeto de almacenamiento debe ser una cadena"
+
+#~ msgid "Storage object name can not be only "
+#~ msgstr "El nombre del objeto de almacenamiento no puede ser solamente"
+
+#~ msgid "Storage object name can only contain "
+#~ msgstr "El nombre del objeto de almacenamiento puede contener solamente "
+
+#~ msgid "'%s' is not managed on remote host: %s"
+#~ msgstr "'%s' no está gerenciado en anfitriones remotos: %s"
diff --git a/po/fr.po b/po/fr.po
index 27a1688..b54b13e 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: virtinst.tip\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-03-09 20:41-0400\n"
+"POT-Creation-Date: 2009-07-28 20:34-0400\n"
 "PO-Revision-Date: 2008-02-12 00:21+0100\n"
 "Last-Translator: Gauthier Ancelin <gauthier.ancelin at laposte.net>\n"
 "Language-Team: french <fedora-trans-fr at redhat.com>\n"
@@ -16,228 +16,287 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "X-Generator: KBabel 1.11.4\n"
 
-#: virtinst/CapabilitiesParser.py:168
+#: virtinst/CapabilitiesParser.py:172
 #, python-format
 msgid "No domains available for virt type '%(type)s', arch %(arch)s."
 msgstr ""
 
-#: virtinst/CapabilitiesParser.py:393
+#: virtinst/CapabilitiesParser.py:412
 #, python-format
 msgid "for arch '%s'"
 msgstr ""
 
-#: virtinst/CapabilitiesParser.py:397
+#: virtinst/CapabilitiesParser.py:416
 #, fuzzy, python-format
 msgid "virtualization type '%s'"
 msgstr "L'URL de l'emplacement est invalide : %s %s"
 
-#: virtinst/CapabilitiesParser.py:399
+#: virtinst/CapabilitiesParser.py:418
 msgid "any virtualization options"
 msgstr ""
 
-#: virtinst/CapabilitiesParser.py:401
+#: virtinst/CapabilitiesParser.py:420
 #, python-format
 msgid "Host does not support %(virttype)s %(arch)s"
 msgstr ""
 
-#: virtinst/CapabilitiesParser.py:414
+#: virtinst/CapabilitiesParser.py:433
 #, python-format
 msgid ""
 "Host does not support domain type '%(domain)s' for virtualization type '%"
 "(virttype)s' arch '%(arch)s'"
 msgstr ""
 
-#: virtinst/cli.py:117
+#: virtinst/cli.py:152
 #, fuzzy
 msgid "Exiting at user request."
 msgstr ""
 "Les installations NFS ne sont prises en charge que par le superutilisateur"
 
-#: virtinst/cli.py:122
+#: virtinst/cli.py:159
 #, fuzzy
 msgid "Must be root to create Xen guests"
 msgstr "Il faut être superutilisateur pour cloner des invités Xen"
 
-#: virtinst/cli.py:124
-msgid "Could not find usable default libvirt connection."
+#: virtinst/cli.py:297
+msgid "(use --prompt to run interactively)"
 msgstr ""
 
-#: virtinst/cli.py:146
+#: virtinst/cli.py:317
+msgid " (Use --prompt or --force to override)"
+msgstr ""
+
+#: virtinst/cli.py:352
+msgid "Graphics Configuration"
+msgstr ""
+
+#: virtinst/cli.py:354
+msgid "Use VNC for graphics support"
+msgstr "Utiliser VNC pour la prise en charge de l'interface graphique"
+
+#: virtinst/cli.py:356
+msgid "Port to use for VNC"
+msgstr "Port à utiliser pour VNC"
+
+#: virtinst/cli.py:358
+msgid "Address to listen on for VNC connections."
+msgstr ""
+
+#: virtinst/cli.py:361
+#, fuzzy
+msgid "set up keymap for the VNC console"
+msgstr "Configurer un clavier pour une console graphique"
+
+#: virtinst/cli.py:363
+msgid "Use SDL for graphics support"
+msgstr "Utiliser SDL pour la prise en charge de l'interface graphique"
+
+#: virtinst/cli.py:365
+msgid "Don't set up a graphical console for the guest."
+msgstr "Ne pas configurer de console graphique pour l'invité."
+
+#: virtinst/cli.py:388
+#, fuzzy
+msgid "A disk path must be specified."
+msgstr "Un emplacement depuis lequel installer doit être spécifié"
+
+#: virtinst/cli.py:390
+msgid "What would you like to use as the disk (file path)?"
+msgstr "Que souhaitez-vous utiliser comme disque (chemin d'accès) ?"
+
+#: virtinst/cli.py:392
 #, python-format
-msgid "Force flag is set but input was required. Prompt was: %s"
+msgid ""
+"Please enter the path to the file you would like to use for storage. It will "
+"have size %sGB."
 msgstr ""
+"Veuillez entrer le chemin d'accès vers le fichier que vous souhaitez "
+"utiliser pour le stockage. Il aura une taille de %s Go."
+
+#: virtinst/cli.py:401
+#, fuzzy
+msgid "A size must be specified for non-existent disks."
+msgstr "Une taille doit être spécifiée pour les disques qui n'existent pas."
 
-#: virtinst/cli.py:149
+#: virtinst/cli.py:403
 #, python-format
-msgid "Prompting disabled, but input was requested. Prompt was: %s"
+msgid "How large would you like the disk (%s) to be (in gigabytes)?"
+msgstr "Quelle taille le disque %s doit-il avoir (en Go) ?"
+
+#: virtinst/cli.py:424 virt-install:274
+#, python-format
+msgid "Error with storage parameters: %s"
 msgstr ""
 
-#: virtinst/cli.py:169
+#: virtinst/cli.py:426
+#, fuzzy
+msgid "Do you really want to use this disk (yes or no)"
+msgstr "Voulez-vous vraiment utiliser le disque (« yes » ou « no ») ? "
+
+#: virtinst/cli.py:430
 #, python-format
-msgid ""
-"Prompting disabled, but yes/no was requested. Try --force to force 'yes' for "
-"such prompts. Prompt was: %s"
+msgid "This will overwrite the existing path '%s'!\n"
 msgstr ""
 
-#: virtinst/cli.py:179 virt-clone:48 virt-clone:69 virt-clone:108
-msgid "ERROR: "
-msgstr "ERREUR : "
+#: virtinst/cli.py:437
+#, python-format
+msgid "Disk %s is already in use by another guest!\n"
+msgstr "Le disque %s est déjà en cours d'utilisation par un autre invité !\n"
+
+#: virtinst/cli.py:464
+msgid "What is the name of your virtual machine?"
+msgstr "Quel est le nom de votre machine virtuelle ?"
 
-#: virtinst/cli.py:189
+#: virtinst/cli.py:465
 #, fuzzy
 msgid "A name is required for the virtual machine."
 msgstr "Quel est le nom de la machine virtuelle clonée ?"
 
-#: virtinst/cli.py:197
+#: virtinst/cli.py:472
+msgid "How much RAM should be allocated (in megabytes)?"
+msgstr "Quelle quantité de RAM devrait être allouée (en Mo) ?"
+
+#: virtinst/cli.py:473
 #, fuzzy
 msgid "Memory amount is required for the virtual machine."
 msgstr "Quel est le nom de la machine virtuelle clonée ?"
 
-#: virtinst/cli.py:199
+#: virtinst/cli.py:477
 #, fuzzy, python-format
 msgid "Installs currently require %d megs of RAM."
 msgstr "ERREUR : les installations exigent actuellement %d Mo de RAM."
 
-#: virtinst/cli.py:219
-#, python-format
+#: virtinst/cli.py:498
+#, fuzzy, python-format
 msgid ""
 "You have asked for more virtual CPUs (%d) than there are physical CPUs (%d) "
-"on the host. This will work, but performance will be poor. Are you sure? "
-"(yes or no)"
+"on the host. This will work, but performance will be poor. "
 msgstr ""
 "Vous avez demandé à avoir plus d'UC virtuelles (%d) qu'il n'y a d'UC "
 "physiques (%d) sur l'hôte. Ceci peut fonctionner, mais les performances "
 "seront faibles. Êtes-vous certains de vouloir continuer ? (« yes » ou « no »)"
 
-#: virtinst/cli.py:276
-msgid "Unknown network type "
-msgstr "Type de réseau inconnu "
+#: virtinst/cli.py:501
+msgid "Are you sure? (yes or no)"
+msgstr ""
 
-#: virtinst/cli.py:293
+#: virtinst/cli.py:612
+#, fuzzy, python-format
+msgid "Unknown network option '%s'"
+msgstr "Type de réseau %s inconnu"
+
+#: virtinst/cli.py:630
 msgid "Cannot mix both --bridge and --network arguments"
 msgstr "Impossible de mélanger les arguments de --bridge et de --network"
 
-#: virtinst/cli.py:310
-msgid "Need to pass equal numbers of networks & mac addresses"
-msgstr "Il faut passer un nombre de réseaux et d'adresses MAC identique"
+#: virtinst/cli.py:645
+#, fuzzy
+msgid "Cannot pass more mac addresses than networks."
+msgstr "Impossible de mélanger les arguments de --bridge et de --network"
 
-#: virtinst/cli.py:332
+#: virtinst/cli.py:672
 msgid "Can't specify more than one of VNC, SDL, or --nographics"
 msgstr ""
 
-#: virtinst/cli.py:376 virtinst/cli.py:381 virt-install:320 virt-install:325
-#: virt-install.orig:320 virt-install.orig:325
+#: virtinst/cli.py:700
+#, python-format
+msgid "Didn't match keymap '%s' in keytable!"
+msgstr ""
+
+#: virtinst/cli.py:731 virtinst/cli.py:736
 #, python-format
 msgid "%s option requires an argument"
 msgstr "L'option %s exige un argument"
 
-#: virtinst/CloneManager.py:54
+#: virtinst/CloneManager.py:109
 msgid "Connection must be a 'virConnect' instance."
 msgstr ""
 
-#: virtinst/CloneManager.py:102
+#: virtinst/CloneManager.py:162
 #, fuzzy
 msgid "Original xml must be a string."
 msgstr "UUID doit être une chaîne de caractères."
 
-#: virtinst/CloneManager.py:114
+#: virtinst/CloneManager.py:177
 #, python-format
 msgid "Invalid name for new guest: %s"
 msgstr "Nom invalide pour le nouvel invité : %s"
 
-#: virtinst/CloneManager.py:119
+#: virtinst/CloneManager.py:182
 #, fuzzy, python-format
 msgid "Domain name '%s' already in use."
 msgstr "Le domaine de nom %s existe déjà !"
 
-#: virtinst/CloneManager.py:131
+#: virtinst/CloneManager.py:195
 #, python-format
 msgid "Invalid uuid for new guest: %s"
 msgstr "UUID invalide pour le nouvel invité : %s"
 
-#: virtinst/CloneManager.py:134
+#: virtinst/CloneManager.py:198
 #, fuzzy, python-format
 msgid "UUID '%s' is in use by another guest."
 msgstr "Le disque %s est déjà en cours d'utilisation par un autre invité !\n"
 
-#: virtinst/CloneManager.py:149
+#: virtinst/CloneManager.py:226
 #, python-format
 msgid "Could not use path '%s' for cloning: %s"
 msgstr ""
 
-#: virtinst/CloneManager.py:235
+#: virtinst/CloneManager.py:356
+msgid "Cloning policy must be a list of rules."
+msgstr ""
+
+#: virtinst/CloneManager.py:373
 #, fuzzy
 msgid "Original guest name or xml is required."
 msgstr "Le nom du réseau n'est pas requis pour %s"
 
-#: virtinst/CloneManager.py:253
-#, fuzzy
-msgid "Cannot clone remote VM storage."
-msgstr "Création du fichier de stockage..."
-
-#: virtinst/CloneManager.py:261
+#: virtinst/CloneManager.py:391
 msgid "Domain with devices to clone must be paused or shutoff."
 msgstr ""
 
-#: virtinst/CloneManager.py:304
-#, fuzzy, python-format
-msgid "Missing path to use as disk clone destination for '%s'"
+#: virtinst/CloneManager.py:437
+#, python-format
+msgid ""
+"More disks to clone that new paths specified. (%(passed)d specified, %(need)"
+"d needed"
 msgstr ""
-"Le nouveau fichier pour utiliser l'image de disque est manquant pour %s"
 
-#: virtinst/CloneManager.py:403
+#: virtinst/CloneManager.py:557
 #, fuzzy, python-format
 msgid "Disk '%s' does not exist."
 msgstr "Le disque système %s n'existe pas"
 
-#: virtinst/CloneManager.py:406
+#: virtinst/CloneManager.py:568
 #, fuzzy, python-format
 msgid "Could not determine original disk information: %s"
 msgstr "Impossible de déterminer le chemin d'accès au RPM du noyau"
 
-#: virtinst/CloneManager.py:474
+#: virtinst/CloneManager.py:613
 #, fuzzy, python-format
 msgid "Domain '%s' was not found."
 msgstr "Le domaine %s est introuvable"
 
-#: virtinst/CloneManager.py:539
-msgid "copying to an existing vdisk is not supported"
-msgstr ""
-
-#: virtinst/CloneManager.py:547
-#, fuzzy, python-format
-msgid "Could not determine storage type for '%s'"
-msgstr "Impossible de trouver une distribution installable sur « %s »"
-
-#: virtinst/CloneManager.py:574
-#, python-format
-msgid "Cloning %(srcfile)s"
-msgstr ""
-
-#: virtinst/CloneManager.py:581
-msgid "failed to clone disk"
-msgstr ""
-
-#: virtinst/DistroInstaller.py:51
+#: virtinst/DistroInstaller.py:57
 msgid "Invalid NFS format: No path specified."
 msgstr ""
 
-#: virtinst/DistroInstaller.py:93
+#: virtinst/DistroInstaller.py:101
 #, fuzzy, python-format
 msgid "Invalid 'location' type %s."
 msgstr "L'URL de l'emplacement est invalide : %s %s"
 
-#: virtinst/DistroInstaller.py:99
+#: virtinst/DistroInstaller.py:107
 #, fuzzy
 msgid "'conn' must be specified if 'location' is a storage tuple."
 msgstr "Un emplacement depuis lequel installer doit être spécifié"
 
-#: virtinst/DistroInstaller.py:135
+#: virtinst/DistroInstaller.py:145
 #, fuzzy, python-format
 msgid "Checking installer location failed: Could not find media '%s'."
 msgstr "L'installation de l'invité a échoué"
 
-#: virtinst/DistroInstaller.py:138
+#: virtinst/DistroInstaller.py:148
 #, fuzzy
 msgid ""
 "Install media location must be an NFS, HTTP or FTP network install source, "
@@ -246,76 +305,76 @@ msgstr ""
 "L'emplacement du média d'installation doit être une source réseau NFS, HTTP "
 "ou FTP, ou un fichier ou un périphérique local existant"
 
-#: virtinst/DistroInstaller.py:145
+#: virtinst/DistroInstaller.py:155
 #, fuzzy
 msgid "Privilege is required for NFS installations"
 msgstr "Quel est le nom de la machine virtuelle clonée ?"
 
-#: virtinst/Guest.py:100
+#: virtinst/Guest.py:108
 msgid "Unable to connect to hypervisor, aborting installation!"
 msgstr "Impossible de se connecter à l'hyperviseur, arrêt de l'installation !"
 
-#: virtinst/Guest.py:118
+#: virtinst/Guest.py:126
 msgid "Guest"
 msgstr ""
 
-#: virtinst/Guest.py:125
+#: virtinst/Guest.py:133
 #, fuzzy, python-format
 msgid "Guest name '%s' is already in use."
 msgstr "Le disque %s est déjà en cours d'utilisation par un autre invité !\n"
 
-#: virtinst/Guest.py:133
+#: virtinst/Guest.py:141
 msgid "Memory value must be an integer greater than 0"
 msgstr "La valeur de la mémoire doit être un entier supérieur à 0"
 
-#: virtinst/Guest.py:145
+#: virtinst/Guest.py:153
 msgid "Max Memory value must be an integer greater than 0"
 msgstr "La valeur de la mémoire maximale doit être un entier supérieur à 0"
 
-#: virtinst/Guest.py:164
+#: virtinst/Guest.py:172
 #, fuzzy
 msgid "Number of vcpus must be a postive integer."
 msgstr "Le nombre d'UC virtuelles doit être compris entre 1 et %d"
 
-#: virtinst/Guest.py:166
+#: virtinst/Guest.py:174
 #, fuzzy, python-format
 msgid "Number of vcpus must be no greater than %d for this vm type."
 msgstr "Le nombre d'UC virtuelles doit être compris entre 1 et %d"
 
-#: virtinst/Guest.py:176
+#: virtinst/Guest.py:184
 msgid "cpuset must be string"
 msgstr "« cpuset » doit être une chaîne de caractères"
 
-#: virtinst/Guest.py:178
+#: virtinst/Guest.py:186
 msgid "cpuset can only contain numeric, ',', or '-' characters"
 msgstr "« cpuset » ne peut contenir que des caractères numériques, « , » et « - »"
 
-#: virtinst/Guest.py:186
+#: virtinst/Guest.py:194
 msgid "cpuset contains invalid format."
 msgstr "Le format de « cpuset » est invalide."
 
-#: virtinst/Guest.py:188 virtinst/Guest.py:192
+#: virtinst/Guest.py:196 virtinst/Guest.py:202
 msgid "cpuset's pCPU numbers must be less than pCPUs."
 msgstr ""
 "Le nombre d'UC physiques dans « cpuset » doit être inférieur au nombre d'UC "
 "physiques."
 
-#: virtinst/Guest.py:212
+#: virtinst/Guest.py:222
 #, fuzzy
 msgid "OS type must be a string."
 msgstr "« Keymap » doit être une chaîne de caractères"
 
-#: virtinst/Guest.py:224
+#: virtinst/Guest.py:234
 #, fuzzy, python-format
 msgid "OS type '%s' does not exist in our dictionary"
 msgstr "Le type de SE %s n'existe pas dans le dictionnaire"
 
-#: virtinst/Guest.py:232
+#: virtinst/Guest.py:242
 #, fuzzy
 msgid "OS variant must be a string."
 msgstr "UUID doit être une chaîne de caractères."
 
-#: virtinst/Guest.py:238
+#: virtinst/Guest.py:248
 #, fuzzy, python-format
 msgid ""
 "OS variant '%(var)s; does not exist in our dictionary for OS type '%(ty)s'"
@@ -323,54 +382,58 @@ msgstr ""
 "La variante du SE %(var)s n'existe pas dans le dictionnaire pour le type de "
 "SE %(type)s"
 
-#: virtinst/Guest.py:250
+#: virtinst/Guest.py:260
 #, python-format
 msgid "Unknown OS variant '%s'"
 msgstr ""
 
-#: virtinst/Guest.py:291
+#: virtinst/Guest.py:301
 msgid "Must specify whether graphics are enabled"
 msgstr "Vous devez spécifier si les graphiques sont activés"
 
-#: virtinst/Guest.py:314
+#: virtinst/Guest.py:324
 msgid "Graphics enabled must be True or False"
 msgstr "« Graphics enabled » doit être à « True » ou « False »"
 
-#: virtinst/Guest.py:373
+#: virtinst/Guest.py:383
 msgid "You must specify a valid ISO or CD-ROM location for the installation"
 msgstr ""
 "Vous devez spécifier l'emplacement d'un CD-ROM ou d'un fichier ISO valide "
 "pour l'installation"
 
-#: virtinst/Guest.py:376
+#: virtinst/Guest.py:386
 msgid "The specified media path does not exist."
 msgstr "Le chemin d'accès au média spécifié n'existe pas."
 
-#: virtinst/Guest.py:573
+#: virtinst/Guest.py:415
+msgid "Must pass a VirtualDevice instance."
+msgstr ""
+
+#: virtinst/Guest.py:660
 msgid "Unable to start domain for guest, aborting installation!"
 msgstr ""
 "Impossible de démarrer le domaine pour l'invité, arrêt de l'installation !"
 
-#: virtinst/Guest.py:623
+#: virtinst/Guest.py:716
 #, python-format
 msgid "Could not remove old vm '%s': %s"
 msgstr ""
 
-#: virtinst/Guest.py:625
+#: virtinst/Guest.py:718
 #, python-format
 msgid "Domain named %s already exists!"
 msgstr "Le domaine de nom %s existe déjà !"
 
-#: virtinst/Guest.py:632
+#: virtinst/Guest.py:725
 msgid "Creating domain..."
 msgstr "Création du domaine..."
 
-#: virtinst/Guest.py:635
+#: virtinst/Guest.py:728
 msgid "Unable to create domain for the guest, aborting installation!"
 msgstr ""
 "Impossible de créer un domaine pour l'invité, arrêt de l'installation !"
 
-#: virtinst/Guest.py:643
+#: virtinst/Guest.py:736
 msgid ""
 "It appears that your installation has crashed.  You should be able to find "
 "more information in the logs"
@@ -378,7 +441,7 @@ msgstr ""
 "Apparemment, votre installation a planté. Vous devriez trouver des "
 "informations plus complètes dans les fichiers de journalisation."
 
-#: virtinst/Guest.py:677
+#: virtinst/Guest.py:770
 msgid ""
 "Domain has not existed.  You should be able to find more information in the "
 "logs"
@@ -386,7 +449,7 @@ msgstr ""
 "Le domaine n'a encore jamais existé. Vous devriez pouvoir trouver des "
 "informations plus détaillées dans les fichiers journaux"
 
-#: virtinst/Guest.py:679
+#: virtinst/Guest.py:772
 msgid ""
 "Domain has not run yet.  You should be able to find more information in the "
 "logs"
@@ -394,25 +457,20 @@ msgstr ""
 "Le domaine n'a encore jamais été exécuté. Vous devriez pouvoir trouver des "
 "informations plus détaillées dans les fichiers journaux"
 
-#: virtinst/Guest.py:696
+#: virtinst/Guest.py:789
 msgid "Domain has already been started!"
 msgstr "Le domaine est déjà démarré !"
 
-#: virtinst/Guest.py:707
+#: virtinst/Guest.py:809
 msgid "The UUID you entered is already in use by another guest!"
 msgstr ""
 "L'UUID que vous avez entré est déjà en cours d'utilisation par un autre "
 "invité !"
 
-#: virtinst/Guest.py:710
+#: virtinst/Guest.py:812
 msgid "Name and memory must be specified for all guests!"
 msgstr "Le nom et la mémoire doivent être spécifiés pour tous les invités !"
 
-#: virtinst/Guest.py:745
-#, fuzzy, python-format
-msgid "Invalid dictionary entry for device '%s %s'"
-msgstr "Nom invalide pour le nouvel invité : %s"
-
 #: virtinst/ImageFetcher.py:86
 #, python-format
 msgid "Retrieving file %s..."
@@ -479,7 +537,7 @@ msgstr "La mémoire doit être un entier, mais elle est à « %s »"
 msgid "The format for disk %s must be one of %s"
 msgstr "Le format du disque %s doit être l'un des suivants : %s"
 
-#: virtinst/ImageParser.py:248
+#: virtinst/ImageParser.py:263
 #, python-format
 msgid "Checking disk signature for %s"
 msgstr ""
@@ -502,27 +560,27 @@ msgstr "L'élément racine n'est pas « image »"
 msgid "A disk device must be specified."
 msgstr ""
 
-#: virtinst/Installer.py:151
+#: virtinst/Installer.py:156
 msgid "Guest.cdrom must be a boolean type"
 msgstr "« Guest.cdrom » doit être de type booléen"
 
-#: virtinst/Installer.py:168 virtinst/Installer.py:173
-#: virtinst/Installer.py:177
+#: virtinst/Installer.py:173 virtinst/Installer.py:178
+#: virtinst/Installer.py:182
 msgid "Must pass both a kernel and initrd"
 msgstr "Vous devez passer un noyau et un initrd"
 
-#: virtinst/Installer.py:180
+#: virtinst/Installer.py:185
 msgid "Kernel and initrd must be specified by a list, dict, or tuple."
 msgstr ""
 "Le noyau et initrd doivent être spécifiés dans une liste, un dict ou un "
 "tuple."
 
-#: virtinst/Installer.py:335
+#: virtinst/Installer.py:340
 #, fuzzy
 msgid "A connection must be specified."
 msgstr "Un emplacement depuis lequel installer doit être spécifié"
 
-#: virtinst/Installer.py:353
+#: virtinst/Installer.py:358
 #, python-format
 msgid "No 'Guest' class for virtualization type '%s'"
 msgstr ""
@@ -532,345 +590,364 @@ msgstr ""
 msgid "CDROM media must be specified for the live CD installer."
 msgstr "Un type de SE doit être spécifié avant une variante."
 
-#: virtinst/NodeDeviceParser.py:114
+#: virtinst/NodeDeviceParser.py:118
 msgid "System"
 msgstr ""
 
-#: virtinst/NodeDeviceParser.py:146
+#: virtinst/NodeDeviceParser.py:151
 #, python-format
 msgid "Interface %s"
 msgstr ""
 
-#: virtinst/NodeDeviceParser.py:364 virtinst/NodeDeviceParser.py:392
-#: virtinst/util.py:531 virtinst/VirtualDevice.py:58
+#: virtinst/NodeDeviceParser.py:378 virtinst/NodeDeviceParser.py:406
+#: virtinst/util.py:501 virtinst/VirtualDevice.py:86
 msgid "'conn' must be a virConnect instance."
 msgstr ""
 
-#: virtinst/NodeDeviceParser.py:411
+#: virtinst/NodeDeviceParser.py:426
 #, fuzzy
 msgid "Connection does not support host device enumeration."
 msgstr ""
 "La virtualisation HVM n'est pas prise en charge ; impossible de démarrer le "
 "CD live"
 
-#: virtinst/NodeDeviceParser.py:487
+#: virtinst/NodeDeviceParser.py:502
 #, fuzzy, python-format
 msgid "Unknown host device capability '%s'."
 msgstr "Type de réseau %s inconnu"
 
-#: virtinst/OSDistro.py:99
+#: virtinst/osdict.py:129
+#, fuzzy, python-format
+msgid "Invalid dictionary entry for device '%s %s'"
+msgstr "Nom invalide pour le nouvel invité : %s"
+
+#: virtinst/OSDistro.py:102
 #, python-format
 msgid "Could not find an installable distribution at '%s'"
 msgstr "Impossible de trouver une distribution installable sur « %s »"
 
-#: virtinst/OSDistro.py:109
+#: virtinst/OSDistro.py:112
 msgid "Invalid install location: "
 msgstr "Emplacement d'installation invalide : "
 
-#: virtinst/OSDistro.py:230
+#: virtinst/OSDistro.py:237
 #, fuzzy, python-format
 msgid "Couldn't find %(type)s kernel for %(distro)s tree."
 msgstr "Impossible de trouver une distribution installable sur « %s »"
 
-#: virtinst/OSDistro.py:244
+#: virtinst/OSDistro.py:252
 #, fuzzy, python-format
 msgid "Could not find boot.iso in %s tree."
 msgstr ""
 "Impossible de trouver un descripteur de démarrage acceptable pour cet hôte"
 
-#: virtinst/OSDistro.py:383
+#: virtinst/OSDistro.py:413
 #, fuzzy, python-format
 msgid "Could not find a kernel path for virt type '%s'"
 msgstr "Impossible de trouver une distribution installable sur « %s »"
 
-#: virtinst/OSDistro.py:392
+#: virtinst/OSDistro.py:422
 #, fuzzy
 msgid "Could not find a boot iso path for this tree."
 msgstr ""
 "Impossible de trouver un descripteur de démarrage acceptable pour cet hôte"
 
-#: virtinst/OSDistro.py:646
+#: virtinst/OSDistro.py:676
 msgid "Unable to determine kernel RPM path"
 msgstr "Impossible de déterminer le chemin d'accès au RPM du noyau"
 
-#: virtinst/OSDistro.py:648
+#: virtinst/OSDistro.py:678
 msgid "Unable to determine install-initrd RPM path"
 msgstr "Impossible de déterminer le chemin d'accès au RPM d'install-initrd"
 
-#: virtinst/OSDistro.py:659
+#: virtinst/OSDistro.py:689
 msgid "Building initrd"
 msgstr "Construction de initrd"
 
-#: virtinst/OSDistro.py:1021
+#: virtinst/OSDistro.py:1051
 #, python-format
 msgid "Solaris miniroot not found at %s"
 msgstr ""
 
-#: virtinst/OSDistro.py:1056
+#: virtinst/OSDistro.py:1089
 #, python-format
 msgid "OpenSolaris PV kernel not found at %s"
 msgstr ""
 
-#: virtinst/OSDistro.py:1066
-#, python-format
-msgid "OpenSolaris microroot not found at %s"
-msgstr ""
-
-#: virtinst/Storage.py:85
+#: virtinst/Storage.py:81
 #, fuzzy, python-format
 msgid "Unknown storage object type: %s"
 msgstr "Type de réseau %s inconnu"
 
-#: virtinst/Storage.py:108
+#: virtinst/Storage.py:104
 msgid "'conn' must be a libvirt connection object."
 msgstr ""
 
-#: virtinst/Storage.py:110
+#: virtinst/Storage.py:106
 msgid "Passed connection is not libvirt storage capable"
 msgstr ""
 
-#: virtinst/Storage.py:120
+#: virtinst/Storage.py:116
 #, fuzzy
 msgid "Storage object"
 msgstr "Nom du nouvel invité"
 
-#: virtinst/Storage.py:125
+#: virtinst/Storage.py:121
 #, fuzzy
 msgid "Name for the storage object."
 msgstr "Nom du nouvel invité"
 
-#: virtinst/Storage.py:132
+#: virtinst/Storage.py:128
 msgid "Permissions must be passed as a dict object"
 msgstr ""
 
-#: virtinst/Storage.py:135
+#: virtinst/Storage.py:131
 msgid "Permissions must contain 'mode', 'owner', 'group' and 'label' keys."
 msgstr ""
 
-#: virtinst/Storage.py:142
+#: virtinst/Storage.py:138
 #, python-format
 msgid "'%s' is not an absolute path."
 msgstr ""
 
-#: virtinst/Storage.py:203
+#: virtinst/Storage.py:199
 msgid "Filesystem Directory"
 msgstr ""
 
-#: virtinst/Storage.py:204
+#: virtinst/Storage.py:200
 msgid "Pre-Formatted Block Device"
 msgstr ""
 
-#: virtinst/Storage.py:205
+#: virtinst/Storage.py:201
 msgid "Network Exported Directory"
 msgstr ""
 
-#: virtinst/Storage.py:206
+#: virtinst/Storage.py:202
 msgid "LVM Volume Group"
 msgstr ""
 
-#: virtinst/Storage.py:207
+#: virtinst/Storage.py:203
 msgid "Physical Disk Device"
 msgstr ""
 
-#: virtinst/Storage.py:208
+#: virtinst/Storage.py:204
 msgid "iSCSI Target"
 msgstr ""
 
-#: virtinst/Storage.py:218 virtinst/Storage.py:255
+#: virtinst/Storage.py:214 virtinst/Storage.py:251
 #, fuzzy, python-format
 msgid "Unknown storage pool type: %s"
 msgstr "Type de réseau %s inconnu"
 
-#: virtinst/Storage.py:277
+#: virtinst/Storage.py:273
 msgid "Storage device type the pool will represent."
 msgstr ""
 
-#: virtinst/Storage.py:296
+#: virtinst/Storage.py:292
 #, fuzzy
 msgid "Host name must be a string"
 msgstr "« Keymap » doit être une chaîne de caractères"
 
-#: virtinst/Storage.py:315
+#: virtinst/Storage.py:311
 #, fuzzy, python-format
 msgid "Name '%s' already in use by another pool."
 msgstr "Le disque %s est déjà en cours d'utilisation par un autre invité !\n"
 
-#: virtinst/Storage.py:353
+#: virtinst/Storage.py:349
 #, python-format
 msgid "Could not define storage pool: %s"
 msgstr ""
 
-#: virtinst/Storage.py:363
+#: virtinst/Storage.py:359
 #, python-format
 msgid "Could not build storage pool: %s"
 msgstr ""
 
-#: virtinst/Storage.py:372
+#: virtinst/Storage.py:368
 #, python-format
 msgid "Could not start storage pool: %s"
 msgstr ""
 
-#: virtinst/Storage.py:399
+#: virtinst/Storage.py:395
 msgid "Directory to use for the storage pool."
 msgstr ""
 
-#: virtinst/Storage.py:435
+#: virtinst/Storage.py:431
 msgid "The existing device to mount for the pool."
 msgstr ""
 
-#: virtinst/Storage.py:438 virtinst/Storage.py:496
+#: virtinst/Storage.py:434 virtinst/Storage.py:492
 msgid "Location to mount the source device."
 msgstr ""
 
-#: virtinst/Storage.py:456
+#: virtinst/Storage.py:452
 #, fuzzy, python-format
 msgid "Unknown Filesystem format: %s"
 msgstr "Type de réseau %s inconnu"
 
-#: virtinst/Storage.py:459
+#: virtinst/Storage.py:455
 msgid "Filesystem type of the source device."
 msgstr ""
 
-#: virtinst/Storage.py:472
+#: virtinst/Storage.py:468
 msgid "Device path is required"
 msgstr ""
 
-#: virtinst/Storage.py:491 virtinst/Storage.py:665
+#: virtinst/Storage.py:487 virtinst/Storage.py:694
 msgid "Path on the host that is being shared."
 msgstr ""
 
-#: virtinst/Storage.py:493 virtinst/Storage.py:637
+#: virtinst/Storage.py:489 virtinst/Storage.py:666
 #, fuzzy
 msgid "Name of the host sharing the storage."
 msgstr "Nom de l'instance de l'invité"
 
-#: virtinst/Storage.py:514
+#: virtinst/Storage.py:510
 #, fuzzy, python-format
 msgid "Unknown Network Filesystem format: %s"
 msgstr "Type de réseau %s inconnu"
 
-#: virtinst/Storage.py:517
+#: virtinst/Storage.py:513
 msgid "Type of network filesystem."
 msgstr ""
 
-#: virtinst/Storage.py:529 virtinst/Storage.py:676
+#: virtinst/Storage.py:525 virtinst/Storage.py:705
 #, fuzzy
 msgid "Hostname is required"
 msgstr "Le nom du réseau n'est pas requis pour %s"
 
-#: virtinst/Storage.py:531 virtinst/Storage.py:614 virtinst/Storage.py:678
+#: virtinst/Storage.py:527 virtinst/Storage.py:643 virtinst/Storage.py:707
 msgid "Host path is required"
 msgstr ""
 
-#: virtinst/Storage.py:549
+#: virtinst/Storage.py:545
 msgid "Location of the existing LVM volume group."
 msgstr ""
 
-#: virtinst/Storage.py:576
-msgid "Path to the existing disk device."
+#: virtinst/Storage.py:570
+msgid "Optional device(s) to build new LVM volume on."
 msgstr ""
 
-#: virtinst/Storage.py:579 virtinst/Storage.py:640
-msgid "Root location for identifying new storage volumes."
+#: virtinst/Storage.py:593
+msgid "Must explicitly specify source path if building' pool"
+msgstr ""
+
+#: virtinst/Storage.py:609
+msgid "Path to the existing disk device."
 msgstr ""
 
-#: virtinst/Storage.py:585
-msgid "Disk volume creation is not implemented."
+#: virtinst/Storage.py:612 virtinst/Storage.py:669
+msgid "Root location for identifying new storage volumes."
 msgstr ""
 
-#: virtinst/Storage.py:600
+#: virtinst/Storage.py:629
 #, fuzzy, python-format
 msgid "Unknown Disk format: %s"
 msgstr "Type de réseau %s inconnu"
 
-#: virtinst/Storage.py:603
+#: virtinst/Storage.py:632
 msgid "Format of the source device's partition table."
 msgstr ""
 
-#: virtinst/Storage.py:626
+#: virtinst/Storage.py:655
 msgid "Must explicitly specify disk format if formatting disk device."
 msgstr ""
 
-#: virtinst/Storage.py:644
+#: virtinst/Storage.py:673
 msgid "iSCSI volume creation is not implemented."
 msgstr ""
 
-#: virtinst/Storage.py:694
+#: virtinst/Storage.py:734
 msgid "One of pool or pool_name must be specified."
 msgstr ""
 
-#: virtinst/Storage.py:697 virtinst/Storage.py:770
+#: virtinst/Storage.py:737 virtinst/Storage.py:806
 #, fuzzy
 msgid "'conn' must be specified with 'pool_name'"
 msgstr "Un emplacement depuis lequel installer doit être spécifié"
 
-#: virtinst/Storage.py:756
-msgid "Default volume target path range exceeded."
-msgstr ""
-
-#: virtinst/Storage.py:766
+#: virtinst/Storage.py:802
 msgid "Must specify pool_object or pool_name"
 msgstr ""
 
-#: virtinst/Storage.py:772
+#: virtinst/Storage.py:808
 msgid "Connection does not support storage management."
 msgstr ""
 
-#: virtinst/Storage.py:777
+#: virtinst/Storage.py:813
 #, python-format
 msgid "Couldn't find storage pool '%s': %s"
 msgstr ""
 
-#: virtinst/Storage.py:781
+#: virtinst/Storage.py:817
 msgid "pool_object must be a virStoragePool"
 msgstr ""
 
-#: virtinst/Storage.py:792
+#: virtinst/Storage.py:831
 msgid "Capacity must be a positive number"
 msgstr ""
 
-#: virtinst/Storage.py:813
+#: virtinst/Storage.py:852
 msgid "Allocation must be a non-negative number"
 msgstr ""
 
-#: virtinst/Storage.py:833
+#: virtinst/Storage.py:872
 msgid "'pool' must be a virStoragePool instance."
 msgstr ""
 
-#: virtinst/Storage.py:835
+#: virtinst/Storage.py:874
 #, python-format
 msgid "pool '%s' must be active."
 msgstr ""
 
-#: virtinst/Storage.py:844
+#: virtinst/Storage.py:886 virtinst/Storage.py:1120
+msgid "input_vol must be a virStorageVol"
+msgstr ""
+
+#: virtinst/Storage.py:888
+msgid ""
+"Creating storage from an existing volume is not supported by this libvirt "
+"version."
+msgstr ""
+
+#: virtinst/Storage.py:892
+msgid "virStorageVolume pointer to clone/use as input."
+msgstr ""
+
+#: virtinst/Storage.py:900
 #, fuzzy, python-format
 msgid "'%s' is not a valid format."
 msgstr "Le format de « cpuset » est invalide."
 
-#: virtinst/Storage.py:854
+#: virtinst/Storage.py:910
 #, fuzzy, python-format
 msgid "Name '%s' already in use by another volume."
 msgstr "Le disque %s est déjà en cours d'utilisation par un autre invité !\n"
 
-#: virtinst/Storage.py:924
+#: virtinst/Storage.py:963
+#, python-format
+msgid "Allocating '%s'"
+msgstr ""
+
+#: virtinst/Storage.py:1023
 #, python-format
 msgid ""
 "There is not enough free space on the storage pool to create the volume. (%d "
 "M requested allocation > %d M available)"
 msgstr ""
 
-#: virtinst/Storage.py:930
+#: virtinst/Storage.py:1029
 #, python-format
 msgid ""
 "The requested volume capacity will exceed the available pool space when the "
 "volume is fully allocated. (%d M requested capacity > %d M available)"
 msgstr ""
 
-#: virtinst/_util.py:111
+#: virtinst/_util.py:128
 msgid "UUID must be a string."
 msgstr "UUID doit être une chaîne de caractères."
 
-#: virtinst/_util.py:119
+#: virtinst/_util.py:136
 msgid ""
 "UUID must be a 32-digit hexadecimal number. It may take the form XXXXXXXX-"
 "XXXX-XXXX-XXXX-XXXXXXXXXXXX or may omit hyphens altogether."
@@ -878,302 +955,501 @@ msgstr ""
 "L'UUID doit être un nombre hexadécimal sur 32 bits. Il peut prendre la forme "
 "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX avec ou sans traits d'union."
 
-#: virtinst/_util.py:130
+#: virtinst/_util.py:147
 #, fuzzy, python-format
 msgid "%s name must be a string between 0 and 50 characters"
 msgstr ""
 "Le nom du système doit être une chaîne d'une longueur de 1 à 50 caractères"
 
-#: virtinst/_util.py:133
+#: virtinst/_util.py:150
 #, fuzzy, python-format
 msgid "%s name can not be only numeric characters"
 msgstr ""
 "Le nom du système ne doit pas être composé seulement de caractères numériques"
 
-#: virtinst/_util.py:136
+#: virtinst/_util.py:153
 #, fuzzy, python-format
 msgid "%s name can only contain alphanumeric, '_', '.', or '-' characters"
 msgstr ""
 "Le nom du système ne peut être composé que de caractères alphanumériques, de "
 "« _ », « . » ou « - »."
 
-#: virtinst/util.py:67
+#: virtinst/_util.py:276
+msgid "Name generation range exceeded."
+msgstr ""
+
+#: virtinst/util.py:69
 #, python-format
 msgid "Invalid line length while parsing %s."
 msgstr "Longueur de ligne invalide pendant l'analyse de %s."
 
-#: virtinst/util.py:68
+#: virtinst/util.py:70
 #, python-format
 msgid "Defaulting bridge to xenbr%d"
 msgstr "Pont fixé par défaut à xenbr%d"
 
-#: virtinst/util.py:568
+#: virtinst/util.py:538 virtconv/parsers/ovf.py:160
 msgid "'path' or 'func' is required."
 msgstr ""
 
-#: virtinst/VirtualAudio.py:38
+#: virtinst/VirtualAudio.py:40
 #, fuzzy, python-format
 msgid "'model' must be a string,  was '%s'."
 msgstr "La mémoire doit être un entier, mais elle est à « %s »"
 
-#: virtinst/VirtualAudio.py:41
+#: virtinst/VirtualAudio.py:43
 #, python-format
 msgid "Unsupported sound model '%s'"
 msgstr ""
 
-#: virtinst/VirtualDevice.py:43
+#: virtinst/VirtualCharDevice.py:64
+msgid "Psuedo TTY"
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:66
+msgid "Physical host character device"
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:68
+msgid "Standard input/output"
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:70
+msgid "Named pipe"
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:72
+msgid "Output to a file"
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:74
+msgid "Virtual console"
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:76
+msgid "Null device"
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:78
+msgid "TCP net console"
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:80
+msgid "UDP net console"
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:82
+msgid "Unix socket"
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:94
+msgid "Client mode."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:96
+msgid "Server mode."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:139
+#, fuzzy, python-format
+msgid "Unknown character device type '%s'."
+msgstr "Type de réseau %s inconnu"
+
+#: virtinst/VirtualCharDevice.py:147 virtinst/VirtualCharDevice.py:157
+#, fuzzy, python-format
+msgid "Unknown character device type '%s'"
+msgstr "Type de réseau %s inconnu"
+
+#: virtinst/VirtualCharDevice.py:173
+msgid "Method used to expose character device in the host."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:186
+#, fuzzy, python-format
+msgid "Unknown character mode '%s'."
+msgstr "Type de réseau %s inconnu"
+
+#: virtinst/VirtualCharDevice.py:213
+#, fuzzy, python-format
+msgid "Unknown protocol '%s'."
+msgstr "Type de réseau %s inconnu"
+
+#: virtinst/VirtualCharDevice.py:232
+#, python-format
+msgid "A source path is required for character device type '%s'"
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:282
+msgid "Host character device to attach to guest."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:288
+msgid "Named pipe to use for input and output."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:294
+msgid "File path to record device output."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:302 virtinst/VirtualCharDevice.py:312
+msgid "Target connect/listen mode."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:305
+msgid "Unix socket path."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:315
+msgid "Address to connect/listen to."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:318
+msgid "Port on target host to connect/listen to."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:321
+msgid "Format used when sending data."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:325
+#, fuzzy
+msgid "A host and port must be specified."
+msgstr "Un emplacement depuis lequel installer doit être spécifié"
+
+#: virtinst/VirtualCharDevice.py:337
+msgid "Host address to bind to."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:340
+msgid "Host port to bind to."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:343
+msgid "Host address to send output to."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:346
+msgid "Host port to send output to."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:351
+#, fuzzy
+msgid "A connection port must be specified."
+msgstr "Un emplacement depuis lequel installer doit être spécifié"
+
+#: virtinst/VirtualDevice.py:63
+msgid "Virtual device type must be set in subclass."
+msgstr ""
+
+#: virtinst/VirtualDevice.py:66
+#, fuzzy, python-format
+msgid "Unknown virtual device type '%s'."
+msgstr "Type de réseau %s inconnu"
+
+#: virtinst/VirtualDevice.py:71
 msgid "'conn' must be a virConnect instance"
 msgstr ""
 
-#: virtinst/VirtualDevice.py:67
+#: virtinst/VirtualDevice.py:104
 #, fuzzy, python-format
 msgid "'%s' must be True or False"
 msgstr "« Graphics enabled » doit être à « True » ou « False »"
 
-#: virtinst/VirtualDevice.py:71
+#: virtinst/VirtualDevice.py:108
 #, fuzzy, python-format
 msgid "'%s' must be a string, not '%s'."
 msgstr "Le chemin d'accès %s doit être une chaîne de caractères ou « None »."
 
-#: virtinst/VirtualDisk.py:205
+#: virtinst/VirtualDisk.py:262
+#, python-format
+msgid "Error validating clone path: %s"
+msgstr ""
+
+#: virtinst/VirtualDisk.py:271
 #, fuzzy
 msgid "'size' must be a number greater than 0."
 msgstr "La valeur de la mémoire doit être un entier supérieur à 0"
 
-#: virtinst/VirtualDisk.py:215
+#: virtinst/VirtualDisk.py:281
 #, fuzzy, python-format
 msgid "Unknown storage type '%s'"
 msgstr "Type de réseau %s inconnu"
 
-#: virtinst/VirtualDisk.py:224
+#: virtinst/VirtualDisk.py:290
 #, fuzzy, python-format
 msgid "Unknown device type '%s'"
 msgstr "Type de réseau %s inconnu"
 
-#: virtinst/VirtualDisk.py:258
+#: virtinst/VirtualDisk.py:324
 msgid "vol_object must be a virStorageVol instance"
 msgstr ""
 
-#: virtinst/VirtualDisk.py:266
+#: virtinst/VirtualDisk.py:332
 msgid "vol_install must be a StorageVolume  instance."
 msgstr ""
 
-#: virtinst/VirtualDisk.py:292
+#: virtinst/VirtualDisk.py:358
 #, fuzzy, python-format
 msgid "Unknown cache mode '%s'"
 msgstr "Type de réseau %s inconnu"
 
-#: virtinst/VirtualDisk.py:353
+#: virtinst/VirtualDisk.py:373
+#, fuzzy, python-format
+msgid "SELinux label '%s' is not valid."
+msgstr "Le format de « cpuset » est invalide."
+
+#: virtinst/VirtualDisk.py:433
 #, fuzzy
 msgid "Unknown storage volume type."
 msgstr "Type de réseau inconnu "
 
-#: virtinst/VirtualDisk.py:372
+#: virtinst/VirtualDisk.py:449
 #, python-format
 msgid "Passed type '%s' does not match detected storage type '%s'"
 msgstr ""
 
-#: virtinst/VirtualDisk.py:382
+#: virtinst/VirtualDisk.py:504
 msgid "volName must be a tuple of the form ('poolname', 'volname')"
 msgstr ""
 
-#: virtinst/VirtualDisk.py:385
+#: virtinst/VirtualDisk.py:507
 msgid "'volName' requires a passed connection."
 msgstr ""
 
-#: virtinst/VirtualDisk.py:387
+#: virtinst/VirtualDisk.py:509
 msgid "Connection does not support storage lookup."
 msgstr ""
 
-#: virtinst/VirtualDisk.py:393
+#: virtinst/VirtualDisk.py:515
 #, python-format
 msgid "Couldn't lookup volume object: %s"
 msgstr ""
 
-#: virtinst/VirtualDisk.py:436
+#: virtinst/VirtualDisk.py:540
+#, fuzzy, python-format
+msgid "Device type '%s' requires a path"
+msgstr "Le type de disque %s exige un chemin d'accès"
+
+#: virtinst/VirtualDisk.py:583
 #, fuzzy, python-format
 msgid "Size must be specified for non existent volume path '%s'"
 msgstr "Une taille doit être spécifiée pour les disques qui n'existent pas."
 
-#: virtinst/VirtualDisk.py:459
+#: virtinst/VirtualDisk.py:603
 #, python-format
 msgid ""
 "Cannot use storage '%(path)s': '%(rootdir)s' is not managed on the remote "
 "host."
 msgstr ""
 
-#: virtinst/VirtualDisk.py:464
+#: virtinst/VirtualDisk.py:608
 #, python-format
 msgid "Cannot use storage %(path)s: %(err)s"
 msgstr ""
 
-#: virtinst/VirtualDisk.py:517
+#: virtinst/VirtualDisk.py:686
 msgid "Connection doesn't support remote storage."
 msgstr ""
 
-#: virtinst/VirtualDisk.py:534
-#, fuzzy, python-format
-msgid "Device type '%s' requires a path"
-msgstr "Le type de disque %s exige un chemin d'accès"
-
-#: virtinst/VirtualDisk.py:549
+#: virtinst/VirtualDisk.py:689
 msgid "Must specify libvirt managed storage if on a remote connection"
 msgstr ""
 
-#: virtinst/VirtualDisk.py:558
+#: virtinst/VirtualDisk.py:726
 #, fuzzy, python-format
 msgid "The path '%s' must be a file or a device, not a directory"
 msgstr ""
 "Le chemin d'accès %s doit correspondre à un fichier ou un périphérique, pas "
 "à un répertoire"
 
-#: virtinst/VirtualDisk.py:568
+#: virtinst/VirtualDisk.py:735
 #, fuzzy, python-format
 msgid "Cannot create storage for %s device."
 msgstr "Création du fichier de stockage..."
 
-#: virtinst/VirtualDisk.py:573
-#, fuzzy
-msgid "Local block device path must exist."
+#: virtinst/VirtualDisk.py:740
+#, fuzzy, python-format
+msgid "Local block device path '%s' must exist."
 msgstr "Le périphérique en mode bloc spécifié n'existe pas."
 
-#: virtinst/VirtualDisk.py:581
+#: virtinst/VirtualDisk.py:749
 #, fuzzy, python-format
 msgid "size is required for non-existent disk '%s'"
 msgstr "Une taille doit être spécifiée pour les disques qui n'existent pas."
 
-#: virtinst/VirtualDisk.py:584
+#: virtinst/VirtualDisk.py:752
 #, python-format
 msgid "No write access to directory '%s'"
 msgstr ""
 
-#: virtinst/VirtualDisk.py:620
-msgid "Creating storage file..."
+#: virtinst/VirtualDisk.py:777
+#, python-format
+msgid "Cloning %(srcfile)s"
+msgstr ""
+
+#: virtinst/VirtualDisk.py:780
+#, fuzzy, python-format
+msgid "Creating storage file %s"
 msgstr "Création du fichier de stockage..."
 
-#: virtinst/VirtualDisk.py:626
+#: virtinst/VirtualDisk.py:793
+msgid "copying to an existing vdisk is not supported"
+msgstr ""
+
+#: virtinst/VirtualDisk.py:796
+msgid "failed to clone disk"
+msgstr ""
+
+#: virtinst/VirtualDisk.py:807
 #, python-format
 msgid "Error creating vdisk %s"
 msgstr ""
 
-#: virtinst/VirtualDisk.py:647
+#: virtinst/VirtualDisk.py:832
 #, python-format
 msgid "Error creating diskimage %s: %s"
 msgstr ""
 
-#: virtinst/VirtualDisk.py:669
+#: virtinst/VirtualDisk.py:932
 msgid "'disknode' or self.target must be set!"
 msgstr ""
 
-#: virtinst/VirtualDisk.py:741
+#: virtinst/VirtualDisk.py:1003
 msgid ""
 "The filesystem will not have enough free space to fully allocate the sparse "
 "file when the guest is running."
 msgstr ""
 
-#: virtinst/VirtualDisk.py:746
+#: virtinst/VirtualDisk.py:1008
 msgid "There is not enough free space to create the disk."
 msgstr ""
 
-#: virtinst/VirtualDisk.py:750
+#: virtinst/VirtualDisk.py:1012
 #, python-format
 msgid " %d M requested > %d M available"
 msgstr ""
 
-#: virtinst/VirtualDisk.py:840
+#: virtinst/VirtualDisk.py:1175
 msgid "Cannot determine device bus/type."
 msgstr ""
 
-#: virtinst/VirtualDisk.py:847
+#: virtinst/VirtualDisk.py:1182
 msgid "IDE CDROM must use 'hdc', but target in use."
 msgstr ""
 
-#: virtinst/VirtualDisk.py:863
+#: virtinst/VirtualDisk.py:1198
 #, python-format
 msgid "No more space for disks of type '%s'"
 msgstr ""
 
-#: virtinst/VirtualGraphics.py:38
+#: virtinst/VirtualGraphics.py:40
 msgid "Unknown graphics type"
 msgstr "Type de graphique inconnu"
 
-#: virtinst/VirtualGraphics.py:61
+#: virtinst/VirtualGraphics.py:63
 msgid "Keymap must be a string"
 msgstr "« Keymap » doit être une chaîne de caractères"
 
-#: virtinst/VirtualGraphics.py:63
+#: virtinst/VirtualGraphics.py:65
 msgid "Keymap must be less than 16 characters"
 msgstr "« Keymap » doit contenir moins de 16 caractères"
 
-#: virtinst/VirtualGraphics.py:65
+#: virtinst/VirtualGraphics.py:67
 msgid "Keymap can only contain alphanumeric, '_', or '-' characters"
 msgstr ""
 "« Keymap » ne peut contenir que des caractères alphanumériques, « _ » ou « - »"
 
-#: virtinst/VirtualGraphics.py:76
+#: virtinst/VirtualGraphics.py:78
 msgid ""
 "VNC port must be a number between 5900 and 65535, or -1 for auto allocation"
 msgstr ""
 
-#: virtinst/VirtualHostDevice.py:39
+#: virtinst/VirtualHostDevice.py:43
 msgid "'name' or 'nodedev' required."
 msgstr ""
 
-#: virtinst/VirtualHostDevice.py:58
+#: virtinst/VirtualHostDevice.py:62
 #, python-format
 msgid "Node device type '%s' cannot be attached to  guest."
 msgstr ""
 
-#: virtinst/VirtualHostDevice.py:124
+#: virtinst/VirtualHostDevice.py:130
 msgid "'nodedev' must be a USBDevice instance."
 msgstr ""
 
-#: virtinst/VirtualHostDevice.py:140
+#: virtinst/VirtualHostDevice.py:146
 msgid "'vendor' and 'product', or 'bus' and  'device' are required."
 msgstr ""
 
-#: virtinst/VirtualHostDevice.py:173
+#: virtinst/VirtualHostDevice.py:179
 msgid "'nodedev' must be a PCIDevice instance."
 msgstr ""
 
-#: virtinst/VirtualHostDevice.py:182
+#: virtinst/VirtualHostDevice.py:188
 msgid "'domain', 'bus', 'slot', and 'function' must be specified."
 msgstr ""
 
-#: virtinst/VirtualHostDevice.py:207
+#: virtinst/VirtualHostDevice.py:215
 #, python-format
 msgid "Could not detach PCI device: %s"
 msgstr ""
 
-#: virtinst/VirtualNetworkInterface.py:40
-#, fuzzy
-msgid "MAC address must be a string."
-msgstr "« Keymap » doit être une chaîne de caractères"
+#: virtinst/VirtualInputDevice.py:46
+#, fuzzy, python-format
+msgid "Unknown input type '%s'."
+msgstr "Type de réseau %s inconnu"
 
-#: virtinst/VirtualNetworkInterface.py:46
-msgid "MAC address must be of the format AA:BB:CC:DD:EE:FF"
-msgstr "L'adresse MAC doit avoir le format AA:BB:CC:DD:EE:FF"
+#: virtinst/VirtualInputDevice.py:54
+#, fuzzy, python-format
+msgid "Unknown input bus '%s'."
+msgstr "Type de réseau %s inconnu"
+
+#: virtinst/VirtualNetworkInterface.py:45
+msgid "Shared physical device"
+msgstr ""
+
+#: virtinst/VirtualNetworkInterface.py:47
+msgid "Virtual networking"
+msgstr ""
+
+#: virtinst/VirtualNetworkInterface.py:49
+msgid "Usermode networking"
+msgstr ""
 
-#: virtinst/VirtualNetworkInterface.py:57
+#: virtinst/VirtualNetworkInterface.py:51
+#, fuzzy, python-format
+msgid "Unknown network type '%s'"
+msgstr "Type de réseau %s inconnu"
+
+#: virtinst/VirtualNetworkInterface.py:72
 msgid "A network name was not provided"
 msgstr "Aucun nom de réseau n'a été spécifié"
 
-#: virtinst/VirtualNetworkInterface.py:63
+#: virtinst/VirtualNetworkInterface.py:78
 #, python-format
 msgid "Unknown network type %s"
 msgstr "Type de réseau %s inconnu"
 
-#: virtinst/VirtualNetworkInterface.py:79
+#: virtinst/VirtualNetworkInterface.py:90
+#, fuzzy
+msgid "MAC address must be a string."
+msgstr "« Keymap » doit être une chaîne de caractères"
+
+#: virtinst/VirtualNetworkInterface.py:94
+msgid "MAC address must be of the format AA:BB:CC:DD:EE:FF"
+msgstr "L'adresse MAC doit avoir le format AA:BB:CC:DD:EE:FF"
+
+#: virtinst/VirtualNetworkInterface.py:113
 #, fuzzy, python-format
 msgid "Virtual network '%s' does not exist: %s"
 msgstr "L'image du CD live « %s » n'existe pas"
 
-#: virtinst/VirtualNetworkInterface.py:82
+#: virtinst/VirtualNetworkInterface.py:116
 #, python-format
 msgid "Virtual network '%s' has not been started."
 msgstr ""
 
-#: virtinst/VirtualNetworkInterface.py:105
+#: virtinst/VirtualNetworkInterface.py:139
 #, fuzzy
 msgid ""
 "The MAC address you entered is already in use by another active virtual "
@@ -1182,14 +1458,14 @@ msgstr ""
 "L'adresse MAC que vous avez donnée est déjà utilisée par une autre machine "
 "virtuelle inactive !"
 
-#: virtinst/VirtualNetworkInterface.py:108
+#: virtinst/VirtualNetworkInterface.py:142
 #, fuzzy
 msgid ""
 "The MAC address you entered conflicts with a device on the physical host."
 msgstr ""
 "L'adresse MAC que vous avez entrée est en conflit avec le NIC physique."
 
-#: virtinst/VirtualNetworkInterface.py:110
+#: virtinst/VirtualNetworkInterface.py:144
 #, fuzzy
 msgid ""
 "The MAC address you entered is already in use by another inactive virtual "
@@ -1198,12 +1474,12 @@ msgstr ""
 "L'adresse MAC que vous avez donnée est déjà utilisée par une autre machine "
 "virtuelle inactive !"
 
-#: virtconv/diskcfg.py:242
+#: virtconv/diskcfg.py:251
 #, fuzzy, python-format
 msgid "Cannot convert to disk format %s"
 msgstr "Type de réseau %s inconnu"
 
-#: virtconv/diskcfg.py:255
+#: virtconv/diskcfg.py:264
 #, python-format
 msgid "Cannot convert disk with absolute path %s"
 msgstr ""
@@ -1230,6 +1506,28 @@ msgstr ""
 msgid "Disk %s:%s storage does not exist"
 msgstr "Le disque système %s n'existe pas"
 
+#: virtconv/parsers/ovf.py:212
+#, python-format
+msgid "Didn't find parent bus for disk '%s'"
+msgstr ""
+
+#: virtconv/parsers/ovf.py:226 virtconv/parsers/ovf.py:242
+#, fuzzy, python-format
+msgid "Unknown reference id '%s' for path %s."
+msgstr "Type de réseau %s inconnu"
+
+#: virtconv/parsers/ovf.py:235
+#, fuzzy, python-format
+msgid "Unknown storage path type %s."
+msgstr "Type de réseau %s inconnu"
+
+#: virtconv/parsers/ovf.py:396
+#, python-format
+msgid ""
+"OVF section '%s' is listed as required, but parser doesn't know how to "
+"handle it."
+msgstr ""
+
 #: virtconv/parsers/virtimage.py:212
 #, python-format
 msgid "Couldn't import file '%s': %s"
@@ -1259,76 +1557,73 @@ msgstr ""
 msgid "No displayName defined in \"%s\""
 msgstr ""
 
-#: virt-clone:43
+#: virt-clone:47
 msgid "What is the name for the cloned virtual machine?"
 msgstr "Quel est le nom de la machine virtuelle clonée ?"
 
-#: virt-clone:61
+#: virt-clone:48
+#, fuzzy
+msgid "A name is required for the new virtual machine."
+msgstr "Quel est le nom de la machine virtuelle clonée ?"
+
+#: virt-clone:65
 #, fuzzy
 msgid "What is the name of the original virtual machine?"
 msgstr "Quel est le nom ou l'UUID de la machine virtuelle originale ?"
 
-#: virt-clone:102
+#: virt-clone:66
+#, fuzzy
+msgid "An original machine name or xml file is required."
+msgstr "Le nom du réseau n'est pas requis pour %s"
+
+#: virt-clone:112
 #, fuzzy, python-format
 msgid "What would you like to use as the cloned disk (file path) for '%s'?"
 msgstr "Que souhaitez-vous utiliser comme disque (chemin d'accès) ?"
 
-#: virt-clone:113
-#, python-format
-msgid "This will overwrite the existing path '%s'!\n"
-msgstr ""
-
-#: virt-clone:115
-#, fuzzy
-msgid "Do you really want to use this disk (yes or no)?"
-msgstr "Voulez-vous vraiment utiliser le disque (« yes » ou « no ») ? "
-
-#: virt-clone:120 virt-install:206 virt-install.orig:206
-#, python-format
-msgid "Disk %s is already in use by another guest!\n"
-msgstr "Le disque %s est déjà en cours d'utilisation par un autre invité !\n"
-
-#: virt-clone:121 virt-install:207 virt-install.orig:207
-msgid "Do you really want to use the disk (yes or no)? "
-msgstr "Voulez-vous vraiment utiliser le disque (« yes » ou « no ») ? "
-
-#: virt-clone:148 virt-image:88 virt-install:334 virt-install.orig:334
+#: virt-clone:134 virt-image:78 virt-install:499
 msgid "Connect to hypervisor with URI"
 msgstr "Se connecter à l'hyperviseur via l'URI"
 
-#: virt-clone:151 virt-image:91 virt-install:337 virt-install.orig:337
+#: virt-clone:137 virt-image:81 virt-install:502
 msgid "General Options"
 msgstr ""
 
-#: virt-clone:154
+#: virt-clone:140
 #, fuzzy
 msgid "Name of the original guest; The status must be shut off or paused."
 msgstr "Nom ou UUID pour l'invité original ; son statut doit être « arrêté »"
 
-#: virt-clone:159
+#: virt-clone:145
 #, fuzzy
 msgid "XML file to use as the original guest."
 msgstr "Fichier à utiliser en tant qu'image de disque"
 
-#: virt-clone:162
+#: virt-clone:147
+msgid ""
+"Auto generate clone name and storage paths from the original guest "
+"configuration."
+msgstr ""
+
+#: virt-clone:151
 msgid "Name for the new guest"
 msgstr "Nom du nouvel invité"
 
-#: virt-clone:166
+#: virt-clone:155
 msgid "New UUID for the clone guest; Default is a randomly generated UUID"
 msgstr ""
 "Nouvel UUID pour l'invité cloné ; par défaut, un UUID aléatoire est généré"
 
-#: virt-clone:170 virt-install:415 virt-install.orig:415
+#: virt-clone:159 virt-install:588
 msgid "Storage Configuration"
 msgstr ""
 
-#: virt-clone:174
+#: virt-clone:163
 msgid "New file to use as the disk image for the new guest"
 msgstr ""
 "Nouveau fichier à utiliser en tant qu'image de disque pour le nouvel invité"
 
-#: virt-clone:179
+#: virt-clone:168
 msgid ""
 "Force to copy devices (eg, if 'hdc' is a readonly cdrom device, --force-"
 "copy=hdc)"
@@ -1336,22 +1631,22 @@ msgstr ""
 "Forcer la copie des périphériques (par exemple, si « hdc » est un lecteur de "
 "CD-ROM, -- force-copy=hdc)"
 
-#: virt-clone:183
+#: virt-clone:172
 msgid "Do not use a sparse file for the clone's disk image"
 msgstr ""
 "Ne pas utiliser un fichier dynamique pour le clone de l'image de disque"
 
-#: virt-clone:187
+#: virt-clone:176
 msgid "Preserve a new file to use as the disk image for the new guest"
 msgstr ""
 "Préserver un nouveau fichier à utiliser en tant qu'image de disque pour le "
 "nouvel invité"
 
-#: virt-clone:191 virt-image:128 virt-install:435 virt-install.orig:435
+#: virt-clone:180 virt-image:118 virt-install:610
 msgid "Networking Configuration"
 msgstr ""
 
-#: virt-clone:195
+#: virt-clone:184
 msgid ""
 "New fixed MAC address for the clone guest. Default is a randomly generated "
 "MAC"
@@ -1359,34 +1654,37 @@ msgstr ""
 "Nouvelle adresse MAC fixe pour l'invité cloné ; par défaut, une adresse "
 "aléatoire est générée"
 
-#: virt-clone:199 virt-image:158 virt-install:470 virt-install.orig:470
+#: virt-clone:188 virt-image:138 virt-install:639
 msgid "Miscellaneous Options"
 msgstr ""
 
-#: virt-clone:201 virt-convert:91 virt-image:172 virt-install:472
-#: virt-install.orig:472
+#: virt-clone:190 virt-convert:91 virt-image:152 virt-install:641
 msgid "Print debugging information"
 msgstr "Imprime des informations de débogage"
 
-#: virt-clone:203 virt-image:174
+#: virt-clone:192 virt-image:154 virt-install:652
+msgid "Request user input for ambiguous situations or required options."
+msgstr ""
+
+#: virt-clone:195 virt-image:157
 msgid ""
 "Do not prompt for input. Answers yes where applicable, terminates for all "
 "other prompts"
 msgstr ""
 
-#: virt-clone:219
+#: virt-clone:212
 #, fuzzy
 msgid "Must be privileged to clone Xen guests"
 msgstr "Il faut être superutilisateur pour cloner des invités Xen"
 
-#: virt-clone:250
+#: virt-clone:242
 #, python-format
 msgid ""
 "\n"
 "Clone '%s' created successfully."
 msgstr ""
 
-#: virt-clone:265 virt-image:283 virt-install:784 virt-install.orig:784
+#: virt-clone:257 virt-image:267 virt-install:933
 #, fuzzy
 msgid "Installation aborted at user request"
 msgstr ""
@@ -1404,11 +1702,11 @@ msgstr ""
 msgid "Output disk format"
 msgstr ""
 
-#: virt-convert:60 virt-install:386 virt-install.orig:386
+#: virt-convert:60 virt-install:557
 msgid "This guest should be a fully virtualized guest"
 msgstr "Cet invité devrait être complètement virtualisé"
 
-#: virt-convert:62 virt-install:388 virt-install.orig:388
+#: virt-convert:62 virt-install:559
 msgid "This guest should be a paravirtualized guest"
 msgstr "Cet invité devrait être paravirtualisé"
 
@@ -1416,7 +1714,7 @@ msgstr "Cet invité devrait être paravirtualisé"
 msgid "Machine Architecture Type (i686/x86_64/ppc)"
 msgstr ""
 
-#: virt-convert:71 virt-install:360 virt-install.orig:360
+#: virt-convert:71 virt-install:525
 msgid ""
 "The OS type for fully virtualized guests, e.g. 'linux', 'unix', 'windows'"
 msgstr ""
@@ -1432,7 +1730,7 @@ msgstr ""
 "La variante de SE pour les invités complètement virtualisés, par exemple « "
 "fedora6 », « rhel5 x, « solaris10 », « win2k », « vista »"
 
-#: virt-convert:78 virt-install:376 virt-install.orig:376
+#: virt-convert:78 virt-install:547
 msgid ""
 "Disables APIC for fully virtualized guest (overrides value in os-type/os-"
 "variant db)"
@@ -1440,7 +1738,7 @@ msgstr ""
 "Désactive l'APIC pour les invités complètement virtualisés (surcharge la "
 "valeur de la base de données des os-type/os-variant)"
 
-#: virt-convert:82 virt-install:380 virt-install.orig:380
+#: virt-convert:82 virt-install:551
 msgid ""
 "Disables ACPI for fully virtualized guest (overrides value in os-type/os-"
 "variant db)"
@@ -1452,133 +1750,133 @@ msgstr ""
 msgid "Don't be verbose"
 msgstr ""
 
-#: virt-convert:97
+#: virt-convert:100
 #, fuzzy
 msgid "You need to provide an input VM definition"
 msgstr "Vous devez spécifier un descripteur XML d'image"
 
-#: virt-convert:99
+#: virt-convert:102
 msgid "Too many arguments provided"
 msgstr ""
 
-#: virt-convert:103
+#: virt-convert:106
 #, fuzzy, python-format
 msgid "Unknown output disk format \"%s\""
 msgstr "Type de réseau %s inconnu"
 
-#: virt-convert:118
+#: virt-convert:121
 #, fuzzy, python-format
 msgid "Unknown output format \"%s\")"
 msgstr "Type de réseau %s inconnu"
 
-#: virt-convert:120
+#: virt-convert:123
 #, python-format
 msgid "No output handler for format \"%s\")"
 msgstr ""
 
-#: virt-convert:124
+#: virt-convert:127
 #, python-format
 msgid "Couldn't access input argument \"%s\"\n"
 msgstr ""
 
-#: virt-convert:131
+#: virt-convert:134
 #, python-format
 msgid "Couldn't determine input format for \"%s\": %s"
 msgstr ""
 
-#: virt-convert:136
+#: virt-convert:139
 #, fuzzy, python-format
 msgid "Unknown input format \"%s\")"
 msgstr "Type de réseau %s inconnu"
 
-#: virt-convert:138
+#: virt-convert:141
 #, python-format
 msgid "No input handler for format \"%s\""
 msgstr ""
 
-#: virt-convert:173
+#: virt-convert:176
 #, python-format
 msgid "Couldn't clean up output directory \"%s\": %s"
 msgstr ""
 
-#: virt-convert:190 virt-convert:193
+#: virt-convert:192 virt-convert:195
 #, python-format
 msgid "Couldn't import file \"%s\": %s"
 msgstr ""
 
-#: virt-convert:230
+#: virt-convert:232
 #, python-format
 msgid "Generating output in '%(format)s' format to %(dir)s/"
 msgstr ""
 
-#: virt-convert:249
+#: virt-convert:251
 #, python-format
 msgid "Converting disk '%(path)s' to type %(format)s..."
 msgstr ""
 
-#: virt-convert:256 virt-convert:259
+#: virt-convert:258 virt-convert:261
 #, python-format
 msgid "Couldn't convert disks: %s"
 msgstr ""
 
-#: virt-convert:265
+#: virt-convert:267
 #, python-format
 msgid "Couldn't export to file \"%s\": %s"
 msgstr ""
 
-#: virt-convert:277
+#: virt-convert:279
 #, fuzzy
 msgid "Aborted at user request"
 msgstr ""
 "Les installations NFS ne sont prises en charge que par le superutilisateur"
 
-#: virt-image:64
+#: virt-image:50
 #, python-format
 msgid ""
 "Warning: more networks were provided [%i] then nics required [%i]. All "
-"extras are ignored"
+"extras are ignored."
 msgstr ""
 
-#: virt-image:68
+#: virt-image:55
 #, fuzzy, python-format
-msgid "The image requires %i network interface"
+msgid "The image requires %i network interface."
 msgstr "L'image a besoin d'une interface réseau"
 
-#: virt-image:94 virt-install:340 virt-install.orig:340
+#: virt-image:84 virt-install:505
 msgid "Name of the guest instance"
 msgstr "Nom de l'instance de l'invité"
 
-#: virt-image:96 virt-install:342 virt-install.orig:342
+#: virt-image:86 virt-install:507
 msgid "Memory to allocate for guest instance in megabytes"
 msgstr "Mémoire à allouer à l'instance de l'invité en Mo"
 
-#: virt-image:100 virt-install:349 virt-install.orig:349
+#: virt-image:90 virt-install:514
 #, fuzzy
 msgid "UUID for the guest."
 msgstr "Nom du nouvel invité"
 
-#: virt-image:102 virt-install:351 virt-install.orig:351
+#: virt-image:92 virt-install:516
 msgid "Number of vcpus to configure for your guest"
 msgstr "Nombre d'UC virtuelles à configurer pour votre invité"
 
-#: virt-image:104 virt-install:353 virt-install.orig:353
+#: virt-image:94 virt-install:518
 msgid "Check that vcpus do not exceed physical CPUs and warn if they do."
 msgstr ""
 "Vérifier si il n'y a pas plus d'UC virtuelles que d'UC physiques et prévenir "
 "si c'est le cas."
 
-#: virt-image:108 virt-install:357 virt-install.orig:357
+#: virt-image:98 virt-install:522
 msgid "Set which physical CPUs Domain can use."
 msgstr "Donner l'UC physique que le domaine peut utiliser"
 
-#: virt-image:111
+#: virt-image:101
 #, fuzzy
 msgid "The OS type being installed, e.g. 'linux', 'unix', 'windows'"
 msgstr ""
 "Le type de SE pour les invités complètement virtualisés, par exemple « linux "
 "», « unix », « windows »"
 
-#: virt-image:115
+#: virt-image:105
 #, fuzzy
 msgid ""
 "The OS variant being installed, e.g. 'fedora6', 'rhel5', 'solaris10', 'win2k'"
@@ -1586,99 +1884,59 @@ msgstr ""
 "La variante de SE pour les invités complètement virtualisés, par exemple « "
 "fedora6 », « rhel5 x, « solaris10 », « win2k », « vista »"
 
-#: virt-image:119 virt-install:371 virt-install.orig:371
+#: virt-image:109 virt-install:542
 msgid "Full Virtualization specific options"
 msgstr ""
 
-#: virt-image:122
+#: virt-image:112
 #, fuzzy
 msgid "Disables APIC for fully virtualized guest"
 msgstr "Cet invité devrait être complètement virtualisé"
 
-#: virt-image:125
+#: virt-image:115
 #, fuzzy
 msgid "Disables ACPI for fully virtualized guest"
 msgstr "Cet invité devrait être complètement virtualisé"
 
-#: virt-image:131 virt-install:438 virt-install.orig:438
+#: virt-image:121
 msgid ""
-"Bridge to connect guest NIC to; if none given, will try to determine the "
-"default"
+"Specify a network interface. Ex:\n"
+"--network bridge=mybr0\n"
+"--network network=libvirt_network_name\n"
+"--network network=mynet,model=e1000,mac=00:11..."
 msgstr ""
-"Pont auquel connecter le NIC invité ; si aucun pont n'est donné, la valeur "
-"par défaut sera recherchée"
-
-#: virt-image:135 virt-install:442 virt-install.orig:442
-msgid ""
-"Connect the guest to a virtual network, forwarding to the physical network "
-"with NAT"
-msgstr ""
-"Connecter l'invité à un réseau virtuel, avec un réacheminement NAT vers le "
-"réseau physique"
-
-#: virt-image:139 virt-install:446 virt-install.orig:446
-msgid ""
-"Fixed MAC address for the guest; if none or RANDOM is given a random address "
-"will be used"
-msgstr ""
-"Adresse MAC fixe pour l'invité ; si aucune adresse ou « RANDOM » est donné, "
-"une adresse aléatoire sera utilisée"
-
-#: virt-image:143 virt-install:452 virt-install.orig:452
-msgid "Graphics Configuration"
-msgstr ""
-
-#: virt-image:145 virt-install:454 virt-install.orig:454
-msgid "Use VNC for graphics support"
-msgstr "Utiliser VNC pour la prise en charge de l'interface graphique"
-
-#: virt-image:147 virt-install:456 virt-install.orig:456
-msgid "Port to use for VNC"
-msgstr "Port à utiliser pour VNC"
-
-#: virt-image:149 virt-install:458 virt-install.orig:458
-msgid "Use SDL for graphics support"
-msgstr "Utiliser SDL pour la prise en charge de l'interface graphique"
 
-#: virt-image:151 virt-install:460 virt-install.orig:460
-msgid "Don't set up a graphical console for the guest."
-msgstr "Ne pas configurer de console graphique pour l'invité."
-
-#: virt-image:154 virt-install:467 virt-install.orig:467
-msgid "set up keymap for a graphical console"
-msgstr "Configurer un clavier pour une console graphique"
-
-#: virt-image:160
+#: virt-image:140
 msgid "Print the libvirt XML, but do not start the domain"
 msgstr "Affiche le XML de libvirt, mais ne démarre pas le domaine"
 
-#: virt-image:163
+#: virt-image:143
 msgid "The zero-based index of the boot record to use"
 msgstr "L'index « zero-based » du secteur de boot à utiliser."
 
-#: virt-image:165
+#: virt-image:145
 msgid "Overwrite, or destroy, an existing image with the same name"
 msgstr ""
 
-#: virt-image:170
+#: virt-image:150
 msgid "Skip disk checksum verification process"
 msgstr ""
 
-#: virt-image:182
+#: virt-image:165
 msgid "You need to provide an image XML descriptor"
 msgstr "Vous devez spécifier un descripteur XML d'image"
 
-#: virt-image:200
+#: virt-image:184
 #, fuzzy
 msgid "Cannot parse"
 msgstr "Impossible de lire %s"
 
-#: virt-image:205
+#: virt-image:189
 #, python-format
 msgid "The index for --boot must be between 0 and %d"
 msgstr "L'index pour --boot doit être compris entre 0 et %d"
 
-#: virt-image:261
+#: virt-image:245
 #, python-format
 msgid ""
 "\n"
@@ -1689,11 +1947,11 @@ msgstr ""
 "\n"
 "Création de l'invité %s..."
 
-#: virt-image:265
+#: virt-image:249
 msgid "Guest creation failed"
 msgstr "La création de l'invité a échoué"
 
-#: virt-image:271
+#: virt-image:255
 #, python-format
 msgid ""
 "Domain creation may not have been\n"
@@ -1706,120 +1964,157 @@ msgstr ""
 "« virsh start %s » ; dans le cas contraire,\n"
 "veuillez redémarrer votre installation."
 
-#: virt-install:70 virt-install.orig:70
+#: virt-install:84
 #, python-format
 msgid "Couldn't create default storage pool '%s': %s"
 msgstr ""
 
-#: virt-install:93 virt-install.orig:93
-msgid "--disk path must start with path=, pool=, or vol=."
+#: virt-install:107
+#, python-format
+msgid "%(chartype)s type %(devtype)s does not support '%(optname)s' option."
 msgstr ""
 
-#: virt-install:121 virt-install:133 virt-install.orig:121
-#: virt-install.orig:133
+#: virt-install:133
+#, fuzzy, python-format
+msgid "Unknown option(s) %s"
+msgstr "Type de réseau %s inconnu"
+
+#: virt-install:147
 #, python-format
-msgid "Unknown '%s' value '%s'"
+msgid "Error in %(chartype)s device parameters: %(err)s"
 msgstr ""
 
-#: virt-install:126 virt-install.orig:126
-#, python-format
-msgid "Improper value for 'size': %s"
+#: virt-install:170
+msgid "--disk path must start with path=, pool=, or vol=."
 msgstr ""
 
-#: virt-install:137 virt-install.orig:137
+#: virt-install:177
 #, python-format
 msgid "Unknown --disk option '%s'."
 msgstr ""
 
-#: virt-install:147 virt-install.orig:147
-#, fuzzy
-msgid "Size must be specified with all 'pool='"
-msgstr "Un emplacement depuis lequel installer doit être spécifié"
-
-#: virt-install:160 virt-install.orig:160
-msgid "Storage volume must be specified as pool=poolname/volname"
+#: virt-install:185 virt-install:197
+#, python-format
+msgid "Unknown '%s' value '%s'"
 msgstr ""
 
-#: virt-install:202 virt-install.orig:202
+#: virt-install:190
 #, python-format
-msgid "Error with storage parameters: %s"
+msgid "Improper value for 'size': %s"
 msgstr ""
 
-#: virt-install:214 virt-install.orig:214
+#: virt-install:212
 #, fuzzy
-msgid " Do you really want to use the disk (yes or no)?"
-msgstr "Voulez-vous vraiment utiliser le disque (« yes » ou « no ») ? "
+msgid "Size must be specified with all 'pool='"
+msgstr "Un emplacement depuis lequel installer doit être spécifié"
 
-#: virt-install:222 virt-install.orig:222
+#: virt-install:226
+msgid "Storage volume must be specified as vol=poolname/volname"
+msgstr ""
+
+#: virt-install:282
 #, fuzzy
-msgid "Cannot use --file, --size, or --disk with --nodisks"
+msgid "Cannot use --file, --file-size, or --disk with --nodisks"
 msgstr "Impossible d'utiliser --file avec --nodisks"
 
-#: virt-install:225 virt-install.orig:225
+#: virt-install:285
 msgid ""
 "Cannot mix --file, --nonsparse, or --file-size with --disk options. Please "
 "see the manual for --disk syntax."
 msgstr ""
 
-#: virt-install:228 virt-install.orig:228
+#: virt-install:288
 msgid "A disk must be specified (use --nodisks to override)"
 msgstr ""
 
-#: virt-install:236 virt-install.orig:236
+#: virt-install:296
 msgid "Need to pass size for each disk"
 msgstr "Il faut passer la taille pour chaque disque"
 
-#: virt-install:251 virt-install.orig:251
+#: virt-install:311
 msgid "Cannot use --mac with --nonetworks"
 msgstr ""
 
-#: virt-install:253 virt-install.orig:253
+#: virt-install:313
 #, fuzzy
 msgid "Cannot use --bridges with --nonetworks"
 msgstr "Impossible de mélanger les arguments de --bridge et de --network"
 
-#: virt-install:255 virt-install.orig:255
+#: virt-install:315
 #, fuzzy
 msgid "Cannot use --network with --nonetworks"
 msgstr "Impossible d'utiliser --file avec --nodisks"
 
-#: virt-install:275 virt-install.orig:275
+#: virt-install:342
+#, fuzzy
+msgid ""
+"Would you like a fully virtualized guest (yes or no)? This will allow you to "
+"run unmodified operating systems."
+msgstr ""
+"Souhaitez-vous que l'invité soit complètement virtualisé (« yes » ou « no ») ? "
+"Ceci vous permet d'exécuter un système d'exploitation non modifié."
+
+#: virt-install:367
+#, fuzzy, python-format
+msgid "Would you like to use %s acceleration? (yes or no)"
+msgstr ""
+"Souhaitez-vous activer la prise en charge du graphisme ? (« yes » ou « no »)"
+
+#: virt-install:379
+msgid "Can't do both --hvm and --paravirt"
+msgstr "Les options --hvm et --paravirt ne sont pas compatibles"
+
+#: virt-install:401 virt-install:402
+msgid "default"
+msgstr ""
+
+#: virt-install:423
 #, python-format
 msgid "Only one install method (%s) can be used"
 msgstr ""
 
-#: virt-install:281 virt-install.orig:281
+#: virt-install:429
 #, fuzzy
 msgid "Network PXE boot is not supported for paravirtualized guests"
 msgstr ""
 "Le démarrage via le protocole réseau PXE n'est pas pris en charge pour les "
 "invités paravirtualisés"
 
-#: virt-install:284 virt-install.orig:284
+#: virt-install:432
 msgid "Paravirtualized guests cannot install off cdrom media."
 msgstr ""
 
-#: virt-install:287 virt-install.orig:287
+#: virt-install:435
 msgid "--location can not be specified for remote connections."
 msgstr ""
 
-#: virt-install:296 virt-install.orig:296
+#: virt-install:444
 #, fuzzy, python-format
 msgid "One of %s, or cdrom media must be specified."
 msgstr ""
 "Seule une des options --pxe, --location et --cdrom peut être utilisée à la "
 "fois"
 
-#: virt-install:314 virt-install.orig:314
+#: virt-install:457
 #, python-format
 msgid "Error creating cdrom disk: %s"
 msgstr ""
 
-#: virt-install:346 virt-install.orig:346
+#: virt-install:462
+#, fuzzy
+msgid "What is the install CD-ROM/ISO or URL?"
+msgstr "Quel est l'emplacement d'installation ?"
+
+#: virt-install:464
+#, fuzzy
+msgid "What is the install URL?"
+msgstr "Quel est l'emplacement d'installation ?"
+
+#: virt-install:511
 msgid "The CPU architecture to simulate"
 msgstr "L'architecture de l'UC à simuler"
 
-#: virt-install:364 virt-install.orig:364
+#: virt-install:529
 #, fuzzy
 msgid ""
 "The OS variant for fully virtualized guests, e.g. 'fedora6', 'rhel5', "
@@ -1828,33 +2123,40 @@ msgstr ""
 "La variante de SE pour les invités complètement virtualisés, par exemple « "
 "fedora6 », « rhel5 x, « solaris10 », « win2k », « vista »"
 
-#: virt-install:368 virt-install.orig:368
+#: virt-install:533
+msgid "Add a serial device to the domain."
+msgstr ""
+
+#: virt-install:536
+msgid "Add a parallel device to the domain."
+msgstr ""
+
+#: virt-install:539
 msgid "Physical host device to attach to the domain."
 msgstr ""
 
-#: virt-install:373 virt-install.orig:373
+#: virt-install:544
 msgid "Use sound device emulation"
 msgstr ""
 
-#: virt-install:384 virt-install.orig:384
+#: virt-install:555
 msgid "Virtualization Type Options"
 msgstr ""
 
-#: virt-install:391 virt-install.orig:391
-#, fuzzy
-msgid "Use kernel acceleration capabilities (kvm, kqemu, ...)"
-msgstr "Utiliser les capacités d'accélération du noyau"
+#: virt-install:562
+msgid "Hypervisor name to use (kvm, qemu, xen, ...)"
+msgstr ""
 
-#: virt-install:395 virt-install.orig:395
+#: virt-install:568
 msgid "Installation Method Options"
 msgstr ""
 
-#: virt-install:398 virt-install.orig:398
+#: virt-install:571
 #, fuzzy
 msgid "CD-ROM installation media"
 msgstr "L'installation de l'invité a échoué"
 
-#: virt-install:401 virt-install.orig:401
+#: virt-install:574
 #, fuzzy
 msgid ""
 "Installation source (eg, nfs:host:/path, http://host/path, ftp://host/path)"
@@ -1862,82 +2164,76 @@ msgstr ""
 "Source de l'installation pour l'invité paravirtualisé (par exemple, nfs:"
 "host:/path, http://host/path, ftp://host/path)"
 
-#: virt-install:404 virt-install.orig:404
+#: virt-install:577
 #, fuzzy
 msgid "Boot from the network using the PXE protocol"
 msgstr ""
 "Démarrer un installeur depuis le réseau en utilisant le protocole de "
 "démarrage PXE"
 
-#: virt-install:406 virt-install.orig:406
+#: virt-install:579
 #, fuzzy
 msgid "Build guest around an existing disk image"
 msgstr "Fichier à utiliser en tant qu'image de disque"
 
-#: virt-install:408 virt-install.orig:408
+#: virt-install:581
 #, fuzzy
 msgid "Treat the CD-ROM media as a Live CD"
 msgstr "Spécifiez si le CD-ROM est un CD Live"
 
-#: virt-install:411 virt-install.orig:411
+#: virt-install:584
 #, fuzzy
 msgid "Additional arguments to pass to the kernel booted from --location"
 msgstr ""
 "Arguments supplémentaires à passer à l'installeur pour les invités paravirt"
 
-#: virt-install:418 virt-install.orig:418
-msgid "Specify storage to use as a disk with various options."
-msgstr ""
-
-#: virt-install:422 virt-install.orig:422
-msgid "File to use as the disk image"
-msgstr "Fichier à utiliser en tant qu'image de disque"
-
-#: virt-install:425 virt-install.orig:425
-msgid "Size of the disk image (if it doesn't exist) in gigabytes"
-msgstr "Taille de l'image de disque (si elle n'existe pas) en Go"
-
-#: virt-install:429 virt-install.orig:429
+#: virt-install:591
 msgid ""
-"Don't use sparse files for disks.  Note that this will be significantly "
-"slower for guest creation"
+"Specify storage with various options. Ex.\n"
+"--disk path=/my/existing/disk\n"
+"--disk path=/my/new/disk,size=5 (in gigabytes)\n"
+"--disk vol=poolname:volname,device=cdrom,bus=scsi,..."
 msgstr ""
-"Ne pas utiliser de fichiers dynamiques pour les disques. Notez que ceci peut "
-"ralentir significativement la création des invités"
 
-#: virt-install:432 virt-install.orig:432
+#: virt-install:596
 msgid "Don't set up any disks for the guest."
 msgstr "Ne pas configurer de disque pour l'invité."
 
-#: virt-install:449 virt-install.orig:449
+#: virt-install:613
+msgid ""
+"Specify a network interface. Ex:\n"
+"--network bridge=mybr0\n"
+"--network network=my_libvirt_virtual_net\n"
+"--network network=mynet,model=virtio,mac=00:11..."
+msgstr ""
+
+#: virt-install:618
 #, fuzzy
 msgid "Don't create network interfaces for the guest."
 msgstr "Ne pas configurer de disque pour l'invité."
 
-#: virt-install:463 virt-install.orig:463
+#: virt-install:632
+msgid "Specify video hardware type."
+msgstr ""
+
+#: virt-install:635
 msgid "Don't automatically try to connect to the guest console"
 msgstr ""
 "Ne pas essayer de se connecter automatiquement à la console de l'invité"
 
-#: virt-install:474 virt-install.orig:474
+#: virt-install:643
 msgid "Disables the automatic rebooting when the installation is complete."
 msgstr ""
 
-#: virt-install:477 virt-install.orig:477
+#: virt-install:646
 msgid "Time to wait (in minutes)"
 msgstr ""
 
-#: virt-install:479 virt-install.orig:479
+#: virt-install:648
 msgid "Forces 'yes' for any applicable prompts, terminates for all others"
 msgstr ""
 
-#: virt-install:483 virt-install.orig:483
-msgid ""
-"Request user input for ambiguous situations. Default is false, so will "
-"terminate if a prompt would typically be fired. "
-msgstr ""
-
-#: virt-install:503 virt-install.orig:503
+#: virt-install:671
 msgid ""
 "Unable to connect to graphical console: virt-viewer not installed. Please "
 "install the 'virt-viewer' package."
@@ -1945,19 +2241,11 @@ msgstr ""
 "Impossible de se connecter à la console graphique : virt-viewer n'est pas "
 "installé. Veuillez installer le paquetage « virt-viewer »."
 
-#: virt-install:536 virt-install.orig:536
-msgid "Can't do both --hvm and --paravirt"
-msgstr "Les options --hvm et --paravirt ne sont pas compatibles"
-
-#: virt-install:548 virt-install.orig:548
-msgid "default"
-msgstr ""
-
-#: virt-install:570 virt-install.orig:570
+#: virt-install:713
 msgid "Can't use --pxe with --nonetworks"
 msgstr ""
 
-#: virt-install:671 virt-install.orig:671
+#: virt-install:818
 msgid ""
 "\n"
 "\n"
@@ -1967,7 +2255,7 @@ msgstr ""
 "\n"
 "Démarrage de l'installation..."
 
-#: virt-install:682 virt-install.orig:682
+#: virt-install:829
 #, python-format
 msgid ""
 "Domain installation does not appear to have been\n"
@@ -1980,23 +2268,23 @@ msgstr ""
 " avec « virsh start %s » ; dans le cas contraire,\n"
 " veuillez redémarrer votre installation."
 
-#: virt-install:693 virt-install.orig:693
+#: virt-install:840
 #, fuzzy, python-format
 msgid ""
 "Guest installation complete... you can restart your domain\n"
 "by running 'virsh start %s'"
 msgstr "Installation de l'invité terminée... Redémarrage de l'invité."
 
-#: virt-install:697 virt-install.orig:697
+#: virt-install:844
 msgid "Guest installation complete... restarting guest."
 msgstr "Installation de l'invité terminée... Redémarrage de l'invité."
 
-#: virt-install:703 virt-install.orig:703
+#: virt-install:850
 #, fuzzy
 msgid "Guest install interrupted."
 msgstr "L'installation de l'invité a échoué"
 
-#: virt-install:710 virt-install.orig:710
+#: virt-install:857
 #, python-format
 msgid ""
 "Domain installation may not have been\n"
@@ -2009,39 +2297,39 @@ msgstr ""
 " avec « virsh start %s » ; dans le cas contraire,\n"
 " veuillez redémarrer votre installation."
 
-#: virt-install:736 virt-install.orig:736
+#: virt-install:883
 #, fuzzy
 msgid "Guest installation failed."
 msgstr "L'installation de l'invité a échoué"
 
-#: virt-install:746 virt-install.orig:746
+#: virt-install:893
 #, python-format
 msgid "%d minutes "
 msgstr ""
 
-#: virt-install:748 virt-install.orig:748
+#: virt-install:895
 #, fuzzy, python-format
 msgid ""
-"Domain installation still in progress. Waiting %sfor domain to complete "
-"installation."
+"Domain installation still in progress. Waiting %sfor installation to "
+"complete."
 msgstr ""
 "L'installation du domaine est toujours en cours. Vous pouvez vous\n"
 "reconnecter à la console pour terminer le processus d'installation."
 
-#: virt-install:754 virt-install.orig:754
+#: virt-install:901
 msgid "Domain has shutdown. Continuing."
 msgstr ""
 
-#: virt-install:761 virt-install.orig:761
+#: virt-install:908
 #, python-format
 msgid "Could not lookup domain after install: %s"
 msgstr ""
 
-#: virt-install:768 virt-install.orig:768
+#: virt-install:915
 msgid "Installation has exceeded specified time limit. Exiting application."
 msgstr ""
 
-#: virt-install:772 virt-install.orig:772
+#: virt-install:921
 #, fuzzy
 msgid ""
 "Domain installation still in progress. You can reconnect to \n"
@@ -2050,6 +2338,73 @@ msgstr ""
 "L'installation du domaine est toujours en cours. Vous pouvez vous\n"
 "reconnecter à la console pour terminer le processus d'installation."
 
+#~ msgid "Unknown network type "
+#~ msgstr "Type de réseau inconnu "
+
+#~ msgid "Need to pass equal numbers of networks & mac addresses"
+#~ msgstr "Il faut passer un nombre de réseaux et d'adresses MAC identique"
+
+#, fuzzy
+#~ msgid "Cannot clone remote VM storage."
+#~ msgstr "Création du fichier de stockage..."
+
+#, fuzzy
+#~ msgid "Missing path to use as disk clone destination for '%s'"
+#~ msgstr ""
+#~ "Le nouveau fichier pour utiliser l'image de disque est manquant pour %s"
+
+#, fuzzy
+#~ msgid "Could not determine storage type for '%s'"
+#~ msgstr "Impossible de trouver une distribution installable sur « %s »"
+
+#~ msgid ""
+#~ "Bridge to connect guest NIC to; if none given, will try to determine the "
+#~ "default"
+#~ msgstr ""
+#~ "Pont auquel connecter le NIC invité ; si aucun pont n'est donné, la "
+#~ "valeur par défaut sera recherchée"
+
+#~ msgid ""
+#~ "Connect the guest to a virtual network, forwarding to the physical "
+#~ "network with NAT"
+#~ msgstr ""
+#~ "Connecter l'invité à un réseau virtuel, avec un réacheminement NAT vers "
+#~ "le réseau physique"
+
+#~ msgid ""
+#~ "Fixed MAC address for the guest; if none or RANDOM is given a random "
+#~ "address will be used"
+#~ msgstr ""
+#~ "Adresse MAC fixe pour l'invité ; si aucune adresse ou « RANDOM » est "
+#~ "donné, une adresse aléatoire sera utilisée"
+
+#, fuzzy
+#~ msgid "Use kernel acceleration capabilities (kvm, kqemu, ...)"
+#~ msgstr "Utiliser les capacités d'accélération du noyau"
+
+#~ msgid "File to use as the disk image"
+#~ msgstr "Fichier à utiliser en tant qu'image de disque"
+
+#~ msgid "Size of the disk image (if it doesn't exist) in gigabytes"
+#~ msgstr "Taille de l'image de disque (si elle n'existe pas) en Go"
+
+#~ msgid ""
+#~ "Don't use sparse files for disks.  Note that this will be significantly "
+#~ "slower for guest creation"
+#~ msgstr ""
+#~ "Ne pas utiliser de fichiers dynamiques pour les disques. Notez que ceci "
+#~ "peut ralentir significativement la création des invités"
+
+#~ msgid "ERROR: "
+#~ msgstr "ERREUR : "
+
+#~ msgid "Do you really want to use the disk (yes or no)? "
+#~ msgstr "Voulez-vous vraiment utiliser le disque (« yes » ou « no ») ? "
+
+#, fuzzy
+#~ msgid " Do you really want to use the disk (yes or no)?"
+#~ msgstr "Voulez-vous vraiment utiliser le disque (« yes » ou « no ») ? "
+
 #~ msgid "Name or UUID of guest to clone is required"
 #~ msgstr "Le nom ou l'UUID de l'invité à cloner doit être spécifié"
 
@@ -2138,29 +2493,6 @@ msgstr ""
 #~ msgstr ""
 #~ "Vous devez fournir l'emplacement d'un fichier XML d'image avec --image"
 
-#~ msgid ""
-#~ "Would you like a fully virtualized guest (yes or no)?  This will allow "
-#~ "you to run unmodified operating systems."
-#~ msgstr ""
-#~ "Souhaitez-vous que l'invité soit complètement virtualisé (« yes » ou « no "
-#~ "») ? Ceci vous permet d'exécuter un système d'exploitation non modifié."
-
-#~ msgid "What would you like to use as the disk (file path)?"
-#~ msgstr "Que souhaitez-vous utiliser comme disque (chemin d'accès) ?"
-
-#~ msgid ""
-#~ "Please enter the path to the file you would like to use for storage. It "
-#~ "will have size %sGB."
-#~ msgstr ""
-#~ "Veuillez entrer le chemin d'accès vers le fichier que vous souhaitez "
-#~ "utiliser pour le stockage. Il aura une taille de %s Go."
-
-#~ msgid "How large would you like the disk (%s) to be (in gigabytes)?"
-#~ msgstr "Quelle taille le disque %s doit-il avoir (en Go) ?"
-
-#~ msgid "What is the install location?"
-#~ msgstr "Quel est l'emplacement d'installation ?"
-
 #~ msgid "What is the virtual CD image, CD device or install location?"
 #~ msgstr ""
 #~ "Quelle est l'image virtuelle du CD, du lecteur CD ou de l'emplacement "
@@ -2176,12 +2508,6 @@ msgstr ""
 #~ "Les installations de CD Live ne sont pas prises en charge pour les "
 #~ "invités paravirt"
 
-#~ msgid "What is the name of your virtual machine?"
-#~ msgstr "Quel est le nom de votre machine virtuelle ?"
-
-#~ msgid "How much RAM should be allocated (in megabytes)?"
-#~ msgstr "Quelle quantité de RAM devrait être allouée (en Mo) ?"
-
 #~ msgid "How many VCPUs should be attached?"
 #~ msgstr "Combien d'UC virtuelles devraient être attachées ?"
 
@@ -2194,10 +2520,6 @@ msgstr ""
 #~ msgid "Can't do both SDL and nographics"
 #~ msgstr "SDL et nographics ne sont pas compatibles"
 
-#~ msgid "Would you like to enable graphics support? (yes or no)"
-#~ msgstr ""
-#~ "Souhaitez-vous activer la prise en charge du graphisme ? (« yes » ou « no »)"
-
 #~ msgid "The specified path's root directory must exist."
 #~ msgstr ""
 #~ "Le chemin d'accès au répertoire du superutilisateur spécifié doit exister."
diff --git a/po/it.po b/po/it.po
index 2c025f3..eb52298 100644
--- a/po/it.po
+++ b/po/it.po
@@ -4,242 +4,303 @@
 #
 # Silvio Pierro <perplesso82 at gmail.com>, 2008.
 # Francesco Tombolini <tombo at adamantio.net>, 2008.
+# Daniele Catanesi <translate at ccielogs.com>, 2009.
+# Guido Grazioli <guido.grazioli at gmail.com>, 2009.
 msgid ""
 msgstr ""
 "Project-Id-Version: virt-inst 0.5.3\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-03-09 20:41-0400\n"
-"PO-Revision-Date: 2008-03-16 00:32+0100\n"
-"Last-Translator: Francesco Tombolini <tombo at adamantio.net>\n"
+"POT-Creation-Date: 2009-07-28 20:34-0400\n"
+"PO-Revision-Date: 2009-04-01 17:59+0100\n"
+"Last-Translator: Daniele Catanesi <translate at ccielogs.com>\n"
 "Language-Team: Italian <fedora-trans-it at redhat.com>\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"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Poedit-Language: Italian\n"
+"X-Poedit-Country: ITALY\n"
 
-#: virtinst/CapabilitiesParser.py:168
+#: virtinst/CapabilitiesParser.py:172
 #, python-format
 msgid "No domains available for virt type '%(type)s', arch %(arch)s."
 msgstr ""
+"Nessun dominio disponibile per il tipo di virtualizzazione '%(type)s', "
+"architettura %(arch)s."
 
-#: virtinst/CapabilitiesParser.py:393
+#: virtinst/CapabilitiesParser.py:412
 #, python-format
 msgid "for arch '%s'"
-msgstr ""
+msgstr "per architettura '%s'"
 
-#: virtinst/CapabilitiesParser.py:397
-#, fuzzy, python-format
+#: virtinst/CapabilitiesParser.py:416
+#, python-format
 msgid "virtualization type '%s'"
-msgstr "Tipo di virtualizzazione non supportata"
+msgstr "tipo di virtualizzazione '%s'"
 
-#: virtinst/CapabilitiesParser.py:399
-#, fuzzy
+#: virtinst/CapabilitiesParser.py:418
 msgid "any virtualization options"
-msgstr "Tipo di virtualizzazione non supportata"
+msgstr "nessuna opzione di virtualizzazione"
 
-#: virtinst/CapabilitiesParser.py:401
+#: virtinst/CapabilitiesParser.py:420
 #, python-format
 msgid "Host does not support %(virttype)s %(arch)s"
-msgstr ""
+msgstr "L'host non supporta %(virttype)s %(arch)s"
 
-#: virtinst/CapabilitiesParser.py:414
+#: virtinst/CapabilitiesParser.py:433
 #, python-format
 msgid ""
 "Host does not support domain type '%(domain)s' for virtualization type '%"
 "(virttype)s' arch '%(arch)s'"
 msgstr ""
+"L'host non supporta il tipo di dominio '%(domain)s' per il tipo di "
+"virtualizzazione '%(virttype)s' architettura '%(arch)s'"
 
-#: virtinst/cli.py:117
-#, fuzzy
+#: virtinst/cli.py:152
 msgid "Exiting at user request."
-msgstr "Installazione aortita su richiesta utente"
+msgstr "Uscita su richiesta dell'utente."
 
-#: virtinst/cli.py:122
-#, fuzzy
+#: virtinst/cli.py:159
 msgid "Must be root to create Xen guests"
-msgstr "Bisogna essere root per clonare gli ospiti Xen"
+msgstr "Bisogna essere root per creare i guest Xen"
 
-#: virtinst/cli.py:124
-msgid "Could not find usable default libvirt connection."
+#: virtinst/cli.py:297
+msgid "(use --prompt to run interactively)"
 msgstr ""
 
-#: virtinst/cli.py:146
-#, python-format
-msgid "Force flag is set but input was required. Prompt was: %s"
+#: virtinst/cli.py:317
+msgid " (Use --prompt or --force to override)"
 msgstr ""
 
-#: virtinst/cli.py:149
-#, python-format
-msgid "Prompting disabled, but input was requested. Prompt was: %s"
+#: virtinst/cli.py:352
+msgid "Graphics Configuration"
+msgstr "Configurazione Grafica"
+
+#: virtinst/cli.py:354
+msgid "Use VNC for graphics support"
+msgstr "Usa VNC per il supporto grafico"
+
+#: virtinst/cli.py:356
+msgid "Port to use for VNC"
+msgstr "Porta da usare per VNC"
+
+#: virtinst/cli.py:358
+msgid "Address to listen on for VNC connections."
 msgstr ""
 
-#: virtinst/cli.py:169
+#: virtinst/cli.py:361
+#, fuzzy
+msgid "set up keymap for the VNC console"
+msgstr "imposta la keymap per una console grafica"
+
+#: virtinst/cli.py:363
+msgid "Use SDL for graphics support"
+msgstr "Usa SDL per il supporto grafico"
+
+#: virtinst/cli.py:365
+msgid "Don't set up a graphical console for the guest."
+msgstr "Non settare una console grafica per il guest."
+
+#: virtinst/cli.py:388
+#, fuzzy
+msgid "A disk path must be specified."
+msgstr "Un dispositivo disco deve essere specificato."
+
+#: virtinst/cli.py:390
+msgid "What would you like to use as the disk (file path)?"
+msgstr "Cosa si desidera usare come disco (percorso file)?"
+
+#: virtinst/cli.py:392
 #, python-format
 msgid ""
-"Prompting disabled, but yes/no was requested. Try --force to force 'yes' for "
-"such prompts. Prompt was: %s"
+"Please enter the path to the file you would like to use for storage. It will "
+"have size %sGB."
 msgstr ""
+"Si prego di inserire il percorso del file che si vuole usare per lo storage. "
+"Avrà la dimensione di %sGB."
+
+#: virtinst/cli.py:401
+#, fuzzy
+msgid "A size must be specified for non-existent disks."
+msgstr "E' necessario specificare un percorso per i volumi non esistenti '%s'"
+
+#: virtinst/cli.py:403
+#, python-format
+msgid "How large would you like the disk (%s) to be (in gigabytes)?"
+msgstr "Quanto si desidera che sia largo (in gigabyte) il disco (%s)?"
 
-#: virtinst/cli.py:179 virt-clone:48 virt-clone:69 virt-clone:108
-msgid "ERROR: "
-msgstr "ERRORE: "
+#: virtinst/cli.py:424 virt-install:274
+#, python-format
+msgid "Error with storage parameters: %s"
+msgstr "Errore nei parametri dello storage: %s"
 
-#: virtinst/cli.py:189
+#: virtinst/cli.py:426
 #, fuzzy
+msgid "Do you really want to use this disk (yes or no)"
+msgstr "Si desidera davvero usare questo disco (si o no)?"
+
+#: virtinst/cli.py:430
+#, python-format
+msgid "This will overwrite the existing path '%s'!\n"
+msgstr "Questa operazione sovrascriverà il percorso esistente '%s'!\n"
+
+#: virtinst/cli.py:437
+#, python-format
+msgid "Disk %s is already in use by another guest!\n"
+msgstr "Il disco %s è già usato da un'altro guest!\n"
+
+#: virtinst/cli.py:464
+msgid "What is the name of your virtual machine?"
+msgstr "Qual'è il nome della macchina virtuale?"
+
+#: virtinst/cli.py:465
 msgid "A name is required for the virtual machine."
-msgstr "Qual'è il nome per la macchina virtuale clonata?"
+msgstr "Il nome per la macchina vistuale è obbligatorio."
 
-#: virtinst/cli.py:197
-#, fuzzy
+#: virtinst/cli.py:472
+msgid "How much RAM should be allocated (in megabytes)?"
+msgstr "Quanta RAM deve essere allocata (in megabyte)?"
+
+#: virtinst/cli.py:473
 msgid "Memory amount is required for the virtual machine."
-msgstr "Qual'è il nome per la macchina virtuale clonata?"
+msgstr "La quantità di memoria per la macchina virtuale è obbligatoria."
 
-#: virtinst/cli.py:199
-#, fuzzy, python-format
+#: virtinst/cli.py:477
+#, python-format
 msgid "Installs currently require %d megs of RAM."
-msgstr "ERRORE: l'installazione richiede correntemente %d mega di RAM."
+msgstr "L'installazione richiede %d mega di RAM."
 
-#: virtinst/cli.py:219
-#, python-format
+#: virtinst/cli.py:498
+#, fuzzy, python-format
 msgid ""
 "You have asked for more virtual CPUs (%d) than there are physical CPUs (%d) "
-"on the host. This will work, but performance will be poor. Are you sure? "
-"(yes or no)"
+"on the host. This will work, but performance will be poor. "
 msgstr ""
-"E' stata richiesta un numero maggiore di CPU virtuali (%d) rispetto alle CPU "
+"E' stato richiesto un numero maggiore di CPU virtuali (%d) rispetto alle CPU "
 "fisiche (%d) sul sistema. Ciò funzionerà, ma le prestazioni saranno "
 "scadenti. Si è sicuri di continuare? (si o no)"
 
-#: virtinst/cli.py:276
-msgid "Unknown network type "
-msgstr "Tipo di rete sconosciuto "
+#: virtinst/cli.py:501
+msgid "Are you sure? (yes or no)"
+msgstr ""
+
+#: virtinst/cli.py:612
+#, fuzzy, python-format
+msgid "Unknown network option '%s'"
+msgstr "Tipo di rete sconosciuto %s"
 
-#: virtinst/cli.py:293
+#: virtinst/cli.py:630
 msgid "Cannot mix both --bridge and --network arguments"
 msgstr ""
 "Impossibile mischiare contemporaneamente gli argomenti --bridge e --network"
 
-#: virtinst/cli.py:310
-msgid "Need to pass equal numbers of networks & mac addresses"
-msgstr "è necessario fornire un numero uguale di reti e indirizzi mac"
+#: virtinst/cli.py:645
+#, fuzzy
+msgid "Cannot pass more mac addresses than networks."
+msgstr "Non è possibile utilizzare --mac con --nonetworks"
 
-#: virtinst/cli.py:332
+#: virtinst/cli.py:672
 msgid "Can't specify more than one of VNC, SDL, or --nographics"
+msgstr "Non si può specificare più di un un VNC, SDL, o --nographics"
+
+#: virtinst/cli.py:700
+#, python-format
+msgid "Didn't match keymap '%s' in keytable!"
 msgstr ""
 
-#: virtinst/cli.py:376 virtinst/cli.py:381 virt-install:320 virt-install:325
-#: virt-install.orig:320 virt-install.orig:325
+#: virtinst/cli.py:731 virtinst/cli.py:736
 #, python-format
 msgid "%s option requires an argument"
-msgstr "L'opzione %s richiede un'argomento"
+msgstr "L'opzione %s richiede un argomento"
 
-#: virtinst/CloneManager.py:54
+#: virtinst/CloneManager.py:109
 msgid "Connection must be a 'virConnect' instance."
-msgstr ""
+msgstr "La connessione deve essere un'istanza 'virConnect'."
 
-#: virtinst/CloneManager.py:102
-#, fuzzy
+#: virtinst/CloneManager.py:162
 msgid "Original xml must be a string."
-msgstr "UUID deve essere una stringa."
+msgstr "L'xml originale deve essere una stringa."
 
-#: virtinst/CloneManager.py:114
+#: virtinst/CloneManager.py:177
 #, python-format
 msgid "Invalid name for new guest: %s"
 msgstr "Nome non valido per il nuovo guest: %s"
 
-#: virtinst/CloneManager.py:119
-#, fuzzy, python-format
+#: virtinst/CloneManager.py:182
+#, python-format
 msgid "Domain name '%s' already in use."
-msgstr "Il domino denominato %s esiste gia!"
+msgstr "Il dominio denominato '%s' è già in uso."
 
-#: virtinst/CloneManager.py:131
+#: virtinst/CloneManager.py:195
 #, python-format
 msgid "Invalid uuid for new guest: %s"
 msgstr "UUID non valido per il nuovo guest: %s"
 
-#: virtinst/CloneManager.py:134
-#, fuzzy, python-format
+#: virtinst/CloneManager.py:198
+#, python-format
 msgid "UUID '%s' is in use by another guest."
-msgstr "Il disco %s è già usato da un'altro guest\n"
+msgstr "UUID '%s' è in uso da un altro guest."
 
-#: virtinst/CloneManager.py:149
+#: virtinst/CloneManager.py:226
 #, python-format
 msgid "Could not use path '%s' for cloning: %s"
+msgstr "Impossibile usare il path '%s' per la clonazione: %s"
+
+#: virtinst/CloneManager.py:356
+msgid "Cloning policy must be a list of rules."
 msgstr ""
 
-#: virtinst/CloneManager.py:235
-#, fuzzy
+#: virtinst/CloneManager.py:373
 msgid "Original guest name or xml is required."
-msgstr "Nome di rete non richiesto per %s"
+msgstr "Il nome originale del guest o xml è richiesto."
 
-#: virtinst/CloneManager.py:253
-#, fuzzy
-msgid "Cannot clone remote VM storage."
-msgstr "Creazione file di storage..."
-
-#: virtinst/CloneManager.py:261
+#: virtinst/CloneManager.py:391
 msgid "Domain with devices to clone must be paused or shutoff."
 msgstr ""
+"Il dominio contenente dispositivi da clonare deve essere in pausa o spento."
 
-#: virtinst/CloneManager.py:304
-#, fuzzy, python-format
-msgid "Missing path to use as disk clone destination for '%s'"
-msgstr "Nuovo file da usare per l'immagine del disco per %s mancante"
+#: virtinst/CloneManager.py:437
+#, python-format
+msgid ""
+"More disks to clone that new paths specified. (%(passed)d specified, %(need)"
+"d needed"
+msgstr ""
 
-#: virtinst/CloneManager.py:403
-#, fuzzy, python-format
+#: virtinst/CloneManager.py:557
+#, python-format
 msgid "Disk '%s' does not exist."
-msgstr "Il disco di sistema %s non esiste"
+msgstr "Il disco '%s' non esiste."
 
-#: virtinst/CloneManager.py:406
-#, fuzzy, python-format
+#: virtinst/CloneManager.py:568
+#, python-format
 msgid "Could not determine original disk information: %s"
-msgstr "Impossibile acquisire il file %s: %s"
-
-#: virtinst/CloneManager.py:474
-#, fuzzy, python-format
-msgid "Domain '%s' was not found."
-msgstr "Dominio %s non trovato"
+msgstr "Impossibile determinare le informazioni del disco originale: %s"
 
-#: virtinst/CloneManager.py:539
-msgid "copying to an existing vdisk is not supported"
-msgstr ""
-
-#: virtinst/CloneManager.py:547
-#, fuzzy, python-format
-msgid "Could not determine storage type for '%s'"
-msgstr "Impossibile acquisire il file %s: %s"
-
-#: virtinst/CloneManager.py:574
+#: virtinst/CloneManager.py:613
 #, python-format
-msgid "Cloning %(srcfile)s"
-msgstr ""
-
-#: virtinst/CloneManager.py:581
-msgid "failed to clone disk"
-msgstr ""
+msgid "Domain '%s' was not found."
+msgstr "Dominio '%s' non trovato."
 
-#: virtinst/DistroInstaller.py:51
+#: virtinst/DistroInstaller.py:57
 msgid "Invalid NFS format: No path specified."
 msgstr "Formato NFS non valido: Nessun percorso specificato."
 
-#: virtinst/DistroInstaller.py:93
-#, fuzzy, python-format
+#: virtinst/DistroInstaller.py:101
+#, python-format
 msgid "Invalid 'location' type %s."
-msgstr "Locazione URL fornita non valida: %s %s"
+msgstr "Tipo di 'location' non valida: %s."
 
-#: virtinst/DistroInstaller.py:99
-#, fuzzy
+#: virtinst/DistroInstaller.py:107
 msgid "'conn' must be specified if 'location' is a storage tuple."
-msgstr "Bisogna specificare una locazione da cui installare"
+msgstr "'conn' deve essere specificato se 'location' è una tupla di storage."
 
-#: virtinst/DistroInstaller.py:135
-#, fuzzy, python-format
+#: virtinst/DistroInstaller.py:145
+#, python-format
 msgid "Checking installer location failed: Could not find media '%s'."
-msgstr "Installazione guest fallita"
+msgstr ""
+"Verifica dell'installer fallita: Non è possibile trovare il disco '%s'."
 
-#: virtinst/DistroInstaller.py:138
-#, fuzzy
+#: virtinst/DistroInstaller.py:148
 msgid ""
 "Install media location must be an NFS, HTTP or FTP network install source, "
 "or an existing file/device"
@@ -248,125 +309,127 @@ msgstr ""
 "d'installazione da rete NFS, HTTP o FTP, oppure un file/dispositivo locale "
 "esistente"
 
-#: virtinst/DistroInstaller.py:145
-#, fuzzy
+#: virtinst/DistroInstaller.py:155
 msgid "Privilege is required for NFS installations"
-msgstr "Qual'è il nome per la macchina virtuale clonata?"
+msgstr "E' necessario essere root per le installazioni NFS"
 
-#: virtinst/Guest.py:100
+#: virtinst/Guest.py:108
 msgid "Unable to connect to hypervisor, aborting installation!"
-msgstr "Impossibile connettersi all'ipervisore, installazione abortita!"
+msgstr "Impossibile connettersi all'hypervisor, installazione annullata!"
 
-#: virtinst/Guest.py:118
+#: virtinst/Guest.py:126
 msgid "Guest"
-msgstr ""
+msgstr "Guest"
 
-#: virtinst/Guest.py:125
-#, fuzzy, python-format
+#: virtinst/Guest.py:133
+#, python-format
 msgid "Guest name '%s' is already in use."
-msgstr "Il disco %s è già usato da un'altro guest\n"
+msgstr "Il nome guest '%s' è già in uso."
 
-#: virtinst/Guest.py:133
+#: virtinst/Guest.py:141
 msgid "Memory value must be an integer greater than 0"
 msgstr "Il valore memoria deve essere un intero maggiore di 0"
 
-#: virtinst/Guest.py:145
+#: virtinst/Guest.py:153
 msgid "Max Memory value must be an integer greater than 0"
-msgstr "Il valore di memoria massima deve essere un intero maggiore di 0"
+msgstr "Il valore memoria massima deve essere un intero maggiore di 0"
 
-#: virtinst/Guest.py:164
-#, fuzzy
+#: virtinst/Guest.py:172
 msgid "Number of vcpus must be a postive integer."
-msgstr "Il numero di vcpu deve essere incluso nel range 1-%d"
+msgstr "Il numero di vcpu deve essere un intero positivo."
 
-#: virtinst/Guest.py:166
-#, fuzzy, python-format
+#: virtinst/Guest.py:174
+#, python-format
 msgid "Number of vcpus must be no greater than %d for this vm type."
-msgstr "Il numero di vcpu deve essere incluso nel range 1-%d"
+msgstr ""
+"Il numero di vcpu non deve essere maggiore di %d per questo tipo di vm."
 
-#: virtinst/Guest.py:176
+#: virtinst/Guest.py:184
 msgid "cpuset must be string"
 msgstr "cpuset deve essere una stringa"
 
-#: virtinst/Guest.py:178
+#: virtinst/Guest.py:186
 msgid "cpuset can only contain numeric, ',', or '-' characters"
 msgstr "cpuset può contenere solo caratteri numerici, ',' o '-'"
 
-#: virtinst/Guest.py:186
+#: virtinst/Guest.py:194
 msgid "cpuset contains invalid format."
 msgstr "cpuset contiene un formato non valido."
 
-#: virtinst/Guest.py:188 virtinst/Guest.py:192
+#: virtinst/Guest.py:196 virtinst/Guest.py:202
 msgid "cpuset's pCPU numbers must be less than pCPUs."
 msgstr "Il numero di pCPU di cpuset deve essere minore delle pCPU."
 
-#: virtinst/Guest.py:212
-#, fuzzy
+#: virtinst/Guest.py:222
 msgid "OS type must be a string."
-msgstr "Keymap deve essere una stringa"
+msgstr "Il tipo di SO deve essere una stringa."
 
-#: virtinst/Guest.py:224
-#, fuzzy, python-format
+#: virtinst/Guest.py:234
+#, python-format
 msgid "OS type '%s' does not exist in our dictionary"
-msgstr "Il tipo di SO %s non esiste nel dizionario"
+msgstr "Il tipo di SO '%s' non esiste nel dizionario"
 
-#: virtinst/Guest.py:232
-#, fuzzy
+#: virtinst/Guest.py:242
 msgid "OS variant must be a string."
-msgstr "UUID deve essere una stringa."
+msgstr "Variante SO deve essere una stringa."
 
-#: virtinst/Guest.py:238
-#, fuzzy, python-format
+#: virtinst/Guest.py:248
+#, python-format
 msgid ""
 "OS variant '%(var)s; does not exist in our dictionary for OS type '%(ty)s'"
 msgstr ""
-"La variante SO %(var)s non esiste nel dizionario per il tipo di SO %(type)s"
+"La variante SO '%(var)s' non esiste nel dizionario per il tipo di SO '%(ty)s'"
 
-#: virtinst/Guest.py:250
+#: virtinst/Guest.py:260
 #, python-format
 msgid "Unknown OS variant '%s'"
-msgstr ""
+msgstr "Variante del SO sconosciuta '%s'"
 
-#: virtinst/Guest.py:291
+#: virtinst/Guest.py:301
 msgid "Must specify whether graphics are enabled"
 msgstr "Bisogna specificare quando la grafica è abilitata"
 
-#: virtinst/Guest.py:314
+#: virtinst/Guest.py:324
 msgid "Graphics enabled must be True or False"
-msgstr "Grafica abilitata deve essere True o False"
+msgstr "Grafica abilitata deve essere Vero o Falso"
 
-#: virtinst/Guest.py:373
+#: virtinst/Guest.py:383
 msgid "You must specify a valid ISO or CD-ROM location for the installation"
 msgstr ""
 "Bisogna specificare un percorso ISO o CD-ROM valido per l'installazione"
 
-#: virtinst/Guest.py:376
+#: virtinst/Guest.py:386
 msgid "The specified media path does not exist."
 msgstr "Il percorso del media specificato non esiste."
 
-#: virtinst/Guest.py:573
+#: virtinst/Guest.py:415
+#, fuzzy
+msgid "Must pass a VirtualDevice instance."
+msgstr "'nodedev' deve essere un'istanza di un dispositivo USB."
+
+#: virtinst/Guest.py:660
 msgid "Unable to start domain for guest, aborting installation!"
-msgstr "Impossibile avviare il dominio per il guest, annullo l'installazione!"
+msgstr "Impossibile avviare il dominio per il guest, installazione annullata!"
 
-#: virtinst/Guest.py:623
-#, fuzzy, python-format
+#: virtinst/Guest.py:716
+#, python-format
 msgid "Could not remove old vm '%s': %s"
-msgstr "Impossibile acquisire il file %s: %s"
+msgstr "Impossibile rimuovaere la vecchia vm '%s': %s"
 
-#: virtinst/Guest.py:625
+#: virtinst/Guest.py:718
 #, python-format
 msgid "Domain named %s already exists!"
-msgstr "Il domino denominato %s esiste gia!"
+msgstr "Il domino denominato %s esiste già!"
 
-#: virtinst/Guest.py:632
+#: virtinst/Guest.py:725
 msgid "Creating domain..."
 msgstr "Creazione dominio..."
 
-#: virtinst/Guest.py:635
+#: virtinst/Guest.py:728
 msgid "Unable to create domain for the guest, aborting installation!"
-msgstr "Impossibile creare il dominio per il guest, Installazione abortita!"
+msgstr "Impossibile creare il dominio per il guest, installazione annullata!"
 
-#: virtinst/Guest.py:643
+#: virtinst/Guest.py:736
 msgid ""
 "It appears that your installation has crashed.  You should be able to find "
 "more information in the logs"
@@ -374,15 +437,15 @@ msgstr ""
 "Sembra che l'installazione sia terminata in modo inaspettato.  È possibile "
 "reperire maggiori informazioni nei file di log"
 
-#: virtinst/Guest.py:677
+#: virtinst/Guest.py:770
 msgid ""
 "Domain has not existed.  You should be able to find more information in the "
 "logs"
 msgstr ""
-"Il dominio non è esistente.  E' possibile reperire maggiori informazioni nei "
-"file di log"
+"Il dominio non esiste.  E' possibile reperire maggiori informazioni nei file "
+"di log"
 
-#: virtinst/Guest.py:679
+#: virtinst/Guest.py:772
 msgid ""
 "Domain has not run yet.  You should be able to find more information in the "
 "logs"
@@ -390,23 +453,18 @@ msgstr ""
 "Il dominio non è ancora in esecuzione.  E' possibile reperire maggiori "
 "informazioni nei file di log"
 
-#: virtinst/Guest.py:696
+#: virtinst/Guest.py:789
 msgid "Domain has already been started!"
 msgstr "Il dominio è stato già avviato!"
 
-#: virtinst/Guest.py:707
+#: virtinst/Guest.py:809
 msgid "The UUID you entered is already in use by another guest!"
 msgstr "L'UUID inserito è già usato da un'altro guest!"
 
-#: virtinst/Guest.py:710
+#: virtinst/Guest.py:812
 msgid "Name and memory must be specified for all guests!"
 msgstr "Nome e memoria devono essere specificati per tutti i guest!"
 
-#: virtinst/Guest.py:745
-#, fuzzy, python-format
-msgid "Invalid dictionary entry for device '%s %s'"
-msgstr "Nome non valido per il nuovo guest: %s"
-
 #: virtinst/ImageFetcher.py:86
 #, python-format
 msgid "Retrieving file %s..."
@@ -418,22 +476,22 @@ msgid "Couldn't acquire file %s: %s"
 msgstr "Impossibile acquisire il file %s: %s"
 
 #: virtinst/ImageFetcher.py:110
-#, fuzzy, python-format
+#, python-format
 msgid "Opening URL %s failed."
-msgstr "Apertura dell'URL %s fallita: %s"
+msgstr "Apertura dell'URL %s fallita."
 
 #: virtinst/ImageFetcher.py:187
-#, fuzzy, python-format
+#, python-format
 msgid "Mounting location '%s' failed"
-msgstr "Montaggio locazione %s fallita"
+msgstr "Montaggio locazione '%s' fallita"
 
 #: virtinst/ImageManager.py:47
 msgid "'capabilities' must be a Capabilities instance."
-msgstr ""
+msgstr "'capabilities' deve essere un'istanza di Capabilities."
 
 #: virtinst/ImageManager.py:51
 msgid "'conn' or 'capabilities' must be specified."
-msgstr ""
+msgstr "'conn' o 'capabilities' devono essere specificate."
 
 #: virtinst/ImageManager.py:58
 msgid "Could not find suitable boot descriptor for this host"
@@ -441,12 +499,12 @@ msgstr "Impossibile trovare un descrittore di avvio adatto per questo host"
 
 #: virtinst/ImageManager.py:63
 msgid "boot_index out of range."
-msgstr ""
+msgstr "boot_index fuori range. "
 
 #: virtinst/ImageManager.py:70
-#, fuzzy, python-format
+#, python-format
 msgid "Unsupported virtualization type: %s %s"
-msgstr "Tipo di virtualizzazione non supportata"
+msgstr "Tipo di virtualizzazione non supportata: %s %s"
 
 #: virtinst/ImageManager.py:145
 #, python-format
@@ -472,20 +530,20 @@ msgstr "La memoria deve essere un intero, ma è '%s'"
 msgid "The format for disk %s must be one of %s"
 msgstr "Il formato per il disco %s deve essere uno di %s"
 
-#: virtinst/ImageParser.py:248
+#: virtinst/ImageParser.py:263
 #, python-format
 msgid "Checking disk signature for %s"
-msgstr ""
+msgstr "Verifica della firma disco per %s"
 
 #: virtinst/ImageParser.py:276
 #, python-format
 msgid "Disk signature for %s does not match Expected: %s  Received: %s"
-msgstr ""
+msgstr "La firma disco per %s non coincide Attesa: %s Ricevuta: %s"
 
 #: virtinst/ImageParser.py:279
-#, fuzzy, python-format
+#, python-format
 msgid "Disk signature for %s does not match"
-msgstr "Voce del disco per '%s' non trovata"
+msgstr "La firma disco per %s non corrisponde"
 
 #: virtinst/ImageParser.py:318
 msgid "Root element is not 'image'"
@@ -493,372 +551,393 @@ msgstr "L'elemento root non è 'image'"
 
 #: virtinst/ImportInstaller.py:37
 msgid "A disk device must be specified."
-msgstr ""
+msgstr "Un dispositivo disco deve essere specificato."
 
-#: virtinst/Installer.py:151
+#: virtinst/Installer.py:156
 msgid "Guest.cdrom must be a boolean type"
 msgstr "Guest.cdrom deve essere un tipo booleano"
 
-#: virtinst/Installer.py:168 virtinst/Installer.py:173
-#: virtinst/Installer.py:177
+#: virtinst/Installer.py:173 virtinst/Installer.py:178
+#: virtinst/Installer.py:182
 msgid "Must pass both a kernel and initrd"
 msgstr "Bisogna fornire sia kernel che initrd"
 
-#: virtinst/Installer.py:180
+#: virtinst/Installer.py:185
 msgid "Kernel and initrd must be specified by a list, dict, or tuple."
 msgstr ""
 "Kernel e initrd devono essere specificati da una lista, dizionario o tupla."
 
-#: virtinst/Installer.py:335
-#, fuzzy
+#: virtinst/Installer.py:340
 msgid "A connection must be specified."
-msgstr "Bisogna specificare una locazione da cui installare"
+msgstr "E' necessario specificare una connessione."
 
-#: virtinst/Installer.py:353
-#, fuzzy, python-format
+#: virtinst/Installer.py:358
+#, python-format
 msgid "No 'Guest' class for virtualization type '%s'"
-msgstr "Tipo di virtualizzazione non supportata"
+msgstr "Nessuna classe 'Guest' per il tipo di virtualizzazione '%s'"
 
 #: virtinst/LiveCDInstaller.py:66
-#, fuzzy
 msgid "CDROM media must be specified for the live CD installer."
-msgstr "Un tipo di SO deve essere specificato prima di una variante."
+msgstr "Deve essere specificato un CDROM per l'installazione live CD."
 
-#: virtinst/NodeDeviceParser.py:114
+#: virtinst/NodeDeviceParser.py:118
 msgid "System"
-msgstr ""
+msgstr "Sistema"
 
-#: virtinst/NodeDeviceParser.py:146
+#: virtinst/NodeDeviceParser.py:151
 #, python-format
 msgid "Interface %s"
-msgstr ""
+msgstr "Interfaccia %s"
 
-#: virtinst/NodeDeviceParser.py:364 virtinst/NodeDeviceParser.py:392
-#: virtinst/util.py:531 virtinst/VirtualDevice.py:58
+#: virtinst/NodeDeviceParser.py:378 virtinst/NodeDeviceParser.py:406
+#: virtinst/util.py:501 virtinst/VirtualDevice.py:86
 msgid "'conn' must be a virConnect instance."
-msgstr ""
+msgstr "'conn' deve essere un'istanza virConnect."
 
-#: virtinst/NodeDeviceParser.py:411
-#, fuzzy
+#: virtinst/NodeDeviceParser.py:426
 msgid "Connection does not support host device enumeration."
-msgstr "Virtualizzazione HVM non supportata; Impossibile avviare il LiveCD"
+msgstr "La connessione non supporta l'enumerazione dei dispositivi host."
 
-#: virtinst/NodeDeviceParser.py:487
-#, fuzzy, python-format
+#: virtinst/NodeDeviceParser.py:502
+#, python-format
 msgid "Unknown host device capability '%s'."
-msgstr "Tipo di rete sconosciuto %s"
+msgstr "Capacità '%s' del dispositivo host sconosciuta."
 
-#: virtinst/OSDistro.py:99
+#: virtinst/osdict.py:129
+#, python-format
+msgid "Invalid dictionary entry for device '%s %s'"
+msgstr "Voce non valida nel dizionario per il dispositivo '%s %s'"
+
+#: virtinst/OSDistro.py:102
 #, python-format
 msgid "Could not find an installable distribution at '%s'"
 msgstr "Impossibile trovare una distribuzione installabile in '%s'"
 
-#: virtinst/OSDistro.py:109
+#: virtinst/OSDistro.py:112
 msgid "Invalid install location: "
 msgstr "Posizione di installazione non valida: "
 
-#: virtinst/OSDistro.py:230
-#, fuzzy, python-format
+#: virtinst/OSDistro.py:237
+#, python-format
 msgid "Couldn't find %(type)s kernel for %(distro)s tree."
-msgstr "Impossibile trovare una distribuzione installabile in '%s'"
+msgstr "Impossibile trovare il kernel %(type)s per %(distro)s."
 
-#: virtinst/OSDistro.py:244
-#, fuzzy, python-format
+#: virtinst/OSDistro.py:252
+#, python-format
 msgid "Could not find boot.iso in %s tree."
-msgstr "Impossibile trovare un descrittore di avvio adatto per questo host"
+msgstr "Impossibile trovare il file boot.iso nel percorso %s."
 
-#: virtinst/OSDistro.py:383
-#, fuzzy, python-format
+#: virtinst/OSDistro.py:413
+#, python-format
 msgid "Could not find a kernel path for virt type '%s'"
-msgstr "Impossibile trovare una distribuzione installabile in '%s'"
+msgstr ""
+"Impossibile trovare un percorso kernel per il tipo di virtualizzazione '%s'"
 
-#: virtinst/OSDistro.py:392
-#, fuzzy
+# Lascio al revisore la scelta per tree, ho preferito tradurlo come percorso dato che a questo è riferito.
+#: virtinst/OSDistro.py:422
 msgid "Could not find a boot iso path for this tree."
-msgstr "Impossibile trovare un descrittore di avvio adatto per questo host"
+msgstr "Impossibile trovare il percorso della iso di boot in questo percorso."
 
-#: virtinst/OSDistro.py:646
+#: virtinst/OSDistro.py:676
 msgid "Unable to determine kernel RPM path"
-msgstr "Impossibile determinare il percorso dell'RPM kernel"
+msgstr "Impossibile determinare il percorso dell'RPM del kernel"
 
-#: virtinst/OSDistro.py:648
+#: virtinst/OSDistro.py:678
 msgid "Unable to determine install-initrd RPM path"
-msgstr "Impossibile determinare il percorso dell'RPM install-initrd"
+msgstr "Impossibile determinare il percorso dell'RPM di install-initrd"
 
-#: virtinst/OSDistro.py:659
+#: virtinst/OSDistro.py:689
 msgid "Building initrd"
-msgstr "Costruzione initrd"
+msgstr "Configurazione initrd"
 
-#: virtinst/OSDistro.py:1021
+#: virtinst/OSDistro.py:1051
 #, python-format
 msgid "Solaris miniroot not found at %s"
-msgstr ""
+msgstr "Solaris miniroot non trovata nel percorso %s"
 
-#: virtinst/OSDistro.py:1056
+#: virtinst/OSDistro.py:1089
 #, python-format
 msgid "OpenSolaris PV kernel not found at %s"
-msgstr ""
+msgstr "OpenSolaris PV kernel non trovato in %s"
 
-#: virtinst/OSDistro.py:1066
+#: virtinst/Storage.py:81
 #, python-format
-msgid "OpenSolaris microroot not found at %s"
-msgstr ""
-
-#: virtinst/Storage.py:85
-#, fuzzy, python-format
 msgid "Unknown storage object type: %s"
-msgstr "Tipo di rete sconosciuto %s"
+msgstr "Tipo di oggetto storage sconosciuto: %s"
 
-#: virtinst/Storage.py:108
+#: virtinst/Storage.py:104
 msgid "'conn' must be a libvirt connection object."
-msgstr ""
+msgstr "'conn' deve essere un oggetto di connessione libvirt."
 
-#: virtinst/Storage.py:110
+#: virtinst/Storage.py:106
 msgid "Passed connection is not libvirt storage capable"
-msgstr ""
+msgstr "La connessione configurata non supporta lo storage libvirt"
 
-#: virtinst/Storage.py:120
-#, fuzzy
+#: virtinst/Storage.py:116
 msgid "Storage object"
-msgstr "Nome per il nuovo guest"
+msgstr "Oggetto storage"
 
-#: virtinst/Storage.py:125
-#, fuzzy
+#: virtinst/Storage.py:121
 msgid "Name for the storage object."
-msgstr "Nome per il nuovo guest"
+msgstr "Nome per l'oggetto storage."
 
-#: virtinst/Storage.py:132
+#: virtinst/Storage.py:128
 msgid "Permissions must be passed as a dict object"
-msgstr ""
+msgstr "I permessi devono essere passati come oggetto dict"
 
-#: virtinst/Storage.py:135
+#: virtinst/Storage.py:131
 msgid "Permissions must contain 'mode', 'owner', 'group' and 'label' keys."
 msgstr ""
+"I permessi devono contenere le chiavi 'mode', 'owner', 'group' e 'label'. "
 
-#: virtinst/Storage.py:142
+#: virtinst/Storage.py:138
 #, python-format
 msgid "'%s' is not an absolute path."
-msgstr ""
+msgstr "'%s' non è un path assoluto."
 
-#: virtinst/Storage.py:203
+#: virtinst/Storage.py:199
 msgid "Filesystem Directory"
-msgstr ""
+msgstr "Directory del filesystem"
 
-#: virtinst/Storage.py:204
+#: virtinst/Storage.py:200
 msgid "Pre-Formatted Block Device"
-msgstr ""
+msgstr "Dispositivo a blocchi pre-formattato"
 
-#: virtinst/Storage.py:205
+#: virtinst/Storage.py:201
 msgid "Network Exported Directory"
-msgstr ""
+msgstr "Directory esportata via rete"
 
-#: virtinst/Storage.py:206
+#: virtinst/Storage.py:202
 msgid "LVM Volume Group"
-msgstr ""
+msgstr "Gruppo volumi LVM"
 
-#: virtinst/Storage.py:207
+#: virtinst/Storage.py:203
 msgid "Physical Disk Device"
-msgstr ""
+msgstr "Disco fisico"
 
-#: virtinst/Storage.py:208
+#: virtinst/Storage.py:204
 msgid "iSCSI Target"
-msgstr ""
+msgstr "Target iSCSI"
 
-#: virtinst/Storage.py:218 virtinst/Storage.py:255
-#, fuzzy, python-format
+#: virtinst/Storage.py:214 virtinst/Storage.py:251
+#, python-format
 msgid "Unknown storage pool type: %s"
-msgstr "Tipo di rete sconosciuto %s"
+msgstr "Tipo di storage pool sconosciuto: %s"
 
-#: virtinst/Storage.py:277
+#: virtinst/Storage.py:273
 msgid "Storage device type the pool will represent."
-msgstr ""
+msgstr "Tipo di dispositivo di storage che il pool rappresenterà."
 
-#: virtinst/Storage.py:296
-#, fuzzy
+#: virtinst/Storage.py:292
 msgid "Host name must be a string"
-msgstr "Keymap deve essere una stringa"
+msgstr "Il nome host deve essere una stringa"
 
-#: virtinst/Storage.py:315
-#, fuzzy, python-format
+#: virtinst/Storage.py:311
+#, python-format
 msgid "Name '%s' already in use by another pool."
-msgstr "Il disco %s è già usato da un'altro guest\n"
+msgstr "Il nome '%s' è già in uso da un altro pool."
 
-#: virtinst/Storage.py:353
+#: virtinst/Storage.py:349
 #, python-format
 msgid "Could not define storage pool: %s"
-msgstr ""
+msgstr "Impossibile definire lo storage pool: %s"
 
-#: virtinst/Storage.py:363
-#, fuzzy, python-format
+#: virtinst/Storage.py:359
+#, python-format
 msgid "Could not build storage pool: %s"
-msgstr "Impossibile acquisire il file %s: %s"
+msgstr "Impossibile configurare lo storage pool: %s"
 
-#: virtinst/Storage.py:372
+#: virtinst/Storage.py:368
 #, python-format
 msgid "Could not start storage pool: %s"
-msgstr ""
+msgstr "Impossibile avviare lo storage pool: %s"
 
-#: virtinst/Storage.py:399
+#: virtinst/Storage.py:395
 msgid "Directory to use for the storage pool."
-msgstr ""
+msgstr "Directory da usare per lo storage pool."
 
-#: virtinst/Storage.py:435
+#: virtinst/Storage.py:431
 msgid "The existing device to mount for the pool."
-msgstr ""
+msgstr "Il dispositivo esistente da montare per il pool."
 
-#: virtinst/Storage.py:438 virtinst/Storage.py:496
+#: virtinst/Storage.py:434 virtinst/Storage.py:492
 msgid "Location to mount the source device."
-msgstr ""
+msgstr "Percorso dove montare il dispositivo sorgente."
 
-#: virtinst/Storage.py:456
-#, fuzzy, python-format
+#: virtinst/Storage.py:452
+#, python-format
 msgid "Unknown Filesystem format: %s"
-msgstr "Tipo di rete sconosciuto %s"
+msgstr "Tipo di filesystem sconosciuto: %s"
 
-#: virtinst/Storage.py:459
+#: virtinst/Storage.py:455
 msgid "Filesystem type of the source device."
-msgstr ""
+msgstr "Filesystem del dispositivo sorgente."
 
-#: virtinst/Storage.py:472
+#: virtinst/Storage.py:468
 msgid "Device path is required"
-msgstr ""
+msgstr "Il path del dispositivo è richiesto"
 
-#: virtinst/Storage.py:491 virtinst/Storage.py:665
+#: virtinst/Storage.py:487 virtinst/Storage.py:694
 msgid "Path on the host that is being shared."
-msgstr ""
+msgstr "Percorso sull'host che si sta condividendo."
 
-#: virtinst/Storage.py:493 virtinst/Storage.py:637
-#, fuzzy
+#: virtinst/Storage.py:489 virtinst/Storage.py:666
 msgid "Name of the host sharing the storage."
-msgstr "Nome dell'istanza guest"
+msgstr "Nome dell'host che condivide lo storage."
 
-#: virtinst/Storage.py:514
-#, fuzzy, python-format
+#: virtinst/Storage.py:510
+#, python-format
 msgid "Unknown Network Filesystem format: %s"
-msgstr "Tipo di rete sconosciuto %s"
+msgstr "Formato di filesystem di rete sconosciuto: %s"
 
-#: virtinst/Storage.py:517
+#: virtinst/Storage.py:513
 msgid "Type of network filesystem."
-msgstr ""
+msgstr "Tipi di filesystem di rete."
 
-#: virtinst/Storage.py:529 virtinst/Storage.py:676
-#, fuzzy
+#: virtinst/Storage.py:525 virtinst/Storage.py:705
 msgid "Hostname is required"
-msgstr "Nome di rete non richiesto per %s"
+msgstr "Il nome host è obbligatorio"
 
-#: virtinst/Storage.py:531 virtinst/Storage.py:614 virtinst/Storage.py:678
+#: virtinst/Storage.py:527 virtinst/Storage.py:643 virtinst/Storage.py:707
 msgid "Host path is required"
-msgstr ""
+msgstr "Il percorso dell'host è obbligatorio"
 
-#: virtinst/Storage.py:549
+#: virtinst/Storage.py:545
 msgid "Location of the existing LVM volume group."
-msgstr ""
+msgstr "Percorso del gruppo LVM esistente."
 
-#: virtinst/Storage.py:576
-msgid "Path to the existing disk device."
+#: virtinst/Storage.py:570
+msgid "Optional device(s) to build new LVM volume on."
 msgstr ""
 
-#: virtinst/Storage.py:579 virtinst/Storage.py:640
-msgid "Root location for identifying new storage volumes."
+#: virtinst/Storage.py:593
+#, fuzzy
+msgid "Must explicitly specify source path if building' pool"
 msgstr ""
+"E' necessario specificare il formato del disco se si formatta il dispositivo."
 
-#: virtinst/Storage.py:585
-msgid "Disk volume creation is not implemented."
-msgstr ""
+#: virtinst/Storage.py:609
+msgid "Path to the existing disk device."
+msgstr "Percorso del dispositivo disco esistente."
 
-#: virtinst/Storage.py:600
-#, fuzzy, python-format
+#: virtinst/Storage.py:612 virtinst/Storage.py:669
+msgid "Root location for identifying new storage volumes."
+msgstr "Percorso sorgente per identificare i nuovi volumi di storage."
+
+#: virtinst/Storage.py:629
+#, python-format
 msgid "Unknown Disk format: %s"
-msgstr "Tipo di rete sconosciuto %s"
+msgstr "Formato disco sconosciuto: %s"
 
-#: virtinst/Storage.py:603
+#: virtinst/Storage.py:632
 msgid "Format of the source device's partition table."
-msgstr ""
+msgstr "Formattazione della tabella delle partizioni del dispositivo sorgente."
 
-#: virtinst/Storage.py:626
+#: virtinst/Storage.py:655
 msgid "Must explicitly specify disk format if formatting disk device."
 msgstr ""
+"E' necessario specificare il formato del disco se si formatta il dispositivo."
 
-#: virtinst/Storage.py:644
+#: virtinst/Storage.py:673
 msgid "iSCSI volume creation is not implemented."
-msgstr ""
+msgstr "La creazione di volumi iSCSI non è implementata."
 
-#: virtinst/Storage.py:694
+#: virtinst/Storage.py:734
 msgid "One of pool or pool_name must be specified."
-msgstr ""
+msgstr "Un pool o pool_name deve essere specificato."
 
-#: virtinst/Storage.py:697 virtinst/Storage.py:770
-#, fuzzy
+#: virtinst/Storage.py:737 virtinst/Storage.py:806
 msgid "'conn' must be specified with 'pool_name'"
-msgstr "Bisogna specificare una locazione da cui installare"
-
-#: virtinst/Storage.py:756
-msgid "Default volume target path range exceeded."
-msgstr ""
+msgstr "'conn' deve essere specificato con 'pool_name'"
 
-#: virtinst/Storage.py:766
+#: virtinst/Storage.py:802
 msgid "Must specify pool_object or pool_name"
-msgstr ""
+msgstr "E' necessario specificare pool_object o pool_name"
 
-#: virtinst/Storage.py:772
+#: virtinst/Storage.py:808
 msgid "Connection does not support storage management."
-msgstr ""
+msgstr "La connessione non supporta la gestione dello storage."
 
-#: virtinst/Storage.py:777
-#, fuzzy, python-format
+#: virtinst/Storage.py:813
+#, python-format
 msgid "Couldn't find storage pool '%s': %s"
-msgstr "Impossibile acquisire il file %s: %s"
+msgstr "Impossibile trovare lo storage pool '%s': %s"
 
-#: virtinst/Storage.py:781
+#: virtinst/Storage.py:817
 msgid "pool_object must be a virStoragePool"
-msgstr ""
+msgstr "pool_onject deve essere un virStoragePool"
 
-#: virtinst/Storage.py:792
+#: virtinst/Storage.py:831
 msgid "Capacity must be a positive number"
-msgstr ""
+msgstr "Capacità deve essere un numero positivo"
 
-#: virtinst/Storage.py:813
+#: virtinst/Storage.py:852
 msgid "Allocation must be a non-negative number"
-msgstr ""
+msgstr "Allocazione deve essere un numero non negativo"
 
-#: virtinst/Storage.py:833
+#: virtinst/Storage.py:872
 msgid "'pool' must be a virStoragePool instance."
-msgstr ""
+msgstr "'pool' deve essere un'istanza di virStoragePool."
 
-#: virtinst/Storage.py:835
+#: virtinst/Storage.py:874
 #, python-format
 msgid "pool '%s' must be active."
+msgstr "il pool '%s' deve essere attivo."
+
+#: virtinst/Storage.py:886 virtinst/Storage.py:1120
+#, fuzzy
+msgid "input_vol must be a virStorageVol"
+msgstr "pool_onject deve essere un virStoragePool"
+
+#: virtinst/Storage.py:888
+msgid ""
+"Creating storage from an existing volume is not supported by this libvirt "
+"version."
 msgstr ""
 
-#: virtinst/Storage.py:844
-#, fuzzy, python-format
+#: virtinst/Storage.py:892
+msgid "virStorageVolume pointer to clone/use as input."
+msgstr ""
+
+#: virtinst/Storage.py:900
+#, python-format
 msgid "'%s' is not a valid format."
-msgstr "cpuset contiene un formato non valido."
+msgstr "'%s' non è un formato valido."
 
-#: virtinst/Storage.py:854
-#, fuzzy, python-format
+#: virtinst/Storage.py:910
+#, python-format
 msgid "Name '%s' already in use by another volume."
-msgstr "Il disco %s è già usato da un'altro guest\n"
+msgstr "Il nome '%s' è già in uso da un altro volume."
+
+#: virtinst/Storage.py:963
+#, python-format
+msgid "Allocating '%s'"
+msgstr ""
 
-#: virtinst/Storage.py:924
+#: virtinst/Storage.py:1023
 #, python-format
 msgid ""
 "There is not enough free space on the storage pool to create the volume. (%d "
 "M requested allocation > %d M available)"
 msgstr ""
+"Spazio libero sullo storage pool insufficiente per la creazione del volume. "
+"(%d M allocazione richiesta > %d M disponibili)"
 
-#: virtinst/Storage.py:930
+#: virtinst/Storage.py:1029
 #, python-format
 msgid ""
 "The requested volume capacity will exceed the available pool space when the "
 "volume is fully allocated. (%d M requested capacity > %d M available)"
 msgstr ""
+"La capacità del volume richiesto supererà lo spazio disponibile nel pool "
+"quando il volume sarà completamente allocato. (%d M capacità richiesta > %d "
+"M disponibile)"
 
-#: virtinst/_util.py:111
+#: virtinst/_util.py:128
 msgid "UUID must be a string."
 msgstr "UUID deve essere una stringa."
 
-#: virtinst/_util.py:119
+#: virtinst/_util.py:136
 msgid ""
 "UUID must be a 32-digit hexadecimal number. It may take the form XXXXXXXX-"
 "XXXX-XXXX-XXXX-XXXXXXXXXXXX or may omit hyphens altogether."
@@ -866,451 +945,671 @@ msgstr ""
 "UUID deve essere un numero esadecimale a 32 caratteri. Può avere la forma "
 "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX o può omettere tutti i trattini."
 
-#: virtinst/_util.py:130
-#, fuzzy, python-format
+#: virtinst/_util.py:147
+#, python-format
 msgid "%s name must be a string between 0 and 50 characters"
-msgstr ""
-"Il nome sistema deve essere una stringa di caratteri maggiore di zero e "
-"minore di 50"
+msgstr "%s deve essere una stringa compresa tra 0 e 50 caratteri"
 
-#: virtinst/_util.py:133
-#, fuzzy, python-format
+#: virtinst/_util.py:150
+#, python-format
 msgid "%s name can not be only numeric characters"
-msgstr "Il nome del sistema non può essere di soli caratteri numerici"
+msgstr "Il nome di %s non può essere composto di soli caratteri numerici"
 
-#: virtinst/_util.py:136
-#, fuzzy, python-format
+#: virtinst/_util.py:153
+#, python-format
 msgid "%s name can only contain alphanumeric, '_', '.', or '-' characters"
 msgstr ""
-"Il nome del sistema può contenere solo caratteri alfanumerici , '_', '.' "
-"oppure '-'"
+"Il nome %s può contenere solo caratteri alfanumerici, '_', '.' oppure '-'"
+
+#: virtinst/_util.py:276
+#, fuzzy
+msgid "Name generation range exceeded."
+msgstr ""
+"E' stato superato il numero massimo di percorsi per il volume di "
+"destinazione di default."
 
-#: virtinst/util.py:67
+#: virtinst/util.py:69
 #, python-format
 msgid "Invalid line length while parsing %s."
 msgstr "Lunghezza di linea non valida durante l'analisi di %s."
 
-#: virtinst/util.py:68
+#: virtinst/util.py:70
 #, python-format
 msgid "Defaulting bridge to xenbr%d"
 msgstr "Bridge predefinito a xenbr%d"
 
-#: virtinst/util.py:568
+#: virtinst/util.py:538 virtconv/parsers/ovf.py:160
 msgid "'path' or 'func' is required."
-msgstr ""
+msgstr "'path' o 'func' è obbligatorio."
 
-#: virtinst/VirtualAudio.py:38
-#, fuzzy, python-format
+#: virtinst/VirtualAudio.py:40
+#, python-format
 msgid "'model' must be a string,  was '%s'."
-msgstr "La memoria deve essere un intero, ma è '%s'"
+msgstr "'model' deve essere una stringa, è stato '%s'"
 
-#: virtinst/VirtualAudio.py:41
+#: virtinst/VirtualAudio.py:43
 #, python-format
 msgid "Unsupported sound model '%s'"
+msgstr "Modello di scheda sonora non supportata '%s'"
+
+#: virtinst/VirtualCharDevice.py:64
+msgid "Psuedo TTY"
 msgstr ""
 
-#: virtinst/VirtualDevice.py:43
-msgid "'conn' must be a virConnect instance"
+#: virtinst/VirtualCharDevice.py:66
+#, fuzzy
+msgid "Physical host character device"
+msgstr "Disco fisico"
+
+#: virtinst/VirtualCharDevice.py:68
+msgid "Standard input/output"
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:70
+msgid "Named pipe"
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:72
+msgid "Output to a file"
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:74
+msgid "Virtual console"
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:76
+msgid "Null device"
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:78
+msgid "TCP net console"
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:80
+msgid "UDP net console"
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:82
+msgid "Unix socket"
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:94
+msgid "Client mode."
 msgstr ""
 
-#: virtinst/VirtualDevice.py:67
+#: virtinst/VirtualCharDevice.py:96
+msgid "Server mode."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:139
 #, fuzzy, python-format
-msgid "'%s' must be True or False"
-msgstr "Grafica abilitata deve essere True o False"
+msgid "Unknown character device type '%s'."
+msgstr "Tipo di dispositivo sconosciuto '%s'"
 
-#: virtinst/VirtualDevice.py:71
+#: virtinst/VirtualCharDevice.py:147 virtinst/VirtualCharDevice.py:157
 #, fuzzy, python-format
-msgid "'%s' must be a string, not '%s'."
-msgstr "Il percorso %s deve essere una stringa oppure nullo."
+msgid "Unknown character device type '%s'"
+msgstr "Tipo di dispositivo sconosciuto '%s'"
+
+#: virtinst/VirtualCharDevice.py:173
+msgid "Method used to expose character device in the host."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:186
+#, fuzzy, python-format
+msgid "Unknown character mode '%s'."
+msgstr "Modalità cache sconosciuta '%s'"
 
-#: virtinst/VirtualDisk.py:205
+#: virtinst/VirtualCharDevice.py:213
+#, fuzzy, python-format
+msgid "Unknown protocol '%s'."
+msgstr "Opzione --disk sconosciuta '%s'."
+
+#: virtinst/VirtualCharDevice.py:232
+#, python-format
+msgid "A source path is required for character device type '%s'"
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:282
 #, fuzzy
-msgid "'size' must be a number greater than 0."
-msgstr "Il valore memoria deve essere un intero maggiore di 0"
+msgid "Host character device to attach to guest."
+msgstr "Il nodo dispositivo di tipo '%s' non può essere agganciato al guest."
+
+#: virtinst/VirtualCharDevice.py:288
+msgid "Named pipe to use for input and output."
+msgstr ""
 
-#: virtinst/VirtualDisk.py:215
+#: virtinst/VirtualCharDevice.py:294
+msgid "File path to record device output."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:302 virtinst/VirtualCharDevice.py:312
+msgid "Target connect/listen mode."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:305
+msgid "Unix socket path."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:315
+msgid "Address to connect/listen to."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:318
+msgid "Port on target host to connect/listen to."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:321
+msgid "Format used when sending data."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:325
+#, fuzzy
+msgid "A host and port must be specified."
+msgstr "Un dispositivo disco deve essere specificato."
+
+#: virtinst/VirtualCharDevice.py:337
+msgid "Host address to bind to."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:340
+msgid "Host port to bind to."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:343
+msgid "Host address to send output to."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:346
+msgid "Host port to send output to."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:351
+#, fuzzy
+msgid "A connection port must be specified."
+msgstr "E' necessario specificare una connessione."
+
+#: virtinst/VirtualDevice.py:63
+msgid "Virtual device type must be set in subclass."
+msgstr ""
+
+#: virtinst/VirtualDevice.py:66
 #, fuzzy, python-format
-msgid "Unknown storage type '%s'"
-msgstr "Tipo di rete sconosciuto %s"
+msgid "Unknown virtual device type '%s'."
+msgstr "Tipo di dispositivo sconosciuto '%s'"
 
-#: virtinst/VirtualDisk.py:224
+#: virtinst/VirtualDevice.py:71
+msgid "'conn' must be a virConnect instance"
+msgstr "'conn' deve essere un'istanza virConnect"
+
+#: virtinst/VirtualDevice.py:104
+#, python-format
+msgid "'%s' must be True or False"
+msgstr "'%s' deve essere True o False"
+
+#: virtinst/VirtualDevice.py:108
+#, python-format
+msgid "'%s' must be a string, not '%s'."
+msgstr "'%s' deve essere una stringa, non '%s'."
+
+#: virtinst/VirtualDisk.py:262
 #, fuzzy, python-format
+msgid "Error validating clone path: %s"
+msgstr "Errore nella creazione del disco cdrom: %s"
+
+#: virtinst/VirtualDisk.py:271
+msgid "'size' must be a number greater than 0."
+msgstr "'size' deve essere un intero maggiore di 0."
+
+#: virtinst/VirtualDisk.py:281
+#, python-format
+msgid "Unknown storage type '%s'"
+msgstr "Tipo di storage sconosciuto '%s'"
+
+#: virtinst/VirtualDisk.py:290
+#, python-format
 msgid "Unknown device type '%s'"
-msgstr "Tipo di rete sconosciuto %s"
+msgstr "Tipo di dispositivo sconosciuto '%s'"
 
-#: virtinst/VirtualDisk.py:258
+#: virtinst/VirtualDisk.py:324
 msgid "vol_object must be a virStorageVol instance"
-msgstr ""
+msgstr "vol_object deve essere un'istanza virStorageVole"
 
-#: virtinst/VirtualDisk.py:266
+#: virtinst/VirtualDisk.py:332
 msgid "vol_install must be a StorageVolume  instance."
-msgstr ""
+msgstr "vol_install deve essere un'istanza StorageVolume."
 
-#: virtinst/VirtualDisk.py:292
-#, fuzzy, python-format
+#: virtinst/VirtualDisk.py:358
+#, python-format
 msgid "Unknown cache mode '%s'"
-msgstr "Tipo di rete sconosciuto %s"
+msgstr "Modalità cache sconosciuta '%s'"
 
-#: virtinst/VirtualDisk.py:353
-#, fuzzy
+#: virtinst/VirtualDisk.py:373
+#, fuzzy, python-format
+msgid "SELinux label '%s' is not valid."
+msgstr "'%s' non è un formato valido."
+
+#: virtinst/VirtualDisk.py:433
 msgid "Unknown storage volume type."
-msgstr "Tipo di rete sconosciuto "
+msgstr "Tipo di volume sconosciuto."
 
-#: virtinst/VirtualDisk.py:372
+#: virtinst/VirtualDisk.py:449
 #, python-format
 msgid "Passed type '%s' does not match detected storage type '%s'"
-msgstr ""
+msgstr "Il tipo configurato '%s' è diverso dal tipo di storage '%s' rilevato"
 
-#: virtinst/VirtualDisk.py:382
+#: virtinst/VirtualDisk.py:504
 msgid "volName must be a tuple of the form ('poolname', 'volname')"
-msgstr ""
+msgstr "volName deve essere una tupla nella forma ('poolname', 'volname')"
 
-#: virtinst/VirtualDisk.py:385
+#: virtinst/VirtualDisk.py:507
 msgid "'volName' requires a passed connection."
-msgstr ""
+msgstr "'volName' richiede che sia passata una connessione."
 
-#: virtinst/VirtualDisk.py:387
+#: virtinst/VirtualDisk.py:509
 msgid "Connection does not support storage lookup."
-msgstr ""
+msgstr "La connessione non supporta la ricerca dello storage."
 
-#: virtinst/VirtualDisk.py:393
+#: virtinst/VirtualDisk.py:515
 #, python-format
 msgid "Couldn't lookup volume object: %s"
-msgstr ""
+msgstr "Impossibile trovare l'oggetto volume: %s"
 
-#: virtinst/VirtualDisk.py:436
-#, fuzzy, python-format
+#: virtinst/VirtualDisk.py:540
+#, python-format
+msgid "Device type '%s' requires a path"
+msgstr "Il tipo di dispositivo '%s' richiede un percorso"
+
+#: virtinst/VirtualDisk.py:583
+#, python-format
 msgid "Size must be specified for non existent volume path '%s'"
-msgstr "Bisogna fornire una dimensione per i dischi non-fisici"
+msgstr "E' necessario specificare un percorso per i volumi non esistenti '%s'"
 
-#: virtinst/VirtualDisk.py:459
+#: virtinst/VirtualDisk.py:603
 #, python-format
 msgid ""
 "Cannot use storage '%(path)s': '%(rootdir)s' is not managed on the remote "
 "host."
 msgstr ""
+"Impossibile utilizzare lo storage '%(path)s': '%(rootdir)s' non è gestita "
+"dall'host remoto."
 
-#: virtinst/VirtualDisk.py:464
+#: virtinst/VirtualDisk.py:608
 #, python-format
 msgid "Cannot use storage %(path)s: %(err)s"
-msgstr ""
+msgstr "Impossibile utilizzare lo storage %(path)s: %(err)s"
 
-#: virtinst/VirtualDisk.py:517
+#: virtinst/VirtualDisk.py:686
 msgid "Connection doesn't support remote storage."
-msgstr ""
-
-#: virtinst/VirtualDisk.py:534
-#, fuzzy, python-format
-msgid "Device type '%s' requires a path"
-msgstr "Il tipo di disco '%s' richiede un percorso"
+msgstr "La connessione non supporta lo storage remoto."
 
-#: virtinst/VirtualDisk.py:549
+#: virtinst/VirtualDisk.py:689
 msgid "Must specify libvirt managed storage if on a remote connection"
 msgstr ""
+"E' necessario specificare uno storage libvirt gestito se su connessione "
+"remota"
 
-#: virtinst/VirtualDisk.py:558
-#, fuzzy, python-format
+#: virtinst/VirtualDisk.py:726
+#, python-format
 msgid "The path '%s' must be a file or a device, not a directory"
-msgstr "Il percorso %s deve essere un file o un dispositivo, non una cartella"
+msgstr ""
+"Il percorso '%s' deve essere un file o un dispositivo, non una cartella"
 
-#: virtinst/VirtualDisk.py:568
-#, fuzzy, python-format
+#: virtinst/VirtualDisk.py:735
+#, python-format
 msgid "Cannot create storage for %s device."
-msgstr "Creazione file di storage..."
+msgstr "Impossibile creare lo storage per il dispositivo %s."
 
-#: virtinst/VirtualDisk.py:573
-#, fuzzy
-msgid "Local block device path must exist."
-msgstr "Il dispositivo a blocchi specificato non esiste."
-
-#: virtinst/VirtualDisk.py:581
+#: virtinst/VirtualDisk.py:740
 #, fuzzy, python-format
+msgid "Local block device path '%s' must exist."
+msgstr "Il percorso locale per il dispositivo a blocchi deve esistere."
+
+#: virtinst/VirtualDisk.py:749
+#, python-format
 msgid "size is required for non-existent disk '%s'"
-msgstr "Bisogna fornire una dimensione per i dischi non-fisici"
+msgstr "E' necessario fornire una dimensione per i dischi non esistenti '%s'"
 
-#: virtinst/VirtualDisk.py:584
+#: virtinst/VirtualDisk.py:752
 #, python-format
 msgid "No write access to directory '%s'"
-msgstr ""
+msgstr "Accesso in sola lettura alla directory '%s'"
+
+#: virtinst/VirtualDisk.py:777
+#, python-format
+msgid "Cloning %(srcfile)s"
+msgstr "Clonazione di %(srcfile)s"
 
-#: virtinst/VirtualDisk.py:620
-msgid "Creating storage file..."
+#: virtinst/VirtualDisk.py:780
+#, fuzzy, python-format
+msgid "Creating storage file %s"
 msgstr "Creazione file di storage..."
 
-#: virtinst/VirtualDisk.py:626
+#: virtinst/VirtualDisk.py:793
+msgid "copying to an existing vdisk is not supported"
+msgstr "la copia ad un vdisk esistente non è supportata"
+
+#: virtinst/VirtualDisk.py:796
+msgid "failed to clone disk"
+msgstr "impossibile clonare il disco"
+
+#: virtinst/VirtualDisk.py:807
 #, python-format
 msgid "Error creating vdisk %s"
-msgstr ""
+msgstr "Errore nella creazione del vdisk %s"
 
-#: virtinst/VirtualDisk.py:647
+#: virtinst/VirtualDisk.py:832
 #, python-format
 msgid "Error creating diskimage %s: %s"
-msgstr ""
+msgstr "Errore nella creazione dell'immagine disco %s: %s"
 
-#: virtinst/VirtualDisk.py:669
+#: virtinst/VirtualDisk.py:932
 msgid "'disknode' or self.target must be set!"
-msgstr ""
+msgstr "'disknode' o self.target deve essere specificato!"
 
-#: virtinst/VirtualDisk.py:741
+#: virtinst/VirtualDisk.py:1003
 msgid ""
 "The filesystem will not have enough free space to fully allocate the sparse "
 "file when the guest is running."
 msgstr ""
+"Il filesystem non avrà abbastanza spazio libero per allocare lo sparse file "
+"quando il guest è in esecuzione."
 
-#: virtinst/VirtualDisk.py:746
+#: virtinst/VirtualDisk.py:1008
 msgid "There is not enough free space to create the disk."
-msgstr ""
+msgstr "Spazio disco insufficiente per la creazione del disco."
 
-#: virtinst/VirtualDisk.py:750
+#: virtinst/VirtualDisk.py:1012
 #, python-format
 msgid " %d M requested > %d M available"
-msgstr ""
+msgstr "%d M richiesti > %d M disponibili"
 
-#: virtinst/VirtualDisk.py:840
+#: virtinst/VirtualDisk.py:1175
 msgid "Cannot determine device bus/type."
-msgstr ""
+msgstr "Impossibile determinare il bus/tipo del dispositivo."
 
-#: virtinst/VirtualDisk.py:847
+#: virtinst/VirtualDisk.py:1182
 msgid "IDE CDROM must use 'hdc', but target in use."
-msgstr ""
+msgstr "Il CDROM IDE deve usare 'hdc', ma la destinazione è in uso."
 
-#: virtinst/VirtualDisk.py:863
+#: virtinst/VirtualDisk.py:1198
 #, python-format
 msgid "No more space for disks of type '%s'"
-msgstr ""
+msgstr "Spazio insufficiente per i dischi di tipo '%s'"
 
-#: virtinst/VirtualGraphics.py:38
+#: virtinst/VirtualGraphics.py:40
 msgid "Unknown graphics type"
 msgstr "Tipo di grafica sconosciuto"
 
-#: virtinst/VirtualGraphics.py:61
+#: virtinst/VirtualGraphics.py:63
 msgid "Keymap must be a string"
 msgstr "Keymap deve essere una stringa"
 
-#: virtinst/VirtualGraphics.py:63
+#: virtinst/VirtualGraphics.py:65
 msgid "Keymap must be less than 16 characters"
-msgstr "keymap deve essere inferiore di 16 caratteri"
+msgstr "Keymap deve essere inferiore di 16 caratteri"
 
-#: virtinst/VirtualGraphics.py:65
+#: virtinst/VirtualGraphics.py:67
 msgid "Keymap can only contain alphanumeric, '_', or '-' characters"
-msgstr "keymap può contenere solo caratteri alfanumerici, '_' o '-'"
+msgstr "Keymap può contenere solo caratteri alfanumerici, '_' o '-'"
 
-#: virtinst/VirtualGraphics.py:76
+#: virtinst/VirtualGraphics.py:78
 msgid ""
 "VNC port must be a number between 5900 and 65535, or -1 for auto allocation"
 msgstr ""
+"La porta usata da VNC deve essere compresa tra 5900 e 65535, o -1 per "
+"l'allocazione automatica"
 
-#: virtinst/VirtualHostDevice.py:39
+#: virtinst/VirtualHostDevice.py:43
 msgid "'name' or 'nodedev' required."
-msgstr ""
+msgstr "'name' o 'nodevdev' obbligatorio."
 
-#: virtinst/VirtualHostDevice.py:58
+#: virtinst/VirtualHostDevice.py:62
 #, python-format
 msgid "Node device type '%s' cannot be attached to  guest."
-msgstr ""
+msgstr "Il nodo dispositivo di tipo '%s' non può essere agganciato al guest."
 
-#: virtinst/VirtualHostDevice.py:124
+#: virtinst/VirtualHostDevice.py:130
 msgid "'nodedev' must be a USBDevice instance."
-msgstr ""
+msgstr "'nodedev' deve essere un'istanza di un dispositivo USB."
 
-#: virtinst/VirtualHostDevice.py:140
+#: virtinst/VirtualHostDevice.py:146
 msgid "'vendor' and 'product', or 'bus' and  'device' are required."
-msgstr ""
+msgstr "'vendor' e 'product', o 'bus' e 'device' sono richiesti."
 
-#: virtinst/VirtualHostDevice.py:173
+#: virtinst/VirtualHostDevice.py:179
 msgid "'nodedev' must be a PCIDevice instance."
-msgstr ""
+msgstr "'nodedev' deve essere un'istanza di PCIDevice."
 
-#: virtinst/VirtualHostDevice.py:182
+#: virtinst/VirtualHostDevice.py:188
 msgid "'domain', 'bus', 'slot', and 'function' must be specified."
-msgstr ""
+msgstr "'domain', 'bus', 'slot' e 'function' devono essere specificati."
 
-#: virtinst/VirtualHostDevice.py:207
+#: virtinst/VirtualHostDevice.py:215
 #, python-format
 msgid "Could not detach PCI device: %s"
-msgstr ""
+msgstr "Impossibile disconnettere il dispositivo PCI: %s"
+
+#: virtinst/VirtualInputDevice.py:46
+#, fuzzy, python-format
+msgid "Unknown input type '%s'."
+msgstr "Tipo di dispositivo sconosciuto '%s'"
+
+#: virtinst/VirtualInputDevice.py:54
+#, fuzzy, python-format
+msgid "Unknown input bus '%s'."
+msgstr "Variante del SO sconosciuta '%s'"
 
-#: virtinst/VirtualNetworkInterface.py:40
+#: virtinst/VirtualNetworkInterface.py:45
 #, fuzzy
-msgid "MAC address must be a string."
-msgstr "Keymap deve essere una stringa"
+msgid "Shared physical device"
+msgstr "Disco fisico"
 
-#: virtinst/VirtualNetworkInterface.py:46
-msgid "MAC address must be of the format AA:BB:CC:DD:EE:FF"
-msgstr "L'indirizzo MAC deve essere nel formato AA:BB:CC:DD:EE:FF"
+#: virtinst/VirtualNetworkInterface.py:47
+msgid "Virtual networking"
+msgstr ""
+
+#: virtinst/VirtualNetworkInterface.py:49
+msgid "Usermode networking"
+msgstr ""
+
+#: virtinst/VirtualNetworkInterface.py:51
+#, fuzzy, python-format
+msgid "Unknown network type '%s'"
+msgstr "Tipo di rete sconosciuto %s"
 
-#: virtinst/VirtualNetworkInterface.py:57
+#: virtinst/VirtualNetworkInterface.py:72
 msgid "A network name was not provided"
-msgstr "Non è stato fornito il nome rete"
+msgstr "Non è stato fornito un nome rete"
 
-#: virtinst/VirtualNetworkInterface.py:63
+#: virtinst/VirtualNetworkInterface.py:78
 #, python-format
 msgid "Unknown network type %s"
 msgstr "Tipo di rete sconosciuto %s"
 
-#: virtinst/VirtualNetworkInterface.py:79
-#, fuzzy, python-format
+#: virtinst/VirtualNetworkInterface.py:90
+msgid "MAC address must be a string."
+msgstr "Il MAC address deve essere una stringa."
+
+#: virtinst/VirtualNetworkInterface.py:94
+msgid "MAC address must be of the format AA:BB:CC:DD:EE:FF"
+msgstr "L'indirizzo MAC deve essere nel formato AA:BB:CC:DD:EE:FF"
+
+#: virtinst/VirtualNetworkInterface.py:113
+#, python-format
 msgid "Virtual network '%s' does not exist: %s"
-msgstr "L'immagine '%s' del LiveCD non esiste"
+msgstr "La rete virtuale '%s' non esiste: %s"
 
-#: virtinst/VirtualNetworkInterface.py:82
+#: virtinst/VirtualNetworkInterface.py:116
 #, python-format
 msgid "Virtual network '%s' has not been started."
-msgstr ""
+msgstr "La rete virtuale '%s' non è stata avviata."
 
-#: virtinst/VirtualNetworkInterface.py:105
-#, fuzzy
+#: virtinst/VirtualNetworkInterface.py:139
 msgid ""
 "The MAC address you entered is already in use by another active virtual "
 "machine."
 msgstr ""
-"L'indirizzo MAC inserito è già in uso da un'altra macchina virtuale inattiva!"
+"L'indirizzo MAC inserito è già in uso da un'altra macchina virtuale attiva."
 
-#: virtinst/VirtualNetworkInterface.py:108
-#, fuzzy
+#: virtinst/VirtualNetworkInterface.py:142
 msgid ""
 "The MAC address you entered conflicts with a device on the physical host."
-msgstr "L'indirizzo MAC inserito è in conflitto con il NIC fisico."
+msgstr ""
+"L'indirizzo MAC inserito è in conflitto con un dispositivo dell'host fisico."
 
-#: virtinst/VirtualNetworkInterface.py:110
-#, fuzzy
+#: virtinst/VirtualNetworkInterface.py:144
 msgid ""
 "The MAC address you entered is already in use by another inactive virtual "
 "machine."
 msgstr ""
-"L'indirizzo MAC inserito è già in uso da un'altra macchina virtuale inattiva!"
+"L'indirizzo MAC inserito è già in uso da un'altra macchina virtuale inattiva."
 
-#: virtconv/diskcfg.py:242
-#, fuzzy, python-format
+#: virtconv/diskcfg.py:251
+#, python-format
 msgid "Cannot convert to disk format %s"
-msgstr "Tipo di rete sconosciuto %s"
+msgstr "Impossibile convertire al formato disco %s"
 
-#: virtconv/diskcfg.py:255
+#: virtconv/diskcfg.py:264
 #, python-format
 msgid "Cannot convert disk with absolute path %s"
-msgstr ""
+msgstr "Impossibile convertire il disco con percorso assoluto %s"
 
 #: virtconv/formats.py:141
-#, fuzzy
 msgid "Unknown format"
-msgstr "Tipo di rete sconosciuto %s"
+msgstr "Formato sconosciuto"
 
 #: virtconv/vmcfg.py:71
 msgid "VM name is not set"
-msgstr ""
+msgstr "Il nome VM non è stato configurato"
 
 #: virtconv/vmcfg.py:77
 msgid "VM type is not set"
-msgstr ""
+msgstr "Il tipo di VM non è configurato"
 
 #: virtconv/vmcfg.py:79
 msgid "VM arch is not set"
-msgstr ""
+msgstr "L'architettura della VM non è configurata"
 
 #: virtconv/vmcfg.py:83
-#, fuzzy, python-format
+#, python-format
 msgid "Disk %s:%s storage does not exist"
-msgstr "Il disco di sistema %s non esiste"
+msgstr "Il disco di storage %s:%s non esiste"
 
-#: virtconv/parsers/virtimage.py:212
+#: virtconv/parsers/ovf.py:212
+#, python-format
+msgid "Didn't find parent bus for disk '%s'"
+msgstr ""
+
+#: virtconv/parsers/ovf.py:226 virtconv/parsers/ovf.py:242
 #, fuzzy, python-format
+msgid "Unknown reference id '%s' for path %s."
+msgstr "Formato disco sconosciuto: %s"
+
+#: virtconv/parsers/ovf.py:235
+#, fuzzy, python-format
+msgid "Unknown storage path type %s."
+msgstr "Tipo di storage pool sconosciuto: %s"
+
+#: virtconv/parsers/ovf.py:396
+#, python-format
+msgid ""
+"OVF section '%s' is listed as required, but parser doesn't know how to "
+"handle it."
+msgstr ""
+
+#: virtconv/parsers/virtimage.py:212
+#, python-format
 msgid "Couldn't import file '%s': %s"
-msgstr "Impossibile acquisire il file %s: %s"
+msgstr "Impossibile importare il file '%s': %s"
 
 #: virtconv/parsers/virtimage.py:219
 #, python-format
 msgid "No Name defined in '%s'"
-msgstr ""
+msgstr "Nessun nome definito in '%s'"
 
 #: virtconv/parsers/virtimage.py:238
-#, fuzzy
 msgid "Unable to determine disk format"
-msgstr "Impossibile determinare il percorso dell'RPM kernel"
+msgstr "Impossibile determinare il formato disco"
 
 #: virtconv/parsers/virtimage.py:265
 msgid "VM must have a memory setting"
-msgstr ""
+msgstr "Le VM devono avere un'impostazione per la memoria"
 
 #: virtconv/parsers/vmx.py:216
 #, python-format
 msgid "Syntax error at line %d: %s"
-msgstr ""
+msgstr "Errore di sintassi alla linea %d: %s"
 
 #: virtconv/parsers/vmx.py:230
 #, python-format
 msgid "No displayName defined in \"%s\""
-msgstr ""
+msgstr "Nessun displayName definito in \"%s\""
 
-#: virt-clone:43
+#: virt-clone:47
 msgid "What is the name for the cloned virtual machine?"
-msgstr "Qual'è il nome per la macchina virtuale clonata?"
+msgstr "Qual è il nome per la macchina virtuale clonata?"
 
-#: virt-clone:61
+#: virt-clone:48
 #, fuzzy
-msgid "What is the name of the original virtual machine?"
-msgstr "Qual'è il nome o l'UUID della macchina virtuale originale?"
-
-#: virt-clone:102
-#, fuzzy, python-format
-msgid "What would you like to use as the cloned disk (file path) for '%s'?"
-msgstr "Cosa si desidera usare come disco colnato (percorso file)?"
+msgid "A name is required for the new virtual machine."
+msgstr "Il nome per la macchina vistuale è obbligatorio."
 
-#: virt-clone:113
-#, python-format
-msgid "This will overwrite the existing path '%s'!\n"
-msgstr ""
+#: virt-clone:65
+msgid "What is the name of the original virtual machine?"
+msgstr "Qual è il nome della macchina virtuale originale?"
 
-#: virt-clone:115
+#: virt-clone:66
 #, fuzzy
-msgid "Do you really want to use this disk (yes or no)?"
-msgstr "Si desidera davvero usare il disco (si o no)?"
+msgid "An original machine name or xml file is required."
+msgstr "Il nome originale del guest o xml è richiesto."
 
-#: virt-clone:120 virt-install:206 virt-install.orig:206
+#: virt-clone:112
 #, python-format
-msgid "Disk %s is already in use by another guest!\n"
-msgstr "Il disco %s è già usato da un'altro guest\n"
-
-#: virt-clone:121 virt-install:207 virt-install.orig:207
-msgid "Do you really want to use the disk (yes or no)? "
-msgstr "Si desidera davvero usare il disco (si o no)?"
+msgid "What would you like to use as the cloned disk (file path) for '%s'?"
+msgstr "Cosa si desidera usare come disco clonato (percorso file) per '%s'?"
 
-#: virt-clone:148 virt-image:88 virt-install:334 virt-install.orig:334
+#: virt-clone:134 virt-image:78 virt-install:499
 msgid "Connect to hypervisor with URI"
-msgstr "Connessione all'ipervisore con URI"
+msgstr "Connessione all'hypervisor con URI"
 
-#: virt-clone:151 virt-image:91 virt-install:337 virt-install.orig:337
+#: virt-clone:137 virt-image:81 virt-install:502
 msgid "General Options"
-msgstr ""
+msgstr "Opzioni Generali"
 
-#: virt-clone:154
-#, fuzzy
+#: virt-clone:140
 msgid "Name of the original guest; The status must be shut off or paused."
-msgstr "Nome o uuid per il guest originale; Lo stato deve essere spento"
+msgstr "Nome per il guest originale; Lo stato deve essere spento o in pausa."
 
-#: virt-clone:159
-#, fuzzy
+#: virt-clone:145
 msgid "XML file to use as the original guest."
-msgstr "File da usare come immagine disco"
+msgstr "File XML da usare come guest originale."
+
+#: virt-clone:147
+msgid ""
+"Auto generate clone name and storage paths from the original guest "
+"configuration."
+msgstr ""
 
-#: virt-clone:162
+#: virt-clone:151
 msgid "Name for the new guest"
 msgstr "Nome per il nuovo guest"
 
-#: virt-clone:166
+#: virt-clone:155
 msgid "New UUID for the clone guest; Default is a randomly generated UUID"
 msgstr ""
 "Nuovo UUID per il guest clone; In modo predefinito l'UUID viene generato "
 "casualmente"
 
-#: virt-clone:170 virt-install:415 virt-install.orig:415
+#: virt-clone:159 virt-install:588
 msgid "Storage Configuration"
-msgstr ""
+msgstr "Configurazione Storage"
 
-#: virt-clone:174
+#: virt-clone:163
 msgid "New file to use as the disk image for the new guest"
 msgstr "Nuovo file da usare come immagine disco per il nuovo guest"
 
-#: virt-clone:179
+#: virt-clone:168
 msgid ""
 "Force to copy devices (eg, if 'hdc' is a readonly cdrom device, --force-"
 "copy=hdc)"
@@ -1318,20 +1617,20 @@ msgstr ""
 "Forza la copia dei dispositivi (es, se 'hdc' è un dispositivo cdrom di sola "
 "lettura, --force-copy=hdc)"
 
-#: virt-clone:183
+#: virt-clone:172
 msgid "Do not use a sparse file for the clone's disk image"
 msgstr "Non usare un file sparso per l'immagine su disco del clone"
 
-#: virt-clone:187
+#: virt-clone:176
 msgid "Preserve a new file to use as the disk image for the new guest"
 msgstr ""
 "Conserva un nuovo file da usare come immagine del disco per il nuovo guest"
 
-#: virt-clone:191 virt-image:128 virt-install:435 virt-install.orig:435
+#: virt-clone:180 virt-image:118 virt-install:610
 msgid "Networking Configuration"
-msgstr ""
+msgstr "Configurazione Rete"
 
-#: virt-clone:195
+#: virt-clone:184
 msgid ""
 "New fixed MAC address for the clone guest. Default is a randomly generated "
 "MAC"
@@ -1339,62 +1638,72 @@ msgstr ""
 "Nuovo indirizzo MAC fisso per il guest clone. In modo predefinito è un MAC "
 "generato casualmente"
 
-#: virt-clone:199 virt-image:158 virt-install:470 virt-install.orig:470
+#: virt-clone:188 virt-image:138 virt-install:639
 msgid "Miscellaneous Options"
-msgstr ""
+msgstr "Opzioni Varie"
 
-#: virt-clone:201 virt-convert:91 virt-image:172 virt-install:472
-#: virt-install.orig:472
+#: virt-clone:190 virt-convert:91 virt-image:152 virt-install:641
 msgid "Print debugging information"
 msgstr "Mostra le informazioni di debug"
 
-#: virt-clone:203 virt-image:174
+#: virt-clone:192 virt-image:154 virt-install:652
+#, fuzzy
+msgid "Request user input for ambiguous situations or required options."
+msgstr ""
+"Richiedi intervento utente per situazioni ambigue. Per impostazione "
+"predefinita è disabilitato, in modo tale che il processo venga terminato in "
+"caso di richieste di input dall'utente. "
+
+#: virt-clone:195 virt-image:157
 msgid ""
 "Do not prompt for input. Answers yes where applicable, terminates for all "
 "other prompts"
 msgstr ""
+"Non richiedere conferme. Rispondere sì dove necessario, terminare per tutte "
+"le altre richieste."
 
-#: virt-clone:219
-#, fuzzy
+#: virt-clone:212
 msgid "Must be privileged to clone Xen guests"
 msgstr "Bisogna essere root per clonare gli ospiti Xen"
 
-#: virt-clone:250
+#: virt-clone:242
 #, python-format
 msgid ""
 "\n"
 "Clone '%s' created successfully."
 msgstr ""
+"\n"
+"Clone '%s' creato con successo."
 
-#: virt-clone:265 virt-image:283 virt-install:784 virt-install.orig:784
+#: virt-clone:257 virt-image:267 virt-install:933
 msgid "Installation aborted at user request"
-msgstr "Installazione aortita su richiesta utente"
+msgstr "Installazione interrotta su richiesta utente"
 
 #: virt-convert:50
 msgid "Input format, e.g. 'vmx'"
-msgstr ""
+msgstr "Formato input, es. 'vmx'"
 
 #: virt-convert:53
 msgid "Output format, e.g. 'virt-image'"
-msgstr ""
+msgstr "Formato output, es. 'virt-image'"
 
 #: virt-convert:55
 msgid "Output disk format"
-msgstr ""
+msgstr "Formato del disco di output"
 
-#: virt-convert:60 virt-install:386 virt-install.orig:386
+#: virt-convert:60 virt-install:557
 msgid "This guest should be a fully virtualized guest"
 msgstr "Questo guest dovrebbe essere un guest completamente virtualizzato"
 
-#: virt-convert:62 virt-install:388 virt-install.orig:388
+#: virt-convert:62 virt-install:559
 msgid "This guest should be a paravirtualized guest"
 msgstr "Questo guest dovrebbe essere un guest paravirtualizzato"
 
 #: virt-convert:68
 msgid "Machine Architecture Type (i686/x86_64/ppc)"
-msgstr ""
+msgstr "Tipo di architettura (i686/x86_64/ppc)"
 
-#: virt-convert:71 virt-install:360 virt-install.orig:360
+#: virt-convert:71 virt-install:525
 msgid ""
 "The OS type for fully virtualized guests, e.g. 'linux', 'unix', 'windows'"
 msgstr ""
@@ -1402,7 +1711,6 @@ msgstr ""
 "'windows'"
 
 #: virt-convert:75
-#, fuzzy
 msgid ""
 "The OS variant for fully virtualized guests, e.g. 'fedora6', 'rhel5', "
 "'solaris10', 'win2k', 'vista'"
@@ -1410,253 +1718,204 @@ msgstr ""
 "La variante di OS per ospiti completamente virtualizzati, es. 'fedora6', "
 "'rhel5', 'solaris10', 'win2k', 'vista'"
 
-#: virt-convert:78 virt-install:376 virt-install.orig:376
+#: virt-convert:78 virt-install:547
 msgid ""
 "Disables APIC for fully virtualized guest (overrides value in os-type/os-"
 "variant db)"
 msgstr ""
-"Disabilita APIC per il guest completamente virtualizzato (prevarica i valori "
-"nel db os-type/os-variant)"
+"Disabilita APIC per il guest completamente virtualizzato (sovrascrive i "
+"valori nel db tipo-so/variante-so)"
 
-#: virt-convert:82 virt-install:380 virt-install.orig:380
+#: virt-convert:82 virt-install:551
 msgid ""
 "Disables ACPI for fully virtualized guest (overrides value in os-type/os-"
 "variant db)"
 msgstr ""
-"Disabilita ACPI per il guest completamente virtualizzato (prevarica i valori "
-"nel db os-type/os-variant)"
+"Disabilita ACPI per il guest completamente virtualizzato (sovrascrive i "
+"valori nel db tipo-so/variante-so)"
 
 #: virt-convert:89
 msgid "Don't be verbose"
-msgstr ""
+msgstr "Non essere dettagliato"
 
-#: virt-convert:97
-#, fuzzy
+#: virt-convert:100
 msgid "You need to provide an input VM definition"
-msgstr "È necessario fornire un descrittore di immagine XML"
+msgstr "E' necessario fornire un valore per la definizione della VM di input"
 
-#: virt-convert:99
+#: virt-convert:102
 msgid "Too many arguments provided"
-msgstr ""
+msgstr "Sono stati forniti troppi argomenti"
 
-#: virt-convert:103
-#, fuzzy, python-format
+#: virt-convert:106
+#, python-format
 msgid "Unknown output disk format \"%s\""
-msgstr "Tipo di rete sconosciuto %s"
+msgstr "Formato del disco di output sconosciuto \"%s\""
 
-#: virt-convert:118
-#, fuzzy, python-format
+#: virt-convert:121
+#, python-format
 msgid "Unknown output format \"%s\")"
-msgstr "Tipo di rete sconosciuto %s"
+msgstr "Formato dell'output sconosciuto \"%s\")"
 
-#: virt-convert:120
+#: virt-convert:123
 #, python-format
 msgid "No output handler for format \"%s\")"
-msgstr ""
+msgstr "Nessun gestore per il formato \"%s\")"
 
-#: virt-convert:124
+#: virt-convert:127
 #, python-format
 msgid "Couldn't access input argument \"%s\"\n"
-msgstr ""
+msgstr "Impossibile accedere all'argomento di input \"%s\"\n"
 
-#: virt-convert:131
-#, fuzzy, python-format
+#: virt-convert:134
+#, python-format
 msgid "Couldn't determine input format for \"%s\": %s"
-msgstr "Impossibile acquisire il file %s: %s"
+msgstr "Impossibile determinare il formato di input per \"%s\": %s"
 
-#: virt-convert:136
-#, fuzzy, python-format
+#: virt-convert:139
+#, python-format
 msgid "Unknown input format \"%s\")"
-msgstr "Tipo di rete sconosciuto %s"
+msgstr "Formato di input sconosciuto \"%s\")"
 
-#: virt-convert:138
+#: virt-convert:141
 #, python-format
 msgid "No input handler for format \"%s\""
-msgstr ""
+msgstr "Nessun gestore per il formato \"%s\""
 
-#: virt-convert:173
+#: virt-convert:176
 #, python-format
 msgid "Couldn't clean up output directory \"%s\": %s"
-msgstr ""
+msgstr "Impossibile pulire la directory di output \"%s\": %s"
 
-#: virt-convert:190 virt-convert:193
-#, fuzzy, python-format
+#: virt-convert:192 virt-convert:195
+#, python-format
 msgid "Couldn't import file \"%s\": %s"
-msgstr "Impossibile acquisire il file %s: %s"
+msgstr "Impossibile importare il file \"%s\": %s"
 
-#: virt-convert:230
+#: virt-convert:232
 #, python-format
 msgid "Generating output in '%(format)s' format to %(dir)s/"
-msgstr ""
+msgstr "Generazione dell'output '%(format)s' fomato nella %(dir)s/"
 
-#: virt-convert:249
+#: virt-convert:251
 #, python-format
 msgid "Converting disk '%(path)s' to type %(format)s..."
-msgstr ""
+msgstr "Conversione disco '%(path)s' al tipo %(format)s in corso..."
 
-#: virt-convert:256 virt-convert:259
-#, fuzzy, python-format
+#: virt-convert:258 virt-convert:261
+#, python-format
 msgid "Couldn't convert disks: %s"
-msgstr "Impossibile acquisire il file %s: %s"
+msgstr "Impossibile convertire i dischi: %s"
 
-#: virt-convert:265
-#, fuzzy, python-format
+#: virt-convert:267
+#, python-format
 msgid "Couldn't export to file \"%s\": %s"
-msgstr "Impossibile acquisire il file %s: %s"
+msgstr "Impossibile esportare il file \"%s\": %s"
 
-#: virt-convert:277
-#, fuzzy
+#: virt-convert:279
 msgid "Aborted at user request"
-msgstr "Installazione aortita su richiesta utente"
+msgstr "Installazione annullata su richiesta dell'utente"
 
-#: virt-image:64
-#, python-format
+#: virt-image:50
+#, fuzzy, python-format
 msgid ""
 "Warning: more networks were provided [%i] then nics required [%i]. All "
-"extras are ignored"
+"extras are ignored."
 msgstr ""
+"Attenzione: sono state fornite più reti [%i] delle schede di rete richieste "
+"[%i]. Tutte le reti extra sono ignorate"
 
-#: virt-image:68
+#: virt-image:55
 #, fuzzy, python-format
-msgid "The image requires %i network interface"
-msgstr "L'immagine richiede una interfaccia di rete"
+msgid "The image requires %i network interface."
+msgstr "L'immagine %i richiede una interfaccia di rete"
 
-#: virt-image:94 virt-install:340 virt-install.orig:340
+#: virt-image:84 virt-install:505
 msgid "Name of the guest instance"
 msgstr "Nome dell'istanza guest"
 
-#: virt-image:96 virt-install:342 virt-install.orig:342
+#: virt-image:86 virt-install:507
 msgid "Memory to allocate for guest instance in megabytes"
 msgstr "Memoria da allocare per l'istanza del guest in megabyte"
 
-#: virt-image:100 virt-install:349 virt-install.orig:349
-#, fuzzy
+#: virt-image:90 virt-install:514
 msgid "UUID for the guest."
-msgstr "Nome per il nuovo guest"
+msgstr "UUID per il guest."
 
-#: virt-image:102 virt-install:351 virt-install.orig:351
+#: virt-image:92 virt-install:516
 msgid "Number of vcpus to configure for your guest"
 msgstr "Numero di vcpu da configurare per il guest"
 
-#: virt-image:104 virt-install:353 virt-install.orig:353
+#: virt-image:94 virt-install:518
 msgid "Check that vcpus do not exceed physical CPUs and warn if they do."
 msgstr ""
 "Controlla che le vcpu non superino le CPU fisiche ed avverti se accade."
 
-#: virt-image:108 virt-install:357 virt-install.orig:357
+#: virt-image:98 virt-install:522
 msgid "Set which physical CPUs Domain can use."
-msgstr "Settare quale dominio fisico di CPU è possibile usare."
+msgstr "Imposta quali CPU fisiche possono essere usate dal Domain."
 
-#: virt-image:111
-#, fuzzy
+#: virt-image:101
 msgid "The OS type being installed, e.g. 'linux', 'unix', 'windows'"
-msgstr ""
-"Il tipo OS per ospiti completamente virtualizzati, es. 'linux', 'unix', "
-"'windows'"
+msgstr "Il tipo di SO che si sta installando, es. 'linux', 'unix', 'windows'"
 
-#: virt-image:115
-#, fuzzy
+#: virt-image:105
 msgid ""
 "The OS variant being installed, e.g. 'fedora6', 'rhel5', 'solaris10', 'win2k'"
 msgstr ""
-"La variante di OS per ospiti completamente virtualizzati, es. 'fedora6', "
-"'rhel5', 'solaris10', 'win2k', 'vista'"
+"La variante del SO che si sta installando, es. 'fedora6', 'rhel5', "
+"'solaris10', 'win2k'"
 
-#: virt-image:119 virt-install:371 virt-install.orig:371
+# Ho preferito lasciare Full Virtualization invece di Virtualizzazione Completa in quanto è un termine comune nell'ambito della virtualizzazione.
+#: virt-image:109 virt-install:542
 msgid "Full Virtualization specific options"
-msgstr ""
+msgstr "Opzioni specifiche della Full Virtualization"
 
-#: virt-image:122
-#, fuzzy
+#: virt-image:112
 msgid "Disables APIC for fully virtualized guest"
-msgstr "Questo guest dovrebbe essere un guest completamente virtualizzato"
+msgstr "Disabilitare APIC per i guest completamente virtualizzati"
 
-#: virt-image:125
-#, fuzzy
+#: virt-image:115
 msgid "Disables ACPI for fully virtualized guest"
-msgstr "Questo guest dovrebbe essere un guest completamente virtualizzato"
-
-#: virt-image:131 virt-install:438 virt-install.orig:438
-msgid ""
-"Bridge to connect guest NIC to; if none given, will try to determine the "
-"default"
-msgstr ""
-"Bridge per connettere il guest al NIC, se non verrà dato, si proverà a "
-"determinare il predefinito"
-
-#: virt-image:135 virt-install:442 virt-install.orig:442
-msgid ""
-"Connect the guest to a virtual network, forwarding to the physical network "
-"with NAT"
-msgstr ""
-"Connetti il guest a una rete virtuale, che si connette alla rete fisica con "
-"il NAT"
+msgstr "Disabilita ACPI per i guest completamente virtualizzati"
 
-#: virt-image:139 virt-install:446 virt-install.orig:446
+#: virt-image:121
 msgid ""
-"Fixed MAC address for the guest; if none or RANDOM is given a random address "
-"will be used"
-msgstr ""
-"Indirizzo MAC fisso per il guest; se viene utilizzato un valore nullo oppure "
-"RANDOM  verrà usato un indirizzo casuale"
-
-#: virt-image:143 virt-install:452 virt-install.orig:452
-msgid "Graphics Configuration"
+"Specify a network interface. Ex:\n"
+"--network bridge=mybr0\n"
+"--network network=libvirt_network_name\n"
+"--network network=mynet,model=e1000,mac=00:11..."
 msgstr ""
 
-#: virt-image:145 virt-install:454 virt-install.orig:454
-msgid "Use VNC for graphics support"
-msgstr "Usa VNC per il supporto grafico"
-
-#: virt-image:147 virt-install:456 virt-install.orig:456
-msgid "Port to use for VNC"
-msgstr "Porta da usare per VNC"
-
-#: virt-image:149 virt-install:458 virt-install.orig:458
-msgid "Use SDL for graphics support"
-msgstr "Usa SDL per il supporto grafico"
-
-#: virt-image:151 virt-install:460 virt-install.orig:460
-msgid "Don't set up a graphical console for the guest."
-msgstr "Non settare una console grafica per il guest."
-
-#: virt-image:154 virt-install:467 virt-install.orig:467
-msgid "set up keymap for a graphical console"
-msgstr "imposta la tastiera per una console grafica"
-
-#: virt-image:160
+#: virt-image:140
 msgid "Print the libvirt XML, but do not start the domain"
 msgstr "Stampa l'XML libvirt, ma non avviare il dominio"
 
-#: virt-image:163
+#: virt-image:143
 msgid "The zero-based index of the boot record to use"
-msgstr "L'indice zero-based del boot record da usare"
+msgstr "L'indice a partire da zero del boot record da usare"
 
-#: virt-image:165
+#: virt-image:145
 msgid "Overwrite, or destroy, an existing image with the same name"
-msgstr ""
+msgstr "Sovrascrivere, o distruggere, un'immagine esistente con lo stesso nome"
 
-#: virt-image:170
+#: virt-image:150
 msgid "Skip disk checksum verification process"
-msgstr ""
+msgstr "Saltare il processo di verifica del checksum disco"
 
-#: virt-image:182
+#: virt-image:165
 msgid "You need to provide an image XML descriptor"
-msgstr "È necessario fornire un descrittore di immagine XML"
+msgstr "È necessario fornire un descrittore XML per l'immagine"
 
-#: virt-image:200
-#, fuzzy
+#: virt-image:184
 msgid "Cannot parse"
-msgstr "Impossibile leggere %s"
+msgstr "Impossibile eseguire il parsing"
 
-#: virt-image:205
+#: virt-image:189
 #, python-format
 msgid "The index for --boot must be between 0 and %d"
 msgstr "L'indice per --boot deve essere compreso fra 0 e %d"
 
-# Per libvirt si è adottata la decisione di non tradurre il termine  guest come sistema ospite
-# (team-it-rev080314)
-#: virt-image:261
+#: virt-image:245
 #, python-format
 msgid ""
 "\n"
@@ -1665,13 +1924,13 @@ msgid ""
 msgstr ""
 "\n"
 "\n"
-"Creazione guest %s"
+"Creazione guest %s..."
 
-#: virt-image:265
+#: virt-image:249
 msgid "Guest creation failed"
 msgstr "Creazione guest fallita"
 
-#: virt-image:271
+#: virt-image:255
 #, python-format
 msgid ""
 "Domain creation may not have been\n"
@@ -1680,236 +1939,264 @@ msgid ""
 "restart your installation."
 msgstr ""
 "La creazione del dominio potrebbe non aver\n"
-"avuto successo.  Se è cosi, è bossibile riavviare\n"
+"avuto successo.  Se è cosi, è possibile riavviare\n"
 "il dominio eseguendo 'virsh start %s'; altrimenti,\n"
 "si prega di ricominciare l'installazione."
 
-#: virt-install:70 virt-install.orig:70
-#, fuzzy, python-format
+#: virt-install:84
+#, python-format
 msgid "Couldn't create default storage pool '%s': %s"
-msgstr "Impossibile acquisire il file %s: %s"
+msgstr "Impossibile creare lo storage pool di default '%s': %s"
 
-#: virt-install:93 virt-install.orig:93
-msgid "--disk path must start with path=, pool=, or vol=."
-msgstr ""
-
-#: virt-install:121 virt-install:133 virt-install.orig:121
-#: virt-install.orig:133
+#: virt-install:107
 #, python-format
-msgid "Unknown '%s' value '%s'"
+msgid "%(chartype)s type %(devtype)s does not support '%(optname)s' option."
 msgstr ""
 
-#: virt-install:126 virt-install.orig:126
-#, python-format
-msgid "Improper value for 'size': %s"
-msgstr ""
+#: virt-install:133
+#, fuzzy, python-format
+msgid "Unknown option(s) %s"
+msgstr "Opzione --disk sconosciuta '%s'."
+
+#: virt-install:147
+#, fuzzy, python-format
+msgid "Error in %(chartype)s device parameters: %(err)s"
+msgstr "Errore nei parametri dello storage: %s"
+
+#: virt-install:170
+msgid "--disk path must start with path=, pool=, or vol=."
+msgstr "il percorso --disk deve iniziare con path=, pool=, o vol=."
 
-#: virt-install:137 virt-install.orig:137
+#: virt-install:177
 #, python-format
 msgid "Unknown --disk option '%s'."
-msgstr ""
-
-#: virt-install:147 virt-install.orig:147
-#, fuzzy
-msgid "Size must be specified with all 'pool='"
-msgstr "Bisogna specificare una locazione da cui installare"
+msgstr "Opzione --disk sconosciuta '%s'."
 
-#: virt-install:160 virt-install.orig:160
-msgid "Storage volume must be specified as pool=poolname/volname"
-msgstr ""
+#: virt-install:185 virt-install:197
+#, python-format
+msgid "Unknown '%s' value '%s'"
+msgstr "Valore '%s' sconosciuto '%s'"
 
-#: virt-install:202 virt-install.orig:202
+#: virt-install:190
 #, python-format
-msgid "Error with storage parameters: %s"
-msgstr ""
+msgid "Improper value for 'size': %s"
+msgstr "Valore non corretto per 'size': %s"
+
+#: virt-install:212
+msgid "Size must be specified with all 'pool='"
+msgstr "La dimensione deve essere specificata con 'pool='"
 
-#: virt-install:214 virt-install.orig:214
+#: virt-install:226
 #, fuzzy
-msgid " Do you really want to use the disk (yes or no)?"
-msgstr "Si desidera davvero usare il disco (si o no)?"
+msgid "Storage volume must be specified as vol=poolname/volname"
+msgstr ""
+"Il volume di storage deve essere specificato con pool=nomepool/nomevolume"
 
-#: virt-install:222 virt-install.orig:222
+#: virt-install:282
 #, fuzzy
-msgid "Cannot use --file, --size, or --disk with --nodisks"
-msgstr "Impossibile usare --file con --nodisks"
+msgid "Cannot use --file, --file-size, or --disk with --nodisks"
+msgstr "Impossibile usare --file, --size o --disk con --nodisks"
 
-#: virt-install:225 virt-install.orig:225
+#: virt-install:285
 msgid ""
 "Cannot mix --file, --nonsparse, or --file-size with --disk options. Please "
 "see the manual for --disk syntax."
 msgstr ""
+"Non si possono mescolare --file, --nonsparse, o --file-size con le opzioni --"
+"disk. Fare riferimento al manuale per la sintassi di --disk."
 
-#: virt-install:228 virt-install.orig:228
+#: virt-install:288
 msgid "A disk must be specified (use --nodisks to override)"
-msgstr ""
+msgstr "Un disco deve essere specificato (usare --nodisk per ignorare)"
 
-#: virt-install:236 virt-install.orig:236
+#: virt-install:296
 msgid "Need to pass size for each disk"
 msgstr "E' necessario fornire la dimensione per ogni disco"
 
-#: virt-install:251 virt-install.orig:251
+#: virt-install:311
 msgid "Cannot use --mac with --nonetworks"
-msgstr ""
+msgstr "Non è possibile utilizzare --mac con --nonetworks"
 
-#: virt-install:253 virt-install.orig:253
-#, fuzzy
+#: virt-install:313
 msgid "Cannot use --bridges with --nonetworks"
-msgstr ""
-"Impossibile mischiare contemporaneamente gli argomenti --bridge e --network"
+msgstr "Non è possibile utilizzare --bridge con --nonetworks"
 
-#: virt-install:255 virt-install.orig:255
-#, fuzzy
+#: virt-install:315
 msgid "Cannot use --network with --nonetworks"
-msgstr "Impossibile usare --file con --nodisks"
+msgstr "Non è possibile utilizzare --network con --nonetworks"
+
+#: virt-install:342
+#, fuzzy
+msgid ""
+"Would you like a fully virtualized guest (yes or no)? This will allow you to "
+"run unmodified operating systems."
+msgstr ""
+"Si desidera un guest completamente virtualizzato (si o no)?  Ciò consentirà "
+"di eseguire sistemi operativi non modificati."
 
-#: virt-install:275 virt-install.orig:275
+#: virt-install:367
+#, fuzzy, python-format
+msgid "Would you like to use %s acceleration? (yes or no)"
+msgstr "Si desidera abilitare il supporto grafico? (si o no)"
+
+#: virt-install:379
+msgid "Can't do both --hvm and --paravirt"
+msgstr "Impossibile fare sia --hvm che --paravirt"
+
+#: virt-install:401 virt-install:402
+msgid "default"
+msgstr "predefinito"
+
+#: virt-install:423
 #, python-format
 msgid "Only one install method (%s) can be used"
-msgstr ""
+msgstr "Solo un metodo di installazione (%s) può essere usato"
 
-#: virt-install:281 virt-install.orig:281
-#, fuzzy
+#: virt-install:429
 msgid "Network PXE boot is not supported for paravirtualized guests"
-msgstr "Avvio PXE da rete non supportato per ospiti paravirtualizzati"
+msgstr "Avvio PXE non supportato per guest paravirtualizzati"
 
-#: virt-install:284 virt-install.orig:284
+#: virt-install:432
 msgid "Paravirtualized guests cannot install off cdrom media."
-msgstr ""
+msgstr "I guest para-virtualizzati non possono essere installati da un cdrom."
 
-#: virt-install:287 virt-install.orig:287
+#: virt-install:435
 msgid "--location can not be specified for remote connections."
-msgstr ""
+msgstr "--location non può essere specificata con connessioni remote."
 
-#: virt-install:296 virt-install.orig:296
-#, fuzzy, python-format
+#: virt-install:444
+#, python-format
 msgid "One of %s, or cdrom media must be specified."
-msgstr "Solo uno fra --pxe, --location e --cdrom può essere usato"
+msgstr "Solo uno fra %s o cdrom può essere specificato."
 
-#: virt-install:314 virt-install.orig:314
+#: virt-install:457
 #, python-format
 msgid "Error creating cdrom disk: %s"
-msgstr ""
+msgstr "Errore nella creazione del disco cdrom: %s"
 
-#: virt-install:346 virt-install.orig:346
-msgid "The CPU architecture to simulate"
-msgstr "L'architettura di CPU da simulare"
+#: virt-install:462
+#, fuzzy
+msgid "What is the install CD-ROM/ISO or URL?"
+msgstr "Qual'è il percorso di installazione?"
 
-#: virt-install:364 virt-install.orig:364
+#: virt-install:464
 #, fuzzy
+msgid "What is the install URL?"
+msgstr "Qual'è il percorso di installazione?"
+
+#: virt-install:511
+msgid "The CPU architecture to simulate"
+msgstr "L'architettura di CPU da emulare"
+
+#: virt-install:529
 msgid ""
 "The OS variant for fully virtualized guests, e.g. 'fedora6', 'rhel5', "
 "'solaris10', 'win2k'"
 msgstr ""
 "La variante di OS per ospiti completamente virtualizzati, es. 'fedora6', "
-"'rhel5', 'solaris10', 'win2k', 'vista'"
+"'rhel5', 'solaris10', 'win2k'"
 
-#: virt-install:368 virt-install.orig:368
-msgid "Physical host device to attach to the domain."
+#: virt-install:533
+#, fuzzy
+msgid "Add a serial device to the domain."
+msgstr "Dispositivo dell'host fisico da agganciare al dominio."
+
+#: virt-install:536
+msgid "Add a parallel device to the domain."
 msgstr ""
 
-#: virt-install:373 virt-install.orig:373
+#: virt-install:539
+msgid "Physical host device to attach to the domain."
+msgstr "Dispositivo dell'host fisico da agganciare al dominio."
+
+#: virt-install:544
 msgid "Use sound device emulation"
-msgstr ""
+msgstr "Usare l'emulazione della scheda sonora"
 
-#: virt-install:384 virt-install.orig:384
+#: virt-install:555
 msgid "Virtualization Type Options"
-msgstr ""
+msgstr "Opzioni Tipi di Virtualizzazione"
 
-#: virt-install:391 virt-install.orig:391
-#, fuzzy
-msgid "Use kernel acceleration capabilities (kvm, kqemu, ...)"
-msgstr "Usare funzionalità di accelerazione del kernel"
+#: virt-install:562
+msgid "Hypervisor name to use (kvm, qemu, xen, ...)"
+msgstr ""
 
-#: virt-install:395 virt-install.orig:395
+#: virt-install:568
 msgid "Installation Method Options"
-msgstr ""
+msgstr "Opzioni Metodo di Installazione"
 
-#: virt-install:398 virt-install.orig:398
-#, fuzzy
+#: virt-install:571
 msgid "CD-ROM installation media"
-msgstr "Installazione guest fallita"
+msgstr "CD-ROM di installazione"
 
-#: virt-install:401 virt-install.orig:401
-#, fuzzy
+#: virt-install:574
 msgid ""
 "Installation source (eg, nfs:host:/path, http://host/path, ftp://host/path)"
 msgstr ""
-"Sorgente d'installazione per guest paravirtualizzato (es, nfs:host/percorso, "
-"http://host/percorso, ftp://host/percorso)"
+"Sorgente d'installazione (es, nfs:host:/percorso, http://host/percorso, "
+"ftp://host/percorso)"
 
-#: virt-install:404 virt-install.orig:404
-#, fuzzy
+#: virt-install:577
 msgid "Boot from the network using the PXE protocol"
-msgstr "Avvia un installer dalla rete usando il protocollo di boot PXE"
+msgstr "Avvia dalla rete usando il protocollo PXE"
 
-#: virt-install:406 virt-install.orig:406
-#, fuzzy
+#: virt-install:579
 msgid "Build guest around an existing disk image"
-msgstr "File da usare come immagine disco"
+msgstr "Configurare il guest utilizzando un'immagine disco esistente"
 
-#: virt-install:408 virt-install.orig:408
-#, fuzzy
+#: virt-install:581
 msgid "Treat the CD-ROM media as a Live CD"
-msgstr "Specifica che il CDROM inserito è un LiveCD"
+msgstr "Utilizza il CD-ROM inserito come un Live CD"
 
-#: virt-install:411 virt-install.orig:411
-#, fuzzy
+#: virt-install:584
 msgid "Additional arguments to pass to the kernel booted from --location"
-msgstr ""
-"Argomenti addizionali da passare all'installer per guest paravirtualizzati"
-
-#: virt-install:418 virt-install.orig:418
-msgid "Specify storage to use as a disk with various options."
-msgstr ""
+msgstr "Parametri addizionali da passare al kernel avviato da --location"
 
-#: virt-install:422 virt-install.orig:422
-msgid "File to use as the disk image"
-msgstr "File da usare come immagine disco"
-
-#: virt-install:425 virt-install.orig:425
-msgid "Size of the disk image (if it doesn't exist) in gigabytes"
-msgstr "Dimensione dell'immagine disco (se non esiste) in gigabyte"
-
-#: virt-install:429 virt-install.orig:429
+#: virt-install:591
 msgid ""
-"Don't use sparse files for disks.  Note that this will be significantly "
-"slower for guest creation"
+"Specify storage with various options. Ex.\n"
+"--disk path=/my/existing/disk\n"
+"--disk path=/my/new/disk,size=5 (in gigabytes)\n"
+"--disk vol=poolname:volname,device=cdrom,bus=scsi,..."
 msgstr ""
-"Non usare file sparsi per i dischi.  Notare che ciò renderà "
-"significativamente più lenta la creazione del guest"
 
-#: virt-install:432 virt-install.orig:432
+#: virt-install:596
 msgid "Don't set up any disks for the guest."
 msgstr "Non settare nessun disco per il guest."
 
-#: virt-install:449 virt-install.orig:449
-#, fuzzy
+#: virt-install:613
+msgid ""
+"Specify a network interface. Ex:\n"
+"--network bridge=mybr0\n"
+"--network network=my_libvirt_virtual_net\n"
+"--network network=mynet,model=virtio,mac=00:11..."
+msgstr ""
+
+#: virt-install:618
 msgid "Don't create network interfaces for the guest."
-msgstr "Non settare nessun disco per il guest."
+msgstr "Non creare interfacce di rete per la macchina guest."
+
+#: virt-install:632
+msgid "Specify video hardware type."
+msgstr ""
 
-#: virt-install:463 virt-install.orig:463
+#: virt-install:635
 msgid "Don't automatically try to connect to the guest console"
 msgstr "Non provare automaticamente a connettere la console del guest"
 
-#: virt-install:474 virt-install.orig:474
+#: virt-install:643
 msgid "Disables the automatic rebooting when the installation is complete."
 msgstr "Disabilita il riavvio automatico quando l'installazione è completa."
 
-#: virt-install:477 virt-install.orig:477
+#: virt-install:646
 msgid "Time to wait (in minutes)"
-msgstr ""
+msgstr "Tempo di attesa (in minuti)"
 
-#: virt-install:479 virt-install.orig:479
+#: virt-install:648
 msgid "Forces 'yes' for any applicable prompts, terminates for all others"
-msgstr ""
-
-#: virt-install:483 virt-install.orig:483
-msgid ""
-"Request user input for ambiguous situations. Default is false, so will "
-"terminate if a prompt would typically be fired. "
-msgstr ""
+msgstr "Risponde 'sì' ad ogni notifica, termina per tutte le altre"
 
-#: virt-install:503 virt-install.orig:503
+#: virt-install:671
 msgid ""
 "Unable to connect to graphical console: virt-viewer not installed. Please "
 "install the 'virt-viewer' package."
@@ -1917,19 +2204,11 @@ msgstr ""
 "Impossibile connettersi alla console grafica: virt-viewer non installato. Si "
 "prega di installare il pacchetto 'virt-viewer'."
 
-#: virt-install:536 virt-install.orig:536
-msgid "Can't do both --hvm and --paravirt"
-msgstr "Impossibile fare sia --hvm che --paravirt"
-
-#: virt-install:548 virt-install.orig:548
-msgid "default"
-msgstr ""
-
-#: virt-install:570 virt-install.orig:570
+#: virt-install:713
 msgid "Can't use --pxe with --nonetworks"
-msgstr ""
+msgstr "Impossibile usare --pxe con --nonetworks"
 
-#: virt-install:671 virt-install.orig:671
+#: virt-install:818
 msgid ""
 "\n"
 "\n"
@@ -1939,7 +2218,7 @@ msgstr ""
 "\n"
 "Avvio installazione..."
 
-#: virt-install:682 virt-install.orig:682
+#: virt-install:829
 #, python-format
 msgid ""
 "Domain installation does not appear to have been\n"
@@ -1952,7 +2231,7 @@ msgstr ""
 "eseguendo 'virsh start %s'; altrimenti, si prega di\n"
 "riavviare l'installazione."
 
-#: virt-install:693 virt-install.orig:693
+#: virt-install:840
 #, python-format
 msgid ""
 "Guest installation complete... you can restart your domain\n"
@@ -1961,16 +2240,15 @@ msgstr ""
 "Installazione guest completa... è possibile riavviare il\n"
 "dominio eseguendo 'virsh start %s'"
 
-#: virt-install:697 virt-install.orig:697
+#: virt-install:844
 msgid "Guest installation complete... restarting guest."
 msgstr "Installazione guest completa... riavvio guest."
 
-#: virt-install:703 virt-install.orig:703
-#, fuzzy
+#: virt-install:850
 msgid "Guest install interrupted."
-msgstr "Installazione guest fallita"
+msgstr "Installazione guest interrota."
 
-#: virt-install:710 virt-install.orig:710
+#: virt-install:857
 #, python-format
 msgid ""
 "Domain installation may not have been\n"
@@ -1978,52 +2256,143 @@ msgid ""
 " by running 'virsh start %s'; otherwise, please\n"
 " restart your installation."
 msgstr ""
-"L'installazione·del·dominio·non·sembra·aver·avuto\n"
-"successo.··Se·è·cosi,·è·possibile·riavviare·il·dominio\n"
-"eseguendo·'virsh·start·%s';·altrimenti,·si prega di\n"
+"L'installazione del dominio non sembra aver avuto\n"
+"successo.  Se è cosi, è possibile riavviare il dominio\n"
+"eseguendo 'virsh start %s'; altrimenti, si prega di\n"
 "riavviare l'installazione."
 
-#: virt-install:736 virt-install.orig:736
-#, fuzzy
+#: virt-install:883
 msgid "Guest installation failed."
-msgstr "Installazione guest fallita"
+msgstr "Installazione guest fallita."
 
-#: virt-install:746 virt-install.orig:746
+#: virt-install:893
 #, python-format
 msgid "%d minutes "
-msgstr ""
+msgstr "%d minuti "
 
-#: virt-install:748 virt-install.orig:748
+#: virt-install:895
 #, fuzzy, python-format
 msgid ""
-"Domain installation still in progress. Waiting %sfor domain to complete "
-"installation."
+"Domain installation still in progress. Waiting %sfor installation to "
+"complete."
 msgstr ""
-"Installazione dominio ancora in corso.  E' possibile riconnettersi\n"
-"alla console per completare il processo di installazione."
+"Installazione dominio ancora in corso. Attendere %sper il completamento "
+"dell'installazione del dominio."
 
-#: virt-install:754 virt-install.orig:754
+#: virt-install:901
 msgid "Domain has shutdown. Continuing."
-msgstr ""
+msgstr "Dominio spento. Proseguimento."
 
-#: virt-install:761 virt-install.orig:761
+#: virt-install:908
 #, python-format
 msgid "Could not lookup domain after install: %s"
-msgstr ""
+msgstr "Impossibile trovare il dominio dopo l'installazione: %s"
 
-#: virt-install:768 virt-install.orig:768
+#: virt-install:915
 msgid "Installation has exceeded specified time limit. Exiting application."
 msgstr ""
+"L'installazione ha ecceduto il tempo limite configurato. Uscita "
+"dall'applicazione."
 
-#: virt-install:772 virt-install.orig:772
-#, fuzzy
+#: virt-install:921
 msgid ""
 "Domain installation still in progress. You can reconnect to \n"
 "the console to complete the installation process."
 msgstr ""
-"Installazione dominio ancora in corso.  E' possibile riconnettersi\n"
+"Installazione dominio ancora in corso.  E' possibile riconnettersi \n"
 "alla console per completare il processo di installazione."
 
+#~ msgid "Could not find usable default libvirt connection."
+#~ msgstr "Impossibile trovare una connessione libvirt di default utilizzabile"
+
+#~ msgid "Unknown network type "
+#~ msgstr "Tipo di rete sconosciuto "
+
+#~ msgid "Need to pass equal numbers of networks & mac addresses"
+#~ msgstr "E' necessario fornire un numero uguale di reti e indirizzi mac"
+
+#~ msgid "Cannot clone remote VM storage."
+#~ msgstr "Impossibile clonare lo storage VM remoto."
+
+#~ msgid "Missing path to use as disk clone destination for '%s'"
+#~ msgstr ""
+#~ "Il percorso da usare come destinazione del clone disco è mancante per '%s'"
+
+#~ msgid "Could not determine storage type for '%s'"
+#~ msgstr "Impossibile determinare il tipo di storage per '%s'"
+
+#~ msgid "Disk volume creation is not implemented."
+#~ msgstr "La creazione di volumi disco non è implementata."
+
+#~ msgid ""
+#~ "Bridge to connect guest NIC to; if none given, will try to determine the "
+#~ "default"
+#~ msgstr ""
+#~ "Bridge per connettere il guest al NIC, se non verrà dato, si proverà a "
+#~ "determinare il predefinito"
+
+#~ msgid ""
+#~ "Connect the guest to a virtual network, forwarding to the physical "
+#~ "network with NAT"
+#~ msgstr ""
+#~ "Connetti il guest a una rete virtuale, che si connette alla rete fisica "
+#~ "con il NAT"
+
+#~ msgid ""
+#~ "Fixed MAC address for the guest; if none or RANDOM is given a random "
+#~ "address will be used"
+#~ msgstr ""
+#~ "Indirizzo MAC fisso per il guest; se viene utilizzato un valore nullo "
+#~ "oppure RANDOM  verrà usato un indirizzo casuale"
+
+#~ msgid "Use kernel acceleration capabilities (kvm, kqemu, ...)"
+#~ msgstr "Usare funzionalità di accelerazione del kernel (kvm, kqemu, ...)"
+
+#~ msgid "Specify storage to use as a disk with various options."
+#~ msgstr "Specifica uno storage da usare come disco con le varie opzioni."
+
+#~ msgid "File to use as the disk image"
+#~ msgstr "File da usare come immagine disco"
+
+#~ msgid "Size of the disk image (if it doesn't exist) in gigabytes"
+#~ msgstr "Dimensione dell'immagine disco (se non esiste) in gigabyte"
+
+#~ msgid ""
+#~ "Don't use sparse files for disks.  Note that this will be significantly "
+#~ "slower for guest creation"
+#~ msgstr ""
+#~ "Non usare file sparsi per i dischi.  Notare che ciò renderà "
+#~ "significativamente più lenta la creazione del guest"
+
+#~ msgid "Force flag is set but input was required. Prompt was: %s"
+#~ msgstr ""
+#~ "Il tag force è impostato ma è stato richiesto un input. Il prompt è "
+#~ "stato: %s"
+
+#~ msgid "Prompting disabled, but input was requested. Prompt was: %s"
+#~ msgstr ""
+#~ "Notifiche disabilitate, ma un input è stato richiesto. Il prompt è stato: "
+#~ "%s"
+
+#~ msgid ""
+#~ "Prompting disabled, but yes/no was requested. Try --force to force 'yes' "
+#~ "for such prompts. Prompt was: %s"
+#~ msgstr ""
+#~ "Notifiche disabilitate, ma sì/no è richiesto. Provare con --force per "
+#~ "rispondere 'sì' alle notifiche. La notifica è stata: %s"
+
+#~ msgid "ERROR: "
+#~ msgstr "ERRORE: "
+
+#~ msgid "OpenSolaris microroot not found at %s"
+#~ msgstr "Microroot di OpenSolaris non trovata in %s"
+
+#~ msgid "Do you really want to use the disk (yes or no)? "
+#~ msgstr "Si desidera davvero usare il disco (si o no)?"
+
+#~ msgid " Do you really want to use the disk (yes or no)?"
+#~ msgstr "Si desidera davvero usare il disco (si o no)?"
+
 #~ msgid "Name or UUID of guest to clone is required"
 #~ msgstr "Richiesto nome o UUID del guest da clonare"
 
@@ -2107,29 +2476,6 @@ msgstr ""
 #~ msgid "Must provide the location of an image XML file with --image"
 #~ msgstr "Bisogna fornire la locazione di un file immagine XML con --image"
 
-#~ msgid ""
-#~ "Would you like a fully virtualized guest (yes or no)?  This will allow "
-#~ "you to run unmodified operating systems."
-#~ msgstr ""
-#~ "Si desidera un guest completamente virtualizzato (si o no)?  Ciò "
-#~ "consentirà di eseguire sistemi operativi non modificati."
-
-#~ msgid "What would you like to use as the disk (file path)?"
-#~ msgstr "Cosa si desidera usare come disco (percorso file)?"
-
-#~ msgid ""
-#~ "Please enter the path to the file you would like to use for storage. It "
-#~ "will have size %sGB."
-#~ msgstr ""
-#~ "Si prego di inserire il percorso del file che si vuole usare per lo "
-#~ "storage. Avrà la dimensione di %sGB."
-
-#~ msgid "How large would you like the disk (%s) to be (in gigabytes)?"
-#~ msgstr "Quanto si desidera che sia largo (in gigabyte) il disco (%s)?"
-
-#~ msgid "What is the install location?"
-#~ msgstr "Qual'è il percorso di installazione?"
-
 #~ msgid "What is the virtual CD image, CD device or install location?"
 #~ msgstr ""
 #~ "Qual'è l'immagine CD virtuale, dispositivo CD o percorso d'installazione?"
@@ -2144,12 +2490,6 @@ msgstr ""
 #~ "Le installazioni da LiveCD non sono supportate per ospiti "
 #~ "paravirtualizzati"
 
-#~ msgid "What is the name of your virtual machine?"
-#~ msgstr "Qual'è il nome della macchina virtuale?"
-
-#~ msgid "How much RAM should be allocated (in megabytes)?"
-#~ msgstr "Quanta RAM deve essere allocata (in megabyte)?"
-
 #~ msgid "How many VCPUs should be attached?"
 #~ msgstr "Quante VCPU dovranno essere collgate?"
 
@@ -2162,9 +2502,6 @@ msgstr ""
 #~ msgid "Can't do both SDL and nographics"
 #~ msgstr "Impossibile eseguire entrambi SDL e nessuna grafica"
 
-#~ msgid "Would you like to enable graphics support? (yes or no)"
-#~ msgstr "Si desidera abilitare il supporto grafico? (si o no)"
-
 #~ msgid "The specified path's root directory must exist."
 #~ msgstr "Il percorso della cartella di root specificato deve esistere."
 
diff --git a/po/ja.po b/po/ja.po
index 843722d..13c3804 100644
--- a/po/ja.po
+++ b/po/ja.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: ja\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-03-09 20:41-0400\n"
+"POT-Creation-Date: 2009-07-28 20:34-0400\n"
 "PO-Revision-Date: 2007-10-08 12:29+0900\n"
 "Last-Translator: hyu_gabaru <hyu_gabaru at yahoo.co.jp>\n"
 "Language-Team: Japanese <gnome-translation at gnome.gr.jp>\n"
@@ -16,225 +16,286 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: virtinst/CapabilitiesParser.py:168
+#: virtinst/CapabilitiesParser.py:172
 #, python-format
 msgid "No domains available for virt type '%(type)s', arch %(arch)s."
 msgstr ""
 
-#: virtinst/CapabilitiesParser.py:393
+#: virtinst/CapabilitiesParser.py:412
 #, python-format
 msgid "for arch '%s'"
 msgstr ""
 
-#: virtinst/CapabilitiesParser.py:397
+#: virtinst/CapabilitiesParser.py:416
 #, fuzzy, python-format
 msgid "virtualization type '%s'"
 msgstr "不当な URL の場所が指定されました: "
 
-#: virtinst/CapabilitiesParser.py:399
+#: virtinst/CapabilitiesParser.py:418
 msgid "any virtualization options"
 msgstr ""
 
-#: virtinst/CapabilitiesParser.py:401
+#: virtinst/CapabilitiesParser.py:420
 #, python-format
 msgid "Host does not support %(virttype)s %(arch)s"
 msgstr ""
 
-#: virtinst/CapabilitiesParser.py:414
+#: virtinst/CapabilitiesParser.py:433
 #, python-format
 msgid ""
 "Host does not support domain type '%(domain)s' for virtualization type '%"
 "(virttype)s' arch '%(arch)s'"
 msgstr ""
 
-#: virtinst/cli.py:117
+#: virtinst/cli.py:152
 #, fuzzy
 msgid "Exiting at user request."
 msgstr "NFS インストールは root のみサポートしています"
 
-#: virtinst/cli.py:122
+#: virtinst/cli.py:159
 #, fuzzy
 msgid "Must be root to create Xen guests"
 msgstr "Xen ゲストをクローニングするには root でなければなりません"
 
-#: virtinst/cli.py:124
-msgid "Could not find usable default libvirt connection."
+#: virtinst/cli.py:297
+msgid "(use --prompt to run interactively)"
 msgstr ""
 
-#: virtinst/cli.py:146
+#: virtinst/cli.py:317
+msgid " (Use --prompt or --force to override)"
+msgstr ""
+
+#: virtinst/cli.py:352
+msgid "Graphics Configuration"
+msgstr ""
+
+#: virtinst/cli.py:354
+msgid "Use VNC for graphics support"
+msgstr "グラフィックサポートのために VNC を使用します"
+
+#: virtinst/cli.py:356
+msgid "Port to use for VNC"
+msgstr "VNC で使用するためのポート"
+
+#: virtinst/cli.py:358
+msgid "Address to listen on for VNC connections."
+msgstr ""
+
+#: virtinst/cli.py:361
+#, fuzzy
+msgid "set up keymap for the VNC console"
+msgstr "グラフィックコンソールのためのキーマップを設定します"
+
+#: virtinst/cli.py:363
+msgid "Use SDL for graphics support"
+msgstr "グラフィックサポートのために SDL を使用します"
+
+#: virtinst/cli.py:365
+msgid "Don't set up a graphical console for the guest."
+msgstr "ゲスト用にグラフィックコンソールを設定しないでください。"
+
+#: virtinst/cli.py:388
+#, fuzzy
+msgid "A disk path must be specified."
+msgstr "インストールの元となる場所を指定しなければなりません"
+
+#: virtinst/cli.py:390
+#, fuzzy
+msgid "What would you like to use as the disk (file path)?"
+msgstr "ディスク(パス)として何を使用したいですか?"
+
+#: virtinst/cli.py:392
 #, python-format
-msgid "Force flag is set but input was required. Prompt was: %s"
+msgid ""
+"Please enter the path to the file you would like to use for storage. It will "
+"have size %sGB."
 msgstr ""
+"ストレージとして使用したいファイルのパスを入力してください。大きさは %sGB に"
+"なります。"
+
+#: virtinst/cli.py:401
+#, fuzzy
+msgid "A size must be specified for non-existent disks."
+msgstr "存在しないディスク用に大きさを指定しなければなりません"
+
+#: virtinst/cli.py:403
+#, python-format
+msgid "How large would you like the disk (%s) to be (in gigabytes)?"
+msgstr "どの位の大きさのディスク (%s) にしたいですか(ギガバイト単位で)?"
 
-#: virtinst/cli.py:149
+#: virtinst/cli.py:424 virt-install:274
 #, python-format
-msgid "Prompting disabled, but input was requested. Prompt was: %s"
+msgid "Error with storage parameters: %s"
 msgstr ""
 
-#: virtinst/cli.py:169
+#: virtinst/cli.py:426
+#, fuzzy
+msgid "Do you really want to use this disk (yes or no)"
+msgstr "そのディスクを本当に使いたいのですか (yes または no)? "
+
+#: virtinst/cli.py:430
 #, python-format
-msgid ""
-"Prompting disabled, but yes/no was requested. Try --force to force 'yes' for "
-"such prompts. Prompt was: %s"
+msgid "This will overwrite the existing path '%s'!\n"
 msgstr ""
 
-#: virtinst/cli.py:179 virt-clone:48 virt-clone:69 virt-clone:108
-msgid "ERROR: "
-msgstr "エラー:"
+#: virtinst/cli.py:437
+#, fuzzy, python-format
+msgid "Disk %s is already in use by another guest!\n"
+msgstr "ディスク %s は既に他のゲストで使用されています!"
 
-#: virtinst/cli.py:189
+#: virtinst/cli.py:464
+msgid "What is the name of your virtual machine?"
+msgstr "仮想マシンの名前は何ですか?"
+
+#: virtinst/cli.py:465
 #, fuzzy
 msgid "A name is required for the virtual machine."
 msgstr "クローニングした仮想マシンの名前は何ですか?"
 
-#: virtinst/cli.py:197
+#: virtinst/cli.py:472
+msgid "How much RAM should be allocated (in megabytes)?"
+msgstr "どれだけの RAM を割り当てますか (メガバイト単位で)?"
+
+#: virtinst/cli.py:473
 #, fuzzy
 msgid "Memory amount is required for the virtual machine."
 msgstr "クローニングした仮想マシンの名前は何ですか?"
 
-#: virtinst/cli.py:199
+#: virtinst/cli.py:477
 #, fuzzy, python-format
 msgid "Installs currently require %d megs of RAM."
 msgstr "エラー: インストールには現在 %d メガの RAM が必要です。"
 
-#: virtinst/cli.py:219
+#: virtinst/cli.py:498
 #, fuzzy, python-format
 msgid ""
 "You have asked for more virtual CPUs (%d) than there are physical CPUs (%d) "
-"on the host. This will work, but performance will be poor. Are you sure? "
-"(yes or no)"
+"on the host. This will work, but performance will be poor. "
 msgstr ""
 "仮想 CPU (%(vcpu)d) 個という、ホスト上の物理 CPU (%(phys)d) よりも多くを要求"
 "しました。動作はしますが、性能が悪いです。いいですか? (yes または no)"
 
-#: virtinst/cli.py:276
-msgid "Unknown network type "
-msgstr "不明なネットワークタイプ"
+#: virtinst/cli.py:501
+msgid "Are you sure? (yes or no)"
+msgstr ""
 
-#: virtinst/cli.py:293
+#: virtinst/cli.py:612
+#, fuzzy, python-format
+msgid "Unknown network option '%s'"
+msgstr "不明なネットワークタイプ %s"
+
+#: virtinst/cli.py:630
 msgid "Cannot mix both --bridge and --network arguments"
 msgstr "--bridge と --network 引数の両方を混ぜることはできません"
 
-#: virtinst/cli.py:310
-msgid "Need to pass equal numbers of networks & mac addresses"
-msgstr "ネットワークと mac アドレスとは同じ数だけ渡す必要があります"
+#: virtinst/cli.py:645
+#, fuzzy
+msgid "Cannot pass more mac addresses than networks."
+msgstr "--bridge と --network 引数の両方を混ぜることはできません"
 
-#: virtinst/cli.py:332
+#: virtinst/cli.py:672
 msgid "Can't specify more than one of VNC, SDL, or --nographics"
 msgstr ""
 
-#: virtinst/cli.py:376 virtinst/cli.py:381 virt-install:320 virt-install:325
-#: virt-install.orig:320 virt-install.orig:325
+#: virtinst/cli.py:700
+#, python-format
+msgid "Didn't match keymap '%s' in keytable!"
+msgstr ""
+
+#: virtinst/cli.py:731 virtinst/cli.py:736
 #, python-format
 msgid "%s option requires an argument"
 msgstr "%s オプションには実引数が必要です"
 
-#: virtinst/CloneManager.py:54
+#: virtinst/CloneManager.py:109
 msgid "Connection must be a 'virConnect' instance."
 msgstr ""
 
-#: virtinst/CloneManager.py:102
+#: virtinst/CloneManager.py:162
 #, fuzzy
 msgid "Original xml must be a string."
 msgstr "キーマップは文字列でなければなりません"
 
-#: virtinst/CloneManager.py:114
+#: virtinst/CloneManager.py:177
 #, python-format
 msgid "Invalid name for new guest: %s"
 msgstr "不当な新ゲストの名前: %s"
 
-#: virtinst/CloneManager.py:119
+#: virtinst/CloneManager.py:182
 #, fuzzy, python-format
 msgid "Domain name '%s' already in use."
 msgstr "ドメイン名 %s は既に存在します!"
 
-#: virtinst/CloneManager.py:131
+#: virtinst/CloneManager.py:195
 #, python-format
 msgid "Invalid uuid for new guest: %s"
 msgstr "不当な新ゲストの uuid: %s"
 
-#: virtinst/CloneManager.py:134
+#: virtinst/CloneManager.py:198
 #, fuzzy, python-format
 msgid "UUID '%s' is in use by another guest."
 msgstr "ディスク %s は既に他のゲストで使用されています!"
 
-#: virtinst/CloneManager.py:149
+#: virtinst/CloneManager.py:226
 #, python-format
 msgid "Could not use path '%s' for cloning: %s"
 msgstr ""
 
-#: virtinst/CloneManager.py:235
+#: virtinst/CloneManager.py:356
+msgid "Cloning policy must be a list of rules."
+msgstr ""
+
+#: virtinst/CloneManager.py:373
 #, fuzzy
 msgid "Original guest name or xml is required."
 msgstr "%s にネットワーク名は不要です"
 
-#: virtinst/CloneManager.py:253
-#, fuzzy
-msgid "Cannot clone remote VM storage."
-msgstr "ストレージファイルを作成中..."
-
-#: virtinst/CloneManager.py:261
+#: virtinst/CloneManager.py:391
 msgid "Domain with devices to clone must be paused or shutoff."
 msgstr ""
 
-#: virtinst/CloneManager.py:304
-#, fuzzy, python-format
-msgid "Missing path to use as disk clone destination for '%s'"
-msgstr "%s 用のディスクイメージを使用する新ファイルがありません"
+#: virtinst/CloneManager.py:437
+#, python-format
+msgid ""
+"More disks to clone that new paths specified. (%(passed)d specified, %(need)"
+"d needed"
+msgstr ""
 
-#: virtinst/CloneManager.py:403
+#: virtinst/CloneManager.py:557
 #, fuzzy, python-format
 msgid "Disk '%s' does not exist."
 msgstr "ライブ CD イメージ '%s' がありません"
 
-#: virtinst/CloneManager.py:406
+#: virtinst/CloneManager.py:568
 #, fuzzy, python-format
 msgid "Could not determine original disk information: %s"
 msgstr "最大 vcpu 数を決定できません。32 を使います。"
 
-#: virtinst/CloneManager.py:474
+#: virtinst/CloneManager.py:613
 #, fuzzy, python-format
 msgid "Domain '%s' was not found."
 msgstr "ドメイン %s が見つかりません"
 
-#: virtinst/CloneManager.py:539
-msgid "copying to an existing vdisk is not supported"
-msgstr ""
-
-#: virtinst/CloneManager.py:547
-#, fuzzy, python-format
-msgid "Could not determine storage type for '%s'"
-msgstr "最大 vcpu 数を決定できません。32 を使います。"
-
-#: virtinst/CloneManager.py:574
-#, python-format
-msgid "Cloning %(srcfile)s"
-msgstr ""
-
-#: virtinst/CloneManager.py:581
-msgid "failed to clone disk"
-msgstr ""
-
-#: virtinst/DistroInstaller.py:51
+#: virtinst/DistroInstaller.py:57
 msgid "Invalid NFS format: No path specified."
 msgstr ""
 
-#: virtinst/DistroInstaller.py:93
+#: virtinst/DistroInstaller.py:101
 #, fuzzy, python-format
 msgid "Invalid 'location' type %s."
 msgstr "不当な URL の場所が指定されました: "
 
-#: virtinst/DistroInstaller.py:99
+#: virtinst/DistroInstaller.py:107
 #, fuzzy
 msgid "'conn' must be specified if 'location' is a storage tuple."
 msgstr "インストールの元となる場所を指定しなければなりません"
 
-#: virtinst/DistroInstaller.py:135
+#: virtinst/DistroInstaller.py:145
 #, fuzzy, python-format
 msgid "Checking installer location failed: Could not find media '%s'."
 msgstr "ゲストのインストールに失敗しました"
 
-#: virtinst/DistroInstaller.py:138
+#: virtinst/DistroInstaller.py:148
 #, fuzzy
 msgid ""
 "Install media location must be an NFS, HTTP or FTP network install source, "
@@ -243,162 +304,161 @@ msgstr ""
 "インストール場所は NFS か、HTTP、FTP のネットワークインストールソースか、ロー"
 "カルファイル/装置でなければなりません"
 
-#: virtinst/DistroInstaller.py:145
+#: virtinst/DistroInstaller.py:155
 #, fuzzy
 msgid "Privilege is required for NFS installations"
 msgstr "クローニングした仮想マシンの名前は何ですか?"
 
-#: virtinst/Guest.py:100
+#: virtinst/Guest.py:108
 msgid "Unable to connect to hypervisor, aborting installation!"
 msgstr "ハイパーバイザーに接続できませんでした、インストールを終了します!"
 
-#: virtinst/Guest.py:118
+#: virtinst/Guest.py:126
 msgid "Guest"
 msgstr ""
 
-#: virtinst/Guest.py:125
+#: virtinst/Guest.py:133
 #, fuzzy, python-format
 msgid "Guest name '%s' is already in use."
 msgstr "ディスク %s は既に他のゲストで使用されています!"
 
-#: virtinst/Guest.py:133
+#: virtinst/Guest.py:141
 msgid "Memory value must be an integer greater than 0"
 msgstr "メモリー値は 0 を越える整数でなければなりません"
 
-#: virtinst/Guest.py:145
+#: virtinst/Guest.py:153
 msgid "Max Memory value must be an integer greater than 0"
 msgstr "最大メモリー値は 0 を越える整数でなければなりません"
 
-#: virtinst/Guest.py:164
+#: virtinst/Guest.py:172
 #, fuzzy
 msgid "Number of vcpus must be a postive integer."
 msgstr "vcpu の数は 1-%d の範囲です"
 
-#: virtinst/Guest.py:166
+#: virtinst/Guest.py:174
 #, fuzzy, python-format
 msgid "Number of vcpus must be no greater than %d for this vm type."
 msgstr "vcpu の数は 1-%d の範囲です"
 
-#: virtinst/Guest.py:176
+#: virtinst/Guest.py:184
 #, fuzzy
 msgid "cpuset must be string"
 msgstr "キーマップは文字列でなければなりません"
 
-#: virtinst/Guest.py:178
+#: virtinst/Guest.py:186
 #, fuzzy
 msgid "cpuset can only contain numeric, ',', or '-' characters"
 msgstr "キーマップには英数字と'_'、'-' だけが使えます"
 
-#: virtinst/Guest.py:186
+#: virtinst/Guest.py:194
 msgid "cpuset contains invalid format."
 msgstr ""
 
-#: virtinst/Guest.py:188 virtinst/Guest.py:192
+#: virtinst/Guest.py:196 virtinst/Guest.py:202
 msgid "cpuset's pCPU numbers must be less than pCPUs."
 msgstr ""
 
-#: virtinst/Guest.py:212
+#: virtinst/Guest.py:222
 #, fuzzy
 msgid "OS type must be a string."
 msgstr "キーマップは文字列でなければなりません"
 
-#: virtinst/Guest.py:224
+#: virtinst/Guest.py:234
 #, fuzzy, python-format
 msgid "OS type '%s' does not exist in our dictionary"
 msgstr "OS タイプ %s は辞書にありません"
 
-#: virtinst/Guest.py:232
+#: virtinst/Guest.py:242
 #, fuzzy
 msgid "OS variant must be a string."
 msgstr "キーマップは文字列でなければなりません"
 
-#: virtinst/Guest.py:238
+#: virtinst/Guest.py:248
 #, fuzzy, python-format
 msgid ""
 "OS variant '%(var)s; does not exist in our dictionary for OS type '%(ty)s'"
 msgstr "OS 種別 %(var)s が辞書の OS タイプ %(type)s にありません"
 
-#: virtinst/Guest.py:250
+#: virtinst/Guest.py:260
 #, fuzzy, python-format
 msgid "Unknown OS variant '%s'"
 msgstr "不明なインストーラータイプ '%s'"
 
-#: virtinst/Guest.py:291
+#: virtinst/Guest.py:301
 msgid "Must specify whether graphics are enabled"
 msgstr "グラフィックを有効にするかどうかを指定しなければなりません"
 
-#: virtinst/Guest.py:314
+#: virtinst/Guest.py:324
 msgid "Graphics enabled must be True or False"
 msgstr ""
 "グラフィックを有効にするかどうかは 'True' か 'False' でなければなりません"
 
-#: virtinst/Guest.py:373
+#: virtinst/Guest.py:383
 #, fuzzy
 msgid "You must specify a valid ISO or CD-ROM location for the installation"
 msgstr "インストール用の ISO か CD-ROM の場所を指定しなければなりません"
 
-#: virtinst/Guest.py:376
+#: virtinst/Guest.py:386
 msgid "The specified media path does not exist."
 msgstr "指定された媒体のパスは存在しません。"
 
-#: virtinst/Guest.py:573
+#: virtinst/Guest.py:415
+msgid "Must pass a VirtualDevice instance."
+msgstr ""
+
+#: virtinst/Guest.py:660
 msgid "Unable to start domain for guest, aborting installation!"
 msgstr "ゲスト用のドメインを開始できません、インストールを終了します!"
 
-#: virtinst/Guest.py:623
+#: virtinst/Guest.py:716
 #, python-format
 msgid "Could not remove old vm '%s': %s"
 msgstr ""
 
-#: virtinst/Guest.py:625
+#: virtinst/Guest.py:718
 #, python-format
 msgid "Domain named %s already exists!"
 msgstr "ドメイン名 %s は既に存在します!"
 
-#: virtinst/Guest.py:632
+#: virtinst/Guest.py:725
 msgid "Creating domain..."
 msgstr "ドメインを作成中..."
 
-#: virtinst/Guest.py:635
+#: virtinst/Guest.py:728
 msgid "Unable to create domain for the guest, aborting installation!"
 msgstr "ゲスト用のドメインを作成できません、インストールを終了します!"
 
-#: virtinst/Guest.py:643
+#: virtinst/Guest.py:736
 msgid ""
 "It appears that your installation has crashed.  You should be able to find "
 "more information in the logs"
 msgstr "インストールは失敗しました。ログに詳細な情報を見つけることができます"
 
-#: virtinst/Guest.py:677
+#: virtinst/Guest.py:770
 msgid ""
 "Domain has not existed.  You should be able to find more information in the "
 "logs"
 msgstr "ドメインは存在しません。ログに詳細な情報を見つけることができます"
 
-#: virtinst/Guest.py:679
+#: virtinst/Guest.py:772
 msgid ""
 "Domain has not run yet.  You should be able to find more information in the "
 "logs"
 msgstr ""
 "ドメインはまだ実行していません。ログに詳細な情報を見つけることができます"
 
-#: virtinst/Guest.py:696
+#: virtinst/Guest.py:789
 msgid "Domain has already been started!"
 msgstr "ドメインは既に開始しています!"
 
-#: virtinst/Guest.py:707
+#: virtinst/Guest.py:809
 msgid "The UUID you entered is already in use by another guest!"
 msgstr "入力した UUID は既に他のゲストで使用中です!"
 
-#: virtinst/Guest.py:710
+#: virtinst/Guest.py:812
 msgid "Name and memory must be specified for all guests!"
 msgstr "全てのゲストに対して名前とメモリーを指定しなければなりません!"
 
-#: virtinst/Guest.py:745
-#, fuzzy, python-format
-msgid "Invalid dictionary entry for device '%s %s'"
-msgstr "不当な新ゲストの名前: %s"
-
 #: virtinst/ImageFetcher.py:86
 #, python-format
 msgid "Retrieving file %s..."
@@ -465,7 +525,7 @@ msgstr "メモリー値は 0 を越える整数でなければなりません"
 msgid "The format for disk %s must be one of %s"
 msgstr ""
 
-#: virtinst/ImageParser.py:248
+#: virtinst/ImageParser.py:263
 #, python-format
 msgid "Checking disk signature for %s"
 msgstr ""
@@ -488,25 +548,25 @@ msgstr ""
 msgid "A disk device must be specified."
 msgstr ""
 
-#: virtinst/Installer.py:151
+#: virtinst/Installer.py:156
 msgid "Guest.cdrom must be a boolean type"
 msgstr ""
 
-#: virtinst/Installer.py:168 virtinst/Installer.py:173
-#: virtinst/Installer.py:177
+#: virtinst/Installer.py:173 virtinst/Installer.py:178
+#: virtinst/Installer.py:182
 msgid "Must pass both a kernel and initrd"
 msgstr "kernel と initrd の両方を渡さなければなりません"
 
-#: virtinst/Installer.py:180
+#: virtinst/Installer.py:185
 msgid "Kernel and initrd must be specified by a list, dict, or tuple."
 msgstr ""
 
-#: virtinst/Installer.py:335
+#: virtinst/Installer.py:340
 #, fuzzy
 msgid "A connection must be specified."
 msgstr "インストールの元となる場所を指定しなければなりません"
 
-#: virtinst/Installer.py:353
+#: virtinst/Installer.py:358
 #, python-format
 msgid "No 'Guest' class for virtualization type '%s'"
 msgstr ""
@@ -516,342 +576,361 @@ msgstr ""
 msgid "CDROM media must be specified for the live CD installer."
 msgstr "起動する CD を指定しなければなりません"
 
-#: virtinst/NodeDeviceParser.py:114
+#: virtinst/NodeDeviceParser.py:118
 msgid "System"
 msgstr ""
 
-#: virtinst/NodeDeviceParser.py:146
+#: virtinst/NodeDeviceParser.py:151
 #, python-format
 msgid "Interface %s"
 msgstr ""
 
-#: virtinst/NodeDeviceParser.py:364 virtinst/NodeDeviceParser.py:392
-#: virtinst/util.py:531 virtinst/VirtualDevice.py:58
+#: virtinst/NodeDeviceParser.py:378 virtinst/NodeDeviceParser.py:406
+#: virtinst/util.py:501 virtinst/VirtualDevice.py:86
 msgid "'conn' must be a virConnect instance."
 msgstr ""
 
-#: virtinst/NodeDeviceParser.py:411
+#: virtinst/NodeDeviceParser.py:426
 #, fuzzy
 msgid "Connection does not support host device enumeration."
 msgstr "HVM 仮想化はサポートされていません; ライブ CD から起動できません"
 
-#: virtinst/NodeDeviceParser.py:487
+#: virtinst/NodeDeviceParser.py:502
 #, fuzzy, python-format
 msgid "Unknown host device capability '%s'."
 msgstr "不明なインストーラータイプ '%s'"
 
-#: virtinst/OSDistro.py:99
+#: virtinst/osdict.py:129
+#, fuzzy, python-format
+msgid "Invalid dictionary entry for device '%s %s'"
+msgstr "不当な新ゲストの名前: %s"
+
+#: virtinst/OSDistro.py:102
 #, fuzzy, python-format
 msgid "Could not find an installable distribution at '%s'"
 msgstr "インストール場所にインストールできる配布物が見つかりませんでした"
 
-#: virtinst/OSDistro.py:109
+#: virtinst/OSDistro.py:112
 msgid "Invalid install location: "
 msgstr "不当なインストール場所: "
 
-#: virtinst/OSDistro.py:230
+#: virtinst/OSDistro.py:237
 #, fuzzy, python-format
 msgid "Couldn't find %(type)s kernel for %(distro)s tree."
 msgstr "インストール場所にインストールできる配布物が見つかりませんでした"
 
-#: virtinst/OSDistro.py:244
+#: virtinst/OSDistro.py:252
 #, fuzzy, python-format
 msgid "Could not find boot.iso in %s tree."
 msgstr "インストール場所にインストールできる配布物が見つかりませんでした"
 
-#: virtinst/OSDistro.py:383
+#: virtinst/OSDistro.py:413
 #, fuzzy, python-format
 msgid "Could not find a kernel path for virt type '%s'"
 msgstr "インストール場所にインストールできる配布物が見つかりませんでした"
 
-#: virtinst/OSDistro.py:392
+#: virtinst/OSDistro.py:422
 #, fuzzy
 msgid "Could not find a boot iso path for this tree."
 msgstr "インストール場所にインストールできる配布物が見つかりませんでした"
 
-#: virtinst/OSDistro.py:646
+#: virtinst/OSDistro.py:676
 msgid "Unable to determine kernel RPM path"
 msgstr "カーネル RPM のパスを決定できません"
 
-#: virtinst/OSDistro.py:648
+#: virtinst/OSDistro.py:678
 msgid "Unable to determine install-initrd RPM path"
 msgstr "インストール-initrd RPM のパスを決定できません"
 
-#: virtinst/OSDistro.py:659
+#: virtinst/OSDistro.py:689
 msgid "Building initrd"
 msgstr "initrd を構築中"
 
-#: virtinst/OSDistro.py:1021
+#: virtinst/OSDistro.py:1051
 #, python-format
 msgid "Solaris miniroot not found at %s"
 msgstr ""
 
-#: virtinst/OSDistro.py:1056
+#: virtinst/OSDistro.py:1089
 #, python-format
 msgid "OpenSolaris PV kernel not found at %s"
 msgstr ""
 
-#: virtinst/OSDistro.py:1066
-#, python-format
-msgid "OpenSolaris microroot not found at %s"
-msgstr ""
-
-#: virtinst/Storage.py:85
+#: virtinst/Storage.py:81
 #, fuzzy, python-format
 msgid "Unknown storage object type: %s"
 msgstr "不明なネットワークタイプ %s"
 
-#: virtinst/Storage.py:108
+#: virtinst/Storage.py:104
 msgid "'conn' must be a libvirt connection object."
 msgstr ""
 
-#: virtinst/Storage.py:110
+#: virtinst/Storage.py:106
 msgid "Passed connection is not libvirt storage capable"
 msgstr ""
 
-#: virtinst/Storage.py:120
+#: virtinst/Storage.py:116
 #, fuzzy
 msgid "Storage object"
 msgstr "新しいゲストの名前"
 
-#: virtinst/Storage.py:125
+#: virtinst/Storage.py:121
 #, fuzzy
 msgid "Name for the storage object."
 msgstr "新しいゲストの名前"
 
-#: virtinst/Storage.py:132
+#: virtinst/Storage.py:128
 msgid "Permissions must be passed as a dict object"
 msgstr ""
 
-#: virtinst/Storage.py:135
+#: virtinst/Storage.py:131
 msgid "Permissions must contain 'mode', 'owner', 'group' and 'label' keys."
 msgstr ""
 
-#: virtinst/Storage.py:142
+#: virtinst/Storage.py:138
 #, python-format
 msgid "'%s' is not an absolute path."
 msgstr ""
 
-#: virtinst/Storage.py:203
+#: virtinst/Storage.py:199
 msgid "Filesystem Directory"
 msgstr ""
 
-#: virtinst/Storage.py:204
+#: virtinst/Storage.py:200
 msgid "Pre-Formatted Block Device"
 msgstr ""
 
-#: virtinst/Storage.py:205
+#: virtinst/Storage.py:201
 msgid "Network Exported Directory"
 msgstr ""
 
-#: virtinst/Storage.py:206
+#: virtinst/Storage.py:202
 msgid "LVM Volume Group"
 msgstr ""
 
-#: virtinst/Storage.py:207
+#: virtinst/Storage.py:203
 msgid "Physical Disk Device"
 msgstr ""
 
-#: virtinst/Storage.py:208
+#: virtinst/Storage.py:204
 msgid "iSCSI Target"
 msgstr ""
 
-#: virtinst/Storage.py:218 virtinst/Storage.py:255
+#: virtinst/Storage.py:214 virtinst/Storage.py:251
 #, fuzzy, python-format
 msgid "Unknown storage pool type: %s"
 msgstr "不明なネットワークタイプ %s"
 
-#: virtinst/Storage.py:277
+#: virtinst/Storage.py:273
 msgid "Storage device type the pool will represent."
 msgstr ""
 
-#: virtinst/Storage.py:296
+#: virtinst/Storage.py:292
 #, fuzzy
 msgid "Host name must be a string"
 msgstr "システム名は文字列でなければなりません"
 
-#: virtinst/Storage.py:315
+#: virtinst/Storage.py:311
 #, fuzzy, python-format
 msgid "Name '%s' already in use by another pool."
 msgstr "ディスク %s は既に他のゲストで使用されています!"
 
-#: virtinst/Storage.py:353
+#: virtinst/Storage.py:349
 #, python-format
 msgid "Could not define storage pool: %s"
 msgstr ""
 
-#: virtinst/Storage.py:363
+#: virtinst/Storage.py:359
 #, python-format
 msgid "Could not build storage pool: %s"
 msgstr ""
 
-#: virtinst/Storage.py:372
+#: virtinst/Storage.py:368
 #, python-format
 msgid "Could not start storage pool: %s"
 msgstr ""
 
-#: virtinst/Storage.py:399
+#: virtinst/Storage.py:395
 msgid "Directory to use for the storage pool."
 msgstr ""
 
-#: virtinst/Storage.py:435
+#: virtinst/Storage.py:431
 msgid "The existing device to mount for the pool."
 msgstr ""
 
-#: virtinst/Storage.py:438 virtinst/Storage.py:496
+#: virtinst/Storage.py:434 virtinst/Storage.py:492
 msgid "Location to mount the source device."
 msgstr ""
 
-#: virtinst/Storage.py:456
+#: virtinst/Storage.py:452
 #, fuzzy, python-format
 msgid "Unknown Filesystem format: %s"
 msgstr "不明なネットワークタイプ %s"
 
-#: virtinst/Storage.py:459
+#: virtinst/Storage.py:455
 msgid "Filesystem type of the source device."
 msgstr ""
 
-#: virtinst/Storage.py:472
+#: virtinst/Storage.py:468
 msgid "Device path is required"
 msgstr ""
 
-#: virtinst/Storage.py:491 virtinst/Storage.py:665
+#: virtinst/Storage.py:487 virtinst/Storage.py:694
 msgid "Path on the host that is being shared."
 msgstr ""
 
-#: virtinst/Storage.py:493 virtinst/Storage.py:637
+#: virtinst/Storage.py:489 virtinst/Storage.py:666
 #, fuzzy
 msgid "Name of the host sharing the storage."
 msgstr "ゲストの実体の名前"
 
-#: virtinst/Storage.py:514
+#: virtinst/Storage.py:510
 #, fuzzy, python-format
 msgid "Unknown Network Filesystem format: %s"
 msgstr "不明なネットワークタイプ %s"
 
-#: virtinst/Storage.py:517
+#: virtinst/Storage.py:513
 msgid "Type of network filesystem."
 msgstr ""
 
-#: virtinst/Storage.py:529 virtinst/Storage.py:676
+#: virtinst/Storage.py:525 virtinst/Storage.py:705
 #, fuzzy
 msgid "Hostname is required"
 msgstr "%s にネットワーク名は不要です"
 
-#: virtinst/Storage.py:531 virtinst/Storage.py:614 virtinst/Storage.py:678
+#: virtinst/Storage.py:527 virtinst/Storage.py:643 virtinst/Storage.py:707
 msgid "Host path is required"
 msgstr ""
 
-#: virtinst/Storage.py:549
+#: virtinst/Storage.py:545
 msgid "Location of the existing LVM volume group."
 msgstr ""
 
-#: virtinst/Storage.py:576
-msgid "Path to the existing disk device."
+#: virtinst/Storage.py:570
+msgid "Optional device(s) to build new LVM volume on."
 msgstr ""
 
-#: virtinst/Storage.py:579 virtinst/Storage.py:640
-msgid "Root location for identifying new storage volumes."
+#: virtinst/Storage.py:593
+msgid "Must explicitly specify source path if building' pool"
 msgstr ""
 
-#: virtinst/Storage.py:585
-msgid "Disk volume creation is not implemented."
+#: virtinst/Storage.py:609
+msgid "Path to the existing disk device."
 msgstr ""
 
-#: virtinst/Storage.py:600
+#: virtinst/Storage.py:612 virtinst/Storage.py:669
+msgid "Root location for identifying new storage volumes."
+msgstr ""
+
+#: virtinst/Storage.py:629
 #, fuzzy, python-format
 msgid "Unknown Disk format: %s"
 msgstr "不明なネットワークタイプ %s"
 
-#: virtinst/Storage.py:603
+#: virtinst/Storage.py:632
 msgid "Format of the source device's partition table."
 msgstr ""
 
-#: virtinst/Storage.py:626
+#: virtinst/Storage.py:655
 msgid "Must explicitly specify disk format if formatting disk device."
 msgstr ""
 
-#: virtinst/Storage.py:644
+#: virtinst/Storage.py:673
 msgid "iSCSI volume creation is not implemented."
 msgstr ""
 
-#: virtinst/Storage.py:694
+#: virtinst/Storage.py:734
 msgid "One of pool or pool_name must be specified."
 msgstr ""
 
-#: virtinst/Storage.py:697 virtinst/Storage.py:770
+#: virtinst/Storage.py:737 virtinst/Storage.py:806
 #, fuzzy
 msgid "'conn' must be specified with 'pool_name'"
 msgstr "インストールの元となる場所を指定しなければなりません"
 
-#: virtinst/Storage.py:756
-msgid "Default volume target path range exceeded."
-msgstr ""
-
-#: virtinst/Storage.py:766
+#: virtinst/Storage.py:802
 msgid "Must specify pool_object or pool_name"
 msgstr ""
 
-#: virtinst/Storage.py:772
+#: virtinst/Storage.py:808
 msgid "Connection does not support storage management."
 msgstr ""
 
-#: virtinst/Storage.py:777
+#: virtinst/Storage.py:813
 #, python-format
 msgid "Couldn't find storage pool '%s': %s"
 msgstr ""
 
-#: virtinst/Storage.py:781
+#: virtinst/Storage.py:817
 msgid "pool_object must be a virStoragePool"
 msgstr ""
 
-#: virtinst/Storage.py:792
+#: virtinst/Storage.py:831
 msgid "Capacity must be a positive number"
 msgstr ""
 
-#: virtinst/Storage.py:813
+#: virtinst/Storage.py:852
 msgid "Allocation must be a non-negative number"
 msgstr ""
 
-#: virtinst/Storage.py:833
+#: virtinst/Storage.py:872
 msgid "'pool' must be a virStoragePool instance."
 msgstr ""
 
-#: virtinst/Storage.py:835
+#: virtinst/Storage.py:874
 #, python-format
 msgid "pool '%s' must be active."
 msgstr ""
 
-#: virtinst/Storage.py:844
+#: virtinst/Storage.py:886 virtinst/Storage.py:1120
+msgid "input_vol must be a virStorageVol"
+msgstr ""
+
+#: virtinst/Storage.py:888
+msgid ""
+"Creating storage from an existing volume is not supported by this libvirt "
+"version."
+msgstr ""
+
+#: virtinst/Storage.py:892
+msgid "virStorageVolume pointer to clone/use as input."
+msgstr ""
+
+#: virtinst/Storage.py:900
 #, python-format
 msgid "'%s' is not a valid format."
 msgstr ""
 
-#: virtinst/Storage.py:854
+#: virtinst/Storage.py:910
 #, fuzzy, python-format
 msgid "Name '%s' already in use by another volume."
 msgstr "ディスク %s は既に他のゲストで使用されています!"
 
-#: virtinst/Storage.py:924
+#: virtinst/Storage.py:963
+#, python-format
+msgid "Allocating '%s'"
+msgstr ""
+
+#: virtinst/Storage.py:1023
 #, python-format
 msgid ""
 "There is not enough free space on the storage pool to create the volume. (%d "
 "M requested allocation > %d M available)"
 msgstr ""
 
-#: virtinst/Storage.py:930
+#: virtinst/Storage.py:1029
 #, python-format
 msgid ""
 "The requested volume capacity will exceed the available pool space when the "
 "volume is fully allocated. (%d M requested capacity > %d M available)"
 msgstr ""
 
-#: virtinst/_util.py:111
+#: virtinst/_util.py:128
 #, fuzzy
 msgid "UUID must be a string."
 msgstr "キーマップは文字列でなければなりません"
 
-#: virtinst/_util.py:119
+#: virtinst/_util.py:136
 msgid ""
 "UUID must be a 32-digit hexadecimal number. It may take the form XXXXXXXX-"
 "XXXX-XXXX-XXXX-XXXXXXXXXXXX or may omit hyphens altogether."
@@ -859,322 +938,521 @@ msgstr ""
 "UUID は 32 文字の十六進数でなければなりません。XXXXXXXX-XXXX-XXXX-XXXX-"
 "XXXXXXXXXXXX 形式か、全てのハイフンがない形です。"
 
-#: virtinst/_util.py:130
+#: virtinst/_util.py:147
 #, fuzzy, python-format
 msgid "%s name must be a string between 0 and 50 characters"
 msgstr "システム名は 0 を越え、50 を越えない文字数でなければなりません"
 
-#: virtinst/_util.py:133
+#: virtinst/_util.py:150
 #, fuzzy, python-format
 msgid "%s name can not be only numeric characters"
 msgstr "システム名は数字だけではいけません"
 
-#: virtinst/_util.py:136
+#: virtinst/_util.py:153
 #, fuzzy, python-format
 msgid "%s name can only contain alphanumeric, '_', '.', or '-' characters"
 msgstr "システム名に含めていい文字は、英数字と、'_'、'.'、'-' だけです"
 
-#: virtinst/util.py:67
+#: virtinst/_util.py:276
+msgid "Name generation range exceeded."
+msgstr ""
+
+#: virtinst/util.py:69
 #, python-format
 msgid "Invalid line length while parsing %s."
 msgstr "%s を構文解析中に不当な行の長さ。"
 
-#: virtinst/util.py:68
+#: virtinst/util.py:70
 #, python-format
 msgid "Defaulting bridge to xenbr%d"
 msgstr "省略されたブリッジを xenbr%d で補います"
 
-#: virtinst/util.py:568
+#: virtinst/util.py:538 virtconv/parsers/ovf.py:160
 msgid "'path' or 'func' is required."
 msgstr ""
 
-#: virtinst/VirtualAudio.py:38
+#: virtinst/VirtualAudio.py:40
 #, fuzzy, python-format
 msgid "'model' must be a string,  was '%s'."
 msgstr "メモリー値は 0 を越える整数でなければなりません"
 
-#: virtinst/VirtualAudio.py:41
+#: virtinst/VirtualAudio.py:43
 #, python-format
 msgid "Unsupported sound model '%s'"
 msgstr ""
 
-#: virtinst/VirtualDevice.py:43
+#: virtinst/VirtualCharDevice.py:64
+msgid "Psuedo TTY"
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:66
+msgid "Physical host character device"
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:68
+msgid "Standard input/output"
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:70
+msgid "Named pipe"
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:72
+msgid "Output to a file"
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:74
+msgid "Virtual console"
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:76
+msgid "Null device"
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:78
+msgid "TCP net console"
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:80
+msgid "UDP net console"
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:82
+msgid "Unix socket"
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:94
+msgid "Client mode."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:96
+msgid "Server mode."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:139
+#, fuzzy, python-format
+msgid "Unknown character device type '%s'."
+msgstr "不明なインストーラータイプ '%s'"
+
+#: virtinst/VirtualCharDevice.py:147 virtinst/VirtualCharDevice.py:157
+#, fuzzy, python-format
+msgid "Unknown character device type '%s'"
+msgstr "不明なインストーラータイプ '%s'"
+
+#: virtinst/VirtualCharDevice.py:173
+msgid "Method used to expose character device in the host."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:186
+#, fuzzy, python-format
+msgid "Unknown character mode '%s'."
+msgstr "不明なインストーラータイプ '%s'"
+
+#: virtinst/VirtualCharDevice.py:213
+#, fuzzy, python-format
+msgid "Unknown protocol '%s'."
+msgstr "不明なインストーラータイプ '%s'"
+
+#: virtinst/VirtualCharDevice.py:232
+#, python-format
+msgid "A source path is required for character device type '%s'"
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:282
+msgid "Host character device to attach to guest."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:288
+msgid "Named pipe to use for input and output."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:294
+msgid "File path to record device output."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:302 virtinst/VirtualCharDevice.py:312
+msgid "Target connect/listen mode."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:305
+msgid "Unix socket path."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:315
+msgid "Address to connect/listen to."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:318
+msgid "Port on target host to connect/listen to."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:321
+msgid "Format used when sending data."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:325
+#, fuzzy
+msgid "A host and port must be specified."
+msgstr "インストールの元となる場所を指定しなければなりません"
+
+#: virtinst/VirtualCharDevice.py:337
+msgid "Host address to bind to."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:340
+msgid "Host port to bind to."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:343
+msgid "Host address to send output to."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:346
+msgid "Host port to send output to."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:351
+#, fuzzy
+msgid "A connection port must be specified."
+msgstr "インストールの元となる場所を指定しなければなりません"
+
+#: virtinst/VirtualDevice.py:63
+msgid "Virtual device type must be set in subclass."
+msgstr ""
+
+#: virtinst/VirtualDevice.py:66
+#, fuzzy, python-format
+msgid "Unknown virtual device type '%s'."
+msgstr "不明なインストーラータイプ '%s'"
+
+#: virtinst/VirtualDevice.py:71
 msgid "'conn' must be a virConnect instance"
 msgstr ""
 
-#: virtinst/VirtualDevice.py:67
+#: virtinst/VirtualDevice.py:104
 #, fuzzy, python-format
 msgid "'%s' must be True or False"
 msgstr ""
 "グラフィックを有効にするかどうかは 'True' か 'False' でなければなりません"
 
-#: virtinst/VirtualDevice.py:71
+#: virtinst/VirtualDevice.py:108
 #, fuzzy, python-format
 msgid "'%s' must be a string, not '%s'."
 msgstr "キーマップは文字列でなければなりません"
 
-#: virtinst/VirtualDisk.py:205
+#: virtinst/VirtualDisk.py:262
+#, python-format
+msgid "Error validating clone path: %s"
+msgstr ""
+
+#: virtinst/VirtualDisk.py:271
 #, fuzzy
 msgid "'size' must be a number greater than 0."
 msgstr "メモリー値は 0 を越える整数でなければなりません"
 
-#: virtinst/VirtualDisk.py:215
+#: virtinst/VirtualDisk.py:281
 #, fuzzy, python-format
 msgid "Unknown storage type '%s'"
 msgstr "不明なインストーラータイプ '%s'"
 
-#: virtinst/VirtualDisk.py:224
+#: virtinst/VirtualDisk.py:290
 #, fuzzy, python-format
 msgid "Unknown device type '%s'"
 msgstr "不明なインストーラータイプ '%s'"
 
-#: virtinst/VirtualDisk.py:258
+#: virtinst/VirtualDisk.py:324
 msgid "vol_object must be a virStorageVol instance"
 msgstr ""
 
-#: virtinst/VirtualDisk.py:266
+#: virtinst/VirtualDisk.py:332
 msgid "vol_install must be a StorageVolume  instance."
 msgstr ""
 
-#: virtinst/VirtualDisk.py:292
+#: virtinst/VirtualDisk.py:358
 #, fuzzy, python-format
 msgid "Unknown cache mode '%s'"
 msgstr "不明なインストーラータイプ '%s'"
 
-#: virtinst/VirtualDisk.py:353
+#: virtinst/VirtualDisk.py:373
+#, python-format
+msgid "SELinux label '%s' is not valid."
+msgstr ""
+
+#: virtinst/VirtualDisk.py:433
 #, fuzzy
 msgid "Unknown storage volume type."
 msgstr "不明なインストーラータイプ '%s'"
 
-#: virtinst/VirtualDisk.py:372
+#: virtinst/VirtualDisk.py:449
 #, python-format
 msgid "Passed type '%s' does not match detected storage type '%s'"
 msgstr ""
 
-#: virtinst/VirtualDisk.py:382
+#: virtinst/VirtualDisk.py:504
 msgid "volName must be a tuple of the form ('poolname', 'volname')"
 msgstr ""
 
-#: virtinst/VirtualDisk.py:385
+#: virtinst/VirtualDisk.py:507
 msgid "'volName' requires a passed connection."
 msgstr ""
 
-#: virtinst/VirtualDisk.py:387
+#: virtinst/VirtualDisk.py:509
 msgid "Connection does not support storage lookup."
 msgstr ""
 
-#: virtinst/VirtualDisk.py:393
+#: virtinst/VirtualDisk.py:515
 #, python-format
 msgid "Couldn't lookup volume object: %s"
 msgstr ""
 
-#: virtinst/VirtualDisk.py:436
+#: virtinst/VirtualDisk.py:540
+#, python-format
+msgid "Device type '%s' requires a path"
+msgstr ""
+
+#: virtinst/VirtualDisk.py:583
 #, fuzzy, python-format
 msgid "Size must be specified for non existent volume path '%s'"
 msgstr "存在しないディスク用に大きさを指定しなければなりません"
 
-#: virtinst/VirtualDisk.py:459
+#: virtinst/VirtualDisk.py:603
 #, python-format
 msgid ""
 "Cannot use storage '%(path)s': '%(rootdir)s' is not managed on the remote "
 "host."
 msgstr ""
 
-#: virtinst/VirtualDisk.py:464
+#: virtinst/VirtualDisk.py:608
 #, python-format
 msgid "Cannot use storage %(path)s: %(err)s"
 msgstr ""
 
-#: virtinst/VirtualDisk.py:517
+#: virtinst/VirtualDisk.py:686
 msgid "Connection doesn't support remote storage."
 msgstr ""
 
-#: virtinst/VirtualDisk.py:534
-#, python-format
-msgid "Device type '%s' requires a path"
-msgstr ""
-
-#: virtinst/VirtualDisk.py:549
+#: virtinst/VirtualDisk.py:689
 msgid "Must specify libvirt managed storage if on a remote connection"
 msgstr ""
 
-#: virtinst/VirtualDisk.py:558
+#: virtinst/VirtualDisk.py:726
 #, fuzzy, python-format
 msgid "The path '%s' must be a file or a device, not a directory"
 msgstr ""
 "ディスクバスはディレクトリーではなく、ファイルか装置でなければなりません"
 
-#: virtinst/VirtualDisk.py:568
+#: virtinst/VirtualDisk.py:735
 #, fuzzy, python-format
 msgid "Cannot create storage for %s device."
 msgstr "ストレージファイルを作成中..."
 
-#: virtinst/VirtualDisk.py:573
-#, fuzzy
-msgid "Local block device path must exist."
+#: virtinst/VirtualDisk.py:740
+#, fuzzy, python-format
+msgid "Local block device path '%s' must exist."
 msgstr "指定されたブロック装置はありません。"
 
-#: virtinst/VirtualDisk.py:581
+#: virtinst/VirtualDisk.py:749
 #, fuzzy, python-format
 msgid "size is required for non-existent disk '%s'"
 msgstr "存在しないディスク用に大きさを指定しなければなりません"
 
-#: virtinst/VirtualDisk.py:584
+#: virtinst/VirtualDisk.py:752
 #, python-format
 msgid "No write access to directory '%s'"
 msgstr ""
 
-#: virtinst/VirtualDisk.py:620
-msgid "Creating storage file..."
+#: virtinst/VirtualDisk.py:777
+#, python-format
+msgid "Cloning %(srcfile)s"
+msgstr ""
+
+#: virtinst/VirtualDisk.py:780
+#, fuzzy, python-format
+msgid "Creating storage file %s"
 msgstr "ストレージファイルを作成中..."
 
-#: virtinst/VirtualDisk.py:626
+#: virtinst/VirtualDisk.py:793
+msgid "copying to an existing vdisk is not supported"
+msgstr ""
+
+#: virtinst/VirtualDisk.py:796
+msgid "failed to clone disk"
+msgstr ""
+
+#: virtinst/VirtualDisk.py:807
 #, python-format
 msgid "Error creating vdisk %s"
 msgstr ""
 
-#: virtinst/VirtualDisk.py:647
+#: virtinst/VirtualDisk.py:832
 #, python-format
 msgid "Error creating diskimage %s: %s"
 msgstr ""
 
-#: virtinst/VirtualDisk.py:669
+#: virtinst/VirtualDisk.py:932
 msgid "'disknode' or self.target must be set!"
 msgstr ""
 
-#: virtinst/VirtualDisk.py:741
+#: virtinst/VirtualDisk.py:1003
 msgid ""
 "The filesystem will not have enough free space to fully allocate the sparse "
 "file when the guest is running."
 msgstr ""
 
-#: virtinst/VirtualDisk.py:746
+#: virtinst/VirtualDisk.py:1008
 msgid "There is not enough free space to create the disk."
 msgstr ""
 
-#: virtinst/VirtualDisk.py:750
+#: virtinst/VirtualDisk.py:1012
 #, python-format
 msgid " %d M requested > %d M available"
 msgstr ""
 
-#: virtinst/VirtualDisk.py:840
+#: virtinst/VirtualDisk.py:1175
 msgid "Cannot determine device bus/type."
 msgstr ""
 
-#: virtinst/VirtualDisk.py:847
+#: virtinst/VirtualDisk.py:1182
 msgid "IDE CDROM must use 'hdc', but target in use."
 msgstr ""
 
-#: virtinst/VirtualDisk.py:863
+#: virtinst/VirtualDisk.py:1198
 #, python-format
 msgid "No more space for disks of type '%s'"
 msgstr ""
 
-#: virtinst/VirtualGraphics.py:38
+#: virtinst/VirtualGraphics.py:40
 msgid "Unknown graphics type"
 msgstr "不明なグラフィックのタイプ"
 
-#: virtinst/VirtualGraphics.py:61
+#: virtinst/VirtualGraphics.py:63
 msgid "Keymap must be a string"
 msgstr "キーマップは文字列でなければなりません"
 
-#: virtinst/VirtualGraphics.py:63
+#: virtinst/VirtualGraphics.py:65
 msgid "Keymap must be less than 16 characters"
 msgstr "キーマップは 16 文字未満でなければなりません"
 
-#: virtinst/VirtualGraphics.py:65
+#: virtinst/VirtualGraphics.py:67
 msgid "Keymap can only contain alphanumeric, '_', or '-' characters"
 msgstr "キーマップには英数字と'_'、'-' だけが使えます"
 
-#: virtinst/VirtualGraphics.py:76
+#: virtinst/VirtualGraphics.py:78
 msgid ""
 "VNC port must be a number between 5900 and 65535, or -1 for auto allocation"
 msgstr ""
 
-#: virtinst/VirtualHostDevice.py:39
+#: virtinst/VirtualHostDevice.py:43
 msgid "'name' or 'nodedev' required."
 msgstr ""
 
-#: virtinst/VirtualHostDevice.py:58
+#: virtinst/VirtualHostDevice.py:62
 #, python-format
 msgid "Node device type '%s' cannot be attached to  guest."
 msgstr ""
 
-#: virtinst/VirtualHostDevice.py:124
+#: virtinst/VirtualHostDevice.py:130
 msgid "'nodedev' must be a USBDevice instance."
 msgstr ""
 
-#: virtinst/VirtualHostDevice.py:140
+#: virtinst/VirtualHostDevice.py:146
 msgid "'vendor' and 'product', or 'bus' and  'device' are required."
 msgstr ""
 
-#: virtinst/VirtualHostDevice.py:173
+#: virtinst/VirtualHostDevice.py:179
 msgid "'nodedev' must be a PCIDevice instance."
 msgstr ""
 
-#: virtinst/VirtualHostDevice.py:182
+#: virtinst/VirtualHostDevice.py:188
 msgid "'domain', 'bus', 'slot', and 'function' must be specified."
 msgstr ""
 
-#: virtinst/VirtualHostDevice.py:207
+#: virtinst/VirtualHostDevice.py:215
 #, python-format
 msgid "Could not detach PCI device: %s"
 msgstr ""
 
-#: virtinst/VirtualNetworkInterface.py:40
-#, fuzzy
-msgid "MAC address must be a string."
-msgstr "キーマップは文字列でなければなりません"
+#: virtinst/VirtualInputDevice.py:46
+#, fuzzy, python-format
+msgid "Unknown input type '%s'."
+msgstr "不明なインストーラータイプ '%s'"
 
-#: virtinst/VirtualNetworkInterface.py:46
-msgid "MAC address must be of the format AA:BB:CC:DD:EE:FF"
-msgstr "MAC アドレスは AA:BB:CC:DD:EE:FF 形式でなければなりません"
+#: virtinst/VirtualInputDevice.py:54
+#, fuzzy, python-format
+msgid "Unknown input bus '%s'."
+msgstr "不明なインストーラータイプ '%s'"
+
+#: virtinst/VirtualNetworkInterface.py:45
+msgid "Shared physical device"
+msgstr ""
+
+#: virtinst/VirtualNetworkInterface.py:47
+msgid "Virtual networking"
+msgstr ""
+
+#: virtinst/VirtualNetworkInterface.py:49
+msgid "Usermode networking"
+msgstr ""
+
+#: virtinst/VirtualNetworkInterface.py:51
+#, fuzzy, python-format
+msgid "Unknown network type '%s'"
+msgstr "不明なネットワークタイプ %s"
 
-#: virtinst/VirtualNetworkInterface.py:57
+#: virtinst/VirtualNetworkInterface.py:72
 msgid "A network name was not provided"
 msgstr "ネットワーク名が指定されていません"
 
-#: virtinst/VirtualNetworkInterface.py:63
+#: virtinst/VirtualNetworkInterface.py:78
 #, python-format
 msgid "Unknown network type %s"
 msgstr "不明なネットワークタイプ %s"
 
-#: virtinst/VirtualNetworkInterface.py:79
+#: virtinst/VirtualNetworkInterface.py:90
+#, fuzzy
+msgid "MAC address must be a string."
+msgstr "キーマップは文字列でなければなりません"
+
+#: virtinst/VirtualNetworkInterface.py:94
+msgid "MAC address must be of the format AA:BB:CC:DD:EE:FF"
+msgstr "MAC アドレスは AA:BB:CC:DD:EE:FF 形式でなければなりません"
+
+#: virtinst/VirtualNetworkInterface.py:113
 #, fuzzy, python-format
 msgid "Virtual network '%s' does not exist: %s"
 msgstr "ライブ CD イメージ '%s' がありません"
 
-#: virtinst/VirtualNetworkInterface.py:82
+#: virtinst/VirtualNetworkInterface.py:116
 #, python-format
 msgid "Virtual network '%s' has not been started."
 msgstr ""
 
-#: virtinst/VirtualNetworkInterface.py:105
+#: virtinst/VirtualNetworkInterface.py:139
 #, fuzzy
 msgid ""
 "The MAC address you entered is already in use by another active virtual "
 "machine."
 msgstr "入力された MAC アドレスは既に他の非起動の仮想マシンで使用されています!"
 
-#: virtinst/VirtualNetworkInterface.py:108
+#: virtinst/VirtualNetworkInterface.py:142
 #, fuzzy
 msgid ""
 "The MAC address you entered conflicts with a device on the physical host."
 msgstr "入力した MAC アドレスは物理 NIC と衝突します。"
 
-#: virtinst/VirtualNetworkInterface.py:110
+#: virtinst/VirtualNetworkInterface.py:144
 #, fuzzy
 msgid ""
 "The MAC address you entered is already in use by another inactive virtual "
 "machine."
 msgstr "入力された MAC アドレスは既に他の非起動の仮想マシンで使用されています!"
 
-#: virtconv/diskcfg.py:242
+#: virtconv/diskcfg.py:251
 #, fuzzy, python-format
 msgid "Cannot convert to disk format %s"
 msgstr "不明なネットワークタイプ %s"
 
-#: virtconv/diskcfg.py:255
+#: virtconv/diskcfg.py:264
 #, python-format
 msgid "Cannot convert disk with absolute path %s"
 msgstr ""
@@ -1201,6 +1479,28 @@ msgstr ""
 msgid "Disk %s:%s storage does not exist"
 msgstr "ライブ CD イメージ '%s' がありません"
 
+#: virtconv/parsers/ovf.py:212
+#, python-format
+msgid "Didn't find parent bus for disk '%s'"
+msgstr ""
+
+#: virtconv/parsers/ovf.py:226 virtconv/parsers/ovf.py:242
+#, fuzzy, python-format
+msgid "Unknown reference id '%s' for path %s."
+msgstr "不明なネットワークタイプ %s"
+
+#: virtconv/parsers/ovf.py:235
+#, fuzzy, python-format
+msgid "Unknown storage path type %s."
+msgstr "不明なネットワークタイプ %s"
+
+#: virtconv/parsers/ovf.py:396
+#, python-format
+msgid ""
+"OVF section '%s' is listed as required, but parser doesn't know how to "
+"handle it."
+msgstr ""
+
 #: virtconv/parsers/virtimage.py:212
 #, python-format
 msgid "Couldn't import file '%s': %s"
@@ -1230,75 +1530,71 @@ msgstr ""
 msgid "No displayName defined in \"%s\""
 msgstr ""
 
-#: virt-clone:43
+#: virt-clone:47
 msgid "What is the name for the cloned virtual machine?"
 msgstr "クローニングした仮想マシンの名前は何ですか?"
 
-#: virt-clone:61
+#: virt-clone:48
+#, fuzzy
+msgid "A name is required for the new virtual machine."
+msgstr "クローニングした仮想マシンの名前は何ですか?"
+
+#: virt-clone:65
 #, fuzzy
 msgid "What is the name of the original virtual machine?"
 msgstr "オリジナルの仮想マシンの名前または uuid は何ですか?"
 
-#: virt-clone:102
-#, fuzzy, python-format
-msgid "What would you like to use as the cloned disk (file path) for '%s'?"
-msgstr "ディスク(パス)として何を使用したいですか?"
-
-#: virt-clone:113
-#, python-format
-msgid "This will overwrite the existing path '%s'!\n"
-msgstr ""
-
-#: virt-clone:115
+#: virt-clone:66
 #, fuzzy
-msgid "Do you really want to use this disk (yes or no)?"
-msgstr "そのディスクを本当に使いたいのですか (yes または no)? "
+msgid "An original machine name or xml file is required."
+msgstr "%s にネットワーク名は不要です"
 
-#: virt-clone:120 virt-install:206 virt-install.orig:206
+#: virt-clone:112
 #, fuzzy, python-format
-msgid "Disk %s is already in use by another guest!\n"
-msgstr "ディスク %s は既に他のゲストで使用されています!"
-
-#: virt-clone:121 virt-install:207 virt-install.orig:207
-#, fuzzy
-msgid "Do you really want to use the disk (yes or no)? "
-msgstr "そのディスクを本当に使いたいのですか (yes または no)? "
+msgid "What would you like to use as the cloned disk (file path) for '%s'?"
+msgstr "ディスク(パス)として何を使用したいですか?"
 
-#: virt-clone:148 virt-image:88 virt-install:334 virt-install.orig:334
+#: virt-clone:134 virt-image:78 virt-install:499
 msgid "Connect to hypervisor with URI"
 msgstr "URI でハイパーバイザーに接続"
 
-#: virt-clone:151 virt-image:91 virt-install:337 virt-install.orig:337
+#: virt-clone:137 virt-image:81 virt-install:502
 msgid "General Options"
 msgstr ""
 
-#: virt-clone:154
+#: virt-clone:140
 #, fuzzy
 msgid "Name of the original guest; The status must be shut off or paused."
 msgstr "オリジナルゲストの名前か uuid: 状態は停止でなければなりません"
 
-#: virt-clone:159
+#: virt-clone:145
 #, fuzzy
 msgid "XML file to use as the original guest."
 msgstr "ディスクイメージとして使用するファイル"
 
-#: virt-clone:162
+#: virt-clone:147
+msgid ""
+"Auto generate clone name and storage paths from the original guest "
+"configuration."
+msgstr ""
+
+#: virt-clone:151
 msgid "Name for the new guest"
 msgstr "新しいゲストの名前"
 
-#: virt-clone:166
+#: virt-clone:155
 msgid "New UUID for the clone guest; Default is a randomly generated UUID"
 msgstr "クローンゲストの新しい uuid: 省略値はランダムに生成された UUID です"
 
-#: virt-clone:170 virt-install:415 virt-install.orig:415
+#: virt-clone:159 virt-install:588
 msgid "Storage Configuration"
 msgstr ""
 
-#: virt-clone:174
+#: virt-clone:163
 msgid "New file to use as the disk image for the new guest"
 msgstr "ディスクイメージとして使用される、新ゲスト用の新ファイル"
 
-#: virt-clone:179
+#: virt-clone:168
 msgid ""
 "Force to copy devices (eg, if 'hdc' is a readonly cdrom device, --force-"
 "copy=hdc)"
@@ -1306,52 +1602,55 @@ msgstr ""
 "装置のコピーを強制する (例えば 'hdc' が読込みのみの cdrom 装置なら、--force-"
 "copy=hdc)"
 
-#: virt-clone:183
+#: virt-clone:172
 msgid "Do not use a sparse file for the clone's disk image"
 msgstr "クローニングのディスクイメージに疎らなファイルを使用しないでください"
 
-#: virt-clone:187
+#: virt-clone:176
 msgid "Preserve a new file to use as the disk image for the new guest"
 msgstr "新ファイルを新ゲスト用のディスクイメージとして使用するよう保存する"
 
-#: virt-clone:191 virt-image:128 virt-install:435 virt-install.orig:435
+#: virt-clone:180 virt-image:118 virt-install:610
 msgid "Networking Configuration"
 msgstr ""
 
-#: virt-clone:195
+#: virt-clone:184
 msgid ""
 "New fixed MAC address for the clone guest. Default is a randomly generated "
 "MAC"
 msgstr "クローンゲスト用の固定 MAC アドレス。省略値はランダムに生成されます"
 
-#: virt-clone:199 virt-image:158 virt-install:470 virt-install.orig:470
+#: virt-clone:188 virt-image:138 virt-install:639
 msgid "Miscellaneous Options"
 msgstr ""
 
-#: virt-clone:201 virt-convert:91 virt-image:172 virt-install:472
-#: virt-install.orig:472
+#: virt-clone:190 virt-convert:91 virt-image:152 virt-install:641
 msgid "Print debugging information"
 msgstr "デバッグ情報を印刷"
 
-#: virt-clone:203 virt-image:174
+#: virt-clone:192 virt-image:154 virt-install:652
+msgid "Request user input for ambiguous situations or required options."
+msgstr ""
+
+#: virt-clone:195 virt-image:157
 msgid ""
 "Do not prompt for input. Answers yes where applicable, terminates for all "
 "other prompts"
 msgstr ""
 
-#: virt-clone:219
+#: virt-clone:212
 #, fuzzy
 msgid "Must be privileged to clone Xen guests"
 msgstr "Xen ゲストをクローニングするには root でなければなりません"
 
-#: virt-clone:250
+#: virt-clone:242
 #, python-format
 msgid ""
 "\n"
 "Clone '%s' created successfully."
 msgstr ""
 
-#: virt-clone:265 virt-image:283 virt-install:784 virt-install.orig:784
+#: virt-clone:257 virt-image:267 virt-install:933
 #, fuzzy
 msgid "Installation aborted at user request"
 msgstr "NFS インストールは root のみサポートしています"
@@ -1368,11 +1667,11 @@ msgstr ""
 msgid "Output disk format"
 msgstr ""
 
-#: virt-convert:60 virt-install:386 virt-install.orig:386
+#: virt-convert:60 virt-install:557
 msgid "This guest should be a fully virtualized guest"
 msgstr "このゲストは完全仮想化ゲストでなければなりません"
 
-#: virt-convert:62 virt-install:388 virt-install.orig:388
+#: virt-convert:62 virt-install:559
 msgid "This guest should be a paravirtualized guest"
 msgstr "このゲストは準仮想化ゲストでなければなりません"
 
@@ -1380,7 +1679,7 @@ msgstr "このゲストは準仮想化ゲストでなければなりません"
 msgid "Machine Architecture Type (i686/x86_64/ppc)"
 msgstr ""
 
-#: virt-convert:71 virt-install:360 virt-install.orig:360
+#: virt-convert:71 virt-install:525
 msgid ""
 "The OS type for fully virtualized guests, e.g. 'linux', 'unix', 'windows'"
 msgstr ""
@@ -1395,7 +1694,7 @@ msgstr ""
 "例えば 'fedora6'、'rhel5'、'solaris10'、'win2k'、'vista' のような、完全仮想化"
 "ゲストの OS 種別"
 
-#: virt-convert:78 virt-install:376 virt-install.orig:376
+#: virt-convert:78 virt-install:547
 msgid ""
 "Disables APIC for fully virtualized guest (overrides value in os-type/os-"
 "variant db)"
@@ -1403,7 +1702,7 @@ msgstr ""
 "完全仮想化ゲストの APIC を無効にします (os-タイプ/os-種別の db の値を上書きし"
 "ます)"
 
-#: virt-convert:82 virt-install:380 virt-install.orig:380
+#: virt-convert:82 virt-install:551
 msgid ""
 "Disables ACPI for fully virtualized guest (overrides value in os-type/os-"
 "variant db)"
@@ -1415,128 +1714,128 @@ msgstr ""
 msgid "Don't be verbose"
 msgstr ""
 
-#: virt-convert:97
+#: virt-convert:100
 msgid "You need to provide an input VM definition"
 msgstr ""
 
-#: virt-convert:99
+#: virt-convert:102
 msgid "Too many arguments provided"
 msgstr ""
 
-#: virt-convert:103
+#: virt-convert:106
 #, fuzzy, python-format
 msgid "Unknown output disk format \"%s\""
 msgstr "不明なネットワークタイプ %s"
 
-#: virt-convert:118
+#: virt-convert:121
 #, fuzzy, python-format
 msgid "Unknown output format \"%s\")"
 msgstr "不明なネットワークタイプ %s"
 
-#: virt-convert:120
+#: virt-convert:123
 #, python-format
 msgid "No output handler for format \"%s\")"
 msgstr ""
 
-#: virt-convert:124
+#: virt-convert:127
 #, python-format
 msgid "Couldn't access input argument \"%s\"\n"
 msgstr ""
 
-#: virt-convert:131
+#: virt-convert:134
 #, fuzzy, python-format
 msgid "Couldn't determine input format for \"%s\": %s"
 msgstr "最大 vcpu 数を決定できません。32 を使います。"
 
-#: virt-convert:136
+#: virt-convert:139
 #, fuzzy, python-format
 msgid "Unknown input format \"%s\")"
 msgstr "不明なネットワークタイプ %s"
 
-#: virt-convert:138
+#: virt-convert:141
 #, python-format
 msgid "No input handler for format \"%s\""
 msgstr ""
 
-#: virt-convert:173
+#: virt-convert:176
 #, fuzzy, python-format
 msgid "Couldn't clean up output directory \"%s\": %s"
 msgstr "%d ディレクトリーを作成できませんでした:"
 
-#: virt-convert:190 virt-convert:193
+#: virt-convert:192 virt-convert:195
 #, python-format
 msgid "Couldn't import file \"%s\": %s"
 msgstr ""
 
-#: virt-convert:230
+#: virt-convert:232
 #, python-format
 msgid "Generating output in '%(format)s' format to %(dir)s/"
 msgstr ""
 
-#: virt-convert:249
+#: virt-convert:251
 #, python-format
 msgid "Converting disk '%(path)s' to type %(format)s..."
 msgstr ""
 
-#: virt-convert:256 virt-convert:259
+#: virt-convert:258 virt-convert:261
 #, python-format
 msgid "Couldn't convert disks: %s"
 msgstr ""
 
-#: virt-convert:265
+#: virt-convert:267
 #, python-format
 msgid "Couldn't export to file \"%s\": %s"
 msgstr ""
 
-#: virt-convert:277
+#: virt-convert:279
 #, fuzzy
 msgid "Aborted at user request"
 msgstr "NFS インストールは root のみサポートしています"
 
-#: virt-image:64
+#: virt-image:50
 #, python-format
 msgid ""
 "Warning: more networks were provided [%i] then nics required [%i]. All "
-"extras are ignored"
+"extras are ignored."
 msgstr ""
 
-#: virt-image:68
+#: virt-image:55
 #, python-format
-msgid "The image requires %i network interface"
+msgid "The image requires %i network interface."
 msgstr ""
 
-#: virt-image:94 virt-install:340 virt-install.orig:340
+#: virt-image:84 virt-install:505
 msgid "Name of the guest instance"
 msgstr "ゲストの実体の名前"
 
-#: virt-image:96 virt-install:342 virt-install.orig:342
+#: virt-image:86 virt-install:507
 msgid "Memory to allocate for guest instance in megabytes"
 msgstr "ゲストの実体のために割り当てる、メガバイトでのメモリー"
 
-#: virt-image:100 virt-install:349 virt-install.orig:349
+#: virt-image:90 virt-install:514
 #, fuzzy
 msgid "UUID for the guest."
 msgstr "新しいゲストの名前"
 
-#: virt-image:102 virt-install:351 virt-install.orig:351
+#: virt-image:92 virt-install:516
 msgid "Number of vcpus to configure for your guest"
 msgstr "ゲスト用に設定する vcpu の数"
 
-#: virt-image:104 virt-install:353 virt-install.orig:353
+#: virt-image:94 virt-install:518
 msgid "Check that vcpus do not exceed physical CPUs and warn if they do."
 msgstr "vcpu が物理 CPU を越えないことをチェックし、越えたら警告します。"
 
-#: virt-image:108 virt-install:357 virt-install.orig:357
+#: virt-image:98 virt-install:522
 msgid "Set which physical CPUs Domain can use."
 msgstr ""
 
-#: virt-image:111
+#: virt-image:101
 #, fuzzy
 msgid "The OS type being installed, e.g. 'linux', 'unix', 'windows'"
 msgstr ""
 "例えば 'linux'、'unix'、'windows' のような、完全仮想化ゲストの OS タイプ"
 
-#: virt-image:115
+#: virt-image:105
 #, fuzzy
 msgid ""
 "The OS variant being installed, e.g. 'fedora6', 'rhel5', 'solaris10', 'win2k'"
@@ -1544,98 +1843,58 @@ msgstr ""
 "例えば 'fedora6'、'rhel5'、'solaris10'、'win2k'、'vista' のような、完全仮想化"
 "ゲストの OS 種別"
 
-#: virt-image:119 virt-install:371 virt-install.orig:371
+#: virt-image:109 virt-install:542
 msgid "Full Virtualization specific options"
 msgstr ""
 
-#: virt-image:122
+#: virt-image:112
 #, fuzzy
 msgid "Disables APIC for fully virtualized guest"
 msgstr "このゲストは完全仮想化ゲストでなければなりません"
 
-#: virt-image:125
+#: virt-image:115
 #, fuzzy
 msgid "Disables ACPI for fully virtualized guest"
 msgstr "このゲストは完全仮想化ゲストでなければなりません"
 
-#: virt-image:131 virt-install:438 virt-install.orig:438
-msgid ""
-"Bridge to connect guest NIC to; if none given, will try to determine the "
-"default"
-msgstr ""
-"ゲストの NIC が接続されるブリッジ; 指定しなければデフォルトを決定しようとしま"
-"す"
-
-#: virt-image:135 virt-install:442 virt-install.orig:442
-msgid ""
-"Connect the guest to a virtual network, forwarding to the physical network "
-"with NAT"
-msgstr ""
-"物理ネットワークに NAT でフォワーディングすることでゲストを仮想ネットワークに"
-"接続します"
-
-#: virt-image:139 virt-install:446 virt-install.orig:446
+#: virt-image:121
 msgid ""
-"Fixed MAC address for the guest; if none or RANDOM is given a random address "
-"will be used"
+"Specify a network interface. Ex:\n"
+"--network bridge=mybr0\n"
+"--network network=libvirt_network_name\n"
+"--network network=mynet,model=e1000,mac=00:11..."
 msgstr ""
-"ゲスト用の固定 MAC アドレス; 何も指定しないか、 RANDOM が指定された場合、ラン"
-"ダムなアドレスが使われます"
 
-#: virt-image:143 virt-install:452 virt-install.orig:452
-msgid "Graphics Configuration"
-msgstr ""
-
-#: virt-image:145 virt-install:454 virt-install.orig:454
-msgid "Use VNC for graphics support"
-msgstr "グラフィックサポートのために VNC を使用します"
-
-#: virt-image:147 virt-install:456 virt-install.orig:456
-msgid "Port to use for VNC"
-msgstr "VNC で使用するためのポート"
-
-#: virt-image:149 virt-install:458 virt-install.orig:458
-msgid "Use SDL for graphics support"
-msgstr "グラフィックサポートのために SDL を使用します"
-
-#: virt-image:151 virt-install:460 virt-install.orig:460
-msgid "Don't set up a graphical console for the guest."
-msgstr "ゲスト用にグラフィックコンソールを設定しないでください。"
-
-#: virt-image:154 virt-install:467 virt-install.orig:467
-msgid "set up keymap for a graphical console"
-msgstr "グラフィックコンソールのためのキーマップを設定します"
-
-#: virt-image:160
+#: virt-image:140
 msgid "Print the libvirt XML, but do not start the domain"
 msgstr ""
 
-#: virt-image:163
+#: virt-image:143
 msgid "The zero-based index of the boot record to use"
 msgstr ""
 
-#: virt-image:165
+#: virt-image:145
 msgid "Overwrite, or destroy, an existing image with the same name"
 msgstr ""
 
-#: virt-image:170
+#: virt-image:150
 msgid "Skip disk checksum verification process"
 msgstr ""
 
-#: virt-image:182
+#: virt-image:165
 msgid "You need to provide an image XML descriptor"
 msgstr ""
 
-#: virt-image:200
+#: virt-image:184
 msgid "Cannot parse"
 msgstr ""
 
-#: virt-image:205
+#: virt-image:189
 #, python-format
 msgid "The index for --boot must be between 0 and %d"
 msgstr ""
 
-#: virt-image:261
+#: virt-image:245
 #, fuzzy, python-format
 msgid ""
 "\n"
@@ -1643,12 +1902,12 @@ msgid ""
 "Creating guest %s..."
 msgstr "ストレージファイルを作成中..."
 
-#: virt-image:265
+#: virt-image:249
 #, fuzzy
 msgid "Guest creation failed"
 msgstr "ゲストのインストールに失敗しました"
 
-#: virt-image:271
+#: virt-image:255
 #, fuzzy, python-format
 msgid ""
 "Domain creation may not have been\n"
@@ -1661,116 +1920,152 @@ msgstr ""
 "でドメインを再起動することができます; そうでなければ\n"
 "インストールを再開してください。"
 
-#: virt-install:70 virt-install.orig:70
+#: virt-install:84
 #, python-format
 msgid "Couldn't create default storage pool '%s': %s"
 msgstr ""
 
-#: virt-install:93 virt-install.orig:93
-msgid "--disk path must start with path=, pool=, or vol=."
+#: virt-install:107
+#, python-format
+msgid "%(chartype)s type %(devtype)s does not support '%(optname)s' option."
 msgstr ""
 
-#: virt-install:121 virt-install:133 virt-install.orig:121
-#: virt-install.orig:133
+#: virt-install:133
 #, fuzzy, python-format
-msgid "Unknown '%s' value '%s'"
+msgid "Unknown option(s) %s"
 msgstr "不明なインストーラータイプ '%s'"
 
-#: virt-install:126 virt-install.orig:126
+#: virt-install:147
 #, python-format
-msgid "Improper value for 'size': %s"
+msgid "Error in %(chartype)s device parameters: %(err)s"
 msgstr ""
 
-#: virt-install:137 virt-install.orig:137
+#: virt-install:170
+msgid "--disk path must start with path=, pool=, or vol=."
+msgstr ""
+
+#: virt-install:177
 #, fuzzy, python-format
 msgid "Unknown --disk option '%s'."
 msgstr "不明なインストーラータイプ '%s'"
 
-#: virt-install:147 virt-install.orig:147
-#, fuzzy
-msgid "Size must be specified with all 'pool='"
-msgstr "インストールの元となる場所を指定しなければなりません"
-
-#: virt-install:160 virt-install.orig:160
-msgid "Storage volume must be specified as pool=poolname/volname"
-msgstr ""
+#: virt-install:185 virt-install:197
+#, fuzzy, python-format
+msgid "Unknown '%s' value '%s'"
+msgstr "不明なインストーラータイプ '%s'"
 
-#: virt-install:202 virt-install.orig:202
+#: virt-install:190
 #, python-format
-msgid "Error with storage parameters: %s"
+msgid "Improper value for 'size': %s"
 msgstr ""
 
-#: virt-install:214 virt-install.orig:214
+#: virt-install:212
 #, fuzzy
-msgid " Do you really want to use the disk (yes or no)?"
-msgstr "そのディスクを本当に使いたいのですか (yes または no)? "
+msgid "Size must be specified with all 'pool='"
+msgstr "インストールの元となる場所を指定しなければなりません"
+
+#: virt-install:226
+msgid "Storage volume must be specified as vol=poolname/volname"
+msgstr ""
 
-#: virt-install:222 virt-install.orig:222
+#: virt-install:282
 #, fuzzy
-msgid "Cannot use --file, --size, or --disk with --nodisks"
+msgid "Cannot use --file, --file-size, or --disk with --nodisks"
 msgstr "--file は --nodisks と一緒には使えません"
 
-#: virt-install:225 virt-install.orig:225
+#: virt-install:285
 msgid ""
 "Cannot mix --file, --nonsparse, or --file-size with --disk options. Please "
 "see the manual for --disk syntax."
 msgstr ""
 
-#: virt-install:228 virt-install.orig:228
+#: virt-install:288
 msgid "A disk must be specified (use --nodisks to override)"
 msgstr ""
 
-#: virt-install:236 virt-install.orig:236
+#: virt-install:296
 msgid "Need to pass size for each disk"
 msgstr "個々のディスクの大きさを渡す必要があります"
 
-#: virt-install:251 virt-install.orig:251
+#: virt-install:311
 msgid "Cannot use --mac with --nonetworks"
 msgstr ""
 
-#: virt-install:253 virt-install.orig:253
+#: virt-install:313
 #, fuzzy
 msgid "Cannot use --bridges with --nonetworks"
 msgstr "--bridge と --network 引数の両方を混ぜることはできません"
 
-#: virt-install:255 virt-install.orig:255
+#: virt-install:315
 #, fuzzy
 msgid "Cannot use --network with --nonetworks"
 msgstr "--file は --nodisks と一緒には使えません"
 
-#: virt-install:275 virt-install.orig:275
+#: virt-install:342
+#, fuzzy
+msgid ""
+"Would you like a fully virtualized guest (yes or no)? This will allow you to "
+"run unmodified operating systems."
+msgstr ""
+"完全仮想化のゲストがいいですか (yes または no)? これは修正不要のオペレーティ"
+"ングシステムの実行を可能にします。"
+
+#: virt-install:367
+#, fuzzy, python-format
+msgid "Would you like to use %s acceleration? (yes or no)"
+msgstr "グラフィックサポートを有効にしたいですか? (yes または no)"
+
+#: virt-install:379
+msgid "Can't do both --hvm and --paravirt"
+msgstr "--hvm と --paravirt の両方はできません"
+
+#: virt-install:401 virt-install:402
+msgid "default"
+msgstr ""
+
+#: virt-install:423
 #, python-format
 msgid "Only one install method (%s) can be used"
 msgstr ""
 
-#: virt-install:281 virt-install.orig:281
+#: virt-install:429
 #, fuzzy
 msgid "Network PXE boot is not supported for paravirtualized guests"
 msgstr "NFS インストールは root のみサポートしています"
 
-#: virt-install:284 virt-install.orig:284
+#: virt-install:432
 msgid "Paravirtualized guests cannot install off cdrom media."
 msgstr ""
 
-#: virt-install:287 virt-install.orig:287
+#: virt-install:435
 msgid "--location can not be specified for remote connections."
 msgstr ""
 
-#: virt-install:296 virt-install.orig:296
+#: virt-install:444
 #, python-format
 msgid "One of %s, or cdrom media must be specified."
 msgstr ""
 
-#: virt-install:314 virt-install.orig:314
+#: virt-install:457
 #, python-format
 msgid "Error creating cdrom disk: %s"
 msgstr ""
 
-#: virt-install:346 virt-install.orig:346
+#: virt-install:462
+#, fuzzy
+msgid "What is the install CD-ROM/ISO or URL?"
+msgstr "インストール場所は何ですか?"
+
+#: virt-install:464
+#, fuzzy
+msgid "What is the install URL?"
+msgstr "インストール場所は何ですか?"
+
+#: virt-install:511
 msgid "The CPU architecture to simulate"
 msgstr "シミュレートする CPU アーキテクチャー"
 
-#: virt-install:364 virt-install.orig:364
+#: virt-install:529
 #, fuzzy
 msgid ""
 "The OS variant for fully virtualized guests, e.g. 'fedora6', 'rhel5', "
@@ -1779,33 +2074,40 @@ msgstr ""
 "例えば 'fedora6'、'rhel5'、'solaris10'、'win2k'、'vista' のような、完全仮想化"
 "ゲストの OS 種別"
 
-#: virt-install:368 virt-install.orig:368
+#: virt-install:533
+msgid "Add a serial device to the domain."
+msgstr ""
+
+#: virt-install:536
+msgid "Add a parallel device to the domain."
+msgstr ""
+
+#: virt-install:539
 msgid "Physical host device to attach to the domain."
 msgstr ""
 
-#: virt-install:373 virt-install.orig:373
+#: virt-install:544
 msgid "Use sound device emulation"
 msgstr ""
 
-#: virt-install:384 virt-install.orig:384
+#: virt-install:555
 msgid "Virtualization Type Options"
 msgstr ""
 
-#: virt-install:391 virt-install.orig:391
-#, fuzzy
-msgid "Use kernel acceleration capabilities (kvm, kqemu, ...)"
-msgstr "カーネル加速化機能を使用します"
+#: virt-install:562
+msgid "Hypervisor name to use (kvm, qemu, xen, ...)"
+msgstr ""
 
-#: virt-install:395 virt-install.orig:395
+#: virt-install:568
 msgid "Installation Method Options"
 msgstr ""
 
-#: virt-install:398 virt-install.orig:398
+#: virt-install:571
 #, fuzzy
 msgid "CD-ROM installation media"
 msgstr "ゲストのインストールに失敗しました"
 
-#: virt-install:401 virt-install.orig:401
+#: virt-install:574
 #, fuzzy
 msgid ""
 "Installation source (eg, nfs:host:/path, http://host/path, ftp://host/path)"
@@ -1813,76 +2115,70 @@ msgstr ""
 "準仮想化ゲストのインストールソース (例えば nfs:ホスト:/パス、http://ホスト/パ"
 "ス、ftp://ホスト/パス)"
 
-#: virt-install:404 virt-install.orig:404
+#: virt-install:577
 msgid "Boot from the network using the PXE protocol"
 msgstr ""
 
-#: virt-install:406 virt-install.orig:406
+#: virt-install:579
 #, fuzzy
 msgid "Build guest around an existing disk image"
 msgstr "ディスクイメージとして使用するファイル"
 
-#: virt-install:408 virt-install.orig:408
+#: virt-install:581
 msgid "Treat the CD-ROM media as a Live CD"
 msgstr ""
 
-#: virt-install:411 virt-install.orig:411
+#: virt-install:584
 #, fuzzy
 msgid "Additional arguments to pass to the kernel booted from --location"
 msgstr "準仮想化ゲストのインストーラーに渡す追加の実引数"
 
-#: virt-install:418 virt-install.orig:418
-msgid "Specify storage to use as a disk with various options."
-msgstr ""
-
-#: virt-install:422 virt-install.orig:422
-msgid "File to use as the disk image"
-msgstr "ディスクイメージとして使用するファイル"
-
-#: virt-install:425 virt-install.orig:425
-msgid "Size of the disk image (if it doesn't exist) in gigabytes"
-msgstr "(存在しなければ)ギガバイトでディスクイメージの大きさ"
-
-#: virt-install:429 virt-install.orig:429
+#: virt-install:591
 msgid ""
-"Don't use sparse files for disks.  Note that this will be significantly "
-"slower for guest creation"
+"Specify storage with various options. Ex.\n"
+"--disk path=/my/existing/disk\n"
+"--disk path=/my/new/disk,size=5 (in gigabytes)\n"
+"--disk vol=poolname:volname,device=cdrom,bus=scsi,..."
 msgstr ""
-"ディスク用に疎らなファイルを使用しないでください。これはゲストの作成には著し"
-"く遅いことに注意して下さい"
 
-#: virt-install:432 virt-install.orig:432
+#: virt-install:596
 msgid "Don't set up any disks for the guest."
 msgstr "ゲスト用にディスクを設定しないでください。"
 
-#: virt-install:449 virt-install.orig:449
+#: virt-install:613
+msgid ""
+"Specify a network interface. Ex:\n"
+"--network bridge=mybr0\n"
+"--network network=my_libvirt_virtual_net\n"
+"--network network=mynet,model=virtio,mac=00:11..."
+msgstr ""
+
+#: virt-install:618
 #, fuzzy
 msgid "Don't create network interfaces for the guest."
 msgstr "ゲスト用にディスクを設定しないでください。"
 
-#: virt-install:463 virt-install.orig:463
+#: virt-install:632
+msgid "Specify video hardware type."
+msgstr ""
+
+#: virt-install:635
 msgid "Don't automatically try to connect to the guest console"
 msgstr "ゲストコンソールに自動的に接続しようとしないでください"
 
-#: virt-install:474 virt-install.orig:474
+#: virt-install:643
 msgid "Disables the automatic rebooting when the installation is complete."
 msgstr ""
 
-#: virt-install:477 virt-install.orig:477
+#: virt-install:646
 msgid "Time to wait (in minutes)"
 msgstr ""
 
-#: virt-install:479 virt-install.orig:479
+#: virt-install:648
 msgid "Forces 'yes' for any applicable prompts, terminates for all others"
 msgstr ""
 
-#: virt-install:483 virt-install.orig:483
-msgid ""
-"Request user input for ambiguous situations. Default is false, so will "
-"terminate if a prompt would typically be fired. "
-msgstr ""
-
-#: virt-install:503 virt-install.orig:503
+#: virt-install:671
 #, fuzzy
 msgid ""
 "Unable to connect to graphical console: virt-viewer not installed. Please "
@@ -1891,19 +2187,11 @@ msgstr ""
 "グラフィカルコンソールに接続できません; vncviewer がインストールされていませ"
 "ん。%(serv)s:%(port)d に接続してください"
 
-#: virt-install:536 virt-install.orig:536
-msgid "Can't do both --hvm and --paravirt"
-msgstr "--hvm と --paravirt の両方はできません"
-
-#: virt-install:548 virt-install.orig:548
-msgid "default"
-msgstr ""
-
-#: virt-install:570 virt-install.orig:570
+#: virt-install:713
 msgid "Can't use --pxe with --nonetworks"
 msgstr ""
 
-#: virt-install:671 virt-install.orig:671
+#: virt-install:818
 msgid ""
 "\n"
 "\n"
@@ -1913,7 +2201,7 @@ msgstr ""
 "\n"
 "インストールを開始しています..."
 
-#: virt-install:682 virt-install.orig:682
+#: virt-install:829
 #, python-format
 msgid ""
 "Domain installation does not appear to have been\n"
@@ -1926,23 +2214,23 @@ msgstr ""
 "でドメインを再起動することができます; そうでなければ\n"
 "インストールを再開してください。"
 
-#: virt-install:693 virt-install.orig:693
+#: virt-install:840
 #, fuzzy, python-format
 msgid ""
 "Guest installation complete... you can restart your domain\n"
 "by running 'virsh start %s'"
 msgstr "ゲストのインストールが完了しました... ゲストを再起動しています。"
 
-#: virt-install:697 virt-install.orig:697
+#: virt-install:844
 msgid "Guest installation complete... restarting guest."
 msgstr "ゲストのインストールが完了しました... ゲストを再起動しています。"
 
-#: virt-install:703 virt-install.orig:703
+#: virt-install:850
 #, fuzzy
 msgid "Guest install interrupted."
 msgstr "ゲストのインストールに失敗しました"
 
-#: virt-install:710 virt-install.orig:710
+#: virt-install:857
 #, python-format
 msgid ""
 "Domain installation may not have been\n"
@@ -1955,39 +2243,39 @@ msgstr ""
 "でドメインを再起動することができます; そうでなければ\n"
 "インストールを再開してください。"
 
-#: virt-install:736 virt-install.orig:736
+#: virt-install:883
 #, fuzzy
 msgid "Guest installation failed."
 msgstr "ゲストのインストールに失敗しました"
 
-#: virt-install:746 virt-install.orig:746
+#: virt-install:893
 #, python-format
 msgid "%d minutes "
 msgstr ""
 
-#: virt-install:748 virt-install.orig:748
+#: virt-install:895
 #, fuzzy, python-format
 msgid ""
-"Domain installation still in progress. Waiting %sfor domain to complete "
-"installation."
+"Domain installation still in progress. Waiting %sfor installation to "
+"complete."
 msgstr ""
 "ドメインのインストールは続いています。インストール処理を完結\n"
 "させるためにコンソールに再接続することができます。"
 
-#: virt-install:754 virt-install.orig:754
+#: virt-install:901
 msgid "Domain has shutdown. Continuing."
 msgstr ""
 
-#: virt-install:761 virt-install.orig:761
+#: virt-install:908
 #, python-format
 msgid "Could not lookup domain after install: %s"
 msgstr ""
 
-#: virt-install:768 virt-install.orig:768
+#: virt-install:915
 msgid "Installation has exceeded specified time limit. Exiting application."
 msgstr ""
 
-#: virt-install:772 virt-install.orig:772
+#: virt-install:921
 #, fuzzy
 msgid ""
 "Domain installation still in progress. You can reconnect to \n"
@@ -1996,6 +2284,73 @@ msgstr ""
 "ドメインのインストールは続いています。インストール処理を完結\n"
 "させるためにコンソールに再接続することができます。"
 
+#~ msgid "Unknown network type "
+#~ msgstr "不明なネットワークタイプ"
+
+#~ msgid "Need to pass equal numbers of networks & mac addresses"
+#~ msgstr "ネットワークと mac アドレスとは同じ数だけ渡す必要があります"
+
+#, fuzzy
+#~ msgid "Cannot clone remote VM storage."
+#~ msgstr "ストレージファイルを作成中..."
+
+#, fuzzy
+#~ msgid "Missing path to use as disk clone destination for '%s'"
+#~ msgstr "%s 用のディスクイメージを使用する新ファイルがありません"
+
+#, fuzzy
+#~ msgid "Could not determine storage type for '%s'"
+#~ msgstr "最大 vcpu 数を決定できません。32 を使います。"
+
+#~ msgid ""
+#~ "Bridge to connect guest NIC to; if none given, will try to determine the "
+#~ "default"
+#~ msgstr ""
+#~ "ゲストの NIC が接続されるブリッジ; 指定しなければデフォルトを決定しようと"
+#~ "します"
+
+#~ msgid ""
+#~ "Connect the guest to a virtual network, forwarding to the physical "
+#~ "network with NAT"
+#~ msgstr ""
+#~ "物理ネットワークに NAT でフォワーディングすることでゲストを仮想ネットワー"
+#~ "クに接続します"
+
+#~ msgid ""
+#~ "Fixed MAC address for the guest; if none or RANDOM is given a random "
+#~ "address will be used"
+#~ msgstr ""
+#~ "ゲスト用の固定 MAC アドレス; 何も指定しないか、 RANDOM が指定された場合、"
+#~ "ランダムなアドレスが使われます"
+
+#, fuzzy
+#~ msgid "Use kernel acceleration capabilities (kvm, kqemu, ...)"
+#~ msgstr "カーネル加速化機能を使用します"
+
+#~ msgid "File to use as the disk image"
+#~ msgstr "ディスクイメージとして使用するファイル"
+
+#~ msgid "Size of the disk image (if it doesn't exist) in gigabytes"
+#~ msgstr "(存在しなければ)ギガバイトでディスクイメージの大きさ"
+
+#~ msgid ""
+#~ "Don't use sparse files for disks.  Note that this will be significantly "
+#~ "slower for guest creation"
+#~ msgstr ""
+#~ "ディスク用に疎らなファイルを使用しないでください。これはゲストの作成には著"
+#~ "しく遅いことに注意して下さい"
+
+#~ msgid "ERROR: "
+#~ msgstr "エラー:"
+
+#, fuzzy
+#~ msgid "Do you really want to use the disk (yes or no)? "
+#~ msgstr "そのディスクを本当に使いたいのですか (yes または no)? "
+
+#, fuzzy
+#~ msgid " Do you really want to use the disk (yes or no)?"
+#~ msgstr "そのディスクを本当に使いたいのですか (yes または no)? "
+
 #~ msgid "Name or UUID of guest to clone is required"
 #~ msgstr "クローニングするゲストの名前か、 UUID が必要です"
 
@@ -2062,42 +2417,12 @@ msgstr ""
 #~ msgid "Verifying install location..."
 #~ msgstr "インストール場所を検証中..."
 
-#~ msgid ""
-#~ "Would you like a fully virtualized guest (yes or no)?  This will allow "
-#~ "you to run unmodified operating systems."
-#~ msgstr ""
-#~ "完全仮想化のゲストがいいですか (yes または no)? これは修正不要のオペレー"
-#~ "ティングシステムの実行を可能にします。"
-
-#, fuzzy
-#~ msgid "What would you like to use as the disk (file path)?"
-#~ msgstr "ディスク(パス)として何を使用したいですか?"
-
-#~ msgid ""
-#~ "Please enter the path to the file you would like to use for storage. It "
-#~ "will have size %sGB."
-#~ msgstr ""
-#~ "ストレージとして使用したいファイルのパスを入力してください。大きさは %sGB "
-#~ "になります。"
-
-#~ msgid "How large would you like the disk (%s) to be (in gigabytes)?"
-#~ msgstr "どの位の大きさのディスク (%s) にしたいですか(ギガバイト単位で)?"
-
-#~ msgid "What is the install location?"
-#~ msgstr "インストール場所は何ですか?"
-
 #~ msgid "What is the virtual CD image, CD device or install location?"
 #~ msgstr "仮想 CD イメージか、CD ドライブ、インストール場所は何ですか?"
 
 #~ msgid "File to use a virtual CD-ROM device for fully virtualized guests"
 #~ msgstr "完全仮想化ゲストで仮想 CD-ROM 装置として使用するファイル"
 
-#~ msgid "What is the name of your virtual machine?"
-#~ msgstr "仮想マシンの名前は何ですか?"
-
-#~ msgid "How much RAM should be allocated (in megabytes)?"
-#~ msgstr "どれだけの RAM を割り当てますか (メガバイト単位で)?"
-
 #~ msgid "How many VCPUs should be attached?"
 #~ msgstr "VCPU を何個接続しますか?"
 
@@ -2110,9 +2435,6 @@ msgstr ""
 #~ msgid "Can't do both SDL and nographics"
 #~ msgstr "SDL と nographics の両方はできません"
 
-#~ msgid "Would you like to enable graphics support? (yes or no)"
-#~ msgstr "グラフィックサポートを有効にしたいですか? (yes または no)"
-
 #, fuzzy
 #~ msgid "The specified path's root directory must exist."
 #~ msgstr "指定された媒体のパスは存在しません。"
diff --git a/po/pl.po b/po/pl.po
index 879575f..019208c 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -5,236 +5,291 @@ msgid ""
 msgstr ""
 "Project-Id-Version: pl\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-03-09 20:41-0400\n"
-"PO-Revision-Date: 2009-02-06 18:20+0100\n"
+"POT-Creation-Date: 2009-07-28 20:34-0400\n"
+"PO-Revision-Date: 2009-04-13 16:30+0200\n"
 "Last-Translator: Piotr Drąg <piotrdrag at gmail.com>\n"
 "Language-Team: Polish <pl at li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: virtinst/CapabilitiesParser.py:168
-#, fuzzy, python-format
+#: virtinst/CapabilitiesParser.py:172
+#, python-format
 msgid "No domains available for virt type '%(type)s', arch %(arch)s."
-msgstr "Brak dostępnych domen dla tego gościa."
+msgstr ""
+"Brak dostępnych domen dla typu wirtualizacji \"%(type)s\", architektury %"
+"(arch)s."
 
-#: virtinst/CapabilitiesParser.py:393
+#: virtinst/CapabilitiesParser.py:412
 #, python-format
 msgid "for arch '%s'"
 msgstr "dla architektury \"%s\""
 
-#: virtinst/CapabilitiesParser.py:397
-#, fuzzy, python-format
+#: virtinst/CapabilitiesParser.py:416
+#, python-format
 msgid "virtualization type '%s'"
-msgstr "Nieobsługiwany typ wirtualizacji \"%s\" "
+msgstr "typ wirtualizacji \"%s\""
 
-#: virtinst/CapabilitiesParser.py:399
-#, fuzzy
+#: virtinst/CapabilitiesParser.py:418
 msgid "any virtualization options"
-msgstr "Opcje typu wirtualizacji"
+msgstr "wszystkie opcje wirtualizacji"
 
-#: virtinst/CapabilitiesParser.py:401
+#: virtinst/CapabilitiesParser.py:420
 #, python-format
 msgid "Host does not support %(virttype)s %(arch)s"
-msgstr ""
+msgstr "Host nie obsługuje %(virttype)s %(arch)s"
 
-#: virtinst/CapabilitiesParser.py:414
+#: virtinst/CapabilitiesParser.py:433
 #, python-format
 msgid ""
 "Host does not support domain type '%(domain)s' for virtualization type '%"
 "(virttype)s' arch '%(arch)s'"
 msgstr ""
+"Host nie obsługuje typu domeny \"%(domain)s\" dla typu wirtualizacji \"%"
+"(virttype)s\" architektury \"%(arch)s\""
 
-#: virtinst/cli.py:117
+#: virtinst/cli.py:152
 msgid "Exiting at user request."
 msgstr "Zamykanie na żądanie użytkownika."
 
-#: virtinst/cli.py:122
+#: virtinst/cli.py:159
 msgid "Must be root to create Xen guests"
 msgstr "Musisz być rootem, aby tworzyć gości Xena"
 
-#: virtinst/cli.py:124
-msgid "Could not find usable default libvirt connection."
-msgstr "Nie można znaleźć używalnego domyślnego połączenia libvirt."
+#: virtinst/cli.py:297
+msgid "(use --prompt to run interactively)"
+msgstr "(użyj --prompt, aby uruchomić interaktywnie)"
 
-#: virtinst/cli.py:146
-#, python-format
-msgid "Force flag is set but input was required. Prompt was: %s"
-msgstr "Flaga wymuszenia jest ustawiona, ale prośba była wymagana. Było to: %s"
+#: virtinst/cli.py:317
+msgid " (Use --prompt or --force to override)"
+msgstr " (Użyj --prompt lub --force, aby zastąpić)"
 
-#: virtinst/cli.py:149
-#, python-format
-msgid "Prompting disabled, but input was requested. Prompt was: %s"
-msgstr "Wyłączono prośby, ale jedna była wymagana. Była to: %s"
+#: virtinst/cli.py:352
+msgid "Graphics Configuration"
+msgstr "Konfiguracja grafiki"
+
+#: virtinst/cli.py:354
+msgid "Use VNC for graphics support"
+msgstr "Użyj VNC dla obsługi grafiki"
+
+#: virtinst/cli.py:356
+msgid "Port to use for VNC"
+msgstr "Użyty port dla VNC"
+
+#: virtinst/cli.py:358
+msgid "Address to listen on for VNC connections."
+msgstr ""
+
+#: virtinst/cli.py:361
+#, fuzzy
+msgid "set up keymap for the VNC console"
+msgstr "ustaw mapę klawiatury dla graficznej konsoli"
+
+#: virtinst/cli.py:363
+msgid "Use SDL for graphics support"
+msgstr "Użyj SDL do obsługi grafiki"
+
+#: virtinst/cli.py:365
+msgid "Don't set up a graphical console for the guest."
+msgstr "Nie ustawiaj graficznej konsoli dla gościa."
+
+#: virtinst/cli.py:388
+msgid "A disk path must be specified."
+msgstr "Ścieżka dysku musi zostać podana."
 
-#: virtinst/cli.py:169
+#: virtinst/cli.py:390
+msgid "What would you like to use as the disk (file path)?"
+msgstr "Co chcesz użyć jako dysk (ścieżka do pliku)?"
+
+#: virtinst/cli.py:392
 #, python-format
 msgid ""
-"Prompting disabled, but yes/no was requested. Try --force to force 'yes' for "
-"such prompts. Prompt was: %s"
+"Please enter the path to the file you would like to use for storage. It will "
+"have size %sGB."
 msgstr ""
-"Wyłączono prośby, ale pytanie tak/nie zostało zażądane. Spróbuj --force, aby "
-"wymusić \"tak\" dla takich próśb. Prośba to: %s"
+"Podaj ścieżkę do pliku, którego chcesz użyć dla pamięci masowej. Będzie miał "
+"rozmiar %sGB."
+
+#: virtinst/cli.py:401
+msgid "A size must be specified for non-existent disks."
+msgstr "Rozmiar musi zostać podany dla nieistniejących dysków."
+
+#: virtinst/cli.py:403
+#, python-format
+msgid "How large would you like the disk (%s) to be (in gigabytes)?"
+msgstr "Jak duży ma być dysk %s (w gigabajtach)?"
+
+#: virtinst/cli.py:424 virt-install:274
+#, python-format
+msgid "Error with storage parameters: %s"
+msgstr "Błąd parametrów pamięci masowej: %s"
+
+#: virtinst/cli.py:426
+msgid "Do you really want to use this disk (yes or no)"
+msgstr "Na pewno chcesz użyć tego dysku (\"yes\" lub \"no\")"
+
+#: virtinst/cli.py:430
+#, python-format
+msgid "This will overwrite the existing path '%s'!\n"
+msgstr "To zastąpi istniejącą ścieżkę \"%s\"!\n"
+
+#: virtinst/cli.py:437
+#, python-format
+msgid "Disk %s is already in use by another guest!\n"
+msgstr "Dysk %s jest już używany przez innego gościa!\n"
 
-#: virtinst/cli.py:179 virt-clone:48 virt-clone:69 virt-clone:108
-msgid "ERROR: "
-msgstr "BŁĄD: "
+#: virtinst/cli.py:464
+msgid "What is the name of your virtual machine?"
+msgstr "Jaka jest nazwa maszyny wirtualnej?"
 
-#: virtinst/cli.py:189
+#: virtinst/cli.py:465
 msgid "A name is required for the virtual machine."
 msgstr "Nazwa maszyny wirtualnej jest wymagana."
 
-#: virtinst/cli.py:197
+#: virtinst/cli.py:472
+msgid "How much RAM should be allocated (in megabytes)?"
+msgstr "Ile pamięci RAM powinno zostać przydzielonych (w megabajtach)?"
+
+#: virtinst/cli.py:473
 msgid "Memory amount is required for the virtual machine."
 msgstr "Ilość pamięci dla maszyny wirtualnej jest wymagana."
 
-#: virtinst/cli.py:199
+#: virtinst/cli.py:477
 #, python-format
 msgid "Installs currently require %d megs of RAM."
-msgstr "Instalacja obecnie wymaga %d megabajtów RAM-u."
+msgstr "Instalacja obecnie wymaga %d megabajtów pamięci RAM."
 
-#: virtinst/cli.py:219
+#: virtinst/cli.py:498
 #, python-format
 msgid ""
 "You have asked for more virtual CPUs (%d) than there are physical CPUs (%d) "
-"on the host. This will work, but performance will be poor. Are you sure? "
-"(yes or no)"
+"on the host. This will work, but performance will be poor. "
 msgstr ""
 "Poprosiłeś o więcej procesorów wirtualnych (%d) niż jest procesorów "
 "fizycznych (%d) na hoście. To będzie działało, ale wydajność będzie słaba. "
-"Jesteś pewny? (\"yes\" lub \"no\")"
 
-#: virtinst/cli.py:276
-msgid "Unknown network type "
-msgstr "Nieznany typ sieci "
+#: virtinst/cli.py:501
+msgid "Are you sure? (yes or no)"
+msgstr "Jesteś pewny? (\"yes\" lub \"no\")"
+
+#: virtinst/cli.py:612
+#, fuzzy, python-format
+msgid "Unknown network option '%s'"
+msgstr "Nieznany typ sieci %s"
 
-#: virtinst/cli.py:293
+#: virtinst/cli.py:630
 msgid "Cannot mix both --bridge and --network arguments"
 msgstr "Nie można mieszać parametrów --bridge i --network"
 
-#: virtinst/cli.py:310
-msgid "Need to pass equal numbers of networks & mac addresses"
-msgstr "Należy podać równą liczbę sieci i adresów MAC"
+#: virtinst/cli.py:645
+#, fuzzy
+msgid "Cannot pass more mac addresses than networks."
+msgstr "Nie można używać --mac razem z --nonetworks"
 
-#: virtinst/cli.py:332
+#: virtinst/cli.py:672
 msgid "Can't specify more than one of VNC, SDL, or --nographics"
 msgstr "Nie można podać więcej niż jedno z VNC, SDL lub --nographics"
 
-#: virtinst/cli.py:376 virtinst/cli.py:381 virt-install:320 virt-install:325
-#: virt-install.orig:320 virt-install.orig:325
+#: virtinst/cli.py:700
+#, python-format
+msgid "Didn't match keymap '%s' in keytable!"
+msgstr "Nie pasuje do mapy klawiszy \"%s\" w tablicy klawiszy!"
+
+#: virtinst/cli.py:731 virtinst/cli.py:736
 #, python-format
 msgid "%s option requires an argument"
 msgstr "Opcja %s wymaga parametru"
 
-#: virtinst/CloneManager.py:54
-#, fuzzy
+#: virtinst/CloneManager.py:109
 msgid "Connection must be a 'virConnect' instance."
-msgstr "\"conn\" musi być virConnect."
+msgstr "Połączenie musi być instancją \"virConnect\"."
 
-#: virtinst/CloneManager.py:102
-#, fuzzy
+#: virtinst/CloneManager.py:162
 msgid "Original xml must be a string."
-msgstr "Wariant systemu operacyjnego musi być łańcuchem."
+msgstr "Oryginalny XML musi być łańcuchem."
 
-#: virtinst/CloneManager.py:114
+#: virtinst/CloneManager.py:177
 #, python-format
 msgid "Invalid name for new guest: %s"
 msgstr "Nieprawidłowa nazwa nowego gościa: %s"
 
-#: virtinst/CloneManager.py:119
-#, fuzzy, python-format
+#: virtinst/CloneManager.py:182
+#, python-format
 msgid "Domain name '%s' already in use."
-msgstr "Domena o nazwie %s już istnieje!"
+msgstr "Nazwa domeny \"%s\" jest już używana."
 
-#: virtinst/CloneManager.py:131
+#: virtinst/CloneManager.py:195
 #, python-format
 msgid "Invalid uuid for new guest: %s"
 msgstr "Nieprawidłowy UUID nowego gościa: %s"
 
-#: virtinst/CloneManager.py:134
-#, fuzzy, python-format
+#: virtinst/CloneManager.py:198
+#, python-format
 msgid "UUID '%s' is in use by another guest."
-msgstr "Dysk %s jest już używany przez innego gościa!\n"
+msgstr "UUID \"%s\" jest używane przez innego gościa."
 
-#: virtinst/CloneManager.py:149
-#, fuzzy, python-format
+#: virtinst/CloneManager.py:226
+#, python-format
 msgid "Could not use path '%s' for cloning: %s"
-msgstr "Nie można uruchomić puli pamięci masowej: %s"
+msgstr "Nie można użyć ścieżki \"%s\" do sklonowania: %s"
 
-#: virtinst/CloneManager.py:235
-#, fuzzy
-msgid "Original guest name or xml is required."
-msgstr "Nazwa hosta jest wymagana"
+#: virtinst/CloneManager.py:356
+msgid "Cloning policy must be a list of rules."
+msgstr ""
 
-#: virtinst/CloneManager.py:253
-#, fuzzy
-msgid "Cannot clone remote VM storage."
-msgstr "Połączenie nie obsługuje zdalnej pamięci masowej."
+#: virtinst/CloneManager.py:373
+msgid "Original guest name or xml is required."
+msgstr "Oryginalna nazwa gościa lub XML są wymagane."
 
-#: virtinst/CloneManager.py:261
+#: virtinst/CloneManager.py:391
 msgid "Domain with devices to clone must be paused or shutoff."
 msgstr ""
+"Domena z urządzeniami do sklonowania musi być wstrzymana lub wyłączona."
 
-#: virtinst/CloneManager.py:304
-#, fuzzy, python-format
-msgid "Missing path to use as disk clone destination for '%s'"
-msgstr "Brak nowego pliku do użycia obrazu dysku dla %s"
+#: virtinst/CloneManager.py:437
+#, python-format
+msgid ""
+"More disks to clone that new paths specified. (%(passed)d specified, %(need)"
+"d needed"
+msgstr ""
 
-#: virtinst/CloneManager.py:403
-#, fuzzy, python-format
+#: virtinst/CloneManager.py:557
+#, python-format
 msgid "Disk '%s' does not exist."
-msgstr "Dysk systemowy %s nie istnieje"
+msgstr "Dysk \"%s\" nie istnieje."
 
-#: virtinst/CloneManager.py:406
-#, fuzzy, python-format
+#: virtinst/CloneManager.py:568
+#, python-format
 msgid "Could not determine original disk information: %s"
-msgstr "Nie można określić formatu wejściowego \"%s\": %s"
+msgstr "Nie można ustalić informacji o oryginalnym dysku: %s"
 
-#: virtinst/CloneManager.py:474
-#, fuzzy, python-format
-msgid "Domain '%s' was not found."
-msgstr "Nie znaleziono domeny %s"
-
-#: virtinst/CloneManager.py:539
-msgid "copying to an existing vdisk is not supported"
-msgstr "kopiowanie do istniejącego dysku wirtualnego nie jest obsługiwane"
-
-#: virtinst/CloneManager.py:547
-#, fuzzy, python-format
-msgid "Could not determine storage type for '%s'"
-msgstr "Nie można określić puli pamięci masowej: %s"
-
-#: virtinst/CloneManager.py:574
+#: virtinst/CloneManager.py:613
 #, python-format
-msgid "Cloning %(srcfile)s"
-msgstr ""
-
-#: virtinst/CloneManager.py:581
-msgid "failed to clone disk"
-msgstr "sklonowanie dysku nie powiodło się"
+msgid "Domain '%s' was not found."
+msgstr "Nie znaleziono domeny \"%s\"."
 
-#: virtinst/DistroInstaller.py:51
+#: virtinst/DistroInstaller.py:57
 msgid "Invalid NFS format: No path specified."
 msgstr "Nieprawidłowy format NFS: nie podano ścieżki."
 
-#: virtinst/DistroInstaller.py:93
+#: virtinst/DistroInstaller.py:101
 #, python-format
 msgid "Invalid 'location' type %s."
 msgstr "Nieprawidłowy typ \"location\" %s."
 
-#: virtinst/DistroInstaller.py:99
+#: virtinst/DistroInstaller.py:107
 msgid "'conn' must be specified if 'location' is a storage tuple."
 msgstr ""
 "\"conn\" musi zostać podane, jeśli \"location\" jest krotką pamięci masowej."
 
-#: virtinst/DistroInstaller.py:135
-#, fuzzy, python-format
+#: virtinst/DistroInstaller.py:145
+#, python-format
 msgid "Checking installer location failed: Could not find media '%s'."
 msgstr ""
-"Sprawdzenie położenia instalatora nie powiodło się. Nie można znaleźć "
-"ścieżki \"%s\":"
+"Sprawdzenie położenia instalatora nie powiodło się: nie można znaleźć "
+"nośnika \"%s\"."
 
-#: virtinst/DistroInstaller.py:138
+#: virtinst/DistroInstaller.py:148
 msgid ""
 "Install media location must be an NFS, HTTP or FTP network install source, "
 "or an existing file/device"
@@ -242,74 +297,74 @@ msgstr ""
 "Położenie nośnika instalacji musi być źródłem instalacji sieciowej NFS, HTTP "
 "lub FTP, albo istniejącym plikiem/urządzeniem"
 
-#: virtinst/DistroInstaller.py:145
+#: virtinst/DistroInstaller.py:155
 msgid "Privilege is required for NFS installations"
 msgstr "Uprawnienie jest wymagane do instalacji NFS"
 
-#: virtinst/Guest.py:100
+#: virtinst/Guest.py:108
 msgid "Unable to connect to hypervisor, aborting installation!"
 msgstr "Nie można połączyć się z nadzorcą, przerywanie instalacji!"
 
-#: virtinst/Guest.py:118
+#: virtinst/Guest.py:126
 msgid "Guest"
-msgstr ""
+msgstr "Gość"
 
-#: virtinst/Guest.py:125
-#, fuzzy, python-format
+#: virtinst/Guest.py:133
+#, python-format
 msgid "Guest name '%s' is already in use."
-msgstr "Nazwa \"%s\" jest już używana przez inną pulę."
+msgstr "Nazwa gościa \"%s\" jest już używana."
 
-#: virtinst/Guest.py:133
+#: virtinst/Guest.py:141
 msgid "Memory value must be an integer greater than 0"
 msgstr "Wartość pamięci mus być całkowita i większa niż zero"
 
-#: virtinst/Guest.py:145
+#: virtinst/Guest.py:153
 msgid "Max Memory value must be an integer greater than 0"
 msgstr "Wartość maksymalnej pamięci mus być całkowita i większa niż zero"
 
-#: virtinst/Guest.py:164
+#: virtinst/Guest.py:172
 msgid "Number of vcpus must be a postive integer."
 msgstr "Liczba wirtualnych procesorów mus być dodatnią liczbą całkowitą."
 
-#: virtinst/Guest.py:166
+#: virtinst/Guest.py:174
 #, python-format
 msgid "Number of vcpus must be no greater than %d for this vm type."
 msgstr ""
 "Liczba wirtualnych procesorów mus być większa od %d dla tego typu maszyny "
 "wirtualnej."
 
-#: virtinst/Guest.py:176
+#: virtinst/Guest.py:184
 msgid "cpuset must be string"
 msgstr "cpuset musi być łańcuchem"
 
-#: virtinst/Guest.py:178
+#: virtinst/Guest.py:186
 msgid "cpuset can only contain numeric, ',', or '-' characters"
 msgstr "cpuset może zawierać tylko znaki numeryczne, \",\" lub \"-\""
 
-#: virtinst/Guest.py:186
+#: virtinst/Guest.py:194
 msgid "cpuset contains invalid format."
 msgstr "cpuset zawiera nieprawidłowy format."
 
-#: virtinst/Guest.py:188 virtinst/Guest.py:192
+#: virtinst/Guest.py:196 virtinst/Guest.py:202
 msgid "cpuset's pCPU numbers must be less than pCPUs."
 msgstr ""
 "Liczba fizycznych procesorów cpuset musi być mniejsza niż procesorów "
 "fizycznych."
 
-#: virtinst/Guest.py:212
+#: virtinst/Guest.py:222
 msgid "OS type must be a string."
 msgstr "Typ systemu operacyjnego musi być łańcuchem."
 
-#: virtinst/Guest.py:224
+#: virtinst/Guest.py:234
 #, python-format
 msgid "OS type '%s' does not exist in our dictionary"
 msgstr "Typ systemu operacyjnego \"%s\" nie istnieje w słowniku"
 
-#: virtinst/Guest.py:232
+#: virtinst/Guest.py:242
 msgid "OS variant must be a string."
 msgstr "Wariant systemu operacyjnego musi być łańcuchem."
 
-#: virtinst/Guest.py:238
+#: virtinst/Guest.py:248
 #, python-format
 msgid ""
 "OS variant '%(var)s; does not exist in our dictionary for OS type '%(ty)s'"
@@ -317,50 +372,55 @@ msgstr ""
 "Wariant systemu operacyjnego \"%(var)s\" nie istnieje w słowniku dla typu "
 "systemu operacyjnego \"%(ty)s\""
 
-#: virtinst/Guest.py:250
+#: virtinst/Guest.py:260
 #, python-format
 msgid "Unknown OS variant '%s'"
 msgstr "Nieznany wariant systemu operacyjnego \"%s\""
 
-#: virtinst/Guest.py:291
+#: virtinst/Guest.py:301
 msgid "Must specify whether graphics are enabled"
-msgstr "Musisz określić, czy grafika ma być włączona"
+msgstr "Musisz określić, czy grafika ma zostać włączona"
 
-#: virtinst/Guest.py:314
+#: virtinst/Guest.py:324
 msgid "Graphics enabled must be True or False"
 msgstr "Włączenie grafiki musi być \"True\" lub \"False\""
 
-#: virtinst/Guest.py:373
+#: virtinst/Guest.py:383
 msgid "You must specify a valid ISO or CD-ROM location for the installation"
-msgstr "Musisz podać prawidłowe położenie ISO lub CD-ROM-u dla instalacji"
+msgstr "Musisz podać prawidłowe położenie ISO lub CD-ROM dla instalacji"
 
-#: virtinst/Guest.py:376
+#: virtinst/Guest.py:386
 msgid "The specified media path does not exist."
 msgstr "Podana ścieżka do nośnika nie istnieje."
 
-#: virtinst/Guest.py:573
+#: virtinst/Guest.py:415
+#, fuzzy
+msgid "Must pass a VirtualDevice instance."
+msgstr "\"nodedev\" musi być instancją USBDevice."
+
+#: virtinst/Guest.py:660
 msgid "Unable to start domain for guest, aborting installation!"
 msgstr "Nie można uruchomić domeny dla gościa, przerywanie instalacji!"
 
-#: virtinst/Guest.py:623
+#: virtinst/Guest.py:716
 #, python-format
 msgid "Could not remove old vm '%s': %s"
 msgstr "Nie można usunąć starej maszyny wirtualnej \"%s\": %s"
 
-#: virtinst/Guest.py:625
+#: virtinst/Guest.py:718
 #, python-format
 msgid "Domain named %s already exists!"
 msgstr "Domena o nazwie %s już istnieje!"
 
-#: virtinst/Guest.py:632
+#: virtinst/Guest.py:725
 msgid "Creating domain..."
 msgstr "Tworzenie domeny..."
 
-#: virtinst/Guest.py:635
+#: virtinst/Guest.py:728
 msgid "Unable to create domain for the guest, aborting installation!"
 msgstr "Nie można utworzyć domeny dla gościa, przerywanie instalacji!"
 
-#: virtinst/Guest.py:643
+#: virtinst/Guest.py:736
 msgid ""
 "It appears that your installation has crashed.  You should be able to find "
 "more information in the logs"
@@ -368,14 +428,14 @@ msgstr ""
 "Wygląda na to, że instalacja zawiesiła się. Powinieneś znaleźć więcej "
 "informacji w dziennikach"
 
-#: virtinst/Guest.py:677
+#: virtinst/Guest.py:770
 msgid ""
 "Domain has not existed.  You should be able to find more information in the "
 "logs"
 msgstr ""
 "Domena nie istnieje. Powinieneś znaleźć więcej informacji w dziennikach"
 
-#: virtinst/Guest.py:679
+#: virtinst/Guest.py:772
 msgid ""
 "Domain has not run yet.  You should be able to find more information in the "
 "logs"
@@ -383,23 +443,18 @@ msgstr ""
 "Domena nie została jeszcze uruchomiona. Powinieneś znaleźć więcej informacji "
 "w dziennikach"
 
-#: virtinst/Guest.py:696
+#: virtinst/Guest.py:789
 msgid "Domain has already been started!"
 msgstr "Domena została już uruchomiona!"
 
-#: virtinst/Guest.py:707
+#: virtinst/Guest.py:809
 msgid "The UUID you entered is already in use by another guest!"
 msgstr "Podany UUID jest już używany przez innego gościa!"
 
-#: virtinst/Guest.py:710
+#: virtinst/Guest.py:812
 msgid "Name and memory must be specified for all guests!"
 msgstr "Nazwa i pamięć muszą zostać podane dla wszystkich gości!"
 
-#: virtinst/Guest.py:745
-#, python-format
-msgid "Invalid dictionary entry for device '%s %s'"
-msgstr "Nieprawidłowy wpis w słowniku dla urządzenia \"%s %s\""
-
 #: virtinst/ImageFetcher.py:86
 #, python-format
 msgid "Retrieving file %s..."
@@ -416,19 +471,17 @@ msgid "Opening URL %s failed."
 msgstr "Otwieranie adresu URL %s nie powiodło się."
 
 #: virtinst/ImageFetcher.py:187
-#, fuzzy, python-format
+#, python-format
 msgid "Mounting location '%s' failed"
-msgstr "Montowanie położenia %s nie powiodło się"
+msgstr "Montowanie położenia \"%s\" nie powiodło się"
 
 #: virtinst/ImageManager.py:47
-#, fuzzy
 msgid "'capabilities' must be a Capabilities instance."
-msgstr "\"pool\" musi być virStoragePool."
+msgstr "\"capabilities\" muszą być instancją Możliwości."
 
 #: virtinst/ImageManager.py:51
-#, fuzzy
 msgid "'conn' or 'capabilities' must be specified."
-msgstr "Pula lub pool_name musi zostać podana."
+msgstr "\"conn\" lub \"capabilities\" muszą zostać podane."
 
 #: virtinst/ImageManager.py:58
 msgid "Could not find suitable boot descriptor for this host"
@@ -436,7 +489,7 @@ msgstr "Nie można znaleźć odpowiedniego deskryptora startowego dla tego hosta
 
 #: virtinst/ImageManager.py:63
 msgid "boot_index out of range."
-msgstr ""
+msgstr "boot_index jest poza zakresem."
 
 #: virtinst/ImageManager.py:70
 #, python-format
@@ -467,7 +520,7 @@ msgstr "Pamięć musi być całkowita, ale wynosi \"%s\""
 msgid "The format for disk %s must be one of %s"
 msgstr "Format dysku %s musi być jednym z %s"
 
-#: virtinst/ImageParser.py:248
+#: virtinst/ImageParser.py:263
 #, python-format
 msgid "Checking disk signature for %s"
 msgstr "Sprawdzanie podpisu dysku \"%s\""
@@ -488,350 +541,369 @@ msgstr "Element root nie jest \"image\""
 
 #: virtinst/ImportInstaller.py:37
 msgid "A disk device must be specified."
-msgstr ""
+msgstr "Urządzenie dysku musi zostać podane."
 
-#: virtinst/Installer.py:151
+#: virtinst/Installer.py:156
 msgid "Guest.cdrom must be a boolean type"
 msgstr "Guest.cdrom musi być typem zmiennej logicznej"
 
-#: virtinst/Installer.py:168 virtinst/Installer.py:173
-#: virtinst/Installer.py:177
+#: virtinst/Installer.py:173 virtinst/Installer.py:178
+#: virtinst/Installer.py:182
 msgid "Must pass both a kernel and initrd"
 msgstr "Musisz podać zarówno jądro, jak i initrd"
 
-#: virtinst/Installer.py:180
+#: virtinst/Installer.py:185
 msgid "Kernel and initrd must be specified by a list, dict, or tuple."
 msgstr ""
 "Jądro i initrd muszą zostać podane w formie listy, słownika lub krotki."
 
-#: virtinst/Installer.py:335
-#, fuzzy
+#: virtinst/Installer.py:340
 msgid "A connection must be specified."
-msgstr "Położenie do zainstalowania musi zostać podane"
+msgstr "Położenie musi zostać podane."
 
-#: virtinst/Installer.py:353
-#, fuzzy, python-format
+#: virtinst/Installer.py:358
+#, python-format
 msgid "No 'Guest' class for virtualization type '%s'"
-msgstr "Nieobsługiwany typ wirtualizacji \"%s\" "
+msgstr "Brak klasy \"gość\" dla typu wirtualizacji \"%s\""
 
 #: virtinst/LiveCDInstaller.py:66
 msgid "CDROM media must be specified for the live CD installer."
-msgstr "Nośnik CD-ROM musi zostać podany dla instalatora LiveCD."
+msgstr "Nośnik CD-ROM musi zostać podany dla instalatora Live CD."
 
-#: virtinst/NodeDeviceParser.py:114
+#: virtinst/NodeDeviceParser.py:118
 msgid "System"
-msgstr ""
+msgstr "System"
 
-#: virtinst/NodeDeviceParser.py:146
+#: virtinst/NodeDeviceParser.py:151
 #, python-format
 msgid "Interface %s"
-msgstr ""
+msgstr "Interfejs %s"
 
-#: virtinst/NodeDeviceParser.py:364 virtinst/NodeDeviceParser.py:392
-#: virtinst/util.py:531 virtinst/VirtualDevice.py:58
+#: virtinst/NodeDeviceParser.py:378 virtinst/NodeDeviceParser.py:406
+#: virtinst/util.py:501 virtinst/VirtualDevice.py:86
 msgid "'conn' must be a virConnect instance."
-msgstr "\"conn\" musi być virConnect."
+msgstr "\"conn\" musi być instancją virConnect."
 
-#: virtinst/NodeDeviceParser.py:411
-#, fuzzy
+#: virtinst/NodeDeviceParser.py:426
 msgid "Connection does not support host device enumeration."
-msgstr "Połączenie nie obsługuje zarządzania pamięcią masową."
+msgstr "Połączenie nie obsługuje wyliczania urządzenia hosta."
 
-#: virtinst/NodeDeviceParser.py:487
-#, fuzzy, python-format
+#: virtinst/NodeDeviceParser.py:502
+#, python-format
 msgid "Unknown host device capability '%s'."
-msgstr "Nieznany typ urządzenia \"%s\""
+msgstr "Nieznana możliwość urządzenia hosta \"%s\"."
+
+#: virtinst/osdict.py:129
+#, python-format
+msgid "Invalid dictionary entry for device '%s %s'"
+msgstr "Nieprawidłowy wpis w słowniku dla urządzenia \"%s %s\""
 
-#: virtinst/OSDistro.py:99
+#: virtinst/OSDistro.py:102
 #, python-format
 msgid "Could not find an installable distribution at '%s'"
 msgstr "Nie można znaleźć dystrybucji do zainstalowania w \"%s\""
 
-#: virtinst/OSDistro.py:109
+#: virtinst/OSDistro.py:112
 msgid "Invalid install location: "
 msgstr "Nieprawidłowe położenie instalacji: "
 
-#: virtinst/OSDistro.py:230
+#: virtinst/OSDistro.py:237
 #, python-format
 msgid "Couldn't find %(type)s kernel for %(distro)s tree."
 msgstr "Nie można znaleźć jądra %(type)s dla drzewa %(distro)s."
 
-#: virtinst/OSDistro.py:244
+#: virtinst/OSDistro.py:252
 #, python-format
 msgid "Could not find boot.iso in %s tree."
 msgstr "Nie można znaleźć boot.iso w drzewie %s."
 
-#: virtinst/OSDistro.py:383
+#: virtinst/OSDistro.py:413
 #, python-format
 msgid "Could not find a kernel path for virt type '%s'"
 msgstr "Nie można znaleźć ścieżki do jądra dla typu wirtualizacji \"%s\""
 
-#: virtinst/OSDistro.py:392
+#: virtinst/OSDistro.py:422
 msgid "Could not find a boot iso path for this tree."
 msgstr "Nie można znaleźć ścieżki do startowego ISO dla tego drzewa."
 
-#: virtinst/OSDistro.py:646
+#: virtinst/OSDistro.py:676
 msgid "Unable to determine kernel RPM path"
-msgstr "Nie można określić ścieżko do pakietu RPM jądra"
+msgstr "Nie można ustalić ścieżki do pakietu RPM jądra"
 
-#: virtinst/OSDistro.py:648
+#: virtinst/OSDistro.py:678
 msgid "Unable to determine install-initrd RPM path"
-msgstr "Nie można określić ścieżko do pakietu RPM install-initrd"
+msgstr "Nie można ustalić ścieżki do pakietu RPM install-initrd"
 
-#: virtinst/OSDistro.py:659
+#: virtinst/OSDistro.py:689
 msgid "Building initrd"
 msgstr "Budowanie initrd"
 
-#: virtinst/OSDistro.py:1021
+#: virtinst/OSDistro.py:1051
 #, python-format
 msgid "Solaris miniroot not found at %s"
 msgstr "Nie znaleziono miniroota Solarisa w %s"
 
-#: virtinst/OSDistro.py:1056
+#: virtinst/OSDistro.py:1089
 #, python-format
 msgid "OpenSolaris PV kernel not found at %s"
 msgstr "Nie znaleziono jądra PV OpenSolarisa w %s"
 
-#: virtinst/OSDistro.py:1066
-#, python-format
-msgid "OpenSolaris microroot not found at %s"
-msgstr "Nie znaleziono microroota OpenSolarisa w %s"
-
-#: virtinst/Storage.py:85
+#: virtinst/Storage.py:81
 #, python-format
 msgid "Unknown storage object type: %s"
 msgstr "Nieznany typ obiektu pamięci masowej: %s"
 
-#: virtinst/Storage.py:108
+#: virtinst/Storage.py:104
 msgid "'conn' must be a libvirt connection object."
 msgstr "\"conn\" musi być obiektem połączenia libvirt."
 
-#: virtinst/Storage.py:110
+#: virtinst/Storage.py:106
 msgid "Passed connection is not libvirt storage capable"
 msgstr "Przekazane połączenie nie jest zgodne z pamięcią masową libvirt"
 
-#: virtinst/Storage.py:120
-#, fuzzy
+#: virtinst/Storage.py:116
 msgid "Storage object"
-msgstr "Nazwa obiektu pamięci podręcznej."
+msgstr "Obiekt pamięci masowej"
 
-#: virtinst/Storage.py:125
+#: virtinst/Storage.py:121
 msgid "Name for the storage object."
 msgstr "Nazwa obiektu pamięci podręcznej."
 
-#: virtinst/Storage.py:132
+#: virtinst/Storage.py:128
 msgid "Permissions must be passed as a dict object"
 msgstr "Uprawnienia muszą zostać przekazane jako obiekt słownika"
 
-#: virtinst/Storage.py:135
+#: virtinst/Storage.py:131
 msgid "Permissions must contain 'mode', 'owner', 'group' and 'label' keys."
 msgstr ""
 "Uprawnienia muszą zawierać klucze \"tryb\", \"właściciel\", \"grupa\" i "
 "\"etykieta\"."
 
-#: virtinst/Storage.py:142
+#: virtinst/Storage.py:138
 #, python-format
 msgid "'%s' is not an absolute path."
 msgstr "\"%s\" nie jest ścieżką absolutną."
 
-#: virtinst/Storage.py:203
+#: virtinst/Storage.py:199
 msgid "Filesystem Directory"
 msgstr "Folder systemu plików"
 
-#: virtinst/Storage.py:204
+#: virtinst/Storage.py:200
 msgid "Pre-Formatted Block Device"
 msgstr "Wcześniej sformatowane urządzenie blokowe"
 
-#: virtinst/Storage.py:205
+#: virtinst/Storage.py:201
 msgid "Network Exported Directory"
 msgstr "Folder wyeksportowany przez sieć"
 
-#: virtinst/Storage.py:206
+#: virtinst/Storage.py:202
 msgid "LVM Volume Group"
 msgstr "Grupa woluminów LVM"
 
-#: virtinst/Storage.py:207
+#: virtinst/Storage.py:203
 msgid "Physical Disk Device"
 msgstr "Fizyczne urządzenie dyskowe"
 
-#: virtinst/Storage.py:208
+#: virtinst/Storage.py:204
 msgid "iSCSI Target"
 msgstr "Cel iSCSI"
 
-#: virtinst/Storage.py:218 virtinst/Storage.py:255
+#: virtinst/Storage.py:214 virtinst/Storage.py:251
 #, python-format
 msgid "Unknown storage pool type: %s"
 msgstr "Nieznany typ puli pamięci masowej: %s"
 
-#: virtinst/Storage.py:277
+#: virtinst/Storage.py:273
 msgid "Storage device type the pool will represent."
 msgstr "Typ urządzenia pamięci masowej, które pula będzie reprezentowała."
 
-#: virtinst/Storage.py:296
+#: virtinst/Storage.py:292
 msgid "Host name must be a string"
 msgstr "Nazwa hosta musi być łańcuchem"
 
-#: virtinst/Storage.py:315
+#: virtinst/Storage.py:311
 #, python-format
 msgid "Name '%s' already in use by another pool."
 msgstr "Nazwa \"%s\" jest już używana przez inną pulę."
 
-#: virtinst/Storage.py:353
+#: virtinst/Storage.py:349
 #, python-format
 msgid "Could not define storage pool: %s"
 msgstr "Nie można określić puli pamięci masowej: %s"
 
-#: virtinst/Storage.py:363
+#: virtinst/Storage.py:359
 #, python-format
 msgid "Could not build storage pool: %s"
 msgstr "Nie można zbudować puli pamięci masowej: %s"
 
-#: virtinst/Storage.py:372
+#: virtinst/Storage.py:368
 #, python-format
 msgid "Could not start storage pool: %s"
 msgstr "Nie można uruchomić puli pamięci masowej: %s"
 
-#: virtinst/Storage.py:399
+#: virtinst/Storage.py:395
 msgid "Directory to use for the storage pool."
 msgstr "Folder użyty dla puli pamięci masowej."
 
-#: virtinst/Storage.py:435
+#: virtinst/Storage.py:431
 msgid "The existing device to mount for the pool."
 msgstr "Istniejące urządzenie do zamontowania dla puli."
 
-#: virtinst/Storage.py:438 virtinst/Storage.py:496
+#: virtinst/Storage.py:434 virtinst/Storage.py:492
 msgid "Location to mount the source device."
 msgstr "Położenie do zamontowania urządzenia źródłowego."
 
-#: virtinst/Storage.py:456
+#: virtinst/Storage.py:452
 #, python-format
 msgid "Unknown Filesystem format: %s"
 msgstr "Nieznany format systemu plików: %s"
 
-#: virtinst/Storage.py:459
+#: virtinst/Storage.py:455
 msgid "Filesystem type of the source device."
 msgstr "Typ systemu plików urządzenia źródłowego."
 
-#: virtinst/Storage.py:472
+#: virtinst/Storage.py:468
 msgid "Device path is required"
 msgstr "Ścieżka do urządzenia jest wymagana"
 
-#: virtinst/Storage.py:491 virtinst/Storage.py:665
+#: virtinst/Storage.py:487 virtinst/Storage.py:694
 msgid "Path on the host that is being shared."
 msgstr "Współdzielona ścieżka na hoście."
 
-#: virtinst/Storage.py:493 virtinst/Storage.py:637
+#: virtinst/Storage.py:489 virtinst/Storage.py:666
 msgid "Name of the host sharing the storage."
 msgstr "Nazwa hosta współdzielącego pamięć podręczną."
 
-#: virtinst/Storage.py:514
+#: virtinst/Storage.py:510
 #, python-format
 msgid "Unknown Network Filesystem format: %s"
 msgstr "Nieznany format sieciowego systemu plików: %s"
 
-#: virtinst/Storage.py:517
+#: virtinst/Storage.py:513
 msgid "Type of network filesystem."
 msgstr "Typ sieciowego systemu plików."
 
-#: virtinst/Storage.py:529 virtinst/Storage.py:676
+#: virtinst/Storage.py:525 virtinst/Storage.py:705
 msgid "Hostname is required"
 msgstr "Nazwa hosta jest wymagana"
 
-#: virtinst/Storage.py:531 virtinst/Storage.py:614 virtinst/Storage.py:678
+#: virtinst/Storage.py:527 virtinst/Storage.py:643 virtinst/Storage.py:707
 msgid "Host path is required"
 msgstr "Ścieżka do hosta jest wymagana"
 
-#: virtinst/Storage.py:549
+#: virtinst/Storage.py:545
 msgid "Location of the existing LVM volume group."
 msgstr "Położenie istniejącej grupy woluminów LVM."
 
-#: virtinst/Storage.py:576
+#: virtinst/Storage.py:570
+msgid "Optional device(s) to build new LVM volume on."
+msgstr ""
+
+#: virtinst/Storage.py:593
+#, fuzzy
+msgid "Must explicitly specify source path if building' pool"
+msgstr ""
+"Należy jawnie podać format dysku, jeśli urządzenie dyskowe jest formatowane."
+
+#: virtinst/Storage.py:609
 msgid "Path to the existing disk device."
 msgstr "Ścieżka do istniejącego urządzenia dysku."
 
-#: virtinst/Storage.py:579 virtinst/Storage.py:640
+#: virtinst/Storage.py:612 virtinst/Storage.py:669
 msgid "Root location for identifying new storage volumes."
 msgstr "Położenie roota do identyfikowania nowych woluminów pamięci masowej."
 
-#: virtinst/Storage.py:585
-msgid "Disk volume creation is not implemented."
-msgstr "Tworzenie woluminów dysku nie jest zaimplementowane."
-
-#: virtinst/Storage.py:600
+#: virtinst/Storage.py:629
 #, python-format
 msgid "Unknown Disk format: %s"
 msgstr "Nieznany format dysku: %s"
 
-#: virtinst/Storage.py:603
+#: virtinst/Storage.py:632
 msgid "Format of the source device's partition table."
 msgstr "Format tablicy partycji urządzenia źródłowego."
 
-#: virtinst/Storage.py:626
+#: virtinst/Storage.py:655
 msgid "Must explicitly specify disk format if formatting disk device."
 msgstr ""
 "Należy jawnie podać format dysku, jeśli urządzenie dyskowe jest formatowane."
 
-#: virtinst/Storage.py:644
+#: virtinst/Storage.py:673
 msgid "iSCSI volume creation is not implemented."
 msgstr "Tworzenie woluminów iSCSI nie jest zaimplementowane."
 
-#: virtinst/Storage.py:694
+#: virtinst/Storage.py:734
 msgid "One of pool or pool_name must be specified."
 msgstr "Pula lub pool_name musi zostać podana."
 
-#: virtinst/Storage.py:697 virtinst/Storage.py:770
+#: virtinst/Storage.py:737 virtinst/Storage.py:806
 msgid "'conn' must be specified with 'pool_name'"
 msgstr "\"conn\" musi zostać podane z \"pool_name\""
 
-#: virtinst/Storage.py:756
-msgid "Default volume target path range exceeded."
-msgstr "Przekroczono domyślny zakres ścieżki docelowej woluminu."
-
-#: virtinst/Storage.py:766
+#: virtinst/Storage.py:802
 msgid "Must specify pool_object or pool_name"
 msgstr "Należy podać pool_object lub pool_name"
 
-#: virtinst/Storage.py:772
+#: virtinst/Storage.py:808
 msgid "Connection does not support storage management."
 msgstr "Połączenie nie obsługuje zarządzania pamięcią masową."
 
-#: virtinst/Storage.py:777
+#: virtinst/Storage.py:813
 #, python-format
 msgid "Couldn't find storage pool '%s': %s"
 msgstr "Nie można znaleźć puli pamięci masowej \"%s\": %s"
 
-#: virtinst/Storage.py:781
+#: virtinst/Storage.py:817
 msgid "pool_object must be a virStoragePool"
 msgstr "pool_object musi być virStoragePool"
 
-#: virtinst/Storage.py:792
+#: virtinst/Storage.py:831
 msgid "Capacity must be a positive number"
 msgstr "Pojemność musi być liczbą dodatnią"
 
-#: virtinst/Storage.py:813
+#: virtinst/Storage.py:852
 msgid "Allocation must be a non-negative number"
 msgstr "Przydział musi być liczbą nieujemną"
 
-#: virtinst/Storage.py:833
+#: virtinst/Storage.py:872
 msgid "'pool' must be a virStoragePool instance."
-msgstr "\"pool\" musi być virStoragePool."
+msgstr "\"pool\" musi być instancją virStoragePool."
 
-#: virtinst/Storage.py:835
+#: virtinst/Storage.py:874
 #, python-format
 msgid "pool '%s' must be active."
 msgstr "pula \"%s\" musi być aktywna."
 
-#: virtinst/Storage.py:844
+#: virtinst/Storage.py:886 virtinst/Storage.py:1120
+#, fuzzy
+msgid "input_vol must be a virStorageVol"
+msgstr "pool_object musi być virStoragePool"
+
+#: virtinst/Storage.py:888
+msgid ""
+"Creating storage from an existing volume is not supported by this libvirt "
+"version."
+msgstr ""
+
+#: virtinst/Storage.py:892
+msgid "virStorageVolume pointer to clone/use as input."
+msgstr ""
+
+#: virtinst/Storage.py:900
 #, python-format
 msgid "'%s' is not a valid format."
 msgstr "\"%s\" nie jest w prawidłowym formacie."
 
-#: virtinst/Storage.py:854
+#: virtinst/Storage.py:910
 #, python-format
 msgid "Name '%s' already in use by another volume."
 msgstr "Nazwa \"%s\" jest już używana przez inny wolumin."
 
-#: virtinst/Storage.py:924
+#: virtinst/Storage.py:963
+#, python-format
+msgid "Allocating '%s'"
+msgstr ""
+
+#: virtinst/Storage.py:1023
 #, python-format
 msgid ""
 "There is not enough free space on the storage pool to create the volume. (%d "
@@ -840,7 +912,7 @@ msgstr ""
 "Nie ma wystarczającej ilości wolnego miejsca w puli pamięci masowej, aby "
 "utworzyć wolumin (%d M żądanego przydziału > %d M dostępne)."
 
-#: virtinst/Storage.py:930
+#: virtinst/Storage.py:1029
 #, python-format
 msgid ""
 "The requested volume capacity will exceed the available pool space when the "
@@ -849,11 +921,11 @@ msgstr ""
 "Zażądana pojemność woluminu przekroczy dostępną przestrzeń puli, kiedy "
 "wolumin jest w pełni przydzielony (%d M żądanego przydziału > %d M dostępne)."
 
-#: virtinst/_util.py:111
+#: virtinst/_util.py:128
 msgid "UUID must be a string."
 msgstr "UUID musi być łańcuchem."
 
-#: virtinst/_util.py:119
+#: virtinst/_util.py:136
 msgid ""
 "UUID must be a 32-digit hexadecimal number. It may take the form XXXXXXXX-"
 "XXXX-XXXX-XXXX-XXXXXXXXXXXX or may omit hyphens altogether."
@@ -861,192 +933,368 @@ msgstr ""
 "UUID musi być 32 znakową liczbą szesnastkową. Może być w formie XXXXXXXX-"
 "XXXX-XXXX-XXXX-XXXXXXXXXXXX lub może być bez myślników."
 
-#: virtinst/_util.py:130
-#, fuzzy, python-format
+#: virtinst/_util.py:147
+#, python-format
 msgid "%s name must be a string between 0 and 50 characters"
-msgstr ""
-"Nazwa systemu musi być łańcuchem nie większym niż zero i nie może zawierać "
-"więcej niż 50 znaków"
+msgstr "%s musi być łańcuchem między zero a 50 znakami"
 
-#: virtinst/_util.py:133
-#, fuzzy, python-format
+#: virtinst/_util.py:150
+#, python-format
 msgid "%s name can not be only numeric characters"
-msgstr "Nazwa systemu nie może zawierać tylko znaków numerycznych"
+msgstr "Nazwa %s nie może zawierać tylko znaków numerycznych"
 
-#: virtinst/_util.py:136
-#, fuzzy, python-format
+#: virtinst/_util.py:153
+#, python-format
 msgid "%s name can only contain alphanumeric, '_', '.', or '-' characters"
 msgstr ""
-"Nazwa systemu może zawierać tylko znaki alfanumeryczne oraz \"_\", \".\", \":"
-"\", \"+\" lub \"-\""
+"Nazwa %s może zawierać tylko znaki alfanumeryczne, \"_\", \".\" lub \"-\""
+
+#: virtinst/_util.py:276
+#, fuzzy
+msgid "Name generation range exceeded."
+msgstr "Przekroczono domyślny zakres ścieżki docelowej woluminu."
 
-#: virtinst/util.py:67
+#: virtinst/util.py:69
 #, python-format
 msgid "Invalid line length while parsing %s."
 msgstr "Nieprawidłowa długość wiersza podczas analizowania %s."
 
-#: virtinst/util.py:68
+#: virtinst/util.py:70
 #, python-format
 msgid "Defaulting bridge to xenbr%d"
 msgstr "Domyślny mostek to xenbr%d"
 
-#: virtinst/util.py:568
-#, fuzzy
+#: virtinst/util.py:538 virtconv/parsers/ovf.py:160
 msgid "'path' or 'func' is required."
-msgstr "Ścieżka do hosta jest wymagana"
+msgstr "\"path\" lub \"func\" są wymagane."
 
-#: virtinst/VirtualAudio.py:38
+#: virtinst/VirtualAudio.py:40
 #, python-format
 msgid "'model' must be a string,  was '%s'."
-msgstr "\"model\" musi być łańcuchem, był \"%s\""
+msgstr "\"model\" musi być łańcuchem, był \"%s\"."
 
-#: virtinst/VirtualAudio.py:41
+#: virtinst/VirtualAudio.py:43
 #, python-format
 msgid "Unsupported sound model '%s'"
 msgstr "Nieobsługiwany model dźwięku \"%s\""
 
-#: virtinst/VirtualDevice.py:43
+#: virtinst/VirtualCharDevice.py:64
+msgid "Psuedo TTY"
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:66
+#, fuzzy
+msgid "Physical host character device"
+msgstr "Fizyczne urządzenie dyskowe"
+
+#: virtinst/VirtualCharDevice.py:68
+msgid "Standard input/output"
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:70
+msgid "Named pipe"
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:72
+msgid "Output to a file"
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:74
+msgid "Virtual console"
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:76
+msgid "Null device"
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:78
+msgid "TCP net console"
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:80
+msgid "UDP net console"
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:82
+msgid "Unix socket"
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:94
+msgid "Client mode."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:96
+msgid "Server mode."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:139
+#, fuzzy, python-format
+msgid "Unknown character device type '%s'."
+msgstr "Nieznany typ urządzenia \"%s\""
+
+#: virtinst/VirtualCharDevice.py:147 virtinst/VirtualCharDevice.py:157
+#, fuzzy, python-format
+msgid "Unknown character device type '%s'"
+msgstr "Nieznany typ urządzenia \"%s\""
+
+#: virtinst/VirtualCharDevice.py:173
+msgid "Method used to expose character device in the host."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:186
+#, fuzzy, python-format
+msgid "Unknown character mode '%s'."
+msgstr "Nieznany tryb pamięci podręcznej \"%s\""
+
+#: virtinst/VirtualCharDevice.py:213
+#, fuzzy, python-format
+msgid "Unknown protocol '%s'."
+msgstr "Nieznana opcja --disk \"%s\"."
+
+#: virtinst/VirtualCharDevice.py:232
+#, python-format
+msgid "A source path is required for character device type '%s'"
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:282
+#, fuzzy
+msgid "Host character device to attach to guest."
+msgstr "Typ urządzenia węzła \"%s\" nie może być podłączane do gościa."
+
+#: virtinst/VirtualCharDevice.py:288
+msgid "Named pipe to use for input and output."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:294
+msgid "File path to record device output."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:302 virtinst/VirtualCharDevice.py:312
+msgid "Target connect/listen mode."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:305
+msgid "Unix socket path."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:315
+msgid "Address to connect/listen to."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:318
+msgid "Port on target host to connect/listen to."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:321
+msgid "Format used when sending data."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:325
+#, fuzzy
+msgid "A host and port must be specified."
+msgstr "Ścieżka dysku musi zostać podana."
+
+#: virtinst/VirtualCharDevice.py:337
+msgid "Host address to bind to."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:340
+msgid "Host port to bind to."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:343
+msgid "Host address to send output to."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:346
+msgid "Host port to send output to."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:351
+#, fuzzy
+msgid "A connection port must be specified."
+msgstr "Położenie musi zostać podane."
+
+#: virtinst/VirtualDevice.py:63
+msgid "Virtual device type must be set in subclass."
+msgstr ""
+
+#: virtinst/VirtualDevice.py:66
+#, fuzzy, python-format
+msgid "Unknown virtual device type '%s'."
+msgstr "Nieznany typ urządzenia \"%s\""
+
+#: virtinst/VirtualDevice.py:71
 msgid "'conn' must be a virConnect instance"
-msgstr "\"conn\" musi być virConnect"
+msgstr "\"conn\" musi być instancją virConnect"
 
-#: virtinst/VirtualDevice.py:67
+#: virtinst/VirtualDevice.py:104
 #, python-format
 msgid "'%s' must be True or False"
 msgstr "\"%s\" musi być \"True\" lub \"False\""
 
-#: virtinst/VirtualDevice.py:71
+#: virtinst/VirtualDevice.py:108
 #, python-format
 msgid "'%s' must be a string, not '%s'."
 msgstr "\"%s\" musi być łańcuchem, nie \"%s\"."
 
-#: virtinst/VirtualDisk.py:205
+#: virtinst/VirtualDisk.py:262
+#, fuzzy, python-format
+msgid "Error validating clone path: %s"
+msgstr "Błąd podczas tworzenia dysku CD-ROM: %s"
+
+#: virtinst/VirtualDisk.py:271
 msgid "'size' must be a number greater than 0."
 msgstr "\"size\" musi być liczbą większa niż zero."
 
-#: virtinst/VirtualDisk.py:215
+#: virtinst/VirtualDisk.py:281
 #, python-format
 msgid "Unknown storage type '%s'"
 msgstr "Nieznany typ pamięci masowej \"%s\""
 
-#: virtinst/VirtualDisk.py:224
+#: virtinst/VirtualDisk.py:290
 #, python-format
 msgid "Unknown device type '%s'"
 msgstr "Nieznany typ urządzenia \"%s\""
 
-#: virtinst/VirtualDisk.py:258
+#: virtinst/VirtualDisk.py:324
 msgid "vol_object must be a virStorageVol instance"
-msgstr "vol_object musi być virStorageVol"
+msgstr "vol_object musi być instancją virStorageVol"
 
-#: virtinst/VirtualDisk.py:266
+#: virtinst/VirtualDisk.py:332
 msgid "vol_install must be a StorageVolume  instance."
-msgstr "vol_install musi być StorageVolume."
+msgstr "vol_install musi być instancją StorageVolume."
 
-#: virtinst/VirtualDisk.py:292
-#, fuzzy, python-format
+#: virtinst/VirtualDisk.py:358
+#, python-format
 msgid "Unknown cache mode '%s'"
-msgstr "Nieznany typ urządzenia \"%s\""
+msgstr "Nieznany tryb pamięci podręcznej \"%s\""
 
-#: virtinst/VirtualDisk.py:353
+#: virtinst/VirtualDisk.py:373
+#, fuzzy, python-format
+msgid "SELinux label '%s' is not valid."
+msgstr "\"%s\" nie jest w prawidłowym formacie."
+
+#: virtinst/VirtualDisk.py:433
 msgid "Unknown storage volume type."
 msgstr "Nieznany typ woluminu pamięci masowej."
 
-#: virtinst/VirtualDisk.py:372
+#: virtinst/VirtualDisk.py:449
 #, python-format
 msgid "Passed type '%s' does not match detected storage type '%s'"
 msgstr ""
 "Przekazany typ \"%s\" nie zgadza się z wykrytym typem pamięci masowej \"%s\""
 
-#: virtinst/VirtualDisk.py:382
+#: virtinst/VirtualDisk.py:504
 msgid "volName must be a tuple of the form ('poolname', 'volname')"
 msgstr "volName musi być krotką formy (\"poolname\", \"volname\")"
 
-#: virtinst/VirtualDisk.py:385
+#: virtinst/VirtualDisk.py:507
 msgid "'volName' requires a passed connection."
 msgstr "\"volName\" wymaga przekazania połączenia."
 
-#: virtinst/VirtualDisk.py:387
+#: virtinst/VirtualDisk.py:509
 msgid "Connection does not support storage lookup."
 msgstr "Połączenie nie obsługuje wyszukiwania pamięci masowej."
 
-#: virtinst/VirtualDisk.py:393
+#: virtinst/VirtualDisk.py:515
 #, python-format
 msgid "Couldn't lookup volume object: %s"
 msgstr "Nie można wyszukać obiektu woluminu: %s"
 
-#: virtinst/VirtualDisk.py:436
+#: virtinst/VirtualDisk.py:540
+#, python-format
+msgid "Device type '%s' requires a path"
+msgstr "Typ urządzenia \"%s\" wymaga ścieżki"
+
+#: virtinst/VirtualDisk.py:583
 #, python-format
 msgid "Size must be specified for non existent volume path '%s'"
 msgstr ""
 "Rozmiar musi zostać podany dla nieistniejącej ścieżki do woluminu \"%s\""
 
-#: virtinst/VirtualDisk.py:459
+#: virtinst/VirtualDisk.py:603
 #, python-format
 msgid ""
 "Cannot use storage '%(path)s': '%(rootdir)s' is not managed on the remote "
 "host."
 msgstr ""
+"Nie można użyć pamięci podręcznej \"%(path)s\": \"%(rootdir)s\" nie jest "
+"zarządzane na zdalnym hoście."
 
-#: virtinst/VirtualDisk.py:464
+#: virtinst/VirtualDisk.py:608
 #, python-format
 msgid "Cannot use storage %(path)s: %(err)s"
-msgstr ""
+msgstr "Nie można użyć pamięci podręcznej %(path)s: %(err)s"
 
-#: virtinst/VirtualDisk.py:517
+#: virtinst/VirtualDisk.py:686
 msgid "Connection doesn't support remote storage."
 msgstr "Połączenie nie obsługuje zdalnej pamięci masowej."
 
-#: virtinst/VirtualDisk.py:534
-#, python-format
-msgid "Device type '%s' requires a path"
-msgstr "Typ urządzenia \"%s\" wymaga ścieżki"
-
-#: virtinst/VirtualDisk.py:549
+#: virtinst/VirtualDisk.py:689
 msgid "Must specify libvirt managed storage if on a remote connection"
-msgstr "Należy podać "
+msgstr ""
+"Należy podać pamięć masową zarządzaną przez libvirt w przypadku zdalnego "
+"połączenia"
 
-#: virtinst/VirtualDisk.py:558
+#: virtinst/VirtualDisk.py:726
 #, python-format
 msgid "The path '%s' must be a file or a device, not a directory"
 msgstr "Ścieżka \"%s\" musi być plikiem lub urządzeniem, a nie folderem"
 
-#: virtinst/VirtualDisk.py:568
+#: virtinst/VirtualDisk.py:735
 #, python-format
 msgid "Cannot create storage for %s device."
 msgstr "Nie można utworzyć pamięci masowej dla urządzenia %s."
 
-#: virtinst/VirtualDisk.py:573
-msgid "Local block device path must exist."
+#: virtinst/VirtualDisk.py:740
+#, fuzzy, python-format
+msgid "Local block device path '%s' must exist."
 msgstr "Ścieżka do urządzenia blokowego musi istnieć."
 
-#: virtinst/VirtualDisk.py:581
+#: virtinst/VirtualDisk.py:749
 #, python-format
 msgid "size is required for non-existent disk '%s'"
 msgstr "rozmiar jest wymagany dla nieistniejącego dysku \"%s\""
 
-#: virtinst/VirtualDisk.py:584
+#: virtinst/VirtualDisk.py:752
 #, python-format
 msgid "No write access to directory '%s'"
 msgstr "Brak dostępu do zapisu folderu \"%s\""
 
-#: virtinst/VirtualDisk.py:620
-msgid "Creating storage file..."
+#: virtinst/VirtualDisk.py:777
+#, python-format
+msgid "Cloning %(srcfile)s"
+msgstr "Klonowanie %(srcfile)s"
+
+#: virtinst/VirtualDisk.py:780
+#, fuzzy, python-format
+msgid "Creating storage file %s"
 msgstr "Tworzenie pliku pamięci masowej..."
 
-#: virtinst/VirtualDisk.py:626
+#: virtinst/VirtualDisk.py:793
+msgid "copying to an existing vdisk is not supported"
+msgstr "kopiowanie do istniejącego dysku wirtualnego nie jest obsługiwane"
+
+#: virtinst/VirtualDisk.py:796
+msgid "failed to clone disk"
+msgstr "sklonowanie dysku nie powiodło się"
+
+#: virtinst/VirtualDisk.py:807
 #, python-format
 msgid "Error creating vdisk %s"
 msgstr "Błąd podczas tworzenia dysku wirtualnego %s"
 
-#: virtinst/VirtualDisk.py:647
+#: virtinst/VirtualDisk.py:832
 #, python-format
 msgid "Error creating diskimage %s: %s"
 msgstr "Błąd podczas tworzenia obrazu dysku %s: %s"
 
-#: virtinst/VirtualDisk.py:669
+#: virtinst/VirtualDisk.py:932
 msgid "'disknode' or self.target must be set!"
 msgstr "\"disknode\" lub self.target musi zostać ustawione!"
 
-#: virtinst/VirtualDisk.py:741
+#: virtinst/VirtualDisk.py:1003
 msgid ""
 "The filesystem will not have enough free space to fully allocate the sparse "
 "file when the guest is running."
@@ -1054,137 +1302,162 @@ msgstr ""
 "System plików nie będzie miał wystarczającej ilości wolnego miejsca, aby w "
 "pełni przydzielić plik sparse, kiedy gość jest uruchomiony."
 
-#: virtinst/VirtualDisk.py:746
+#: virtinst/VirtualDisk.py:1008
 msgid "There is not enough free space to create the disk."
 msgstr "Nie ma wystarczającej ilości wolnego miejsca na dysku."
 
-#: virtinst/VirtualDisk.py:750
+#: virtinst/VirtualDisk.py:1012
 #, python-format
 msgid " %d M requested > %d M available"
 msgstr " %d M zażądano > %d M dostępne"
 
-#: virtinst/VirtualDisk.py:840
+#: virtinst/VirtualDisk.py:1175
 msgid "Cannot determine device bus/type."
-msgstr "Nie można określić magistrali/typu urządzenia."
+msgstr "Nie można ustalić magistrali/typu urządzenia."
 
-#: virtinst/VirtualDisk.py:847
+#: virtinst/VirtualDisk.py:1182
 msgid "IDE CDROM must use 'hdc', but target in use."
 msgstr "CD-ROM IDE musi używać \"hdc\", ale cel jest używany."
 
-#: virtinst/VirtualDisk.py:863
+#: virtinst/VirtualDisk.py:1198
 #, python-format
 msgid "No more space for disks of type '%s'"
 msgstr "Brak przestrzeni dla dysków typu \"%s\""
 
-#: virtinst/VirtualGraphics.py:38
+#: virtinst/VirtualGraphics.py:40
 msgid "Unknown graphics type"
 msgstr "Nieznany typ grafiki"
 
-#: virtinst/VirtualGraphics.py:61
+#: virtinst/VirtualGraphics.py:63
 msgid "Keymap must be a string"
 msgstr "Mapa klawiatury musi być łańcuchem"
 
-#: virtinst/VirtualGraphics.py:63
+#: virtinst/VirtualGraphics.py:65
 msgid "Keymap must be less than 16 characters"
 msgstr "Mapa klawiatury musi być mniejsza niż 16 znaków"
 
-#: virtinst/VirtualGraphics.py:65
+#: virtinst/VirtualGraphics.py:67
 msgid "Keymap can only contain alphanumeric, '_', or '-' characters"
 msgstr ""
 "Mapa klawiatury może zawierać tylko znaki alfanumeryczne, \"_\" lub \"-\""
 
-#: virtinst/VirtualGraphics.py:76
+#: virtinst/VirtualGraphics.py:78
 msgid ""
 "VNC port must be a number between 5900 and 65535, or -1 for auto allocation"
 msgstr ""
 "Port VNC musi być liczbą między 5900 a 65535 lub -1 dla automatycznego "
 "przydzielenia"
 
-#: virtinst/VirtualHostDevice.py:39
+#: virtinst/VirtualHostDevice.py:43
 msgid "'name' or 'nodedev' required."
-msgstr ""
+msgstr "\"name\" lub \"nodedev\" jest wymagane."
 
-#: virtinst/VirtualHostDevice.py:58
+#: virtinst/VirtualHostDevice.py:62
 #, python-format
 msgid "Node device type '%s' cannot be attached to  guest."
-msgstr ""
+msgstr "Typ urządzenia węzła \"%s\" nie może być podłączane do gościa."
 
-#: virtinst/VirtualHostDevice.py:124
-#, fuzzy
+#: virtinst/VirtualHostDevice.py:130
 msgid "'nodedev' must be a USBDevice instance."
-msgstr "\"conn\" musi być virConnect."
+msgstr "\"nodedev\" musi być instancją USBDevice."
 
-#: virtinst/VirtualHostDevice.py:140
+#: virtinst/VirtualHostDevice.py:146
 msgid "'vendor' and 'product', or 'bus' and  'device' are required."
-msgstr ""
+msgstr "\"vendor\" i \"product\" albo \"bus\" i \"device\" są wymagane."
 
-#: virtinst/VirtualHostDevice.py:173
-#, fuzzy
+#: virtinst/VirtualHostDevice.py:179
 msgid "'nodedev' must be a PCIDevice instance."
-msgstr "\"conn\" musi być virConnect."
+msgstr "\"nodedev\" musi być instancją PCIDevice."
 
-#: virtinst/VirtualHostDevice.py:182
+#: virtinst/VirtualHostDevice.py:188
 msgid "'domain', 'bus', 'slot', and 'function' must be specified."
-msgstr ""
+msgstr "\"domain\", \"bus\", \"slot\" i \"function\" muszą zostać podane."
 
-#: virtinst/VirtualHostDevice.py:207
+#: virtinst/VirtualHostDevice.py:215
 #, python-format
 msgid "Could not detach PCI device: %s"
-msgstr ""
+msgstr "Nie można odłączyć urządzenia PCI: %s"
 
-#: virtinst/VirtualNetworkInterface.py:40
+#: virtinst/VirtualInputDevice.py:46
+#, fuzzy, python-format
+msgid "Unknown input type '%s'."
+msgstr "Nieznany typ urządzenia \"%s\""
+
+#: virtinst/VirtualInputDevice.py:54
+#, fuzzy, python-format
+msgid "Unknown input bus '%s'."
+msgstr "Nieznany wariant systemu operacyjnego \"%s\""
+
+#: virtinst/VirtualNetworkInterface.py:45
 #, fuzzy
-msgid "MAC address must be a string."
-msgstr "Typ systemu operacyjnego musi być łańcuchem."
+msgid "Shared physical device"
+msgstr "Fizyczne urządzenie dyskowe"
 
-#: virtinst/VirtualNetworkInterface.py:46
-msgid "MAC address must be of the format AA:BB:CC:DD:EE:FF"
-msgstr "Adres MAC mus być w formacie AA:BB:CC:DD:EE:FF"
+#: virtinst/VirtualNetworkInterface.py:47
+msgid "Virtual networking"
+msgstr ""
+
+#: virtinst/VirtualNetworkInterface.py:49
+msgid "Usermode networking"
+msgstr ""
+
+#: virtinst/VirtualNetworkInterface.py:51
+#, fuzzy, python-format
+msgid "Unknown network type '%s'"
+msgstr "Nieznany typ sieci %s"
 
-#: virtinst/VirtualNetworkInterface.py:57
+#: virtinst/VirtualNetworkInterface.py:72
 msgid "A network name was not provided"
 msgstr "Nie podano nazwy sieci"
 
-#: virtinst/VirtualNetworkInterface.py:63
+#: virtinst/VirtualNetworkInterface.py:78
 #, python-format
 msgid "Unknown network type %s"
 msgstr "Nieznany typ sieci %s"
 
-#: virtinst/VirtualNetworkInterface.py:79
+#: virtinst/VirtualNetworkInterface.py:90
+msgid "MAC address must be a string."
+msgstr "Adres MAC musi być łańcuchem."
+
+#: virtinst/VirtualNetworkInterface.py:94
+msgid "MAC address must be of the format AA:BB:CC:DD:EE:FF"
+msgstr "Adres MAC mus być w formacie AA:BB:CC:DD:EE:FF"
+
+#: virtinst/VirtualNetworkInterface.py:113
 #, python-format
 msgid "Virtual network '%s' does not exist: %s"
 msgstr "Sieć wirtualna \"%s\" nie istnieje: %s"
 
-#: virtinst/VirtualNetworkInterface.py:82
+#: virtinst/VirtualNetworkInterface.py:116
 #, python-format
 msgid "Virtual network '%s' has not been started."
 msgstr "Sieć wirtualna \"%s\" nie została uruchomiona."
 
-#: virtinst/VirtualNetworkInterface.py:105
+#: virtinst/VirtualNetworkInterface.py:139
 msgid ""
 "The MAC address you entered is already in use by another active virtual "
 "machine."
 msgstr ""
 "Podany adres MAC jest już używany przez inną aktywną maszynę wirtualną."
 
-#: virtinst/VirtualNetworkInterface.py:108
+#: virtinst/VirtualNetworkInterface.py:142
 msgid ""
 "The MAC address you entered conflicts with a device on the physical host."
 msgstr "Podany adres MAC jest w konflikcie z urządzeniem na hoście fizycznym."
 
-#: virtinst/VirtualNetworkInterface.py:110
+#: virtinst/VirtualNetworkInterface.py:144
 msgid ""
 "The MAC address you entered is already in use by another inactive virtual "
 "machine."
 msgstr ""
 "Podany adres MAC jest już używany przez inną nieaktywną maszynę wirtualną."
 
-#: virtconv/diskcfg.py:242
+#: virtconv/diskcfg.py:251
 #, python-format
 msgid "Cannot convert to disk format %s"
 msgstr "Nie można przekonwertować na format dysku %s"
 
-#: virtconv/diskcfg.py:255
+#: virtconv/diskcfg.py:264
 #, python-format
 msgid "Cannot convert disk with absolute path %s"
 msgstr "Nie można przekonwertować dysku za pomocą ścieżki absolutnej %s"
@@ -1210,6 +1483,28 @@ msgstr "Architektura maszyny wirtualnej nie została ustawiona"
 msgid "Disk %s:%s storage does not exist"
 msgstr "Dysk pamięci podręcznej %s:%s nie istnieje"
 
+#: virtconv/parsers/ovf.py:212
+#, python-format
+msgid "Didn't find parent bus for disk '%s'"
+msgstr ""
+
+#: virtconv/parsers/ovf.py:226 virtconv/parsers/ovf.py:242
+#, fuzzy, python-format
+msgid "Unknown reference id '%s' for path %s."
+msgstr "Nieznany format dysku: %s"
+
+#: virtconv/parsers/ovf.py:235
+#, fuzzy, python-format
+msgid "Unknown storage path type %s."
+msgstr "Nieznany typ puli pamięci masowej: %s"
+
+#: virtconv/parsers/ovf.py:396
+#, python-format
+msgid ""
+"OVF section '%s' is listed as required, but parser doesn't know how to "
+"handle it."
+msgstr ""
+
 #: virtconv/parsers/virtimage.py:212
 #, python-format
 msgid "Couldn't import file '%s': %s"
@@ -1222,7 +1517,7 @@ msgstr "Nie określono Nazwy w \"%s\""
 
 #: virtconv/parsers/virtimage.py:238
 msgid "Unable to determine disk format"
-msgstr "Nie można określić formatu dysku"
+msgstr "Nie można ustalić formatu dysku"
 
 #: virtconv/parsers/virtimage.py:265
 msgid "VM must have a memory setting"
@@ -1238,74 +1533,67 @@ msgstr "Błąd składni w wierszu %d: %s"
 msgid "No displayName defined in \"%s\""
 msgstr "Nie określono wyświetlanej Nazwy w \"%s\""
 
-#: virt-clone:43
+#: virt-clone:47
 msgid "What is the name for the cloned virtual machine?"
 msgstr "Jak jest nazwa sklonowanej maszyny wirtualnej?"
 
-#: virt-clone:61
-#, fuzzy
-msgid "What is the name of the original virtual machine?"
-msgstr "Jaka jest nazwa lub UUID oryginalnej maszyny wirtualnej?"
+#: virt-clone:48
+msgid "A name is required for the new virtual machine."
+msgstr "Nazwa nowej maszyny wirtualnej jest wymagana."
 
-#: virt-clone:102
-#, fuzzy, python-format
-msgid "What would you like to use as the cloned disk (file path) for '%s'?"
-msgstr "Czy chcesz użyć jako sklonowany dysk (ścieżka do pliku)?"
-
-#: virt-clone:113
-#, python-format
-msgid "This will overwrite the existing path '%s'!\n"
-msgstr "To zastąpi istniejącą ścieżkę \"%s\"!\n"
+#: virt-clone:65
+msgid "What is the name of the original virtual machine?"
+msgstr "Jaka jest nazwa oryginalnej maszyny wirtualnej?"
 
-#: virt-clone:115
-msgid "Do you really want to use this disk (yes or no)?"
-msgstr "Na pewno chcesz użyć tego dysku (\"yes\" lub \"no\")?"
+#: virt-clone:66
+msgid "An original machine name or xml file is required."
+msgstr "Oryginalna nazwa maszyny lub plik XML są wymagane."
 
-#: virt-clone:120 virt-install:206 virt-install.orig:206
+#: virt-clone:112
 #, python-format
-msgid "Disk %s is already in use by another guest!\n"
-msgstr "Dysk %s jest już używany przez innego gościa!\n"
-
-#: virt-clone:121 virt-install:207 virt-install.orig:207
-msgid "Do you really want to use the disk (yes or no)? "
-msgstr "Na pewno chcesz użyć dysku (\"yes\" lub \"no\")?"
+msgid "What would you like to use as the cloned disk (file path) for '%s'?"
+msgstr "Co chcesz użyć jako sklonowany dysk (ścieżka do pliku) dla \"%s\"?"
 
-#: virt-clone:148 virt-image:88 virt-install:334 virt-install.orig:334
+#: virt-clone:134 virt-image:78 virt-install:499
 msgid "Connect to hypervisor with URI"
 msgstr "Połącz się z nadzorcą za pomocą URI"
 
-#: virt-clone:151 virt-image:91 virt-install:337 virt-install.orig:337
+#: virt-clone:137 virt-image:81 virt-install:502
 msgid "General Options"
 msgstr "Ogólne opcje"
 
-#: virt-clone:154
-#, fuzzy
+#: virt-clone:140
 msgid "Name of the original guest; The status must be shut off or paused."
-msgstr "Nazwa lub UUID oryginalnego gościa; stan musi być wyłączony"
+msgstr "Nazwa oryginalnego gościa; stan musi być wyłączony lub wstrzymany."
 
-#: virt-clone:159
-#, fuzzy
+#: virt-clone:145
 msgid "XML file to use as the original guest."
-msgstr "Użycie obrazu dysku nie powiodło się"
+msgstr "Plik XML do użycia jako oryginalny gość."
+
+#: virt-clone:147
+msgid ""
+"Auto generate clone name and storage paths from the original guest "
+"configuration."
+msgstr ""
 
-#: virt-clone:162
+#: virt-clone:151
 msgid "Name for the new guest"
 msgstr "Nazwa nowego gościa"
 
-#: virt-clone:166
+#: virt-clone:155
 msgid "New UUID for the clone guest; Default is a randomly generated UUID"
 msgstr ""
 "Nowy UUID dla sklonowanego gościa; domyślnie jest to losowo utworzony UUID"
 
-#: virt-clone:170 virt-install:415 virt-install.orig:415
+#: virt-clone:159 virt-install:588
 msgid "Storage Configuration"
 msgstr "Konfiguracja pamięci masowej"
 
-#: virt-clone:174
+#: virt-clone:163
 msgid "New file to use as the disk image for the new guest"
 msgstr "Nowy plik do użycia jako obraz dysku dla nowego gościa"
 
-#: virt-clone:179
+#: virt-clone:168
 msgid ""
 "Force to copy devices (eg, if 'hdc' is a readonly cdrom device, --force-"
 "copy=hdc)"
@@ -1313,19 +1601,19 @@ msgstr ""
 "Wymuś skopiowanie urządzeń (np. jeśli \"hdc\" jest urządzeniem CD-ROM tylko "
 "do odczytu użyj --force-copy=hdc)"
 
-#: virt-clone:183
+#: virt-clone:172
 msgid "Do not use a sparse file for the clone's disk image"
 msgstr "Nie używaj plików sparse dla obrazu dysku klona"
 
-#: virt-clone:187
+#: virt-clone:176
 msgid "Preserve a new file to use as the disk image for the new guest"
 msgstr "Zachowaj nowy plik do użycia jako obraz dysku dla nowego gościa"
 
-#: virt-clone:191 virt-image:128 virt-install:435 virt-install.orig:435
+#: virt-clone:180 virt-image:118 virt-install:610
 msgid "Networking Configuration"
 msgstr "Konfiguracja sieci"
 
-#: virt-clone:195
+#: virt-clone:184
 msgid ""
 "New fixed MAC address for the clone guest. Default is a randomly generated "
 "MAC"
@@ -1333,16 +1621,20 @@ msgstr ""
 "Nowy stały adres MAC dla sklonowanego gościa. Domyślnie jest to losowo "
 "utworzony MAC"
 
-#: virt-clone:199 virt-image:158 virt-install:470 virt-install.orig:470
+#: virt-clone:188 virt-image:138 virt-install:639
 msgid "Miscellaneous Options"
 msgstr "Różne opcje"
 
-#: virt-clone:201 virt-convert:91 virt-image:172 virt-install:472
-#: virt-install.orig:472
+#: virt-clone:190 virt-convert:91 virt-image:152 virt-install:641
 msgid "Print debugging information"
 msgstr "Wyświetl informacje o debugowaniu"
 
-#: virt-clone:203 virt-image:174
+#: virt-clone:192 virt-image:154 virt-install:652
+msgid "Request user input for ambiguous situations or required options."
+msgstr ""
+"Poproś użytkownika w niejasnych sytuacjach lub jeśli wymagane są opcje."
+
+#: virt-clone:195 virt-image:157
 msgid ""
 "Do not prompt for input. Answers yes where applicable, terminates for all "
 "other prompts"
@@ -1350,18 +1642,20 @@ msgstr ""
 "Nie wyświetlaj komunikatów z prośbami. Odpowiada \"tak\" tam, gdzie to "
 "możliwe, kończy pracę przy wszystkich innych prośbach"
 
-#: virt-clone:219
+#: virt-clone:212
 msgid "Must be privileged to clone Xen guests"
 msgstr "Musisz mieć uprawnienia, aby klonować gości Xena"
 
-#: virt-clone:250
+#: virt-clone:242
 #, python-format
 msgid ""
 "\n"
 "Clone '%s' created successfully."
 msgstr ""
+"\n"
+"Klon \"%s\" został pomyślnie utworzony."
 
-#: virt-clone:265 virt-image:283 virt-install:784 virt-install.orig:784
+#: virt-clone:257 virt-image:267 virt-install:933
 msgid "Installation aborted at user request"
 msgstr "Instalacja została przerwana na żądanie użytkownika"
 
@@ -1377,11 +1671,11 @@ msgstr "Format wyjściowy, np. \"virt-image\""
 msgid "Output disk format"
 msgstr "Wyjściowy format dysku"
 
-#: virt-convert:60 virt-install:386 virt-install.orig:386
+#: virt-convert:60 virt-install:557
 msgid "This guest should be a fully virtualized guest"
-msgstr "ten gość powinien być w pełni wirtualizowanym gościem"
+msgstr "Ten gość powinien być w pełni wirtualizowanym gościem"
 
-#: virt-convert:62 virt-install:388 virt-install.orig:388
+#: virt-convert:62 virt-install:559
 msgid "This guest should be a paravirtualized guest"
 msgstr "Ten gość powinien być parawirtualizowany"
 
@@ -1389,7 +1683,7 @@ msgstr "Ten gość powinien być parawirtualizowany"
 msgid "Machine Architecture Type (i686/x86_64/ppc)"
 msgstr "Typ architektury maszyny (i686/x86_64/ppc)"
 
-#: virt-convert:71 virt-install:360 virt-install.orig:360
+#: virt-convert:71 virt-install:525
 msgid ""
 "The OS type for fully virtualized guests, e.g. 'linux', 'unix', 'windows'"
 msgstr ""
@@ -1404,249 +1698,205 @@ msgstr ""
 "Wariant systemu operacyjnego dla w pełni wirtualizowanych gości, np. "
 "\"fedora6\", \"rhel5\", \"solaris10\", \"win2k\", \"vista\""
 
-#: virt-convert:78 virt-install:376 virt-install.orig:376
+#: virt-convert:78 virt-install:547
 msgid ""
 "Disables APIC for fully virtualized guest (overrides value in os-type/os-"
 "variant db)"
 msgstr ""
-"Wyłącza APIC dla w pełni wirtualizowanego gościa (Zastępuje wartości w bazie "
-"danych os-type/os-variant"
+"Wyłącza APIC dla w pełni wirtualizowanego gościa (zastępuje wartości w bazie "
+"danych os-type/os-variant)"
 
-#: virt-convert:82 virt-install:380 virt-install.orig:380
+#: virt-convert:82 virt-install:551
 msgid ""
 "Disables ACPI for fully virtualized guest (overrides value in os-type/os-"
 "variant db)"
 msgstr ""
-"Wyłącza ACPI dla w pełni wirtualizowanego gościa (Zastępuje wartości w bazie "
-"danych os-type/os-variant"
+"Wyłącza ACPI dla w pełni wirtualizowanego gościa (zastępuje wartości w bazie "
+"danych os-type/os-variant)"
 
 #: virt-convert:89
 msgid "Don't be verbose"
 msgstr "Mało komunikatów"
 
-#: virt-convert:97
+#: virt-convert:100
 msgid "You need to provide an input VM definition"
 msgstr "Musisz podać wejściową definicję maszyny wirtualnej"
 
-#: virt-convert:99
+#: virt-convert:102
 msgid "Too many arguments provided"
 msgstr "Podano za dużo parametrów"
 
-#: virt-convert:103
+#: virt-convert:106
 #, python-format
 msgid "Unknown output disk format \"%s\""
 msgstr "Nieznany format dysku wyjściowego \"%s\""
 
-#: virt-convert:118
+#: virt-convert:121
 #, python-format
 msgid "Unknown output format \"%s\")"
 msgstr "Nieznany format wyjściowy \"%s\")"
 
-#: virt-convert:120
+#: virt-convert:123
 #, python-format
 msgid "No output handler for format \"%s\")"
 msgstr "Brak obsługi wyjścia dla formatu \"%s\")"
 
-#: virt-convert:124
+#: virt-convert:127
 #, python-format
 msgid "Couldn't access input argument \"%s\"\n"
 msgstr "Nie można uzyskać dostępu do parametru wejścia \"%s\"\n"
 
-#: virt-convert:131
+#: virt-convert:134
 #, python-format
 msgid "Couldn't determine input format for \"%s\": %s"
-msgstr "Nie można określić formatu wejściowego \"%s\": %s"
+msgstr "Nie można ustalić formatu wejściowego \"%s\": %s"
 
-#: virt-convert:136
+#: virt-convert:139
 #, python-format
 msgid "Unknown input format \"%s\")"
 msgstr "Nieznany format wejściowy \"%s\")"
 
-#: virt-convert:138
+#: virt-convert:141
 #, python-format
 msgid "No input handler for format \"%s\""
 msgstr "Brak obsługi wejścia dla formatu \"%s\""
 
-#: virt-convert:173
+#: virt-convert:176
 #, python-format
 msgid "Couldn't clean up output directory \"%s\": %s"
 msgstr "Nie można wyczyścić folderu wyjściowego \"%s\": %s"
 
-#: virt-convert:190 virt-convert:193
+#: virt-convert:192 virt-convert:195
 #, python-format
 msgid "Couldn't import file \"%s\": %s"
 msgstr "Nie można zaimportować pliku \"%s\": %s"
 
-#: virt-convert:230
+#: virt-convert:232
 #, python-format
 msgid "Generating output in '%(format)s' format to %(dir)s/"
 msgstr "Tworzenie wejścia w formacie \"%(format)s\" do %(dir)s/"
 
-#: virt-convert:249
+#: virt-convert:251
 #, python-format
 msgid "Converting disk '%(path)s' to type %(format)s..."
 msgstr "Konwertowanie dysku \"%(path)s\" do typu %(format)s..."
 
-#: virt-convert:256 virt-convert:259
+#: virt-convert:258 virt-convert:261
 #, python-format
 msgid "Couldn't convert disks: %s"
 msgstr "Nie można przekonwertować dysków: %s"
 
-#: virt-convert:265
+#: virt-convert:267
 #, python-format
 msgid "Couldn't export to file \"%s\": %s"
 msgstr "Nie można wyeksportować do pliku \"%s\": %s"
 
-#: virt-convert:277
+#: virt-convert:279
 msgid "Aborted at user request"
 msgstr "Przerwano na żądanie użytkownika"
 
-#: virt-image:64
-#, python-format
+#: virt-image:50
+#, fuzzy, python-format
 msgid ""
 "Warning: more networks were provided [%i] then nics required [%i]. All "
-"extras are ignored"
+"extras are ignored."
 msgstr ""
 "Ostrzeżenie: podano więcej sieci [%i] niż wymaganych pseudonimów [%i]. "
 "Wszystkie dodatkowe zostaną zignorowane"
 
-#: virt-image:68
-#, python-format
-msgid "The image requires %i network interface"
+#: virt-image:55
+#, fuzzy, python-format
+msgid "The image requires %i network interface."
 msgstr "Obraz wymaga %i interfejsu sieciowego"
 
-#: virt-image:94 virt-install:340 virt-install.orig:340
+#: virt-image:84 virt-install:505
 msgid "Name of the guest instance"
 msgstr "Nazwa gościa"
 
-#: virt-image:96 virt-install:342 virt-install.orig:342
+#: virt-image:86 virt-install:507
 msgid "Memory to allocate for guest instance in megabytes"
 msgstr "Pamięć do przydzielenia dla gościa w megabajtach"
 
-#: virt-image:100 virt-install:349 virt-install.orig:349
+#: virt-image:90 virt-install:514
 msgid "UUID for the guest."
 msgstr "UUID gościa."
 
-#: virt-image:102 virt-install:351 virt-install.orig:351
+#: virt-image:92 virt-install:516
 msgid "Number of vcpus to configure for your guest"
 msgstr "Liczba wirtualnych procesorów do skonfigurowania dla gościa"
 
-#: virt-image:104 virt-install:353 virt-install.orig:353
+#: virt-image:94 virt-install:518
 msgid "Check that vcpus do not exceed physical CPUs and warn if they do."
 msgstr ""
 "Sprawdź, czy wirtualne procesory nie przekraczają liczby fizycznych "
-"procesorów"
+"procesorów i ostrzeż, jeśli tak."
 
-#: virt-image:108 virt-install:357 virt-install.orig:357
+#: virt-image:98 virt-install:522
 msgid "Set which physical CPUs Domain can use."
 msgstr "Ustaw, które procesory fizyczne może używać domena."
 
-#: virt-image:111
-#, fuzzy
+#: virt-image:101
 msgid "The OS type being installed, e.g. 'linux', 'unix', 'windows'"
 msgstr ""
-"Typ systemu operacyjnego dla w pełni wirtualizowanych gości, np. \"linux\", "
-"\"unix\", \"windows\""
+"Typ instalowanego systemu operacyjnego, np. \"linux\", \"unix\", \"windows\""
 
-#: virt-image:115
-#, fuzzy
+#: virt-image:105
 msgid ""
 "The OS variant being installed, e.g. 'fedora6', 'rhel5', 'solaris10', 'win2k'"
 msgstr ""
-"Wariant systemu operacyjnego dla w pełni wirtualizowanych gości, np. "
-"\"fedora6\", \"rhel5\", \"solaris10\", \"win2k\""
+"Wariant instalowanego systemu operacyjnego, np. \"fedora6\", \"rhel5\", "
+"\"solaris10\", \"win2k\""
 
-#: virt-image:119 virt-install:371 virt-install.orig:371
-#, fuzzy
+#: virt-image:109 virt-install:542
 msgid "Full Virtualization specific options"
-msgstr "Opcje pełnej wirtualizacji."
+msgstr "Opcje specyficzne dla pełnej wirtualizacji"
 
-#: virt-image:122
+#: virt-image:112
 msgid "Disables APIC for fully virtualized guest"
 msgstr "Wyłącza APIC dla w pełni wirtualizowanego gościa"
 
-#: virt-image:125
+#: virt-image:115
 msgid "Disables ACPI for fully virtualized guest"
 msgstr "Wyłącza ACPI dla w pełni wirtualizowanego gościa"
 
-#: virt-image:131 virt-install:438 virt-install.orig:438
-msgid ""
-"Bridge to connect guest NIC to; if none given, will try to determine the "
-"default"
-msgstr ""
-"Mostek do łączenia NIC gościa; jeśli żaden nie zostanie podany, spróbuje "
-"określić domyślny"
-
-#: virt-image:135 virt-install:442 virt-install.orig:442
-msgid ""
-"Connect the guest to a virtual network, forwarding to the physical network "
-"with NAT"
-msgstr ""
-"Połącz gościa z siecią wirtualną, przekazywaną do sieci fizycznej za pomocą "
-"NAT"
-
-#: virt-image:139 virt-install:446 virt-install.orig:446
+#: virt-image:121
 msgid ""
-"Fixed MAC address for the guest; if none or RANDOM is given a random address "
-"will be used"
+"Specify a network interface. Ex:\n"
+"--network bridge=mybr0\n"
+"--network network=libvirt_network_name\n"
+"--network network=mynet,model=e1000,mac=00:11..."
 msgstr ""
-"Stały adres MAC dla gościa; jeśli żaden nie zostanie podany lub podasz "
-"LOSOWY, użyty zostanie losowy adres"
-
-#: virt-image:143 virt-install:452 virt-install.orig:452
-msgid "Graphics Configuration"
-msgstr "Konfiguracja grafiki"
 
-#: virt-image:145 virt-install:454 virt-install.orig:454
-msgid "Use VNC for graphics support"
-msgstr "Użyj VNC dla obsługi grafiki"
-
-#: virt-image:147 virt-install:456 virt-install.orig:456
-msgid "Port to use for VNC"
-msgstr "Użyty port dla VNC"
-
-#: virt-image:149 virt-install:458 virt-install.orig:458
-msgid "Use SDL for graphics support"
-msgstr "Użyj SDL do obsługi grafiki"
-
-#: virt-image:151 virt-install:460 virt-install.orig:460
-msgid "Don't set up a graphical console for the guest."
-msgstr "Nie ustawiaj graficznej konsoli dla gościa."
-
-#: virt-image:154 virt-install:467 virt-install.orig:467
-msgid "set up keymap for a graphical console"
-msgstr "ustaw mapę klawiatury dla graficznej konsoli"
-
-#: virt-image:160
+#: virt-image:140
 msgid "Print the libvirt XML, but do not start the domain"
 msgstr "Wyświetl XML libvirt, ale nie uruchamiaj domeny"
 
-#: virt-image:163
+#: virt-image:143
 msgid "The zero-based index of the boot record to use"
 msgstr "Użyty pusty indeks sektora startowego"
 
-#: virt-image:165
+#: virt-image:145
 msgid "Overwrite, or destroy, an existing image with the same name"
 msgstr "Zastąp lub usuń istniejący obraz o tej samej nazwie"
 
-#: virt-image:170
+#: virt-image:150
 msgid "Skip disk checksum verification process"
 msgstr "Pomiń proces sprawdzania sumy kontrolnej dysku"
 
-#: virt-image:182
+#: virt-image:165
 msgid "You need to provide an image XML descriptor"
 msgstr "Musisz podać deskryptor XML obrazu"
 
-#: virt-image:200
+#: virt-image:184
 msgid "Cannot parse"
 msgstr "Nie można przeanalizować"
 
-#: virt-image:205
+#: virt-image:189
 #, python-format
 msgid "The index for --boot must be between 0 and %d"
 msgstr "Indeks dla --boot musi być między 0 a %d"
 
-#: virt-image:261
+#: virt-image:245
 #, python-format
 msgid ""
 "\n"
@@ -1657,11 +1907,11 @@ msgstr ""
 "\n"
 "Tworzenie gościa %s..."
 
-#: virt-image:265
+#: virt-image:249
 msgid "Guest creation failed"
 msgstr "Utworzenie gościa nie powiodło się"
 
-#: virt-image:271
+#: virt-image:255
 #, python-format
 msgid ""
 "Domain creation may not have been\n"
@@ -1674,54 +1924,60 @@ msgstr ""
 "domenę uruchamiając \"virsh start %s\"; w innym\n"
 "przypadku uruchom ponownie instalację."
 
-#: virt-install:70 virt-install.orig:70
+#: virt-install:84
 #, python-format
 msgid "Couldn't create default storage pool '%s': %s"
 msgstr "Nie można utworzyć domyślnej puli pamięci masowej \"%s\": %s"
 
-#: virt-install:93 virt-install.orig:93
+#: virt-install:107
+#, python-format
+msgid "%(chartype)s type %(devtype)s does not support '%(optname)s' option."
+msgstr ""
+
+#: virt-install:133
+#, fuzzy, python-format
+msgid "Unknown option(s) %s"
+msgstr "Nieznana opcja --disk \"%s\"."
+
+#: virt-install:147
+#, fuzzy, python-format
+msgid "Error in %(chartype)s device parameters: %(err)s"
+msgstr "Błąd parametrów pamięci masowej: %s"
+
+#: virt-install:170
 msgid "--disk path must start with path=, pool=, or vol=."
 msgstr "Ścieżka --disk musi zaczynać się od path=, pool= lub vol=."
 
-#: virt-install:121 virt-install:133 virt-install.orig:121
-#: virt-install.orig:133
+#: virt-install:177
+#, python-format
+msgid "Unknown --disk option '%s'."
+msgstr "Nieznana opcja --disk \"%s\"."
+
+#: virt-install:185 virt-install:197
 #, python-format
 msgid "Unknown '%s' value '%s'"
 msgstr "Nieznana \"%s\" wartość \"%s\""
 
-#: virt-install:126 virt-install.orig:126
+#: virt-install:190
 #, python-format
 msgid "Improper value for 'size': %s"
 msgstr "Niewłaściwa wartość dla \"size\": %s"
 
-#: virt-install:137 virt-install.orig:137
-#, python-format
-msgid "Unknown --disk option '%s'."
-msgstr "Nieznana opcja --disk \"%s\"."
-
-#: virt-install:147 virt-install.orig:147
+#: virt-install:212
 msgid "Size must be specified with all 'pool='"
 msgstr "Rozmiar musi zostać podany z całą \"pool=\""
 
-#: virt-install:160 virt-install.orig:160
-msgid "Storage volume must be specified as pool=poolname/volname"
+#: virt-install:226
+#, fuzzy
+msgid "Storage volume must be specified as vol=poolname/volname"
 msgstr ""
 "Wolumin pamięci masowej musi zostać podany jako pool=nazwapuli/nazwawoluminu"
 
-#: virt-install:202 virt-install.orig:202
-#, python-format
-msgid "Error with storage parameters: %s"
-msgstr "Błąd parametrów pamięci masowej: %s"
+#: virt-install:282
+msgid "Cannot use --file, --file-size, or --disk with --nodisks"
+msgstr "Nie można używać --file, --file-size lub --disk z --nodisks"
 
-#: virt-install:214 virt-install.orig:214
-msgid " Do you really want to use the disk (yes or no)?"
-msgstr "Na pewno chcesz użyć tego dysku (\"yes\" lub \"no\")?"
-
-#: virt-install:222 virt-install.orig:222
-msgid "Cannot use --file, --size, or --disk with --nodisks"
-msgstr "Nie można używać --file, --size lub --disk z --nodisks"
-
-#: virt-install:225 virt-install.orig:225
+#: virt-install:285
 msgid ""
 "Cannot mix --file, --nonsparse, or --file-size with --disk options. Please "
 "see the manual for --disk syntax."
@@ -1729,61 +1985,88 @@ msgstr ""
 "Nie można mieszać --file, --nonsparse lub --file-size z opcją --disk. Zobacz "
 "podręcznik, aby uzyskać informacje o składni --disk."
 
-#: virt-install:228 virt-install.orig:228
+#: virt-install:288
 msgid "A disk must be specified (use --nodisks to override)"
 msgstr "Dysk musi zostać podany (użyj --nodisks, aby zastąpić)"
 
-#: virt-install:236 virt-install.orig:236
+#: virt-install:296
 msgid "Need to pass size for each disk"
 msgstr "Musisz podać rozmiar dla każdego dysku"
 
-#: virt-install:251 virt-install.orig:251
+#: virt-install:311
 msgid "Cannot use --mac with --nonetworks"
-msgstr ""
+msgstr "Nie można używać --mac razem z --nonetworks"
 
-#: virt-install:253 virt-install.orig:253
-#, fuzzy
+#: virt-install:313
 msgid "Cannot use --bridges with --nonetworks"
-msgstr "Nie można mieszać parametrów --bridge i --network"
+msgstr "Nie można używać --bridges razem z --nonetworks"
 
-#: virt-install:255 virt-install.orig:255
-#, fuzzy
+#: virt-install:315
 msgid "Cannot use --network with --nonetworks"
-msgstr "Nie można używać --file, --size lub --disk z --nodisks"
+msgstr "Nie można używać --network razem z --nonetworks"
+
+#: virt-install:342
+msgid ""
+"Would you like a fully virtualized guest (yes or no)? This will allow you to "
+"run unmodified operating systems."
+msgstr ""
+"Czy chcesz pełną wirtualizację gościa (\"yes\" lub \"no\")? Umożliwi to "
+"uruchomienie niezmodyfikowanych systemów operacyjnych."
 
-#: virt-install:275 virt-install.orig:275
+#: virt-install:367
+#, python-format
+msgid "Would you like to use %s acceleration? (yes or no)"
+msgstr "Na pewno chcesz użyć akceleracji %s? (\"yes\" lub \"no\")"
+
+#: virt-install:379
+msgid "Can't do both --hvm and --paravirt"
+msgstr "Nie można wykonać jednocześnie --hvm i --paravirt"
+
+#: virt-install:401 virt-install:402
+msgid "default"
+msgstr "domyślne"
+
+#: virt-install:423
 #, python-format
 msgid "Only one install method (%s) can be used"
-msgstr ""
+msgstr "Można użyć tylko jednej metody instalacji (%s)"
 
-#: virt-install:281 virt-install.orig:281
+#: virt-install:429
 msgid "Network PXE boot is not supported for paravirtualized guests"
 msgstr ""
 "Uruchamianie sieciowe PXE nie jest obsługiwane dla gości parawirtualizowanych"
 
-#: virt-install:284 virt-install.orig:284
+#: virt-install:432
 msgid "Paravirtualized guests cannot install off cdrom media."
 msgstr "Goście parawirtualizowani nie mogą być instalowani z nośnika CD-ROM."
 
-#: virt-install:287 virt-install.orig:287
+#: virt-install:435
 msgid "--location can not be specified for remote connections."
 msgstr "--location nie może zostać podane dla połączeń zdalnych."
 
-#: virt-install:296 virt-install.orig:296
-#, fuzzy, python-format
+#: virt-install:444
+#, python-format
 msgid "One of %s, or cdrom media must be specified."
-msgstr "Tylko jedno z --pxe, --location lub nośnik CD-ROM może zostać podane."
+msgstr "Tylko jedno z %s lub nośnik CD-ROM musi zostać podane."
 
-#: virt-install:314 virt-install.orig:314
+#: virt-install:457
 #, python-format
 msgid "Error creating cdrom disk: %s"
 msgstr "Błąd podczas tworzenia dysku CD-ROM: %s"
 
-#: virt-install:346 virt-install.orig:346
+#: virt-install:462
+msgid "What is the install CD-ROM/ISO or URL?"
+msgstr "Jaki jest CD-ROM/ISO lub adres URL instalacji?"
+
+#: virt-install:464
+msgid "What is the install URL?"
+msgstr "Jaki jest adres URL instalacji?"
+
+#: virt-install:511
 msgid "The CPU architecture to simulate"
 msgstr "Symulowana architektura procesora"
 
-#: virt-install:364 virt-install.orig:364
+#: virt-install:529
 msgid ""
 "The OS variant for fully virtualized guests, e.g. 'fedora6', 'rhel5', "
 "'solaris10', 'win2k'"
@@ -1791,111 +2074,109 @@ msgstr ""
 "Wariant systemu operacyjnego dla w pełni wirtualizowanych gości, np. "
 "\"fedora6\", \"rhel5\", \"solaris10\", \"win2k\""
 
-#: virt-install:368 virt-install.orig:368
-msgid "Physical host device to attach to the domain."
+#: virt-install:533
+#, fuzzy
+msgid "Add a serial device to the domain."
+msgstr "Fizyczne urządzenie hosta do podłączenia do domeny."
+
+#: virt-install:536
+msgid "Add a parallel device to the domain."
 msgstr ""
 
-#: virt-install:373 virt-install.orig:373
+#: virt-install:539
+msgid "Physical host device to attach to the domain."
+msgstr "Fizyczne urządzenie hosta do podłączenia do domeny."
+
+#: virt-install:544
 msgid "Use sound device emulation"
 msgstr "Użyj emulacji urządzenia dźwiękowego"
 
-#: virt-install:384 virt-install.orig:384
+#: virt-install:555
 msgid "Virtualization Type Options"
 msgstr "Opcje typu wirtualizacji"
 
-#: virt-install:391 virt-install.orig:391
-msgid "Use kernel acceleration capabilities (kvm, kqemu, ...)"
-msgstr "Użyj możliwości akceleracji jądra (kvm, kqemu...)"
+#: virt-install:562
+msgid "Hypervisor name to use (kvm, qemu, xen, ...)"
+msgstr ""
 
-#: virt-install:395 virt-install.orig:395
+#: virt-install:568
 msgid "Installation Method Options"
 msgstr "Opcje metody instalacji"
 
-#: virt-install:398 virt-install.orig:398
+#: virt-install:571
 msgid "CD-ROM installation media"
 msgstr "Nośnik instalacji CD-ROM"
 
-#: virt-install:401 virt-install.orig:401
+#: virt-install:574
 msgid ""
 "Installation source (eg, nfs:host:/path, http://host/path, ftp://host/path)"
 msgstr ""
 "Źródło instalacji (np. nfs:host:/ścieżka, http://host/ścieżka, ftp://host/"
 "ścieżka)"
 
-#: virt-install:404 virt-install.orig:404
+#: virt-install:577
 msgid "Boot from the network using the PXE protocol"
 msgstr "Uruchom z sieci używając protokołu PXE"
 
-#: virt-install:406 virt-install.orig:406
-#, fuzzy
+#: virt-install:579
 msgid "Build guest around an existing disk image"
-msgstr "Użycie obrazu dysku nie powiodło się"
+msgstr "Zbuduj gościa w oparciu o istniejący obraz dysku"
 
-#: virt-install:408 virt-install.orig:408
-#, fuzzy
+#: virt-install:581
 msgid "Treat the CD-ROM media as a Live CD"
-msgstr "Określ, czy nośnik CD-ROM jest LiveCD"
+msgstr "Traktuj nośnik CD-ROM jest Live CD"
 
-#: virt-install:411 virt-install.orig:411
+#: virt-install:584
 msgid "Additional arguments to pass to the kernel booted from --location"
 msgstr "Dodatkowe parametry do przekazania do jądra uruchomionego z --location"
 
-#: virt-install:418 virt-install.orig:418
-msgid "Specify storage to use as a disk with various options."
-msgstr "Podaj pamięć masową użytą jako dysk za pomocą różnych opcji."
-
-#: virt-install:422 virt-install.orig:422
-msgid "File to use as the disk image"
-msgstr "Użycie obrazu dysku nie powiodło się"
-
-#: virt-install:425 virt-install.orig:425
-msgid "Size of the disk image (if it doesn't exist) in gigabytes"
-msgstr "Rozmiar obrazu dysku (jeśli nie istnieje) w gigabajtach"
-
-#: virt-install:429 virt-install.orig:429
+#: virt-install:591
 msgid ""
-"Don't use sparse files for disks.  Note that this will be significantly "
-"slower for guest creation"
+"Specify storage with various options. Ex.\n"
+"--disk path=/my/existing/disk\n"
+"--disk path=/my/new/disk,size=5 (in gigabytes)\n"
+"--disk vol=poolname:volname,device=cdrom,bus=scsi,..."
 msgstr ""
-"Nie używaj plików sparse dla dysków. Zauważ, że znacznie spowolni to "
-"tworzenie gościa"
 
-#: virt-install:432 virt-install.orig:432
+#: virt-install:596
 msgid "Don't set up any disks for the guest."
 msgstr "Nie ustawiaj żadnych dysków dla gościa."
 
-#: virt-install:449 virt-install.orig:449
-#, fuzzy
+#: virt-install:613
+msgid ""
+"Specify a network interface. Ex:\n"
+"--network bridge=mybr0\n"
+"--network network=my_libvirt_virtual_net\n"
+"--network network=mynet,model=virtio,mac=00:11..."
+msgstr ""
+
+#: virt-install:618
 msgid "Don't create network interfaces for the guest."
-msgstr "Nie ustawiaj żadnych dysków dla gościa."
+msgstr "Nie twórz interfejsów sieciowych dla gościa."
+
+#: virt-install:632
+msgid "Specify video hardware type."
+msgstr ""
 
-#: virt-install:463 virt-install.orig:463
+#: virt-install:635
 msgid "Don't automatically try to connect to the guest console"
 msgstr "Nie próbuj automatycznie łączyć się z konsolą gościa"
 
-#: virt-install:474 virt-install.orig:474
+#: virt-install:643
 msgid "Disables the automatic rebooting when the installation is complete."
 msgstr "Wyłącza automatyczne ponowne uruchamianie po zakończeniu instalacji."
 
-#: virt-install:477 virt-install.orig:477
+#: virt-install:646
 msgid "Time to wait (in minutes)"
 msgstr "Czas oczekiwania (w minutach)"
 
-#: virt-install:479 virt-install.orig:479
+#: virt-install:648
 msgid "Forces 'yes' for any applicable prompts, terminates for all others"
 msgstr ""
 "Wymusza \"tak\" tam, gdzie to możliwe, kończy pracę przy wszystkich innych "
 "prośbach"
 
-#: virt-install:483 virt-install.orig:483
-msgid ""
-"Request user input for ambiguous situations. Default is false, so will "
-"terminate if a prompt would typically be fired. "
-msgstr ""
-"Poproś użytkownika w niejasnych sytuacjach. Domyślnie \"fałsz\", więc będzie "
-"zamykane, jeśli zajdzie potrzeba poproszenia."
-
-#: virt-install:503 virt-install.orig:503
+#: virt-install:671
 msgid ""
 "Unable to connect to graphical console: virt-viewer not installed. Please "
 "install the 'virt-viewer' package."
@@ -1903,19 +2184,11 @@ msgstr ""
 "Nie można połączyć się z konsolą graficzną: nie zainstalowano virt-viewer. "
 "Zainstaluj pakiet \"virt-viewer\"."
 
-#: virt-install:536 virt-install.orig:536
-msgid "Can't do both --hvm and --paravirt"
-msgstr "Nie można wykonać jednocześnie --hvm i --paravirt"
-
-#: virt-install:548 virt-install.orig:548
-msgid "default"
-msgstr "domyślne"
-
-#: virt-install:570 virt-install.orig:570
+#: virt-install:713
 msgid "Can't use --pxe with --nonetworks"
-msgstr ""
+msgstr "Nie można użyć --pxe razem z --nonetworks"
 
-#: virt-install:671 virt-install.orig:671
+#: virt-install:818
 msgid ""
 "\n"
 "\n"
@@ -1925,7 +2198,7 @@ msgstr ""
 "\n"
 "Uruchamianie instalacji..."
 
-#: virt-install:682 virt-install.orig:682
+#: virt-install:829
 #, python-format
 msgid ""
 "Domain installation does not appear to have been\n"
@@ -1938,25 +2211,24 @@ msgstr ""
 " uruchamiając \"virsh start %s\"; w innym przypadku\n"
 " uruchom ponownie instalację."
 
-#: virt-install:693 virt-install.orig:693
+#: virt-install:840
 #, python-format
 msgid ""
 "Guest installation complete... you can restart your domain\n"
 "by running 'virsh start %s'"
 msgstr ""
-"Instalacja gościa została zakończona... Można ponownie uruchomić domenę "
-"wykonując \"virsh start %s\""
+"Instalacja gościa została zakończona... Można ponownie\n"
+"uruchomić domenę wykonując \"virsh start %s\""
 
-#: virt-install:697 virt-install.orig:697
+#: virt-install:844
 msgid "Guest installation complete... restarting guest."
 msgstr "Instalacja gościa została zakończona... Ponowne uruchamianie gościa."
 
-#: virt-install:703 virt-install.orig:703
-#, fuzzy
+#: virt-install:850
 msgid "Guest install interrupted."
-msgstr "Instalacja gościa nie powiodła się"
+msgstr "Przerwano instalację gościa."
 
-#: virt-install:710 virt-install.orig:710
+#: virt-install:857
 #, python-format
 msgid ""
 "Domain installation may not have been\n"
@@ -1969,41 +2241,39 @@ msgstr ""
 " uruchamiając \"virsh start %s\"; w innym przypadku\n"
 " uruchom ponownie instalację."
 
-#: virt-install:736 virt-install.orig:736
-#, fuzzy
+#: virt-install:883
 msgid "Guest installation failed."
-msgstr "Instalacja gościa nie powiodła się"
+msgstr "Instalacja gościa nie powiodła się."
 
-#: virt-install:746 virt-install.orig:746
-#, fuzzy, python-format
+#: virt-install:893
+#, python-format
 msgid "%d minutes "
-msgstr " %d minuty"
+msgstr "%d minuty "
 
-#: virt-install:748 virt-install.orig:748
+#: virt-install:895
 #, fuzzy, python-format
 msgid ""
-"Domain installation still in progress. Waiting %sfor domain to complete "
-"installation."
+"Domain installation still in progress. Waiting %sfor installation to "
+"complete."
 msgstr ""
-"Trwa instalacja domeny. Możesz ponownie połączyć się z \n"
-"konsolą, aby zakończyć proces instalacji."
+"Wciąż trwa instalacja domeny. Oczekiwanie %s na domenę, aby zakończyć "
+"instalację."
 
-#: virt-install:754 virt-install.orig:754
+#: virt-install:901
 msgid "Domain has shutdown. Continuing."
 msgstr "Domena została wyłączona. Kontynuowanie."
 
-#: virt-install:761 virt-install.orig:761
+#: virt-install:908
 #, python-format
 msgid "Could not lookup domain after install: %s"
 msgstr "Nie można wyszukać domeny po instalacji: %s"
 
-#: virt-install:768 virt-install.orig:768
-#, fuzzy
+#: virt-install:915
 msgid "Installation has exceeded specified time limit. Exiting application."
 msgstr ""
 "Instalacja przekroczyła podane ograniczenie czasu. Zamykanie aplikacji."
 
-#: virt-install:772 virt-install.orig:772
+#: virt-install:921
 msgid ""
 "Domain installation still in progress. You can reconnect to \n"
 "the console to complete the installation process."
@@ -2011,54 +2281,63 @@ msgstr ""
 "Trwa instalacja domeny. Możesz ponownie połączyć się z \n"
 "konsolą, aby zakończyć proces instalacji."
 
-#~ msgid "Name or UUID of guest to clone is required"
-#~ msgstr "Nazwa lub UUID gościa do sklonowania jest wymagana"
+#~ msgid "Could not find usable default libvirt connection."
+#~ msgstr "Nie można znaleźć używalnego domyślnego połączenia libvirt."
 
-#~ msgid "A valid name or UUID of guest to clone is required"
-#~ msgstr "Prawidłowa nazwa lub UUID gościa do sklonowania jest wymagana"
+#~ msgid "Unknown network type "
+#~ msgstr "Nieznany typ sieci "
 
-#~ msgid "New file to use for disk image is required"
-#~ msgstr "Nowy plik do użycia obrazu dysku jest wymagany"
+#~ msgid "Need to pass equal numbers of networks & mac addresses"
+#~ msgstr "Należy podać równą liczbę sieci i adresów MAC"
 
-#~ msgid "Domain status must be SHUTOFF"
-#~ msgstr "Stan domeny musi być SHUTOFF"
+#~ msgid "Cannot clone remote VM storage."
+#~ msgstr "Nie można sklonować pamięci masowej zdalnej maszyny wirtualnej."
 
-#~ msgid "Domain %s already exists"
-#~ msgstr "Domena %s już istnieje"
+#~ msgid "Missing path to use as disk clone destination for '%s'"
+#~ msgstr "Brak ścieżki do użycia jako celu klonowania dysku dla \"%s\""
 
-#~ msgid "Cloning from %(src)s to %(dst)s..."
-#~ msgstr "Klonowanie z %(src)s do %(dst)s..."
+#~ msgid "Could not determine storage type for '%s'"
+#~ msgstr "Nie można ustalić typu pamięci masowej dla \"%s\""
 
-#~ msgid "Invalid file location given: "
-#~ msgstr "Podano nieprawidłowe położenie pliku: "
+#~ msgid "Disk volume creation is not implemented."
+#~ msgstr "Tworzenie woluminów dysku nie jest zaimplementowane."
 
-#~ msgid "Invalid file location given: %s: %s"
-#~ msgstr "Podano nieprawidłowe położenie pliku: %s: %s"
-
-#~ msgid "Connection does not support HVM virtualisation, cannot boot live CD"
+#~ msgid ""
+#~ "Bridge to connect guest NIC to; if none given, will try to determine the "
+#~ "default"
 #~ msgstr ""
-#~ "Połączenie nie obsługuje wirtualizacji HVM; nie można uruchomić Live CD"
-
-#~ msgid "Storage object name must be a string "
-#~ msgstr "Obiekt pamięci masowej musi być łańcuchem "
+#~ "Mostek do łączenia NIC gościa; jeśli żaden nie zostanie podany, spróbuje "
+#~ "ustalić domyślny"
 
-#~ msgid "Storage object name can not be only "
-#~ msgstr "Nazwa obiektu pamięci masowej nie może być tylko "
+#~ msgid ""
+#~ "Connect the guest to a virtual network, forwarding to the physical "
+#~ "network with NAT"
+#~ msgstr ""
+#~ "Połącz gościa z siecią wirtualną, przekazywaną do sieci fizycznej za "
+#~ "pomocą NAT"
 
-#~ msgid "Storage object name can only contain "
-#~ msgstr "Nazwa obiektu pamięci masowej może zawierać tylko "
+#~ msgid ""
+#~ "Fixed MAC address for the guest; if none or RANDOM is given a random "
+#~ "address will be used"
+#~ msgstr ""
+#~ "Stały adres MAC dla gościa; jeśli żaden nie zostanie podany lub podasz "
+#~ "RANDOM, użyty zostanie losowy adres"
 
-#~ msgid "'%s' is not managed on remote host: %s"
-#~ msgstr "\"%s\" nie jest zarządzane na zdalnym hoście: %s"
+#~ msgid "Use kernel acceleration capabilities (kvm, kqemu, ...)"
+#~ msgstr "Użyj możliwości akceleracji jądra (kvm, kqemu...)"
 
-#~ msgid "Cannot parse capabilities"
-#~ msgstr "Nie można przeanalizować możliwości"
+#~ msgid "Specify storage to use as a disk with various options."
+#~ msgstr "Podaj pamięć masową użytą jako dysk za pomocą różnych opcji."
 
-#~ msgid "Only one of --pxe, --location and --cdrom can be used"
-#~ msgstr "Tylko jedno z --pxe, --location i --cdrom może zostać użyte"
+#~ msgid "File to use as the disk image"
+#~ msgstr "Użycie obrazu dysku nie powiodło się"
 
-#~ msgid "location must be specified for paravirtualized guests."
-#~ msgstr "położenie dla gości parawirtualizowanych musi zostać podane."
+#~ msgid "Size of the disk image (if it doesn't exist) in gigabytes"
+#~ msgstr "Rozmiar obrazu dysku (jeśli nie istnieje) w gigabajtach"
 
-#~ msgid "Domain installation still in progress. Waiting"
-#~ msgstr "Trwa instalacja domeny. Oczekiwanie"
+#~ msgid ""
+#~ "Don't use sparse files for disks.  Note that this will be significantly "
+#~ "slower for guest creation"
+#~ msgstr ""
+#~ "Nie używaj plików sparse dla dysków. Zauważ, że znacznie spowolni to "
+#~ "tworzenie gościa"
diff --git a/po/pt_BR.po b/po/pt_BR.po
index 01abf3a..758cb55 100644
--- a/po/pt_BR.po
+++ b/po/pt_BR.po
@@ -9,7 +9,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: virtinst.tip.pt_BR\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-03-09 20:41-0400\n"
+"POT-Creation-Date: 2009-07-28 20:34-0400\n"
 "PO-Revision-Date: 2008-10-15 14:18+1000\n"
 "Last-Translator: Glaucia Cintra <gcintra at redhat.com>\n"
 "Language-Team: Portuguese <en at li.org>\n"
@@ -22,230 +22,284 @@ msgstr ""
 "X-Poedit-Country: BRAZIL\n"
 "X-Poedit-SourceCharset: utf-8\n"
 
-#: virtinst/CapabilitiesParser.py:168
+#: virtinst/CapabilitiesParser.py:172
 #, fuzzy, python-format
 msgid "No domains available for virt type '%(type)s', arch %(arch)s."
 msgstr "Não há nenhum domínio disponível para este convidado"
 
-#: virtinst/CapabilitiesParser.py:393
+#: virtinst/CapabilitiesParser.py:412
 #, python-format
 msgid "for arch '%s'"
 msgstr "for arch '%s'"
 
-#: virtinst/CapabilitiesParser.py:397
+#: virtinst/CapabilitiesParser.py:416
 #, fuzzy, python-format
 msgid "virtualization type '%s'"
 msgstr "Tipo de virtualização não suportado '%s' "
 
-#: virtinst/CapabilitiesParser.py:399
+#: virtinst/CapabilitiesParser.py:418
 #, fuzzy
 msgid "any virtualization options"
 msgstr "Opções de Tipo de Virtualização"
 
-#: virtinst/CapabilitiesParser.py:401
+#: virtinst/CapabilitiesParser.py:420
 #, python-format
 msgid "Host does not support %(virttype)s %(arch)s"
 msgstr ""
 
-#: virtinst/CapabilitiesParser.py:414
+#: virtinst/CapabilitiesParser.py:433
 #, python-format
 msgid ""
 "Host does not support domain type '%(domain)s' for virtualization type '%"
 "(virttype)s' arch '%(arch)s'"
 msgstr ""
 
-#: virtinst/cli.py:117
+#: virtinst/cli.py:152
 msgid "Exiting at user request."
 msgstr "A instalação foi interrompida por solicitação do usuário "
 
-#: virtinst/cli.py:122
+#: virtinst/cli.py:159
 msgid "Must be root to create Xen guests"
 msgstr "É necessário ser um usuário root para criar convidados Xen "
 
-#: virtinst/cli.py:124
-msgid "Could not find usable default libvirt connection."
-msgstr "Não foi possível encontrar conexão do libvirt padrão."
+#: virtinst/cli.py:297
+msgid "(use --prompt to run interactively)"
+msgstr ""
 
-#: virtinst/cli.py:146
-#, python-format
-msgid "Force flag is set but input was required. Prompt was: %s"
+#: virtinst/cli.py:317
+msgid " (Use --prompt or --force to override)"
 msgstr ""
-"Sinalização forçada foi estabelecida mas é necessária uma entrada. "
-"Solicitação: %s"
 
-#: virtinst/cli.py:149
-#, python-format
-msgid "Prompting disabled, but input was requested. Prompt was: %s"
+#: virtinst/cli.py:352
+msgid "Graphics Configuration"
+msgstr "Configuração de Gráficos"
+
+#: virtinst/cli.py:354
+msgid "Use VNC for graphics support"
+msgstr "Usar o VNC para suporte a gráficos"
+
+#: virtinst/cli.py:356
+msgid "Port to use for VNC"
+msgstr "Porta a ser usada para o VNC "
+
+#: virtinst/cli.py:358
+msgid "Address to listen on for VNC connections."
 msgstr ""
-"Solicitação desabilitada, mas é necessária uma entrada. Solicitação: %s"
 
-#: virtinst/cli.py:169
+#: virtinst/cli.py:361
+#, fuzzy
+msgid "set up keymap for the VNC console"
+msgstr "define um mapa de teclado para o console gráfico"
+
+#: virtinst/cli.py:363
+msgid "Use SDL for graphics support"
+msgstr "Usar o SDL para suporte a gráficos"
+
+#: virtinst/cli.py:365
+msgid "Don't set up a graphical console for the guest."
+msgstr "Não configure um console gráfico para o convidado."
+
+#: virtinst/cli.py:388
+#, fuzzy
+msgid "A disk path must be specified."
+msgstr "Uma localização de origem para a instalação deve ser especificada "
+
+#: virtinst/cli.py:390
+#, fuzzy
+msgid "What would you like to use as the disk (file path)?"
+msgstr "Qual você deseja usar como disco clonado (caminho do arquivo)? "
+
+#: virtinst/cli.py:392
 #, python-format
 msgid ""
-"Prompting disabled, but yes/no was requested. Try --force to force 'yes' for "
-"such prompts. Prompt was: %s"
+"Please enter the path to the file you would like to use for storage. It will "
+"have size %sGB."
+msgstr ""
+
+#: virtinst/cli.py:401
+#, fuzzy
+msgid "A size must be specified for non-existent disks."
+msgstr "Um tamanho para caminhos não existentes deve ser especificado  '%s'"
+
+#: virtinst/cli.py:403
+#, python-format
+msgid "How large would you like the disk (%s) to be (in gigabytes)?"
 msgstr ""
-"Solicitação desabilitada, mas é necessária uma resposta sim/não. Tente --"
-"force para forçar 'sim' para tais solicitações. Solicitação: %s"
 
-#: virtinst/cli.py:179 virt-clone:48 virt-clone:69 virt-clone:108
-msgid "ERROR: "
-msgstr "ERRO: "
+#: virtinst/cli.py:424 virt-install:274
+#, python-format
+msgid "Error with storage parameters: %s"
+msgstr "Erro com parâmetros de armazenamento: %s"
+
+#: virtinst/cli.py:426
+#, fuzzy
+msgid "Do you really want to use this disk (yes or no)"
+msgstr "Você quer realmente usar o disco (sim ou não)?  "
+
+#: virtinst/cli.py:430
+#, python-format
+msgid "This will overwrite the existing path '%s'!\n"
+msgstr "Isto sobrescreverá os caminhos existentes  '%s'!\n"
+
+#: virtinst/cli.py:437
+#, python-format
+msgid "Disk %s is already in use by another guest!\n"
+msgstr "O disco %s já está sendo usado por outro convidado!\n"
+
+#: virtinst/cli.py:464
+#, fuzzy
+msgid "What is the name of your virtual machine?"
+msgstr "Qual o nome ou uuid da máquina original virtual? "
 
-#: virtinst/cli.py:189
+#: virtinst/cli.py:465
 msgid "A name is required for the virtual machine."
 msgstr "É necessário um nome para a máquina virtual."
 
-#: virtinst/cli.py:197
+#: virtinst/cli.py:472
+msgid "How much RAM should be allocated (in megabytes)?"
+msgstr ""
+
+#: virtinst/cli.py:473
 msgid "Memory amount is required for the virtual machine."
 msgstr "Quantia de memória necessária para máquina virtual."
 
-#: virtinst/cli.py:199
+#: virtinst/cli.py:477
 #, python-format
 msgid "Installs currently require %d megs of RAM."
 msgstr "Instalação atual requer %d megabytes de RAM."
 
-#: virtinst/cli.py:219
-#, python-format
+#: virtinst/cli.py:498
+#, fuzzy, python-format
 msgid ""
 "You have asked for more virtual CPUs (%d) than there are physical CPUs (%d) "
-"on the host. This will work, but performance will be poor. Are you sure? "
-"(yes or no)"
+"on the host. This will work, but performance will be poor. "
 msgstr ""
 "Você solicitou mais CPU's virtuais (%d) do que CPU's físicas (%d) existentes "
 "na máquina hospedeira. Isto funcionará, mas o dempenho será ruim. Tem "
 "certeza de que quer continuar? (sim ou não)"
 
-#: virtinst/cli.py:276
-msgid "Unknown network type "
-msgstr "Tipo de rede desconhecido"
+#: virtinst/cli.py:501
+msgid "Are you sure? (yes or no)"
+msgstr ""
 
-#: virtinst/cli.py:293
+#: virtinst/cli.py:612
+#, fuzzy, python-format
+msgid "Unknown network option '%s'"
+msgstr "Tipo de rede %s desconhecido"
+
+#: virtinst/cli.py:630
 msgid "Cannot mix both --bridge and --network arguments"
 msgstr "Impossível misturar os argumentos --bridge e --network"
 
-#: virtinst/cli.py:310
-msgid "Need to pass equal numbers of networks & mac addresses"
-msgstr ""
-"É necessário passar quantidades iguais de endereços de rede e endereços mac"
+#: virtinst/cli.py:645
+#, fuzzy
+msgid "Cannot pass more mac addresses than networks."
+msgstr "Impossível misturar os argumentos --bridge e --network"
 
-#: virtinst/cli.py:332
+#: virtinst/cli.py:672
 msgid "Can't specify more than one of VNC, SDL, or --nographics"
 msgstr "Não foi possível especificar mais de um dos VNC, SDL, ou --nographics "
 
-#: virtinst/cli.py:376 virtinst/cli.py:381 virt-install:320 virt-install:325
-#: virt-install.orig:320 virt-install.orig:325
+#: virtinst/cli.py:700
+#, python-format
+msgid "Didn't match keymap '%s' in keytable!"
+msgstr ""
+
+#: virtinst/cli.py:731 virtinst/cli.py:736
 #, python-format
 msgid "%s option requires an argument"
 msgstr "A %s opção exige um argumento"
 
-#: virtinst/CloneManager.py:54
+#: virtinst/CloneManager.py:109
 #, fuzzy
 msgid "Connection must be a 'virConnect' instance."
 msgstr "'conn' de ser uma instância de virConnect"
 
-#: virtinst/CloneManager.py:102
+#: virtinst/CloneManager.py:162
 #, fuzzy
 msgid "Original xml must be a string."
 msgstr "A variante do SO deve ser uma faixa."
 
-#: virtinst/CloneManager.py:114
+#: virtinst/CloneManager.py:177
 #, python-format
 msgid "Invalid name for new guest: %s"
 msgstr "Nome inválido para o novo convidado: %s"
 
-#: virtinst/CloneManager.py:119
+#: virtinst/CloneManager.py:182
 #, fuzzy, python-format
 msgid "Domain name '%s' already in use."
 msgstr "O domínio chamado %s já existe!"
 
-#: virtinst/CloneManager.py:131
+#: virtinst/CloneManager.py:195
 #, python-format
 msgid "Invalid uuid for new guest: %s"
 msgstr "O uuid para o novo convidado é inválido:%s"
 
-#: virtinst/CloneManager.py:134
+#: virtinst/CloneManager.py:198
 #, fuzzy, python-format
 msgid "UUID '%s' is in use by another guest."
 msgstr "O disco %s já está sendo usado por outro convidado!\n"
 
-#: virtinst/CloneManager.py:149
+#: virtinst/CloneManager.py:226
 #, fuzzy, python-format
 msgid "Could not use path '%s' for cloning: %s"
 msgstr "Não foi possível iniciar pool de armazenamento: %s"
 
-#: virtinst/CloneManager.py:235
+#: virtinst/CloneManager.py:356
+msgid "Cloning policy must be a list of rules."
+msgstr ""
+
+#: virtinst/CloneManager.py:373
 #, fuzzy
 msgid "Original guest name or xml is required."
 msgstr "É necessário um nome de máquina (hostname)"
 
-#: virtinst/CloneManager.py:253
-#, fuzzy
-msgid "Cannot clone remote VM storage."
-msgstr "A conexão não suporta armazenamento remoto."
-
-#: virtinst/CloneManager.py:261
+#: virtinst/CloneManager.py:391
 msgid "Domain with devices to clone must be paused or shutoff."
 msgstr ""
 
-#: virtinst/CloneManager.py:304
-#, fuzzy, python-format
-msgid "Missing path to use as disk clone destination for '%s'"
-msgstr "Falta um novo arquivo para ser usado como imagem do disco %s"
+#: virtinst/CloneManager.py:437
+#, python-format
+msgid ""
+"More disks to clone that new paths specified. (%(passed)d specified, %(need)"
+"d needed"
+msgstr ""
 
-#: virtinst/CloneManager.py:403
+#: virtinst/CloneManager.py:557
 #, fuzzy, python-format
 msgid "Disk '%s' does not exist."
 msgstr "O disco do sistema %s não existe"
 
-#: virtinst/CloneManager.py:406
+#: virtinst/CloneManager.py:568
 #, fuzzy, python-format
 msgid "Could not determine original disk information: %s"
 msgstr "Impossível encontrar pool de armazenamento '%s': %s"
 
-#: virtinst/CloneManager.py:474
+#: virtinst/CloneManager.py:613
 #, fuzzy, python-format
 msgid "Domain '%s' was not found."
 msgstr "Dominío %s não encontrado"
 
-#: virtinst/CloneManager.py:539
-msgid "copying to an existing vdisk is not supported"
-msgstr ""
-
-#: virtinst/CloneManager.py:547
-#, fuzzy, python-format
-msgid "Could not determine storage type for '%s'"
-msgstr "Não pôde definir pool de armazenamento:  %s"
-
-#: virtinst/CloneManager.py:574
-#, python-format
-msgid "Cloning %(srcfile)s"
-msgstr ""
-
-#: virtinst/CloneManager.py:581
-msgid "failed to clone disk"
-msgstr ""
-
-#: virtinst/DistroInstaller.py:51
+#: virtinst/DistroInstaller.py:57
 msgid "Invalid NFS format: No path specified."
 msgstr "Formato NFS inválido: Não foi especificado um caminho."
 
-#: virtinst/DistroInstaller.py:93
+#: virtinst/DistroInstaller.py:101
 #, fuzzy, python-format
 msgid "Invalid 'location' type %s."
 msgstr "A localização especificada para o arquivo é inválida:"
 
-#: virtinst/DistroInstaller.py:99
+#: virtinst/DistroInstaller.py:107
 #, fuzzy
 msgid "'conn' must be specified if 'location' is a storage tuple."
 msgstr "'conn' deve ser especificado com o 'pool_name'"
 
-#: virtinst/DistroInstaller.py:135
+#: virtinst/DistroInstaller.py:145
 #, fuzzy, python-format
 msgid "Checking installer location failed: Could not find media '%s'."
 msgstr "Verificando falha na localização do instalador: %s"
 
-#: virtinst/DistroInstaller.py:138
+#: virtinst/DistroInstaller.py:148
 #, fuzzy
 msgid ""
 "Install media location must be an NFS, HTTP or FTP network install source, "
@@ -254,72 +308,72 @@ msgstr ""
 "A mídia de instalação deve estar localizada em uma fonte NFS, uma rede HTTP "
 "ou FTP ou em um arquivo ou dispositivo local existente"
 
-#: virtinst/DistroInstaller.py:145
+#: virtinst/DistroInstaller.py:155
 #, fuzzy
 msgid "Privilege is required for NFS installations"
 msgstr "É necessário um nome para a máquina virtual."
 
-#: virtinst/Guest.py:100
+#: virtinst/Guest.py:108
 msgid "Unable to connect to hypervisor, aborting installation!"
 msgstr ""
 "Impossível conectar ao hipervisor, a instalação está sendo interrompida!"
 
-#: virtinst/Guest.py:118
+#: virtinst/Guest.py:126
 msgid "Guest"
 msgstr ""
 
-#: virtinst/Guest.py:125
+#: virtinst/Guest.py:133
 #, fuzzy, python-format
 msgid "Guest name '%s' is already in use."
 msgstr "Nome '%s' já está sendo usado por outro pool."
 
-#: virtinst/Guest.py:133
+#: virtinst/Guest.py:141
 msgid "Memory value must be an integer greater than 0"
 msgstr "O valor da memória deve ser um inteiro maior do que 0"
 
-#: virtinst/Guest.py:145
+#: virtinst/Guest.py:153
 msgid "Max Memory value must be an integer greater than 0"
 msgstr "O valor máximo da memória deve ser um inteiro maior do que 0"
 
-#: virtinst/Guest.py:164
+#: virtinst/Guest.py:172
 msgid "Number of vcpus must be a postive integer."
 msgstr "O número de vcpus deve ser um inteiro positivo."
 
-#: virtinst/Guest.py:166
+#: virtinst/Guest.py:174
 #, python-format
 msgid "Number of vcpus must be no greater than %d for this vm type."
 msgstr "O número de vcpus não deve ser maior do que %d para este tipo de vm."
 
-#: virtinst/Guest.py:176
+#: virtinst/Guest.py:184
 msgid "cpuset must be string"
 msgstr "A cpuset deve ser uma cadeia de caracteres"
 
-#: virtinst/Guest.py:178
+#: virtinst/Guest.py:186
 msgid "cpuset can only contain numeric, ',', or '-' characters"
 msgstr "o cpuset pode conter apenas caracteres numéricos, ',', ou '-'"
 
-#: virtinst/Guest.py:186
+#: virtinst/Guest.py:194
 msgid "cpuset contains invalid format."
 msgstr "o cpuset contém formato inválido"
 
-#: virtinst/Guest.py:188 virtinst/Guest.py:192
+#: virtinst/Guest.py:196 virtinst/Guest.py:202
 msgid "cpuset's pCPU numbers must be less than pCPUs."
 msgstr "os números de cpuset's pCPU devem ser menores do que pCPUs."
 
-#: virtinst/Guest.py:212
+#: virtinst/Guest.py:222
 msgid "OS type must be a string."
 msgstr "Tipo de SO deve ser uma faixa"
 
-#: virtinst/Guest.py:224
+#: virtinst/Guest.py:234
 #, python-format
 msgid "OS type '%s' does not exist in our dictionary"
 msgstr "O tipo de SO '%s' não existe em nosso dicionário "
 
-#: virtinst/Guest.py:232
+#: virtinst/Guest.py:242
 msgid "OS variant must be a string."
 msgstr "A variante do SO deve ser uma faixa."
 
-#: virtinst/Guest.py:238
+#: virtinst/Guest.py:248
 #, python-format
 msgid ""
 "OS variant '%(var)s; does not exist in our dictionary for OS type '%(ty)s'"
@@ -327,56 +381,61 @@ msgstr ""
 "Variante de SO %(var)s não existe em nosso dicionário para tipos de SO '%(ty)"
 "s'"
 
-#: virtinst/Guest.py:250
+#: virtinst/Guest.py:260
 #, python-format
 msgid "Unknown OS variant '%s'"
 msgstr "Variante do SO Desconhecida  '%s'"
 
-#: virtinst/Guest.py:291
+#: virtinst/Guest.py:301
 msgid "Must specify whether graphics are enabled"
 msgstr "Deve ser especificado se o modo gráfico está habilitado"
 
-#: virtinst/Guest.py:314
+#: virtinst/Guest.py:324
 msgid "Graphics enabled must be True or False"
 msgstr "Gráficos habilitados deve ser Verdadeiro ou Falso"
 
-#: virtinst/Guest.py:373
+#: virtinst/Guest.py:383
 msgid "You must specify a valid ISO or CD-ROM location for the installation"
 msgstr ""
 "Deve ser indicada uma localização do ISO ou do CD-ROM válida para a "
 "instalação"
 
-#: virtinst/Guest.py:376
+#: virtinst/Guest.py:386
 msgid "The specified media path does not exist."
 msgstr "O caminho especificado para a mídia não existe."
 
-#: virtinst/Guest.py:573
+#: virtinst/Guest.py:415
+#, fuzzy
+msgid "Must pass a VirtualDevice instance."
+msgstr "'conn' de ser uma instância de virConnect"
+
+#: virtinst/Guest.py:660
 msgid "Unable to start domain for guest, aborting installation!"
 msgstr ""
 "Impossível iniciar um domínio para o convidado, a instalação está sento "
 "interrompida!"
 
-#: virtinst/Guest.py:623
+#: virtinst/Guest.py:716
 #, python-format
 msgid "Could not remove old vm '%s': %s"
 msgstr "Impossível remover o vm antigo '%s': %s"
 
-#: virtinst/Guest.py:625
+#: virtinst/Guest.py:718
 #, python-format
 msgid "Domain named %s already exists!"
 msgstr "O domínio chamado %s já existe!"
 
-#: virtinst/Guest.py:632
+#: virtinst/Guest.py:725
 msgid "Creating domain..."
 msgstr "Criando o domínio..."
 
-#: virtinst/Guest.py:635
+#: virtinst/Guest.py:728
 msgid "Unable to create domain for the guest, aborting installation!"
 msgstr ""
 "Impossível criar o domínio para o convidado, a instalação está sendo "
 "interrompida!"
 
-#: virtinst/Guest.py:643
+#: virtinst/Guest.py:736
 msgid ""
 "It appears that your installation has crashed.  You should be able to find "
 "more information in the logs"
@@ -384,14 +443,14 @@ msgstr ""
 "Provavelmente a sua instação falhou. Verifique os arquivos de log para "
 "maiores informações."
 
-#: virtinst/Guest.py:677
+#: virtinst/Guest.py:770
 msgid ""
 "Domain has not existed.  You should be able to find more information in the "
 "logs"
 msgstr ""
 "O domínio existia. Verifique os arquivos de log para maiores informações."
 
-#: virtinst/Guest.py:679
+#: virtinst/Guest.py:772
 msgid ""
 "Domain has not run yet.  You should be able to find more information in the "
 "logs"
@@ -399,23 +458,18 @@ msgstr ""
 "O domínio ainda não foi executado. Verifique os arquivos de log para maiores "
 "informações."
 
-#: virtinst/Guest.py:696
+#: virtinst/Guest.py:789
 msgid "Domain has already been started!"
 msgstr "O domínio já foi iniciado!"
 
-#: virtinst/Guest.py:707
+#: virtinst/Guest.py:809
 msgid "The UUID you entered is already in use by another guest!"
 msgstr "O UUID fornecido já está sendo usado por outro convidado!"
 
-#: virtinst/Guest.py:710
+#: virtinst/Guest.py:812
 msgid "Name and memory must be specified for all guests!"
 msgstr "O nome e a memória devem ser especificados para todos os convidados!"
 
-#: virtinst/Guest.py:745
-#, python-format
-msgid "Invalid dictionary entry for device '%s %s'"
-msgstr "Entrada do dicionário inválida para o dispositivo: %s %s' "
-
 #: virtinst/ImageFetcher.py:86
 #, python-format
 msgid "Retrieving file %s..."
@@ -484,7 +538,7 @@ msgstr "A memória deve ser um inteiro, mas é '%s'"
 msgid "The format for disk %s must be one of %s"
 msgstr "O formato para o disco %s deve ser um do(s) %s"
 
-#: virtinst/ImageParser.py:248
+#: virtinst/ImageParser.py:263
 #, python-format
 msgid "Checking disk signature for %s"
 msgstr ""
@@ -507,27 +561,27 @@ msgstr "O elemento raiz não é 'imagem'"
 msgid "A disk device must be specified."
 msgstr ""
 
-#: virtinst/Installer.py:151
+#: virtinst/Installer.py:156
 msgid "Guest.cdrom must be a boolean type"
 msgstr "O Guest.cdrom deve ser do tipo booleano."
 
-#: virtinst/Installer.py:168 virtinst/Installer.py:173
-#: virtinst/Installer.py:177
+#: virtinst/Installer.py:173 virtinst/Installer.py:178
+#: virtinst/Installer.py:182
 msgid "Must pass both a kernel and initrd"
 msgstr "Devem ser passados ambos: o kernel e o initrd"
 
-#: virtinst/Installer.py:180
+#: virtinst/Installer.py:185
 msgid "Kernel and initrd must be specified by a list, dict, or tuple."
 msgstr ""
 "O Kernel e initrd devem estar especificando por uma lista, dicionário ou "
 "tupla."
 
-#: virtinst/Installer.py:335
+#: virtinst/Installer.py:340
 #, fuzzy
 msgid "A connection must be specified."
 msgstr "Uma localização de origem para a instalação deve ser especificada "
 
-#: virtinst/Installer.py:353
+#: virtinst/Installer.py:358
 #, fuzzy, python-format
 msgid "No 'Guest' class for virtualization type '%s'"
 msgstr "Tipo de virtualização não suportado '%s' "
@@ -536,323 +590,346 @@ msgstr "Tipo de virtualização não suportado '%s' "
 msgid "CDROM media must be specified for the live CD installer."
 msgstr "A mídia do CDROM deve ser especificada para o instalador live CD."
 
-#: virtinst/NodeDeviceParser.py:114
+#: virtinst/NodeDeviceParser.py:118
 msgid "System"
 msgstr ""
 
-#: virtinst/NodeDeviceParser.py:146
+#: virtinst/NodeDeviceParser.py:151
 #, python-format
 msgid "Interface %s"
 msgstr ""
 
-#: virtinst/NodeDeviceParser.py:364 virtinst/NodeDeviceParser.py:392
-#: virtinst/util.py:531 virtinst/VirtualDevice.py:58
+#: virtinst/NodeDeviceParser.py:378 virtinst/NodeDeviceParser.py:406
+#: virtinst/util.py:501 virtinst/VirtualDevice.py:86
 msgid "'conn' must be a virConnect instance."
 msgstr "'conn' de ser uma instância de virConnect"
 
-#: virtinst/NodeDeviceParser.py:411
+#: virtinst/NodeDeviceParser.py:426
 #, fuzzy
 msgid "Connection does not support host device enumeration."
 msgstr "A conexão não suporta  gerenciamento de armazenamento."
 
-#: virtinst/NodeDeviceParser.py:487
+#: virtinst/NodeDeviceParser.py:502
 #, fuzzy, python-format
 msgid "Unknown host device capability '%s'."
 msgstr "Tipo de dispositivo desconhecido '%s'"
 
-#: virtinst/OSDistro.py:99
+#: virtinst/osdict.py:129
+#, python-format
+msgid "Invalid dictionary entry for device '%s %s'"
+msgstr "Entrada do dicionário inválida para o dispositivo: %s %s' "
+
+#: virtinst/OSDistro.py:102
 #, python-format
 msgid "Could not find an installable distribution at '%s'"
 msgstr "Impossível encontrar uma distribuição instalável em '%s'"
 
-#: virtinst/OSDistro.py:109
+#: virtinst/OSDistro.py:112
 msgid "Invalid install location: "
 msgstr "Local para instalação inválido:"
 
-#: virtinst/OSDistro.py:230
+#: virtinst/OSDistro.py:237
 #, fuzzy, python-format
 msgid "Couldn't find %(type)s kernel for %(distro)s tree."
 msgstr "Impossível encontrar um caminho de kernel para o tipo virt '%s'"
 
-#: virtinst/OSDistro.py:244
+#: virtinst/OSDistro.py:252
 #, fuzzy, python-format
 msgid "Could not find boot.iso in %s tree."
 msgstr ""
 "Impossível encontrar um caminho de inicialização iso para este hospedeiro."
 
-#: virtinst/OSDistro.py:383
+#: virtinst/OSDistro.py:413
 #, python-format
 msgid "Could not find a kernel path for virt type '%s'"
 msgstr "Impossível encontrar um caminho de kernel para o tipo virt '%s'"
 
-#: virtinst/OSDistro.py:392
+#: virtinst/OSDistro.py:422
 msgid "Could not find a boot iso path for this tree."
 msgstr ""
 "Impossível encontrar um caminho de inicialização iso para este hospedeiro."
 
-#: virtinst/OSDistro.py:646
+#: virtinst/OSDistro.py:676
 msgid "Unable to determine kernel RPM path"
 msgstr "Impossível determinar o caminho para o kernel RPM"
 
-#: virtinst/OSDistro.py:648
+#: virtinst/OSDistro.py:678
 msgid "Unable to determine install-initrd RPM path"
 msgstr "Incapaz de determinar o caminho para o RPM install-initrd"
 
-#: virtinst/OSDistro.py:659
+#: virtinst/OSDistro.py:689
 msgid "Building initrd"
 msgstr "Gerando o initrd"
 
-#: virtinst/OSDistro.py:1021
+#: virtinst/OSDistro.py:1051
 #, python-format
 msgid "Solaris miniroot not found at %s"
 msgstr ""
 
-#: virtinst/OSDistro.py:1056
+#: virtinst/OSDistro.py:1089
 #, python-format
 msgid "OpenSolaris PV kernel not found at %s"
 msgstr ""
 
-#: virtinst/OSDistro.py:1066
-#, python-format
-msgid "OpenSolaris microroot not found at %s"
-msgstr ""
-
-#: virtinst/Storage.py:85
+#: virtinst/Storage.py:81
 #, python-format
 msgid "Unknown storage object type: %s"
 msgstr "Tipo de objeto de armazenamento desconhecido:  %s"
 
-#: virtinst/Storage.py:108
+#: virtinst/Storage.py:104
 msgid "'conn' must be a libvirt connection object."
 msgstr "'conn' deve ser um objeto de conexão libvirt "
 
-#: virtinst/Storage.py:110
+#: virtinst/Storage.py:106
 msgid "Passed connection is not libvirt storage capable"
 msgstr "Conexão passada não é capaz de armazenar libvirt"
 
-#: virtinst/Storage.py:120
+#: virtinst/Storage.py:116
 #, fuzzy
 msgid "Storage object"
 msgstr "Nome para o novo convidado "
 
-#: virtinst/Storage.py:125
+#: virtinst/Storage.py:121
 #, fuzzy
 msgid "Name for the storage object."
 msgstr "Nome para o novo convidado "
 
-#: virtinst/Storage.py:132
+#: virtinst/Storage.py:128
 msgid "Permissions must be passed as a dict object"
 msgstr "Permissões devem ser passadas como um objeto de dicionário"
 
-#: virtinst/Storage.py:135
+#: virtinst/Storage.py:131
 msgid "Permissions must contain 'mode', 'owner', 'group' and 'label' keys."
 msgstr "Permissões devem conter as chaves  'mode', 'owner', 'group' e 'label' "
 
-#: virtinst/Storage.py:142
+#: virtinst/Storage.py:138
 #, python-format
 msgid "'%s' is not an absolute path."
 msgstr "'%s' não é um caminho absoluto."
 
-#: virtinst/Storage.py:203
+#: virtinst/Storage.py:199
 msgid "Filesystem Directory"
 msgstr "Diretório de Sistema de Arquivo"
 
-#: virtinst/Storage.py:204
+#: virtinst/Storage.py:200
 msgid "Pre-Formatted Block Device"
 msgstr "Dispositivo de Bloco Pré-Formatado"
 
-#: virtinst/Storage.py:205
+#: virtinst/Storage.py:201
 msgid "Network Exported Directory"
 msgstr "Diretório de Rede Exportado"
 
-#: virtinst/Storage.py:206
+#: virtinst/Storage.py:202
 msgid "LVM Volume Group"
 msgstr "Grupo de Volume LVM"
 
-#: virtinst/Storage.py:207
+#: virtinst/Storage.py:203
 msgid "Physical Disk Device"
 msgstr "Dispositivo de Disco Físico"
 
-#: virtinst/Storage.py:208
+#: virtinst/Storage.py:204
 msgid "iSCSI Target"
 msgstr "Alvo iSCSI"
 
-#: virtinst/Storage.py:218 virtinst/Storage.py:255
+#: virtinst/Storage.py:214 virtinst/Storage.py:251
 #, python-format
 msgid "Unknown storage pool type: %s"
 msgstr "Tipo de pool de armazenamento desconhecido: %s"
 
-#: virtinst/Storage.py:277
+#: virtinst/Storage.py:273
 msgid "Storage device type the pool will represent."
 msgstr ""
 
-#: virtinst/Storage.py:296
+#: virtinst/Storage.py:292
 msgid "Host name must be a string"
 msgstr "Nome da máquina deve ser uma faixa"
 
-#: virtinst/Storage.py:315
+#: virtinst/Storage.py:311
 #, python-format
 msgid "Name '%s' already in use by another pool."
 msgstr "Nome '%s' já está sendo usado por outro pool."
 
-#: virtinst/Storage.py:353
+#: virtinst/Storage.py:349
 #, python-format
 msgid "Could not define storage pool: %s"
 msgstr "Não pôde definir pool de armazenamento:  %s"
 
-#: virtinst/Storage.py:363
+#: virtinst/Storage.py:359
 #, python-format
 msgid "Could not build storage pool: %s"
 msgstr "Impossível construir pool de armazenamento: %s"
 
-#: virtinst/Storage.py:372
+#: virtinst/Storage.py:368
 #, python-format
 msgid "Could not start storage pool: %s"
 msgstr "Não foi possível iniciar pool de armazenamento: %s"
 
-#: virtinst/Storage.py:399
+#: virtinst/Storage.py:395
 msgid "Directory to use for the storage pool."
 msgstr ""
 
-#: virtinst/Storage.py:435
+#: virtinst/Storage.py:431
 msgid "The existing device to mount for the pool."
 msgstr ""
 
-#: virtinst/Storage.py:438 virtinst/Storage.py:496
+#: virtinst/Storage.py:434 virtinst/Storage.py:492
 msgid "Location to mount the source device."
 msgstr ""
 
-#: virtinst/Storage.py:456
+#: virtinst/Storage.py:452
 #, python-format
 msgid "Unknown Filesystem format: %s"
 msgstr "Formato de Sistema de Arquivo desconhecido: %s"
 
-#: virtinst/Storage.py:459
+#: virtinst/Storage.py:455
 msgid "Filesystem type of the source device."
 msgstr ""
 
-#: virtinst/Storage.py:472
+#: virtinst/Storage.py:468
 msgid "Device path is required"
 msgstr "É necessário um caminho de dispositivo "
 
-#: virtinst/Storage.py:491 virtinst/Storage.py:665
+#: virtinst/Storage.py:487 virtinst/Storage.py:694
 msgid "Path on the host that is being shared."
 msgstr ""
 
-#: virtinst/Storage.py:493 virtinst/Storage.py:637
+#: virtinst/Storage.py:489 virtinst/Storage.py:666
 #, fuzzy
 msgid "Name of the host sharing the storage."
 msgstr "Nome da instância do convidado"
 
-#: virtinst/Storage.py:514
+#: virtinst/Storage.py:510
 #, python-format
 msgid "Unknown Network Filesystem format: %s"
 msgstr "Formato de Sistema de Arquivo de Rede desconhecido: %s"
 
-#: virtinst/Storage.py:517
+#: virtinst/Storage.py:513
 msgid "Type of network filesystem."
 msgstr ""
 
-#: virtinst/Storage.py:529 virtinst/Storage.py:676
+#: virtinst/Storage.py:525 virtinst/Storage.py:705
 msgid "Hostname is required"
 msgstr "É necessário um nome de máquina (hostname)"
 
-#: virtinst/Storage.py:531 virtinst/Storage.py:614 virtinst/Storage.py:678
+#: virtinst/Storage.py:527 virtinst/Storage.py:643 virtinst/Storage.py:707
 msgid "Host path is required"
 msgstr "É necessário um caminho de máquina"
 
-#: virtinst/Storage.py:549
+#: virtinst/Storage.py:545
 msgid "Location of the existing LVM volume group."
 msgstr ""
 
-#: virtinst/Storage.py:576
-msgid "Path to the existing disk device."
+#: virtinst/Storage.py:570
+msgid "Optional device(s) to build new LVM volume on."
 msgstr ""
 
-#: virtinst/Storage.py:579 virtinst/Storage.py:640
-msgid "Root location for identifying new storage volumes."
+#: virtinst/Storage.py:593
+#, fuzzy
+msgid "Must explicitly specify source path if building' pool"
+msgstr ""
+"Deve-se especificar o formato de disco explicitamente ao formatar um "
+"dispositivo de disco."
+
+#: virtinst/Storage.py:609
+msgid "Path to the existing disk device."
 msgstr ""
 
-#: virtinst/Storage.py:585
-msgid "Disk volume creation is not implemented."
+#: virtinst/Storage.py:612 virtinst/Storage.py:669
+msgid "Root location for identifying new storage volumes."
 msgstr ""
 
-#: virtinst/Storage.py:600
+#: virtinst/Storage.py:629
 #, python-format
 msgid "Unknown Disk format: %s"
 msgstr "Formato de Disco desconhecido: %s"
 
-#: virtinst/Storage.py:603
+#: virtinst/Storage.py:632
 msgid "Format of the source device's partition table."
 msgstr ""
 
-#: virtinst/Storage.py:626
+#: virtinst/Storage.py:655
 msgid "Must explicitly specify disk format if formatting disk device."
 msgstr ""
 "Deve-se especificar o formato de disco explicitamente ao formatar um "
 "dispositivo de disco."
 
-#: virtinst/Storage.py:644
+#: virtinst/Storage.py:673
 msgid "iSCSI volume creation is not implemented."
 msgstr ""
 
-#: virtinst/Storage.py:694
+#: virtinst/Storage.py:734
 msgid "One of pool or pool_name must be specified."
 msgstr "Um dos pool ou pool_name deve ser especificado."
 
-#: virtinst/Storage.py:697 virtinst/Storage.py:770
+#: virtinst/Storage.py:737 virtinst/Storage.py:806
 msgid "'conn' must be specified with 'pool_name'"
 msgstr "'conn' deve ser especificado com o 'pool_name'"
 
-#: virtinst/Storage.py:756
-msgid "Default volume target path range exceeded."
-msgstr "A classe do caminho alvo do volume padrão foi excedida."
-
-#: virtinst/Storage.py:766
+#: virtinst/Storage.py:802
 msgid "Must specify pool_object or pool_name"
 msgstr "Deve-se especificar o pool_object ou pool_name"
 
-#: virtinst/Storage.py:772
+#: virtinst/Storage.py:808
 msgid "Connection does not support storage management."
 msgstr "A conexão não suporta  gerenciamento de armazenamento."
 
-#: virtinst/Storage.py:777
+#: virtinst/Storage.py:813
 #, python-format
 msgid "Couldn't find storage pool '%s': %s"
 msgstr "Impossível encontrar pool de armazenamento '%s': %s"
 
-#: virtinst/Storage.py:781
+#: virtinst/Storage.py:817
 msgid "pool_object must be a virStoragePool"
 msgstr "pool_object deve ser um virStoragePool"
 
-#: virtinst/Storage.py:792
+#: virtinst/Storage.py:831
 msgid "Capacity must be a positive number"
 msgstr "A capacidade deve ser um número positivo"
 
-#: virtinst/Storage.py:813
+#: virtinst/Storage.py:852
 msgid "Allocation must be a non-negative number"
 msgstr "A alocação deve ser um número não negativo"
 
-#: virtinst/Storage.py:833
+#: virtinst/Storage.py:872
 msgid "'pool' must be a virStoragePool instance."
 msgstr "'pool' deve ser uma instância de virStoragePool"
 
-#: virtinst/Storage.py:835
+#: virtinst/Storage.py:874
 #, python-format
 msgid "pool '%s' must be active."
 msgstr "pool '%s' deve estar ativo"
 
-#: virtinst/Storage.py:844
+#: virtinst/Storage.py:886 virtinst/Storage.py:1120
+#, fuzzy
+msgid "input_vol must be a virStorageVol"
+msgstr "pool_object deve ser um virStoragePool"
+
+#: virtinst/Storage.py:888
+msgid ""
+"Creating storage from an existing volume is not supported by this libvirt "
+"version."
+msgstr ""
+
+#: virtinst/Storage.py:892
+msgid "virStorageVolume pointer to clone/use as input."
+msgstr ""
+
+#: virtinst/Storage.py:900
 #, python-format
 msgid "'%s' is not a valid format."
 msgstr "'%s' não é um formato válido"
 
-#: virtinst/Storage.py:854
+#: virtinst/Storage.py:910
 #, python-format
 msgid "Name '%s' already in use by another volume."
 msgstr "O nome '%s' já está sendo usado por outro volume"
 
-#: virtinst/Storage.py:924
+#: virtinst/Storage.py:963
+#, python-format
+msgid "Allocating '%s'"
+msgstr ""
+
+#: virtinst/Storage.py:1023
 #, python-format
 msgid ""
 "There is not enough free space on the storage pool to create the volume. (%d "
@@ -861,7 +938,7 @@ msgstr ""
 "Não há espaço livre suficiente no pool de armazenamento para criar um "
 "volume. (%d M requer alocação > %d M disponível)"
 
-#: virtinst/Storage.py:930
+#: virtinst/Storage.py:1029
 #, python-format
 msgid ""
 "The requested volume capacity will exceed the available pool space when the "
@@ -871,11 +948,11 @@ msgstr ""
 "quando o volume for totalmente alocado. (%d M requer capacidade > %d M "
 "disponível)"
 
-#: virtinst/_util.py:111
+#: virtinst/_util.py:128
 msgid "UUID must be a string."
 msgstr "O UUID deve ser uma cadeia de caracteres."
 
-#: virtinst/_util.py:119
+#: virtinst/_util.py:136
 msgid ""
 "UUID must be a 32-digit hexadecimal number. It may take the form XXXXXXXX-"
 "XXXX-XXXX-XXXX-XXXXXXXXXXXX or may omit hyphens altogether."
@@ -883,193 +960,368 @@ msgstr ""
 "O UUID deve ser um número hexadecimal de 32 dígitos. Ele deve ser da forma "
 "forma XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX  podendo ser omitidos os hifens. "
 
-#: virtinst/_util.py:130
+#: virtinst/_util.py:147
 #, fuzzy, python-format
 msgid "%s name must be a string between 0 and 50 characters"
 msgstr ""
 "O nome do sistema deve ser uma string maior do que 0 e não pode ter mais do "
 "que 50 caracteres"
 
-#: virtinst/_util.py:133
+#: virtinst/_util.py:150
 #, fuzzy, python-format
 msgid "%s name can not be only numeric characters"
 msgstr "O nome do sistema não pode ter apenas caracteres numéricos"
 
-#: virtinst/_util.py:136
+#: virtinst/_util.py:153
 #, fuzzy, python-format
 msgid "%s name can only contain alphanumeric, '_', '.', or '-' characters"
 msgstr ""
 "O nome do sistema pode apenas conter caracteres alfanuméricos '_', '.', ':', "
 "'+', or '-'"
 
-#: virtinst/util.py:67
+#: virtinst/_util.py:276
+#, fuzzy
+msgid "Name generation range exceeded."
+msgstr "A classe do caminho alvo do volume padrão foi excedida."
+
+#: virtinst/util.py:69
 #, python-format
 msgid "Invalid line length while parsing %s."
 msgstr "Encontrado tamanho de linha inválido no processo de análise %s"
 
-#: virtinst/util.py:68
+#: virtinst/util.py:70
 #, python-format
 msgid "Defaulting bridge to xenbr%d"
 msgstr "Padronizando ponte para xenbr%d"
 
-#: virtinst/util.py:568
+#: virtinst/util.py:538 virtconv/parsers/ovf.py:160
 #, fuzzy
 msgid "'path' or 'func' is required."
 msgstr "É necessário um caminho de máquina"
 
-#: virtinst/VirtualAudio.py:38
+#: virtinst/VirtualAudio.py:40
 #, python-format
 msgid "'model' must be a string,  was '%s'."
 msgstr "'modelo' deve ser uma faixa, era '%s'"
 
-#: virtinst/VirtualAudio.py:41
+#: virtinst/VirtualAudio.py:43
 #, python-format
 msgid "Unsupported sound model '%s'"
 msgstr "Modelo de Som não suportado '%s'"
 
-#: virtinst/VirtualDevice.py:43
+#: virtinst/VirtualCharDevice.py:64
+msgid "Psuedo TTY"
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:66
+#, fuzzy
+msgid "Physical host character device"
+msgstr "Dispositivo de Disco Físico"
+
+#: virtinst/VirtualCharDevice.py:68
+msgid "Standard input/output"
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:70
+msgid "Named pipe"
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:72
+msgid "Output to a file"
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:74
+msgid "Virtual console"
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:76
+msgid "Null device"
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:78
+msgid "TCP net console"
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:80
+msgid "UDP net console"
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:82
+msgid "Unix socket"
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:94
+msgid "Client mode."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:96
+msgid "Server mode."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:139
+#, fuzzy, python-format
+msgid "Unknown character device type '%s'."
+msgstr "Tipo de dispositivo desconhecido '%s'"
+
+#: virtinst/VirtualCharDevice.py:147 virtinst/VirtualCharDevice.py:157
+#, fuzzy, python-format
+msgid "Unknown character device type '%s'"
+msgstr "Tipo de dispositivo desconhecido '%s'"
+
+#: virtinst/VirtualCharDevice.py:173
+msgid "Method used to expose character device in the host."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:186
+#, fuzzy, python-format
+msgid "Unknown character mode '%s'."
+msgstr "Tipo de dispositivo desconhecido '%s'"
+
+#: virtinst/VirtualCharDevice.py:213
+#, fuzzy, python-format
+msgid "Unknown protocol '%s'."
+msgstr "Opção de disco -- Desconhecida '%s'."
+
+#: virtinst/VirtualCharDevice.py:232
+#, python-format
+msgid "A source path is required for character device type '%s'"
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:282
+msgid "Host character device to attach to guest."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:288
+msgid "Named pipe to use for input and output."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:294
+msgid "File path to record device output."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:302 virtinst/VirtualCharDevice.py:312
+msgid "Target connect/listen mode."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:305
+msgid "Unix socket path."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:315
+msgid "Address to connect/listen to."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:318
+msgid "Port on target host to connect/listen to."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:321
+msgid "Format used when sending data."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:325
+#, fuzzy
+msgid "A host and port must be specified."
+msgstr "Uma localização de origem para a instalação deve ser especificada "
+
+#: virtinst/VirtualCharDevice.py:337
+msgid "Host address to bind to."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:340
+msgid "Host port to bind to."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:343
+msgid "Host address to send output to."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:346
+msgid "Host port to send output to."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:351
+#, fuzzy
+msgid "A connection port must be specified."
+msgstr "Uma localização de origem para a instalação deve ser especificada "
+
+#: virtinst/VirtualDevice.py:63
+msgid "Virtual device type must be set in subclass."
+msgstr ""
+
+#: virtinst/VirtualDevice.py:66
+#, fuzzy, python-format
+msgid "Unknown virtual device type '%s'."
+msgstr "Tipo de dispositivo desconhecido '%s'"
+
+#: virtinst/VirtualDevice.py:71
 msgid "'conn' must be a virConnect instance"
 msgstr "'conn' deve ser uma instância de virConnect"
 
-#: virtinst/VirtualDevice.py:67
+#: virtinst/VirtualDevice.py:104
 #, python-format
 msgid "'%s' must be True or False"
 msgstr "'%s' deve ser Verdadeiro ou Falso"
 
-#: virtinst/VirtualDevice.py:71
+#: virtinst/VirtualDevice.py:108
 #, python-format
 msgid "'%s' must be a string, not '%s'."
 msgstr "'%s' deve ser uma faixa e não '%s'."
 
-#: virtinst/VirtualDisk.py:205
+#: virtinst/VirtualDisk.py:262
+#, fuzzy, python-format
+msgid "Error validating clone path: %s"
+msgstr "Erro ao criar um disco de cdrom:  %s"
+
+#: virtinst/VirtualDisk.py:271
 msgid "'size' must be a number greater than 0."
 msgstr "'tamanho' deve ser maior do que 0."
 
-#: virtinst/VirtualDisk.py:215
+#: virtinst/VirtualDisk.py:281
 #, python-format
 msgid "Unknown storage type '%s'"
 msgstr "Tipo de armazenamento desconhecido '%s'"
 
-#: virtinst/VirtualDisk.py:224
+#: virtinst/VirtualDisk.py:290
 #, python-format
 msgid "Unknown device type '%s'"
 msgstr "Tipo de dispositivo desconhecido '%s'"
 
-#: virtinst/VirtualDisk.py:258
+#: virtinst/VirtualDisk.py:324
 msgid "vol_object must be a virStorageVol instance"
 msgstr "vol_object deve ser uma instância de virStorageVol"
 
-#: virtinst/VirtualDisk.py:266
+#: virtinst/VirtualDisk.py:332
 msgid "vol_install must be a StorageVolume  instance."
 msgstr "vol_install deve ser uma instância de StorageVolume."
 
-#: virtinst/VirtualDisk.py:292
+#: virtinst/VirtualDisk.py:358
 #, fuzzy, python-format
 msgid "Unknown cache mode '%s'"
 msgstr "Tipo de dispositivo desconhecido '%s'"
 
-#: virtinst/VirtualDisk.py:353
+#: virtinst/VirtualDisk.py:373
+#, fuzzy, python-format
+msgid "SELinux label '%s' is not valid."
+msgstr "'%s' não é um formato válido"
+
+#: virtinst/VirtualDisk.py:433
 msgid "Unknown storage volume type."
 msgstr "Tipo de volume de armazenamento desconhecido"
 
-#: virtinst/VirtualDisk.py:372
+#: virtinst/VirtualDisk.py:449
 #, python-format
 msgid "Passed type '%s' does not match detected storage type '%s'"
 msgstr ""
 "Tipo passado '%s' não coincide com o tipo de armazenamento detectado '%s'"
 
-#: virtinst/VirtualDisk.py:382
+#: virtinst/VirtualDisk.py:504
 msgid "volName must be a tuple of the form ('poolname', 'volname')"
 msgstr "volName deve ser uma tupla do formato ('poolname', 'volname')"
 
-#: virtinst/VirtualDisk.py:385
+#: virtinst/VirtualDisk.py:507
 msgid "'volName' requires a passed connection."
 msgstr "'volName' requer uma conexão passada."
 
-#: virtinst/VirtualDisk.py:387
+#: virtinst/VirtualDisk.py:509
 msgid "Connection does not support storage lookup."
 msgstr "A Conexão não suporta a busca de armazenamento."
 
-#: virtinst/VirtualDisk.py:393
+#: virtinst/VirtualDisk.py:515
 #, python-format
 msgid "Couldn't lookup volume object: %s"
 msgstr "Não foi possível buscar objeto do volume: %s"
 
-#: virtinst/VirtualDisk.py:436
+#: virtinst/VirtualDisk.py:540
+#, python-format
+msgid "Device type '%s' requires a path"
+msgstr "O tipo do dispositivo '%s' exige um caminho."
+
+#: virtinst/VirtualDisk.py:583
 #, fuzzy, python-format
 msgid "Size must be specified for non existent volume path '%s'"
 msgstr "Um tamanho para caminhos não existentes deve ser especificado  '%s'"
 
-#: virtinst/VirtualDisk.py:459
+#: virtinst/VirtualDisk.py:603
 #, python-format
 msgid ""
 "Cannot use storage '%(path)s': '%(rootdir)s' is not managed on the remote "
 "host."
 msgstr ""
 
-#: virtinst/VirtualDisk.py:464
+#: virtinst/VirtualDisk.py:608
 #, python-format
 msgid "Cannot use storage %(path)s: %(err)s"
 msgstr ""
 
-#: virtinst/VirtualDisk.py:517
+#: virtinst/VirtualDisk.py:686
 msgid "Connection doesn't support remote storage."
 msgstr "A conexão não suporta armazenamento remoto."
 
-#: virtinst/VirtualDisk.py:534
-#, python-format
-msgid "Device type '%s' requires a path"
-msgstr "O tipo do dispositivo '%s' exige um caminho."
-
-#: virtinst/VirtualDisk.py:549
+#: virtinst/VirtualDisk.py:689
 msgid "Must specify libvirt managed storage if on a remote connection"
 msgstr ""
 "Deve especificar o armazenamento gerenciado do libvirt caso esteja em uma "
 "conexão remota."
 
-#: virtinst/VirtualDisk.py:558
+#: virtinst/VirtualDisk.py:726
 #, fuzzy, python-format
 msgid "The path '%s' must be a file or a device, not a directory"
 msgstr "O caminho deve ser um arquivo ou um dispositivo, não um diretório"
 
-#: virtinst/VirtualDisk.py:568
+#: virtinst/VirtualDisk.py:735
 #, python-format
 msgid "Cannot create storage for %s device."
 msgstr "Não foi possível criar armazenamento para o dispositivo %s."
 
-#: virtinst/VirtualDisk.py:573
-msgid "Local block device path must exist."
+#: virtinst/VirtualDisk.py:740
+#, fuzzy, python-format
+msgid "Local block device path '%s' must exist."
 msgstr "O caminho do dispositivo de bloco local não existe."
 
-#: virtinst/VirtualDisk.py:581
+#: virtinst/VirtualDisk.py:749
 #, python-format
 msgid "size is required for non-existent disk '%s'"
 msgstr "Um tamanho para discos não existentes deve ser fornecido '%s'"
 
-#: virtinst/VirtualDisk.py:584
+#: virtinst/VirtualDisk.py:752
 #, python-format
 msgid "No write access to directory '%s'"
 msgstr "Diretório não possui acesso de edição '%s'"
 
-#: virtinst/VirtualDisk.py:620
-msgid "Creating storage file..."
+#: virtinst/VirtualDisk.py:777
+#, python-format
+msgid "Cloning %(srcfile)s"
+msgstr ""
+
+#: virtinst/VirtualDisk.py:780
+#, fuzzy, python-format
+msgid "Creating storage file %s"
 msgstr "Criando arquivo de armazenamento..."
 
-#: virtinst/VirtualDisk.py:626
+#: virtinst/VirtualDisk.py:793
+msgid "copying to an existing vdisk is not supported"
+msgstr ""
+
+#: virtinst/VirtualDisk.py:796
+msgid "failed to clone disk"
+msgstr ""
+
+#: virtinst/VirtualDisk.py:807
 #, fuzzy, python-format
 msgid "Error creating vdisk %s"
 msgstr "Erro ao criar um disco de cdrom:  %s"
 
-#: virtinst/VirtualDisk.py:647
+#: virtinst/VirtualDisk.py:832
 #, python-format
 msgid "Error creating diskimage %s: %s"
 msgstr "Erro ao criar diskimage %s: %s"
 
-#: virtinst/VirtualDisk.py:669
+#: virtinst/VirtualDisk.py:932
 msgid "'disknode' or self.target must be set!"
 msgstr "'disknode' ou self.target devem ser configurados!"
 
-#: virtinst/VirtualDisk.py:741
+#: virtinst/VirtualDisk.py:1003
 msgid ""
 "The filesystem will not have enough free space to fully allocate the sparse "
 "file when the guest is running."
@@ -1077,113 +1329,141 @@ msgstr ""
 "O filesystem não terá espaço livre suficiente para alocar totalmente o "
 "arquivo esparso quando o convidado estiver executando."
 
-#: virtinst/VirtualDisk.py:746
+#: virtinst/VirtualDisk.py:1008
 msgid "There is not enough free space to create the disk."
 msgstr "Não existe espaço livre suficiente para criar o disco."
 
-#: virtinst/VirtualDisk.py:750
+#: virtinst/VirtualDisk.py:1012
 #, python-format
 msgid " %d M requested > %d M available"
 msgstr " %d M necessário > %d M disponível"
 
-#: virtinst/VirtualDisk.py:840
+#: virtinst/VirtualDisk.py:1175
 msgid "Cannot determine device bus/type."
 msgstr "Não foi possível determinar o dispositivo bus/tipo"
 
-#: virtinst/VirtualDisk.py:847
+#: virtinst/VirtualDisk.py:1182
 msgid "IDE CDROM must use 'hdc', but target in use."
 msgstr "IDE CDROM deve usar 'hdc', alvo está em uso."
 
-#: virtinst/VirtualDisk.py:863
+#: virtinst/VirtualDisk.py:1198
 #, python-format
 msgid "No more space for disks of type '%s'"
 msgstr "Não há mais espaço para discos do tipo '%s'"
 
-#: virtinst/VirtualGraphics.py:38
+#: virtinst/VirtualGraphics.py:40
 msgid "Unknown graphics type"
 msgstr "Tipo de gráficos desconhecido"
 
-#: virtinst/VirtualGraphics.py:61
+#: virtinst/VirtualGraphics.py:63
 msgid "Keymap must be a string"
 msgstr "O mapa do teclado deve ser uma cadeia de caracteres"
 
-#: virtinst/VirtualGraphics.py:63
+#: virtinst/VirtualGraphics.py:65
 msgid "Keymap must be less than 16 characters"
 msgstr "O mapa de teclado deve ter menos do que 16 caracteres"
 
-#: virtinst/VirtualGraphics.py:65
+#: virtinst/VirtualGraphics.py:67
 msgid "Keymap can only contain alphanumeric, '_', or '-' characters"
 msgstr ""
 "O mapa do teclado deve conter somente caracteres alfanuméricos, '_' ou '-'"
 
-#: virtinst/VirtualGraphics.py:76
+#: virtinst/VirtualGraphics.py:78
 msgid ""
 "VNC port must be a number between 5900 and 65535, or -1 for auto allocation"
 msgstr ""
 "Porta do VNC deve ser um número entre 5900 e 65535, ou um -1 para auto-"
 "alocação."
 
-#: virtinst/VirtualHostDevice.py:39
+#: virtinst/VirtualHostDevice.py:43
 msgid "'name' or 'nodedev' required."
 msgstr ""
 
-#: virtinst/VirtualHostDevice.py:58
+#: virtinst/VirtualHostDevice.py:62
 #, python-format
 msgid "Node device type '%s' cannot be attached to  guest."
 msgstr ""
 
-#: virtinst/VirtualHostDevice.py:124
+#: virtinst/VirtualHostDevice.py:130
 #, fuzzy
 msgid "'nodedev' must be a USBDevice instance."
 msgstr "'conn' de ser uma instância de virConnect"
 
-#: virtinst/VirtualHostDevice.py:140
+#: virtinst/VirtualHostDevice.py:146
 msgid "'vendor' and 'product', or 'bus' and  'device' are required."
 msgstr ""
 
-#: virtinst/VirtualHostDevice.py:173
+#: virtinst/VirtualHostDevice.py:179
 #, fuzzy
 msgid "'nodedev' must be a PCIDevice instance."
 msgstr "'conn' de ser uma instância de virConnect"
 
-#: virtinst/VirtualHostDevice.py:182
+#: virtinst/VirtualHostDevice.py:188
 msgid "'domain', 'bus', 'slot', and 'function' must be specified."
 msgstr ""
 
-#: virtinst/VirtualHostDevice.py:207
+#: virtinst/VirtualHostDevice.py:215
 #, python-format
 msgid "Could not detach PCI device: %s"
 msgstr ""
 
-#: virtinst/VirtualNetworkInterface.py:40
+#: virtinst/VirtualInputDevice.py:46
+#, fuzzy, python-format
+msgid "Unknown input type '%s'."
+msgstr "Tipo de dispositivo desconhecido '%s'"
+
+#: virtinst/VirtualInputDevice.py:54
+#, fuzzy, python-format
+msgid "Unknown input bus '%s'."
+msgstr "Variante do SO Desconhecida  '%s'"
+
+#: virtinst/VirtualNetworkInterface.py:45
 #, fuzzy
-msgid "MAC address must be a string."
-msgstr "Tipo de SO deve ser uma faixa"
+msgid "Shared physical device"
+msgstr "Dispositivo de Disco Físico"
 
-#: virtinst/VirtualNetworkInterface.py:46
-msgid "MAC address must be of the format AA:BB:CC:DD:EE:FF"
-msgstr "O endereço MAC deve ser do formato AA:BB:CC:DD:EE:FF"
+#: virtinst/VirtualNetworkInterface.py:47
+msgid "Virtual networking"
+msgstr ""
+
+#: virtinst/VirtualNetworkInterface.py:49
+msgid "Usermode networking"
+msgstr ""
+
+#: virtinst/VirtualNetworkInterface.py:51
+#, fuzzy, python-format
+msgid "Unknown network type '%s'"
+msgstr "Tipo de rede %s desconhecido"
 
-#: virtinst/VirtualNetworkInterface.py:57
+#: virtinst/VirtualNetworkInterface.py:72
 msgid "A network name was not provided"
 msgstr "Não foi fornecido nenhum nome de rede"
 
-#: virtinst/VirtualNetworkInterface.py:63
+#: virtinst/VirtualNetworkInterface.py:78
 #, python-format
 msgid "Unknown network type %s"
 msgstr "Tipo de rede %s desconhecido"
 
-#: virtinst/VirtualNetworkInterface.py:79
+#: virtinst/VirtualNetworkInterface.py:90
+#, fuzzy
+msgid "MAC address must be a string."
+msgstr "Tipo de SO deve ser uma faixa"
+
+#: virtinst/VirtualNetworkInterface.py:94
+msgid "MAC address must be of the format AA:BB:CC:DD:EE:FF"
+msgstr "O endereço MAC deve ser do formato AA:BB:CC:DD:EE:FF"
+
+#: virtinst/VirtualNetworkInterface.py:113
 #, fuzzy, python-format
 msgid "Virtual network '%s' does not exist: %s"
 msgstr "O disco do sistema %s não existe"
 
-#: virtinst/VirtualNetworkInterface.py:82
+#: virtinst/VirtualNetworkInterface.py:116
 #, python-format
 msgid "Virtual network '%s' has not been started."
 msgstr ""
 
-#: virtinst/VirtualNetworkInterface.py:105
+#: virtinst/VirtualNetworkInterface.py:139
 msgid ""
 "The MAC address you entered is already in use by another active virtual "
 "machine."
@@ -1191,14 +1471,14 @@ msgstr ""
 "O endereço MAC que foi fornecido já está sendo usado por outra máquina "
 "virtual ativa."
 
-#: virtinst/VirtualNetworkInterface.py:108
+#: virtinst/VirtualNetworkInterface.py:142
 msgid ""
 "The MAC address you entered conflicts with a device on the physical host."
 msgstr ""
 "O endereço de MAC fornecido está em conflito com o dispositivo na máquina "
 "física."
 
-#: virtinst/VirtualNetworkInterface.py:110
+#: virtinst/VirtualNetworkInterface.py:144
 msgid ""
 "The MAC address you entered is already in use by another inactive virtual "
 "machine."
@@ -1206,12 +1486,12 @@ msgstr ""
 "O endereço MAC que foi fornecido já está sendo usado por outra máquina "
 "virtual inativa."
 
-#: virtconv/diskcfg.py:242
+#: virtconv/diskcfg.py:251
 #, fuzzy, python-format
 msgid "Cannot convert to disk format %s"
 msgstr "Formato de Disco desconhecido: %s"
 
-#: virtconv/diskcfg.py:255
+#: virtconv/diskcfg.py:264
 #, python-format
 msgid "Cannot convert disk with absolute path %s"
 msgstr ""
@@ -1238,6 +1518,28 @@ msgstr ""
 msgid "Disk %s:%s storage does not exist"
 msgstr "O disco do sistema %s não existe"
 
+#: virtconv/parsers/ovf.py:212
+#, python-format
+msgid "Didn't find parent bus for disk '%s'"
+msgstr ""
+
+#: virtconv/parsers/ovf.py:226 virtconv/parsers/ovf.py:242
+#, fuzzy, python-format
+msgid "Unknown reference id '%s' for path %s."
+msgstr "Formato de Disco desconhecido: %s"
+
+#: virtconv/parsers/ovf.py:235
+#, fuzzy, python-format
+msgid "Unknown storage path type %s."
+msgstr "Tipo de pool de armazenamento desconhecido: %s"
+
+#: virtconv/parsers/ovf.py:396
+#, python-format
+msgid ""
+"OVF section '%s' is listed as required, but parser doesn't know how to "
+"handle it."
+msgstr ""
+
 #: virtconv/parsers/virtimage.py:212
 #, fuzzy, python-format
 msgid "Couldn't import file '%s': %s"
@@ -1267,74 +1569,72 @@ msgstr ""
 msgid "No displayName defined in \"%s\""
 msgstr ""
 
-#: virt-clone:43
+#: virt-clone:47
 msgid "What is the name for the cloned virtual machine?"
 msgstr "Qual o nome da máquina virtual clonada?"
 
-#: virt-clone:61
+#: virt-clone:48
+#, fuzzy
+msgid "A name is required for the new virtual machine."
+msgstr "É necessário um nome para a máquina virtual."
+
+#: virt-clone:65
 #, fuzzy
 msgid "What is the name of the original virtual machine?"
 msgstr "Qual o nome ou uuid da máquina original virtual? "
 
-#: virt-clone:102
+#: virt-clone:66
+#, fuzzy
+msgid "An original machine name or xml file is required."
+msgstr "É necessário um nome de máquina (hostname)"
+
+#: virt-clone:112
 #, fuzzy, python-format
 msgid "What would you like to use as the cloned disk (file path) for '%s'?"
 msgstr "Qual você deseja usar como disco clonado (caminho do arquivo)? "
 
-#: virt-clone:113
-#, python-format
-msgid "This will overwrite the existing path '%s'!\n"
-msgstr "Isto sobrescreverá os caminhos existentes  '%s'!\n"
-
-#: virt-clone:115
-msgid "Do you really want to use this disk (yes or no)?"
-msgstr "Você quer realmente usar o disco (sim ou não)?  "
-
-#: virt-clone:120 virt-install:206 virt-install.orig:206
-#, python-format
-msgid "Disk %s is already in use by another guest!\n"
-msgstr "O disco %s já está sendo usado por outro convidado!\n"
-
-#: virt-clone:121 virt-install:207 virt-install.orig:207
-msgid "Do you really want to use the disk (yes or no)? "
-msgstr "Você quer realmente usar o disco (sim ou não)? "
-
-#: virt-clone:148 virt-image:88 virt-install:334 virt-install.orig:334
+#: virt-clone:134 virt-image:78 virt-install:499
 msgid "Connect to hypervisor with URI"
 msgstr "Conectar ao hipervisor com URI "
 
-#: virt-clone:151 virt-image:91 virt-install:337 virt-install.orig:337
+#: virt-clone:137 virt-image:81 virt-install:502
 msgid "General Options"
 msgstr "Opções Gerais"
 
-#: virt-clone:154
+#: virt-clone:140
 #, fuzzy
 msgid "Name of the original guest; The status must be shut off or paused."
 msgstr "Nome ou uuid do convidado original; O status deve ser fechado "
 
-#: virt-clone:159
+#: virt-clone:145
 #, fuzzy
 msgid "XML file to use as the original guest."
 msgstr "Arquivo a ser usado como imagem do disco"
 
-#: virt-clone:162
+#: virt-clone:147
+msgid ""
+"Auto generate clone name and storage paths from the original guest "
+"configuration."
+msgstr ""
+
+#: virt-clone:151
 msgid "Name for the new guest"
 msgstr "Nome para o novo convidado "
 
-#: virt-clone:166
+#: virt-clone:155
 msgid "New UUID for the clone guest; Default is a randomly generated UUID"
 msgstr ""
 "Novo UUID para o clone convidado; o padrão é uma UUID gerada aleatoriamente"
 
-#: virt-clone:170 virt-install:415 virt-install.orig:415
+#: virt-clone:159 virt-install:588
 msgid "Storage Configuration"
 msgstr "Configuração de Armazenamento"
 
-#: virt-clone:174
+#: virt-clone:163
 msgid "New file to use as the disk image for the new guest"
 msgstr "Novo arquivo a ser usado como imagem do disco para o novo convidado. "
 
-#: virt-clone:179
+#: virt-clone:168
 msgid ""
 "Force to copy devices (eg, if 'hdc' is a readonly cdrom device, --force-"
 "copy=hdc)"
@@ -1342,20 +1642,20 @@ msgstr ""
 "Forçar a cópia de dispositivos (i.e. se 'hdc' for um dispositivo de cdrom "
 "somente de leitura, --force-copy=hdc)"
 
-#: virt-clone:183
+#: virt-clone:172
 msgid "Do not use a sparse file for the clone's disk image"
 msgstr "Não use um arquivo separado para a imagem em disco do clone "
 
-#: virt-clone:187
+#: virt-clone:176
 msgid "Preserve a new file to use as the disk image for the new guest"
 msgstr ""
 "Preserve um novo arquivo para uso como imagem do disco para o novo convidado "
 
-#: virt-clone:191 virt-image:128 virt-install:435 virt-install.orig:435
+#: virt-clone:180 virt-image:118 virt-install:610
 msgid "Networking Configuration"
 msgstr "Configuração de Rede"
 
-#: virt-clone:195
+#: virt-clone:184
 msgid ""
 "New fixed MAC address for the clone guest. Default is a randomly generated "
 "MAC"
@@ -1363,16 +1663,22 @@ msgstr ""
 "Endereço MAC fixado para o clone convidado. O padrão é um endereço MAC "
 "gerado aleatoriamente. "
 
-#: virt-clone:199 virt-image:158 virt-install:470 virt-install.orig:470
+#: virt-clone:188 virt-image:138 virt-install:639
 msgid "Miscellaneous Options"
 msgstr "Opções Diversas"
 
-#: virt-clone:201 virt-convert:91 virt-image:172 virt-install:472
-#: virt-install.orig:472
+#: virt-clone:190 virt-convert:91 virt-image:152 virt-install:641
 msgid "Print debugging information"
 msgstr "Imprimir informação de depuração"
 
-#: virt-clone:203 virt-image:174
+#: virt-clone:192 virt-image:154 virt-install:652
+#, fuzzy
+msgid "Request user input for ambiguous situations or required options."
+msgstr ""
+"Requer entrada de usuário para situações ambíguas. Padrão é falso, portanto "
+"irá concluir se uma solicitação for ignorada."
+
+#: virt-clone:195 virt-image:157
 msgid ""
 "Do not prompt for input. Answers yes where applicable, terminates for all "
 "other prompts"
@@ -1380,19 +1686,19 @@ msgstr ""
 "Não solicite entrada. Responda sim, onde solicitado, conclua todas as outras "
 "solicitações."
 
-#: virt-clone:219
+#: virt-clone:212
 #, fuzzy
 msgid "Must be privileged to clone Xen guests"
 msgstr "É necessário ser root para clonar os convidados Xen "
 
-#: virt-clone:250
+#: virt-clone:242
 #, python-format
 msgid ""
 "\n"
 "Clone '%s' created successfully."
 msgstr ""
 
-#: virt-clone:265 virt-image:283 virt-install:784 virt-install.orig:784
+#: virt-clone:257 virt-image:267 virt-install:933
 msgid "Installation aborted at user request"
 msgstr "A instalação foi interrompida por solicitação do usuário "
 
@@ -1408,11 +1714,11 @@ msgstr ""
 msgid "Output disk format"
 msgstr ""
 
-#: virt-convert:60 virt-install:386 virt-install.orig:386
+#: virt-convert:60 virt-install:557
 msgid "This guest should be a fully virtualized guest"
 msgstr "Este convidado deveria ser um convidado totalmente virtualizado"
 
-#: virt-convert:62 virt-install:388 virt-install.orig:388
+#: virt-convert:62 virt-install:559
 msgid "This guest should be a paravirtualized guest"
 msgstr "Este convidado deveria ser um convidado paravirtualizado"
 
@@ -1420,7 +1726,7 @@ msgstr "Este convidado deveria ser um convidado paravirtualizado"
 msgid "Machine Architecture Type (i686/x86_64/ppc)"
 msgstr ""
 
-#: virt-convert:71 virt-install:360 virt-install.orig:360
+#: virt-convert:71 virt-install:525
 msgid ""
 "The OS type for fully virtualized guests, e.g. 'linux', 'unix', 'windows'"
 msgstr ""
@@ -1436,7 +1742,7 @@ msgstr ""
 "A variante de SO para convidados completamente virtualizados, ex.: "
 "'fedora6', rhel5', solaris10', 'win2k', "
 
-#: virt-convert:78 virt-install:376 virt-install.orig:376
+#: virt-convert:78 virt-install:547
 msgid ""
 "Disables APIC for fully virtualized guest (overrides value in os-type/os-"
 "variant db)"
@@ -1444,7 +1750,7 @@ msgstr ""
 "Desabilita APIC para convidados totalmente virtualizados (sobrepõe os "
 "valores em os-type/os-variant db)"
 
-#: virt-convert:82 virt-install:380 virt-install.orig:380
+#: virt-convert:82 virt-install:551
 msgid ""
 "Disables ACPI for fully virtualized guest (overrides value in os-type/os-"
 "variant db)"
@@ -1456,133 +1762,133 @@ msgstr ""
 msgid "Don't be verbose"
 msgstr ""
 
-#: virt-convert:97
+#: virt-convert:100
 #, fuzzy
 msgid "You need to provide an input VM definition"
 msgstr "Você precisa fornecer um descritor da imagem XML"
 
-#: virt-convert:99
+#: virt-convert:102
 msgid "Too many arguments provided"
 msgstr ""
 
-#: virt-convert:103
+#: virt-convert:106
 #, fuzzy, python-format
 msgid "Unknown output disk format \"%s\""
 msgstr "Formato de Disco desconhecido: %s"
 
-#: virt-convert:118
+#: virt-convert:121
 #, fuzzy, python-format
 msgid "Unknown output format \"%s\")"
 msgstr "Formato de Disco desconhecido: %s"
 
-#: virt-convert:120
+#: virt-convert:123
 #, python-format
 msgid "No output handler for format \"%s\")"
 msgstr ""
 
-#: virt-convert:124
+#: virt-convert:127
 #, python-format
 msgid "Couldn't access input argument \"%s\"\n"
 msgstr ""
 
-#: virt-convert:131
+#: virt-convert:134
 #, fuzzy, python-format
 msgid "Couldn't determine input format for \"%s\": %s"
 msgstr "Impossível encontrar pool de armazenamento '%s': %s"
 
-#: virt-convert:136
+#: virt-convert:139
 #, fuzzy, python-format
 msgid "Unknown input format \"%s\")"
 msgstr "Formato de Disco desconhecido: %s"
 
-#: virt-convert:138
+#: virt-convert:141
 #, python-format
 msgid "No input handler for format \"%s\""
 msgstr ""
 
-#: virt-convert:173
+#: virt-convert:176
 #, fuzzy, python-format
 msgid "Couldn't clean up output directory \"%s\": %s"
 msgstr "Não foi possível buscar objeto do volume: %s"
 
-#: virt-convert:190 virt-convert:193
+#: virt-convert:192 virt-convert:195
 #, fuzzy, python-format
 msgid "Couldn't import file \"%s\": %s"
 msgstr "Impossível pegar o arquivo %s: %s"
 
-#: virt-convert:230
+#: virt-convert:232
 #, python-format
 msgid "Generating output in '%(format)s' format to %(dir)s/"
 msgstr ""
 
-#: virt-convert:249
+#: virt-convert:251
 #, python-format
 msgid "Converting disk '%(path)s' to type %(format)s..."
 msgstr ""
 
-#: virt-convert:256 virt-convert:259
+#: virt-convert:258 virt-convert:261
 #, fuzzy, python-format
 msgid "Couldn't convert disks: %s"
 msgstr "Impossível pegar o arquivo %s: %s"
 
-#: virt-convert:265
+#: virt-convert:267
 #, fuzzy, python-format
 msgid "Couldn't export to file \"%s\": %s"
 msgstr "Impossível pegar o arquivo %s: %s"
 
-#: virt-convert:277
+#: virt-convert:279
 #, fuzzy
 msgid "Aborted at user request"
 msgstr "A instalação foi interrompida por solicitação do usuário "
 
-#: virt-image:64
-#, python-format
+#: virt-image:50
+#, fuzzy, python-format
 msgid ""
 "Warning: more networks were provided [%i] then nics required [%i]. All "
-"extras are ignored"
+"extras are ignored."
 msgstr ""
 "Aviso: foram fornecidas mais redes  [%i] do que necessárias para o nics  [%"
 "i]. Todas as outras são ignoradas. "
 
-#: virt-image:68
-#, python-format
-msgid "The image requires %i network interface"
+#: virt-image:55
+#, fuzzy, python-format
+msgid "The image requires %i network interface."
 msgstr "A imagem necessita de uma interface de rede %i"
 
-#: virt-image:94 virt-install:340 virt-install.orig:340
+#: virt-image:84 virt-install:505
 msgid "Name of the guest instance"
 msgstr "Nome da instância do convidado"
 
-#: virt-image:96 virt-install:342 virt-install.orig:342
+#: virt-image:86 virt-install:507
 msgid "Memory to allocate for guest instance in megabytes"
 msgstr ""
 "Quantidade de memória para alocar a  instância do convidado, em megabytes"
 
-#: virt-image:100 virt-install:349 virt-install.orig:349
+#: virt-image:90 virt-install:514
 msgid "UUID for the guest."
 msgstr "UUID para convidado"
 
-#: virt-image:102 virt-install:351 virt-install.orig:351
+#: virt-image:92 virt-install:516
 msgid "Number of vcpus to configure for your guest"
 msgstr "Número de vcpus a configurar para o seu convidado"
 
-#: virt-image:104 virt-install:353 virt-install.orig:353
+#: virt-image:94 virt-install:518
 msgid "Check that vcpus do not exceed physical CPUs and warn if they do."
 msgstr ""
 "Verifica se as vcpus não excedem as CPUs físicas e avisa se for o caso."
 
-#: virt-image:108 virt-install:357 virt-install.orig:357
+#: virt-image:98 virt-install:522
 msgid "Set which physical CPUs Domain can use."
 msgstr "Indique quais CPUs físicas o Domínio pode usar."
 
-#: virt-image:111
+#: virt-image:101
 #, fuzzy
 msgid "The OS type being installed, e.g. 'linux', 'unix', 'windows'"
 msgstr ""
 "O tipo de SO para convidados completamente virtualizados, i.e. 'linux', "
 "'unix, 'windows'"
 
-#: virt-image:115
+#: virt-image:105
 #, fuzzy
 msgid ""
 "The OS variant being installed, e.g. 'fedora6', 'rhel5', 'solaris10', 'win2k'"
@@ -1590,99 +1896,59 @@ msgstr ""
 "A variante de SO para convidados completamente virtualizados, ex.: "
 "'fedora6', rhel5', solaris10', 'win2k', "
 
-#: virt-image:119 virt-install:371 virt-install.orig:371
+#: virt-image:109 virt-install:542
 #, fuzzy
 msgid "Full Virtualization specific options"
 msgstr "Opções específicas para Virtualização Completa"
 
-#: virt-image:122
+#: virt-image:112
 #, fuzzy
 msgid "Disables APIC for fully virtualized guest"
 msgstr "Este convidado deveria ser um convidado totalmente virtualizado"
 
-#: virt-image:125
+#: virt-image:115
 #, fuzzy
 msgid "Disables ACPI for fully virtualized guest"
 msgstr "Este convidado deveria ser um convidado totalmente virtualizado"
 
-#: virt-image:131 virt-install:438 virt-install.orig:438
+#: virt-image:121
 msgid ""
-"Bridge to connect guest NIC to; if none given, will try to determine the "
-"default"
+"Specify a network interface. Ex:\n"
+"--network bridge=mybr0\n"
+"--network network=libvirt_network_name\n"
+"--network network=mynet,model=e1000,mac=00:11..."
 msgstr ""
-"Bridge para conectar os NIC dos convidados; se nenhuma for dada, haverá "
-"tentativa de determinar qual é o padrão"
-
-#: virt-image:135 virt-install:442 virt-install.orig:442
-msgid ""
-"Connect the guest to a virtual network, forwarding to the physical network "
-"with NAT"
-msgstr ""
-"Conecta o convidado a uma rede virtual, encaminhando para a rede física com "
-"NAT"
-
-#: virt-image:139 virt-install:446 virt-install.orig:446
-msgid ""
-"Fixed MAC address for the guest; if none or RANDOM is given a random address "
-"will be used"
-msgstr ""
-"Endereço MAC fixo para o convidado; caso nenhum seja dado ou se for RANDOM, "
-"um endereço aleatório será usado"
-
-#: virt-image:143 virt-install:452 virt-install.orig:452
-msgid "Graphics Configuration"
-msgstr "Configuração de Gráficos"
-
-#: virt-image:145 virt-install:454 virt-install.orig:454
-msgid "Use VNC for graphics support"
-msgstr "Usar o VNC para suporte a gráficos"
-
-#: virt-image:147 virt-install:456 virt-install.orig:456
-msgid "Port to use for VNC"
-msgstr "Porta a ser usada para o VNC "
-
-#: virt-image:149 virt-install:458 virt-install.orig:458
-msgid "Use SDL for graphics support"
-msgstr "Usar o SDL para suporte a gráficos"
-
-#: virt-image:151 virt-install:460 virt-install.orig:460
-msgid "Don't set up a graphical console for the guest."
-msgstr "Não configure um console gráfico para o convidado."
 
-#: virt-image:154 virt-install:467 virt-install.orig:467
-msgid "set up keymap for a graphical console"
-msgstr "define um mapa de teclado para o console gráfico"
-
-#: virt-image:160
+#: virt-image:140
 msgid "Print the libvirt XML, but do not start the domain"
 msgstr "Imprime o libvirt XML, mas não inicia o domínio"
 
-#: virt-image:163
+#: virt-image:143
 msgid "The zero-based index of the boot record to use"
 msgstr "O índice de base zero do registro de inicialização a ser usado"
 
-#: virt-image:165
+#: virt-image:145
 msgid "Overwrite, or destroy, an existing image with the same name"
 msgstr "Sobrescreve, ou destrói uma imagem já existente com o mesmo nome."
 
-#: virt-image:170
+#: virt-image:150
 msgid "Skip disk checksum verification process"
 msgstr ""
 
-#: virt-image:182
+#: virt-image:165
 msgid "You need to provide an image XML descriptor"
 msgstr "Você precisa fornecer um descritor da imagem XML"
 
-#: virt-image:200
+#: virt-image:184
 msgid "Cannot parse"
 msgstr "Não foi possível analisar"
 
-#: virt-image:205
+#: virt-image:189
 #, python-format
 msgid "The index for --boot must be between 0 and %d"
 msgstr "O índice para --boot deve estar entre 0 e %d"
 
-#: virt-image:261
+#: virt-image:245
 #, python-format
 msgid ""
 "\n"
@@ -1693,11 +1959,11 @@ msgstr ""
 "\n"
 "Criando convidado %s..."
 
-#: virt-image:265
+#: virt-image:249
 msgid "Guest creation failed"
 msgstr "Falha na criação do convidado"
 
-#: virt-image:271
+#: virt-image:255
 #, python-format
 msgid ""
 "Domain creation may not have been\n"
@@ -1710,54 +1976,61 @@ msgstr ""
 "executando 'virsh start %s'; caso contrário, por favor\n"
 "reinicie a sua instalação."
 
-#: virt-install:70 virt-install.orig:70
+#: virt-install:84
 #, python-format
 msgid "Couldn't create default storage pool '%s': %s"
 msgstr "Não foi possível criar um pool padrão de armazenamento '%s': %s"
 
-#: virt-install:93 virt-install.orig:93
+#: virt-install:107
+#, python-format
+msgid "%(chartype)s type %(devtype)s does not support '%(optname)s' option."
+msgstr ""
+
+#: virt-install:133
+#, fuzzy, python-format
+msgid "Unknown option(s) %s"
+msgstr "Opção de disco -- Desconhecida '%s'."
+
+#: virt-install:147
+#, fuzzy, python-format
+msgid "Error in %(chartype)s device parameters: %(err)s"
+msgstr "Erro com parâmetros de armazenamento: %s"
+
+#: virt-install:170
 msgid "--disk path must start with path=, pool=, or vol=."
 msgstr "--disk path deve iniciar com path=, pool=, ou vol=."
 
-#: virt-install:121 virt-install:133 virt-install.orig:121
-#: virt-install.orig:133
+#: virt-install:177
+#, python-format
+msgid "Unknown --disk option '%s'."
+msgstr "Opção de disco -- Desconhecida '%s'."
+
+#: virt-install:185 virt-install:197
 #, python-format
 msgid "Unknown '%s' value '%s'"
 msgstr "Valor  '%s' Desconhecido '%s'"
 
-#: virt-install:126 virt-install.orig:126
+#: virt-install:190
 #, python-format
 msgid "Improper value for 'size': %s"
 msgstr "Valor impróprio para 'tamanho': %s"
 
-#: virt-install:137 virt-install.orig:137
-#, python-format
-msgid "Unknown --disk option '%s'."
-msgstr "Opção de disco -- Desconhecida '%s'."
-
-#: virt-install:147 virt-install.orig:147
+#: virt-install:212
 msgid "Size must be specified with all 'pool='"
 msgstr "Tamanho deve ser especificado em todas as 'pool='"
 
-#: virt-install:160 virt-install.orig:160
-msgid "Storage volume must be specified as pool=poolname/volname"
+#: virt-install:226
+#, fuzzy
+msgid "Storage volume must be specified as vol=poolname/volname"
 msgstr ""
 "Volume de armazenamento deve ser especificado como pool=poolname/volname"
 
-#: virt-install:202 virt-install.orig:202
-#, python-format
-msgid "Error with storage parameters: %s"
-msgstr "Erro com parâmetros de armazenamento: %s"
-
-#: virt-install:214 virt-install.orig:214
-msgid " Do you really want to use the disk (yes or no)?"
-msgstr "Você quer realmente usar o disco (sim ou não)?  "
-
-#: virt-install:222 virt-install.orig:222
-msgid "Cannot use --file, --size, or --disk with --nodisks"
+#: virt-install:282
+#, fuzzy
+msgid "Cannot use --file, --file-size, or --disk with --nodisks"
 msgstr "Impossível usar --file --size, ou --disk com --nodisks"
 
-#: virt-install:225 virt-install.orig:225
+#: virt-install:285
 msgid ""
 "Cannot mix --file, --nonsparse, or --file-size with --disk options. Please "
 "see the manual for --disk syntax."
@@ -1765,64 +2038,91 @@ msgstr ""
 "Impossível misturar --file, --nonsparse, ou --file-size com opções --disk. "
 "Por favor consulte o manual e procure pela sintaxe --disk."
 
-#: virt-install:228 virt-install.orig:228
+#: virt-install:288
 msgid "A disk must be specified (use --nodisks to override)"
 msgstr "Um disco deve ser especificado (use --nodisk para substituir)"
 
-#: virt-install:236 virt-install.orig:236
+#: virt-install:296
 msgid "Need to pass size for each disk"
 msgstr "É necessário passar o tamanho de cada disco"
 
-#: virt-install:251 virt-install.orig:251
+#: virt-install:311
 msgid "Cannot use --mac with --nonetworks"
 msgstr ""
 
-#: virt-install:253 virt-install.orig:253
+#: virt-install:313
 #, fuzzy
 msgid "Cannot use --bridges with --nonetworks"
 msgstr "Impossível misturar os argumentos --bridge e --network"
 
-#: virt-install:255 virt-install.orig:255
+#: virt-install:315
 #, fuzzy
 msgid "Cannot use --network with --nonetworks"
 msgstr "Impossível usar --file --size, ou --disk com --nodisks"
 
-#: virt-install:275 virt-install.orig:275
+#: virt-install:342
+msgid ""
+"Would you like a fully virtualized guest (yes or no)? This will allow you to "
+"run unmodified operating systems."
+msgstr ""
+
+#: virt-install:367
+#, fuzzy, python-format
+msgid "Would you like to use %s acceleration? (yes or no)"
+msgstr "Você quer realmente usar o disco (sim ou não)?  "
+
+#: virt-install:379
+msgid "Can't do both --hvm and --paravirt"
+msgstr "Impossível executar ambos --hvm e --paravirt"
+
+#: virt-install:401 virt-install:402
+msgid "default"
+msgstr "padrão"
+
+#: virt-install:423
 #, python-format
 msgid "Only one install method (%s) can be used"
 msgstr ""
 
-#: virt-install:281 virt-install.orig:281
+#: virt-install:429
 msgid "Network PXE boot is not supported for paravirtualized guests"
 msgstr ""
 "A inicialização PXE em rede não tem suporte para convidados "
 "paravirtualizados "
 
-#: virt-install:284 virt-install.orig:284
+#: virt-install:432
 msgid "Paravirtualized guests cannot install off cdrom media."
 msgstr ""
 "Os convidados paravirtualizados não podem ser instalados a partir de uma "
 "mídia de cdrom."
 
-#: virt-install:287 virt-install.orig:287
+#: virt-install:435
 msgid "--location can not be specified for remote connections."
 msgstr "--location não pode ser espeficiada para conexões remotas."
 
-#: virt-install:296 virt-install.orig:296
+#: virt-install:444
 #, fuzzy, python-format
 msgid "One of %s, or cdrom media must be specified."
 msgstr "Apenas uma das --pxe, --location e --cdrom devem ser especificadas."
 
-#: virt-install:314 virt-install.orig:314
+#: virt-install:457
 #, python-format
 msgid "Error creating cdrom disk: %s"
 msgstr "Erro ao criar um disco de cdrom:  %s"
 
-#: virt-install:346 virt-install.orig:346
+#: virt-install:462
+msgid "What is the install CD-ROM/ISO or URL?"
+msgstr ""
+
+#: virt-install:464
+msgid "What is the install URL?"
+msgstr ""
+
+#: virt-install:511
 msgid "The CPU architecture to simulate"
 msgstr "A arquitetura de CPU a ser simulada"
 
-#: virt-install:364 virt-install.orig:364
+#: virt-install:529
 msgid ""
 "The OS variant for fully virtualized guests, e.g. 'fedora6', 'rhel5', "
 "'solaris10', 'win2k'"
@@ -1830,114 +2130,114 @@ msgstr ""
 "A variante de SO para convidados completamente virtualizados, ex.: "
 "'fedora6', rhel5', solaris10', 'win2k', "
 
-#: virt-install:368 virt-install.orig:368
+#: virt-install:533
+msgid "Add a serial device to the domain."
+msgstr ""
+
+#: virt-install:536
+msgid "Add a parallel device to the domain."
+msgstr ""
+
+#: virt-install:539
 msgid "Physical host device to attach to the domain."
 msgstr ""
 
-#: virt-install:373 virt-install.orig:373
+#: virt-install:544
 msgid "Use sound device emulation"
 msgstr "Use dispositivo de simulação de som"
 
-#: virt-install:384 virt-install.orig:384
+#: virt-install:555
 msgid "Virtualization Type Options"
 msgstr "Opções de Tipo de Virtualização"
 
-#: virt-install:391 virt-install.orig:391
-msgid "Use kernel acceleration capabilities (kvm, kqemu, ...)"
-msgstr "Use as capacidades de aceleração do kernel (kvm, kqemu, ...)"
+#: virt-install:562
+msgid "Hypervisor name to use (kvm, qemu, xen, ...)"
+msgstr ""
 
-#: virt-install:395 virt-install.orig:395
+#: virt-install:568
 msgid "Installation Method Options"
 msgstr "Opções de Método de Instalação"
 
-#: virt-install:398 virt-install.orig:398
+#: virt-install:571
 msgid "CD-ROM installation media"
 msgstr "Mídia de instalação do CD-ROM"
 
-#: virt-install:401 virt-install.orig:401
+#: virt-install:574
 msgid ""
 "Installation source (eg, nfs:host:/path, http://host/path, ftp://host/path)"
 msgstr ""
 "Fonte de Instalação (ex.: nfs:host:/path, http://host/path, ftp://host/path)"
 
-#: virt-install:404 virt-install.orig:404
+#: virt-install:577
 msgid "Boot from the network using the PXE protocol"
 msgstr ""
 "Inicialize um instalador a partir da rede usando o protocolo de incialização "
 "PXE "
 
-#: virt-install:406 virt-install.orig:406
+#: virt-install:579
 #, fuzzy
 msgid "Build guest around an existing disk image"
 msgstr "Arquivo a ser usado como imagem do disco"
 
-#: virt-install:408 virt-install.orig:408
+#: virt-install:581
 #, fuzzy
 msgid "Treat the CD-ROM media as a Live CD"
 msgstr "Especifique se a mídia do CDROM é um LiveCD"
 
-#: virt-install:411 virt-install.orig:411
+#: virt-install:584
 msgid "Additional arguments to pass to the kernel booted from --location"
 msgstr ""
 "Argumentos adicionais a serem passados para o kernel inicializado a partir "
 "do --location"
 
-#: virt-install:418 virt-install.orig:418
-msgid "Specify storage to use as a disk with various options."
-msgstr "Especifique armazenamento para usar como um disco com diversas opções"
-
-#: virt-install:422 virt-install.orig:422
-msgid "File to use as the disk image"
-msgstr "Arquivo a ser usado como imagem do disco"
-
-#: virt-install:425 virt-install.orig:425
-msgid "Size of the disk image (if it doesn't exist) in gigabytes"
-msgstr "Tamanho da imagem do disco (caso não exista) em gigabytes"
-
-#: virt-install:429 virt-install.orig:429
+#: virt-install:591
 msgid ""
-"Don't use sparse files for disks.  Note that this will be significantly "
-"slower for guest creation"
+"Specify storage with various options. Ex.\n"
+"--disk path=/my/existing/disk\n"
+"--disk path=/my/new/disk,size=5 (in gigabytes)\n"
+"--disk vol=poolname:volname,device=cdrom,bus=scsi,..."
 msgstr ""
-"Não use arquivos separados para discos. Note que isso pode ser muito mais "
-"lento para a criação de convidados."
 
-#: virt-install:432 virt-install.orig:432
+#: virt-install:596
 msgid "Don't set up any disks for the guest."
 msgstr "Não configure nenhum disco para o convidado"
 
-#: virt-install:449 virt-install.orig:449
+#: virt-install:613
+msgid ""
+"Specify a network interface. Ex:\n"
+"--network bridge=mybr0\n"
+"--network network=my_libvirt_virtual_net\n"
+"--network network=mynet,model=virtio,mac=00:11..."
+msgstr ""
+
+#: virt-install:618
 #, fuzzy
 msgid "Don't create network interfaces for the guest."
 msgstr "Não configure nenhum disco para o convidado"
 
-#: virt-install:463 virt-install.orig:463
+#: virt-install:632
+msgid "Specify video hardware type."
+msgstr ""
+
+#: virt-install:635
 msgid "Don't automatically try to connect to the guest console"
 msgstr "Não tente conectar automaticamente ao console do convidado "
 
-#: virt-install:474 virt-install.orig:474
+#: virt-install:643
 msgid "Disables the automatic rebooting when the installation is complete."
 msgstr ""
 "Desabilita a reinicialização automática quando a instalação é concluída."
 
-#: virt-install:477 virt-install.orig:477
+#: virt-install:646
 msgid "Time to wait (in minutes)"
 msgstr ""
 
-#: virt-install:479 virt-install.orig:479
+#: virt-install:648
 msgid "Forces 'yes' for any applicable prompts, terminates for all others"
 msgstr ""
 "Força 'sim' para qualquer solicitação adequada, conclui todos os outros."
 
-#: virt-install:483 virt-install.orig:483
-msgid ""
-"Request user input for ambiguous situations. Default is false, so will "
-"terminate if a prompt would typically be fired. "
-msgstr ""
-"Requer entrada de usuário para situações ambíguas. Padrão é falso, portanto "
-"irá concluir se uma solicitação for ignorada."
-
-#: virt-install:503 virt-install.orig:503
+#: virt-install:671
 msgid ""
 "Unable to connect to graphical console: virt-viewer not installed. Please "
 "install the 'virt-viewer' package."
@@ -1945,19 +2245,11 @@ msgstr ""
 "Impossível conectar-se ao console gráfico: o virt-viewer não está instalado. "
 "Por favor, instale o pacote 'virt-viewer'."
 
-#: virt-install:536 virt-install.orig:536
-msgid "Can't do both --hvm and --paravirt"
-msgstr "Impossível executar ambos --hvm e --paravirt"
-
-#: virt-install:548 virt-install.orig:548
-msgid "default"
-msgstr "padrão"
-
-#: virt-install:570 virt-install.orig:570
+#: virt-install:713
 msgid "Can't use --pxe with --nonetworks"
 msgstr ""
 
-#: virt-install:671 virt-install.orig:671
+#: virt-install:818
 msgid ""
 "\n"
 "\n"
@@ -1967,7 +2259,7 @@ msgstr ""
 "\n"
 "Iniciando a instalação..."
 
-#: virt-install:682 virt-install.orig:682
+#: virt-install:829
 #, python-format
 msgid ""
 "Domain installation does not appear to have been\n"
@@ -1980,7 +2272,7 @@ msgstr ""
 "executando 'virsh start%s'; caso contrário, por favor, reinicie a sua "
 "instalação."
 
-#: virt-install:693 virt-install.orig:693
+#: virt-install:840
 #, python-format
 msgid ""
 "Guest installation complete... you can restart your domain\n"
@@ -1990,16 +2282,16 @@ msgstr ""
 "dominio\n"
 "executando 'virsh start %s'"
 
-#: virt-install:697 virt-install.orig:697
+#: virt-install:844
 msgid "Guest installation complete... restarting guest."
 msgstr "A instalação do convidado está completa...reiniciando o convidado."
 
-#: virt-install:703 virt-install.orig:703
+#: virt-install:850
 #, fuzzy
 msgid "Guest install interrupted."
 msgstr "Falha na instalação do convidado"
 
-#: virt-install:710 virt-install.orig:710
+#: virt-install:857
 #, python-format
 msgid ""
 "Domain installation may not have been\n"
@@ -2012,41 +2304,41 @@ msgstr ""
 "executando 'virsh start %s'; caso contrário, por favor, reinicie a sua "
 "instalação."
 
-#: virt-install:736 virt-install.orig:736
+#: virt-install:883
 #, fuzzy
 msgid "Guest installation failed."
 msgstr "Falha na instalação do convidado"
 
-#: virt-install:746 virt-install.orig:746
+#: virt-install:893
 #, fuzzy, python-format
 msgid "%d minutes "
 msgstr " %d minutos"
 
-#: virt-install:748 virt-install.orig:748
+#: virt-install:895
 #, fuzzy, python-format
 msgid ""
-"Domain installation still in progress. Waiting %sfor domain to complete "
-"installation."
+"Domain installation still in progress. Waiting %sfor installation to "
+"complete."
 msgstr ""
 "Instalação do domínio ainda em progresso. Você pode\n"
 "reconectar-se ao console para completar o processo de\n"
 " instalação."
 
-#: virt-install:754 virt-install.orig:754
+#: virt-install:901
 msgid "Domain has shutdown. Continuing."
 msgstr "Domínio foi concluído. Continuando."
 
-#: virt-install:761 virt-install.orig:761
+#: virt-install:908
 #, fuzzy, python-format
 msgid "Could not lookup domain after install: %s"
 msgstr "Não foi possível buscar objeto do volume: %s"
 
-#: virt-install:768 virt-install.orig:768
+#: virt-install:915
 #, fuzzy
 msgid "Installation has exceeded specified time limit. Exiting application."
 msgstr "Instalação excedeu limite de tempo especificado. Abortando operação."
 
-#: virt-install:772 virt-install.orig:772
+#: virt-install:921
 msgid ""
 "Domain installation still in progress. You can reconnect to \n"
 "the console to complete the installation process."
@@ -2055,6 +2347,95 @@ msgstr ""
 "reconectar-se ao console para completar o processo de\n"
 " instalação."
 
+#~ msgid "Could not find usable default libvirt connection."
+#~ msgstr "Não foi possível encontrar conexão do libvirt padrão."
+
+#~ msgid "Unknown network type "
+#~ msgstr "Tipo de rede desconhecido"
+
+#~ msgid "Need to pass equal numbers of networks & mac addresses"
+#~ msgstr ""
+#~ "É necessário passar quantidades iguais de endereços de rede e endereços "
+#~ "mac"
+
+#, fuzzy
+#~ msgid "Cannot clone remote VM storage."
+#~ msgstr "A conexão não suporta armazenamento remoto."
+
+#, fuzzy
+#~ msgid "Missing path to use as disk clone destination for '%s'"
+#~ msgstr "Falta um novo arquivo para ser usado como imagem do disco %s"
+
+#, fuzzy
+#~ msgid "Could not determine storage type for '%s'"
+#~ msgstr "Não pôde definir pool de armazenamento:  %s"
+
+#~ msgid ""
+#~ "Bridge to connect guest NIC to; if none given, will try to determine the "
+#~ "default"
+#~ msgstr ""
+#~ "Bridge para conectar os NIC dos convidados; se nenhuma for dada, haverá "
+#~ "tentativa de determinar qual é o padrão"
+
+#~ msgid ""
+#~ "Connect the guest to a virtual network, forwarding to the physical "
+#~ "network with NAT"
+#~ msgstr ""
+#~ "Conecta o convidado a uma rede virtual, encaminhando para a rede física "
+#~ "com NAT"
+
+#~ msgid ""
+#~ "Fixed MAC address for the guest; if none or RANDOM is given a random "
+#~ "address will be used"
+#~ msgstr ""
+#~ "Endereço MAC fixo para o convidado; caso nenhum seja dado ou se for "
+#~ "RANDOM, um endereço aleatório será usado"
+
+#~ msgid "Use kernel acceleration capabilities (kvm, kqemu, ...)"
+#~ msgstr "Use as capacidades de aceleração do kernel (kvm, kqemu, ...)"
+
+#~ msgid "Specify storage to use as a disk with various options."
+#~ msgstr ""
+#~ "Especifique armazenamento para usar como um disco com diversas opções"
+
+#~ msgid "File to use as the disk image"
+#~ msgstr "Arquivo a ser usado como imagem do disco"
+
+#~ msgid "Size of the disk image (if it doesn't exist) in gigabytes"
+#~ msgstr "Tamanho da imagem do disco (caso não exista) em gigabytes"
+
+#~ msgid ""
+#~ "Don't use sparse files for disks.  Note that this will be significantly "
+#~ "slower for guest creation"
+#~ msgstr ""
+#~ "Não use arquivos separados para discos. Note que isso pode ser muito mais "
+#~ "lento para a criação de convidados."
+
+#~ msgid "Force flag is set but input was required. Prompt was: %s"
+#~ msgstr ""
+#~ "Sinalização forçada foi estabelecida mas é necessária uma entrada. "
+#~ "Solicitação: %s"
+
+#~ msgid "Prompting disabled, but input was requested. Prompt was: %s"
+#~ msgstr ""
+#~ "Solicitação desabilitada, mas é necessária uma entrada. Solicitação: %s"
+
+#~ msgid ""
+#~ "Prompting disabled, but yes/no was requested. Try --force to force 'yes' "
+#~ "for such prompts. Prompt was: %s"
+#~ msgstr ""
+#~ "Solicitação desabilitada, mas é necessária uma resposta sim/não. Tente --"
+#~ "force para forçar 'sim' para tais solicitações. Solicitação: %s"
+
+#~ msgid "ERROR: "
+#~ msgstr "ERRO: "
+
+#~ msgid "Do you really want to use the disk (yes or no)? "
+#~ msgstr "Você quer realmente usar o disco (sim ou não)? "
+
+#~ msgid " Do you really want to use the disk (yes or no)?"
+#~ msgstr "Você quer realmente usar o disco (sim ou não)?  "
+
 #~ msgid "Name or UUID of guest to clone is required"
 #~ msgstr "São necessários o nome ou UUID do convidado a ser clonado."
 
diff --git a/po/sr.po b/po/sr.po
index 49a4272..c48c6f3 100644
--- a/po/sr.po
+++ b/po/sr.po
@@ -9,7 +9,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: virtinst\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-03-09 20:41-0400\n"
+"POT-Creation-Date: 2009-07-28 20:34-0400\n"
 "PO-Revision-Date: 2008-04-07 00:24+0200\n"
 "Last-Translator: Jovan Krunic <jovan.krunic at gmail.com>\n"
 "Language-Team: Serbian (sr) <fedora-trans-sr at redhat.com>\n"
@@ -20,227 +20,287 @@ msgstr ""
 "10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
 "X-Generator: KBabel 1.11.4\n"
 
-#: virtinst/CapabilitiesParser.py:168
+#: virtinst/CapabilitiesParser.py:172
 #, python-format
 msgid "No domains available for virt type '%(type)s', arch %(arch)s."
 msgstr ""
 
-#: virtinst/CapabilitiesParser.py:393
+#: virtinst/CapabilitiesParser.py:412
 #, python-format
 msgid "for arch '%s'"
 msgstr ""
 
-#: virtinst/CapabilitiesParser.py:397
+#: virtinst/CapabilitiesParser.py:416
 #, fuzzy, python-format
 msgid "virtualization type '%s'"
 msgstr "Врста виртуелизације која није подржана"
 
-#: virtinst/CapabilitiesParser.py:399
+#: virtinst/CapabilitiesParser.py:418
 #, fuzzy
 msgid "any virtualization options"
 msgstr "Врста виртуелизације која није подржана"
 
-#: virtinst/CapabilitiesParser.py:401
+#: virtinst/CapabilitiesParser.py:420
 #, python-format
 msgid "Host does not support %(virttype)s %(arch)s"
 msgstr ""
 
-#: virtinst/CapabilitiesParser.py:414
+#: virtinst/CapabilitiesParser.py:433
 #, python-format
 msgid ""
 "Host does not support domain type '%(domain)s' for virtualization type '%"
 "(virttype)s' arch '%(arch)s'"
 msgstr ""
 
-#: virtinst/cli.py:117
+#: virtinst/cli.py:152
 #, fuzzy
 msgid "Exiting at user request."
 msgstr "Инсталацијa је обустављена на корисников захтев"
 
-#: virtinst/cli.py:122
+#: virtinst/cli.py:159
 #, fuzzy
 msgid "Must be root to create Xen guests"
 msgstr "Морате бити root корисник да бисте клонирали Xen госта"
 
-#: virtinst/cli.py:124
-msgid "Could not find usable default libvirt connection."
+#: virtinst/cli.py:297
+msgid "(use --prompt to run interactively)"
 msgstr ""
 
-#: virtinst/cli.py:146
+#: virtinst/cli.py:317
+msgid " (Use --prompt or --force to override)"
+msgstr ""
+
+#: virtinst/cli.py:352
+msgid "Graphics Configuration"
+msgstr ""
+
+#: virtinst/cli.py:354
+msgid "Use VNC for graphics support"
+msgstr "Користи VNC као графичку подршку"
+
+#: virtinst/cli.py:356
+msgid "Port to use for VNC"
+msgstr "Прикључак за VNC"
+
+#: virtinst/cli.py:358
+msgid "Address to listen on for VNC connections."
+msgstr ""
+
+#: virtinst/cli.py:361
+#, fuzzy
+msgid "set up keymap for the VNC console"
+msgstr "постави мапирање кључа за графичку конзолу"
+
+#: virtinst/cli.py:363
+msgid "Use SDL for graphics support"
+msgstr "Користи SDL као графичку подршку"
+
+#: virtinst/cli.py:365
+msgid "Don't set up a graphical console for the guest."
+msgstr "Немој постављати графичку конзолу за новог госта."
+
+#: virtinst/cli.py:388
+#, fuzzy
+msgid "A disk path must be specified."
+msgstr "Мора се одредити локација са које ће инсталирати"
+
+#: virtinst/cli.py:390
+msgid "What would you like to use as the disk (file path)?"
+msgstr "Шта бисте желели да користите као диск (путања датотеке)?"
+
+#: virtinst/cli.py:392
 #, python-format
-msgid "Force flag is set but input was required. Prompt was: %s"
+msgid ""
+"Please enter the path to the file you would like to use for storage. It will "
+"have size %sGB."
 msgstr ""
+"Унесите путању до датотеке коју бисте желели да користите као складиште. "
+"Имаће величину од %sГБ."
 
-#: virtinst/cli.py:149
+#: virtinst/cli.py:401
+#, fuzzy
+msgid "A size must be specified for non-existent disks."
+msgstr "Величина мора бити дата за не-постојеће дискове."
+
+#: virtinst/cli.py:403
 #, python-format
-msgid "Prompting disabled, but input was requested. Prompt was: %s"
+msgid "How large would you like the disk (%s) to be (in gigabytes)?"
+msgstr "Колико велики бисте желели да диск (%s) буде (у гигабајтима)?"
+
+#: virtinst/cli.py:424 virt-install:274
+#, python-format
+msgid "Error with storage parameters: %s"
 msgstr ""
 
-#: virtinst/cli.py:169
+#: virtinst/cli.py:426
+#, fuzzy
+msgid "Do you really want to use this disk (yes or no)"
+msgstr "Да ли заиста желите да користите диск (да или не)?"
+
+#: virtinst/cli.py:430
 #, python-format
-msgid ""
-"Prompting disabled, but yes/no was requested. Try --force to force 'yes' for "
-"such prompts. Prompt was: %s"
+msgid "This will overwrite the existing path '%s'!\n"
 msgstr ""
 
-#: virtinst/cli.py:179 virt-clone:48 virt-clone:69 virt-clone:108
-msgid "ERROR: "
-msgstr "ГРЕШКА: "
+#: virtinst/cli.py:437
+#, python-format
+msgid "Disk %s is already in use by another guest!\n"
+msgstr "Други гост већ користи диск %s!\n"
 
-#: virtinst/cli.py:189
+#: virtinst/cli.py:464
+msgid "What is the name of your virtual machine?"
+msgstr "Које је име Ваше виртуелне машине?"
+
+#: virtinst/cli.py:465
 #, fuzzy
 msgid "A name is required for the virtual machine."
 msgstr "Које је име за клонирану виртуелну машину?"
 
-#: virtinst/cli.py:197
+#: virtinst/cli.py:472
+msgid "How much RAM should be allocated (in megabytes)?"
+msgstr "Колико RAM меморије треба да буде алоцирано (у мегабајтима)?"
+
+#: virtinst/cli.py:473
 #, fuzzy
 msgid "Memory amount is required for the virtual machine."
 msgstr "Које је име за клонирану виртуелну машину?"
 
-#: virtinst/cli.py:199
+#: virtinst/cli.py:477
 #, fuzzy, python-format
 msgid "Installs currently require %d megs of RAM."
 msgstr "ГРЕШКА: инсталација тренутно захтева %d мегабајта RAM меморије."
 
-#: virtinst/cli.py:219
-#, python-format
+#: virtinst/cli.py:498
+#, fuzzy, python-format
 msgid ""
 "You have asked for more virtual CPUs (%d) than there are physical CPUs (%d) "
-"on the host. This will work, but performance will be poor. Are you sure? "
-"(yes or no)"
+"on the host. This will work, but performance will be poor. "
 msgstr ""
 "Тражили сте више виртуелних процесора (%d) него што постоји физичких "
 "процесора (%d) на домаћину. Ово ће радити, али ће учинак бити слаб. Да ли "
 "сте сигурни? (да или не)"
 
-#: virtinst/cli.py:276
-msgid "Unknown network type "
-msgstr "Непозната врста мреже"
+#: virtinst/cli.py:501
+msgid "Are you sure? (yes or no)"
+msgstr ""
 
-#: virtinst/cli.py:293
+#: virtinst/cli.py:612
+#, fuzzy, python-format
+msgid "Unknown network option '%s'"
+msgstr "Непозната врста мреже %s"
+
+#: virtinst/cli.py:630
 msgid "Cannot mix both --bridge and --network arguments"
 msgstr "Не могу истовремено да повежем аргументе --bridge и --network"
 
-#: virtinst/cli.py:310
-msgid "Need to pass equal numbers of networks & mac addresses"
-msgstr "Потребно је да проследите једнаке бројеве мрежних и МАС адреса"
+#: virtinst/cli.py:645
+#, fuzzy
+msgid "Cannot pass more mac addresses than networks."
+msgstr "Не могу истовремено да повежем аргументе --bridge и --network"
 
-#: virtinst/cli.py:332
+#: virtinst/cli.py:672
 msgid "Can't specify more than one of VNC, SDL, or --nographics"
 msgstr ""
 
-#: virtinst/cli.py:376 virtinst/cli.py:381 virt-install:320 virt-install:325
-#: virt-install.orig:320 virt-install.orig:325
+#: virtinst/cli.py:700
+#, python-format
+msgid "Didn't match keymap '%s' in keytable!"
+msgstr ""
+
+#: virtinst/cli.py:731 virtinst/cli.py:736
 #, python-format
 msgid "%s option requires an argument"
 msgstr "Опција %s је потребна као аргумент"
 
-#: virtinst/CloneManager.py:54
+#: virtinst/CloneManager.py:109
 msgid "Connection must be a 'virConnect' instance."
 msgstr ""
 
-#: virtinst/CloneManager.py:102
+#: virtinst/CloneManager.py:162
 #, fuzzy
 msgid "Original xml must be a string."
 msgstr "Јединствени идентификатор мора бити низ знакова."
 
-#: virtinst/CloneManager.py:114
+#: virtinst/CloneManager.py:177
 #, python-format
 msgid "Invalid name for new guest: %s"
 msgstr "Неисправно име за новог госта: %s"
 
-#: virtinst/CloneManager.py:119
+#: virtinst/CloneManager.py:182
 #, fuzzy, python-format
 msgid "Domain name '%s' already in use."
 msgstr "Домен са именом %s већ постоји!"
 
-#: virtinst/CloneManager.py:131
+#: virtinst/CloneManager.py:195
 #, python-format
 msgid "Invalid uuid for new guest: %s"
 msgstr "Неисправан јединствени идентификатор за новог госта: %s"
 
-#: virtinst/CloneManager.py:134
+#: virtinst/CloneManager.py:198
 #, fuzzy, python-format
 msgid "UUID '%s' is in use by another guest."
 msgstr "Други гост већ користи диск %s!\n"
 
-#: virtinst/CloneManager.py:149
+#: virtinst/CloneManager.py:226
 #, python-format
 msgid "Could not use path '%s' for cloning: %s"
 msgstr ""
 
-#: virtinst/CloneManager.py:235
+#: virtinst/CloneManager.py:356
+msgid "Cloning policy must be a list of rules."
+msgstr ""
+
+#: virtinst/CloneManager.py:373
 #, fuzzy
 msgid "Original guest name or xml is required."
 msgstr "Мрежно име није потребно за %s"
 
-#: virtinst/CloneManager.py:253
-#, fuzzy
-msgid "Cannot clone remote VM storage."
-msgstr "Правим датотеку складишта..."
-
-#: virtinst/CloneManager.py:261
+#: virtinst/CloneManager.py:391
 msgid "Domain with devices to clone must be paused or shutoff."
 msgstr ""
 
-#: virtinst/CloneManager.py:304
-#, fuzzy, python-format
-msgid "Missing path to use as disk clone destination for '%s'"
-msgstr "Недостаје датотека која ће се користити за слику диска %s"
+#: virtinst/CloneManager.py:437
+#, python-format
+msgid ""
+"More disks to clone that new paths specified. (%(passed)d specified, %(need)"
+"d needed"
+msgstr ""
 
-#: virtinst/CloneManager.py:403
+#: virtinst/CloneManager.py:557
 #, fuzzy, python-format
 msgid "Disk '%s' does not exist."
 msgstr "Системски диск %s не постоји"
 
-#: virtinst/CloneManager.py:406
+#: virtinst/CloneManager.py:568
 #, fuzzy, python-format
 msgid "Could not determine original disk information: %s"
 msgstr "Не могу да прибавим датотеку %s: %s"
 
-#: virtinst/CloneManager.py:474
+#: virtinst/CloneManager.py:613
 #, fuzzy, python-format
 msgid "Domain '%s' was not found."
 msgstr "Домен %s није пронађен"
 
-#: virtinst/CloneManager.py:539
-msgid "copying to an existing vdisk is not supported"
-msgstr ""
-
-#: virtinst/CloneManager.py:547
-#, fuzzy, python-format
-msgid "Could not determine storage type for '%s'"
-msgstr "Не могу да прибавим датотеку %s: %s"
-
-#: virtinst/CloneManager.py:574
-#, python-format
-msgid "Cloning %(srcfile)s"
-msgstr ""
-
-#: virtinst/CloneManager.py:581
-msgid "failed to clone disk"
-msgstr ""
-
-#: virtinst/DistroInstaller.py:51
+#: virtinst/DistroInstaller.py:57
 msgid "Invalid NFS format: No path specified."
 msgstr "Погрешан NFS облик: ниједна путања није одређена."
 
-#: virtinst/DistroInstaller.py:93
+#: virtinst/DistroInstaller.py:101
 #, fuzzy, python-format
 msgid "Invalid 'location' type %s."
 msgstr "Дата је неисправна локација датотеке: "
 
-#: virtinst/DistroInstaller.py:99
+#: virtinst/DistroInstaller.py:107
 #, fuzzy
 msgid "'conn' must be specified if 'location' is a storage tuple."
 msgstr "Мора се одредити локација са које ће инсталирати"
 
-#: virtinst/DistroInstaller.py:135
+#: virtinst/DistroInstaller.py:145
 #, fuzzy, python-format
 msgid "Checking installer location failed: Could not find media '%s'."
 msgstr "Инсталација госта није успела"
 
-#: virtinst/DistroInstaller.py:138
+#: virtinst/DistroInstaller.py:148
 #, fuzzy
 msgid ""
 "Install media location must be an NFS, HTTP or FTP network install source, "
@@ -249,76 +309,76 @@ msgstr ""
 "Медиј за инсталацију мора бити NFS, HTTP или FTP извор, или постојећа "
 "локална датотека/уређај"
 
-#: virtinst/DistroInstaller.py:145
+#: virtinst/DistroInstaller.py:155
 #, fuzzy
 msgid "Privilege is required for NFS installations"
 msgstr "Које је име за клонирану виртуелну машину?"
 
-#: virtinst/Guest.py:100
+#: virtinst/Guest.py:108
 msgid "Unable to connect to hypervisor, aborting installation!"
 msgstr "Не могу да се повежем на хипервизора, прекидам инсталацију!"
 
-#: virtinst/Guest.py:118
+#: virtinst/Guest.py:126
 msgid "Guest"
 msgstr ""
 
-#: virtinst/Guest.py:125
+#: virtinst/Guest.py:133
 #, fuzzy, python-format
 msgid "Guest name '%s' is already in use."
 msgstr "Други гост већ користи диск %s!\n"
 
-#: virtinst/Guest.py:133
+#: virtinst/Guest.py:141
 msgid "Memory value must be an integer greater than 0"
 msgstr "Вредност меморије мора бити цео број већи од 0"
 
-#: virtinst/Guest.py:145
+#: virtinst/Guest.py:153
 msgid "Max Memory value must be an integer greater than 0"
 msgstr "Највећа вредност меморије мора бити цео број већи од 0"
 
-#: virtinst/Guest.py:164
+#: virtinst/Guest.py:172
 #, fuzzy
 msgid "Number of vcpus must be a postive integer."
 msgstr "Број виртуелних процесора мора бити у опсегу 1-%d"
 
-#: virtinst/Guest.py:166
+#: virtinst/Guest.py:174
 #, fuzzy, python-format
 msgid "Number of vcpus must be no greater than %d for this vm type."
 msgstr "Број виртуелних процесора мора бити у опсегу 1-%d"
 
-#: virtinst/Guest.py:176
+#: virtinst/Guest.py:184
 msgid "cpuset must be string"
 msgstr "Вредност cpuset мора бити низ знакова"
 
-#: virtinst/Guest.py:178
+#: virtinst/Guest.py:186
 msgid "cpuset can only contain numeric, ',', or '-' characters"
 msgstr "Вредност cpuset може садржати само нумеричке, „,“, или „-“ знакове"
 
-#: virtinst/Guest.py:186
+#: virtinst/Guest.py:194
 msgid "cpuset contains invalid format."
 msgstr "Вредност cpuset садржи неприхватљив формат."
 
-#: virtinst/Guest.py:188 virtinst/Guest.py:192
+#: virtinst/Guest.py:196 virtinst/Guest.py:202
 msgid "cpuset's pCPU numbers must be less than pCPUs."
 msgstr ""
 "Бројеви тренутних процеса вредности cpuset морају бити мањи од броја "
 "тренутних процеса."
 
-#: virtinst/Guest.py:212
+#: virtinst/Guest.py:222
 #, fuzzy
 msgid "OS type must be a string."
 msgstr "Вредност Keymap мора бити низ знакова"
 
-#: virtinst/Guest.py:224
+#: virtinst/Guest.py:234
 #, fuzzy, python-format
 msgid "OS type '%s' does not exist in our dictionary"
 msgstr "Врста оперативног система %s не постоји у нашем речнику"
 
-#: virtinst/Guest.py:232
+#: virtinst/Guest.py:242
 #, fuzzy
 msgid "OS variant must be a string."
 msgstr "Јединствени идентификатор мора бити низ знакова."
 
-#: virtinst/Guest.py:238
+#: virtinst/Guest.py:248
 #, fuzzy, python-format
 msgid ""
 "OS variant '%(var)s; does not exist in our dictionary for OS type '%(ty)s'"
@@ -326,52 +386,56 @@ msgstr ""
 "Променљива оперативног система %(var)s не постоји у нашем речнику "
 "оперативног система врсте %(type)s"
 
-#: virtinst/Guest.py:250
+#: virtinst/Guest.py:260
 #, python-format
 msgid "Unknown OS variant '%s'"
 msgstr ""
 
-#: virtinst/Guest.py:291
+#: virtinst/Guest.py:301
 msgid "Must specify whether graphics are enabled"
 msgstr "Морате назначити да ли је графика укључена"
 
-#: virtinst/Guest.py:314
+#: virtinst/Guest.py:324
 msgid "Graphics enabled must be True or False"
 msgstr "Укључена графика мора бити Тачна или Нетачна"
 
-#: virtinst/Guest.py:373
+#: virtinst/Guest.py:383
 msgid "You must specify a valid ISO or CD-ROM location for the installation"
 msgstr ""
 "Морате назначити исправну локацију ISO слике или CD-ROM уређаја за "
 "инсталацију"
 
-#: virtinst/Guest.py:376
+#: virtinst/Guest.py:386
 msgid "The specified media path does not exist."
 msgstr "Назначена путања до медија не постоји."
 
-#: virtinst/Guest.py:573
+#: virtinst/Guest.py:415
+msgid "Must pass a VirtualDevice instance."
+msgstr ""
+
+#: virtinst/Guest.py:660
 msgid "Unable to start domain for guest, aborting installation!"
 msgstr "Не могу да покренем домен за госта, прекидам инсталацију!"
 
-#: virtinst/Guest.py:623
+#: virtinst/Guest.py:716
 #, fuzzy, python-format
 msgid "Could not remove old vm '%s': %s"
 msgstr "Не могу да прибавим датотеку %s: %s"
 
-#: virtinst/Guest.py:625
+#: virtinst/Guest.py:718
 #, python-format
 msgid "Domain named %s already exists!"
 msgstr "Домен са именом %s већ постоји!"
 
-#: virtinst/Guest.py:632
+#: virtinst/Guest.py:725
 msgid "Creating domain..."
 msgstr "Правим домен..."
 
-#: virtinst/Guest.py:635
+#: virtinst/Guest.py:728
 msgid "Unable to create domain for the guest, aborting installation!"
 msgstr "Не могу да направим домен за госта, прекидам инсталацију!"
 
-#: virtinst/Guest.py:643
+#: virtinst/Guest.py:736
 msgid ""
 "It appears that your installation has crashed.  You should be able to find "
 "more information in the logs"
@@ -379,7 +443,7 @@ msgstr ""
 "Изгледа да је инсталација прекинута. Требало би да можете да пронађете више "
 "информација у евиденцијама"
 
-#: virtinst/Guest.py:677
+#: virtinst/Guest.py:770
 msgid ""
 "Domain has not existed.  You should be able to find more information in the "
 "logs"
@@ -387,7 +451,7 @@ msgstr ""
 "Домен није постојао. Требало би да можете да пронађете више информација у "
 "евиденцијама"
 
-#: virtinst/Guest.py:679
+#: virtinst/Guest.py:772
 msgid ""
 "Domain has not run yet.  You should be able to find more information in the "
 "logs"
@@ -395,23 +459,18 @@ msgstr ""
 "Домен још није покренут. Требало би да можете да пронађете више информација "
 "у евиденцијама"
 
-#: virtinst/Guest.py:696
+#: virtinst/Guest.py:789
 msgid "Domain has already been started!"
 msgstr "Домен је већ покренут!"
 
-#: virtinst/Guest.py:707
+#: virtinst/Guest.py:809
 msgid "The UUID you entered is already in use by another guest!"
 msgstr "Други гост већ користи јединствени идентификатор који сте унели"
 
-#: virtinst/Guest.py:710
+#: virtinst/Guest.py:812
 msgid "Name and memory must be specified for all guests!"
 msgstr "Име и меморија морају бити назначени за све госте!"
 
-#: virtinst/Guest.py:745
-#, fuzzy, python-format
-msgid "Invalid dictionary entry for device '%s %s'"
-msgstr "Неисправно име за новог госта: %s"
-
 #: virtinst/ImageFetcher.py:86
 #, python-format
 msgid "Retrieving file %s..."
@@ -479,7 +538,7 @@ msgstr "Вредност меморије мора бити цео број, а
 msgid "The format for disk %s must be one of %s"
 msgstr "Формат за диск %s мора бити један од %s"
 
-#: virtinst/ImageParser.py:248
+#: virtinst/ImageParser.py:263
 #, python-format
 msgid "Checking disk signature for %s"
 msgstr ""
@@ -502,25 +561,25 @@ msgstr "Главни елемент није „слика“"
 msgid "A disk device must be specified."
 msgstr ""
 
-#: virtinst/Installer.py:151
+#: virtinst/Installer.py:156
 msgid "Guest.cdrom must be a boolean type"
 msgstr "Вредност Guest.cdrom мора бити логичког типа "
 
-#: virtinst/Installer.py:168 virtinst/Installer.py:173
-#: virtinst/Installer.py:177
+#: virtinst/Installer.py:173 virtinst/Installer.py:178
+#: virtinst/Installer.py:182
 msgid "Must pass both a kernel and initrd"
 msgstr "Потребно је проследити и језгро и initrd"
 
-#: virtinst/Installer.py:180
+#: virtinst/Installer.py:185
 msgid "Kernel and initrd must be specified by a list, dict, or tuple."
 msgstr "Језгро и initrd морају бити дефинисани у листи, речнику или у пару"
 
-#: virtinst/Installer.py:335
+#: virtinst/Installer.py:340
 #, fuzzy
 msgid "A connection must be specified."
 msgstr "Мора се одредити локација са које ће инсталирати"
 
-#: virtinst/Installer.py:353
+#: virtinst/Installer.py:358
 #, fuzzy, python-format
 msgid "No 'Guest' class for virtualization type '%s'"
 msgstr "Врста виртуелизације која није подржана"
@@ -530,345 +589,364 @@ msgstr "Врста виртуелизације која није подржан
 msgid "CDROM media must be specified for the live CD installer."
 msgstr "Врста оперативног система мора бити одређена пре промене."
 
-#: virtinst/NodeDeviceParser.py:114
+#: virtinst/NodeDeviceParser.py:118
 msgid "System"
 msgstr ""
 
-#: virtinst/NodeDeviceParser.py:146
+#: virtinst/NodeDeviceParser.py:151
 #, python-format
 msgid "Interface %s"
 msgstr ""
 
-#: virtinst/NodeDeviceParser.py:364 virtinst/NodeDeviceParser.py:392
-#: virtinst/util.py:531 virtinst/VirtualDevice.py:58
+#: virtinst/NodeDeviceParser.py:378 virtinst/NodeDeviceParser.py:406
+#: virtinst/util.py:501 virtinst/VirtualDevice.py:86
 msgid "'conn' must be a virConnect instance."
 msgstr ""
 
-#: virtinst/NodeDeviceParser.py:411
+#: virtinst/NodeDeviceParser.py:426
 #, fuzzy
 msgid "Connection does not support host device enumeration."
 msgstr "HVM виртуализација није подржана; не могу да покренем LiveCD"
 
-#: virtinst/NodeDeviceParser.py:487
+#: virtinst/NodeDeviceParser.py:502
 #, fuzzy, python-format
 msgid "Unknown host device capability '%s'."
 msgstr "Непозната врста мреже %s"
 
-#: virtinst/OSDistro.py:99
+#: virtinst/osdict.py:129
+#, fuzzy, python-format
+msgid "Invalid dictionary entry for device '%s %s'"
+msgstr "Неисправно име за новог госта: %s"
+
+#: virtinst/OSDistro.py:102
 #, python-format
 msgid "Could not find an installable distribution at '%s'"
 msgstr "Нисам могао да пронађем инсталациону дистрибуцију на „%s“"
 
-#: virtinst/OSDistro.py:109
+#: virtinst/OSDistro.py:112
 msgid "Invalid install location: "
 msgstr "Неисправна локација за инсталацију:"
 
-#: virtinst/OSDistro.py:230
+#: virtinst/OSDistro.py:237
 #, fuzzy, python-format
 msgid "Couldn't find %(type)s kernel for %(distro)s tree."
 msgstr "Нисам могао да пронађем инсталациону дистрибуцију на „%s“"
 
-#: virtinst/OSDistro.py:244
+#: virtinst/OSDistro.py:252
 #, fuzzy, python-format
 msgid "Could not find boot.iso in %s tree."
 msgstr ""
 "Нисам могао да пронађем одговарајући дескриптор подизања система за овог "
 "домаћина"
 
-#: virtinst/OSDistro.py:383
+#: virtinst/OSDistro.py:413
 #, fuzzy, python-format
 msgid "Could not find a kernel path for virt type '%s'"
 msgstr "Нисам могао да пронађем инсталациону дистрибуцију на „%s“"
 
-#: virtinst/OSDistro.py:392
+#: virtinst/OSDistro.py:422
 #, fuzzy
 msgid "Could not find a boot iso path for this tree."
 msgstr ""
 "Нисам могао да пронађем одговарајући дескриптор подизања система за овог "
 "домаћина"
 
-#: virtinst/OSDistro.py:646
+#: virtinst/OSDistro.py:676
 msgid "Unable to determine kernel RPM path"
 msgstr "Не могу да утврдим путању за RPM језгра"
 
-#: virtinst/OSDistro.py:648
+#: virtinst/OSDistro.py:678
 msgid "Unable to determine install-initrd RPM path"
 msgstr "Не могу да утврдим путању за install-initrd RPM"
 
-#: virtinst/OSDistro.py:659
+#: virtinst/OSDistro.py:689
 msgid "Building initrd"
 msgstr "Изграђујем initrd"
 
-#: virtinst/OSDistro.py:1021
+#: virtinst/OSDistro.py:1051
 #, python-format
 msgid "Solaris miniroot not found at %s"
 msgstr ""
 
-#: virtinst/OSDistro.py:1056
+#: virtinst/OSDistro.py:1089
 #, python-format
 msgid "OpenSolaris PV kernel not found at %s"
 msgstr ""
 
-#: virtinst/OSDistro.py:1066
-#, python-format
-msgid "OpenSolaris microroot not found at %s"
-msgstr ""
-
-#: virtinst/Storage.py:85
+#: virtinst/Storage.py:81
 #, fuzzy, python-format
 msgid "Unknown storage object type: %s"
 msgstr "Непозната врста мреже %s"
 
-#: virtinst/Storage.py:108
+#: virtinst/Storage.py:104
 msgid "'conn' must be a libvirt connection object."
 msgstr ""
 
-#: virtinst/Storage.py:110
+#: virtinst/Storage.py:106
 msgid "Passed connection is not libvirt storage capable"
 msgstr ""
 
-#: virtinst/Storage.py:120
+#: virtinst/Storage.py:116
 #, fuzzy
 msgid "Storage object"
 msgstr "Име за новог госта"
 
-#: virtinst/Storage.py:125
+#: virtinst/Storage.py:121
 #, fuzzy
 msgid "Name for the storage object."
 msgstr "Име за новог госта"
 
-#: virtinst/Storage.py:132
+#: virtinst/Storage.py:128
 msgid "Permissions must be passed as a dict object"
 msgstr ""
 
-#: virtinst/Storage.py:135
+#: virtinst/Storage.py:131
 msgid "Permissions must contain 'mode', 'owner', 'group' and 'label' keys."
 msgstr ""
 
-#: virtinst/Storage.py:142
+#: virtinst/Storage.py:138
 #, python-format
 msgid "'%s' is not an absolute path."
 msgstr ""
 
-#: virtinst/Storage.py:203
+#: virtinst/Storage.py:199
 msgid "Filesystem Directory"
 msgstr ""
 
-#: virtinst/Storage.py:204
+#: virtinst/Storage.py:200
 msgid "Pre-Formatted Block Device"
 msgstr ""
 
-#: virtinst/Storage.py:205
+#: virtinst/Storage.py:201
 msgid "Network Exported Directory"
 msgstr ""
 
-#: virtinst/Storage.py:206
+#: virtinst/Storage.py:202
 msgid "LVM Volume Group"
 msgstr ""
 
-#: virtinst/Storage.py:207
+#: virtinst/Storage.py:203
 msgid "Physical Disk Device"
 msgstr ""
 
-#: virtinst/Storage.py:208
+#: virtinst/Storage.py:204
 msgid "iSCSI Target"
 msgstr ""
 
-#: virtinst/Storage.py:218 virtinst/Storage.py:255
+#: virtinst/Storage.py:214 virtinst/Storage.py:251
 #, fuzzy, python-format
 msgid "Unknown storage pool type: %s"
 msgstr "Непозната врста мреже %s"
 
-#: virtinst/Storage.py:277
+#: virtinst/Storage.py:273
 msgid "Storage device type the pool will represent."
 msgstr ""
 
-#: virtinst/Storage.py:296
+#: virtinst/Storage.py:292
 #, fuzzy
 msgid "Host name must be a string"
 msgstr "Вредност Keymap мора бити низ знакова"
 
-#: virtinst/Storage.py:315
+#: virtinst/Storage.py:311
 #, fuzzy, python-format
 msgid "Name '%s' already in use by another pool."
 msgstr "Други гост већ користи диск %s!\n"
 
-#: virtinst/Storage.py:353
+#: virtinst/Storage.py:349
 #, python-format
 msgid "Could not define storage pool: %s"
 msgstr ""
 
-#: virtinst/Storage.py:363
+#: virtinst/Storage.py:359
 #, fuzzy, python-format
 msgid "Could not build storage pool: %s"
 msgstr "Не могу да прибавим датотеку %s: %s"
 
-#: virtinst/Storage.py:372
+#: virtinst/Storage.py:368
 #, python-format
 msgid "Could not start storage pool: %s"
 msgstr ""
 
-#: virtinst/Storage.py:399
+#: virtinst/Storage.py:395
 msgid "Directory to use for the storage pool."
 msgstr ""
 
-#: virtinst/Storage.py:435
+#: virtinst/Storage.py:431
 msgid "The existing device to mount for the pool."
 msgstr ""
 
-#: virtinst/Storage.py:438 virtinst/Storage.py:496
+#: virtinst/Storage.py:434 virtinst/Storage.py:492
 msgid "Location to mount the source device."
 msgstr ""
 
-#: virtinst/Storage.py:456
+#: virtinst/Storage.py:452
 #, fuzzy, python-format
 msgid "Unknown Filesystem format: %s"
 msgstr "Непозната врста мреже %s"
 
-#: virtinst/Storage.py:459
+#: virtinst/Storage.py:455
 msgid "Filesystem type of the source device."
 msgstr ""
 
-#: virtinst/Storage.py:472
+#: virtinst/Storage.py:468
 msgid "Device path is required"
 msgstr ""
 
-#: virtinst/Storage.py:491 virtinst/Storage.py:665
+#: virtinst/Storage.py:487 virtinst/Storage.py:694
 msgid "Path on the host that is being shared."
 msgstr ""
 
-#: virtinst/Storage.py:493 virtinst/Storage.py:637
+#: virtinst/Storage.py:489 virtinst/Storage.py:666
 #, fuzzy
 msgid "Name of the host sharing the storage."
 msgstr "Име инстанце госта"
 
-#: virtinst/Storage.py:514
+#: virtinst/Storage.py:510
 #, fuzzy, python-format
 msgid "Unknown Network Filesystem format: %s"
 msgstr "Непозната врста мреже %s"
 
-#: virtinst/Storage.py:517
+#: virtinst/Storage.py:513
 msgid "Type of network filesystem."
 msgstr ""
 
-#: virtinst/Storage.py:529 virtinst/Storage.py:676
+#: virtinst/Storage.py:525 virtinst/Storage.py:705
 #, fuzzy
 msgid "Hostname is required"
 msgstr "Мрежно име није потребно за %s"
 
-#: virtinst/Storage.py:531 virtinst/Storage.py:614 virtinst/Storage.py:678
+#: virtinst/Storage.py:527 virtinst/Storage.py:643 virtinst/Storage.py:707
 msgid "Host path is required"
 msgstr ""
 
-#: virtinst/Storage.py:549
+#: virtinst/Storage.py:545
 msgid "Location of the existing LVM volume group."
 msgstr ""
 
-#: virtinst/Storage.py:576
-msgid "Path to the existing disk device."
+#: virtinst/Storage.py:570
+msgid "Optional device(s) to build new LVM volume on."
 msgstr ""
 
-#: virtinst/Storage.py:579 virtinst/Storage.py:640
-msgid "Root location for identifying new storage volumes."
+#: virtinst/Storage.py:593
+msgid "Must explicitly specify source path if building' pool"
+msgstr ""
+
+#: virtinst/Storage.py:609
+msgid "Path to the existing disk device."
 msgstr ""
 
-#: virtinst/Storage.py:585
-msgid "Disk volume creation is not implemented."
+#: virtinst/Storage.py:612 virtinst/Storage.py:669
+msgid "Root location for identifying new storage volumes."
 msgstr ""
 
-#: virtinst/Storage.py:600
+#: virtinst/Storage.py:629
 #, fuzzy, python-format
 msgid "Unknown Disk format: %s"
 msgstr "Непозната врста мреже %s"
 
-#: virtinst/Storage.py:603
+#: virtinst/Storage.py:632
 msgid "Format of the source device's partition table."
 msgstr ""
 
-#: virtinst/Storage.py:626
+#: virtinst/Storage.py:655
 msgid "Must explicitly specify disk format if formatting disk device."
 msgstr ""
 
-#: virtinst/Storage.py:644
+#: virtinst/Storage.py:673
 msgid "iSCSI volume creation is not implemented."
 msgstr ""
 
-#: virtinst/Storage.py:694
+#: virtinst/Storage.py:734
 msgid "One of pool or pool_name must be specified."
 msgstr ""
 
-#: virtinst/Storage.py:697 virtinst/Storage.py:770
+#: virtinst/Storage.py:737 virtinst/Storage.py:806
 #, fuzzy
 msgid "'conn' must be specified with 'pool_name'"
 msgstr "Мора се одредити локација са које ће инсталирати"
 
-#: virtinst/Storage.py:756
-msgid "Default volume target path range exceeded."
-msgstr ""
-
-#: virtinst/Storage.py:766
+#: virtinst/Storage.py:802
 msgid "Must specify pool_object or pool_name"
 msgstr ""
 
-#: virtinst/Storage.py:772
+#: virtinst/Storage.py:808
 msgid "Connection does not support storage management."
 msgstr ""
 
-#: virtinst/Storage.py:777
+#: virtinst/Storage.py:813
 #, fuzzy, python-format
 msgid "Couldn't find storage pool '%s': %s"
 msgstr "Не могу да прибавим датотеку %s: %s"
 
-#: virtinst/Storage.py:781
+#: virtinst/Storage.py:817
 msgid "pool_object must be a virStoragePool"
 msgstr ""
 
-#: virtinst/Storage.py:792
+#: virtinst/Storage.py:831
 msgid "Capacity must be a positive number"
 msgstr ""
 
-#: virtinst/Storage.py:813
+#: virtinst/Storage.py:852
 msgid "Allocation must be a non-negative number"
 msgstr ""
 
-#: virtinst/Storage.py:833
+#: virtinst/Storage.py:872
 msgid "'pool' must be a virStoragePool instance."
 msgstr ""
 
-#: virtinst/Storage.py:835
+#: virtinst/Storage.py:874
 #, python-format
 msgid "pool '%s' must be active."
 msgstr ""
 
-#: virtinst/Storage.py:844
+#: virtinst/Storage.py:886 virtinst/Storage.py:1120
+msgid "input_vol must be a virStorageVol"
+msgstr ""
+
+#: virtinst/Storage.py:888
+msgid ""
+"Creating storage from an existing volume is not supported by this libvirt "
+"version."
+msgstr ""
+
+#: virtinst/Storage.py:892
+msgid "virStorageVolume pointer to clone/use as input."
+msgstr ""
+
+#: virtinst/Storage.py:900
 #, fuzzy, python-format
 msgid "'%s' is not a valid format."
 msgstr "Вредност cpuset садржи неприхватљив формат."
 
-#: virtinst/Storage.py:854
+#: virtinst/Storage.py:910
 #, fuzzy, python-format
 msgid "Name '%s' already in use by another volume."
 msgstr "Други гост већ користи диск %s!\n"
 
-#: virtinst/Storage.py:924
+#: virtinst/Storage.py:963
+#, python-format
+msgid "Allocating '%s'"
+msgstr ""
+
+#: virtinst/Storage.py:1023
 #, python-format
 msgid ""
 "There is not enough free space on the storage pool to create the volume. (%d "
 "M requested allocation > %d M available)"
 msgstr ""
 
-#: virtinst/Storage.py:930
+#: virtinst/Storage.py:1029
 #, python-format
 msgid ""
 "The requested volume capacity will exceed the available pool space when the "
 "volume is fully allocated. (%d M requested capacity > %d M available)"
 msgstr ""
 
-#: virtinst/_util.py:111
+#: virtinst/_util.py:128
 msgid "UUID must be a string."
 msgstr "Јединствени идентификатор мора бити низ знакова."
 
-#: virtinst/_util.py:119
+#: virtinst/_util.py:136
 msgid ""
 "UUID must be a 32-digit hexadecimal number. It may take the form XXXXXXXX-"
 "XXXX-XXXX-XXXX-XXXXXXXXXXXX or may omit hyphens altogether."
@@ -876,321 +954,520 @@ msgstr ""
 "Јединствени идентификатор мора бити 32-цифрени хексадецимални број. Може "
 "бити у облику XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX или може бити без цртица."
 
-#: virtinst/_util.py:130
+#: virtinst/_util.py:147
 #, fuzzy, python-format
 msgid "%s name must be a string between 0 and 50 characters"
 msgstr "Системско име мора бити низ знакова дужи од 0 и не дужи од 50 знакова"
 
-#: virtinst/_util.py:133
+#: virtinst/_util.py:150
 #, fuzzy, python-format
 msgid "%s name can not be only numeric characters"
 msgstr "Системско име не сме бити само са нумеричким знацима"
 
-#: virtinst/_util.py:136
+#: virtinst/_util.py:153
 #, fuzzy, python-format
 msgid "%s name can only contain alphanumeric, '_', '.', or '-' characters"
 msgstr ""
 "Системско име може садржати само алфанумеричке, „_“, „.“, или „-“ знакове"
 
-#: virtinst/util.py:67
+#: virtinst/_util.py:276
+msgid "Name generation range exceeded."
+msgstr ""
+
+#: virtinst/util.py:69
 #, python-format
 msgid "Invalid line length while parsing %s."
 msgstr "Неисправна дужина линије при рашчлањивању %s."
 
-#: virtinst/util.py:68
+#: virtinst/util.py:70
 #, python-format
 msgid "Defaulting bridge to xenbr%d"
 msgstr "Подразумевани мост за xenbr%d"
 
-#: virtinst/util.py:568
+#: virtinst/util.py:538 virtconv/parsers/ovf.py:160
 msgid "'path' or 'func' is required."
 msgstr ""
 
-#: virtinst/VirtualAudio.py:38
+#: virtinst/VirtualAudio.py:40
 #, fuzzy, python-format
 msgid "'model' must be a string,  was '%s'."
 msgstr "Вредност меморије мора бити цео број, али је „%s“"
 
-#: virtinst/VirtualAudio.py:41
+#: virtinst/VirtualAudio.py:43
 #, python-format
 msgid "Unsupported sound model '%s'"
 msgstr ""
 
-#: virtinst/VirtualDevice.py:43
+#: virtinst/VirtualCharDevice.py:64
+msgid "Psuedo TTY"
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:66
+msgid "Physical host character device"
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:68
+msgid "Standard input/output"
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:70
+msgid "Named pipe"
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:72
+msgid "Output to a file"
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:74
+msgid "Virtual console"
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:76
+msgid "Null device"
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:78
+msgid "TCP net console"
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:80
+msgid "UDP net console"
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:82
+msgid "Unix socket"
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:94
+msgid "Client mode."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:96
+msgid "Server mode."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:139
+#, fuzzy, python-format
+msgid "Unknown character device type '%s'."
+msgstr "Непозната врста мреже %s"
+
+#: virtinst/VirtualCharDevice.py:147 virtinst/VirtualCharDevice.py:157
+#, fuzzy, python-format
+msgid "Unknown character device type '%s'"
+msgstr "Непозната врста мреже %s"
+
+#: virtinst/VirtualCharDevice.py:173
+msgid "Method used to expose character device in the host."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:186
+#, fuzzy, python-format
+msgid "Unknown character mode '%s'."
+msgstr "Непозната врста мреже %s"
+
+#: virtinst/VirtualCharDevice.py:213
+#, fuzzy, python-format
+msgid "Unknown protocol '%s'."
+msgstr "Непозната врста мреже %s"
+
+#: virtinst/VirtualCharDevice.py:232
+#, python-format
+msgid "A source path is required for character device type '%s'"
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:282
+msgid "Host character device to attach to guest."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:288
+msgid "Named pipe to use for input and output."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:294
+msgid "File path to record device output."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:302 virtinst/VirtualCharDevice.py:312
+msgid "Target connect/listen mode."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:305
+msgid "Unix socket path."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:315
+msgid "Address to connect/listen to."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:318
+msgid "Port on target host to connect/listen to."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:321
+msgid "Format used when sending data."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:325
+#, fuzzy
+msgid "A host and port must be specified."
+msgstr "Мора се одредити локација са које ће инсталирати"
+
+#: virtinst/VirtualCharDevice.py:337
+msgid "Host address to bind to."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:340
+msgid "Host port to bind to."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:343
+msgid "Host address to send output to."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:346
+msgid "Host port to send output to."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:351
+#, fuzzy
+msgid "A connection port must be specified."
+msgstr "Мора се одредити локација са које ће инсталирати"
+
+#: virtinst/VirtualDevice.py:63
+msgid "Virtual device type must be set in subclass."
+msgstr ""
+
+#: virtinst/VirtualDevice.py:66
+#, fuzzy, python-format
+msgid "Unknown virtual device type '%s'."
+msgstr "Непозната врста мреже %s"
+
+#: virtinst/VirtualDevice.py:71
 msgid "'conn' must be a virConnect instance"
 msgstr ""
 
-#: virtinst/VirtualDevice.py:67
+#: virtinst/VirtualDevice.py:104
 #, fuzzy, python-format
 msgid "'%s' must be True or False"
 msgstr "Укључена графика мора бити Тачна или Нетачна"
 
-#: virtinst/VirtualDevice.py:71
+#: virtinst/VirtualDevice.py:108
 #, fuzzy, python-format
 msgid "'%s' must be a string, not '%s'."
 msgstr "Путања %s мора бити низ знакова или Ништа."
 
-#: virtinst/VirtualDisk.py:205
+#: virtinst/VirtualDisk.py:262
+#, python-format
+msgid "Error validating clone path: %s"
+msgstr ""
+
+#: virtinst/VirtualDisk.py:271
 #, fuzzy
 msgid "'size' must be a number greater than 0."
 msgstr "Вредност меморије мора бити цео број већи од 0"
 
-#: virtinst/VirtualDisk.py:215
+#: virtinst/VirtualDisk.py:281
 #, fuzzy, python-format
 msgid "Unknown storage type '%s'"
 msgstr "Непозната врста мреже %s"
 
-#: virtinst/VirtualDisk.py:224
+#: virtinst/VirtualDisk.py:290
 #, fuzzy, python-format
 msgid "Unknown device type '%s'"
 msgstr "Непозната врста мреже %s"
 
-#: virtinst/VirtualDisk.py:258
+#: virtinst/VirtualDisk.py:324
 msgid "vol_object must be a virStorageVol instance"
 msgstr ""
 
-#: virtinst/VirtualDisk.py:266
+#: virtinst/VirtualDisk.py:332
 msgid "vol_install must be a StorageVolume  instance."
 msgstr ""
 
-#: virtinst/VirtualDisk.py:292
+#: virtinst/VirtualDisk.py:358
 #, fuzzy, python-format
 msgid "Unknown cache mode '%s'"
 msgstr "Непозната врста мреже %s"
 
-#: virtinst/VirtualDisk.py:353
+#: virtinst/VirtualDisk.py:373
+#, fuzzy, python-format
+msgid "SELinux label '%s' is not valid."
+msgstr "Вредност cpuset садржи неприхватљив формат."
+
+#: virtinst/VirtualDisk.py:433
 #, fuzzy
 msgid "Unknown storage volume type."
 msgstr "Непозната врста мреже"
 
-#: virtinst/VirtualDisk.py:372
+#: virtinst/VirtualDisk.py:449
 #, python-format
 msgid "Passed type '%s' does not match detected storage type '%s'"
 msgstr ""
 
-#: virtinst/VirtualDisk.py:382
+#: virtinst/VirtualDisk.py:504
 msgid "volName must be a tuple of the form ('poolname', 'volname')"
 msgstr ""
 
-#: virtinst/VirtualDisk.py:385
+#: virtinst/VirtualDisk.py:507
 msgid "'volName' requires a passed connection."
 msgstr ""
 
-#: virtinst/VirtualDisk.py:387
+#: virtinst/VirtualDisk.py:509
 msgid "Connection does not support storage lookup."
 msgstr ""
 
-#: virtinst/VirtualDisk.py:393
+#: virtinst/VirtualDisk.py:515
 #, python-format
 msgid "Couldn't lookup volume object: %s"
 msgstr ""
 
-#: virtinst/VirtualDisk.py:436
+#: virtinst/VirtualDisk.py:540
+#, fuzzy, python-format
+msgid "Device type '%s' requires a path"
+msgstr "Врста диска „%s“ захтева путању"
+
+#: virtinst/VirtualDisk.py:583
 #, fuzzy, python-format
 msgid "Size must be specified for non existent volume path '%s'"
 msgstr "Величина мора бити дата за не-постојеће дискове."
 
-#: virtinst/VirtualDisk.py:459
+#: virtinst/VirtualDisk.py:603
 #, python-format
 msgid ""
 "Cannot use storage '%(path)s': '%(rootdir)s' is not managed on the remote "
 "host."
 msgstr ""
 
-#: virtinst/VirtualDisk.py:464
+#: virtinst/VirtualDisk.py:608
 #, python-format
 msgid "Cannot use storage %(path)s: %(err)s"
 msgstr ""
 
-#: virtinst/VirtualDisk.py:517
+#: virtinst/VirtualDisk.py:686
 msgid "Connection doesn't support remote storage."
 msgstr ""
 
-#: virtinst/VirtualDisk.py:534
-#, fuzzy, python-format
-msgid "Device type '%s' requires a path"
-msgstr "Врста диска „%s“ захтева путању"
-
-#: virtinst/VirtualDisk.py:549
+#: virtinst/VirtualDisk.py:689
 msgid "Must specify libvirt managed storage if on a remote connection"
 msgstr ""
 
-#: virtinst/VirtualDisk.py:558
+#: virtinst/VirtualDisk.py:726
 #, fuzzy, python-format
 msgid "The path '%s' must be a file or a device, not a directory"
 msgstr "Путања %s мора бити датотека или уређај, а не директоријум"
 
-#: virtinst/VirtualDisk.py:568
+#: virtinst/VirtualDisk.py:735
 #, fuzzy, python-format
 msgid "Cannot create storage for %s device."
 msgstr "Правим датотеку складишта..."
 
-#: virtinst/VirtualDisk.py:573
-#, fuzzy
-msgid "Local block device path must exist."
+#: virtinst/VirtualDisk.py:740
+#, fuzzy, python-format
+msgid "Local block device path '%s' must exist."
 msgstr "Одређени блок уређај не постоји."
 
-#: virtinst/VirtualDisk.py:581
+#: virtinst/VirtualDisk.py:749
 #, fuzzy, python-format
 msgid "size is required for non-existent disk '%s'"
 msgstr "Величина мора бити дата за не-постојеће дискове."
 
-#: virtinst/VirtualDisk.py:584
+#: virtinst/VirtualDisk.py:752
 #, python-format
 msgid "No write access to directory '%s'"
 msgstr ""
 
-#: virtinst/VirtualDisk.py:620
-msgid "Creating storage file..."
+#: virtinst/VirtualDisk.py:777
+#, python-format
+msgid "Cloning %(srcfile)s"
+msgstr ""
+
+#: virtinst/VirtualDisk.py:780
+#, fuzzy, python-format
+msgid "Creating storage file %s"
 msgstr "Правим датотеку складишта..."
 
-#: virtinst/VirtualDisk.py:626
+#: virtinst/VirtualDisk.py:793
+msgid "copying to an existing vdisk is not supported"
+msgstr ""
+
+#: virtinst/VirtualDisk.py:796
+msgid "failed to clone disk"
+msgstr ""
+
+#: virtinst/VirtualDisk.py:807
 #, python-format
 msgid "Error creating vdisk %s"
 msgstr ""
 
-#: virtinst/VirtualDisk.py:647
+#: virtinst/VirtualDisk.py:832
 #, python-format
 msgid "Error creating diskimage %s: %s"
 msgstr ""
 
-#: virtinst/VirtualDisk.py:669
+#: virtinst/VirtualDisk.py:932
 msgid "'disknode' or self.target must be set!"
 msgstr ""
 
-#: virtinst/VirtualDisk.py:741
+#: virtinst/VirtualDisk.py:1003
 msgid ""
 "The filesystem will not have enough free space to fully allocate the sparse "
 "file when the guest is running."
 msgstr ""
 
-#: virtinst/VirtualDisk.py:746
+#: virtinst/VirtualDisk.py:1008
 msgid "There is not enough free space to create the disk."
 msgstr ""
 
-#: virtinst/VirtualDisk.py:750
+#: virtinst/VirtualDisk.py:1012
 #, python-format
 msgid " %d M requested > %d M available"
 msgstr ""
 
-#: virtinst/VirtualDisk.py:840
+#: virtinst/VirtualDisk.py:1175
 msgid "Cannot determine device bus/type."
 msgstr ""
 
-#: virtinst/VirtualDisk.py:847
+#: virtinst/VirtualDisk.py:1182
 msgid "IDE CDROM must use 'hdc', but target in use."
 msgstr ""
 
-#: virtinst/VirtualDisk.py:863
+#: virtinst/VirtualDisk.py:1198
 #, python-format
 msgid "No more space for disks of type '%s'"
 msgstr ""
 
-#: virtinst/VirtualGraphics.py:38
+#: virtinst/VirtualGraphics.py:40
 msgid "Unknown graphics type"
 msgstr "Непозната врста графике"
 
-#: virtinst/VirtualGraphics.py:61
+#: virtinst/VirtualGraphics.py:63
 msgid "Keymap must be a string"
 msgstr "Вредност Keymap мора бити низ знакова"
 
-#: virtinst/VirtualGraphics.py:63
+#: virtinst/VirtualGraphics.py:65
 msgid "Keymap must be less than 16 characters"
 msgstr "Вредност Keymap мора бити краћа од 16 знакова"
 
-#: virtinst/VirtualGraphics.py:65
+#: virtinst/VirtualGraphics.py:67
 msgid "Keymap can only contain alphanumeric, '_', or '-' characters"
 msgstr "Вредност Keymap може само садржати алфанумеречке, „_“, или „-“ знакове"
 
-#: virtinst/VirtualGraphics.py:76
+#: virtinst/VirtualGraphics.py:78
 msgid ""
 "VNC port must be a number between 5900 and 65535, or -1 for auto allocation"
 msgstr ""
 
-#: virtinst/VirtualHostDevice.py:39
+#: virtinst/VirtualHostDevice.py:43
 msgid "'name' or 'nodedev' required."
 msgstr ""
 
-#: virtinst/VirtualHostDevice.py:58
+#: virtinst/VirtualHostDevice.py:62
 #, python-format
 msgid "Node device type '%s' cannot be attached to  guest."
 msgstr ""
 
-#: virtinst/VirtualHostDevice.py:124
+#: virtinst/VirtualHostDevice.py:130
 msgid "'nodedev' must be a USBDevice instance."
 msgstr ""
 
-#: virtinst/VirtualHostDevice.py:140
+#: virtinst/VirtualHostDevice.py:146
 msgid "'vendor' and 'product', or 'bus' and  'device' are required."
 msgstr ""
 
-#: virtinst/VirtualHostDevice.py:173
+#: virtinst/VirtualHostDevice.py:179
 msgid "'nodedev' must be a PCIDevice instance."
 msgstr ""
 
-#: virtinst/VirtualHostDevice.py:182
+#: virtinst/VirtualHostDevice.py:188
 msgid "'domain', 'bus', 'slot', and 'function' must be specified."
 msgstr ""
 
-#: virtinst/VirtualHostDevice.py:207
+#: virtinst/VirtualHostDevice.py:215
 #, python-format
 msgid "Could not detach PCI device: %s"
 msgstr ""
 
-#: virtinst/VirtualNetworkInterface.py:40
-#, fuzzy
-msgid "MAC address must be a string."
-msgstr "Вредност Keymap мора бити низ знакова"
+#: virtinst/VirtualInputDevice.py:46
+#, fuzzy, python-format
+msgid "Unknown input type '%s'."
+msgstr "Непозната врста мреже %s"
 
-#: virtinst/VirtualNetworkInterface.py:46
-msgid "MAC address must be of the format AA:BB:CC:DD:EE:FF"
-msgstr "MAC адреса мора бити у формату AA:BB:CC:DD:EE:FF"
+#: virtinst/VirtualInputDevice.py:54
+#, fuzzy, python-format
+msgid "Unknown input bus '%s'."
+msgstr "Непозната врста мреже %s"
+
+#: virtinst/VirtualNetworkInterface.py:45
+msgid "Shared physical device"
+msgstr ""
 
-#: virtinst/VirtualNetworkInterface.py:57
+#: virtinst/VirtualNetworkInterface.py:47
+msgid "Virtual networking"
+msgstr ""
+
+#: virtinst/VirtualNetworkInterface.py:49
+msgid "Usermode networking"
+msgstr ""
+
+#: virtinst/VirtualNetworkInterface.py:51
+#, fuzzy, python-format
+msgid "Unknown network type '%s'"
+msgstr "Непозната врста мреже %s"
+
+#: virtinst/VirtualNetworkInterface.py:72
 msgid "A network name was not provided"
 msgstr "Мрежно име није дато"
 
-#: virtinst/VirtualNetworkInterface.py:63
+#: virtinst/VirtualNetworkInterface.py:78
 #, python-format
 msgid "Unknown network type %s"
 msgstr "Непозната врста мреже %s"
 
-#: virtinst/VirtualNetworkInterface.py:79
+#: virtinst/VirtualNetworkInterface.py:90
+#, fuzzy
+msgid "MAC address must be a string."
+msgstr "Вредност Keymap мора бити низ знакова"
+
+#: virtinst/VirtualNetworkInterface.py:94
+msgid "MAC address must be of the format AA:BB:CC:DD:EE:FF"
+msgstr "MAC адреса мора бити у формату AA:BB:CC:DD:EE:FF"
+
+#: virtinst/VirtualNetworkInterface.py:113
 #, fuzzy, python-format
 msgid "Virtual network '%s' does not exist: %s"
 msgstr "LiveCD слика „%s“ не постоји"
 
-#: virtinst/VirtualNetworkInterface.py:82
+#: virtinst/VirtualNetworkInterface.py:116
 #, python-format
 msgid "Virtual network '%s' has not been started."
 msgstr ""
 
-#: virtinst/VirtualNetworkInterface.py:105
+#: virtinst/VirtualNetworkInterface.py:139
 #, fuzzy
 msgid ""
 "The MAC address you entered is already in use by another active virtual "
 "machine."
 msgstr "Друга неактивна виртуелна машина већ користи унету MAC адресу!"
 
-#: virtinst/VirtualNetworkInterface.py:108
+#: virtinst/VirtualNetworkInterface.py:142
 #, fuzzy
 msgid ""
 "The MAC address you entered conflicts with a device on the physical host."
 msgstr "MAC адреса коју сте унели се сукобљава са физичким NIC уређајем."
 
-#: virtinst/VirtualNetworkInterface.py:110
+#: virtinst/VirtualNetworkInterface.py:144
 #, fuzzy
 msgid ""
 "The MAC address you entered is already in use by another inactive virtual "
 "machine."
 msgstr "Друга неактивна виртуелна машина већ користи унету MAC адресу!"
 
-#: virtconv/diskcfg.py:242
+#: virtconv/diskcfg.py:251
 #, fuzzy, python-format
 msgid "Cannot convert to disk format %s"
 msgstr "Непозната врста мреже %s"
 
-#: virtconv/diskcfg.py:255
+#: virtconv/diskcfg.py:264
 #, python-format
 msgid "Cannot convert disk with absolute path %s"
 msgstr ""
@@ -1217,6 +1494,28 @@ msgstr ""
 msgid "Disk %s:%s storage does not exist"
 msgstr "Системски диск %s не постоји"
 
+#: virtconv/parsers/ovf.py:212
+#, python-format
+msgid "Didn't find parent bus for disk '%s'"
+msgstr ""
+
+#: virtconv/parsers/ovf.py:226 virtconv/parsers/ovf.py:242
+#, fuzzy, python-format
+msgid "Unknown reference id '%s' for path %s."
+msgstr "Непозната врста мреже %s"
+
+#: virtconv/parsers/ovf.py:235
+#, fuzzy, python-format
+msgid "Unknown storage path type %s."
+msgstr "Непозната врста мреже %s"
+
+#: virtconv/parsers/ovf.py:396
+#, python-format
+msgid ""
+"OVF section '%s' is listed as required, but parser doesn't know how to "
+"handle it."
+msgstr ""
+
 #: virtconv/parsers/virtimage.py:212
 #, fuzzy, python-format
 msgid "Couldn't import file '%s': %s"
@@ -1246,77 +1545,74 @@ msgstr ""
 msgid "No displayName defined in \"%s\""
 msgstr ""
 
-#: virt-clone:43
+#: virt-clone:47
 msgid "What is the name for the cloned virtual machine?"
 msgstr "Које је име за клонирану виртуелну машину?"
 
-#: virt-clone:61
+#: virt-clone:48
+#, fuzzy
+msgid "A name is required for the new virtual machine."
+msgstr "Које је име за клонирану виртуелну машину?"
+
+#: virt-clone:65
 #, fuzzy
 msgid "What is the name of the original virtual machine?"
 msgstr "Које је име или uuid идентификатор за оригиналну виртуелну машину?"
 
-#: virt-clone:102
+#: virt-clone:66
+#, fuzzy
+msgid "An original machine name or xml file is required."
+msgstr "Мрежно име није потребно за %s"
+
+#: virt-clone:112
 #, fuzzy, python-format
 msgid "What would you like to use as the cloned disk (file path) for '%s'?"
 msgstr "Шта бисте желели да користите као клонирани диск (путања датотеке)?"
 
-#: virt-clone:113
-#, python-format
-msgid "This will overwrite the existing path '%s'!\n"
-msgstr ""
-
-#: virt-clone:115
-#, fuzzy
-msgid "Do you really want to use this disk (yes or no)?"
-msgstr "Да ли заиста желите да користите диск (да или не)?"
-
-#: virt-clone:120 virt-install:206 virt-install.orig:206
-#, python-format
-msgid "Disk %s is already in use by another guest!\n"
-msgstr "Други гост већ користи диск %s!\n"
-
-#: virt-clone:121 virt-install:207 virt-install.orig:207
-msgid "Do you really want to use the disk (yes or no)? "
-msgstr "Да ли заиста желите да користите диск (да или не)?"
-
-#: virt-clone:148 virt-image:88 virt-install:334 virt-install.orig:334
+#: virt-clone:134 virt-image:78 virt-install:499
 msgid "Connect to hypervisor with URI"
 msgstr "Повезати се на хипервизора са УРИ-ом"
 
-#: virt-clone:151 virt-image:91 virt-install:337 virt-install.orig:337
+#: virt-clone:137 virt-image:81 virt-install:502
 msgid "General Options"
 msgstr ""
 
-#: virt-clone:154
+#: virt-clone:140
 #, fuzzy
 msgid "Name of the original guest; The status must be shut off or paused."
 msgstr ""
 "Име или uuid идентификатор за оригиналног госта; статус мора бити угашен"
 
-#: virt-clone:159
+#: virt-clone:145
 #, fuzzy
 msgid "XML file to use as the original guest."
 msgstr "Датотека која ће се користити као слика диска"
 
-#: virt-clone:162
+#: virt-clone:147
+msgid ""
+"Auto generate clone name and storage paths from the original guest "
+"configuration."
+msgstr ""
+
+#: virt-clone:151
 msgid "Name for the new guest"
 msgstr "Име за новог госта"
 
-#: virt-clone:166
+#: virt-clone:155
 msgid "New UUID for the clone guest; Default is a randomly generated UUID"
 msgstr ""
 "Нови јединствени идентификатор за клонираног госта; случајно изабрани "
 "идентификатор је подразумеван"
 
-#: virt-clone:170 virt-install:415 virt-install.orig:415
+#: virt-clone:159 virt-install:588
 msgid "Storage Configuration"
 msgstr ""
 
-#: virt-clone:174
+#: virt-clone:163
 msgid "New file to use as the disk image for the new guest"
 msgstr "Нова датотека која ће се користити као слика диска за новог госта"
 
-#: virt-clone:179
+#: virt-clone:168
 msgid ""
 "Force to copy devices (eg, if 'hdc' is a readonly cdrom device, --force-"
 "copy=hdc)"
@@ -1324,20 +1620,20 @@ msgstr ""
 "Приморај копирање уређаја (нпр, ако је „hdc“ случајан диск уређај, користити "
 "--force-copy=hdc)"
 
-#: virt-clone:183
+#: virt-clone:172
 msgid "Do not use a sparse file for the clone's disk image"
 msgstr "Немој користити празну датотеку за слику клонираног диска"
 
-#: virt-clone:187
+#: virt-clone:176
 msgid "Preserve a new file to use as the disk image for the new guest"
 msgstr ""
 "Сачувај нову датотеку која ће се користити као слика диска за новог госта"
 
-#: virt-clone:191 virt-image:128 virt-install:435 virt-install.orig:435
+#: virt-clone:180 virt-image:118 virt-install:610
 msgid "Networking Configuration"
 msgstr ""
 
-#: virt-clone:195
+#: virt-clone:184
 msgid ""
 "New fixed MAC address for the clone guest. Default is a randomly generated "
 "MAC"
@@ -1345,34 +1641,37 @@ msgstr ""
 "Нова фиксирана MAC адреса за клонираног госта. Случајно изабрана адреса је "
 "подразумевана"
 
-#: virt-clone:199 virt-image:158 virt-install:470 virt-install.orig:470
+#: virt-clone:188 virt-image:138 virt-install:639
 msgid "Miscellaneous Options"
 msgstr ""
 
-#: virt-clone:201 virt-convert:91 virt-image:172 virt-install:472
-#: virt-install.orig:472
+#: virt-clone:190 virt-convert:91 virt-image:152 virt-install:641
 msgid "Print debugging information"
 msgstr "Одштампај податке о отклањању грешака"
 
-#: virt-clone:203 virt-image:174
+#: virt-clone:192 virt-image:154 virt-install:652
+msgid "Request user input for ambiguous situations or required options."
+msgstr ""
+
+#: virt-clone:195 virt-image:157
 msgid ""
 "Do not prompt for input. Answers yes where applicable, terminates for all "
 "other prompts"
 msgstr ""
 
-#: virt-clone:219
+#: virt-clone:212
 #, fuzzy
 msgid "Must be privileged to clone Xen guests"
 msgstr "Морате бити root корисник да бисте клонирали Xen госта"
 
-#: virt-clone:250
+#: virt-clone:242
 #, python-format
 msgid ""
 "\n"
 "Clone '%s' created successfully."
 msgstr ""
 
-#: virt-clone:265 virt-image:283 virt-install:784 virt-install.orig:784
+#: virt-clone:257 virt-image:267 virt-install:933
 msgid "Installation aborted at user request"
 msgstr "Инсталацијa је обустављена на корисников захтев"
 
@@ -1388,11 +1687,11 @@ msgstr ""
 msgid "Output disk format"
 msgstr ""
 
-#: virt-convert:60 virt-install:386 virt-install.orig:386
+#: virt-convert:60 virt-install:557
 msgid "This guest should be a fully virtualized guest"
 msgstr "Овај гост би требало да буде потпуно виртуализован гост"
 
-#: virt-convert:62 virt-install:388 virt-install.orig:388
+#: virt-convert:62 virt-install:559
 msgid "This guest should be a paravirtualized guest"
 msgstr "Овај гост би требало да буде паравиртуализован гост"
 
@@ -1400,7 +1699,7 @@ msgstr "Овај гост би требало да буде паравиртуа
 msgid "Machine Architecture Type (i686/x86_64/ppc)"
 msgstr ""
 
-#: virt-convert:71 virt-install:360 virt-install.orig:360
+#: virt-convert:71 virt-install:525
 msgid ""
 "The OS type for fully virtualized guests, e.g. 'linux', 'unix', 'windows'"
 msgstr ""
@@ -1416,7 +1715,7 @@ msgstr ""
 "Варијанта оперативног система за потпуно виртуализоване госте, нпр. "
 "„fedora6“, „rhel5“, „solaris10“, „win2k“, „vista“"
 
-#: virt-convert:78 virt-install:376 virt-install.orig:376
+#: virt-convert:78 virt-install:547
 msgid ""
 "Disables APIC for fully virtualized guest (overrides value in os-type/os-"
 "variant db)"
@@ -1424,7 +1723,7 @@ msgstr ""
 "Онемогући APIC за потпуно виртуализованог госта (премости вредности os-type/"
 "os-variant у бази података)"
 
-#: virt-convert:82 virt-install:380 virt-install.orig:380
+#: virt-convert:82 virt-install:551
 msgid ""
 "Disables ACPI for fully virtualized guest (overrides value in os-type/os-"
 "variant db)"
@@ -1436,132 +1735,132 @@ msgstr ""
 msgid "Don't be verbose"
 msgstr ""
 
-#: virt-convert:97
+#: virt-convert:100
 #, fuzzy
 msgid "You need to provide an input VM definition"
 msgstr "Потребно је да пружите дескриптор XML слике"
 
-#: virt-convert:99
+#: virt-convert:102
 msgid "Too many arguments provided"
 msgstr ""
 
-#: virt-convert:103
+#: virt-convert:106
 #, fuzzy, python-format
 msgid "Unknown output disk format \"%s\""
 msgstr "Непозната врста мреже %s"
 
-#: virt-convert:118
+#: virt-convert:121
 #, fuzzy, python-format
 msgid "Unknown output format \"%s\")"
 msgstr "Непозната врста мреже %s"
 
-#: virt-convert:120
+#: virt-convert:123
 #, python-format
 msgid "No output handler for format \"%s\")"
 msgstr ""
 
-#: virt-convert:124
+#: virt-convert:127
 #, python-format
 msgid "Couldn't access input argument \"%s\"\n"
 msgstr ""
 
-#: virt-convert:131
+#: virt-convert:134
 #, fuzzy, python-format
 msgid "Couldn't determine input format for \"%s\": %s"
 msgstr "Не могу да прибавим датотеку %s: %s"
 
-#: virt-convert:136
+#: virt-convert:139
 #, fuzzy, python-format
 msgid "Unknown input format \"%s\")"
 msgstr "Непозната врста мреже %s"
 
-#: virt-convert:138
+#: virt-convert:141
 #, python-format
 msgid "No input handler for format \"%s\""
 msgstr ""
 
-#: virt-convert:173
+#: virt-convert:176
 #, python-format
 msgid "Couldn't clean up output directory \"%s\": %s"
 msgstr ""
 
-#: virt-convert:190 virt-convert:193
+#: virt-convert:192 virt-convert:195
 #, fuzzy, python-format
 msgid "Couldn't import file \"%s\": %s"
 msgstr "Не могу да прибавим датотеку %s: %s"
 
-#: virt-convert:230
+#: virt-convert:232
 #, python-format
 msgid "Generating output in '%(format)s' format to %(dir)s/"
 msgstr ""
 
-#: virt-convert:249
+#: virt-convert:251
 #, python-format
 msgid "Converting disk '%(path)s' to type %(format)s..."
 msgstr ""
 
-#: virt-convert:256 virt-convert:259
+#: virt-convert:258 virt-convert:261
 #, fuzzy, python-format
 msgid "Couldn't convert disks: %s"
 msgstr "Не могу да прибавим датотеку %s: %s"
 
-#: virt-convert:265
+#: virt-convert:267
 #, fuzzy, python-format
 msgid "Couldn't export to file \"%s\": %s"
 msgstr "Не могу да прибавим датотеку %s: %s"
 
-#: virt-convert:277
+#: virt-convert:279
 #, fuzzy
 msgid "Aborted at user request"
 msgstr "Инсталацијa је обустављена на корисников захтев"
 
-#: virt-image:64
+#: virt-image:50
 #, python-format
 msgid ""
 "Warning: more networks were provided [%i] then nics required [%i]. All "
-"extras are ignored"
+"extras are ignored."
 msgstr ""
 
-#: virt-image:68
+#: virt-image:55
 #, fuzzy, python-format
-msgid "The image requires %i network interface"
+msgid "The image requires %i network interface."
 msgstr "Слици је потребан један мрежни интерфејс"
 
-#: virt-image:94 virt-install:340 virt-install.orig:340
+#: virt-image:84 virt-install:505
 msgid "Name of the guest instance"
 msgstr "Име инстанце госта"
 
-#: virt-image:96 virt-install:342 virt-install.orig:342
+#: virt-image:86 virt-install:507
 msgid "Memory to allocate for guest instance in megabytes"
 msgstr "Меморија коју је потребно алоцирати за инстанцу госта у мегабајтима"
 
-#: virt-image:100 virt-install:349 virt-install.orig:349
+#: virt-image:90 virt-install:514
 #, fuzzy
 msgid "UUID for the guest."
 msgstr "Име за новог госта"
 
-#: virt-image:102 virt-install:351 virt-install.orig:351
+#: virt-image:92 virt-install:516
 msgid "Number of vcpus to configure for your guest"
 msgstr "Број виртуелних процесора које је потребно подесити за госта"
 
-#: virt-image:104 virt-install:353 virt-install.orig:353
+#: virt-image:94 virt-install:518
 msgid "Check that vcpus do not exceed physical CPUs and warn if they do."
 msgstr ""
 "Проверите да ли виртуелни процесори не превазилазе број физичких процесора и "
 "упозорите уколико да."
 
-#: virt-image:108 virt-install:357 virt-install.orig:357
+#: virt-image:98 virt-install:522
 msgid "Set which physical CPUs Domain can use."
 msgstr "Постави који домен физички процесори могу да користе."
 
-#: virt-image:111
+#: virt-image:101
 #, fuzzy
 msgid "The OS type being installed, e.g. 'linux', 'unix', 'windows'"
 msgstr ""
 "Врста оперативног система за потпуно виртуализоване госте, нпр. „linux“, "
 "„unix“, „windows“"
 
-#: virt-image:115
+#: virt-image:105
 #, fuzzy
 msgid ""
 "The OS variant being installed, e.g. 'fedora6', 'rhel5', 'solaris10', 'win2k'"
@@ -1569,99 +1868,59 @@ msgstr ""
 "Варијанта оперативног система за потпуно виртуализоване госте, нпр. "
 "„fedora6“, „rhel5“, „solaris10“, „win2k“, „vista“"
 
-#: virt-image:119 virt-install:371 virt-install.orig:371
+#: virt-image:109 virt-install:542
 msgid "Full Virtualization specific options"
 msgstr ""
 
-#: virt-image:122
+#: virt-image:112
 #, fuzzy
 msgid "Disables APIC for fully virtualized guest"
 msgstr "Овај гост би требало да буде потпуно виртуализован гост"
 
-#: virt-image:125
+#: virt-image:115
 #, fuzzy
 msgid "Disables ACPI for fully virtualized guest"
 msgstr "Овај гост би требало да буде потпуно виртуализован гост"
 
-#: virt-image:131 virt-install:438 virt-install.orig:438
-msgid ""
-"Bridge to connect guest NIC to; if none given, will try to determine the "
-"default"
-msgstr ""
-"Мост на који се повезује NIC госта; уколико ниједан није дат, биће покушано "
-"да се одреди подразумевани"
-
-#: virt-image:135 virt-install:442 virt-install.orig:442
+#: virt-image:121
 msgid ""
-"Connect the guest to a virtual network, forwarding to the physical network "
-"with NAT"
-msgstr ""
-"Повежи госта на виртуелну мрежу, прослеђујући га на физичку мрежу користећи "
-"NAT"
-
-#: virt-image:139 virt-install:446 virt-install.orig:446
-msgid ""
-"Fixed MAC address for the guest; if none or RANDOM is given a random address "
-"will be used"
-msgstr ""
-"Фиксирана MAC адреса за госта; уколико је ниједна или СЛУЧАЈНА одабрана, "
-"користиће се случајно изабрана адреса"
-
-#: virt-image:143 virt-install:452 virt-install.orig:452
-msgid "Graphics Configuration"
+"Specify a network interface. Ex:\n"
+"--network bridge=mybr0\n"
+"--network network=libvirt_network_name\n"
+"--network network=mynet,model=e1000,mac=00:11..."
 msgstr ""
 
-#: virt-image:145 virt-install:454 virt-install.orig:454
-msgid "Use VNC for graphics support"
-msgstr "Користи VNC као графичку подршку"
-
-#: virt-image:147 virt-install:456 virt-install.orig:456
-msgid "Port to use for VNC"
-msgstr "Прикључак за VNC"
-
-#: virt-image:149 virt-install:458 virt-install.orig:458
-msgid "Use SDL for graphics support"
-msgstr "Користи SDL као графичку подршку"
-
-#: virt-image:151 virt-install:460 virt-install.orig:460
-msgid "Don't set up a graphical console for the guest."
-msgstr "Немој постављати графичку конзолу за новог госта."
-
-#: virt-image:154 virt-install:467 virt-install.orig:467
-msgid "set up keymap for a graphical console"
-msgstr "постави мапирање кључа за графичку конзолу"
-
-#: virt-image:160
+#: virt-image:140
 msgid "Print the libvirt XML, but do not start the domain"
 msgstr "Одштампај libvirt XML, али немој покретати домен"
 
-#: virt-image:163
+#: virt-image:143
 msgid "The zero-based index of the boot record to use"
 msgstr "Нулти индекс који ће се користити при подизању система"
 
-#: virt-image:165
+#: virt-image:145
 msgid "Overwrite, or destroy, an existing image with the same name"
 msgstr ""
 
-#: virt-image:170
+#: virt-image:150
 msgid "Skip disk checksum verification process"
 msgstr ""
 
-#: virt-image:182
+#: virt-image:165
 msgid "You need to provide an image XML descriptor"
 msgstr "Потребно је да пружите дескриптор XML слике"
 
-#: virt-image:200
+#: virt-image:184
 #, fuzzy
 msgid "Cannot parse"
 msgstr "Не могу да прочитам %s"
 
-#: virt-image:205
+#: virt-image:189
 #, python-format
 msgid "The index for --boot must be between 0 and %d"
 msgstr "Индекс за --boot мора бити између 0 и %d"
 
-#: virt-image:261
+#: virt-image:245
 #, python-format
 msgid ""
 "\n"
@@ -1672,11 +1931,11 @@ msgstr ""
 "\n"
 "Правим госта %s..."
 
-#: virt-image:265
+#: virt-image:249
 msgid "Guest creation failed"
 msgstr "Није могуће направити госта"
 
-#: virt-image:271
+#: virt-image:255
 #, python-format
 msgid ""
 "Domain creation may not have been\n"
@@ -1689,116 +1948,152 @@ msgstr ""
 "покретањем „virsh start %s“; у супротном, молим\n"
 "поново покрените инсталацију."
 
-#: virt-install:70 virt-install.orig:70
+#: virt-install:84
 #, fuzzy, python-format
 msgid "Couldn't create default storage pool '%s': %s"
 msgstr "Не могу да прибавим датотеку %s: %s"
 
-#: virt-install:93 virt-install.orig:93
-msgid "--disk path must start with path=, pool=, or vol=."
+#: virt-install:107
+#, python-format
+msgid "%(chartype)s type %(devtype)s does not support '%(optname)s' option."
 msgstr ""
 
-#: virt-install:121 virt-install:133 virt-install.orig:121
-#: virt-install.orig:133
+#: virt-install:133
+#, fuzzy, python-format
+msgid "Unknown option(s) %s"
+msgstr "Непозната врста мреже %s"
+
+#: virt-install:147
 #, python-format
-msgid "Unknown '%s' value '%s'"
+msgid "Error in %(chartype)s device parameters: %(err)s"
 msgstr ""
 
-#: virt-install:126 virt-install.orig:126
-#, python-format
-msgid "Improper value for 'size': %s"
+#: virt-install:170
+msgid "--disk path must start with path=, pool=, or vol=."
 msgstr ""
 
-#: virt-install:137 virt-install.orig:137
+#: virt-install:177
 #, python-format
 msgid "Unknown --disk option '%s'."
 msgstr ""
 
-#: virt-install:147 virt-install.orig:147
-#, fuzzy
-msgid "Size must be specified with all 'pool='"
-msgstr "Мора се одредити локација са које ће инсталирати"
-
-#: virt-install:160 virt-install.orig:160
-msgid "Storage volume must be specified as pool=poolname/volname"
+#: virt-install:185 virt-install:197
+#, python-format
+msgid "Unknown '%s' value '%s'"
 msgstr ""
 
-#: virt-install:202 virt-install.orig:202
+#: virt-install:190
 #, python-format
-msgid "Error with storage parameters: %s"
+msgid "Improper value for 'size': %s"
 msgstr ""
 
-#: virt-install:214 virt-install.orig:214
+#: virt-install:212
 #, fuzzy
-msgid " Do you really want to use the disk (yes or no)?"
-msgstr "Да ли заиста желите да користите диск (да или не)?"
+msgid "Size must be specified with all 'pool='"
+msgstr "Мора се одредити локација са које ће инсталирати"
+
+#: virt-install:226
+msgid "Storage volume must be specified as vol=poolname/volname"
+msgstr ""
 
-#: virt-install:222 virt-install.orig:222
+#: virt-install:282
 #, fuzzy
-msgid "Cannot use --file, --size, or --disk with --nodisks"
+msgid "Cannot use --file, --file-size, or --disk with --nodisks"
 msgstr "Не могу да користим опцију --file са --nodisks"
 
-#: virt-install:225 virt-install.orig:225
+#: virt-install:285
 msgid ""
 "Cannot mix --file, --nonsparse, or --file-size with --disk options. Please "
 "see the manual for --disk syntax."
 msgstr ""
 
-#: virt-install:228 virt-install.orig:228
+#: virt-install:288
 msgid "A disk must be specified (use --nodisks to override)"
 msgstr ""
 
-#: virt-install:236 virt-install.orig:236
+#: virt-install:296
 msgid "Need to pass size for each disk"
 msgstr "Потребно је да проследите величину за сваки диск"
 
-#: virt-install:251 virt-install.orig:251
+#: virt-install:311
 msgid "Cannot use --mac with --nonetworks"
 msgstr ""
 
-#: virt-install:253 virt-install.orig:253
+#: virt-install:313
 #, fuzzy
 msgid "Cannot use --bridges with --nonetworks"
 msgstr "Не могу истовремено да повежем аргументе --bridge и --network"
 
-#: virt-install:255 virt-install.orig:255
+#: virt-install:315
 #, fuzzy
 msgid "Cannot use --network with --nonetworks"
 msgstr "Не могу да користим опцију --file са --nodisks"
 
-#: virt-install:275 virt-install.orig:275
+#: virt-install:342
+#, fuzzy
+msgid ""
+"Would you like a fully virtualized guest (yes or no)? This will allow you to "
+"run unmodified operating systems."
+msgstr ""
+"Да ли бисте желели потпуно виртуализованог госта (да или не)?  Ово ће Вам "
+"омогућити да покрећете немодификоване оперативне системе."
+
+#: virt-install:367
+#, fuzzy, python-format
+msgid "Would you like to use %s acceleration? (yes or no)"
+msgstr "Да ли бисте желели да укључите графичку подршку? (да или не)"
+
+#: virt-install:379
+msgid "Can't do both --hvm and --paravirt"
+msgstr "Не могу истовремено да извршим опције --hvm и --paravirt"
+
+#: virt-install:401 virt-install:402
+msgid "default"
+msgstr ""
+
+#: virt-install:423
 #, python-format
 msgid "Only one install method (%s) can be used"
 msgstr ""
 
-#: virt-install:281 virt-install.orig:281
+#: virt-install:429
 #, fuzzy
 msgid "Network PXE boot is not supported for paravirtualized guests"
 msgstr "Мрежно PXE стартовање није подржано за паравиртуализоване госте"
 
-#: virt-install:284 virt-install.orig:284
+#: virt-install:432
 msgid "Paravirtualized guests cannot install off cdrom media."
 msgstr ""
 
-#: virt-install:287 virt-install.orig:287
+#: virt-install:435
 msgid "--location can not be specified for remote connections."
 msgstr ""
 
-#: virt-install:296 virt-install.orig:296
+#: virt-install:444
 #, fuzzy, python-format
 msgid "One of %s, or cdrom media must be specified."
 msgstr "Само једна од опција --pxe, --location и --cdrom може бити коришћена"
 
-#: virt-install:314 virt-install.orig:314
+#: virt-install:457
 #, python-format
 msgid "Error creating cdrom disk: %s"
 msgstr ""
 
-#: virt-install:346 virt-install.orig:346
+#: virt-install:462
+#, fuzzy
+msgid "What is the install CD-ROM/ISO or URL?"
+msgstr "Која је локација инсталације?"
+
+#: virt-install:464
+#, fuzzy
+msgid "What is the install URL?"
+msgstr "Која је локација инсталације?"
+
+#: virt-install:511
 msgid "The CPU architecture to simulate"
 msgstr "Архитектура процесора која ће се симулирати"
 
-#: virt-install:364 virt-install.orig:364
+#: virt-install:529
 #, fuzzy
 msgid ""
 "The OS variant for fully virtualized guests, e.g. 'fedora6', 'rhel5', "
@@ -1807,33 +2102,40 @@ msgstr ""
 "Варијанта оперативног система за потпуно виртуализоване госте, нпр. "
 "„fedora6“, „rhel5“, „solaris10“, „win2k“, „vista“"
 
-#: virt-install:368 virt-install.orig:368
+#: virt-install:533
+msgid "Add a serial device to the domain."
+msgstr ""
+
+#: virt-install:536
+msgid "Add a parallel device to the domain."
+msgstr ""
+
+#: virt-install:539
 msgid "Physical host device to attach to the domain."
 msgstr ""
 
-#: virt-install:373 virt-install.orig:373
+#: virt-install:544
 msgid "Use sound device emulation"
 msgstr ""
 
-#: virt-install:384 virt-install.orig:384
+#: virt-install:555
 msgid "Virtualization Type Options"
 msgstr ""
 
-#: virt-install:391 virt-install.orig:391
-#, fuzzy
-msgid "Use kernel acceleration capabilities (kvm, kqemu, ...)"
-msgstr "Користи могућности убрзавања језгра"
+#: virt-install:562
+msgid "Hypervisor name to use (kvm, qemu, xen, ...)"
+msgstr ""
 
-#: virt-install:395 virt-install.orig:395
+#: virt-install:568
 msgid "Installation Method Options"
 msgstr ""
 
-#: virt-install:398 virt-install.orig:398
+#: virt-install:571
 #, fuzzy
 msgid "CD-ROM installation media"
 msgstr "Инсталација госта није успела"
 
-#: virt-install:401 virt-install.orig:401
+#: virt-install:574
 #, fuzzy
 msgid ""
 "Installation source (eg, nfs:host:/path, http://host/path, ftp://host/path)"
@@ -1841,79 +2143,73 @@ msgstr ""
 "Извор за инсталацију за паравиртуелизованог госта (нпр. nfs:host:/path, "
 "http://host/path, ftp://host/path)"
 
-#: virt-install:404 virt-install.orig:404
+#: virt-install:577
 #, fuzzy
 msgid "Boot from the network using the PXE protocol"
 msgstr "Покрени инсталацију са мреже користећи PXE протокол"
 
-#: virt-install:406 virt-install.orig:406
+#: virt-install:579
 #, fuzzy
 msgid "Build guest around an existing disk image"
 msgstr "Датотека која ће се користити као слика диска"
 
-#: virt-install:408 virt-install.orig:408
+#: virt-install:581
 #, fuzzy
 msgid "Treat the CD-ROM media as a Live CD"
 msgstr "Одреди да је CDROM медијум LiveCD"
 
-#: virt-install:411 virt-install.orig:411
+#: virt-install:584
 #, fuzzy
 msgid "Additional arguments to pass to the kernel booted from --location"
 msgstr "Додатни аргументи који ће се проследити инсталеру са паравирт. гостима"
 
-#: virt-install:418 virt-install.orig:418
-msgid "Specify storage to use as a disk with various options."
-msgstr ""
-
-#: virt-install:422 virt-install.orig:422
-msgid "File to use as the disk image"
-msgstr "Датотека која ће се користити као слика диска"
-
-#: virt-install:425 virt-install.orig:425
-msgid "Size of the disk image (if it doesn't exist) in gigabytes"
-msgstr "Величина слике диска (уколико не постоји) у гигабајтима"
-
-#: virt-install:429 virt-install.orig:429
+#: virt-install:591
 msgid ""
-"Don't use sparse files for disks.  Note that this will be significantly "
-"slower for guest creation"
+"Specify storage with various options. Ex.\n"
+"--disk path=/my/existing/disk\n"
+"--disk path=/my/new/disk,size=5 (in gigabytes)\n"
+"--disk vol=poolname:volname,device=cdrom,bus=scsi,..."
 msgstr ""
-"Немој користити празну датотеку као диск.  Обратите пажњу да ће ово доста "
-"успорити прављење госта"
 
-#: virt-install:432 virt-install.orig:432
+#: virt-install:596
 msgid "Don't set up any disks for the guest."
 msgstr "Немој постављати никакав диск за госта."
 
-#: virt-install:449 virt-install.orig:449
+#: virt-install:613
+msgid ""
+"Specify a network interface. Ex:\n"
+"--network bridge=mybr0\n"
+"--network network=my_libvirt_virtual_net\n"
+"--network network=mynet,model=virtio,mac=00:11..."
+msgstr ""
+
+#: virt-install:618
 #, fuzzy
 msgid "Don't create network interfaces for the guest."
 msgstr "Немој постављати никакав диск за госта."
 
-#: virt-install:463 virt-install.orig:463
+#: virt-install:632
+msgid "Specify video hardware type."
+msgstr ""
+
+#: virt-install:635
 msgid "Don't automatically try to connect to the guest console"
 msgstr "Немој самостално покушавати да се повежеш на конзолу госта"
 
-#: virt-install:474 virt-install.orig:474
+#: virt-install:643
 msgid "Disables the automatic rebooting when the installation is complete."
 msgstr ""
 "Искључује аутоматско поновно подизање система када се инсталација заврши."
 
-#: virt-install:477 virt-install.orig:477
+#: virt-install:646
 msgid "Time to wait (in minutes)"
 msgstr ""
 
-#: virt-install:479 virt-install.orig:479
+#: virt-install:648
 msgid "Forces 'yes' for any applicable prompts, terminates for all others"
 msgstr ""
 
-#: virt-install:483 virt-install.orig:483
-msgid ""
-"Request user input for ambiguous situations. Default is false, so will "
-"terminate if a prompt would typically be fired. "
-msgstr ""
-
-#: virt-install:503 virt-install.orig:503
+#: virt-install:671
 msgid ""
 "Unable to connect to graphical console: virt-viewer not installed. Please "
 "install the 'virt-viewer' package."
@@ -1921,19 +2217,11 @@ msgstr ""
 "Не могу да се повежем на графичку конзолу: virt-viewer није инсталиран. "
 "Молим, инсталирајте пакет „virt-viewer“."
 
-#: virt-install:536 virt-install.orig:536
-msgid "Can't do both --hvm and --paravirt"
-msgstr "Не могу истовремено да извршим опције --hvm и --paravirt"
-
-#: virt-install:548 virt-install.orig:548
-msgid "default"
-msgstr ""
-
-#: virt-install:570 virt-install.orig:570
+#: virt-install:713
 msgid "Can't use --pxe with --nonetworks"
 msgstr ""
 
-#: virt-install:671 virt-install.orig:671
+#: virt-install:818
 msgid ""
 "\n"
 "\n"
@@ -1943,7 +2231,7 @@ msgstr ""
 "\n"
 "Покрећем инсталацију..."
 
-#: virt-install:682 virt-install.orig:682
+#: virt-install:829
 #, python-format
 msgid ""
 "Domain installation does not appear to have been\n"
@@ -1956,7 +2244,7 @@ msgstr ""
 "извршавајући „virsh start %s“; у супротном, молим\n"
 "поново покрените инсталацију."
 
-#: virt-install:693 virt-install.orig:693
+#: virt-install:840
 #, python-format
 msgid ""
 "Guest installation complete... you can restart your domain\n"
@@ -1965,16 +2253,16 @@ msgstr ""
 "Инсталација госта је завршена... можете поново покренути ваш домен\n"
 "извршавањем „virsh start %s“"
 
-#: virt-install:697 virt-install.orig:697
+#: virt-install:844
 msgid "Guest installation complete... restarting guest."
 msgstr "Инсталација госта је завршена... поново покрећем госта."
 
-#: virt-install:703 virt-install.orig:703
+#: virt-install:850
 #, fuzzy
 msgid "Guest install interrupted."
 msgstr "Инсталација госта није успела"
 
-#: virt-install:710 virt-install.orig:710
+#: virt-install:857
 #, python-format
 msgid ""
 "Domain installation may not have been\n"
@@ -1987,39 +2275,39 @@ msgstr ""
 "извршавајући „virsh start %s“; у супротном, молим\n"
 "поново покрените инсталацију."
 
-#: virt-install:736 virt-install.orig:736
+#: virt-install:883
 #, fuzzy
 msgid "Guest installation failed."
 msgstr "Инсталација госта није успела"
 
-#: virt-install:746 virt-install.orig:746
+#: virt-install:893
 #, python-format
 msgid "%d minutes "
 msgstr ""
 
-#: virt-install:748 virt-install.orig:748
+#: virt-install:895
 #, fuzzy, python-format
 msgid ""
-"Domain installation still in progress. Waiting %sfor domain to complete "
-"installation."
+"Domain installation still in progress. Waiting %sfor installation to "
+"complete."
 msgstr ""
 "Инсталација домена је још у изради. Можете се поново повезати на \n"
 "конзолу да завршите инсталациони процес."
 
-#: virt-install:754 virt-install.orig:754
+#: virt-install:901
 msgid "Domain has shutdown. Continuing."
 msgstr ""
 
-#: virt-install:761 virt-install.orig:761
+#: virt-install:908
 #, python-format
 msgid "Could not lookup domain after install: %s"
 msgstr ""
 
-#: virt-install:768 virt-install.orig:768
+#: virt-install:915
 msgid "Installation has exceeded specified time limit. Exiting application."
 msgstr ""
 
-#: virt-install:772 virt-install.orig:772
+#: virt-install:921
 #, fuzzy
 msgid ""
 "Domain installation still in progress. You can reconnect to \n"
@@ -2028,6 +2316,72 @@ msgstr ""
 "Инсталација домена је још у изради. Можете се поново повезати на \n"
 "конзолу да завршите инсталациони процес."
 
+#~ msgid "Unknown network type "
+#~ msgstr "Непозната врста мреже"
+
+#~ msgid "Need to pass equal numbers of networks & mac addresses"
+#~ msgstr "Потребно је да проследите једнаке бројеве мрежних и МАС адреса"
+
+#, fuzzy
+#~ msgid "Cannot clone remote VM storage."
+#~ msgstr "Правим датотеку складишта..."
+
+#, fuzzy
+#~ msgid "Missing path to use as disk clone destination for '%s'"
+#~ msgstr "Недостаје датотека која ће се користити за слику диска %s"
+
+#, fuzzy
+#~ msgid "Could not determine storage type for '%s'"
+#~ msgstr "Не могу да прибавим датотеку %s: %s"
+
+#~ msgid ""
+#~ "Bridge to connect guest NIC to; if none given, will try to determine the "
+#~ "default"
+#~ msgstr ""
+#~ "Мост на који се повезује NIC госта; уколико ниједан није дат, биће "
+#~ "покушано да се одреди подразумевани"
+
+#~ msgid ""
+#~ "Connect the guest to a virtual network, forwarding to the physical "
+#~ "network with NAT"
+#~ msgstr ""
+#~ "Повежи госта на виртуелну мрежу, прослеђујући га на физичку мрежу "
+#~ "користећи NAT"
+
+#~ msgid ""
+#~ "Fixed MAC address for the guest; if none or RANDOM is given a random "
+#~ "address will be used"
+#~ msgstr ""
+#~ "Фиксирана MAC адреса за госта; уколико је ниједна или СЛУЧАЈНА одабрана, "
+#~ "користиће се случајно изабрана адреса"
+
+#, fuzzy
+#~ msgid "Use kernel acceleration capabilities (kvm, kqemu, ...)"
+#~ msgstr "Користи могућности убрзавања језгра"
+
+#~ msgid "File to use as the disk image"
+#~ msgstr "Датотека која ће се користити као слика диска"
+
+#~ msgid "Size of the disk image (if it doesn't exist) in gigabytes"
+#~ msgstr "Величина слике диска (уколико не постоји) у гигабајтима"
+
+#~ msgid ""
+#~ "Don't use sparse files for disks.  Note that this will be significantly "
+#~ "slower for guest creation"
+#~ msgstr ""
+#~ "Немој користити празну датотеку као диск.  Обратите пажњу да ће ово доста "
+#~ "успорити прављење госта"
+
+#~ msgid "ERROR: "
+#~ msgstr "ГРЕШКА: "
+
+#~ msgid "Do you really want to use the disk (yes or no)? "
+#~ msgstr "Да ли заиста желите да користите диск (да или не)?"
+
+#, fuzzy
+#~ msgid " Do you really want to use the disk (yes or no)?"
+#~ msgstr "Да ли заиста желите да користите диск (да или не)?"
+
 #~ msgid "Name or UUID of guest to clone is required"
 #~ msgstr ""
 #~ "За клонирање госта потребно је унети име или јединствени идентификатор"
@@ -2113,29 +2467,6 @@ msgstr ""
 #~ "Потребно је да пружите локацију слике XML датотеке, користећи опцију --"
 #~ "image"
 
-#~ msgid ""
-#~ "Would you like a fully virtualized guest (yes or no)?  This will allow "
-#~ "you to run unmodified operating systems."
-#~ msgstr ""
-#~ "Да ли бисте желели потпуно виртуализованог госта (да или не)?  Ово ће Вам "
-#~ "омогућити да покрећете немодификоване оперативне системе."
-
-#~ msgid "What would you like to use as the disk (file path)?"
-#~ msgstr "Шта бисте желели да користите као диск (путања датотеке)?"
-
-#~ msgid ""
-#~ "Please enter the path to the file you would like to use for storage. It "
-#~ "will have size %sGB."
-#~ msgstr ""
-#~ "Унесите путању до датотеке коју бисте желели да користите као складиште. "
-#~ "Имаће величину од %sГБ."
-
-#~ msgid "How large would you like the disk (%s) to be (in gigabytes)?"
-#~ msgstr "Колико велики бисте желели да диск (%s) буде (у гигабајтима)?"
-
-#~ msgid "What is the install location?"
-#~ msgstr "Која је локација инсталације?"
-
 #~ msgid "What is the virtual CD image, CD device or install location?"
 #~ msgstr "Која је слика виртуелног CD-а, CD уређај или локација инсталације?"
 
@@ -2146,12 +2477,6 @@ msgstr ""
 #~ msgid "LiveCD installations are not supported for paravirt guests"
 #~ msgstr "Инсталације са LiveCD-а нису подржане за паравирт. госте"
 
-#~ msgid "What is the name of your virtual machine?"
-#~ msgstr "Које је име Ваше виртуелне машине?"
-
-#~ msgid "How much RAM should be allocated (in megabytes)?"
-#~ msgstr "Колико RAM меморије треба да буде алоцирано (у мегабајтима)?"
-
 #~ msgid "How many VCPUs should be attached?"
 #~ msgstr "Колико би виртуелних процесора требало да буде придружено?"
 
@@ -2165,9 +2490,6 @@ msgstr ""
 #~ msgid "Can't do both SDL and nographics"
 #~ msgstr "Не могу истовремено да покренем SDL и неграфички део"
 
-#~ msgid "Would you like to enable graphics support? (yes or no)"
-#~ msgstr "Да ли бисте желели да укључите графичку подршку? (да или не)"
-
 #~ msgid "The specified path's root directory must exist."
 #~ msgstr "Одређена путања кореног директоријума мора постојати."
 
diff --git a/po/sr at latin.po b/po/sr at latin.po
index 6391e02..5eb9008 100644
--- a/po/sr at latin.po
+++ b/po/sr at latin.po
@@ -9,7 +9,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: virtinst\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-03-09 20:41-0400\n"
+"POT-Creation-Date: 2009-07-28 20:34-0400\n"
 "PO-Revision-Date: 2008-04-07 00:24+0200\n"
 "Last-Translator: Jovan Krunic <jovan.krunic at gmail.com>\n"
 "Language-Team: Serbian (sr) <fedora-trans-sr at redhat.com>\n"
@@ -20,227 +20,287 @@ msgstr ""
 "10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
 "X-Generator: KBabel 1.11.4\n"
 
-#: virtinst/CapabilitiesParser.py:168
+#: virtinst/CapabilitiesParser.py:172
 #, python-format
 msgid "No domains available for virt type '%(type)s', arch %(arch)s."
 msgstr ""
 
-#: virtinst/CapabilitiesParser.py:393
+#: virtinst/CapabilitiesParser.py:412
 #, python-format
 msgid "for arch '%s'"
 msgstr ""
 
-#: virtinst/CapabilitiesParser.py:397
+#: virtinst/CapabilitiesParser.py:416
 #, fuzzy, python-format
 msgid "virtualization type '%s'"
 msgstr "Vrsta virtuelizacije koja nije podržana"
 
-#: virtinst/CapabilitiesParser.py:399
+#: virtinst/CapabilitiesParser.py:418
 #, fuzzy
 msgid "any virtualization options"
 msgstr "Vrsta virtuelizacije koja nije podržana"
 
-#: virtinst/CapabilitiesParser.py:401
+#: virtinst/CapabilitiesParser.py:420
 #, python-format
 msgid "Host does not support %(virttype)s %(arch)s"
 msgstr ""
 
-#: virtinst/CapabilitiesParser.py:414
+#: virtinst/CapabilitiesParser.py:433
 #, python-format
 msgid ""
 "Host does not support domain type '%(domain)s' for virtualization type '%"
 "(virttype)s' arch '%(arch)s'"
 msgstr ""
 
-#: virtinst/cli.py:117
+#: virtinst/cli.py:152
 #, fuzzy
 msgid "Exiting at user request."
 msgstr "Instalacija je obustavljena na korisnikov zahtev"
 
-#: virtinst/cli.py:122
+#: virtinst/cli.py:159
 #, fuzzy
 msgid "Must be root to create Xen guests"
 msgstr "Morate biti root korisnik da biste klonirali Xen gosta"
 
-#: virtinst/cli.py:124
-msgid "Could not find usable default libvirt connection."
+#: virtinst/cli.py:297
+msgid "(use --prompt to run interactively)"
 msgstr ""
 
-#: virtinst/cli.py:146
+#: virtinst/cli.py:317
+msgid " (Use --prompt or --force to override)"
+msgstr ""
+
+#: virtinst/cli.py:352
+msgid "Graphics Configuration"
+msgstr ""
+
+#: virtinst/cli.py:354
+msgid "Use VNC for graphics support"
+msgstr "Koristi VNC kao grafičku podršku"
+
+#: virtinst/cli.py:356
+msgid "Port to use for VNC"
+msgstr "Priključak za VNC"
+
+#: virtinst/cli.py:358
+msgid "Address to listen on for VNC connections."
+msgstr ""
+
+#: virtinst/cli.py:361
+#, fuzzy
+msgid "set up keymap for the VNC console"
+msgstr "postavi mapiranje ključa za grafičku konzolu"
+
+#: virtinst/cli.py:363
+msgid "Use SDL for graphics support"
+msgstr "Koristi SDL kao grafičku podršku"
+
+#: virtinst/cli.py:365
+msgid "Don't set up a graphical console for the guest."
+msgstr "Nemoj postavljati grafičku konzolu za novog gosta."
+
+#: virtinst/cli.py:388
+#, fuzzy
+msgid "A disk path must be specified."
+msgstr "Mora se odrediti lokacija sa koje će instalirati"
+
+#: virtinst/cli.py:390
+msgid "What would you like to use as the disk (file path)?"
+msgstr "Šta biste želeli da koristite kao disk (putanja datoteke)?"
+
+#: virtinst/cli.py:392
 #, python-format
-msgid "Force flag is set but input was required. Prompt was: %s"
+msgid ""
+"Please enter the path to the file you would like to use for storage. It will "
+"have size %sGB."
 msgstr ""
+"Unesite putanju do datoteke koju biste želeli da koristite kao skladište. "
+"Imaće veličinu od %sGB."
 
-#: virtinst/cli.py:149
+#: virtinst/cli.py:401
+#, fuzzy
+msgid "A size must be specified for non-existent disks."
+msgstr "Veličina mora biti data za ne-postojeće diskove."
+
+#: virtinst/cli.py:403
 #, python-format
-msgid "Prompting disabled, but input was requested. Prompt was: %s"
+msgid "How large would you like the disk (%s) to be (in gigabytes)?"
+msgstr "Koliko veliki biste želeli da disk (%s) bude (u gigabajtima)?"
+
+#: virtinst/cli.py:424 virt-install:274
+#, python-format
+msgid "Error with storage parameters: %s"
 msgstr ""
 
-#: virtinst/cli.py:169
+#: virtinst/cli.py:426
+#, fuzzy
+msgid "Do you really want to use this disk (yes or no)"
+msgstr "Da li zaista želite da koristite disk (da ili ne)?"
+
+#: virtinst/cli.py:430
 #, python-format
-msgid ""
-"Prompting disabled, but yes/no was requested. Try --force to force 'yes' for "
-"such prompts. Prompt was: %s"
+msgid "This will overwrite the existing path '%s'!\n"
 msgstr ""
 
-#: virtinst/cli.py:179 virt-clone:48 virt-clone:69 virt-clone:108
-msgid "ERROR: "
-msgstr "GREŠKA: "
+#: virtinst/cli.py:437
+#, python-format
+msgid "Disk %s is already in use by another guest!\n"
+msgstr "Drugi gost već koristi disk %s!\n"
 
-#: virtinst/cli.py:189
+#: virtinst/cli.py:464
+msgid "What is the name of your virtual machine?"
+msgstr "Koje je ime Vaše virtuelne mašine?"
+
+#: virtinst/cli.py:465
 #, fuzzy
 msgid "A name is required for the virtual machine."
 msgstr "Koje je ime za kloniranu virtuelnu mašinu?"
 
-#: virtinst/cli.py:197
+#: virtinst/cli.py:472
+msgid "How much RAM should be allocated (in megabytes)?"
+msgstr "Koliko RAM memorije treba da bude alocirano (u megabajtima)?"
+
+#: virtinst/cli.py:473
 #, fuzzy
 msgid "Memory amount is required for the virtual machine."
 msgstr "Koje je ime za kloniranu virtuelnu mašinu?"
 
-#: virtinst/cli.py:199
+#: virtinst/cli.py:477
 #, fuzzy, python-format
 msgid "Installs currently require %d megs of RAM."
 msgstr "GREŠKA: instalacija trenutno zahteva %d megabajta RAM memorije."
 
-#: virtinst/cli.py:219
-#, python-format
+#: virtinst/cli.py:498
+#, fuzzy, python-format
 msgid ""
 "You have asked for more virtual CPUs (%d) than there are physical CPUs (%d) "
-"on the host. This will work, but performance will be poor. Are you sure? "
-"(yes or no)"
+"on the host. This will work, but performance will be poor. "
 msgstr ""
 "Tražili ste više virtuelnih procesora (%d) nego što postoji fizičkih "
 "procesora (%d) na domaćinu. Ovo će raditi, ali će učinak biti slab. Da li "
 "ste sigurni? (da ili ne)"
 
-#: virtinst/cli.py:276
-msgid "Unknown network type "
-msgstr "Nepoznata vrsta mreže"
+#: virtinst/cli.py:501
+msgid "Are you sure? (yes or no)"
+msgstr ""
 
-#: virtinst/cli.py:293
+#: virtinst/cli.py:612
+#, fuzzy, python-format
+msgid "Unknown network option '%s'"
+msgstr "Nepoznata vrsta mreže %s"
+
+#: virtinst/cli.py:630
 msgid "Cannot mix both --bridge and --network arguments"
 msgstr "Ne mogu istovremeno da povežem argumente --bridge i --network"
 
-#: virtinst/cli.py:310
-msgid "Need to pass equal numbers of networks & mac addresses"
-msgstr "Potrebno je da prosledite jednake brojeve mrežnih i MAS adresa"
+#: virtinst/cli.py:645
+#, fuzzy
+msgid "Cannot pass more mac addresses than networks."
+msgstr "Ne mogu istovremeno da povežem argumente --bridge i --network"
 
-#: virtinst/cli.py:332
+#: virtinst/cli.py:672
 msgid "Can't specify more than one of VNC, SDL, or --nographics"
 msgstr ""
 
-#: virtinst/cli.py:376 virtinst/cli.py:381 virt-install:320 virt-install:325
-#: virt-install.orig:320 virt-install.orig:325
+#: virtinst/cli.py:700
+#, python-format
+msgid "Didn't match keymap '%s' in keytable!"
+msgstr ""
+
+#: virtinst/cli.py:731 virtinst/cli.py:736
 #, python-format
 msgid "%s option requires an argument"
 msgstr "Opcija %s je potrebna kao argument"
 
-#: virtinst/CloneManager.py:54
+#: virtinst/CloneManager.py:109
 msgid "Connection must be a 'virConnect' instance."
 msgstr ""
 
-#: virtinst/CloneManager.py:102
+#: virtinst/CloneManager.py:162
 #, fuzzy
 msgid "Original xml must be a string."
 msgstr "Jedinstveni identifikator mora biti niz znakova."
 
-#: virtinst/CloneManager.py:114
+#: virtinst/CloneManager.py:177
 #, python-format
 msgid "Invalid name for new guest: %s"
 msgstr "Neispravno ime za novog gosta: %s"
 
-#: virtinst/CloneManager.py:119
+#: virtinst/CloneManager.py:182
 #, fuzzy, python-format
 msgid "Domain name '%s' already in use."
 msgstr "Domen sa imenom %s već postoji!"
 
-#: virtinst/CloneManager.py:131
+#: virtinst/CloneManager.py:195
 #, python-format
 msgid "Invalid uuid for new guest: %s"
 msgstr "Neispravan jedinstveni identifikator za novog gosta: %s"
 
-#: virtinst/CloneManager.py:134
+#: virtinst/CloneManager.py:198
 #, fuzzy, python-format
 msgid "UUID '%s' is in use by another guest."
 msgstr "Drugi gost već koristi disk %s!\n"
 
-#: virtinst/CloneManager.py:149
+#: virtinst/CloneManager.py:226
 #, python-format
 msgid "Could not use path '%s' for cloning: %s"
 msgstr ""
 
-#: virtinst/CloneManager.py:235
+#: virtinst/CloneManager.py:356
+msgid "Cloning policy must be a list of rules."
+msgstr ""
+
+#: virtinst/CloneManager.py:373
 #, fuzzy
 msgid "Original guest name or xml is required."
 msgstr "Mrežno ime nije potrebno za %s"
 
-#: virtinst/CloneManager.py:253
-#, fuzzy
-msgid "Cannot clone remote VM storage."
-msgstr "Pravim datoteku skladišta..."
-
-#: virtinst/CloneManager.py:261
+#: virtinst/CloneManager.py:391
 msgid "Domain with devices to clone must be paused or shutoff."
 msgstr ""
 
-#: virtinst/CloneManager.py:304
-#, fuzzy, python-format
-msgid "Missing path to use as disk clone destination for '%s'"
-msgstr "Nedostaje datoteka koja će se koristiti za sliku diska %s"
+#: virtinst/CloneManager.py:437
+#, python-format
+msgid ""
+"More disks to clone that new paths specified. (%(passed)d specified, %(need)"
+"d needed"
+msgstr ""
 
-#: virtinst/CloneManager.py:403
+#: virtinst/CloneManager.py:557
 #, fuzzy, python-format
 msgid "Disk '%s' does not exist."
 msgstr "Sistemski disk %s ne postoji"
 
-#: virtinst/CloneManager.py:406
+#: virtinst/CloneManager.py:568
 #, fuzzy, python-format
 msgid "Could not determine original disk information: %s"
 msgstr "Ne mogu da pribavim datoteku %s: %s"
 
-#: virtinst/CloneManager.py:474
+#: virtinst/CloneManager.py:613
 #, fuzzy, python-format
 msgid "Domain '%s' was not found."
 msgstr "Domen %s nije pronađen"
 
-#: virtinst/CloneManager.py:539
-msgid "copying to an existing vdisk is not supported"
-msgstr ""
-
-#: virtinst/CloneManager.py:547
-#, fuzzy, python-format
-msgid "Could not determine storage type for '%s'"
-msgstr "Ne mogu da pribavim datoteku %s: %s"
-
-#: virtinst/CloneManager.py:574
-#, python-format
-msgid "Cloning %(srcfile)s"
-msgstr ""
-
-#: virtinst/CloneManager.py:581
-msgid "failed to clone disk"
-msgstr ""
-
-#: virtinst/DistroInstaller.py:51
+#: virtinst/DistroInstaller.py:57
 msgid "Invalid NFS format: No path specified."
 msgstr "Pogrešan NFS oblik: nijedna putanja nije određena."
 
-#: virtinst/DistroInstaller.py:93
+#: virtinst/DistroInstaller.py:101
 #, fuzzy, python-format
 msgid "Invalid 'location' type %s."
 msgstr "Data je neispravna lokacija datoteke: "
 
-#: virtinst/DistroInstaller.py:99
+#: virtinst/DistroInstaller.py:107
 #, fuzzy
 msgid "'conn' must be specified if 'location' is a storage tuple."
 msgstr "Mora se odrediti lokacija sa koje će instalirati"
 
-#: virtinst/DistroInstaller.py:135
+#: virtinst/DistroInstaller.py:145
 #, fuzzy, python-format
 msgid "Checking installer location failed: Could not find media '%s'."
 msgstr "Instalacija gosta nije uspela"
 
-#: virtinst/DistroInstaller.py:138
+#: virtinst/DistroInstaller.py:148
 #, fuzzy
 msgid ""
 "Install media location must be an NFS, HTTP or FTP network install source, "
@@ -249,76 +309,76 @@ msgstr ""
 "Medij za instalaciju mora biti NFS, HTTP ili FTP izvor, ili postojeća "
 "lokalna datoteka/uređaj"
 
-#: virtinst/DistroInstaller.py:145
+#: virtinst/DistroInstaller.py:155
 #, fuzzy
 msgid "Privilege is required for NFS installations"
 msgstr "Koje je ime za kloniranu virtuelnu mašinu?"
 
-#: virtinst/Guest.py:100
+#: virtinst/Guest.py:108
 msgid "Unable to connect to hypervisor, aborting installation!"
 msgstr "Ne mogu da se povežem na hipervizora, prekidam instalaciju!"
 
-#: virtinst/Guest.py:118
+#: virtinst/Guest.py:126
 msgid "Guest"
 msgstr ""
 
-#: virtinst/Guest.py:125
+#: virtinst/Guest.py:133
 #, fuzzy, python-format
 msgid "Guest name '%s' is already in use."
 msgstr "Drugi gost već koristi disk %s!\n"
 
-#: virtinst/Guest.py:133
+#: virtinst/Guest.py:141
 msgid "Memory value must be an integer greater than 0"
 msgstr "Vrednost memorije mora biti ceo broj veći od 0"
 
-#: virtinst/Guest.py:145
+#: virtinst/Guest.py:153
 msgid "Max Memory value must be an integer greater than 0"
 msgstr "Najveća vrednost memorije mora biti ceo broj veći od 0"
 
-#: virtinst/Guest.py:164
+#: virtinst/Guest.py:172
 #, fuzzy
 msgid "Number of vcpus must be a postive integer."
 msgstr "Broj virtuelnih procesora mora biti u opsegu 1-%d"
 
-#: virtinst/Guest.py:166
+#: virtinst/Guest.py:174
 #, fuzzy, python-format
 msgid "Number of vcpus must be no greater than %d for this vm type."
 msgstr "Broj virtuelnih procesora mora biti u opsegu 1-%d"
 
-#: virtinst/Guest.py:176
+#: virtinst/Guest.py:184
 msgid "cpuset must be string"
 msgstr "Vrednost cpuset mora biti niz znakova"
 
-#: virtinst/Guest.py:178
+#: virtinst/Guest.py:186
 msgid "cpuset can only contain numeric, ',', or '-' characters"
 msgstr "Vrednost cpuset može sadržati samo numeričke, „,“, ili „-“ znakove"
 
-#: virtinst/Guest.py:186
+#: virtinst/Guest.py:194
 msgid "cpuset contains invalid format."
 msgstr "Vrednost cpuset sadrži neprihvatljiv format."
 
-#: virtinst/Guest.py:188 virtinst/Guest.py:192
+#: virtinst/Guest.py:196 virtinst/Guest.py:202
 msgid "cpuset's pCPU numbers must be less than pCPUs."
 msgstr ""
 "Brojevi trenutnih procesa vrednosti cpuset moraju biti manji od broja "
 "trenutnih procesa."
 
-#: virtinst/Guest.py:212
+#: virtinst/Guest.py:222
 #, fuzzy
 msgid "OS type must be a string."
 msgstr "Vrednost Keymap mora biti niz znakova"
 
-#: virtinst/Guest.py:224
+#: virtinst/Guest.py:234
 #, fuzzy, python-format
 msgid "OS type '%s' does not exist in our dictionary"
 msgstr "Vrsta operativnog sistema %s ne postoji u našem rečniku"
 
-#: virtinst/Guest.py:232
+#: virtinst/Guest.py:242
 #, fuzzy
 msgid "OS variant must be a string."
 msgstr "Jedinstveni identifikator mora biti niz znakova."
 
-#: virtinst/Guest.py:238
+#: virtinst/Guest.py:248
 #, fuzzy, python-format
 msgid ""
 "OS variant '%(var)s; does not exist in our dictionary for OS type '%(ty)s'"
@@ -326,52 +386,56 @@ msgstr ""
 "Promenljiva operativnog sistema %(var)s ne postoji u našem rečniku "
 "operativnog sistema vrste %(type)s"
 
-#: virtinst/Guest.py:250
+#: virtinst/Guest.py:260
 #, python-format
 msgid "Unknown OS variant '%s'"
 msgstr ""
 
-#: virtinst/Guest.py:291
+#: virtinst/Guest.py:301
 msgid "Must specify whether graphics are enabled"
 msgstr "Morate naznačiti da li je grafika uključena"
 
-#: virtinst/Guest.py:314
+#: virtinst/Guest.py:324
 msgid "Graphics enabled must be True or False"
 msgstr "Uključena grafika mora biti Tačna ili Netačna"
 
-#: virtinst/Guest.py:373
+#: virtinst/Guest.py:383
 msgid "You must specify a valid ISO or CD-ROM location for the installation"
 msgstr ""
 "Morate naznačiti ispravnu lokaciju ISO slike ili CD-ROM uređaja za "
 "instalaciju"
 
-#: virtinst/Guest.py:376
+#: virtinst/Guest.py:386
 msgid "The specified media path does not exist."
 msgstr "Naznačena putanja do medija ne postoji."
 
-#: virtinst/Guest.py:573
+#: virtinst/Guest.py:415
+msgid "Must pass a VirtualDevice instance."
+msgstr ""
+
+#: virtinst/Guest.py:660
 msgid "Unable to start domain for guest, aborting installation!"
 msgstr "Ne mogu da pokrenem domen za gosta, prekidam instalaciju!"
 
-#: virtinst/Guest.py:623
+#: virtinst/Guest.py:716
 #, fuzzy, python-format
 msgid "Could not remove old vm '%s': %s"
 msgstr "Ne mogu da pribavim datoteku %s: %s"
 
-#: virtinst/Guest.py:625
+#: virtinst/Guest.py:718
 #, python-format
 msgid "Domain named %s already exists!"
 msgstr "Domen sa imenom %s već postoji!"
 
-#: virtinst/Guest.py:632
+#: virtinst/Guest.py:725
 msgid "Creating domain..."
 msgstr "Pravim domen..."
 
-#: virtinst/Guest.py:635
+#: virtinst/Guest.py:728
 msgid "Unable to create domain for the guest, aborting installation!"
 msgstr "Ne mogu da napravim domen za gosta, prekidam instalaciju!"
 
-#: virtinst/Guest.py:643
+#: virtinst/Guest.py:736
 msgid ""
 "It appears that your installation has crashed.  You should be able to find "
 "more information in the logs"
@@ -379,7 +443,7 @@ msgstr ""
 "Izgleda da je instalacija prekinuta. Trebalo bi da možete da pronađete više "
 "informacija u evidencijama"
 
-#: virtinst/Guest.py:677
+#: virtinst/Guest.py:770
 msgid ""
 "Domain has not existed.  You should be able to find more information in the "
 "logs"
@@ -387,7 +451,7 @@ msgstr ""
 "Domen nije postojao. Trebalo bi da možete da pronađete više informacija u "
 "evidencijama"
 
-#: virtinst/Guest.py:679
+#: virtinst/Guest.py:772
 msgid ""
 "Domain has not run yet.  You should be able to find more information in the "
 "logs"
@@ -395,23 +459,18 @@ msgstr ""
 "Domen još nije pokrenut. Trebalo bi da možete da pronađete više informacija "
 "u evidencijama"
 
-#: virtinst/Guest.py:696
+#: virtinst/Guest.py:789
 msgid "Domain has already been started!"
 msgstr "Domen je već pokrenut!"
 
-#: virtinst/Guest.py:707
+#: virtinst/Guest.py:809
 msgid "The UUID you entered is already in use by another guest!"
 msgstr "Drugi gost već koristi jedinstveni identifikator koji ste uneli"
 
-#: virtinst/Guest.py:710
+#: virtinst/Guest.py:812
 msgid "Name and memory must be specified for all guests!"
 msgstr "Ime i memorija moraju biti naznačeni za sve goste!"
 
-#: virtinst/Guest.py:745
-#, fuzzy, python-format
-msgid "Invalid dictionary entry for device '%s %s'"
-msgstr "Neispravno ime za novog gosta: %s"
-
 #: virtinst/ImageFetcher.py:86
 #, python-format
 msgid "Retrieving file %s..."
@@ -479,7 +538,7 @@ msgstr "Vrednost memorije mora biti ceo broj, ali je „%s“"
 msgid "The format for disk %s must be one of %s"
 msgstr "Format za disk %s mora biti jedan od %s"
 
-#: virtinst/ImageParser.py:248
+#: virtinst/ImageParser.py:263
 #, python-format
 msgid "Checking disk signature for %s"
 msgstr ""
@@ -502,25 +561,25 @@ msgstr "Glavni element nije „slika“"
 msgid "A disk device must be specified."
 msgstr ""
 
-#: virtinst/Installer.py:151
+#: virtinst/Installer.py:156
 msgid "Guest.cdrom must be a boolean type"
 msgstr "Vrednost Guest.cdrom mora biti logičkog tipa "
 
-#: virtinst/Installer.py:168 virtinst/Installer.py:173
-#: virtinst/Installer.py:177
+#: virtinst/Installer.py:173 virtinst/Installer.py:178
+#: virtinst/Installer.py:182
 msgid "Must pass both a kernel and initrd"
 msgstr "Potrebno je proslediti i jezgro i initrd"
 
-#: virtinst/Installer.py:180
+#: virtinst/Installer.py:185
 msgid "Kernel and initrd must be specified by a list, dict, or tuple."
 msgstr "Jezgro i initrd moraju biti definisani u listi, rečniku ili u paru"
 
-#: virtinst/Installer.py:335
+#: virtinst/Installer.py:340
 #, fuzzy
 msgid "A connection must be specified."
 msgstr "Mora se odrediti lokacija sa koje će instalirati"
 
-#: virtinst/Installer.py:353
+#: virtinst/Installer.py:358
 #, fuzzy, python-format
 msgid "No 'Guest' class for virtualization type '%s'"
 msgstr "Vrsta virtuelizacije koja nije podržana"
@@ -530,345 +589,364 @@ msgstr "Vrsta virtuelizacije koja nije podržana"
 msgid "CDROM media must be specified for the live CD installer."
 msgstr "Vrsta operativnog sistema mora biti određena pre promene."
 
-#: virtinst/NodeDeviceParser.py:114
+#: virtinst/NodeDeviceParser.py:118
 msgid "System"
 msgstr ""
 
-#: virtinst/NodeDeviceParser.py:146
+#: virtinst/NodeDeviceParser.py:151
 #, python-format
 msgid "Interface %s"
 msgstr ""
 
-#: virtinst/NodeDeviceParser.py:364 virtinst/NodeDeviceParser.py:392
-#: virtinst/util.py:531 virtinst/VirtualDevice.py:58
+#: virtinst/NodeDeviceParser.py:378 virtinst/NodeDeviceParser.py:406
+#: virtinst/util.py:501 virtinst/VirtualDevice.py:86
 msgid "'conn' must be a virConnect instance."
 msgstr ""
 
-#: virtinst/NodeDeviceParser.py:411
+#: virtinst/NodeDeviceParser.py:426
 #, fuzzy
 msgid "Connection does not support host device enumeration."
 msgstr "HVM virtualizacija nije podržana; ne mogu da pokrenem LiveCD"
 
-#: virtinst/NodeDeviceParser.py:487
+#: virtinst/NodeDeviceParser.py:502
 #, fuzzy, python-format
 msgid "Unknown host device capability '%s'."
 msgstr "Nepoznata vrsta mreže %s"
 
-#: virtinst/OSDistro.py:99
+#: virtinst/osdict.py:129
+#, fuzzy, python-format
+msgid "Invalid dictionary entry for device '%s %s'"
+msgstr "Neispravno ime za novog gosta: %s"
+
+#: virtinst/OSDistro.py:102
 #, python-format
 msgid "Could not find an installable distribution at '%s'"
 msgstr "Nisam mogao da pronađem instalacionu distribuciju na „%s“"
 
-#: virtinst/OSDistro.py:109
+#: virtinst/OSDistro.py:112
 msgid "Invalid install location: "
 msgstr "Neispravna lokacija za instalaciju:"
 
-#: virtinst/OSDistro.py:230
+#: virtinst/OSDistro.py:237
 #, fuzzy, python-format
 msgid "Couldn't find %(type)s kernel for %(distro)s tree."
 msgstr "Nisam mogao da pronađem instalacionu distribuciju na „%s“"
 
-#: virtinst/OSDistro.py:244
+#: virtinst/OSDistro.py:252
 #, fuzzy, python-format
 msgid "Could not find boot.iso in %s tree."
 msgstr ""
 "Nisam mogao da pronađem odgovarajući deskriptor podizanja sistema za ovog "
 "domaćina"
 
-#: virtinst/OSDistro.py:383
+#: virtinst/OSDistro.py:413
 #, fuzzy, python-format
 msgid "Could not find a kernel path for virt type '%s'"
 msgstr "Nisam mogao da pronađem instalacionu distribuciju na „%s“"
 
-#: virtinst/OSDistro.py:392
+#: virtinst/OSDistro.py:422
 #, fuzzy
 msgid "Could not find a boot iso path for this tree."
 msgstr ""
 "Nisam mogao da pronađem odgovarajući deskriptor podizanja sistema za ovog "
 "domaćina"
 
-#: virtinst/OSDistro.py:646
+#: virtinst/OSDistro.py:676
 msgid "Unable to determine kernel RPM path"
 msgstr "Ne mogu da utvrdim putanju za RPM jezgra"
 
-#: virtinst/OSDistro.py:648
+#: virtinst/OSDistro.py:678
 msgid "Unable to determine install-initrd RPM path"
 msgstr "Ne mogu da utvrdim putanju za install-initrd RPM"
 
-#: virtinst/OSDistro.py:659
+#: virtinst/OSDistro.py:689
 msgid "Building initrd"
 msgstr "Izgrađujem initrd"
 
-#: virtinst/OSDistro.py:1021
+#: virtinst/OSDistro.py:1051
 #, python-format
 msgid "Solaris miniroot not found at %s"
 msgstr ""
 
-#: virtinst/OSDistro.py:1056
+#: virtinst/OSDistro.py:1089
 #, python-format
 msgid "OpenSolaris PV kernel not found at %s"
 msgstr ""
 
-#: virtinst/OSDistro.py:1066
-#, python-format
-msgid "OpenSolaris microroot not found at %s"
-msgstr ""
-
-#: virtinst/Storage.py:85
+#: virtinst/Storage.py:81
 #, fuzzy, python-format
 msgid "Unknown storage object type: %s"
 msgstr "Nepoznata vrsta mreže %s"
 
-#: virtinst/Storage.py:108
+#: virtinst/Storage.py:104
 msgid "'conn' must be a libvirt connection object."
 msgstr ""
 
-#: virtinst/Storage.py:110
+#: virtinst/Storage.py:106
 msgid "Passed connection is not libvirt storage capable"
 msgstr ""
 
-#: virtinst/Storage.py:120
+#: virtinst/Storage.py:116
 #, fuzzy
 msgid "Storage object"
 msgstr "Ime za novog gosta"
 
-#: virtinst/Storage.py:125
+#: virtinst/Storage.py:121
 #, fuzzy
 msgid "Name for the storage object."
 msgstr "Ime za novog gosta"
 
-#: virtinst/Storage.py:132
+#: virtinst/Storage.py:128
 msgid "Permissions must be passed as a dict object"
 msgstr ""
 
-#: virtinst/Storage.py:135
+#: virtinst/Storage.py:131
 msgid "Permissions must contain 'mode', 'owner', 'group' and 'label' keys."
 msgstr ""
 
-#: virtinst/Storage.py:142
+#: virtinst/Storage.py:138
 #, python-format
 msgid "'%s' is not an absolute path."
 msgstr ""
 
-#: virtinst/Storage.py:203
+#: virtinst/Storage.py:199
 msgid "Filesystem Directory"
 msgstr ""
 
-#: virtinst/Storage.py:204
+#: virtinst/Storage.py:200
 msgid "Pre-Formatted Block Device"
 msgstr ""
 
-#: virtinst/Storage.py:205
+#: virtinst/Storage.py:201
 msgid "Network Exported Directory"
 msgstr ""
 
-#: virtinst/Storage.py:206
+#: virtinst/Storage.py:202
 msgid "LVM Volume Group"
 msgstr ""
 
-#: virtinst/Storage.py:207
+#: virtinst/Storage.py:203
 msgid "Physical Disk Device"
 msgstr ""
 
-#: virtinst/Storage.py:208
+#: virtinst/Storage.py:204
 msgid "iSCSI Target"
 msgstr ""
 
-#: virtinst/Storage.py:218 virtinst/Storage.py:255
+#: virtinst/Storage.py:214 virtinst/Storage.py:251
 #, fuzzy, python-format
 msgid "Unknown storage pool type: %s"
 msgstr "Nepoznata vrsta mreže %s"
 
-#: virtinst/Storage.py:277
+#: virtinst/Storage.py:273
 msgid "Storage device type the pool will represent."
 msgstr ""
 
-#: virtinst/Storage.py:296
+#: virtinst/Storage.py:292
 #, fuzzy
 msgid "Host name must be a string"
 msgstr "Vrednost Keymap mora biti niz znakova"
 
-#: virtinst/Storage.py:315
+#: virtinst/Storage.py:311
 #, fuzzy, python-format
 msgid "Name '%s' already in use by another pool."
 msgstr "Drugi gost već koristi disk %s!\n"
 
-#: virtinst/Storage.py:353
+#: virtinst/Storage.py:349
 #, python-format
 msgid "Could not define storage pool: %s"
 msgstr ""
 
-#: virtinst/Storage.py:363
+#: virtinst/Storage.py:359
 #, fuzzy, python-format
 msgid "Could not build storage pool: %s"
 msgstr "Ne mogu da pribavim datoteku %s: %s"
 
-#: virtinst/Storage.py:372
+#: virtinst/Storage.py:368
 #, python-format
 msgid "Could not start storage pool: %s"
 msgstr ""
 
-#: virtinst/Storage.py:399
+#: virtinst/Storage.py:395
 msgid "Directory to use for the storage pool."
 msgstr ""
 
-#: virtinst/Storage.py:435
+#: virtinst/Storage.py:431
 msgid "The existing device to mount for the pool."
 msgstr ""
 
-#: virtinst/Storage.py:438 virtinst/Storage.py:496
+#: virtinst/Storage.py:434 virtinst/Storage.py:492
 msgid "Location to mount the source device."
 msgstr ""
 
-#: virtinst/Storage.py:456
+#: virtinst/Storage.py:452
 #, fuzzy, python-format
 msgid "Unknown Filesystem format: %s"
 msgstr "Nepoznata vrsta mreže %s"
 
-#: virtinst/Storage.py:459
+#: virtinst/Storage.py:455
 msgid "Filesystem type of the source device."
 msgstr ""
 
-#: virtinst/Storage.py:472
+#: virtinst/Storage.py:468
 msgid "Device path is required"
 msgstr ""
 
-#: virtinst/Storage.py:491 virtinst/Storage.py:665
+#: virtinst/Storage.py:487 virtinst/Storage.py:694
 msgid "Path on the host that is being shared."
 msgstr ""
 
-#: virtinst/Storage.py:493 virtinst/Storage.py:637
+#: virtinst/Storage.py:489 virtinst/Storage.py:666
 #, fuzzy
 msgid "Name of the host sharing the storage."
 msgstr "Ime instance gosta"
 
-#: virtinst/Storage.py:514
+#: virtinst/Storage.py:510
 #, fuzzy, python-format
 msgid "Unknown Network Filesystem format: %s"
 msgstr "Nepoznata vrsta mreže %s"
 
-#: virtinst/Storage.py:517
+#: virtinst/Storage.py:513
 msgid "Type of network filesystem."
 msgstr ""
 
-#: virtinst/Storage.py:529 virtinst/Storage.py:676
+#: virtinst/Storage.py:525 virtinst/Storage.py:705
 #, fuzzy
 msgid "Hostname is required"
 msgstr "Mrežno ime nije potrebno za %s"
 
-#: virtinst/Storage.py:531 virtinst/Storage.py:614 virtinst/Storage.py:678
+#: virtinst/Storage.py:527 virtinst/Storage.py:643 virtinst/Storage.py:707
 msgid "Host path is required"
 msgstr ""
 
-#: virtinst/Storage.py:549
+#: virtinst/Storage.py:545
 msgid "Location of the existing LVM volume group."
 msgstr ""
 
-#: virtinst/Storage.py:576
-msgid "Path to the existing disk device."
+#: virtinst/Storage.py:570
+msgid "Optional device(s) to build new LVM volume on."
 msgstr ""
 
-#: virtinst/Storage.py:579 virtinst/Storage.py:640
-msgid "Root location for identifying new storage volumes."
+#: virtinst/Storage.py:593
+msgid "Must explicitly specify source path if building' pool"
+msgstr ""
+
+#: virtinst/Storage.py:609
+msgid "Path to the existing disk device."
 msgstr ""
 
-#: virtinst/Storage.py:585
-msgid "Disk volume creation is not implemented."
+#: virtinst/Storage.py:612 virtinst/Storage.py:669
+msgid "Root location for identifying new storage volumes."
 msgstr ""
 
-#: virtinst/Storage.py:600
+#: virtinst/Storage.py:629
 #, fuzzy, python-format
 msgid "Unknown Disk format: %s"
 msgstr "Nepoznata vrsta mreže %s"
 
-#: virtinst/Storage.py:603
+#: virtinst/Storage.py:632
 msgid "Format of the source device's partition table."
 msgstr ""
 
-#: virtinst/Storage.py:626
+#: virtinst/Storage.py:655
 msgid "Must explicitly specify disk format if formatting disk device."
 msgstr ""
 
-#: virtinst/Storage.py:644
+#: virtinst/Storage.py:673
 msgid "iSCSI volume creation is not implemented."
 msgstr ""
 
-#: virtinst/Storage.py:694
+#: virtinst/Storage.py:734
 msgid "One of pool or pool_name must be specified."
 msgstr ""
 
-#: virtinst/Storage.py:697 virtinst/Storage.py:770
+#: virtinst/Storage.py:737 virtinst/Storage.py:806
 #, fuzzy
 msgid "'conn' must be specified with 'pool_name'"
 msgstr "Mora se odrediti lokacija sa koje će instalirati"
 
-#: virtinst/Storage.py:756
-msgid "Default volume target path range exceeded."
-msgstr ""
-
-#: virtinst/Storage.py:766
+#: virtinst/Storage.py:802
 msgid "Must specify pool_object or pool_name"
 msgstr ""
 
-#: virtinst/Storage.py:772
+#: virtinst/Storage.py:808
 msgid "Connection does not support storage management."
 msgstr ""
 
-#: virtinst/Storage.py:777
+#: virtinst/Storage.py:813
 #, fuzzy, python-format
 msgid "Couldn't find storage pool '%s': %s"
 msgstr "Ne mogu da pribavim datoteku %s: %s"
 
-#: virtinst/Storage.py:781
+#: virtinst/Storage.py:817
 msgid "pool_object must be a virStoragePool"
 msgstr ""
 
-#: virtinst/Storage.py:792
+#: virtinst/Storage.py:831
 msgid "Capacity must be a positive number"
 msgstr ""
 
-#: virtinst/Storage.py:813
+#: virtinst/Storage.py:852
 msgid "Allocation must be a non-negative number"
 msgstr ""
 
-#: virtinst/Storage.py:833
+#: virtinst/Storage.py:872
 msgid "'pool' must be a virStoragePool instance."
 msgstr ""
 
-#: virtinst/Storage.py:835
+#: virtinst/Storage.py:874
 #, python-format
 msgid "pool '%s' must be active."
 msgstr ""
 
-#: virtinst/Storage.py:844
+#: virtinst/Storage.py:886 virtinst/Storage.py:1120
+msgid "input_vol must be a virStorageVol"
+msgstr ""
+
+#: virtinst/Storage.py:888
+msgid ""
+"Creating storage from an existing volume is not supported by this libvirt "
+"version."
+msgstr ""
+
+#: virtinst/Storage.py:892
+msgid "virStorageVolume pointer to clone/use as input."
+msgstr ""
+
+#: virtinst/Storage.py:900
 #, fuzzy, python-format
 msgid "'%s' is not a valid format."
 msgstr "Vrednost cpuset sadrži neprihvatljiv format."
 
-#: virtinst/Storage.py:854
+#: virtinst/Storage.py:910
 #, fuzzy, python-format
 msgid "Name '%s' already in use by another volume."
 msgstr "Drugi gost već koristi disk %s!\n"
 
-#: virtinst/Storage.py:924
+#: virtinst/Storage.py:963
+#, python-format
+msgid "Allocating '%s'"
+msgstr ""
+
+#: virtinst/Storage.py:1023
 #, python-format
 msgid ""
 "There is not enough free space on the storage pool to create the volume. (%d "
 "M requested allocation > %d M available)"
 msgstr ""
 
-#: virtinst/Storage.py:930
+#: virtinst/Storage.py:1029
 #, python-format
 msgid ""
 "The requested volume capacity will exceed the available pool space when the "
 "volume is fully allocated. (%d M requested capacity > %d M available)"
 msgstr ""
 
-#: virtinst/_util.py:111
+#: virtinst/_util.py:128
 msgid "UUID must be a string."
 msgstr "Jedinstveni identifikator mora biti niz znakova."
 
-#: virtinst/_util.py:119
+#: virtinst/_util.py:136
 msgid ""
 "UUID must be a 32-digit hexadecimal number. It may take the form XXXXXXXX-"
 "XXXX-XXXX-XXXX-XXXXXXXXXXXX or may omit hyphens altogether."
@@ -876,321 +954,520 @@ msgstr ""
 "Jedinstveni identifikator mora biti 32-cifreni heksadecimalni broj. Može "
 "biti u obliku XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX ili može biti bez crtica."
 
-#: virtinst/_util.py:130
+#: virtinst/_util.py:147
 #, fuzzy, python-format
 msgid "%s name must be a string between 0 and 50 characters"
 msgstr "Sistemsko ime mora biti niz znakova duži od 0 i ne duži od 50 znakova"
 
-#: virtinst/_util.py:133
+#: virtinst/_util.py:150
 #, fuzzy, python-format
 msgid "%s name can not be only numeric characters"
 msgstr "Sistemsko ime ne sme biti samo sa numeričkim znacima"
 
-#: virtinst/_util.py:136
+#: virtinst/_util.py:153
 #, fuzzy, python-format
 msgid "%s name can only contain alphanumeric, '_', '.', or '-' characters"
 msgstr ""
 "Sistemsko ime može sadržati samo alfanumeričke, „_“, „.“, ili „-“ znakove"
 
-#: virtinst/util.py:67
+#: virtinst/_util.py:276
+msgid "Name generation range exceeded."
+msgstr ""
+
+#: virtinst/util.py:69
 #, python-format
 msgid "Invalid line length while parsing %s."
 msgstr "Neispravna dužina linije pri raščlanjivanju %s."
 
-#: virtinst/util.py:68
+#: virtinst/util.py:70
 #, python-format
 msgid "Defaulting bridge to xenbr%d"
 msgstr "Podrazumevani most za xenbr%d"
 
-#: virtinst/util.py:568
+#: virtinst/util.py:538 virtconv/parsers/ovf.py:160
 msgid "'path' or 'func' is required."
 msgstr ""
 
-#: virtinst/VirtualAudio.py:38
+#: virtinst/VirtualAudio.py:40
 #, fuzzy, python-format
 msgid "'model' must be a string,  was '%s'."
 msgstr "Vrednost memorije mora biti ceo broj, ali je „%s“"
 
-#: virtinst/VirtualAudio.py:41
+#: virtinst/VirtualAudio.py:43
 #, python-format
 msgid "Unsupported sound model '%s'"
 msgstr ""
 
-#: virtinst/VirtualDevice.py:43
+#: virtinst/VirtualCharDevice.py:64
+msgid "Psuedo TTY"
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:66
+msgid "Physical host character device"
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:68
+msgid "Standard input/output"
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:70
+msgid "Named pipe"
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:72
+msgid "Output to a file"
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:74
+msgid "Virtual console"
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:76
+msgid "Null device"
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:78
+msgid "TCP net console"
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:80
+msgid "UDP net console"
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:82
+msgid "Unix socket"
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:94
+msgid "Client mode."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:96
+msgid "Server mode."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:139
+#, fuzzy, python-format
+msgid "Unknown character device type '%s'."
+msgstr "Nepoznata vrsta mreže %s"
+
+#: virtinst/VirtualCharDevice.py:147 virtinst/VirtualCharDevice.py:157
+#, fuzzy, python-format
+msgid "Unknown character device type '%s'"
+msgstr "Nepoznata vrsta mreže %s"
+
+#: virtinst/VirtualCharDevice.py:173
+msgid "Method used to expose character device in the host."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:186
+#, fuzzy, python-format
+msgid "Unknown character mode '%s'."
+msgstr "Nepoznata vrsta mreže %s"
+
+#: virtinst/VirtualCharDevice.py:213
+#, fuzzy, python-format
+msgid "Unknown protocol '%s'."
+msgstr "Nepoznata vrsta mreže %s"
+
+#: virtinst/VirtualCharDevice.py:232
+#, python-format
+msgid "A source path is required for character device type '%s'"
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:282
+msgid "Host character device to attach to guest."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:288
+msgid "Named pipe to use for input and output."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:294
+msgid "File path to record device output."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:302 virtinst/VirtualCharDevice.py:312
+msgid "Target connect/listen mode."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:305
+msgid "Unix socket path."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:315
+msgid "Address to connect/listen to."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:318
+msgid "Port on target host to connect/listen to."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:321
+msgid "Format used when sending data."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:325
+#, fuzzy
+msgid "A host and port must be specified."
+msgstr "Mora se odrediti lokacija sa koje će instalirati"
+
+#: virtinst/VirtualCharDevice.py:337
+msgid "Host address to bind to."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:340
+msgid "Host port to bind to."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:343
+msgid "Host address to send output to."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:346
+msgid "Host port to send output to."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:351
+#, fuzzy
+msgid "A connection port must be specified."
+msgstr "Mora se odrediti lokacija sa koje će instalirati"
+
+#: virtinst/VirtualDevice.py:63
+msgid "Virtual device type must be set in subclass."
+msgstr ""
+
+#: virtinst/VirtualDevice.py:66
+#, fuzzy, python-format
+msgid "Unknown virtual device type '%s'."
+msgstr "Nepoznata vrsta mreže %s"
+
+#: virtinst/VirtualDevice.py:71
 msgid "'conn' must be a virConnect instance"
 msgstr ""
 
-#: virtinst/VirtualDevice.py:67
+#: virtinst/VirtualDevice.py:104
 #, fuzzy, python-format
 msgid "'%s' must be True or False"
 msgstr "Uključena grafika mora biti Tačna ili Netačna"
 
-#: virtinst/VirtualDevice.py:71
+#: virtinst/VirtualDevice.py:108
 #, fuzzy, python-format
 msgid "'%s' must be a string, not '%s'."
 msgstr "Putanja %s mora biti niz znakova ili Ništa."
 
-#: virtinst/VirtualDisk.py:205
+#: virtinst/VirtualDisk.py:262
+#, python-format
+msgid "Error validating clone path: %s"
+msgstr ""
+
+#: virtinst/VirtualDisk.py:271
 #, fuzzy
 msgid "'size' must be a number greater than 0."
 msgstr "Vrednost memorije mora biti ceo broj veći od 0"
 
-#: virtinst/VirtualDisk.py:215
+#: virtinst/VirtualDisk.py:281
 #, fuzzy, python-format
 msgid "Unknown storage type '%s'"
 msgstr "Nepoznata vrsta mreže %s"
 
-#: virtinst/VirtualDisk.py:224
+#: virtinst/VirtualDisk.py:290
 #, fuzzy, python-format
 msgid "Unknown device type '%s'"
 msgstr "Nepoznata vrsta mreže %s"
 
-#: virtinst/VirtualDisk.py:258
+#: virtinst/VirtualDisk.py:324
 msgid "vol_object must be a virStorageVol instance"
 msgstr ""
 
-#: virtinst/VirtualDisk.py:266
+#: virtinst/VirtualDisk.py:332
 msgid "vol_install must be a StorageVolume  instance."
 msgstr ""
 
-#: virtinst/VirtualDisk.py:292
+#: virtinst/VirtualDisk.py:358
 #, fuzzy, python-format
 msgid "Unknown cache mode '%s'"
 msgstr "Nepoznata vrsta mreže %s"
 
-#: virtinst/VirtualDisk.py:353
+#: virtinst/VirtualDisk.py:373
+#, fuzzy, python-format
+msgid "SELinux label '%s' is not valid."
+msgstr "Vrednost cpuset sadrži neprihvatljiv format."
+
+#: virtinst/VirtualDisk.py:433
 #, fuzzy
 msgid "Unknown storage volume type."
 msgstr "Nepoznata vrsta mreže"
 
-#: virtinst/VirtualDisk.py:372
+#: virtinst/VirtualDisk.py:449
 #, python-format
 msgid "Passed type '%s' does not match detected storage type '%s'"
 msgstr ""
 
-#: virtinst/VirtualDisk.py:382
+#: virtinst/VirtualDisk.py:504
 msgid "volName must be a tuple of the form ('poolname', 'volname')"
 msgstr ""
 
-#: virtinst/VirtualDisk.py:385
+#: virtinst/VirtualDisk.py:507
 msgid "'volName' requires a passed connection."
 msgstr ""
 
-#: virtinst/VirtualDisk.py:387
+#: virtinst/VirtualDisk.py:509
 msgid "Connection does not support storage lookup."
 msgstr ""
 
-#: virtinst/VirtualDisk.py:393
+#: virtinst/VirtualDisk.py:515
 #, python-format
 msgid "Couldn't lookup volume object: %s"
 msgstr ""
 
-#: virtinst/VirtualDisk.py:436
+#: virtinst/VirtualDisk.py:540
+#, fuzzy, python-format
+msgid "Device type '%s' requires a path"
+msgstr "Vrsta diska „%s“ zahteva putanju"
+
+#: virtinst/VirtualDisk.py:583
 #, fuzzy, python-format
 msgid "Size must be specified for non existent volume path '%s'"
 msgstr "Veličina mora biti data za ne-postojeće diskove."
 
-#: virtinst/VirtualDisk.py:459
+#: virtinst/VirtualDisk.py:603
 #, python-format
 msgid ""
 "Cannot use storage '%(path)s': '%(rootdir)s' is not managed on the remote "
 "host."
 msgstr ""
 
-#: virtinst/VirtualDisk.py:464
+#: virtinst/VirtualDisk.py:608
 #, python-format
 msgid "Cannot use storage %(path)s: %(err)s"
 msgstr ""
 
-#: virtinst/VirtualDisk.py:517
+#: virtinst/VirtualDisk.py:686
 msgid "Connection doesn't support remote storage."
 msgstr ""
 
-#: virtinst/VirtualDisk.py:534
-#, fuzzy, python-format
-msgid "Device type '%s' requires a path"
-msgstr "Vrsta diska „%s“ zahteva putanju"
-
-#: virtinst/VirtualDisk.py:549
+#: virtinst/VirtualDisk.py:689
 msgid "Must specify libvirt managed storage if on a remote connection"
 msgstr ""
 
-#: virtinst/VirtualDisk.py:558
+#: virtinst/VirtualDisk.py:726
 #, fuzzy, python-format
 msgid "The path '%s' must be a file or a device, not a directory"
 msgstr "Putanja %s mora biti datoteka ili uređaj, a ne direktorijum"
 
-#: virtinst/VirtualDisk.py:568
+#: virtinst/VirtualDisk.py:735
 #, fuzzy, python-format
 msgid "Cannot create storage for %s device."
 msgstr "Pravim datoteku skladišta..."
 
-#: virtinst/VirtualDisk.py:573
-#, fuzzy
-msgid "Local block device path must exist."
+#: virtinst/VirtualDisk.py:740
+#, fuzzy, python-format
+msgid "Local block device path '%s' must exist."
 msgstr "Određeni blok uređaj ne postoji."
 
-#: virtinst/VirtualDisk.py:581
+#: virtinst/VirtualDisk.py:749
 #, fuzzy, python-format
 msgid "size is required for non-existent disk '%s'"
 msgstr "Veličina mora biti data za ne-postojeće diskove."
 
-#: virtinst/VirtualDisk.py:584
+#: virtinst/VirtualDisk.py:752
 #, python-format
 msgid "No write access to directory '%s'"
 msgstr ""
 
-#: virtinst/VirtualDisk.py:620
-msgid "Creating storage file..."
+#: virtinst/VirtualDisk.py:777
+#, python-format
+msgid "Cloning %(srcfile)s"
+msgstr ""
+
+#: virtinst/VirtualDisk.py:780
+#, fuzzy, python-format
+msgid "Creating storage file %s"
 msgstr "Pravim datoteku skladišta..."
 
-#: virtinst/VirtualDisk.py:626
+#: virtinst/VirtualDisk.py:793
+msgid "copying to an existing vdisk is not supported"
+msgstr ""
+
+#: virtinst/VirtualDisk.py:796
+msgid "failed to clone disk"
+msgstr ""
+
+#: virtinst/VirtualDisk.py:807
 #, python-format
 msgid "Error creating vdisk %s"
 msgstr ""
 
-#: virtinst/VirtualDisk.py:647
+#: virtinst/VirtualDisk.py:832
 #, python-format
 msgid "Error creating diskimage %s: %s"
 msgstr ""
 
-#: virtinst/VirtualDisk.py:669
+#: virtinst/VirtualDisk.py:932
 msgid "'disknode' or self.target must be set!"
 msgstr ""
 
-#: virtinst/VirtualDisk.py:741
+#: virtinst/VirtualDisk.py:1003
 msgid ""
 "The filesystem will not have enough free space to fully allocate the sparse "
 "file when the guest is running."
 msgstr ""
 
-#: virtinst/VirtualDisk.py:746
+#: virtinst/VirtualDisk.py:1008
 msgid "There is not enough free space to create the disk."
 msgstr ""
 
-#: virtinst/VirtualDisk.py:750
+#: virtinst/VirtualDisk.py:1012
 #, python-format
 msgid " %d M requested > %d M available"
 msgstr ""
 
-#: virtinst/VirtualDisk.py:840
+#: virtinst/VirtualDisk.py:1175
 msgid "Cannot determine device bus/type."
 msgstr ""
 
-#: virtinst/VirtualDisk.py:847
+#: virtinst/VirtualDisk.py:1182
 msgid "IDE CDROM must use 'hdc', but target in use."
 msgstr ""
 
-#: virtinst/VirtualDisk.py:863
+#: virtinst/VirtualDisk.py:1198
 #, python-format
 msgid "No more space for disks of type '%s'"
 msgstr ""
 
-#: virtinst/VirtualGraphics.py:38
+#: virtinst/VirtualGraphics.py:40
 msgid "Unknown graphics type"
 msgstr "Nepoznata vrsta grafike"
 
-#: virtinst/VirtualGraphics.py:61
+#: virtinst/VirtualGraphics.py:63
 msgid "Keymap must be a string"
 msgstr "Vrednost Keymap mora biti niz znakova"
 
-#: virtinst/VirtualGraphics.py:63
+#: virtinst/VirtualGraphics.py:65
 msgid "Keymap must be less than 16 characters"
 msgstr "Vrednost Keymap mora biti kraća od 16 znakova"
 
-#: virtinst/VirtualGraphics.py:65
+#: virtinst/VirtualGraphics.py:67
 msgid "Keymap can only contain alphanumeric, '_', or '-' characters"
 msgstr "Vrednost Keymap može samo sadržati alfanumerečke, „_“, ili „-“ znakove"
 
-#: virtinst/VirtualGraphics.py:76
+#: virtinst/VirtualGraphics.py:78
 msgid ""
 "VNC port must be a number between 5900 and 65535, or -1 for auto allocation"
 msgstr ""
 
-#: virtinst/VirtualHostDevice.py:39
+#: virtinst/VirtualHostDevice.py:43
 msgid "'name' or 'nodedev' required."
 msgstr ""
 
-#: virtinst/VirtualHostDevice.py:58
+#: virtinst/VirtualHostDevice.py:62
 #, python-format
 msgid "Node device type '%s' cannot be attached to  guest."
 msgstr ""
 
-#: virtinst/VirtualHostDevice.py:124
+#: virtinst/VirtualHostDevice.py:130
 msgid "'nodedev' must be a USBDevice instance."
 msgstr ""
 
-#: virtinst/VirtualHostDevice.py:140
+#: virtinst/VirtualHostDevice.py:146
 msgid "'vendor' and 'product', or 'bus' and  'device' are required."
 msgstr ""
 
-#: virtinst/VirtualHostDevice.py:173
+#: virtinst/VirtualHostDevice.py:179
 msgid "'nodedev' must be a PCIDevice instance."
 msgstr ""
 
-#: virtinst/VirtualHostDevice.py:182
+#: virtinst/VirtualHostDevice.py:188
 msgid "'domain', 'bus', 'slot', and 'function' must be specified."
 msgstr ""
 
-#: virtinst/VirtualHostDevice.py:207
+#: virtinst/VirtualHostDevice.py:215
 #, python-format
 msgid "Could not detach PCI device: %s"
 msgstr ""
 
-#: virtinst/VirtualNetworkInterface.py:40
-#, fuzzy
-msgid "MAC address must be a string."
-msgstr "Vrednost Keymap mora biti niz znakova"
+#: virtinst/VirtualInputDevice.py:46
+#, fuzzy, python-format
+msgid "Unknown input type '%s'."
+msgstr "Nepoznata vrsta mreže %s"
 
-#: virtinst/VirtualNetworkInterface.py:46
-msgid "MAC address must be of the format AA:BB:CC:DD:EE:FF"
-msgstr "MAC adresa mora biti u formatu AA:BB:CC:DD:EE:FF"
+#: virtinst/VirtualInputDevice.py:54
+#, fuzzy, python-format
+msgid "Unknown input bus '%s'."
+msgstr "Nepoznata vrsta mreže %s"
+
+#: virtinst/VirtualNetworkInterface.py:45
+msgid "Shared physical device"
+msgstr ""
 
-#: virtinst/VirtualNetworkInterface.py:57
+#: virtinst/VirtualNetworkInterface.py:47
+msgid "Virtual networking"
+msgstr ""
+
+#: virtinst/VirtualNetworkInterface.py:49
+msgid "Usermode networking"
+msgstr ""
+
+#: virtinst/VirtualNetworkInterface.py:51
+#, fuzzy, python-format
+msgid "Unknown network type '%s'"
+msgstr "Nepoznata vrsta mreže %s"
+
+#: virtinst/VirtualNetworkInterface.py:72
 msgid "A network name was not provided"
 msgstr "Mrežno ime nije dato"
 
-#: virtinst/VirtualNetworkInterface.py:63
+#: virtinst/VirtualNetworkInterface.py:78
 #, python-format
 msgid "Unknown network type %s"
 msgstr "Nepoznata vrsta mreže %s"
 
-#: virtinst/VirtualNetworkInterface.py:79
+#: virtinst/VirtualNetworkInterface.py:90
+#, fuzzy
+msgid "MAC address must be a string."
+msgstr "Vrednost Keymap mora biti niz znakova"
+
+#: virtinst/VirtualNetworkInterface.py:94
+msgid "MAC address must be of the format AA:BB:CC:DD:EE:FF"
+msgstr "MAC adresa mora biti u formatu AA:BB:CC:DD:EE:FF"
+
+#: virtinst/VirtualNetworkInterface.py:113
 #, fuzzy, python-format
 msgid "Virtual network '%s' does not exist: %s"
 msgstr "LiveCD slika „%s“ ne postoji"
 
-#: virtinst/VirtualNetworkInterface.py:82
+#: virtinst/VirtualNetworkInterface.py:116
 #, python-format
 msgid "Virtual network '%s' has not been started."
 msgstr ""
 
-#: virtinst/VirtualNetworkInterface.py:105
+#: virtinst/VirtualNetworkInterface.py:139
 #, fuzzy
 msgid ""
 "The MAC address you entered is already in use by another active virtual "
 "machine."
 msgstr "Druga neaktivna virtuelna mašina već koristi unetu MAC adresu!"
 
-#: virtinst/VirtualNetworkInterface.py:108
+#: virtinst/VirtualNetworkInterface.py:142
 #, fuzzy
 msgid ""
 "The MAC address you entered conflicts with a device on the physical host."
 msgstr "MAC adresa koju ste uneli se sukobljava sa fizičkim NIC uređajem."
 
-#: virtinst/VirtualNetworkInterface.py:110
+#: virtinst/VirtualNetworkInterface.py:144
 #, fuzzy
 msgid ""
 "The MAC address you entered is already in use by another inactive virtual "
 "machine."
 msgstr "Druga neaktivna virtuelna mašina već koristi unetu MAC adresu!"
 
-#: virtconv/diskcfg.py:242
+#: virtconv/diskcfg.py:251
 #, fuzzy, python-format
 msgid "Cannot convert to disk format %s"
 msgstr "Nepoznata vrsta mreže %s"
 
-#: virtconv/diskcfg.py:255
+#: virtconv/diskcfg.py:264
 #, python-format
 msgid "Cannot convert disk with absolute path %s"
 msgstr ""
@@ -1217,6 +1494,28 @@ msgstr ""
 msgid "Disk %s:%s storage does not exist"
 msgstr "Sistemski disk %s ne postoji"
 
+#: virtconv/parsers/ovf.py:212
+#, python-format
+msgid "Didn't find parent bus for disk '%s'"
+msgstr ""
+
+#: virtconv/parsers/ovf.py:226 virtconv/parsers/ovf.py:242
+#, fuzzy, python-format
+msgid "Unknown reference id '%s' for path %s."
+msgstr "Nepoznata vrsta mreže %s"
+
+#: virtconv/parsers/ovf.py:235
+#, fuzzy, python-format
+msgid "Unknown storage path type %s."
+msgstr "Nepoznata vrsta mreže %s"
+
+#: virtconv/parsers/ovf.py:396
+#, python-format
+msgid ""
+"OVF section '%s' is listed as required, but parser doesn't know how to "
+"handle it."
+msgstr ""
+
 #: virtconv/parsers/virtimage.py:212
 #, fuzzy, python-format
 msgid "Couldn't import file '%s': %s"
@@ -1246,77 +1545,74 @@ msgstr ""
 msgid "No displayName defined in \"%s\""
 msgstr ""
 
-#: virt-clone:43
+#: virt-clone:47
 msgid "What is the name for the cloned virtual machine?"
 msgstr "Koje je ime za kloniranu virtuelnu mašinu?"
 
-#: virt-clone:61
+#: virt-clone:48
+#, fuzzy
+msgid "A name is required for the new virtual machine."
+msgstr "Koje je ime za kloniranu virtuelnu mašinu?"
+
+#: virt-clone:65
 #, fuzzy
 msgid "What is the name of the original virtual machine?"
 msgstr "Koje je ime ili uuid identifikator za originalnu virtuelnu mašinu?"
 
-#: virt-clone:102
+#: virt-clone:66
+#, fuzzy
+msgid "An original machine name or xml file is required."
+msgstr "Mrežno ime nije potrebno za %s"
+
+#: virt-clone:112
 #, fuzzy, python-format
 msgid "What would you like to use as the cloned disk (file path) for '%s'?"
 msgstr "Šta biste želeli da koristite kao klonirani disk (putanja datoteke)?"
 
-#: virt-clone:113
-#, python-format
-msgid "This will overwrite the existing path '%s'!\n"
-msgstr ""
-
-#: virt-clone:115
-#, fuzzy
-msgid "Do you really want to use this disk (yes or no)?"
-msgstr "Da li zaista želite da koristite disk (da ili ne)?"
-
-#: virt-clone:120 virt-install:206 virt-install.orig:206
-#, python-format
-msgid "Disk %s is already in use by another guest!\n"
-msgstr "Drugi gost već koristi disk %s!\n"
-
-#: virt-clone:121 virt-install:207 virt-install.orig:207
-msgid "Do you really want to use the disk (yes or no)? "
-msgstr "Da li zaista želite da koristite disk (da ili ne)?"
-
-#: virt-clone:148 virt-image:88 virt-install:334 virt-install.orig:334
+#: virt-clone:134 virt-image:78 virt-install:499
 msgid "Connect to hypervisor with URI"
 msgstr "Povezati se na hipervizora sa URI-om"
 
-#: virt-clone:151 virt-image:91 virt-install:337 virt-install.orig:337
+#: virt-clone:137 virt-image:81 virt-install:502
 msgid "General Options"
 msgstr ""
 
-#: virt-clone:154
+#: virt-clone:140
 #, fuzzy
 msgid "Name of the original guest; The status must be shut off or paused."
 msgstr ""
 "Ime ili uuid identifikator za originalnog gosta; status mora biti ugašen"
 
-#: virt-clone:159
+#: virt-clone:145
 #, fuzzy
 msgid "XML file to use as the original guest."
 msgstr "Datoteka koja će se koristiti kao slika diska"
 
-#: virt-clone:162
+#: virt-clone:147
+msgid ""
+"Auto generate clone name and storage paths from the original guest "
+"configuration."
+msgstr ""
+
+#: virt-clone:151
 msgid "Name for the new guest"
 msgstr "Ime za novog gosta"
 
-#: virt-clone:166
+#: virt-clone:155
 msgid "New UUID for the clone guest; Default is a randomly generated UUID"
 msgstr ""
 "Novi jedinstveni identifikator za kloniranog gosta; slučajno izabrani "
 "identifikator je podrazumevan"
 
-#: virt-clone:170 virt-install:415 virt-install.orig:415
+#: virt-clone:159 virt-install:588
 msgid "Storage Configuration"
 msgstr ""
 
-#: virt-clone:174
+#: virt-clone:163
 msgid "New file to use as the disk image for the new guest"
 msgstr "Nova datoteka koja će se koristiti kao slika diska za novog gosta"
 
-#: virt-clone:179
+#: virt-clone:168
 msgid ""
 "Force to copy devices (eg, if 'hdc' is a readonly cdrom device, --force-"
 "copy=hdc)"
@@ -1324,20 +1620,20 @@ msgstr ""
 "Primoraj kopiranje uređaja (npr, ako je „hdc“ slučajan disk uređaj, "
 "koristiti --force-copy=hdc)"
 
-#: virt-clone:183
+#: virt-clone:172
 msgid "Do not use a sparse file for the clone's disk image"
 msgstr "Nemoj koristiti praznu datoteku za sliku kloniranog diska"
 
-#: virt-clone:187
+#: virt-clone:176
 msgid "Preserve a new file to use as the disk image for the new guest"
 msgstr ""
 "Sačuvaj novu datoteku koja će se koristiti kao slika diska za novog gosta"
 
-#: virt-clone:191 virt-image:128 virt-install:435 virt-install.orig:435
+#: virt-clone:180 virt-image:118 virt-install:610
 msgid "Networking Configuration"
 msgstr ""
 
-#: virt-clone:195
+#: virt-clone:184
 msgid ""
 "New fixed MAC address for the clone guest. Default is a randomly generated "
 "MAC"
@@ -1345,34 +1641,37 @@ msgstr ""
 "Nova fiksirana MAC adresa za kloniranog gosta. Slučajno izabrana adresa je "
 "podrazumevana"
 
-#: virt-clone:199 virt-image:158 virt-install:470 virt-install.orig:470
+#: virt-clone:188 virt-image:138 virt-install:639
 msgid "Miscellaneous Options"
 msgstr ""
 
-#: virt-clone:201 virt-convert:91 virt-image:172 virt-install:472
-#: virt-install.orig:472
+#: virt-clone:190 virt-convert:91 virt-image:152 virt-install:641
 msgid "Print debugging information"
 msgstr "Odštampaj podatke o otklanjanju grešaka"
 
-#: virt-clone:203 virt-image:174
+#: virt-clone:192 virt-image:154 virt-install:652
+msgid "Request user input for ambiguous situations or required options."
+msgstr ""
+
+#: virt-clone:195 virt-image:157
 msgid ""
 "Do not prompt for input. Answers yes where applicable, terminates for all "
 "other prompts"
 msgstr ""
 
-#: virt-clone:219
+#: virt-clone:212
 #, fuzzy
 msgid "Must be privileged to clone Xen guests"
 msgstr "Morate biti root korisnik da biste klonirali Xen gosta"
 
-#: virt-clone:250
+#: virt-clone:242
 #, python-format
 msgid ""
 "\n"
 "Clone '%s' created successfully."
 msgstr ""
 
-#: virt-clone:265 virt-image:283 virt-install:784 virt-install.orig:784
+#: virt-clone:257 virt-image:267 virt-install:933
 msgid "Installation aborted at user request"
 msgstr "Instalacija je obustavljena na korisnikov zahtev"
 
@@ -1388,11 +1687,11 @@ msgstr ""
 msgid "Output disk format"
 msgstr ""
 
-#: virt-convert:60 virt-install:386 virt-install.orig:386
+#: virt-convert:60 virt-install:557
 msgid "This guest should be a fully virtualized guest"
 msgstr "Ovaj gost bi trebalo da bude potpuno virtualizovan gost"
 
-#: virt-convert:62 virt-install:388 virt-install.orig:388
+#: virt-convert:62 virt-install:559
 msgid "This guest should be a paravirtualized guest"
 msgstr "Ovaj gost bi trebalo da bude paravirtualizovan gost"
 
@@ -1400,7 +1699,7 @@ msgstr "Ovaj gost bi trebalo da bude paravirtualizovan gost"
 msgid "Machine Architecture Type (i686/x86_64/ppc)"
 msgstr ""
 
-#: virt-convert:71 virt-install:360 virt-install.orig:360
+#: virt-convert:71 virt-install:525
 msgid ""
 "The OS type for fully virtualized guests, e.g. 'linux', 'unix', 'windows'"
 msgstr ""
@@ -1416,7 +1715,7 @@ msgstr ""
 "Varijanta operativnog sistema za potpuno virtualizovane goste, npr. "
 "„fedora6“, „rhel5“, „solaris10“, „win2k“, „vista“"
 
-#: virt-convert:78 virt-install:376 virt-install.orig:376
+#: virt-convert:78 virt-install:547
 msgid ""
 "Disables APIC for fully virtualized guest (overrides value in os-type/os-"
 "variant db)"
@@ -1424,7 +1723,7 @@ msgstr ""
 "Onemogući APIC za potpuno virtualizovanog gosta (premosti vrednosti os-type/"
 "os-variant u bazi podataka)"
 
-#: virt-convert:82 virt-install:380 virt-install.orig:380
+#: virt-convert:82 virt-install:551
 msgid ""
 "Disables ACPI for fully virtualized guest (overrides value in os-type/os-"
 "variant db)"
@@ -1436,132 +1735,132 @@ msgstr ""
 msgid "Don't be verbose"
 msgstr ""
 
-#: virt-convert:97
+#: virt-convert:100
 #, fuzzy
 msgid "You need to provide an input VM definition"
 msgstr "Potrebno je da pružite deskriptor XML slike"
 
-#: virt-convert:99
+#: virt-convert:102
 msgid "Too many arguments provided"
 msgstr ""
 
-#: virt-convert:103
+#: virt-convert:106
 #, fuzzy, python-format
 msgid "Unknown output disk format \"%s\""
 msgstr "Nepoznata vrsta mreže %s"
 
-#: virt-convert:118
+#: virt-convert:121
 #, fuzzy, python-format
 msgid "Unknown output format \"%s\")"
 msgstr "Nepoznata vrsta mreže %s"
 
-#: virt-convert:120
+#: virt-convert:123
 #, python-format
 msgid "No output handler for format \"%s\")"
 msgstr ""
 
-#: virt-convert:124
+#: virt-convert:127
 #, python-format
 msgid "Couldn't access input argument \"%s\"\n"
 msgstr ""
 
-#: virt-convert:131
+#: virt-convert:134
 #, fuzzy, python-format
 msgid "Couldn't determine input format for \"%s\": %s"
 msgstr "Ne mogu da pribavim datoteku %s: %s"
 
-#: virt-convert:136
+#: virt-convert:139
 #, fuzzy, python-format
 msgid "Unknown input format \"%s\")"
 msgstr "Nepoznata vrsta mreže %s"
 
-#: virt-convert:138
+#: virt-convert:141
 #, python-format
 msgid "No input handler for format \"%s\""
 msgstr ""
 
-#: virt-convert:173
+#: virt-convert:176
 #, python-format
 msgid "Couldn't clean up output directory \"%s\": %s"
 msgstr ""
 
-#: virt-convert:190 virt-convert:193
+#: virt-convert:192 virt-convert:195
 #, fuzzy, python-format
 msgid "Couldn't import file \"%s\": %s"
 msgstr "Ne mogu da pribavim datoteku %s: %s"
 
-#: virt-convert:230
+#: virt-convert:232
 #, python-format
 msgid "Generating output in '%(format)s' format to %(dir)s/"
 msgstr ""
 
-#: virt-convert:249
+#: virt-convert:251
 #, python-format
 msgid "Converting disk '%(path)s' to type %(format)s..."
 msgstr ""
 
-#: virt-convert:256 virt-convert:259
+#: virt-convert:258 virt-convert:261
 #, fuzzy, python-format
 msgid "Couldn't convert disks: %s"
 msgstr "Ne mogu da pribavim datoteku %s: %s"
 
-#: virt-convert:265
+#: virt-convert:267
 #, fuzzy, python-format
 msgid "Couldn't export to file \"%s\": %s"
 msgstr "Ne mogu da pribavim datoteku %s: %s"
 
-#: virt-convert:277
+#: virt-convert:279
 #, fuzzy
 msgid "Aborted at user request"
 msgstr "Instalacija je obustavljena na korisnikov zahtev"
 
-#: virt-image:64
+#: virt-image:50
 #, python-format
 msgid ""
 "Warning: more networks were provided [%i] then nics required [%i]. All "
-"extras are ignored"
+"extras are ignored."
 msgstr ""
 
-#: virt-image:68
+#: virt-image:55
 #, fuzzy, python-format
-msgid "The image requires %i network interface"
+msgid "The image requires %i network interface."
 msgstr "Slici je potreban jedan mrežni interfejs"
 
-#: virt-image:94 virt-install:340 virt-install.orig:340
+#: virt-image:84 virt-install:505
 msgid "Name of the guest instance"
 msgstr "Ime instance gosta"
 
-#: virt-image:96 virt-install:342 virt-install.orig:342
+#: virt-image:86 virt-install:507
 msgid "Memory to allocate for guest instance in megabytes"
 msgstr "Memorija koju je potrebno alocirati za instancu gosta u megabajtima"
 
-#: virt-image:100 virt-install:349 virt-install.orig:349
+#: virt-image:90 virt-install:514
 #, fuzzy
 msgid "UUID for the guest."
 msgstr "Ime za novog gosta"
 
-#: virt-image:102 virt-install:351 virt-install.orig:351
+#: virt-image:92 virt-install:516
 msgid "Number of vcpus to configure for your guest"
 msgstr "Broj virtuelnih procesora koje je potrebno podesiti za gosta"
 
-#: virt-image:104 virt-install:353 virt-install.orig:353
+#: virt-image:94 virt-install:518
 msgid "Check that vcpus do not exceed physical CPUs and warn if they do."
 msgstr ""
 "Proverite da li virtuelni procesori ne prevazilaze broj fizičkih procesora i "
 "upozorite ukoliko da."
 
-#: virt-image:108 virt-install:357 virt-install.orig:357
+#: virt-image:98 virt-install:522
 msgid "Set which physical CPUs Domain can use."
 msgstr "Postavi koji domen fizički procesori mogu da koriste."
 
-#: virt-image:111
+#: virt-image:101
 #, fuzzy
 msgid "The OS type being installed, e.g. 'linux', 'unix', 'windows'"
 msgstr ""
 "Vrsta operativnog sistema za potpuno virtualizovane goste, npr. „linux“, "
 "„unix“, „windows“"
 
-#: virt-image:115
+#: virt-image:105
 #, fuzzy
 msgid ""
 "The OS variant being installed, e.g. 'fedora6', 'rhel5', 'solaris10', 'win2k'"
@@ -1569,99 +1868,59 @@ msgstr ""
 "Varijanta operativnog sistema za potpuno virtualizovane goste, npr. "
 "„fedora6“, „rhel5“, „solaris10“, „win2k“, „vista“"
 
-#: virt-image:119 virt-install:371 virt-install.orig:371
+#: virt-image:109 virt-install:542
 msgid "Full Virtualization specific options"
 msgstr ""
 
-#: virt-image:122
+#: virt-image:112
 #, fuzzy
 msgid "Disables APIC for fully virtualized guest"
 msgstr "Ovaj gost bi trebalo da bude potpuno virtualizovan gost"
 
-#: virt-image:125
+#: virt-image:115
 #, fuzzy
 msgid "Disables ACPI for fully virtualized guest"
 msgstr "Ovaj gost bi trebalo da bude potpuno virtualizovan gost"
 
-#: virt-image:131 virt-install:438 virt-install.orig:438
-msgid ""
-"Bridge to connect guest NIC to; if none given, will try to determine the "
-"default"
-msgstr ""
-"Most na koji se povezuje NIC gosta; ukoliko nijedan nije dat, biće pokušano "
-"da se odredi podrazumevani"
-
-#: virt-image:135 virt-install:442 virt-install.orig:442
+#: virt-image:121
 msgid ""
-"Connect the guest to a virtual network, forwarding to the physical network "
-"with NAT"
-msgstr ""
-"Poveži gosta na virtuelnu mrežu, prosleđujući ga na fizičku mrežu koristeći "
-"NAT"
-
-#: virt-image:139 virt-install:446 virt-install.orig:446
-msgid ""
-"Fixed MAC address for the guest; if none or RANDOM is given a random address "
-"will be used"
-msgstr ""
-"Fiksirana MAC adresa za gosta; ukoliko je nijedna ili SLUČAJNA odabrana, "
-"koristiće se slučajno izabrana adresa"
-
-#: virt-image:143 virt-install:452 virt-install.orig:452
-msgid "Graphics Configuration"
+"Specify a network interface. Ex:\n"
+"--network bridge=mybr0\n"
+"--network network=libvirt_network_name\n"
+"--network network=mynet,model=e1000,mac=00:11..."
 msgstr ""
 
-#: virt-image:145 virt-install:454 virt-install.orig:454
-msgid "Use VNC for graphics support"
-msgstr "Koristi VNC kao grafičku podršku"
-
-#: virt-image:147 virt-install:456 virt-install.orig:456
-msgid "Port to use for VNC"
-msgstr "Priključak za VNC"
-
-#: virt-image:149 virt-install:458 virt-install.orig:458
-msgid "Use SDL for graphics support"
-msgstr "Koristi SDL kao grafičku podršku"
-
-#: virt-image:151 virt-install:460 virt-install.orig:460
-msgid "Don't set up a graphical console for the guest."
-msgstr "Nemoj postavljati grafičku konzolu za novog gosta."
-
-#: virt-image:154 virt-install:467 virt-install.orig:467
-msgid "set up keymap for a graphical console"
-msgstr "postavi mapiranje ključa za grafičku konzolu"
-
-#: virt-image:160
+#: virt-image:140
 msgid "Print the libvirt XML, but do not start the domain"
 msgstr "Odštampaj libvirt XML, ali nemoj pokretati domen"
 
-#: virt-image:163
+#: virt-image:143
 msgid "The zero-based index of the boot record to use"
 msgstr "Nulti indeks koji će se koristiti pri podizanju sistema"
 
-#: virt-image:165
+#: virt-image:145
 msgid "Overwrite, or destroy, an existing image with the same name"
 msgstr ""
 
-#: virt-image:170
+#: virt-image:150
 msgid "Skip disk checksum verification process"
 msgstr ""
 
-#: virt-image:182
+#: virt-image:165
 msgid "You need to provide an image XML descriptor"
 msgstr "Potrebno je da pružite deskriptor XML slike"
 
-#: virt-image:200
+#: virt-image:184
 #, fuzzy
 msgid "Cannot parse"
 msgstr "Ne mogu da pročitam %s"
 
-#: virt-image:205
+#: virt-image:189
 #, python-format
 msgid "The index for --boot must be between 0 and %d"
 msgstr "Indeks za --boot mora biti između 0 i %d"
 
-#: virt-image:261
+#: virt-image:245
 #, python-format
 msgid ""
 "\n"
@@ -1672,11 +1931,11 @@ msgstr ""
 "\n"
 "Pravim gosta %s..."
 
-#: virt-image:265
+#: virt-image:249
 msgid "Guest creation failed"
 msgstr "Nije moguće napraviti gosta"
 
-#: virt-image:271
+#: virt-image:255
 #, python-format
 msgid ""
 "Domain creation may not have been\n"
@@ -1689,116 +1948,152 @@ msgstr ""
 "pokretanjem „virsh start %s“; u suprotnom, molim\n"
 "ponovo pokrenite instalaciju."
 
-#: virt-install:70 virt-install.orig:70
+#: virt-install:84
 #, fuzzy, python-format
 msgid "Couldn't create default storage pool '%s': %s"
 msgstr "Ne mogu da pribavim datoteku %s: %s"
 
-#: virt-install:93 virt-install.orig:93
-msgid "--disk path must start with path=, pool=, or vol=."
+#: virt-install:107
+#, python-format
+msgid "%(chartype)s type %(devtype)s does not support '%(optname)s' option."
 msgstr ""
 
-#: virt-install:121 virt-install:133 virt-install.orig:121
-#: virt-install.orig:133
+#: virt-install:133
+#, fuzzy, python-format
+msgid "Unknown option(s) %s"
+msgstr "Nepoznata vrsta mreže %s"
+
+#: virt-install:147
 #, python-format
-msgid "Unknown '%s' value '%s'"
+msgid "Error in %(chartype)s device parameters: %(err)s"
 msgstr ""
 
-#: virt-install:126 virt-install.orig:126
-#, python-format
-msgid "Improper value for 'size': %s"
+#: virt-install:170
+msgid "--disk path must start with path=, pool=, or vol=."
 msgstr ""
 
-#: virt-install:137 virt-install.orig:137
+#: virt-install:177
 #, python-format
 msgid "Unknown --disk option '%s'."
 msgstr ""
 
-#: virt-install:147 virt-install.orig:147
-#, fuzzy
-msgid "Size must be specified with all 'pool='"
-msgstr "Mora se odrediti lokacija sa koje će instalirati"
-
-#: virt-install:160 virt-install.orig:160
-msgid "Storage volume must be specified as pool=poolname/volname"
+#: virt-install:185 virt-install:197
+#, python-format
+msgid "Unknown '%s' value '%s'"
 msgstr ""
 
-#: virt-install:202 virt-install.orig:202
+#: virt-install:190
 #, python-format
-msgid "Error with storage parameters: %s"
+msgid "Improper value for 'size': %s"
 msgstr ""
 
-#: virt-install:214 virt-install.orig:214
+#: virt-install:212
 #, fuzzy
-msgid " Do you really want to use the disk (yes or no)?"
-msgstr "Da li zaista želite da koristite disk (da ili ne)?"
+msgid "Size must be specified with all 'pool='"
+msgstr "Mora se odrediti lokacija sa koje će instalirati"
+
+#: virt-install:226
+msgid "Storage volume must be specified as vol=poolname/volname"
+msgstr ""
 
-#: virt-install:222 virt-install.orig:222
+#: virt-install:282
 #, fuzzy
-msgid "Cannot use --file, --size, or --disk with --nodisks"
+msgid "Cannot use --file, --file-size, or --disk with --nodisks"
 msgstr "Ne mogu da koristim opciju --file sa --nodisks"
 
-#: virt-install:225 virt-install.orig:225
+#: virt-install:285
 msgid ""
 "Cannot mix --file, --nonsparse, or --file-size with --disk options. Please "
 "see the manual for --disk syntax."
 msgstr ""
 
-#: virt-install:228 virt-install.orig:228
+#: virt-install:288
 msgid "A disk must be specified (use --nodisks to override)"
 msgstr ""
 
-#: virt-install:236 virt-install.orig:236
+#: virt-install:296
 msgid "Need to pass size for each disk"
 msgstr "Potrebno je da prosledite veličinu za svaki disk"
 
-#: virt-install:251 virt-install.orig:251
+#: virt-install:311
 msgid "Cannot use --mac with --nonetworks"
 msgstr ""
 
-#: virt-install:253 virt-install.orig:253
+#: virt-install:313
 #, fuzzy
 msgid "Cannot use --bridges with --nonetworks"
 msgstr "Ne mogu istovremeno da povežem argumente --bridge i --network"
 
-#: virt-install:255 virt-install.orig:255
+#: virt-install:315
 #, fuzzy
 msgid "Cannot use --network with --nonetworks"
 msgstr "Ne mogu da koristim opciju --file sa --nodisks"
 
-#: virt-install:275 virt-install.orig:275
+#: virt-install:342
+#, fuzzy
+msgid ""
+"Would you like a fully virtualized guest (yes or no)? This will allow you to "
+"run unmodified operating systems."
+msgstr ""
+"Da li biste želeli potpuno virtualizovanog gosta (da ili ne)?  Ovo će Vam "
+"omogućiti da pokrećete nemodifikovane operativne sisteme."
+
+#: virt-install:367
+#, fuzzy, python-format
+msgid "Would you like to use %s acceleration? (yes or no)"
+msgstr "Da li biste želeli da uključite grafičku podršku? (da ili ne)"
+
+#: virt-install:379
+msgid "Can't do both --hvm and --paravirt"
+msgstr "Ne mogu istovremeno da izvršim opcije --hvm i --paravirt"
+
+#: virt-install:401 virt-install:402
+msgid "default"
+msgstr ""
+
+#: virt-install:423
 #, python-format
 msgid "Only one install method (%s) can be used"
 msgstr ""
 
-#: virt-install:281 virt-install.orig:281
+#: virt-install:429
 #, fuzzy
 msgid "Network PXE boot is not supported for paravirtualized guests"
 msgstr "Mrežno PXE startovanje nije podržano za paravirtualizovane goste"
 
-#: virt-install:284 virt-install.orig:284
+#: virt-install:432
 msgid "Paravirtualized guests cannot install off cdrom media."
 msgstr ""
 
-#: virt-install:287 virt-install.orig:287
+#: virt-install:435
 msgid "--location can not be specified for remote connections."
 msgstr ""
 
-#: virt-install:296 virt-install.orig:296
+#: virt-install:444
 #, fuzzy, python-format
 msgid "One of %s, or cdrom media must be specified."
 msgstr "Samo jedna od opcija --pxe, --location i --cdrom može biti korišćena"
 
-#: virt-install:314 virt-install.orig:314
+#: virt-install:457
 #, python-format
 msgid "Error creating cdrom disk: %s"
 msgstr ""
 
-#: virt-install:346 virt-install.orig:346
+#: virt-install:462
+#, fuzzy
+msgid "What is the install CD-ROM/ISO or URL?"
+msgstr "Koja je lokacija instalacije?"
+
+#: virt-install:464
+#, fuzzy
+msgid "What is the install URL?"
+msgstr "Koja je lokacija instalacije?"
+
+#: virt-install:511
 msgid "The CPU architecture to simulate"
 msgstr "Arhitektura procesora koja će se simulirati"
 
-#: virt-install:364 virt-install.orig:364
+#: virt-install:529
 #, fuzzy
 msgid ""
 "The OS variant for fully virtualized guests, e.g. 'fedora6', 'rhel5', "
@@ -1807,33 +2102,40 @@ msgstr ""
 "Varijanta operativnog sistema za potpuno virtualizovane goste, npr. "
 "„fedora6“, „rhel5“, „solaris10“, „win2k“, „vista“"
 
-#: virt-install:368 virt-install.orig:368
+#: virt-install:533
+msgid "Add a serial device to the domain."
+msgstr ""
+
+#: virt-install:536
+msgid "Add a parallel device to the domain."
+msgstr ""
+
+#: virt-install:539
 msgid "Physical host device to attach to the domain."
 msgstr ""
 
-#: virt-install:373 virt-install.orig:373
+#: virt-install:544
 msgid "Use sound device emulation"
 msgstr ""
 
-#: virt-install:384 virt-install.orig:384
+#: virt-install:555
 msgid "Virtualization Type Options"
 msgstr ""
 
-#: virt-install:391 virt-install.orig:391
-#, fuzzy
-msgid "Use kernel acceleration capabilities (kvm, kqemu, ...)"
-msgstr "Koristi mogućnosti ubrzavanja jezgra"
+#: virt-install:562
+msgid "Hypervisor name to use (kvm, qemu, xen, ...)"
+msgstr ""
 
-#: virt-install:395 virt-install.orig:395
+#: virt-install:568
 msgid "Installation Method Options"
 msgstr ""
 
-#: virt-install:398 virt-install.orig:398
+#: virt-install:571
 #, fuzzy
 msgid "CD-ROM installation media"
 msgstr "Instalacija gosta nije uspela"
 
-#: virt-install:401 virt-install.orig:401
+#: virt-install:574
 #, fuzzy
 msgid ""
 "Installation source (eg, nfs:host:/path, http://host/path, ftp://host/path)"
@@ -1841,79 +2143,73 @@ msgstr ""
 "Izvor za instalaciju za paravirtuelizovanog gosta (npr. nfs:host:/path, "
 "http://host/path, ftp://host/path)"
 
-#: virt-install:404 virt-install.orig:404
+#: virt-install:577
 #, fuzzy
 msgid "Boot from the network using the PXE protocol"
 msgstr "Pokreni instalaciju sa mreže koristeći PXE protokol"
 
-#: virt-install:406 virt-install.orig:406
+#: virt-install:579
 #, fuzzy
 msgid "Build guest around an existing disk image"
 msgstr "Datoteka koja će se koristiti kao slika diska"
 
-#: virt-install:408 virt-install.orig:408
+#: virt-install:581
 #, fuzzy
 msgid "Treat the CD-ROM media as a Live CD"
 msgstr "Odredi da je CDROM medijum LiveCD"
 
-#: virt-install:411 virt-install.orig:411
+#: virt-install:584
 #, fuzzy
 msgid "Additional arguments to pass to the kernel booted from --location"
 msgstr "Dodatni argumenti koji će se proslediti instaleru sa paravirt. gostima"
 
-#: virt-install:418 virt-install.orig:418
-msgid "Specify storage to use as a disk with various options."
-msgstr ""
-
-#: virt-install:422 virt-install.orig:422
-msgid "File to use as the disk image"
-msgstr "Datoteka koja će se koristiti kao slika diska"
-
-#: virt-install:425 virt-install.orig:425
-msgid "Size of the disk image (if it doesn't exist) in gigabytes"
-msgstr "Veličina slike diska (ukoliko ne postoji) u gigabajtima"
-
-#: virt-install:429 virt-install.orig:429
+#: virt-install:591
 msgid ""
-"Don't use sparse files for disks.  Note that this will be significantly "
-"slower for guest creation"
+"Specify storage with various options. Ex.\n"
+"--disk path=/my/existing/disk\n"
+"--disk path=/my/new/disk,size=5 (in gigabytes)\n"
+"--disk vol=poolname:volname,device=cdrom,bus=scsi,..."
 msgstr ""
-"Nemoj koristiti praznu datoteku kao disk.  Obratite pažnju da će ovo dosta "
-"usporiti pravljenje gosta"
 
-#: virt-install:432 virt-install.orig:432
+#: virt-install:596
 msgid "Don't set up any disks for the guest."
 msgstr "Nemoj postavljati nikakav disk za gosta."
 
-#: virt-install:449 virt-install.orig:449
+#: virt-install:613
+msgid ""
+"Specify a network interface. Ex:\n"
+"--network bridge=mybr0\n"
+"--network network=my_libvirt_virtual_net\n"
+"--network network=mynet,model=virtio,mac=00:11..."
+msgstr ""
+
+#: virt-install:618
 #, fuzzy
 msgid "Don't create network interfaces for the guest."
 msgstr "Nemoj postavljati nikakav disk za gosta."
 
-#: virt-install:463 virt-install.orig:463
+#: virt-install:632
+msgid "Specify video hardware type."
+msgstr ""
+
+#: virt-install:635
 msgid "Don't automatically try to connect to the guest console"
 msgstr "Nemoj samostalno pokušavati da se povežeš na konzolu gosta"
 
-#: virt-install:474 virt-install.orig:474
+#: virt-install:643
 msgid "Disables the automatic rebooting when the installation is complete."
 msgstr ""
 "Isključuje automatsko ponovno podizanje sistema kada se instalacija završi."
 
-#: virt-install:477 virt-install.orig:477
+#: virt-install:646
 msgid "Time to wait (in minutes)"
 msgstr ""
 
-#: virt-install:479 virt-install.orig:479
+#: virt-install:648
 msgid "Forces 'yes' for any applicable prompts, terminates for all others"
 msgstr ""
 
-#: virt-install:483 virt-install.orig:483
-msgid ""
-"Request user input for ambiguous situations. Default is false, so will "
-"terminate if a prompt would typically be fired. "
-msgstr ""
-
-#: virt-install:503 virt-install.orig:503
+#: virt-install:671
 msgid ""
 "Unable to connect to graphical console: virt-viewer not installed. Please "
 "install the 'virt-viewer' package."
@@ -1921,19 +2217,11 @@ msgstr ""
 "Ne mogu da se povežem na grafičku konzolu: virt-viewer nije instaliran. "
 "Molim, instalirajte paket „virt-viewer“."
 
-#: virt-install:536 virt-install.orig:536
-msgid "Can't do both --hvm and --paravirt"
-msgstr "Ne mogu istovremeno da izvršim opcije --hvm i --paravirt"
-
-#: virt-install:548 virt-install.orig:548
-msgid "default"
-msgstr ""
-
-#: virt-install:570 virt-install.orig:570
+#: virt-install:713
 msgid "Can't use --pxe with --nonetworks"
 msgstr ""
 
-#: virt-install:671 virt-install.orig:671
+#: virt-install:818
 msgid ""
 "\n"
 "\n"
@@ -1943,7 +2231,7 @@ msgstr ""
 "\n"
 "Pokrećem instalaciju..."
 
-#: virt-install:682 virt-install.orig:682
+#: virt-install:829
 #, python-format
 msgid ""
 "Domain installation does not appear to have been\n"
@@ -1956,7 +2244,7 @@ msgstr ""
 "izvršavajući „virsh start %s“; u suprotnom, molim\n"
 "ponovo pokrenite instalaciju."
 
-#: virt-install:693 virt-install.orig:693
+#: virt-install:840
 #, python-format
 msgid ""
 "Guest installation complete... you can restart your domain\n"
@@ -1965,16 +2253,16 @@ msgstr ""
 "Instalacija gosta je završena... možete ponovo pokrenuti vaš domen\n"
 "izvršavanjem „virsh start %s“"
 
-#: virt-install:697 virt-install.orig:697
+#: virt-install:844
 msgid "Guest installation complete... restarting guest."
 msgstr "Instalacija gosta je završena... ponovo pokrećem gosta."
 
-#: virt-install:703 virt-install.orig:703
+#: virt-install:850
 #, fuzzy
 msgid "Guest install interrupted."
 msgstr "Instalacija gosta nije uspela"
 
-#: virt-install:710 virt-install.orig:710
+#: virt-install:857
 #, python-format
 msgid ""
 "Domain installation may not have been\n"
@@ -1987,39 +2275,39 @@ msgstr ""
 "izvršavajući „virsh start %s“; u suprotnom, molim\n"
 "ponovo pokrenite instalaciju."
 
-#: virt-install:736 virt-install.orig:736
+#: virt-install:883
 #, fuzzy
 msgid "Guest installation failed."
 msgstr "Instalacija gosta nije uspela"
 
-#: virt-install:746 virt-install.orig:746
+#: virt-install:893
 #, python-format
 msgid "%d minutes "
 msgstr ""
 
-#: virt-install:748 virt-install.orig:748
+#: virt-install:895
 #, fuzzy, python-format
 msgid ""
-"Domain installation still in progress. Waiting %sfor domain to complete "
-"installation."
+"Domain installation still in progress. Waiting %sfor installation to "
+"complete."
 msgstr ""
 "Instalacija domena je još u izradi. Možete se ponovo povezati na \n"
 "konzolu da završite instalacioni proces."
 
-#: virt-install:754 virt-install.orig:754
+#: virt-install:901
 msgid "Domain has shutdown. Continuing."
 msgstr ""
 
-#: virt-install:761 virt-install.orig:761
+#: virt-install:908
 #, python-format
 msgid "Could not lookup domain after install: %s"
 msgstr ""
 
-#: virt-install:768 virt-install.orig:768
+#: virt-install:915
 msgid "Installation has exceeded specified time limit. Exiting application."
 msgstr ""
 
-#: virt-install:772 virt-install.orig:772
+#: virt-install:921
 #, fuzzy
 msgid ""
 "Domain installation still in progress. You can reconnect to \n"
@@ -2028,6 +2316,72 @@ msgstr ""
 "Instalacija domena je još u izradi. Možete se ponovo povezati na \n"
 "konzolu da završite instalacioni proces."
 
+#~ msgid "Unknown network type "
+#~ msgstr "Nepoznata vrsta mreže"
+
+#~ msgid "Need to pass equal numbers of networks & mac addresses"
+#~ msgstr "Potrebno je da prosledite jednake brojeve mrežnih i MAS adresa"
+
+#, fuzzy
+#~ msgid "Cannot clone remote VM storage."
+#~ msgstr "Pravim datoteku skladišta..."
+
+#, fuzzy
+#~ msgid "Missing path to use as disk clone destination for '%s'"
+#~ msgstr "Nedostaje datoteka koja će se koristiti za sliku diska %s"
+
+#, fuzzy
+#~ msgid "Could not determine storage type for '%s'"
+#~ msgstr "Ne mogu da pribavim datoteku %s: %s"
+
+#~ msgid ""
+#~ "Bridge to connect guest NIC to; if none given, will try to determine the "
+#~ "default"
+#~ msgstr ""
+#~ "Most na koji se povezuje NIC gosta; ukoliko nijedan nije dat, biće "
+#~ "pokušano da se odredi podrazumevani"
+
+#~ msgid ""
+#~ "Connect the guest to a virtual network, forwarding to the physical "
+#~ "network with NAT"
+#~ msgstr ""
+#~ "Poveži gosta na virtuelnu mrežu, prosleđujući ga na fizičku mrežu "
+#~ "koristeći NAT"
+
+#~ msgid ""
+#~ "Fixed MAC address for the guest; if none or RANDOM is given a random "
+#~ "address will be used"
+#~ msgstr ""
+#~ "Fiksirana MAC adresa za gosta; ukoliko je nijedna ili SLUČAJNA odabrana, "
+#~ "koristiće se slučajno izabrana adresa"
+
+#, fuzzy
+#~ msgid "Use kernel acceleration capabilities (kvm, kqemu, ...)"
+#~ msgstr "Koristi mogućnosti ubrzavanja jezgra"
+
+#~ msgid "File to use as the disk image"
+#~ msgstr "Datoteka koja će se koristiti kao slika diska"
+
+#~ msgid "Size of the disk image (if it doesn't exist) in gigabytes"
+#~ msgstr "Veličina slike diska (ukoliko ne postoji) u gigabajtima"
+
+#~ msgid ""
+#~ "Don't use sparse files for disks.  Note that this will be significantly "
+#~ "slower for guest creation"
+#~ msgstr ""
+#~ "Nemoj koristiti praznu datoteku kao disk.  Obratite pažnju da će ovo "
+#~ "dosta usporiti pravljenje gosta"
+
+#~ msgid "ERROR: "
+#~ msgstr "GREŠKA: "
+
+#~ msgid "Do you really want to use the disk (yes or no)? "
+#~ msgstr "Da li zaista želite da koristite disk (da ili ne)?"
+
+#, fuzzy
+#~ msgid " Do you really want to use the disk (yes or no)?"
+#~ msgstr "Da li zaista želite da koristite disk (da ili ne)?"
+
 #~ msgid "Name or UUID of guest to clone is required"
 #~ msgstr ""
 #~ "Za kloniranje gosta potrebno je uneti ime ili jedinstveni identifikator"
@@ -2114,29 +2468,6 @@ msgstr ""
 #~ "Potrebno je da pružite lokaciju slike XML datoteke, koristeći opciju --"
 #~ "image"
 
-#~ msgid ""
-#~ "Would you like a fully virtualized guest (yes or no)?  This will allow "
-#~ "you to run unmodified operating systems."
-#~ msgstr ""
-#~ "Da li biste želeli potpuno virtualizovanog gosta (da ili ne)?  Ovo će Vam "
-#~ "omogućiti da pokrećete nemodifikovane operativne sisteme."
-
-#~ msgid "What would you like to use as the disk (file path)?"
-#~ msgstr "Šta biste želeli da koristite kao disk (putanja datoteke)?"
-
-#~ msgid ""
-#~ "Please enter the path to the file you would like to use for storage. It "
-#~ "will have size %sGB."
-#~ msgstr ""
-#~ "Unesite putanju do datoteke koju biste želeli da koristite kao skladište. "
-#~ "Imaće veličinu od %sGB."
-
-#~ msgid "How large would you like the disk (%s) to be (in gigabytes)?"
-#~ msgstr "Koliko veliki biste želeli da disk (%s) bude (u gigabajtima)?"
-
-#~ msgid "What is the install location?"
-#~ msgstr "Koja je lokacija instalacije?"
-
 #~ msgid "What is the virtual CD image, CD device or install location?"
 #~ msgstr "Koja je slika virtuelnog CD-a, CD uređaj ili lokacija instalacije?"
 
@@ -2147,12 +2478,6 @@ msgstr ""
 #~ msgid "LiveCD installations are not supported for paravirt guests"
 #~ msgstr "Instalacije sa LiveCD-a nisu podržane za paravirt. goste"
 
-#~ msgid "What is the name of your virtual machine?"
-#~ msgstr "Koje je ime Vaše virtuelne mašine?"
-
-#~ msgid "How much RAM should be allocated (in megabytes)?"
-#~ msgstr "Koliko RAM memorije treba da bude alocirano (u megabajtima)?"
-
 #~ msgid "How many VCPUs should be attached?"
 #~ msgstr "Koliko bi virtuelnih procesora trebalo da bude pridruženo?"
 
@@ -2166,9 +2491,6 @@ msgstr ""
 #~ msgid "Can't do both SDL and nographics"
 #~ msgstr "Ne mogu istovremeno da pokrenem SDL i negrafički deo"
 
-#~ msgid "Would you like to enable graphics support? (yes or no)"
-#~ msgstr "Da li biste želeli da uključite grafičku podršku? (da ili ne)"
-
 #~ msgid "The specified path's root directory must exist."
 #~ msgstr "Određena putanja korenog direktorijuma mora postojati."
 
diff --git a/po/virtinst.pot b/po/virtinst.pot
index c496e5a..485d315 100644
--- a/po/virtinst.pot
+++ b/po/virtinst.pot
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-03-09 20:41-0400\n"
+"POT-Creation-Date: 2009-07-28 20:34-0400\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <LL at li.org>\n"
@@ -16,367 +16,420 @@ msgstr ""
 "Content-Type: text/plain; charset=CHARSET\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: virtinst/CapabilitiesParser.py:168
+#: virtinst/CapabilitiesParser.py:172
 #, python-format
 msgid "No domains available for virt type '%(type)s', arch %(arch)s."
 msgstr ""
 
-#: virtinst/CapabilitiesParser.py:393
+#: virtinst/CapabilitiesParser.py:412
 #, python-format
 msgid "for arch '%s'"
 msgstr ""
 
-#: virtinst/CapabilitiesParser.py:397
+#: virtinst/CapabilitiesParser.py:416
 #, python-format
 msgid "virtualization type '%s'"
 msgstr ""
 
-#: virtinst/CapabilitiesParser.py:399
+#: virtinst/CapabilitiesParser.py:418
 msgid "any virtualization options"
 msgstr ""
 
-#: virtinst/CapabilitiesParser.py:401
+#: virtinst/CapabilitiesParser.py:420
 #, python-format
 msgid "Host does not support %(virttype)s %(arch)s"
 msgstr ""
 
-#: virtinst/CapabilitiesParser.py:414
+#: virtinst/CapabilitiesParser.py:433
 #, python-format
 msgid ""
 "Host does not support domain type '%(domain)s' for virtualization type '%"
 "(virttype)s' arch '%(arch)s'"
 msgstr ""
 
-#: virtinst/cli.py:117
+#: virtinst/cli.py:152
 msgid "Exiting at user request."
 msgstr ""
 
-#: virtinst/cli.py:122
+#: virtinst/cli.py:159
 msgid "Must be root to create Xen guests"
 msgstr ""
 
-#: virtinst/cli.py:124
-msgid "Could not find usable default libvirt connection."
+#: virtinst/cli.py:297
+msgid "(use --prompt to run interactively)"
 msgstr ""
 
-#: virtinst/cli.py:146
+#: virtinst/cli.py:317
+msgid " (Use --prompt or --force to override)"
+msgstr ""
+
+#: virtinst/cli.py:352
+msgid "Graphics Configuration"
+msgstr ""
+
+#: virtinst/cli.py:354
+msgid "Use VNC for graphics support"
+msgstr ""
+
+#: virtinst/cli.py:356
+msgid "Port to use for VNC"
+msgstr ""
+
+#: virtinst/cli.py:358
+msgid "Address to listen on for VNC connections."
+msgstr ""
+
+#: virtinst/cli.py:361
+msgid "set up keymap for the VNC console"
+msgstr ""
+
+#: virtinst/cli.py:363
+msgid "Use SDL for graphics support"
+msgstr ""
+
+#: virtinst/cli.py:365
+msgid "Don't set up a graphical console for the guest."
+msgstr ""
+
+#: virtinst/cli.py:388
+msgid "A disk path must be specified."
+msgstr ""
+
+#: virtinst/cli.py:390
+msgid "What would you like to use as the disk (file path)?"
+msgstr ""
+
+#: virtinst/cli.py:392
 #, python-format
-msgid "Force flag is set but input was required. Prompt was: %s"
+msgid ""
+"Please enter the path to the file you would like to use for storage. It will "
+"have size %sGB."
+msgstr ""
+
+#: virtinst/cli.py:401
+msgid "A size must be specified for non-existent disks."
 msgstr ""
 
-#: virtinst/cli.py:149
+#: virtinst/cli.py:403
 #, python-format
-msgid "Prompting disabled, but input was requested. Prompt was: %s"
+msgid "How large would you like the disk (%s) to be (in gigabytes)?"
 msgstr ""
 
-#: virtinst/cli.py:169
+#: virtinst/cli.py:424 virt-install:274
 #, python-format
-msgid ""
-"Prompting disabled, but yes/no was requested. Try --force to force 'yes' for "
-"such prompts. Prompt was: %s"
+msgid "Error with storage parameters: %s"
 msgstr ""
 
-#: virtinst/cli.py:179 virt-clone:48 virt-clone:69 virt-clone:108
-msgid "ERROR: "
+#: virtinst/cli.py:426
+msgid "Do you really want to use this disk (yes or no)"
 msgstr ""
 
-#: virtinst/cli.py:189
+#: virtinst/cli.py:430
+#, python-format
+msgid "This will overwrite the existing path '%s'!\n"
+msgstr ""
+
+#: virtinst/cli.py:437
+#, python-format
+msgid "Disk %s is already in use by another guest!\n"
+msgstr ""
+
+#: virtinst/cli.py:464
+msgid "What is the name of your virtual machine?"
+msgstr ""
+
+#: virtinst/cli.py:465
 msgid "A name is required for the virtual machine."
 msgstr ""
 
-#: virtinst/cli.py:197
+#: virtinst/cli.py:472
+msgid "How much RAM should be allocated (in megabytes)?"
+msgstr ""
+
+#: virtinst/cli.py:473
 msgid "Memory amount is required for the virtual machine."
 msgstr ""
 
-#: virtinst/cli.py:199
+#: virtinst/cli.py:477
 #, python-format
 msgid "Installs currently require %d megs of RAM."
 msgstr ""
 
-#: virtinst/cli.py:219
+#: virtinst/cli.py:498
 #, python-format
 msgid ""
 "You have asked for more virtual CPUs (%d) than there are physical CPUs (%d) "
-"on the host. This will work, but performance will be poor. Are you sure? "
-"(yes or no)"
+"on the host. This will work, but performance will be poor. "
+msgstr ""
+
+#: virtinst/cli.py:501
+msgid "Are you sure? (yes or no)"
 msgstr ""
 
-#: virtinst/cli.py:276
-msgid "Unknown network type "
+#: virtinst/cli.py:612
+#, python-format
+msgid "Unknown network option '%s'"
 msgstr ""
 
-#: virtinst/cli.py:293
+#: virtinst/cli.py:630
 msgid "Cannot mix both --bridge and --network arguments"
 msgstr ""
 
-#: virtinst/cli.py:310
-msgid "Need to pass equal numbers of networks & mac addresses"
+#: virtinst/cli.py:645
+msgid "Cannot pass more mac addresses than networks."
 msgstr ""
 
-#: virtinst/cli.py:332
+#: virtinst/cli.py:672
 msgid "Can't specify more than one of VNC, SDL, or --nographics"
 msgstr ""
 
-#: virtinst/cli.py:376 virtinst/cli.py:381 virt-install:320 virt-install:325
-#: virt-install.orig:320 virt-install.orig:325
+#: virtinst/cli.py:700
+#, python-format
+msgid "Didn't match keymap '%s' in keytable!"
+msgstr ""
+
+#: virtinst/cli.py:731 virtinst/cli.py:736
 #, python-format
 msgid "%s option requires an argument"
 msgstr ""
 
-#: virtinst/CloneManager.py:54
+#: virtinst/CloneManager.py:109
 msgid "Connection must be a 'virConnect' instance."
 msgstr ""
 
-#: virtinst/CloneManager.py:102
+#: virtinst/CloneManager.py:162
 msgid "Original xml must be a string."
 msgstr ""
 
-#: virtinst/CloneManager.py:114
+#: virtinst/CloneManager.py:177
 #, python-format
 msgid "Invalid name for new guest: %s"
 msgstr ""
 
-#: virtinst/CloneManager.py:119
+#: virtinst/CloneManager.py:182
 #, python-format
 msgid "Domain name '%s' already in use."
 msgstr ""
 
-#: virtinst/CloneManager.py:131
+#: virtinst/CloneManager.py:195
 #, python-format
 msgid "Invalid uuid for new guest: %s"
 msgstr ""
 
-#: virtinst/CloneManager.py:134
+#: virtinst/CloneManager.py:198
 #, python-format
 msgid "UUID '%s' is in use by another guest."
 msgstr ""
 
-#: virtinst/CloneManager.py:149
+#: virtinst/CloneManager.py:226
 #, python-format
 msgid "Could not use path '%s' for cloning: %s"
 msgstr ""
 
-#: virtinst/CloneManager.py:235
-msgid "Original guest name or xml is required."
+#: virtinst/CloneManager.py:356
+msgid "Cloning policy must be a list of rules."
 msgstr ""
 
-#: virtinst/CloneManager.py:253
-msgid "Cannot clone remote VM storage."
+#: virtinst/CloneManager.py:373
+msgid "Original guest name or xml is required."
 msgstr ""
 
-#: virtinst/CloneManager.py:261
+#: virtinst/CloneManager.py:391
 msgid "Domain with devices to clone must be paused or shutoff."
 msgstr ""
 
-#: virtinst/CloneManager.py:304
+#: virtinst/CloneManager.py:437
 #, python-format
-msgid "Missing path to use as disk clone destination for '%s'"
+msgid ""
+"More disks to clone that new paths specified. (%(passed)d specified, %(need)"
+"d needed"
 msgstr ""
 
-#: virtinst/CloneManager.py:403
+#: virtinst/CloneManager.py:557
 #, python-format
 msgid "Disk '%s' does not exist."
 msgstr ""
 
-#: virtinst/CloneManager.py:406
+#: virtinst/CloneManager.py:568
 #, python-format
 msgid "Could not determine original disk information: %s"
 msgstr ""
 
-#: virtinst/CloneManager.py:474
+#: virtinst/CloneManager.py:613
 #, python-format
 msgid "Domain '%s' was not found."
 msgstr ""
 
-#: virtinst/CloneManager.py:539
-msgid "copying to an existing vdisk is not supported"
-msgstr ""
-
-#: virtinst/CloneManager.py:547
-#, python-format
-msgid "Could not determine storage type for '%s'"
-msgstr ""
-
-#: virtinst/CloneManager.py:574
-#, python-format
-msgid "Cloning %(srcfile)s"
-msgstr ""
-
-#: virtinst/CloneManager.py:581
-msgid "failed to clone disk"
-msgstr ""
-
-#: virtinst/DistroInstaller.py:51
+#: virtinst/DistroInstaller.py:57
 msgid "Invalid NFS format: No path specified."
 msgstr ""
 
-#: virtinst/DistroInstaller.py:93
+#: virtinst/DistroInstaller.py:101
 #, python-format
 msgid "Invalid 'location' type %s."
 msgstr ""
 
-#: virtinst/DistroInstaller.py:99
+#: virtinst/DistroInstaller.py:107
 msgid "'conn' must be specified if 'location' is a storage tuple."
 msgstr ""
 
-#: virtinst/DistroInstaller.py:135
+#: virtinst/DistroInstaller.py:145
 #, python-format
 msgid "Checking installer location failed: Could not find media '%s'."
 msgstr ""
 
-#: virtinst/DistroInstaller.py:138
+#: virtinst/DistroInstaller.py:148
 msgid ""
 "Install media location must be an NFS, HTTP or FTP network install source, "
 "or an existing file/device"
 msgstr ""
 
-#: virtinst/DistroInstaller.py:145
+#: virtinst/DistroInstaller.py:155
 msgid "Privilege is required for NFS installations"
 msgstr ""
 
-#: virtinst/Guest.py:100
+#: virtinst/Guest.py:108
 msgid "Unable to connect to hypervisor, aborting installation!"
 msgstr ""
 
-#: virtinst/Guest.py:118
+#: virtinst/Guest.py:126
 msgid "Guest"
 msgstr ""
 
-#: virtinst/Guest.py:125
+#: virtinst/Guest.py:133
 #, python-format
 msgid "Guest name '%s' is already in use."
 msgstr ""
 
-#: virtinst/Guest.py:133
+#: virtinst/Guest.py:141
 msgid "Memory value must be an integer greater than 0"
 msgstr ""
 
-#: virtinst/Guest.py:145
+#: virtinst/Guest.py:153
 msgid "Max Memory value must be an integer greater than 0"
 msgstr ""
 
-#: virtinst/Guest.py:164
+#: virtinst/Guest.py:172
 msgid "Number of vcpus must be a postive integer."
 msgstr ""
 
-#: virtinst/Guest.py:166
+#: virtinst/Guest.py:174
 #, python-format
 msgid "Number of vcpus must be no greater than %d for this vm type."
 msgstr ""
 
-#: virtinst/Guest.py:176
+#: virtinst/Guest.py:184
 msgid "cpuset must be string"
 msgstr ""
 
-#: virtinst/Guest.py:178
+#: virtinst/Guest.py:186
 msgid "cpuset can only contain numeric, ',', or '-' characters"
 msgstr ""
 
-#: virtinst/Guest.py:186
+#: virtinst/Guest.py:194
 msgid "cpuset contains invalid format."
 msgstr ""
 
-#: virtinst/Guest.py:188 virtinst/Guest.py:192
+#: virtinst/Guest.py:196 virtinst/Guest.py:202
 msgid "cpuset's pCPU numbers must be less than pCPUs."
 msgstr ""
 
-#: virtinst/Guest.py:212
+#: virtinst/Guest.py:222
 msgid "OS type must be a string."
 msgstr ""
 
-#: virtinst/Guest.py:224
+#: virtinst/Guest.py:234
 #, python-format
 msgid "OS type '%s' does not exist in our dictionary"
 msgstr ""
 
-#: virtinst/Guest.py:232
+#: virtinst/Guest.py:242
 msgid "OS variant must be a string."
 msgstr ""
 
-#: virtinst/Guest.py:238
+#: virtinst/Guest.py:248
 #, python-format
 msgid ""
 "OS variant '%(var)s; does not exist in our dictionary for OS type '%(ty)s'"
 msgstr ""
 
-#: virtinst/Guest.py:250
+#: virtinst/Guest.py:260
 #, python-format
 msgid "Unknown OS variant '%s'"
 msgstr ""
 
-#: virtinst/Guest.py:291
+#: virtinst/Guest.py:301
 msgid "Must specify whether graphics are enabled"
 msgstr ""
 
-#: virtinst/Guest.py:314
+#: virtinst/Guest.py:324
 msgid "Graphics enabled must be True or False"
 msgstr ""
 
-#: virtinst/Guest.py:373
+#: virtinst/Guest.py:383
 msgid "You must specify a valid ISO or CD-ROM location for the installation"
 msgstr ""
 
-#: virtinst/Guest.py:376
+#: virtinst/Guest.py:386
 msgid "The specified media path does not exist."
 msgstr ""
 
-#: virtinst/Guest.py:573
+#: virtinst/Guest.py:415
+msgid "Must pass a VirtualDevice instance."
+msgstr ""
+
+#: virtinst/Guest.py:660
 msgid "Unable to start domain for guest, aborting installation!"
 msgstr ""
 
-#: virtinst/Guest.py:623
+#: virtinst/Guest.py:716
 #, python-format
 msgid "Could not remove old vm '%s': %s"
 msgstr ""
 
-#: virtinst/Guest.py:625
+#: virtinst/Guest.py:718
 #, python-format
 msgid "Domain named %s already exists!"
 msgstr ""
 
-#: virtinst/Guest.py:632
+#: virtinst/Guest.py:725
 msgid "Creating domain..."
 msgstr ""
 
-#: virtinst/Guest.py:635
+#: virtinst/Guest.py:728
 msgid "Unable to create domain for the guest, aborting installation!"
 msgstr ""
 
-#: virtinst/Guest.py:643
+#: virtinst/Guest.py:736
 msgid ""
 "It appears that your installation has crashed.  You should be able to find "
 "more information in the logs"
 msgstr ""
 
-#: virtinst/Guest.py:677
+#: virtinst/Guest.py:770
 msgid ""
 "Domain has not existed.  You should be able to find more information in the "
 "logs"
 msgstr ""
 
-#: virtinst/Guest.py:679
+#: virtinst/Guest.py:772
 msgid ""
 "Domain has not run yet.  You should be able to find more information in the "
 "logs"
 msgstr ""
 
-#: virtinst/Guest.py:696
+#: virtinst/Guest.py:789
 msgid "Domain has already been started!"
 msgstr ""
 
-#: virtinst/Guest.py:707
+#: virtinst/Guest.py:809
 msgid "The UUID you entered is already in use by another guest!"
 msgstr ""
 
-#: virtinst/Guest.py:710
+#: virtinst/Guest.py:812
 msgid "Name and memory must be specified for all guests!"
 msgstr ""
 
-#: virtinst/Guest.py:745
-#, python-format
-msgid "Invalid dictionary entry for device '%s %s'"
-msgstr ""
-
 #: virtinst/ImageFetcher.py:86
 #, python-format
 msgid "Retrieving file %s..."
@@ -442,7 +495,7 @@ msgstr ""
 msgid "The format for disk %s must be one of %s"
 msgstr ""
 
-#: virtinst/ImageParser.py:248
+#: virtinst/ImageParser.py:263
 #, python-format
 msgid "Checking disk signature for %s"
 msgstr ""
@@ -465,24 +518,24 @@ msgstr ""
 msgid "A disk device must be specified."
 msgstr ""
 
-#: virtinst/Installer.py:151
+#: virtinst/Installer.py:156
 msgid "Guest.cdrom must be a boolean type"
 msgstr ""
 
-#: virtinst/Installer.py:168 virtinst/Installer.py:173
-#: virtinst/Installer.py:177
+#: virtinst/Installer.py:173 virtinst/Installer.py:178
+#: virtinst/Installer.py:182
 msgid "Must pass both a kernel and initrd"
 msgstr ""
 
-#: virtinst/Installer.py:180
+#: virtinst/Installer.py:185
 msgid "Kernel and initrd must be specified by a list, dict, or tuple."
 msgstr ""
 
-#: virtinst/Installer.py:335
+#: virtinst/Installer.py:340
 msgid "A connection must be specified."
 msgstr ""
 
-#: virtinst/Installer.py:353
+#: virtinst/Installer.py:358
 #, python-format
 msgid "No 'Guest' class for virtualization type '%s'"
 msgstr ""
@@ -491,645 +544,862 @@ msgstr ""
 msgid "CDROM media must be specified for the live CD installer."
 msgstr ""
 
-#: virtinst/NodeDeviceParser.py:114
+#: virtinst/NodeDeviceParser.py:118
 msgid "System"
 msgstr ""
 
-#: virtinst/NodeDeviceParser.py:146
+#: virtinst/NodeDeviceParser.py:151
 #, python-format
 msgid "Interface %s"
 msgstr ""
 
-#: virtinst/NodeDeviceParser.py:364 virtinst/NodeDeviceParser.py:392
-#: virtinst/util.py:531 virtinst/VirtualDevice.py:58
+#: virtinst/NodeDeviceParser.py:378 virtinst/NodeDeviceParser.py:406
+#: virtinst/util.py:501 virtinst/VirtualDevice.py:86
 msgid "'conn' must be a virConnect instance."
 msgstr ""
 
-#: virtinst/NodeDeviceParser.py:411
+#: virtinst/NodeDeviceParser.py:426
 msgid "Connection does not support host device enumeration."
 msgstr ""
 
-#: virtinst/NodeDeviceParser.py:487
+#: virtinst/NodeDeviceParser.py:502
 #, python-format
 msgid "Unknown host device capability '%s'."
 msgstr ""
 
-#: virtinst/OSDistro.py:99
+#: virtinst/osdict.py:129
+#, python-format
+msgid "Invalid dictionary entry for device '%s %s'"
+msgstr ""
+
+#: virtinst/OSDistro.py:102
 #, python-format
 msgid "Could not find an installable distribution at '%s'"
 msgstr ""
 
-#: virtinst/OSDistro.py:109
+#: virtinst/OSDistro.py:112
 msgid "Invalid install location: "
 msgstr ""
 
-#: virtinst/OSDistro.py:230
+#: virtinst/OSDistro.py:237
 #, python-format
 msgid "Couldn't find %(type)s kernel for %(distro)s tree."
 msgstr ""
 
-#: virtinst/OSDistro.py:244
+#: virtinst/OSDistro.py:252
 #, python-format
 msgid "Could not find boot.iso in %s tree."
 msgstr ""
 
-#: virtinst/OSDistro.py:383
+#: virtinst/OSDistro.py:413
 #, python-format
 msgid "Could not find a kernel path for virt type '%s'"
 msgstr ""
 
-#: virtinst/OSDistro.py:392
+#: virtinst/OSDistro.py:422
 msgid "Could not find a boot iso path for this tree."
 msgstr ""
 
-#: virtinst/OSDistro.py:646
+#: virtinst/OSDistro.py:676
 msgid "Unable to determine kernel RPM path"
 msgstr ""
 
-#: virtinst/OSDistro.py:648
+#: virtinst/OSDistro.py:678
 msgid "Unable to determine install-initrd RPM path"
 msgstr ""
 
-#: virtinst/OSDistro.py:659
+#: virtinst/OSDistro.py:689
 msgid "Building initrd"
 msgstr ""
 
-#: virtinst/OSDistro.py:1021
+#: virtinst/OSDistro.py:1051
 #, python-format
 msgid "Solaris miniroot not found at %s"
 msgstr ""
 
-#: virtinst/OSDistro.py:1056
+#: virtinst/OSDistro.py:1089
 #, python-format
 msgid "OpenSolaris PV kernel not found at %s"
 msgstr ""
 
-#: virtinst/OSDistro.py:1066
-#, python-format
-msgid "OpenSolaris microroot not found at %s"
-msgstr ""
-
-#: virtinst/Storage.py:85
+#: virtinst/Storage.py:81
 #, python-format
 msgid "Unknown storage object type: %s"
 msgstr ""
 
-#: virtinst/Storage.py:108
+#: virtinst/Storage.py:104
 msgid "'conn' must be a libvirt connection object."
 msgstr ""
 
-#: virtinst/Storage.py:110
+#: virtinst/Storage.py:106
 msgid "Passed connection is not libvirt storage capable"
 msgstr ""
 
-#: virtinst/Storage.py:120
+#: virtinst/Storage.py:116
 msgid "Storage object"
 msgstr ""
 
-#: virtinst/Storage.py:125
+#: virtinst/Storage.py:121
 msgid "Name for the storage object."
 msgstr ""
 
-#: virtinst/Storage.py:132
+#: virtinst/Storage.py:128
 msgid "Permissions must be passed as a dict object"
 msgstr ""
 
-#: virtinst/Storage.py:135
+#: virtinst/Storage.py:131
 msgid "Permissions must contain 'mode', 'owner', 'group' and 'label' keys."
 msgstr ""
 
-#: virtinst/Storage.py:142
+#: virtinst/Storage.py:138
 #, python-format
 msgid "'%s' is not an absolute path."
 msgstr ""
 
-#: virtinst/Storage.py:203
+#: virtinst/Storage.py:199
 msgid "Filesystem Directory"
 msgstr ""
 
-#: virtinst/Storage.py:204
+#: virtinst/Storage.py:200
 msgid "Pre-Formatted Block Device"
 msgstr ""
 
-#: virtinst/Storage.py:205
+#: virtinst/Storage.py:201
 msgid "Network Exported Directory"
 msgstr ""
 
-#: virtinst/Storage.py:206
+#: virtinst/Storage.py:202
 msgid "LVM Volume Group"
 msgstr ""
 
-#: virtinst/Storage.py:207
+#: virtinst/Storage.py:203
 msgid "Physical Disk Device"
 msgstr ""
 
-#: virtinst/Storage.py:208
+#: virtinst/Storage.py:204
 msgid "iSCSI Target"
 msgstr ""
 
-#: virtinst/Storage.py:218 virtinst/Storage.py:255
+#: virtinst/Storage.py:214 virtinst/Storage.py:251
 #, python-format
 msgid "Unknown storage pool type: %s"
 msgstr ""
 
-#: virtinst/Storage.py:277
+#: virtinst/Storage.py:273
 msgid "Storage device type the pool will represent."
 msgstr ""
 
-#: virtinst/Storage.py:296
+#: virtinst/Storage.py:292
 msgid "Host name must be a string"
 msgstr ""
 
-#: virtinst/Storage.py:315
+#: virtinst/Storage.py:311
 #, python-format
 msgid "Name '%s' already in use by another pool."
 msgstr ""
 
-#: virtinst/Storage.py:353
+#: virtinst/Storage.py:349
 #, python-format
 msgid "Could not define storage pool: %s"
 msgstr ""
 
-#: virtinst/Storage.py:363
+#: virtinst/Storage.py:359
 #, python-format
 msgid "Could not build storage pool: %s"
 msgstr ""
 
-#: virtinst/Storage.py:372
+#: virtinst/Storage.py:368
 #, python-format
 msgid "Could not start storage pool: %s"
 msgstr ""
 
-#: virtinst/Storage.py:399
+#: virtinst/Storage.py:395
 msgid "Directory to use for the storage pool."
 msgstr ""
 
-#: virtinst/Storage.py:435
+#: virtinst/Storage.py:431
 msgid "The existing device to mount for the pool."
 msgstr ""
 
-#: virtinst/Storage.py:438 virtinst/Storage.py:496
+#: virtinst/Storage.py:434 virtinst/Storage.py:492
 msgid "Location to mount the source device."
 msgstr ""
 
-#: virtinst/Storage.py:456
+#: virtinst/Storage.py:452
 #, python-format
 msgid "Unknown Filesystem format: %s"
 msgstr ""
 
-#: virtinst/Storage.py:459
+#: virtinst/Storage.py:455
 msgid "Filesystem type of the source device."
 msgstr ""
 
-#: virtinst/Storage.py:472
+#: virtinst/Storage.py:468
 msgid "Device path is required"
 msgstr ""
 
-#: virtinst/Storage.py:491 virtinst/Storage.py:665
+#: virtinst/Storage.py:487 virtinst/Storage.py:694
 msgid "Path on the host that is being shared."
 msgstr ""
 
-#: virtinst/Storage.py:493 virtinst/Storage.py:637
+#: virtinst/Storage.py:489 virtinst/Storage.py:666
 msgid "Name of the host sharing the storage."
 msgstr ""
 
-#: virtinst/Storage.py:514
+#: virtinst/Storage.py:510
 #, python-format
 msgid "Unknown Network Filesystem format: %s"
 msgstr ""
 
-#: virtinst/Storage.py:517
+#: virtinst/Storage.py:513
 msgid "Type of network filesystem."
 msgstr ""
 
-#: virtinst/Storage.py:529 virtinst/Storage.py:676
+#: virtinst/Storage.py:525 virtinst/Storage.py:705
 msgid "Hostname is required"
 msgstr ""
 
-#: virtinst/Storage.py:531 virtinst/Storage.py:614 virtinst/Storage.py:678
+#: virtinst/Storage.py:527 virtinst/Storage.py:643 virtinst/Storage.py:707
 msgid "Host path is required"
 msgstr ""
 
-#: virtinst/Storage.py:549
+#: virtinst/Storage.py:545
 msgid "Location of the existing LVM volume group."
 msgstr ""
 
-#: virtinst/Storage.py:576
-msgid "Path to the existing disk device."
+#: virtinst/Storage.py:570
+msgid "Optional device(s) to build new LVM volume on."
 msgstr ""
 
-#: virtinst/Storage.py:579 virtinst/Storage.py:640
-msgid "Root location for identifying new storage volumes."
+#: virtinst/Storage.py:593
+msgid "Must explicitly specify source path if building' pool"
 msgstr ""
 
-#: virtinst/Storage.py:585
-msgid "Disk volume creation is not implemented."
+#: virtinst/Storage.py:609
+msgid "Path to the existing disk device."
 msgstr ""
 
-#: virtinst/Storage.py:600
+#: virtinst/Storage.py:612 virtinst/Storage.py:669
+msgid "Root location for identifying new storage volumes."
+msgstr ""
+
+#: virtinst/Storage.py:629
 #, python-format
 msgid "Unknown Disk format: %s"
 msgstr ""
 
-#: virtinst/Storage.py:603
+#: virtinst/Storage.py:632
 msgid "Format of the source device's partition table."
 msgstr ""
 
-#: virtinst/Storage.py:626
+#: virtinst/Storage.py:655
 msgid "Must explicitly specify disk format if formatting disk device."
 msgstr ""
 
-#: virtinst/Storage.py:644
+#: virtinst/Storage.py:673
 msgid "iSCSI volume creation is not implemented."
 msgstr ""
 
-#: virtinst/Storage.py:694
+#: virtinst/Storage.py:734
 msgid "One of pool or pool_name must be specified."
 msgstr ""
 
-#: virtinst/Storage.py:697 virtinst/Storage.py:770
+#: virtinst/Storage.py:737 virtinst/Storage.py:806
 msgid "'conn' must be specified with 'pool_name'"
 msgstr ""
 
-#: virtinst/Storage.py:756
-msgid "Default volume target path range exceeded."
-msgstr ""
-
-#: virtinst/Storage.py:766
+#: virtinst/Storage.py:802
 msgid "Must specify pool_object or pool_name"
 msgstr ""
 
-#: virtinst/Storage.py:772
+#: virtinst/Storage.py:808
 msgid "Connection does not support storage management."
 msgstr ""
 
-#: virtinst/Storage.py:777
+#: virtinst/Storage.py:813
 #, python-format
 msgid "Couldn't find storage pool '%s': %s"
 msgstr ""
 
-#: virtinst/Storage.py:781
+#: virtinst/Storage.py:817
 msgid "pool_object must be a virStoragePool"
 msgstr ""
 
-#: virtinst/Storage.py:792
+#: virtinst/Storage.py:831
 msgid "Capacity must be a positive number"
 msgstr ""
 
-#: virtinst/Storage.py:813
+#: virtinst/Storage.py:852
 msgid "Allocation must be a non-negative number"
 msgstr ""
 
-#: virtinst/Storage.py:833
+#: virtinst/Storage.py:872
 msgid "'pool' must be a virStoragePool instance."
 msgstr ""
 
-#: virtinst/Storage.py:835
+#: virtinst/Storage.py:874
 #, python-format
 msgid "pool '%s' must be active."
 msgstr ""
 
-#: virtinst/Storage.py:844
+#: virtinst/Storage.py:886 virtinst/Storage.py:1120
+msgid "input_vol must be a virStorageVol"
+msgstr ""
+
+#: virtinst/Storage.py:888
+msgid ""
+"Creating storage from an existing volume is not supported by this libvirt "
+"version."
+msgstr ""
+
+#: virtinst/Storage.py:892
+msgid "virStorageVolume pointer to clone/use as input."
+msgstr ""
+
+#: virtinst/Storage.py:900
 #, python-format
 msgid "'%s' is not a valid format."
 msgstr ""
 
-#: virtinst/Storage.py:854
+#: virtinst/Storage.py:910
 #, python-format
 msgid "Name '%s' already in use by another volume."
 msgstr ""
 
-#: virtinst/Storage.py:924
+#: virtinst/Storage.py:963
+#, python-format
+msgid "Allocating '%s'"
+msgstr ""
+
+#: virtinst/Storage.py:1023
 #, python-format
 msgid ""
 "There is not enough free space on the storage pool to create the volume. (%d "
 "M requested allocation > %d M available)"
 msgstr ""
 
-#: virtinst/Storage.py:930
+#: virtinst/Storage.py:1029
 #, python-format
 msgid ""
 "The requested volume capacity will exceed the available pool space when the "
 "volume is fully allocated. (%d M requested capacity > %d M available)"
 msgstr ""
 
-#: virtinst/_util.py:111
+#: virtinst/_util.py:128
 msgid "UUID must be a string."
 msgstr ""
 
-#: virtinst/_util.py:119
+#: virtinst/_util.py:136
 msgid ""
 "UUID must be a 32-digit hexadecimal number. It may take the form XXXXXXXX-"
 "XXXX-XXXX-XXXX-XXXXXXXXXXXX or may omit hyphens altogether."
 msgstr ""
 
-#: virtinst/_util.py:130
+#: virtinst/_util.py:147
 #, python-format
 msgid "%s name must be a string between 0 and 50 characters"
 msgstr ""
 
-#: virtinst/_util.py:133
+#: virtinst/_util.py:150
 #, python-format
 msgid "%s name can not be only numeric characters"
 msgstr ""
 
-#: virtinst/_util.py:136
+#: virtinst/_util.py:153
 #, python-format
 msgid "%s name can only contain alphanumeric, '_', '.', or '-' characters"
 msgstr ""
 
-#: virtinst/util.py:67
+#: virtinst/_util.py:276
+msgid "Name generation range exceeded."
+msgstr ""
+
+#: virtinst/util.py:69
 #, python-format
 msgid "Invalid line length while parsing %s."
 msgstr ""
 
-#: virtinst/util.py:68
+#: virtinst/util.py:70
 #, python-format
 msgid "Defaulting bridge to xenbr%d"
 msgstr ""
 
-#: virtinst/util.py:568
+#: virtinst/util.py:538 virtconv/parsers/ovf.py:160
 msgid "'path' or 'func' is required."
 msgstr ""
 
-#: virtinst/VirtualAudio.py:38
+#: virtinst/VirtualAudio.py:40
 #, python-format
 msgid "'model' must be a string,  was '%s'."
 msgstr ""
 
-#: virtinst/VirtualAudio.py:41
+#: virtinst/VirtualAudio.py:43
 #, python-format
 msgid "Unsupported sound model '%s'"
 msgstr ""
 
-#: virtinst/VirtualDevice.py:43
+#: virtinst/VirtualCharDevice.py:64
+msgid "Psuedo TTY"
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:66
+msgid "Physical host character device"
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:68
+msgid "Standard input/output"
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:70
+msgid "Named pipe"
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:72
+msgid "Output to a file"
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:74
+msgid "Virtual console"
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:76
+msgid "Null device"
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:78
+msgid "TCP net console"
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:80
+msgid "UDP net console"
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:82
+msgid "Unix socket"
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:94
+msgid "Client mode."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:96
+msgid "Server mode."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:139
+#, python-format
+msgid "Unknown character device type '%s'."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:147 virtinst/VirtualCharDevice.py:157
+#, python-format
+msgid "Unknown character device type '%s'"
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:173
+msgid "Method used to expose character device in the host."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:186
+#, python-format
+msgid "Unknown character mode '%s'."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:213
+#, python-format
+msgid "Unknown protocol '%s'."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:232
+#, python-format
+msgid "A source path is required for character device type '%s'"
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:282
+msgid "Host character device to attach to guest."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:288
+msgid "Named pipe to use for input and output."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:294
+msgid "File path to record device output."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:302 virtinst/VirtualCharDevice.py:312
+msgid "Target connect/listen mode."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:305
+msgid "Unix socket path."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:315
+msgid "Address to connect/listen to."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:318
+msgid "Port on target host to connect/listen to."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:321
+msgid "Format used when sending data."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:325
+msgid "A host and port must be specified."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:337
+msgid "Host address to bind to."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:340
+msgid "Host port to bind to."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:343
+msgid "Host address to send output to."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:346
+msgid "Host port to send output to."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:351
+msgid "A connection port must be specified."
+msgstr ""
+
+#: virtinst/VirtualDevice.py:63
+msgid "Virtual device type must be set in subclass."
+msgstr ""
+
+#: virtinst/VirtualDevice.py:66
+#, python-format
+msgid "Unknown virtual device type '%s'."
+msgstr ""
+
+#: virtinst/VirtualDevice.py:71
 msgid "'conn' must be a virConnect instance"
 msgstr ""
 
-#: virtinst/VirtualDevice.py:67
+#: virtinst/VirtualDevice.py:104
 #, python-format
 msgid "'%s' must be True or False"
 msgstr ""
 
-#: virtinst/VirtualDevice.py:71
+#: virtinst/VirtualDevice.py:108
 #, python-format
 msgid "'%s' must be a string, not '%s'."
 msgstr ""
 
-#: virtinst/VirtualDisk.py:205
+#: virtinst/VirtualDisk.py:262
+#, python-format
+msgid "Error validating clone path: %s"
+msgstr ""
+
+#: virtinst/VirtualDisk.py:271
 msgid "'size' must be a number greater than 0."
 msgstr ""
 
-#: virtinst/VirtualDisk.py:215
+#: virtinst/VirtualDisk.py:281
 #, python-format
 msgid "Unknown storage type '%s'"
 msgstr ""
 
-#: virtinst/VirtualDisk.py:224
+#: virtinst/VirtualDisk.py:290
 #, python-format
 msgid "Unknown device type '%s'"
 msgstr ""
 
-#: virtinst/VirtualDisk.py:258
+#: virtinst/VirtualDisk.py:324
 msgid "vol_object must be a virStorageVol instance"
 msgstr ""
 
-#: virtinst/VirtualDisk.py:266
+#: virtinst/VirtualDisk.py:332
 msgid "vol_install must be a StorageVolume  instance."
 msgstr ""
 
-#: virtinst/VirtualDisk.py:292
+#: virtinst/VirtualDisk.py:358
 #, python-format
 msgid "Unknown cache mode '%s'"
 msgstr ""
 
-#: virtinst/VirtualDisk.py:353
+#: virtinst/VirtualDisk.py:373
+#, python-format
+msgid "SELinux label '%s' is not valid."
+msgstr ""
+
+#: virtinst/VirtualDisk.py:433
 msgid "Unknown storage volume type."
 msgstr ""
 
-#: virtinst/VirtualDisk.py:372
+#: virtinst/VirtualDisk.py:449
 #, python-format
 msgid "Passed type '%s' does not match detected storage type '%s'"
 msgstr ""
 
-#: virtinst/VirtualDisk.py:382
+#: virtinst/VirtualDisk.py:504
 msgid "volName must be a tuple of the form ('poolname', 'volname')"
 msgstr ""
 
-#: virtinst/VirtualDisk.py:385
+#: virtinst/VirtualDisk.py:507
 msgid "'volName' requires a passed connection."
 msgstr ""
 
-#: virtinst/VirtualDisk.py:387
+#: virtinst/VirtualDisk.py:509
 msgid "Connection does not support storage lookup."
 msgstr ""
 
-#: virtinst/VirtualDisk.py:393
+#: virtinst/VirtualDisk.py:515
 #, python-format
 msgid "Couldn't lookup volume object: %s"
 msgstr ""
 
-#: virtinst/VirtualDisk.py:436
+#: virtinst/VirtualDisk.py:540
+#, python-format
+msgid "Device type '%s' requires a path"
+msgstr ""
+
+#: virtinst/VirtualDisk.py:583
 #, python-format
 msgid "Size must be specified for non existent volume path '%s'"
 msgstr ""
 
-#: virtinst/VirtualDisk.py:459
+#: virtinst/VirtualDisk.py:603
 #, python-format
 msgid ""
 "Cannot use storage '%(path)s': '%(rootdir)s' is not managed on the remote "
 "host."
 msgstr ""
 
-#: virtinst/VirtualDisk.py:464
+#: virtinst/VirtualDisk.py:608
 #, python-format
 msgid "Cannot use storage %(path)s: %(err)s"
 msgstr ""
 
-#: virtinst/VirtualDisk.py:517
+#: virtinst/VirtualDisk.py:686
 msgid "Connection doesn't support remote storage."
 msgstr ""
 
-#: virtinst/VirtualDisk.py:534
-#, python-format
-msgid "Device type '%s' requires a path"
-msgstr ""
-
-#: virtinst/VirtualDisk.py:549
+#: virtinst/VirtualDisk.py:689
 msgid "Must specify libvirt managed storage if on a remote connection"
 msgstr ""
 
-#: virtinst/VirtualDisk.py:558
+#: virtinst/VirtualDisk.py:726
 #, python-format
 msgid "The path '%s' must be a file or a device, not a directory"
 msgstr ""
 
-#: virtinst/VirtualDisk.py:568
+#: virtinst/VirtualDisk.py:735
 #, python-format
 msgid "Cannot create storage for %s device."
 msgstr ""
 
-#: virtinst/VirtualDisk.py:573
-msgid "Local block device path must exist."
+#: virtinst/VirtualDisk.py:740
+#, python-format
+msgid "Local block device path '%s' must exist."
 msgstr ""
 
-#: virtinst/VirtualDisk.py:581
+#: virtinst/VirtualDisk.py:749
 #, python-format
 msgid "size is required for non-existent disk '%s'"
 msgstr ""
 
-#: virtinst/VirtualDisk.py:584
+#: virtinst/VirtualDisk.py:752
 #, python-format
 msgid "No write access to directory '%s'"
 msgstr ""
 
-#: virtinst/VirtualDisk.py:620
-msgid "Creating storage file..."
+#: virtinst/VirtualDisk.py:777
+#, python-format
+msgid "Cloning %(srcfile)s"
 msgstr ""
 
-#: virtinst/VirtualDisk.py:626
+#: virtinst/VirtualDisk.py:780
+#, python-format
+msgid "Creating storage file %s"
+msgstr ""
+
+#: virtinst/VirtualDisk.py:793
+msgid "copying to an existing vdisk is not supported"
+msgstr ""
+
+#: virtinst/VirtualDisk.py:796
+msgid "failed to clone disk"
+msgstr ""
+
+#: virtinst/VirtualDisk.py:807
 #, python-format
 msgid "Error creating vdisk %s"
 msgstr ""
 
-#: virtinst/VirtualDisk.py:647
+#: virtinst/VirtualDisk.py:832
 #, python-format
 msgid "Error creating diskimage %s: %s"
 msgstr ""
 
-#: virtinst/VirtualDisk.py:669
+#: virtinst/VirtualDisk.py:932
 msgid "'disknode' or self.target must be set!"
 msgstr ""
 
-#: virtinst/VirtualDisk.py:741
+#: virtinst/VirtualDisk.py:1003
 msgid ""
 "The filesystem will not have enough free space to fully allocate the sparse "
 "file when the guest is running."
 msgstr ""
 
-#: virtinst/VirtualDisk.py:746
+#: virtinst/VirtualDisk.py:1008
 msgid "There is not enough free space to create the disk."
 msgstr ""
 
-#: virtinst/VirtualDisk.py:750
+#: virtinst/VirtualDisk.py:1012
 #, python-format
 msgid " %d M requested > %d M available"
 msgstr ""
 
-#: virtinst/VirtualDisk.py:840
+#: virtinst/VirtualDisk.py:1175
 msgid "Cannot determine device bus/type."
 msgstr ""
 
-#: virtinst/VirtualDisk.py:847
+#: virtinst/VirtualDisk.py:1182
 msgid "IDE CDROM must use 'hdc', but target in use."
 msgstr ""
 
-#: virtinst/VirtualDisk.py:863
+#: virtinst/VirtualDisk.py:1198
 #, python-format
 msgid "No more space for disks of type '%s'"
 msgstr ""
 
-#: virtinst/VirtualGraphics.py:38
+#: virtinst/VirtualGraphics.py:40
 msgid "Unknown graphics type"
 msgstr ""
 
-#: virtinst/VirtualGraphics.py:61
+#: virtinst/VirtualGraphics.py:63
 msgid "Keymap must be a string"
 msgstr ""
 
-#: virtinst/VirtualGraphics.py:63
+#: virtinst/VirtualGraphics.py:65
 msgid "Keymap must be less than 16 characters"
 msgstr ""
 
-#: virtinst/VirtualGraphics.py:65
+#: virtinst/VirtualGraphics.py:67
 msgid "Keymap can only contain alphanumeric, '_', or '-' characters"
 msgstr ""
 
-#: virtinst/VirtualGraphics.py:76
+#: virtinst/VirtualGraphics.py:78
 msgid ""
 "VNC port must be a number between 5900 and 65535, or -1 for auto allocation"
 msgstr ""
 
-#: virtinst/VirtualHostDevice.py:39
+#: virtinst/VirtualHostDevice.py:43
 msgid "'name' or 'nodedev' required."
 msgstr ""
 
-#: virtinst/VirtualHostDevice.py:58
+#: virtinst/VirtualHostDevice.py:62
 #, python-format
 msgid "Node device type '%s' cannot be attached to  guest."
 msgstr ""
 
-#: virtinst/VirtualHostDevice.py:124
+#: virtinst/VirtualHostDevice.py:130
 msgid "'nodedev' must be a USBDevice instance."
 msgstr ""
 
-#: virtinst/VirtualHostDevice.py:140
+#: virtinst/VirtualHostDevice.py:146
 msgid "'vendor' and 'product', or 'bus' and  'device' are required."
 msgstr ""
 
-#: virtinst/VirtualHostDevice.py:173
+#: virtinst/VirtualHostDevice.py:179
 msgid "'nodedev' must be a PCIDevice instance."
 msgstr ""
 
-#: virtinst/VirtualHostDevice.py:182
+#: virtinst/VirtualHostDevice.py:188
 msgid "'domain', 'bus', 'slot', and 'function' must be specified."
 msgstr ""
 
-#: virtinst/VirtualHostDevice.py:207
+#: virtinst/VirtualHostDevice.py:215
 #, python-format
 msgid "Could not detach PCI device: %s"
 msgstr ""
 
-#: virtinst/VirtualNetworkInterface.py:40
-msgid "MAC address must be a string."
+#: virtinst/VirtualInputDevice.py:46
+#, python-format
+msgid "Unknown input type '%s'."
 msgstr ""
 
-#: virtinst/VirtualNetworkInterface.py:46
-msgid "MAC address must be of the format AA:BB:CC:DD:EE:FF"
+#: virtinst/VirtualInputDevice.py:54
+#, python-format
+msgid "Unknown input bus '%s'."
+msgstr ""
+
+#: virtinst/VirtualNetworkInterface.py:45
+msgid "Shared physical device"
+msgstr ""
+
+#: virtinst/VirtualNetworkInterface.py:47
+msgid "Virtual networking"
+msgstr ""
+
+#: virtinst/VirtualNetworkInterface.py:49
+msgid "Usermode networking"
+msgstr ""
+
+#: virtinst/VirtualNetworkInterface.py:51
+#, python-format
+msgid "Unknown network type '%s'"
 msgstr ""
 
-#: virtinst/VirtualNetworkInterface.py:57
+#: virtinst/VirtualNetworkInterface.py:72
 msgid "A network name was not provided"
 msgstr ""
 
-#: virtinst/VirtualNetworkInterface.py:63
+#: virtinst/VirtualNetworkInterface.py:78
 #, python-format
 msgid "Unknown network type %s"
 msgstr ""
 
-#: virtinst/VirtualNetworkInterface.py:79
+#: virtinst/VirtualNetworkInterface.py:90
+msgid "MAC address must be a string."
+msgstr ""
+
+#: virtinst/VirtualNetworkInterface.py:94
+msgid "MAC address must be of the format AA:BB:CC:DD:EE:FF"
+msgstr ""
+
+#: virtinst/VirtualNetworkInterface.py:113
 #, python-format
 msgid "Virtual network '%s' does not exist: %s"
 msgstr ""
 
-#: virtinst/VirtualNetworkInterface.py:82
+#: virtinst/VirtualNetworkInterface.py:116
 #, python-format
 msgid "Virtual network '%s' has not been started."
 msgstr ""
 
-#: virtinst/VirtualNetworkInterface.py:105
+#: virtinst/VirtualNetworkInterface.py:139
 msgid ""
 "The MAC address you entered is already in use by another active virtual "
 "machine."
 msgstr ""
 
-#: virtinst/VirtualNetworkInterface.py:108
+#: virtinst/VirtualNetworkInterface.py:142
 msgid ""
 "The MAC address you entered conflicts with a device on the physical host."
 msgstr ""
 
-#: virtinst/VirtualNetworkInterface.py:110
+#: virtinst/VirtualNetworkInterface.py:144
 msgid ""
 "The MAC address you entered is already in use by another inactive virtual "
 "machine."
 msgstr ""
 
-#: virtconv/diskcfg.py:242
+#: virtconv/diskcfg.py:251
 #, python-format
 msgid "Cannot convert to disk format %s"
 msgstr ""
 
-#: virtconv/diskcfg.py:255
+#: virtconv/diskcfg.py:264
 #, python-format
 msgid "Cannot convert disk with absolute path %s"
 msgstr ""
@@ -1155,6 +1425,28 @@ msgstr ""
 msgid "Disk %s:%s storage does not exist"
 msgstr ""
 
+#: virtconv/parsers/ovf.py:212
+#, python-format
+msgid "Didn't find parent bus for disk '%s'"
+msgstr ""
+
+#: virtconv/parsers/ovf.py:226 virtconv/parsers/ovf.py:242
+#, python-format
+msgid "Unknown reference id '%s' for path %s."
+msgstr ""
+
+#: virtconv/parsers/ovf.py:235
+#, python-format
+msgid "Unknown storage path type %s."
+msgstr ""
+
+#: virtconv/parsers/ovf.py:396
+#, python-format
+msgid ""
+"OVF section '%s' is listed as required, but parser doesn't know how to "
+"handle it."
+msgstr ""
+
 #: virtconv/parsers/virtimage.py:212
 #, python-format
 msgid "Couldn't import file '%s': %s"
@@ -1183,120 +1475,119 @@ msgstr ""
 msgid "No displayName defined in \"%s\""
 msgstr ""
 
-#: virt-clone:43
+#: virt-clone:47
 msgid "What is the name for the cloned virtual machine?"
 msgstr ""
 
-#: virt-clone:61
-msgid "What is the name of the original virtual machine?"
-msgstr ""
-
-#: virt-clone:102
-#, python-format
-msgid "What would you like to use as the cloned disk (file path) for '%s'?"
+#: virt-clone:48
+msgid "A name is required for the new virtual machine."
 msgstr ""
 
-#: virt-clone:113
-#, python-format
-msgid "This will overwrite the existing path '%s'!\n"
+#: virt-clone:65
+msgid "What is the name of the original virtual machine?"
 msgstr ""
 
-#: virt-clone:115
-msgid "Do you really want to use this disk (yes or no)?"
+#: virt-clone:66
+msgid "An original machine name or xml file is required."
 msgstr ""
 
-#: virt-clone:120 virt-install:206 virt-install.orig:206
+#: virt-clone:112
 #, python-format
-msgid "Disk %s is already in use by another guest!\n"
-msgstr ""
-
-#: virt-clone:121 virt-install:207 virt-install.orig:207
-msgid "Do you really want to use the disk (yes or no)? "
+msgid "What would you like to use as the cloned disk (file path) for '%s'?"
 msgstr ""
 
-#: virt-clone:148 virt-image:88 virt-install:334 virt-install.orig:334
+#: virt-clone:134 virt-image:78 virt-install:499
 msgid "Connect to hypervisor with URI"
 msgstr ""
 
-#: virt-clone:151 virt-image:91 virt-install:337 virt-install.orig:337
+#: virt-clone:137 virt-image:81 virt-install:502
 msgid "General Options"
 msgstr ""
 
-#: virt-clone:154
+#: virt-clone:140
 msgid "Name of the original guest; The status must be shut off or paused."
 msgstr ""
 
-#: virt-clone:159
+#: virt-clone:145
 msgid "XML file to use as the original guest."
 msgstr ""
 
-#: virt-clone:162
+#: virt-clone:147
+msgid ""
+"Auto generate clone name and storage paths from the original guest "
+"configuration."
+msgstr ""
+
+#: virt-clone:151
 msgid "Name for the new guest"
 msgstr ""
 
-#: virt-clone:166
+#: virt-clone:155
 msgid "New UUID for the clone guest; Default is a randomly generated UUID"
 msgstr ""
 
-#: virt-clone:170 virt-install:415 virt-install.orig:415
+#: virt-clone:159 virt-install:588
 msgid "Storage Configuration"
 msgstr ""
 
-#: virt-clone:174
+#: virt-clone:163
 msgid "New file to use as the disk image for the new guest"
 msgstr ""
 
-#: virt-clone:179
+#: virt-clone:168
 msgid ""
 "Force to copy devices (eg, if 'hdc' is a readonly cdrom device, --force-"
 "copy=hdc)"
 msgstr ""
 
-#: virt-clone:183
+#: virt-clone:172
 msgid "Do not use a sparse file for the clone's disk image"
 msgstr ""
 
-#: virt-clone:187
+#: virt-clone:176
 msgid "Preserve a new file to use as the disk image for the new guest"
 msgstr ""
 
-#: virt-clone:191 virt-image:128 virt-install:435 virt-install.orig:435
+#: virt-clone:180 virt-image:118 virt-install:610
 msgid "Networking Configuration"
 msgstr ""
 
-#: virt-clone:195
+#: virt-clone:184
 msgid ""
 "New fixed MAC address for the clone guest. Default is a randomly generated "
 "MAC"
 msgstr ""
 
-#: virt-clone:199 virt-image:158 virt-install:470 virt-install.orig:470
+#: virt-clone:188 virt-image:138 virt-install:639
 msgid "Miscellaneous Options"
 msgstr ""
 
-#: virt-clone:201 virt-convert:91 virt-image:172 virt-install:472
-#: virt-install.orig:472
+#: virt-clone:190 virt-convert:91 virt-image:152 virt-install:641
 msgid "Print debugging information"
 msgstr ""
 
-#: virt-clone:203 virt-image:174
+#: virt-clone:192 virt-image:154 virt-install:652
+msgid "Request user input for ambiguous situations or required options."
+msgstr ""
+
+#: virt-clone:195 virt-image:157
 msgid ""
 "Do not prompt for input. Answers yes where applicable, terminates for all "
 "other prompts"
 msgstr ""
 
-#: virt-clone:219
+#: virt-clone:212
 msgid "Must be privileged to clone Xen guests"
 msgstr ""
 
-#: virt-clone:250
+#: virt-clone:242
 #, python-format
 msgid ""
 "\n"
 "Clone '%s' created successfully."
 msgstr ""
 
-#: virt-clone:265 virt-image:283 virt-install:784 virt-install.orig:784
+#: virt-clone:257 virt-image:267 virt-install:933
 msgid "Installation aborted at user request"
 msgstr ""
 
@@ -1312,11 +1603,11 @@ msgstr ""
 msgid "Output disk format"
 msgstr ""
 
-#: virt-convert:60 virt-install:386 virt-install.orig:386
+#: virt-convert:60 virt-install:557
 msgid "This guest should be a fully virtualized guest"
 msgstr ""
 
-#: virt-convert:62 virt-install:388 virt-install.orig:388
+#: virt-convert:62 virt-install:559
 msgid "This guest should be a paravirtualized guest"
 msgstr ""
 
@@ -1324,7 +1615,7 @@ msgstr ""
 msgid "Machine Architecture Type (i686/x86_64/ppc)"
 msgstr ""
 
-#: virt-convert:71 virt-install:360 virt-install.orig:360
+#: virt-convert:71 virt-install:525
 msgid ""
 "The OS type for fully virtualized guests, e.g. 'linux', 'unix', 'windows'"
 msgstr ""
@@ -1335,13 +1626,13 @@ msgid ""
 "'solaris10', 'win2k', 'vista'"
 msgstr ""
 
-#: virt-convert:78 virt-install:376 virt-install.orig:376
+#: virt-convert:78 virt-install:547
 msgid ""
 "Disables APIC for fully virtualized guest (overrides value in os-type/os-"
 "variant db)"
 msgstr ""
 
-#: virt-convert:82 virt-install:380 virt-install.orig:380
+#: virt-convert:82 virt-install:551
 msgid ""
 "Disables ACPI for fully virtualized guest (overrides value in os-type/os-"
 "variant db)"
@@ -1351,212 +1642,178 @@ msgstr ""
 msgid "Don't be verbose"
 msgstr ""
 
-#: virt-convert:97
+#: virt-convert:100
 msgid "You need to provide an input VM definition"
 msgstr ""
 
-#: virt-convert:99
+#: virt-convert:102
 msgid "Too many arguments provided"
 msgstr ""
 
-#: virt-convert:103
+#: virt-convert:106
 #, python-format
 msgid "Unknown output disk format \"%s\""
 msgstr ""
 
-#: virt-convert:118
+#: virt-convert:121
 #, python-format
 msgid "Unknown output format \"%s\")"
 msgstr ""
 
-#: virt-convert:120
+#: virt-convert:123
 #, python-format
 msgid "No output handler for format \"%s\")"
 msgstr ""
 
-#: virt-convert:124
+#: virt-convert:127
 #, python-format
 msgid "Couldn't access input argument \"%s\"\n"
 msgstr ""
 
-#: virt-convert:131
+#: virt-convert:134
 #, python-format
 msgid "Couldn't determine input format for \"%s\": %s"
 msgstr ""
 
-#: virt-convert:136
+#: virt-convert:139
 #, python-format
 msgid "Unknown input format \"%s\")"
 msgstr ""
 
-#: virt-convert:138
+#: virt-convert:141
 #, python-format
 msgid "No input handler for format \"%s\""
 msgstr ""
 
-#: virt-convert:173
+#: virt-convert:176
 #, python-format
 msgid "Couldn't clean up output directory \"%s\": %s"
 msgstr ""
 
-#: virt-convert:190 virt-convert:193
+#: virt-convert:192 virt-convert:195
 #, python-format
 msgid "Couldn't import file \"%s\": %s"
 msgstr ""
 
-#: virt-convert:230
+#: virt-convert:232
 #, python-format
 msgid "Generating output in '%(format)s' format to %(dir)s/"
 msgstr ""
 
-#: virt-convert:249
+#: virt-convert:251
 #, python-format
 msgid "Converting disk '%(path)s' to type %(format)s..."
 msgstr ""
 
-#: virt-convert:256 virt-convert:259
+#: virt-convert:258 virt-convert:261
 #, python-format
 msgid "Couldn't convert disks: %s"
 msgstr ""
 
-#: virt-convert:265
+#: virt-convert:267
 #, python-format
 msgid "Couldn't export to file \"%s\": %s"
 msgstr ""
 
-#: virt-convert:277
+#: virt-convert:279
 msgid "Aborted at user request"
 msgstr ""
 
-#: virt-image:64
+#: virt-image:50
 #, python-format
 msgid ""
 "Warning: more networks were provided [%i] then nics required [%i]. All "
-"extras are ignored"
+"extras are ignored."
 msgstr ""
 
-#: virt-image:68
+#: virt-image:55
 #, python-format
-msgid "The image requires %i network interface"
+msgid "The image requires %i network interface."
 msgstr ""
 
-#: virt-image:94 virt-install:340 virt-install.orig:340
+#: virt-image:84 virt-install:505
 msgid "Name of the guest instance"
 msgstr ""
 
-#: virt-image:96 virt-install:342 virt-install.orig:342
+#: virt-image:86 virt-install:507
 msgid "Memory to allocate for guest instance in megabytes"
 msgstr ""
 
-#: virt-image:100 virt-install:349 virt-install.orig:349
+#: virt-image:90 virt-install:514
 msgid "UUID for the guest."
 msgstr ""
 
-#: virt-image:102 virt-install:351 virt-install.orig:351
+#: virt-image:92 virt-install:516
 msgid "Number of vcpus to configure for your guest"
 msgstr ""
 
-#: virt-image:104 virt-install:353 virt-install.orig:353
+#: virt-image:94 virt-install:518
 msgid "Check that vcpus do not exceed physical CPUs and warn if they do."
 msgstr ""
 
-#: virt-image:108 virt-install:357 virt-install.orig:357
+#: virt-image:98 virt-install:522
 msgid "Set which physical CPUs Domain can use."
 msgstr ""
 
-#: virt-image:111
+#: virt-image:101
 msgid "The OS type being installed, e.g. 'linux', 'unix', 'windows'"
 msgstr ""
 
-#: virt-image:115
+#: virt-image:105
 msgid ""
 "The OS variant being installed, e.g. 'fedora6', 'rhel5', 'solaris10', 'win2k'"
 msgstr ""
 
-#: virt-image:119 virt-install:371 virt-install.orig:371
+#: virt-image:109 virt-install:542
 msgid "Full Virtualization specific options"
 msgstr ""
 
-#: virt-image:122
+#: virt-image:112
 msgid "Disables APIC for fully virtualized guest"
 msgstr ""
 
-#: virt-image:125
+#: virt-image:115
 msgid "Disables ACPI for fully virtualized guest"
 msgstr ""
 
-#: virt-image:131 virt-install:438 virt-install.orig:438
-msgid ""
-"Bridge to connect guest NIC to; if none given, will try to determine the "
-"default"
-msgstr ""
-
-#: virt-image:135 virt-install:442 virt-install.orig:442
-msgid ""
-"Connect the guest to a virtual network, forwarding to the physical network "
-"with NAT"
-msgstr ""
-
-#: virt-image:139 virt-install:446 virt-install.orig:446
+#: virt-image:121
 msgid ""
-"Fixed MAC address for the guest; if none or RANDOM is given a random address "
-"will be used"
-msgstr ""
-
-#: virt-image:143 virt-install:452 virt-install.orig:452
-msgid "Graphics Configuration"
-msgstr ""
-
-#: virt-image:145 virt-install:454 virt-install.orig:454
-msgid "Use VNC for graphics support"
+"Specify a network interface. Ex:\n"
+"--network bridge=mybr0\n"
+"--network network=libvirt_network_name\n"
+"--network network=mynet,model=e1000,mac=00:11..."
 msgstr ""
 
-#: virt-image:147 virt-install:456 virt-install.orig:456
-msgid "Port to use for VNC"
-msgstr ""
-
-#: virt-image:149 virt-install:458 virt-install.orig:458
-msgid "Use SDL for graphics support"
-msgstr ""
-
-#: virt-image:151 virt-install:460 virt-install.orig:460
-msgid "Don't set up a graphical console for the guest."
-msgstr ""
-
-#: virt-image:154 virt-install:467 virt-install.orig:467
-msgid "set up keymap for a graphical console"
-msgstr ""
-
-#: virt-image:160
+#: virt-image:140
 msgid "Print the libvirt XML, but do not start the domain"
 msgstr ""
 
-#: virt-image:163
+#: virt-image:143
 msgid "The zero-based index of the boot record to use"
 msgstr ""
 
-#: virt-image:165
+#: virt-image:145
 msgid "Overwrite, or destroy, an existing image with the same name"
 msgstr ""
 
-#: virt-image:170
+#: virt-image:150
 msgid "Skip disk checksum verification process"
 msgstr ""
 
-#: virt-image:182
+#: virt-image:165
 msgid "You need to provide an image XML descriptor"
 msgstr ""
 
-#: virt-image:200
+#: virt-image:184
 msgid "Cannot parse"
 msgstr ""
 
-#: virt-image:205
+#: virt-image:189
 #, python-format
 msgid "The index for --boot must be between 0 and %d"
 msgstr ""
 
-#: virt-image:261
+#: virt-image:245
 #, python-format
 msgid ""
 "\n"
@@ -1564,11 +1821,11 @@ msgid ""
 "Creating guest %s..."
 msgstr ""
 
-#: virt-image:265
+#: virt-image:249
 msgid "Guest creation failed"
 msgstr ""
 
-#: virt-image:271
+#: virt-image:255
 #, python-format
 msgid ""
 "Domain creation may not have been\n"
@@ -1577,234 +1834,262 @@ msgid ""
 "restart your installation."
 msgstr ""
 
-#: virt-install:70 virt-install.orig:70
+#: virt-install:84
 #, python-format
 msgid "Couldn't create default storage pool '%s': %s"
 msgstr ""
 
-#: virt-install:93 virt-install.orig:93
-msgid "--disk path must start with path=, pool=, or vol=."
+#: virt-install:107
+#, python-format
+msgid "%(chartype)s type %(devtype)s does not support '%(optname)s' option."
 msgstr ""
 
-#: virt-install:121 virt-install:133 virt-install.orig:121
-#: virt-install.orig:133
+#: virt-install:133
 #, python-format
-msgid "Unknown '%s' value '%s'"
+msgid "Unknown option(s) %s"
 msgstr ""
 
-#: virt-install:126 virt-install.orig:126
+#: virt-install:147
 #, python-format
-msgid "Improper value for 'size': %s"
+msgid "Error in %(chartype)s device parameters: %(err)s"
 msgstr ""
 
-#: virt-install:137 virt-install.orig:137
+#: virt-install:170
+msgid "--disk path must start with path=, pool=, or vol=."
+msgstr ""
+
+#: virt-install:177
 #, python-format
 msgid "Unknown --disk option '%s'."
 msgstr ""
 
-#: virt-install:147 virt-install.orig:147
-msgid "Size must be specified with all 'pool='"
+#: virt-install:185 virt-install:197
+#, python-format
+msgid "Unknown '%s' value '%s'"
 msgstr ""
 
-#: virt-install:160 virt-install.orig:160
-msgid "Storage volume must be specified as pool=poolname/volname"
+#: virt-install:190
+#, python-format
+msgid "Improper value for 'size': %s"
 msgstr ""
 
-#: virt-install:202 virt-install.orig:202
-#, python-format
-msgid "Error with storage parameters: %s"
+#: virt-install:212
+msgid "Size must be specified with all 'pool='"
 msgstr ""
 
-#: virt-install:214 virt-install.orig:214
-msgid " Do you really want to use the disk (yes or no)?"
+#: virt-install:226
+msgid "Storage volume must be specified as vol=poolname/volname"
 msgstr ""
 
-#: virt-install:222 virt-install.orig:222
-msgid "Cannot use --file, --size, or --disk with --nodisks"
+#: virt-install:282
+msgid "Cannot use --file, --file-size, or --disk with --nodisks"
 msgstr ""
 
-#: virt-install:225 virt-install.orig:225
+#: virt-install:285
 msgid ""
 "Cannot mix --file, --nonsparse, or --file-size with --disk options. Please "
 "see the manual for --disk syntax."
 msgstr ""
 
-#: virt-install:228 virt-install.orig:228
+#: virt-install:288
 msgid "A disk must be specified (use --nodisks to override)"
 msgstr ""
 
-#: virt-install:236 virt-install.orig:236
+#: virt-install:296
 msgid "Need to pass size for each disk"
 msgstr ""
 
-#: virt-install:251 virt-install.orig:251
+#: virt-install:311
 msgid "Cannot use --mac with --nonetworks"
 msgstr ""
 
-#: virt-install:253 virt-install.orig:253
+#: virt-install:313
 msgid "Cannot use --bridges with --nonetworks"
 msgstr ""
 
-#: virt-install:255 virt-install.orig:255
+#: virt-install:315
 msgid "Cannot use --network with --nonetworks"
 msgstr ""
 
-#: virt-install:275 virt-install.orig:275
+#: virt-install:342
+msgid ""
+"Would you like a fully virtualized guest (yes or no)? This will allow you to "
+"run unmodified operating systems."
+msgstr ""
+
+#: virt-install:367
+#, python-format
+msgid "Would you like to use %s acceleration? (yes or no)"
+msgstr ""
+
+#: virt-install:379
+msgid "Can't do both --hvm and --paravirt"
+msgstr ""
+
+#: virt-install:401 virt-install:402
+msgid "default"
+msgstr ""
+
+#: virt-install:423
 #, python-format
 msgid "Only one install method (%s) can be used"
 msgstr ""
 
-#: virt-install:281 virt-install.orig:281
+#: virt-install:429
 msgid "Network PXE boot is not supported for paravirtualized guests"
 msgstr ""
 
-#: virt-install:284 virt-install.orig:284
+#: virt-install:432
 msgid "Paravirtualized guests cannot install off cdrom media."
 msgstr ""
 
-#: virt-install:287 virt-install.orig:287
+#: virt-install:435
 msgid "--location can not be specified for remote connections."
 msgstr ""
 
-#: virt-install:296 virt-install.orig:296
+#: virt-install:444
 #, python-format
 msgid "One of %s, or cdrom media must be specified."
 msgstr ""
 
-#: virt-install:314 virt-install.orig:314
+#: virt-install:457
 #, python-format
 msgid "Error creating cdrom disk: %s"
 msgstr ""
 
-#: virt-install:346 virt-install.orig:346
+#: virt-install:462
+msgid "What is the install CD-ROM/ISO or URL?"
+msgstr ""
+
+#: virt-install:464
+msgid "What is the install URL?"
+msgstr ""
+
+#: virt-install:511
 msgid "The CPU architecture to simulate"
 msgstr ""
 
-#: virt-install:364 virt-install.orig:364
+#: virt-install:529
 msgid ""
 "The OS variant for fully virtualized guests, e.g. 'fedora6', 'rhel5', "
 "'solaris10', 'win2k'"
 msgstr ""
 
-#: virt-install:368 virt-install.orig:368
+#: virt-install:533
+msgid "Add a serial device to the domain."
+msgstr ""
+
+#: virt-install:536
+msgid "Add a parallel device to the domain."
+msgstr ""
+
+#: virt-install:539
 msgid "Physical host device to attach to the domain."
 msgstr ""
 
-#: virt-install:373 virt-install.orig:373
+#: virt-install:544
 msgid "Use sound device emulation"
 msgstr ""
 
-#: virt-install:384 virt-install.orig:384
+#: virt-install:555
 msgid "Virtualization Type Options"
 msgstr ""
 
-#: virt-install:391 virt-install.orig:391
-msgid "Use kernel acceleration capabilities (kvm, kqemu, ...)"
+#: virt-install:562
+msgid "Hypervisor name to use (kvm, qemu, xen, ...)"
 msgstr ""
 
-#: virt-install:395 virt-install.orig:395
+#: virt-install:568
 msgid "Installation Method Options"
 msgstr ""
 
-#: virt-install:398 virt-install.orig:398
+#: virt-install:571
 msgid "CD-ROM installation media"
 msgstr ""
 
-#: virt-install:401 virt-install.orig:401
+#: virt-install:574
 msgid ""
 "Installation source (eg, nfs:host:/path, http://host/path, ftp://host/path)"
 msgstr ""
 
-#: virt-install:404 virt-install.orig:404
+#: virt-install:577
 msgid "Boot from the network using the PXE protocol"
 msgstr ""
 
-#: virt-install:406 virt-install.orig:406
+#: virt-install:579
 msgid "Build guest around an existing disk image"
 msgstr ""
 
-#: virt-install:408 virt-install.orig:408
+#: virt-install:581
 msgid "Treat the CD-ROM media as a Live CD"
 msgstr ""
 
-#: virt-install:411 virt-install.orig:411
+#: virt-install:584
 msgid "Additional arguments to pass to the kernel booted from --location"
 msgstr ""
 
-#: virt-install:418 virt-install.orig:418
-msgid "Specify storage to use as a disk with various options."
-msgstr ""
-
-#: virt-install:422 virt-install.orig:422
-msgid "File to use as the disk image"
+#: virt-install:591
+msgid ""
+"Specify storage with various options. Ex.\n"
+"--disk path=/my/existing/disk\n"
+"--disk path=/my/new/disk,size=5 (in gigabytes)\n"
+"--disk vol=poolname:volname,device=cdrom,bus=scsi,..."
 msgstr ""
 
-#: virt-install:425 virt-install.orig:425
-msgid "Size of the disk image (if it doesn't exist) in gigabytes"
+#: virt-install:596
+msgid "Don't set up any disks for the guest."
 msgstr ""
 
-#: virt-install:429 virt-install.orig:429
+#: virt-install:613
 msgid ""
-"Don't use sparse files for disks.  Note that this will be significantly "
-"slower for guest creation"
+"Specify a network interface. Ex:\n"
+"--network bridge=mybr0\n"
+"--network network=my_libvirt_virtual_net\n"
+"--network network=mynet,model=virtio,mac=00:11..."
 msgstr ""
 
-#: virt-install:432 virt-install.orig:432
-msgid "Don't set up any disks for the guest."
+#: virt-install:618
+msgid "Don't create network interfaces for the guest."
 msgstr ""
 
-#: virt-install:449 virt-install.orig:449
-msgid "Don't create network interfaces for the guest."
+#: virt-install:632
+msgid "Specify video hardware type."
 msgstr ""
 
-#: virt-install:463 virt-install.orig:463
+#: virt-install:635
 msgid "Don't automatically try to connect to the guest console"
 msgstr ""
 
-#: virt-install:474 virt-install.orig:474
+#: virt-install:643
 msgid "Disables the automatic rebooting when the installation is complete."
 msgstr ""
 
-#: virt-install:477 virt-install.orig:477
+#: virt-install:646
 msgid "Time to wait (in minutes)"
 msgstr ""
 
-#: virt-install:479 virt-install.orig:479
+#: virt-install:648
 msgid "Forces 'yes' for any applicable prompts, terminates for all others"
 msgstr ""
 
-#: virt-install:483 virt-install.orig:483
-msgid ""
-"Request user input for ambiguous situations. Default is false, so will "
-"terminate if a prompt would typically be fired. "
-msgstr ""
-
-#: virt-install:503 virt-install.orig:503
+#: virt-install:671
 msgid ""
 "Unable to connect to graphical console: virt-viewer not installed. Please "
 "install the 'virt-viewer' package."
 msgstr ""
 
-#: virt-install:536 virt-install.orig:536
-msgid "Can't do both --hvm and --paravirt"
-msgstr ""
-
-#: virt-install:548 virt-install.orig:548
-msgid "default"
-msgstr ""
-
-#: virt-install:570 virt-install.orig:570
+#: virt-install:713
 msgid "Can't use --pxe with --nonetworks"
 msgstr ""
 
-#: virt-install:671 virt-install.orig:671
+#: virt-install:818
 msgid ""
 "\n"
 "\n"
 "Starting install..."
 msgstr ""
 
-#: virt-install:682 virt-install.orig:682
+#: virt-install:829
 #, python-format
 msgid ""
 "Domain installation does not appear to have been\n"
@@ -1813,22 +2098,22 @@ msgid ""
 " restart your installation."
 msgstr ""
 
-#: virt-install:693 virt-install.orig:693
+#: virt-install:840
 #, python-format
 msgid ""
 "Guest installation complete... you can restart your domain\n"
 "by running 'virsh start %s'"
 msgstr ""
 
-#: virt-install:697 virt-install.orig:697
+#: virt-install:844
 msgid "Guest installation complete... restarting guest."
 msgstr ""
 
-#: virt-install:703 virt-install.orig:703
+#: virt-install:850
 msgid "Guest install interrupted."
 msgstr ""
 
-#: virt-install:710 virt-install.orig:710
+#: virt-install:857
 #, python-format
 msgid ""
 "Domain installation may not have been\n"
@@ -1837,36 +2122,36 @@ msgid ""
 " restart your installation."
 msgstr ""
 
-#: virt-install:736 virt-install.orig:736
+#: virt-install:883
 msgid "Guest installation failed."
 msgstr ""
 
-#: virt-install:746 virt-install.orig:746
+#: virt-install:893
 #, python-format
 msgid "%d minutes "
 msgstr ""
 
-#: virt-install:748 virt-install.orig:748
+#: virt-install:895
 #, python-format
 msgid ""
-"Domain installation still in progress. Waiting %sfor domain to complete "
-"installation."
+"Domain installation still in progress. Waiting %sfor installation to "
+"complete."
 msgstr ""
 
-#: virt-install:754 virt-install.orig:754
+#: virt-install:901
 msgid "Domain has shutdown. Continuing."
 msgstr ""
 
-#: virt-install:761 virt-install.orig:761
+#: virt-install:908
 #, python-format
 msgid "Could not lookup domain after install: %s"
 msgstr ""
 
-#: virt-install:768 virt-install.orig:768
+#: virt-install:915
 msgid "Installation has exceeded specified time limit. Exiting application."
 msgstr ""
 
-#: virt-install:772 virt-install.orig:772
+#: virt-install:921
 msgid ""
 "Domain installation still in progress. You can reconnect to \n"
 "the console to complete the installation process."
diff --git a/po/zh_CN.po b/po/zh_CN.po
index c1875cc..293aded 100644
--- a/po/zh_CN.po
+++ b/po/zh_CN.po
@@ -1,14 +1,14 @@
-# translation of virtinst.tip.po to Simplified Chinese
+# translation of virt-inst.tip.po to Simplified Chinese
 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
 # This file is distributed under the same license as the PACKAGE package.
 #
-# Leah Liu <lliu at redhat.com>, 2008.
+# Leah Liu <lliu at redhat.com>, 2008, 2009.
 msgid ""
 msgstr ""
-"Project-Id-Version: virtinst.tip\n"
+"Project-Id-Version: virt-inst.tip\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-03-09 20:41-0400\n"
-"PO-Revision-Date: 2008-10-20 15:12+1000\n"
+"POT-Creation-Date: 2009-07-28 20:34-0400\n"
+"PO-Revision-Date: 2009-04-06 12:51+1000\n"
 "Last-Translator: Leah Liu <lliu at redhat.com>\n"
 "Language-Team: Simplified Chinese <zh at li.org>\n"
 "MIME-Version: 1.0\n"
@@ -16,380 +16,431 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "X-Generator: KBabel 1.11.4\n"
 
-#: virtinst/CapabilitiesParser.py:168
-#, fuzzy, python-format
+#: virtinst/CapabilitiesParser.py:172
+#, python-format
 msgid "No domains available for virt type '%(type)s', arch %(arch)s."
-msgstr "这个客户端没有可用的域。"
+msgstr "虚拟类型 '%(type)s',构架 %(arch)s 没有可用的域。"
 
-#: virtinst/CapabilitiesParser.py:393
+#: virtinst/CapabilitiesParser.py:412
 #, python-format
 msgid "for arch '%s'"
 msgstr "构架 '%s'"
 
-#: virtinst/CapabilitiesParser.py:397
-#, fuzzy, python-format
+#: virtinst/CapabilitiesParser.py:416
+#, python-format
 msgid "virtualization type '%s'"
-msgstr "不支持的虚拟化类型 '%s'"
+msgstr "虚拟化类型 '%s'"
 
-#: virtinst/CapabilitiesParser.py:399
-#, fuzzy
+#: virtinst/CapabilitiesParser.py:418
 msgid "any virtualization options"
-msgstr "虚拟化类型选项"
+msgstr "任意虚拟化选项"
 
-#: virtinst/CapabilitiesParser.py:401
+#: virtinst/CapabilitiesParser.py:420
 #, python-format
 msgid "Host does not support %(virttype)s %(arch)s"
-msgstr ""
+msgstr "主机不支持 %(virttype)s %(arch)s"
 
-#: virtinst/CapabilitiesParser.py:414
+#: virtinst/CapabilitiesParser.py:433
 #, python-format
 msgid ""
 "Host does not support domain type '%(domain)s' for virtualization type '%"
 "(virttype)s' arch '%(arch)s'"
 msgstr ""
+"主机不为虚拟化类型 '%(virttype)s' arch '%(arch)s' 支持域类型 '%(domain)s'"
 
-#: virtinst/cli.py:117
+#: virtinst/cli.py:152
 msgid "Exiting at user request."
 msgstr "根据用户要求退出。"
 
-#: virtinst/cli.py:122
+#: virtinst/cli.py:159
 msgid "Must be root to create Xen guests"
 msgstr "必须是根用户才可创建 Xen 客户端"
 
-#: virtinst/cli.py:124
-msgid "Could not find usable default libvirt connection."
-msgstr "无法找到可用默认 libvirt 连接。"
+#: virtinst/cli.py:297
+msgid "(use --prompt to run interactively)"
+msgstr ""
 
-#: virtinst/cli.py:146
-#, python-format
-msgid "Force flag is set but input was required. Prompt was: %s"
-msgstr "设置了 Force 标签参需要输入。提示为:%s"
+#: virtinst/cli.py:317
+msgid " (Use --prompt or --force to override)"
+msgstr ""
 
-#: virtinst/cli.py:149
-#, python-format
-msgid "Prompting disabled, but input was requested. Prompt was: %s"
-msgstr "禁用提示,但需要输入。提示为:%s"
+#: virtinst/cli.py:352
+msgid "Graphics Configuration"
+msgstr "图形配置"
+
+#: virtinst/cli.py:354
+msgid "Use VNC for graphics support"
+msgstr "用 VNC 进行图形支持"
+
+#: virtinst/cli.py:356
+msgid "Port to use for VNC"
+msgstr "VNC 使用的端口"
+
+#: virtinst/cli.py:358
+msgid "Address to listen on for VNC connections."
+msgstr ""
+
+#: virtinst/cli.py:361
+#, fuzzy
+msgid "set up keymap for the VNC console"
+msgstr "为图形控制台设置 keymap"
+
+#: virtinst/cli.py:363
+msgid "Use SDL for graphics support"
+msgstr "用 SDL 进行图形支持"
+
+#: virtinst/cli.py:365
+msgid "Don't set up a graphical console for the guest."
+msgstr "不要为该客户端设置图形控制台。"
 
-#: virtinst/cli.py:169
+#: virtinst/cli.py:388
+#, fuzzy
+msgid "A disk path must be specified."
+msgstr "必须指定一个磁盘设备。"
+
+#: virtinst/cli.py:390
+#, fuzzy
+msgid "What would you like to use as the disk (file path)?"
+msgstr "作为克隆的磁盘(文件路径)您希望如何使用 '%s'?"
+
+#: virtinst/cli.py:392
 #, python-format
 msgid ""
-"Prompting disabled, but yes/no was requested. Try --force to force 'yes' for "
-"such prompts. Prompt was: %s"
+"Please enter the path to the file you would like to use for storage. It will "
+"have size %sGB."
+msgstr ""
+
+#: virtinst/cli.py:401
+#, fuzzy
+msgid "A size must be specified for non-existent disks."
+msgstr "必须为非现有卷路径 '%s' 指定大小"
+
+#: virtinst/cli.py:403
+#, python-format
+msgid "How large would you like the disk (%s) to be (in gigabytes)?"
 msgstr ""
-"禁用提示,但需要输入 yes/no。请为这种提示尝试使用 --force 强制为 'yes'。提示"
-"为:%s"
 
-#: virtinst/cli.py:179 virt-clone:48 virt-clone:69 virt-clone:108
-msgid "ERROR: "
-msgstr "错误:"
+#: virtinst/cli.py:424 virt-install:274
+#, python-format
+msgid "Error with storage parameters: %s"
+msgstr "存储参数错误:%s"
+
+#: virtinst/cli.py:426
+#, fuzzy
+msgid "Do you really want to use this disk (yes or no)"
+msgstr "您确实要使用这个磁盘吗(是或者否)?"
+
+#: virtinst/cli.py:430
+#, python-format
+msgid "This will overwrite the existing path '%s'!\n"
+msgstr "这将会覆盖当前路径 '%s'!\n"
+
+#: virtinst/cli.py:437
+#, python-format
+msgid "Disk %s is already in use by another guest!\n"
+msgstr "磁盘 %s 已经被其它客户端使用!\n"
+
+#: virtinst/cli.py:464
+#, fuzzy
+msgid "What is the name of your virtual machine?"
+msgstr "原始虚拟机的名称是什么?"
 
-#: virtinst/cli.py:189
+#: virtinst/cli.py:465
 msgid "A name is required for the virtual machine."
 msgstr "虚拟机需要一个名称。"
 
-#: virtinst/cli.py:197
+#: virtinst/cli.py:472
+msgid "How much RAM should be allocated (in megabytes)?"
+msgstr ""
+
+#: virtinst/cli.py:473
 msgid "Memory amount is required for the virtual machine."
 msgstr "虚拟机需要内存数。"
 
-#: virtinst/cli.py:199
+#: virtinst/cli.py:477
 #, python-format
 msgid "Installs currently require %d megs of RAM."
 msgstr "安装目前需要 %d MB 内存。"
 
-#: virtinst/cli.py:219
-#, python-format
+#: virtinst/cli.py:498
+#, fuzzy, python-format
 msgid ""
 "You have asked for more virtual CPUs (%d) than there are physical CPUs (%d) "
-"on the host. This will work, but performance will be poor. Are you sure? "
-"(yes or no)"
+"on the host. This will work, but performance will be poor. "
 msgstr ""
 "您要求的虚拟 CPU 数(%d)已经超过了主机中的物理 CPU(%d)。这样也可以,但性能"
 "会很差。您确定要这样吗?(是或否)"
 
-#: virtinst/cli.py:276
-msgid "Unknown network type "
-msgstr "未知物理类型"
+#: virtinst/cli.py:501
+msgid "Are you sure? (yes or no)"
+msgstr ""
+
+#: virtinst/cli.py:612
+#, fuzzy, python-format
+msgid "Unknown network option '%s'"
+msgstr "未知网络类型 %s"
 
-#: virtinst/cli.py:293
+#: virtinst/cli.py:630
 msgid "Cannot mix both --bridge and --network arguments"
 msgstr "不能混合使用 --bridge 和 --network 参数"
 
-#: virtinst/cli.py:310
-msgid "Need to pass equal numbers of networks & mac addresses"
-msgstr "需要给出等量的网络和 mac 地址"
+#: virtinst/cli.py:645
+#, fuzzy
+msgid "Cannot pass more mac addresses than networks."
+msgstr "不能使用带 --nonetworks 的 --mac"
 
-#: virtinst/cli.py:332
+#: virtinst/cli.py:672
 msgid "Can't specify more than one of VNC, SDL, or --nographics"
 msgstr "无法指定超过一个 VNC、SDL 或者 --nographics"
 
-#: virtinst/cli.py:376 virtinst/cli.py:381 virt-install:320 virt-install:325
-#: virt-install.orig:320 virt-install.orig:325
+#: virtinst/cli.py:700
+#, python-format
+msgid "Didn't match keymap '%s' in keytable!"
+msgstr ""
+
+#: virtinst/cli.py:731 virtinst/cli.py:736
 #, python-format
 msgid "%s option requires an argument"
 msgstr "%s 选项需要参数"
 
-#: virtinst/CloneManager.py:54
-#, fuzzy
+#: virtinst/CloneManager.py:109
 msgid "Connection must be a 'virConnect' instance."
-msgstr "'conn' 必须是一个 virConnect 事件。"
+msgstr "连接必须是一个 'virConnect' 事件。"
 
-#: virtinst/CloneManager.py:102
-#, fuzzy
+#: virtinst/CloneManager.py:162
 msgid "Original xml must be a string."
-msgstr "操作系统变体必须是一个字符串。"
+msgstr "原始 xml 必须是一个字符串。"
 
-#: virtinst/CloneManager.py:114
+#: virtinst/CloneManager.py:177
 #, python-format
 msgid "Invalid name for new guest: %s"
 msgstr "新客户端的无效名称:%s"
 
-#: virtinst/CloneManager.py:119
-#, fuzzy, python-format
+#: virtinst/CloneManager.py:182
+#, python-format
 msgid "Domain name '%s' already in use."
-msgstr "域名 %s 以存在!"
+msgstr "域名 %s 已在使用。"
 
-#: virtinst/CloneManager.py:131
+#: virtinst/CloneManager.py:195
 #, python-format
 msgid "Invalid uuid for new guest: %s"
 msgstr "新客户端的无效 uuid:%s"
 
-#: virtinst/CloneManager.py:134
-#, fuzzy, python-format
+#: virtinst/CloneManager.py:198
+#, python-format
 msgid "UUID '%s' is in use by another guest."
-msgstr "磁盘 %s 已经被其它客户端使用!\n"
+msgstr "UUID '%s' 已经被其它客体使用。"
 
-#: virtinst/CloneManager.py:149
-#, fuzzy, python-format
+#: virtinst/CloneManager.py:226
+#, python-format
 msgid "Could not use path '%s' for cloning: %s"
-msgstr "无法启动存储池:%s"
+msgstr "无法使用路径 '%s' 克隆:%s"
 
-#: virtinst/CloneManager.py:235
-#, fuzzy
-msgid "Original guest name or xml is required."
-msgstr "需要主机名"
+#: virtinst/CloneManager.py:356
+msgid "Cloning policy must be a list of rules."
+msgstr ""
 
-#: virtinst/CloneManager.py:253
-#, fuzzy
-msgid "Cannot clone remote VM storage."
-msgstr "连接不支持远程存储。"
+#: virtinst/CloneManager.py:373
+msgid "Original guest name or xml is required."
+msgstr "需要原始客体名称或者 xml。"
 
-#: virtinst/CloneManager.py:261
+#: virtinst/CloneManager.py:391
 msgid "Domain with devices to clone must be paused or shutoff."
-msgstr ""
+msgstr "必须暂停或者关闭有要克隆设备的域。"
 
-#: virtinst/CloneManager.py:304
-#, fuzzy, python-format
-msgid "Missing path to use as disk clone destination for '%s'"
-msgstr "缺少为 %s 作为磁盘映像使用的新文件"
+#: virtinst/CloneManager.py:437
+#, python-format
+msgid ""
+"More disks to clone that new paths specified. (%(passed)d specified, %(need)"
+"d needed"
+msgstr ""
 
-#: virtinst/CloneManager.py:403
-#, fuzzy, python-format
+#: virtinst/CloneManager.py:557
+#, python-format
 msgid "Disk '%s' does not exist."
-msgstr "系统磁盘 %s 不存在"
+msgstr "系统磁盘 '%s' 不存在"
 
-#: virtinst/CloneManager.py:406
-#, fuzzy, python-format
+#: virtinst/CloneManager.py:568
+#, python-format
 msgid "Could not determine original disk information: %s"
-msgstr "无法找到存储池 '%s':%s"
-
-#: virtinst/CloneManager.py:474
-#, fuzzy, python-format
-msgid "Domain '%s' was not found."
-msgstr "域 %s 没有找到"
-
-#: virtinst/CloneManager.py:539
-msgid "copying to an existing vdisk is not supported"
-msgstr ""
-
-#: virtinst/CloneManager.py:547
-#, fuzzy, python-format
-msgid "Could not determine storage type for '%s'"
-msgstr "无法定义存储池:%s"
+msgstr "无法确定原始磁盘信息:%s"
 
-#: virtinst/CloneManager.py:574
+#: virtinst/CloneManager.py:613
 #, python-format
-msgid "Cloning %(srcfile)s"
-msgstr ""
-
-#: virtinst/CloneManager.py:581
-msgid "failed to clone disk"
-msgstr ""
+msgid "Domain '%s' was not found."
+msgstr "没有找到域 '%s'。"
 
-#: virtinst/DistroInstaller.py:51
+#: virtinst/DistroInstaller.py:57
 msgid "Invalid NFS format: No path specified."
 msgstr "无效 NFS 格式:没有指定路径。"
 
-#: virtinst/DistroInstaller.py:93
-#, fuzzy, python-format
+#: virtinst/DistroInstaller.py:101
+#, python-format
 msgid "Invalid 'location' type %s."
-msgstr "给出的文件位置无效:"
+msgstr "无效 'location' 类型 %s。"
 
-#: virtinst/DistroInstaller.py:99
-#, fuzzy
+#: virtinst/DistroInstaller.py:107
 msgid "'conn' must be specified if 'location' is a storage tuple."
-msgstr "必须用 'pool_name' 指定 'conn'"
+msgstr "如果 'location' 是一个存储元组,则必须指定 'conn'。"
 
-#: virtinst/DistroInstaller.py:135
-#, fuzzy, python-format
+#: virtinst/DistroInstaller.py:145
+#, python-format
 msgid "Checking installer location failed: Could not find media '%s'."
-msgstr "检查安装程序位置失败:%s"
+msgstr "检查安装程序位置失败:无法找到介质 '%s'。"
 
-#: virtinst/DistroInstaller.py:138
-#, fuzzy
+#: virtinst/DistroInstaller.py:148
 msgid ""
 "Install media location must be an NFS, HTTP or FTP network install source, "
 "or an existing file/device"
-msgstr ""
-"安装介质位置必须是 NFS、HTTP 或者 FTP 网络安装源,或者现有本地文件/设备"
+msgstr "安装介质位置必须是 NFS、HTTP 或者 FTP 网络安装源,或者现有文件/设备"
 
-#: virtinst/DistroInstaller.py:145
-#, fuzzy
+#: virtinst/DistroInstaller.py:155
 msgid "Privilege is required for NFS installations"
-msgstr "虚拟机需要一个名称。"
+msgstr "NFS 安装需要特权。"
 
-#: virtinst/Guest.py:100
+#: virtinst/Guest.py:108
 msgid "Unable to connect to hypervisor, aborting installation!"
 msgstr "无法连接到监控程序,取消安装!"
 
-#: virtinst/Guest.py:118
+#: virtinst/Guest.py:126
 msgid "Guest"
-msgstr ""
+msgstr "客体"
 
-#: virtinst/Guest.py:125
-#, fuzzy, python-format
+#: virtinst/Guest.py:133
+#, python-format
 msgid "Guest name '%s' is already in use."
-msgstr "名称 '%s' 已经被另一个池使用。"
+msgstr "客体名称 '%s' 已经在使用。"
 
-#: virtinst/Guest.py:133
+#: virtinst/Guest.py:141
 msgid "Memory value must be an integer greater than 0"
 msgstr "内存值必须是大于 0 的整数"
 
-#: virtinst/Guest.py:145
+#: virtinst/Guest.py:153
 msgid "Max Memory value must be an integer greater than 0"
 msgstr "最大内存值必须是大于 0 的整数"
 
-#: virtinst/Guest.py:164
+#: virtinst/Guest.py:172
 msgid "Number of vcpus must be a postive integer."
 msgstr "vcpu 的数目必须是一个正整数。"
 
-#: virtinst/Guest.py:166
+#: virtinst/Guest.py:174
 #, python-format
 msgid "Number of vcpus must be no greater than %d for this vm type."
 msgstr "这种 vm 类型的 vcpu 数目不能超过 %d"
 
-#: virtinst/Guest.py:176
+#: virtinst/Guest.py:184
 msgid "cpuset must be string"
 msgstr "cpuset 必须是字符串"
 
-#: virtinst/Guest.py:178
+#: virtinst/Guest.py:186
 msgid "cpuset can only contain numeric, ',', or '-' characters"
 msgstr "cpuset 只能含有数字、',' 或者 '-' 字符"
 
-#: virtinst/Guest.py:186
+#: virtinst/Guest.py:194
 msgid "cpuset contains invalid format."
 msgstr "cpuset 包含无效格式。"
 
-#: virtinst/Guest.py:188 virtinst/Guest.py:192
+#: virtinst/Guest.py:196 virtinst/Guest.py:202
 msgid "cpuset's pCPU numbers must be less than pCPUs."
 msgstr "cpuset 的 pCPU 数目必须小于 pCPU。"
 
-#: virtinst/Guest.py:212
+#: virtinst/Guest.py:222
 msgid "OS type must be a string."
 msgstr "操作系统类型必须是一个字符串。"
 
-#: virtinst/Guest.py:224
+#: virtinst/Guest.py:234
 #, python-format
 msgid "OS type '%s' does not exist in our dictionary"
 msgstr "操作系统类型 '%s' 在我们的字典中不存在"
 
-#: virtinst/Guest.py:232
+#: virtinst/Guest.py:242
 msgid "OS variant must be a string."
 msgstr "操作系统变体必须是一个字符串。"
 
-#: virtinst/Guest.py:238
+#: virtinst/Guest.py:248
 #, python-format
 msgid ""
 "OS variant '%(var)s; does not exist in our dictionary for OS type '%(ty)s'"
 msgstr "在我们的操作系统类型 '%(ty)s' 库中不存在操作系统参数 '%(var)s;"
 
-#: virtinst/Guest.py:250
+#: virtinst/Guest.py:260
 #, python-format
 msgid "Unknown OS variant '%s'"
 msgstr "未知操作系统变体 '%s'"
 
-#: virtinst/Guest.py:291
+#: virtinst/Guest.py:301
 msgid "Must specify whether graphics are enabled"
 msgstr "必须指定是否启用图形"
 
-#: virtinst/Guest.py:314
+#: virtinst/Guest.py:324
 msgid "Graphics enabled must be True or False"
 msgstr "启用图形必须是 True 或者 False"
 
-#: virtinst/Guest.py:373
+#: virtinst/Guest.py:383
 msgid "You must specify a valid ISO or CD-ROM location for the installation"
 msgstr "您必须为安装指定有效 ISO 或者光驱位置"
 
-#: virtinst/Guest.py:376
+#: virtinst/Guest.py:386
 msgid "The specified media path does not exist."
 msgstr "指定的介质路径不存在。"
 
-#: virtinst/Guest.py:573
+#: virtinst/Guest.py:415
+#, fuzzy
+msgid "Must pass a VirtualDevice instance."
+msgstr "'nodedev' 必须是 USBDevice 事件。"
+
+#: virtinst/Guest.py:660
 msgid "Unable to start domain for guest, aborting installation!"
 msgstr "无法为客户端启动域,取消安装!"
 
-#: virtinst/Guest.py:623
+#: virtinst/Guest.py:716
 #, python-format
 msgid "Could not remove old vm '%s': %s"
 msgstr "无法删除旧的 vm '%s':%s"
 
-#: virtinst/Guest.py:625
+#: virtinst/Guest.py:718
 #, python-format
 msgid "Domain named %s already exists!"
 msgstr "域名 %s 以存在!"
 
-#: virtinst/Guest.py:632
+#: virtinst/Guest.py:725
 msgid "Creating domain..."
 msgstr "创建域......"
 
-#: virtinst/Guest.py:635
+#: virtinst/Guest.py:728
 msgid "Unable to create domain for the guest, aborting installation!"
 msgstr "无法为客户端创建域,取消安装!"
 
-#: virtinst/Guest.py:643
+#: virtinst/Guest.py:736
 msgid ""
 "It appears that your installation has crashed.  You should be able to find "
 "more information in the logs"
 msgstr "显示您的安装已经失败。您应该可以在日志中找到更多信息。"
 
-#: virtinst/Guest.py:677
+#: virtinst/Guest.py:770
 msgid ""
 "Domain has not existed.  You should be able to find more information in the "
 "logs"
 msgstr "域不存在。您应该可以在日志中找到更多信息。"
 
-#: virtinst/Guest.py:679
+#: virtinst/Guest.py:772
 msgid ""
 "Domain has not run yet.  You should be able to find more information in the "
 "logs"
 msgstr "域没有运行。您应该可以在日志中找到更多信息。"
 
-#: virtinst/Guest.py:696
+#: virtinst/Guest.py:789
 msgid "Domain has already been started!"
 msgstr "域已经启动!"
 
-#: virtinst/Guest.py:707
+#: virtinst/Guest.py:809
 msgid "The UUID you entered is already in use by another guest!"
 msgstr "您输入的 UUID 已经被另一个客户端使用!"
 
-#: virtinst/Guest.py:710
+#: virtinst/Guest.py:812
 msgid "Name and memory must be specified for all guests!"
 msgstr "必须指定的名称和内存!"
 
-#: virtinst/Guest.py:745
-#, python-format
-msgid "Invalid dictionary entry for device '%s %s'"
-msgstr "设备 '%s %s' 的无效 dictionary 条目"
-
 #: virtinst/ImageFetcher.py:86
 #, python-format
 msgid "Retrieving file %s..."
@@ -401,24 +452,22 @@ msgid "Couldn't acquire file %s: %s"
 msgstr "无法获得文件 %s:%s"
 
 #: virtinst/ImageFetcher.py:110
-#, fuzzy, python-format
+#, python-format
 msgid "Opening URL %s failed."
-msgstr "打开 URL %s 失败:%s"
+msgstr "打开 URL %s 失败。"
 
 #: virtinst/ImageFetcher.py:187
-#, fuzzy, python-format
+#, python-format
 msgid "Mounting location '%s' failed"
-msgstr "挂载位置 %s 失败"
+msgstr "挂载位置 '%s' 失败"
 
 #: virtinst/ImageManager.py:47
-#, fuzzy
 msgid "'capabilities' must be a Capabilities instance."
-msgstr "'pool' 必须是一个 virStoragePool 事件。"
+msgstr "'capabilities' 必须是一个功能事件。"
 
 #: virtinst/ImageManager.py:51
-#, fuzzy
 msgid "'conn' or 'capabilities' must be specified."
-msgstr "必须指定池或者 pool_name 名称之一。"
+msgstr "必须指定 'conn' 或者 'capabilities'。"
 
 #: virtinst/ImageManager.py:58
 msgid "Could not find suitable boot descriptor for this host"
@@ -426,12 +475,12 @@ msgstr "无法为这台主机找到合适的引导描述符"
 
 #: virtinst/ImageManager.py:63
 msgid "boot_index out of range."
-msgstr ""
+msgstr "boot_index 溢出。"
 
 #: virtinst/ImageManager.py:70
-#, fuzzy, python-format
+#, python-format
 msgid "Unsupported virtualization type: %s %s"
-msgstr "不支持的虚拟化类型 '%s'"
+msgstr "不支持的虚拟化类型:%s %s"
 
 #: virtinst/ImageManager.py:145
 #, python-format
@@ -457,20 +506,20 @@ msgstr "内存必须是整数,但是 '%s'"
 msgid "The format for disk %s must be one of %s"
 msgstr "磁盘 %s 的格式必须是 %s 之一"
 
-#: virtinst/ImageParser.py:248
+#: virtinst/ImageParser.py:263
 #, python-format
 msgid "Checking disk signature for %s"
-msgstr ""
+msgstr "为 %s 检查磁盘签名"
 
 #: virtinst/ImageParser.py:276
 #, python-format
 msgid "Disk signature for %s does not match Expected: %s  Received: %s"
-msgstr ""
+msgstr "%s 的磁盘签名与预计的不符:收到的是 %s:%s"
 
 #: virtinst/ImageParser.py:279
-#, fuzzy, python-format
+#, python-format
 msgid "Disk signature for %s does not match"
-msgstr "没有找到 '%s' 的磁盘条目"
+msgstr "%s 的磁盘签名不匹配"
 
 #: virtinst/ImageParser.py:318
 msgid "Root element is not 'image'"
@@ -478,355 +527,371 @@ msgstr "Root 元素不是 'image'"
 
 #: virtinst/ImportInstaller.py:37
 msgid "A disk device must be specified."
-msgstr ""
+msgstr "必须指定一个磁盘设备。"
 
-#: virtinst/Installer.py:151
+#: virtinst/Installer.py:156
 msgid "Guest.cdrom must be a boolean type"
 msgstr "Guest.cdrom 必须是布尔类型"
 
-#: virtinst/Installer.py:168 virtinst/Installer.py:173
-#: virtinst/Installer.py:177
+#: virtinst/Installer.py:173 virtinst/Installer.py:178
+#: virtinst/Installer.py:182
 msgid "Must pass both a kernel and initrd"
 msgstr "必须同时使用内核和 initrd "
 
-#: virtinst/Installer.py:180
+#: virtinst/Installer.py:185
 msgid "Kernel and initrd must be specified by a list, dict, or tuple."
 msgstr "必须内核和 initrd "
 
-#: virtinst/Installer.py:335
-#, fuzzy
+#: virtinst/Installer.py:340
 msgid "A connection must be specified."
-msgstr "必须指定安装位置"
+msgstr "必须指定一个连接。"
 
-#: virtinst/Installer.py:353
-#, fuzzy, python-format
+#: virtinst/Installer.py:358
+#, python-format
 msgid "No 'Guest' class for virtualization type '%s'"
-msgstr "不支持的虚拟化类型 '%s'"
+msgstr "没有虚拟化类型 '%s' 的 'Guest' 分类"
 
 #: virtinst/LiveCDInstaller.py:66
 msgid "CDROM media must be specified for the live CD installer."
 msgstr "必须为 live CD 安装程序指定光驱介质。"
 
-#: virtinst/NodeDeviceParser.py:114
+#: virtinst/NodeDeviceParser.py:118
 msgid "System"
-msgstr ""
+msgstr "系统"
 
-#: virtinst/NodeDeviceParser.py:146
+#: virtinst/NodeDeviceParser.py:151
 #, python-format
 msgid "Interface %s"
-msgstr ""
+msgstr "接口 %s"
 
-#: virtinst/NodeDeviceParser.py:364 virtinst/NodeDeviceParser.py:392
-#: virtinst/util.py:531 virtinst/VirtualDevice.py:58
+#: virtinst/NodeDeviceParser.py:378 virtinst/NodeDeviceParser.py:406
+#: virtinst/util.py:501 virtinst/VirtualDevice.py:86
 msgid "'conn' must be a virConnect instance."
 msgstr "'conn' 必须是一个 virConnect 事件。"
 
-#: virtinst/NodeDeviceParser.py:411
-#, fuzzy
+#: virtinst/NodeDeviceParser.py:426
 msgid "Connection does not support host device enumeration."
-msgstr "连接不支持存储管理。"
+msgstr "连接不支持主机设备计数。"
 
-#: virtinst/NodeDeviceParser.py:487
-#, fuzzy, python-format
+#: virtinst/NodeDeviceParser.py:502
+#, python-format
 msgid "Unknown host device capability '%s'."
-msgstr "位置设备类型 '%s'"
+msgstr "未知主机设备功能 '%s'。"
+
+#: virtinst/osdict.py:129
+#, python-format
+msgid "Invalid dictionary entry for device '%s %s'"
+msgstr "设备 '%s %s' 的无效 dictionary 条目"
 
-#: virtinst/OSDistro.py:99
+#: virtinst/OSDistro.py:102
 #, python-format
 msgid "Could not find an installable distribution at '%s'"
 msgstr "在 '%s' 无法找到可安装的发行本"
 
-#: virtinst/OSDistro.py:109
+#: virtinst/OSDistro.py:112
 msgid "Invalid install location: "
 msgstr "无效安装位置:"
 
-#: virtinst/OSDistro.py:230
-#, fuzzy, python-format
+#: virtinst/OSDistro.py:237
+#, python-format
 msgid "Couldn't find %(type)s kernel for %(distro)s tree."
-msgstr "无法为 virt 类型 '%s' 找到内核路径"
+msgstr "无法为 %(distro)s 树找到 %(type)s 内核。"
 
-#: virtinst/OSDistro.py:244
-#, fuzzy, python-format
+#: virtinst/OSDistro.py:252
+#, python-format
 msgid "Could not find boot.iso in %s tree."
-msgstr "无法为这个树找到引导 iso 路径。"
+msgstr "无法在 %s 树中找到 boot.iso。"
 
-#: virtinst/OSDistro.py:383
+#: virtinst/OSDistro.py:413
 #, python-format
 msgid "Could not find a kernel path for virt type '%s'"
 msgstr "无法为 virt 类型 '%s' 找到内核路径"
 
-#: virtinst/OSDistro.py:392
+#: virtinst/OSDistro.py:422
 msgid "Could not find a boot iso path for this tree."
 msgstr "无法为这个树找到引导 iso 路径。"
 
-#: virtinst/OSDistro.py:646
+#: virtinst/OSDistro.py:676
 msgid "Unable to determine kernel RPM path"
 msgstr "无法确定内核 RPM 路径"
 
-#: virtinst/OSDistro.py:648
+#: virtinst/OSDistro.py:678
 msgid "Unable to determine install-initrd RPM path"
 msgstr "无法确定 install-initrd RPM 路径"
 
-#: virtinst/OSDistro.py:659
+#: virtinst/OSDistro.py:689
 msgid "Building initrd"
 msgstr "创建 initrd"
 
-#: virtinst/OSDistro.py:1021
+#: virtinst/OSDistro.py:1051
 #, python-format
 msgid "Solaris miniroot not found at %s"
-msgstr ""
+msgstr "在 %s 中没有找到 Solaris miniroot"
 
-#: virtinst/OSDistro.py:1056
+#: virtinst/OSDistro.py:1089
 #, python-format
 msgid "OpenSolaris PV kernel not found at %s"
-msgstr ""
-
-#: virtinst/OSDistro.py:1066
-#, python-format
-msgid "OpenSolaris microroot not found at %s"
-msgstr ""
+msgstr "在 %s 中没有找到 OpenSolaris PV 内核"
 
-#: virtinst/Storage.py:85
+#: virtinst/Storage.py:81
 #, python-format
 msgid "Unknown storage object type: %s"
 msgstr "未知存储对象类型:%s"
 
-#: virtinst/Storage.py:108
+#: virtinst/Storage.py:104
 msgid "'conn' must be a libvirt connection object."
 msgstr "'conn' 必须是 libvirt 连接对象。"
 
-#: virtinst/Storage.py:110
+#: virtinst/Storage.py:106
 msgid "Passed connection is not libvirt storage capable"
 msgstr "过去的连接与 libvirt 存储不兼容"
 
-#: virtinst/Storage.py:120
-#, fuzzy
+#: virtinst/Storage.py:116
 msgid "Storage object"
-msgstr "新客户端的名称"
+msgstr "存储目标"
 
-#: virtinst/Storage.py:125
-#, fuzzy
+#: virtinst/Storage.py:121
 msgid "Name for the storage object."
-msgstr "新客户端的名称"
+msgstr "存储目标名称。"
 
-#: virtinst/Storage.py:132
+#: virtinst/Storage.py:128
 msgid "Permissions must be passed as a dict object"
 msgstr "权限必须作为库对象传递"
 
-#: virtinst/Storage.py:135
+#: virtinst/Storage.py:131
 msgid "Permissions must contain 'mode', 'owner', 'group' and 'label' keys."
 msgstr "权限必须包含 'mode'、'owner'、'group' 和 'label' 关键词。"
 
-#: virtinst/Storage.py:142
+#: virtinst/Storage.py:138
 #, python-format
 msgid "'%s' is not an absolute path."
 msgstr "'%s' 不是一个绝对路径。"
 
-#: virtinst/Storage.py:203
+#: virtinst/Storage.py:199
 msgid "Filesystem Directory"
 msgstr "文件系统目录"
 
-#: virtinst/Storage.py:204
+#: virtinst/Storage.py:200
 msgid "Pre-Formatted Block Device"
 msgstr "预先格式化的块设备"
 
-#: virtinst/Storage.py:205
+#: virtinst/Storage.py:201
 msgid "Network Exported Directory"
 msgstr "网络导出的目录"
 
-#: virtinst/Storage.py:206
+#: virtinst/Storage.py:202
 msgid "LVM Volume Group"
 msgstr "LVM 卷组"
 
-#: virtinst/Storage.py:207
+#: virtinst/Storage.py:203
 msgid "Physical Disk Device"
 msgstr "网络磁盘设备"
 
-#: virtinst/Storage.py:208
+#: virtinst/Storage.py:204
 msgid "iSCSI Target"
 msgstr "iSCSI 目标"
 
-#: virtinst/Storage.py:218 virtinst/Storage.py:255
+#: virtinst/Storage.py:214 virtinst/Storage.py:251
 #, python-format
 msgid "Unknown storage pool type: %s"
 msgstr "未知存储池类型:%s"
 
-#: virtinst/Storage.py:277
+#: virtinst/Storage.py:273
 msgid "Storage device type the pool will represent."
-msgstr ""
+msgstr "池将代表的存储设备类型。"
 
-#: virtinst/Storage.py:296
+#: virtinst/Storage.py:292
 msgid "Host name must be a string"
 msgstr "主机名必须是一个字符串"
 
-#: virtinst/Storage.py:315
+#: virtinst/Storage.py:311
 #, python-format
 msgid "Name '%s' already in use by another pool."
 msgstr "名称 '%s' 已经被另一个池使用。"
 
-#: virtinst/Storage.py:353
+#: virtinst/Storage.py:349
 #, python-format
 msgid "Could not define storage pool: %s"
 msgstr "无法定义存储池:%s"
 
-#: virtinst/Storage.py:363
+#: virtinst/Storage.py:359
 #, python-format
 msgid "Could not build storage pool: %s"
 msgstr "无法构建存储池:%s"
 
-#: virtinst/Storage.py:372
+#: virtinst/Storage.py:368
 #, python-format
 msgid "Could not start storage pool: %s"
 msgstr "无法启动存储池:%s"
 
-#: virtinst/Storage.py:399
+#: virtinst/Storage.py:395
 msgid "Directory to use for the storage pool."
-msgstr ""
+msgstr "存储池使用的目录。"
 
-#: virtinst/Storage.py:435
+#: virtinst/Storage.py:431
 msgid "The existing device to mount for the pool."
-msgstr ""
+msgstr "为池挂载的现有设备。"
 
-#: virtinst/Storage.py:438 virtinst/Storage.py:496
+#: virtinst/Storage.py:434 virtinst/Storage.py:492
 msgid "Location to mount the source device."
-msgstr ""
+msgstr "挂载源设备的位置。"
 
-#: virtinst/Storage.py:456
+#: virtinst/Storage.py:452
 #, python-format
 msgid "Unknown Filesystem format: %s"
 msgstr "未知文件系统格式:%s"
 
-#: virtinst/Storage.py:459
+#: virtinst/Storage.py:455
 msgid "Filesystem type of the source device."
-msgstr ""
+msgstr "源设备文件系统类型。"
 
-#: virtinst/Storage.py:472
+#: virtinst/Storage.py:468
 msgid "Device path is required"
 msgstr "需要设备路径"
 
-#: virtinst/Storage.py:491 virtinst/Storage.py:665
+#: virtinst/Storage.py:487 virtinst/Storage.py:694
 msgid "Path on the host that is being shared."
-msgstr ""
+msgstr "主机中要共享的路径。"
 
-#: virtinst/Storage.py:493 virtinst/Storage.py:637
-#, fuzzy
+#: virtinst/Storage.py:489 virtinst/Storage.py:666
 msgid "Name of the host sharing the storage."
-msgstr "客户端事件名称"
+msgstr "共享存储的主机名称。"
 
-#: virtinst/Storage.py:514
+#: virtinst/Storage.py:510
 #, python-format
 msgid "Unknown Network Filesystem format: %s"
 msgstr "未知网络文件系统格式:%s"
 
-#: virtinst/Storage.py:517
+#: virtinst/Storage.py:513
 msgid "Type of network filesystem."
-msgstr ""
+msgstr "网络文件系统类型。"
 
-#: virtinst/Storage.py:529 virtinst/Storage.py:676
+#: virtinst/Storage.py:525 virtinst/Storage.py:705
 msgid "Hostname is required"
 msgstr "需要主机名"
 
-#: virtinst/Storage.py:531 virtinst/Storage.py:614 virtinst/Storage.py:678
+#: virtinst/Storage.py:527 virtinst/Storage.py:643 virtinst/Storage.py:707
 msgid "Host path is required"
 msgstr "需要主机路径"
 
-#: virtinst/Storage.py:549
+#: virtinst/Storage.py:545
 msgid "Location of the existing LVM volume group."
+msgstr "现有 LVM 卷组位置。"
+
+#: virtinst/Storage.py:570
+msgid "Optional device(s) to build new LVM volume on."
 msgstr ""
 
-#: virtinst/Storage.py:576
+#: virtinst/Storage.py:593
+#, fuzzy
+msgid "Must explicitly specify source path if building' pool"
+msgstr "如果格式化磁盘设备,则必须单独指定磁盘格式。"
+
+#: virtinst/Storage.py:609
 msgid "Path to the existing disk device."
-msgstr ""
+msgstr "现有磁盘设备路径。"
 
-#: virtinst/Storage.py:579 virtinst/Storage.py:640
+#: virtinst/Storage.py:612 virtinst/Storage.py:669
 msgid "Root location for identifying new storage volumes."
-msgstr ""
+msgstr "识别新存储卷的根位置。"
 
-#: virtinst/Storage.py:585
-msgid "Disk volume creation is not implemented."
-msgstr ""
-
-#: virtinst/Storage.py:600
+#: virtinst/Storage.py:629
 #, python-format
 msgid "Unknown Disk format: %s"
 msgstr "未知磁盘格式:%s"
 
-#: virtinst/Storage.py:603
+#: virtinst/Storage.py:632
 msgid "Format of the source device's partition table."
-msgstr ""
+msgstr "格式化该源设备的分区表。"
 
-#: virtinst/Storage.py:626
+#: virtinst/Storage.py:655
 msgid "Must explicitly specify disk format if formatting disk device."
 msgstr "如果格式化磁盘设备,则必须单独指定磁盘格式。"
 
-#: virtinst/Storage.py:644
+#: virtinst/Storage.py:673
 msgid "iSCSI volume creation is not implemented."
-msgstr ""
+msgstr "没有使用 iSCSI 卷创建。"
 
-#: virtinst/Storage.py:694
+#: virtinst/Storage.py:734
 msgid "One of pool or pool_name must be specified."
 msgstr "必须指定池或者 pool_name 名称之一。"
 
-#: virtinst/Storage.py:697 virtinst/Storage.py:770
+#: virtinst/Storage.py:737 virtinst/Storage.py:806
 msgid "'conn' must be specified with 'pool_name'"
 msgstr "必须用 'pool_name' 指定 'conn'"
 
-#: virtinst/Storage.py:756
-msgid "Default volume target path range exceeded."
-msgstr "超过默认卷目标路径范围。"
-
-#: virtinst/Storage.py:766
+#: virtinst/Storage.py:802
 msgid "Must specify pool_object or pool_name"
 msgstr "必须指定 pool_object 或 pool_name"
 
-#: virtinst/Storage.py:772
+#: virtinst/Storage.py:808
 msgid "Connection does not support storage management."
 msgstr "连接不支持存储管理。"
 
-#: virtinst/Storage.py:777
+#: virtinst/Storage.py:813
 #, python-format
 msgid "Couldn't find storage pool '%s': %s"
 msgstr "无法找到存储池 '%s':%s"
 
-#: virtinst/Storage.py:781
+#: virtinst/Storage.py:817
 msgid "pool_object must be a virStoragePool"
 msgstr "pool_object 必须是一个 virStoragePool"
 
-#: virtinst/Storage.py:792
+#: virtinst/Storage.py:831
 msgid "Capacity must be a positive number"
 msgstr "Capacity 必须是一个正数"
 
-#: virtinst/Storage.py:813
+#: virtinst/Storage.py:852
 msgid "Allocation must be a non-negative number"
 msgstr "Allocation 必须是一个非负数"
 
-#: virtinst/Storage.py:833
+#: virtinst/Storage.py:872
 msgid "'pool' must be a virStoragePool instance."
 msgstr "'pool' 必须是一个 virStoragePool 事件。"
 
-#: virtinst/Storage.py:835
+#: virtinst/Storage.py:874
 #, python-format
 msgid "pool '%s' must be active."
 msgstr "池 '%s' 必须活跃。"
 
-#: virtinst/Storage.py:844
+#: virtinst/Storage.py:886 virtinst/Storage.py:1120
+#, fuzzy
+msgid "input_vol must be a virStorageVol"
+msgstr "pool_object 必须是一个 virStoragePool"
+
+#: virtinst/Storage.py:888
+msgid ""
+"Creating storage from an existing volume is not supported by this libvirt "
+"version."
+msgstr ""
+
+#: virtinst/Storage.py:892
+msgid "virStorageVolume pointer to clone/use as input."
+msgstr ""
+
+#: virtinst/Storage.py:900
 #, python-format
 msgid "'%s' is not a valid format."
 msgstr "'%s' 不是有效格式。"
 
-#: virtinst/Storage.py:854
+#: virtinst/Storage.py:910
 #, python-format
 msgid "Name '%s' already in use by another volume."
 msgstr "名称 '%s' 已经被另一个卷使用。"
 
-#: virtinst/Storage.py:924
+#: virtinst/Storage.py:963
+#, python-format
+msgid "Allocating '%s'"
+msgstr ""
+
+#: virtinst/Storage.py:1023
 #, python-format
 msgid ""
 "There is not enough free space on the storage pool to create the volume. (%d "
 "M requested allocation > %d M available)"
 msgstr "存储池中没有足够空间来创建卷。(%d M 需要的空间 > %d M 可用空间)"
 
-#: virtinst/Storage.py:930
+#: virtinst/Storage.py:1029
 #, python-format
 msgid ""
 "The requested volume capacity will exceed the available pool space when the "
@@ -835,11 +900,11 @@ msgstr ""
 "当卷已经被全部分配后,需要的卷容量将超过可用池空间。(%d M 需要的容量 > %d M "
 "可用容量)"
 
-#: virtinst/_util.py:111
+#: virtinst/_util.py:128
 msgid "UUID must be a string."
 msgstr "UUID 必须是一个字符串。"
 
-#: virtinst/_util.py:119
+#: virtinst/_util.py:136
 msgid ""
 "UUID must be a 32-digit hexadecimal number. It may take the form XXXXXXXX-"
 "XXXX-XXXX-XXXX-XXXXXXXXXXXX or may omit hyphens altogether."
@@ -847,538 +912,758 @@ msgstr ""
 "UUID 必须是一个 32 位的十六进制数字。格式可以是 XXXXXXXX-XXXX-XXXX-XXXX-"
 "XXXXXXXXXXXX,也可以取消所有连字符。"
 
-#: virtinst/_util.py:130
-#, fuzzy, python-format
+#: virtinst/_util.py:147
+#, python-format
 msgid "%s name must be a string between 0 and 50 characters"
-msgstr "系统名称必须是大于 0 小于 50 个字符的字符串"
+msgstr "%s 名称必须是介于 0 到 50 个字符的字符串"
 
-#: virtinst/_util.py:133
-#, fuzzy, python-format
+#: virtinst/_util.py:150
+#, python-format
 msgid "%s name can not be only numeric characters"
-msgstr "系统名称不能只是数字字符"
+msgstr "%s 名称不能只是数字字符"
 
-#: virtinst/_util.py:136
-#, fuzzy, python-format
+#: virtinst/_util.py:153
+#, python-format
 msgid "%s name can only contain alphanumeric, '_', '.', or '-' characters"
-msgstr "系统名称可以含有:字母数字、'_'、'.'、':'、'+' 或者 '-' 字符"
+msgstr "%s 名称可以含有:字母数字、'_'、'.'、':'、'+' 或者 '-' 字符"
+
+#: virtinst/_util.py:276
+#, fuzzy
+msgid "Name generation range exceeded."
+msgstr "超过默认卷目标路径范围。"
 
-#: virtinst/util.py:67
+#: virtinst/util.py:69
 #, python-format
 msgid "Invalid line length while parsing %s."
 msgstr "解析 %s 时出现无效行长度。"
 
-#: virtinst/util.py:68
+#: virtinst/util.py:70
 #, python-format
 msgid "Defaulting bridge to xenbr%d"
 msgstr "到 xenbr%d 的默认桥接"
 
-#: virtinst/util.py:568
-#, fuzzy
+#: virtinst/util.py:538 virtconv/parsers/ovf.py:160
 msgid "'path' or 'func' is required."
-msgstr "需要主机路径"
+msgstr "需要 'path' 或者 'func'"
 
-#: virtinst/VirtualAudio.py:38
+#: virtinst/VirtualAudio.py:40
 #, python-format
 msgid "'model' must be a string,  was '%s'."
 msgstr "'model' 必须是一个字符串,即 '%s'。"
 
-#: virtinst/VirtualAudio.py:41
+#: virtinst/VirtualAudio.py:43
 #, python-format
 msgid "Unsupported sound model '%s'"
 msgstr "不支持的声音模型 '%s'"
 
-#: virtinst/VirtualDevice.py:43
+#: virtinst/VirtualCharDevice.py:64
+msgid "Psuedo TTY"
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:66
+#, fuzzy
+msgid "Physical host character device"
+msgstr "网络磁盘设备"
+
+#: virtinst/VirtualCharDevice.py:68
+msgid "Standard input/output"
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:70
+msgid "Named pipe"
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:72
+msgid "Output to a file"
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:74
+msgid "Virtual console"
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:76
+msgid "Null device"
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:78
+msgid "TCP net console"
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:80
+msgid "UDP net console"
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:82
+msgid "Unix socket"
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:94
+msgid "Client mode."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:96
+msgid "Server mode."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:139
+#, fuzzy, python-format
+msgid "Unknown character device type '%s'."
+msgstr "位置设备类型 '%s'"
+
+#: virtinst/VirtualCharDevice.py:147 virtinst/VirtualCharDevice.py:157
+#, fuzzy, python-format
+msgid "Unknown character device type '%s'"
+msgstr "位置设备类型 '%s'"
+
+#: virtinst/VirtualCharDevice.py:173
+msgid "Method used to expose character device in the host."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:186
+#, fuzzy, python-format
+msgid "Unknown character mode '%s'."
+msgstr "未知缓存模式 '%s'"
+
+#: virtinst/VirtualCharDevice.py:213
+#, fuzzy, python-format
+msgid "Unknown protocol '%s'."
+msgstr "未知 --disk 选项 '%s'。"
+
+#: virtinst/VirtualCharDevice.py:232
+#, python-format
+msgid "A source path is required for character device type '%s'"
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:282
+#, fuzzy
+msgid "Host character device to attach to guest."
+msgstr "无法将节点设备类型 '%s' 附加到客体中。"
+
+#: virtinst/VirtualCharDevice.py:288
+msgid "Named pipe to use for input and output."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:294
+msgid "File path to record device output."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:302 virtinst/VirtualCharDevice.py:312
+msgid "Target connect/listen mode."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:305
+msgid "Unix socket path."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:315
+msgid "Address to connect/listen to."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:318
+msgid "Port on target host to connect/listen to."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:321
+msgid "Format used when sending data."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:325
+#, fuzzy
+msgid "A host and port must be specified."
+msgstr "必须指定一个磁盘设备。"
+
+#: virtinst/VirtualCharDevice.py:337
+msgid "Host address to bind to."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:340
+msgid "Host port to bind to."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:343
+msgid "Host address to send output to."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:346
+msgid "Host port to send output to."
+msgstr ""
+
+#: virtinst/VirtualCharDevice.py:351
+#, fuzzy
+msgid "A connection port must be specified."
+msgstr "必须指定一个连接。"
+
+#: virtinst/VirtualDevice.py:63
+msgid "Virtual device type must be set in subclass."
+msgstr ""
+
+#: virtinst/VirtualDevice.py:66
+#, fuzzy, python-format
+msgid "Unknown virtual device type '%s'."
+msgstr "位置设备类型 '%s'"
+
+#: virtinst/VirtualDevice.py:71
 msgid "'conn' must be a virConnect instance"
 msgstr "'conn' 必须是一个 virConnect 事件"
 
-#: virtinst/VirtualDevice.py:67
+#: virtinst/VirtualDevice.py:104
 #, python-format
 msgid "'%s' must be True or False"
 msgstr "'%s' 必须是 True 或者 False"
 
-#: virtinst/VirtualDevice.py:71
+#: virtinst/VirtualDevice.py:108
 #, python-format
 msgid "'%s' must be a string, not '%s'."
 msgstr "'%s' 必须是一个字符串,而不是 '%s' 。"
 
-#: virtinst/VirtualDisk.py:205
+#: virtinst/VirtualDisk.py:262
+#, fuzzy, python-format
+msgid "Error validating clone path: %s"
+msgstr "创建光盘失败:%s"
+
+#: virtinst/VirtualDisk.py:271
 msgid "'size' must be a number greater than 0."
 msgstr "'size' 必须是一个大于 0 的数字。"
 
-#: virtinst/VirtualDisk.py:215
+#: virtinst/VirtualDisk.py:281
 #, python-format
 msgid "Unknown storage type '%s'"
 msgstr "位置存储类型 '%s'"
 
-#: virtinst/VirtualDisk.py:224
+#: virtinst/VirtualDisk.py:290
 #, python-format
 msgid "Unknown device type '%s'"
 msgstr "位置设备类型 '%s'"
 
-#: virtinst/VirtualDisk.py:258
+#: virtinst/VirtualDisk.py:324
 msgid "vol_object must be a virStorageVol instance"
 msgstr "vol_object 必须是一个 virStorageVol 事件"
 
-#: virtinst/VirtualDisk.py:266
+#: virtinst/VirtualDisk.py:332
 msgid "vol_install must be a StorageVolume  instance."
 msgstr "vol_install 必须是一个 StorageVolume 事件。"
 
-#: virtinst/VirtualDisk.py:292
-#, fuzzy, python-format
+#: virtinst/VirtualDisk.py:358
+#, python-format
 msgid "Unknown cache mode '%s'"
-msgstr "位置设备类型 '%s'"
+msgstr "未知缓存模式 '%s'"
 
-#: virtinst/VirtualDisk.py:353
+#: virtinst/VirtualDisk.py:373
+#, fuzzy, python-format
+msgid "SELinux label '%s' is not valid."
+msgstr "'%s' 不是有效格式。"
+
+#: virtinst/VirtualDisk.py:433
 msgid "Unknown storage volume type."
 msgstr "未知存储卷类型。"
 
-#: virtinst/VirtualDisk.py:372
+#: virtinst/VirtualDisk.py:449
 #, python-format
 msgid "Passed type '%s' does not match detected storage type '%s'"
 msgstr "以前的类型 '%s' 与存储类型 '%s' 不匹配"
 
-#: virtinst/VirtualDisk.py:382
+#: virtinst/VirtualDisk.py:504
 msgid "volName must be a tuple of the form ('poolname', 'volname')"
 msgstr "volName 必须是 tuple 格式('poolname','volname')"
 
-#: virtinst/VirtualDisk.py:385
+#: virtinst/VirtualDisk.py:507
 msgid "'volName' requires a passed connection."
 msgstr "'volName' 需要以前的连接。"
 
-#: virtinst/VirtualDisk.py:387
+#: virtinst/VirtualDisk.py:509
 msgid "Connection does not support storage lookup."
 msgstr "连接不支持存储查找。"
 
-#: virtinst/VirtualDisk.py:393
+#: virtinst/VirtualDisk.py:515
 #, python-format
 msgid "Couldn't lookup volume object: %s"
 msgstr "无法查找卷对象:%s"
 
-#: virtinst/VirtualDisk.py:436
-#, fuzzy, python-format
+#: virtinst/VirtualDisk.py:540
+#, python-format
+msgid "Device type '%s' requires a path"
+msgstr "设备类型 '%s' 需要一个路径"
+
+#: virtinst/VirtualDisk.py:583
+#, python-format
 msgid "Size must be specified for non existent volume path '%s'"
-msgstr "必须为非现有路径 '%s' 指定大小"
+msgstr "必须为非现有卷路径 '%s' 指定大小"
 
-#: virtinst/VirtualDisk.py:459
+#: virtinst/VirtualDisk.py:603
 #, python-format
 msgid ""
 "Cannot use storage '%(path)s': '%(rootdir)s' is not managed on the remote "
 "host."
-msgstr ""
+msgstr "不能使用存储 '%(path)s':不是在远程主机中管理 '%(rootdir)s'。"
 
-#: virtinst/VirtualDisk.py:464
+#: virtinst/VirtualDisk.py:608
 #, python-format
 msgid "Cannot use storage %(path)s: %(err)s"
-msgstr ""
+msgstr "不能使用存储 %(path)s:%(err)s"
 
-#: virtinst/VirtualDisk.py:517
+#: virtinst/VirtualDisk.py:686
 msgid "Connection doesn't support remote storage."
 msgstr "连接不支持远程存储。"
 
-#: virtinst/VirtualDisk.py:534
-#, python-format
-msgid "Device type '%s' requires a path"
-msgstr "设备类型 '%s' 需要一个路径"
-
-#: virtinst/VirtualDisk.py:549
+#: virtinst/VirtualDisk.py:689
 msgid "Must specify libvirt managed storage if on a remote connection"
 msgstr "如果是在远程连接中则必须指定 libvirt 管理的存储"
 
-#: virtinst/VirtualDisk.py:558
-#, fuzzy, python-format
+#: virtinst/VirtualDisk.py:726
+#, python-format
 msgid "The path '%s' must be a file or a device, not a directory"
-msgstr "该路径必须是一个文件或者一个设备,而不是一个目录。"
+msgstr "该路径 '%s' 必须是一个文件或者设备,不能是目录。"
 
-#: virtinst/VirtualDisk.py:568
+#: virtinst/VirtualDisk.py:735
 #, python-format
 msgid "Cannot create storage for %s device."
 msgstr "无法为 %s 设备创建存储。"
 
-#: virtinst/VirtualDisk.py:573
-msgid "Local block device path must exist."
+#: virtinst/VirtualDisk.py:740
+#, fuzzy, python-format
+msgid "Local block device path '%s' must exist."
 msgstr "必须存在本地块设备路径。"
 
-#: virtinst/VirtualDisk.py:581
+#: virtinst/VirtualDisk.py:749
 #, python-format
 msgid "size is required for non-existent disk '%s'"
 msgstr "non-existent 磁盘 '%s' 需要大小"
 
-#: virtinst/VirtualDisk.py:584
+#: virtinst/VirtualDisk.py:752
 #, python-format
 msgid "No write access to directory '%s'"
 msgstr "无法对目录 '%s' 进行写入访问"
 
-#: virtinst/VirtualDisk.py:620
-msgid "Creating storage file..."
-msgstr "创建存储文件......"
+#: virtinst/VirtualDisk.py:777
+#, python-format
+msgid "Cloning %(srcfile)s"
+msgstr "正在克隆 %(srcfile)s"
 
-#: virtinst/VirtualDisk.py:626
+#: virtinst/VirtualDisk.py:780
 #, fuzzy, python-format
+msgid "Creating storage file %s"
+msgstr "创建存储文件......"
+
+#: virtinst/VirtualDisk.py:793
+msgid "copying to an existing vdisk is not supported"
+msgstr "不支持复制到现有虚拟磁盘"
+
+#: virtinst/VirtualDisk.py:796
+msgid "failed to clone disk"
+msgstr "克隆磁盘失败"
+
+#: virtinst/VirtualDisk.py:807
+#, python-format
 msgid "Error creating vdisk %s"
-msgstr "创建光盘失败:%s"
+msgstr "创建虚拟磁盘出错:%s"
 
-#: virtinst/VirtualDisk.py:647
+#: virtinst/VirtualDisk.py:832
 #, python-format
 msgid "Error creating diskimage %s: %s"
 msgstr "创建磁盘映像 %s 出错:%s"
 
-#: virtinst/VirtualDisk.py:669
+#: virtinst/VirtualDisk.py:932
 msgid "'disknode' or self.target must be set!"
 msgstr "必须设置 'disknode' 或者 self.target!"
 
-#: virtinst/VirtualDisk.py:741
+#: virtinst/VirtualDisk.py:1003
 msgid ""
 "The filesystem will not have enough free space to fully allocate the sparse "
 "file when the guest is running."
 msgstr "客户端运行时,文件系统将没有足够空间来部署全部稀疏文件。"
 
-#: virtinst/VirtualDisk.py:746
+#: virtinst/VirtualDisk.py:1008
 msgid "There is not enough free space to create the disk."
 msgstr "没有足够的可用空间创建这个磁盘。"
 
-#: virtinst/VirtualDisk.py:750
+#: virtinst/VirtualDisk.py:1012
 #, python-format
 msgid " %d M requested > %d M available"
 msgstr " 要求的 %d M > 可用的 %d M"
 
-#: virtinst/VirtualDisk.py:840
+#: virtinst/VirtualDisk.py:1175
 msgid "Cannot determine device bus/type."
 msgstr "无法确定设备总线/类型。"
 
-#: virtinst/VirtualDisk.py:847
+#: virtinst/VirtualDisk.py:1182
 msgid "IDE CDROM must use 'hdc', but target in use."
 msgstr "IDE CDROM 必须是 'hdc',但目标已经被使用。 "
 
-#: virtinst/VirtualDisk.py:863
+#: virtinst/VirtualDisk.py:1198
 #, python-format
 msgid "No more space for disks of type '%s'"
 msgstr "没有 '%s' 类型磁盘可用的空间"
 
-#: virtinst/VirtualGraphics.py:38
+#: virtinst/VirtualGraphics.py:40
 msgid "Unknown graphics type"
 msgstr "未知图形类型"
 
-#: virtinst/VirtualGraphics.py:61
+#: virtinst/VirtualGraphics.py:63
 msgid "Keymap must be a string"
 msgstr "Keymap 必须是一个字符串"
 
-#: virtinst/VirtualGraphics.py:63
+#: virtinst/VirtualGraphics.py:65
 msgid "Keymap must be less than 16 characters"
 msgstr "Keymap 必须少于 16 个字符"
 
-#: virtinst/VirtualGraphics.py:65
+#: virtinst/VirtualGraphics.py:67
 msgid "Keymap can only contain alphanumeric, '_', or '-' characters"
 msgstr "Keyap 只能包含数字字母、'_' 或者 '-' 字符。"
 
-#: virtinst/VirtualGraphics.py:76
+#: virtinst/VirtualGraphics.py:78
 msgid ""
 "VNC port must be a number between 5900 and 65535, or -1 for auto allocation"
 msgstr "VNC 端口必须是 5900 和 65535 之间的,使用 -l 可自动分配"
 
-#: virtinst/VirtualHostDevice.py:39
+#: virtinst/VirtualHostDevice.py:43
 msgid "'name' or 'nodedev' required."
-msgstr ""
+msgstr "需要 'name' 或者 'nodedev'。"
 
-#: virtinst/VirtualHostDevice.py:58
+#: virtinst/VirtualHostDevice.py:62
 #, python-format
 msgid "Node device type '%s' cannot be attached to  guest."
-msgstr ""
+msgstr "无法将节点设备类型 '%s' 附加到客体中。"
 
-#: virtinst/VirtualHostDevice.py:124
-#, fuzzy
+#: virtinst/VirtualHostDevice.py:130
 msgid "'nodedev' must be a USBDevice instance."
-msgstr "'conn' 必须是一个 virConnect 事件。"
+msgstr "'nodedev' 必须是 USBDevice 事件。"
 
-#: virtinst/VirtualHostDevice.py:140
+#: virtinst/VirtualHostDevice.py:146
 msgid "'vendor' and 'product', or 'bus' and  'device' are required."
-msgstr ""
+msgstr "需要 'vendor' 和 'product',或者 'bus' 和  'device'。"
 
-#: virtinst/VirtualHostDevice.py:173
-#, fuzzy
+#: virtinst/VirtualHostDevice.py:179
 msgid "'nodedev' must be a PCIDevice instance."
-msgstr "'conn' 必须是一个 virConnect 事件。"
+msgstr "'nodedev' 必须是 PCIDevice 事件。"
 
-#: virtinst/VirtualHostDevice.py:182
+#: virtinst/VirtualHostDevice.py:188
 msgid "'domain', 'bus', 'slot', and 'function' must be specified."
-msgstr ""
+msgstr "必须指定 'domain'、'bus'、'slot' 和 'function'。"
 
-#: virtinst/VirtualHostDevice.py:207
+#: virtinst/VirtualHostDevice.py:215
 #, python-format
 msgid "Could not detach PCI device: %s"
-msgstr ""
+msgstr "无法分离 PCI 设备:%s"
+
+#: virtinst/VirtualInputDevice.py:46
+#, fuzzy, python-format
+msgid "Unknown input type '%s'."
+msgstr "位置设备类型 '%s'"
 
-#: virtinst/VirtualNetworkInterface.py:40
+#: virtinst/VirtualInputDevice.py:54
+#, fuzzy, python-format
+msgid "Unknown input bus '%s'."
+msgstr "未知操作系统变体 '%s'"
+
+#: virtinst/VirtualNetworkInterface.py:45
 #, fuzzy
-msgid "MAC address must be a string."
-msgstr "操作系统类型必须是一个字符串。"
+msgid "Shared physical device"
+msgstr "网络磁盘设备"
 
-#: virtinst/VirtualNetworkInterface.py:46
-msgid "MAC address must be of the format AA:BB:CC:DD:EE:FF"
-msgstr "MAC 地址的格式必须为 AA:BB:CC:DD:EE:FF"
+#: virtinst/VirtualNetworkInterface.py:47
+msgid "Virtual networking"
+msgstr ""
+
+#: virtinst/VirtualNetworkInterface.py:49
+msgid "Usermode networking"
+msgstr ""
+
+#: virtinst/VirtualNetworkInterface.py:51
+#, fuzzy, python-format
+msgid "Unknown network type '%s'"
+msgstr "未知网络类型 %s"
 
-#: virtinst/VirtualNetworkInterface.py:57
+#: virtinst/VirtualNetworkInterface.py:72
 msgid "A network name was not provided"
 msgstr "没有提供网络名称"
 
-#: virtinst/VirtualNetworkInterface.py:63
+#: virtinst/VirtualNetworkInterface.py:78
 #, python-format
 msgid "Unknown network type %s"
 msgstr "未知网络类型 %s"
 
-#: virtinst/VirtualNetworkInterface.py:79
-#, fuzzy, python-format
+#: virtinst/VirtualNetworkInterface.py:90
+msgid "MAC address must be a string."
+msgstr "MAC 地址必须是一个字符串。"
+
+#: virtinst/VirtualNetworkInterface.py:94
+msgid "MAC address must be of the format AA:BB:CC:DD:EE:FF"
+msgstr "MAC 地址的格式必须为 AA:BB:CC:DD:EE:FF"
+
+#: virtinst/VirtualNetworkInterface.py:113
+#, python-format
 msgid "Virtual network '%s' does not exist: %s"
-msgstr "系统磁盘 %s 不存在"
+msgstr "虚拟网络 '%s' 不存在:%s"
 
-#: virtinst/VirtualNetworkInterface.py:82
+#: virtinst/VirtualNetworkInterface.py:116
 #, python-format
 msgid "Virtual network '%s' has not been started."
-msgstr ""
+msgstr "还没有启动虚拟网络 '%s'。"
 
-#: virtinst/VirtualNetworkInterface.py:105
+#: virtinst/VirtualNetworkInterface.py:139
 msgid ""
 "The MAC address you entered is already in use by another active virtual "
 "machine."
-msgstr "您输入的 MAC 地址已经被另一个激活的虚拟机使用。"
+msgstr "您输入的 MAC 地址已经被另一个活跃的虚拟机使用。"
 
-#: virtinst/VirtualNetworkInterface.py:108
+#: virtinst/VirtualNetworkInterface.py:142
 msgid ""
 "The MAC address you entered conflicts with a device on the physical host."
 msgstr "您输入的 MAC 地址与物理主机中的设备冲突。"
 
-#: virtinst/VirtualNetworkInterface.py:110
+#: virtinst/VirtualNetworkInterface.py:144
 msgid ""
 "The MAC address you entered is already in use by another inactive virtual "
 "machine."
 msgstr "您输入的 MAC 地址已经被另一个不活跃的虚拟机使用。"
 
-#: virtconv/diskcfg.py:242
-#, fuzzy, python-format
+#: virtconv/diskcfg.py:251
+#, python-format
 msgid "Cannot convert to disk format %s"
-msgstr "未知磁盘格式:%s"
+msgstr "无法转换成磁盘格式 %s"
 
-#: virtconv/diskcfg.py:255
+#: virtconv/diskcfg.py:264
 #, python-format
 msgid "Cannot convert disk with absolute path %s"
-msgstr ""
+msgstr "无法转换出带绝对路径 %s 的磁盘"
 
 #: virtconv/formats.py:141
-#, fuzzy
 msgid "Unknown format"
-msgstr "未知磁盘格式:%s"
+msgstr "未知格式"
 
 #: virtconv/vmcfg.py:71
 msgid "VM name is not set"
-msgstr ""
+msgstr "没有设置 VM 名称"
 
 #: virtconv/vmcfg.py:77
 msgid "VM type is not set"
-msgstr ""
+msgstr "没有设置 VM 类型"
 
 #: virtconv/vmcfg.py:79
 msgid "VM arch is not set"
-msgstr ""
+msgstr "没有设置 VM 构架"
 
 #: virtconv/vmcfg.py:83
-#, fuzzy, python-format
+#, python-format
 msgid "Disk %s:%s storage does not exist"
-msgstr "系统磁盘 %s 不存在"
+msgstr "磁盘 %s:%s 存储不存在"
 
-#: virtconv/parsers/virtimage.py:212
+#: virtconv/parsers/ovf.py:212
+#, python-format
+msgid "Didn't find parent bus for disk '%s'"
+msgstr ""
+
+#: virtconv/parsers/ovf.py:226 virtconv/parsers/ovf.py:242
 #, fuzzy, python-format
+msgid "Unknown reference id '%s' for path %s."
+msgstr "未知磁盘格式:%s"
+
+#: virtconv/parsers/ovf.py:235
+#, fuzzy, python-format
+msgid "Unknown storage path type %s."
+msgstr "未知存储池类型:%s"
+
+#: virtconv/parsers/ovf.py:396
+#, python-format
+msgid ""
+"OVF section '%s' is listed as required, but parser doesn't know how to "
+"handle it."
+msgstr ""
+
+#: virtconv/parsers/virtimage.py:212
+#, python-format
 msgid "Couldn't import file '%s': %s"
-msgstr "无法获得文件 %s:%s"
+msgstr "无法导入文件 '%s':%s"
 
 #: virtconv/parsers/virtimage.py:219
 #, python-format
 msgid "No Name defined in '%s'"
-msgstr ""
+msgstr "在 '%s' 中没有定义名称"
 
 #: virtconv/parsers/virtimage.py:238
-#, fuzzy
 msgid "Unable to determine disk format"
-msgstr "无法确定内核 RPM 路径"
+msgstr "无法确定磁盘格式"
 
 #: virtconv/parsers/virtimage.py:265
 msgid "VM must have a memory setting"
-msgstr ""
+msgstr "VM 必须有内存设置"
 
 #: virtconv/parsers/vmx.py:216
 #, python-format
 msgid "Syntax error at line %d: %s"
-msgstr ""
+msgstr "在行 %d 中有语法错误:%s"
 
 #: virtconv/parsers/vmx.py:230
 #, python-format
 msgid "No displayName defined in \"%s\""
-msgstr ""
+msgstr "在 \"%s\" 中没有定义 displayName"
 
-#: virt-clone:43
+#: virt-clone:47
 msgid "What is the name for the cloned virtual machine?"
 msgstr "克隆虚拟机的名称是什么?"
 
-#: virt-clone:61
+#: virt-clone:48
 #, fuzzy
-msgid "What is the name of the original virtual machine?"
-msgstr "原始虚拟机的名称或者 uuid 是什么?"
-
-#: virt-clone:102
-#, fuzzy, python-format
-msgid "What would you like to use as the cloned disk (file path) for '%s'?"
-msgstr "作为克隆的磁盘(文件路径)您希望如何使用?"
+msgid "A name is required for the new virtual machine."
+msgstr "虚拟机需要一个名称。"
 
-#: virt-clone:113
-#, python-format
-msgid "This will overwrite the existing path '%s'!\n"
-msgstr "这将会覆盖当前路径 '%s'!\n"
+#: virt-clone:65
+msgid "What is the name of the original virtual machine?"
+msgstr "原始虚拟机的名称是什么?"
 
-#: virt-clone:115
-msgid "Do you really want to use this disk (yes or no)?"
-msgstr "您确实要使用这个磁盘吗(是或者否)?"
+#: virt-clone:66
+#, fuzzy
+msgid "An original machine name or xml file is required."
+msgstr "需要原始客体名称或者 xml。"
 
-#: virt-clone:120 virt-install:206 virt-install.orig:206
+#: virt-clone:112
 #, python-format
-msgid "Disk %s is already in use by another guest!\n"
-msgstr "磁盘 %s 已经被其它客户端使用!\n"
-
-#: virt-clone:121 virt-install:207 virt-install.orig:207
-msgid "Do you really want to use the disk (yes or no)? "
-msgstr "您确实要使用这个磁盘吗(是或者否)?"
+msgid "What would you like to use as the cloned disk (file path) for '%s'?"
+msgstr "作为克隆的磁盘(文件路径)您希望如何使用 '%s'?"
 
-#: virt-clone:148 virt-image:88 virt-install:334 virt-install.orig:334
+#: virt-clone:134 virt-image:78 virt-install:499
 msgid "Connect to hypervisor with URI"
 msgstr "使用 URI 连接到监控程序"
 
-#: virt-clone:151 virt-image:91 virt-install:337 virt-install.orig:337
+#: virt-clone:137 virt-image:81 virt-install:502
 msgid "General Options"
 msgstr "通用选项"
 
-#: virt-clone:154
-#, fuzzy
+#: virt-clone:140
 msgid "Name of the original guest; The status must be shut off or paused."
-msgstr "原始客户端的名称或者 uuid;必须为关闭状态"
+msgstr "原始客体的名称;必须为关闭或者暂停状态。"
 
-#: virt-clone:159
-#, fuzzy
+#: virt-clone:145
 msgid "XML file to use as the original guest."
-msgstr "作为磁盘映像使用的文件"
+msgstr "将 XML 文件作为原始客体使用。"
+
+#: virt-clone:147
+msgid ""
+"Auto generate clone name and storage paths from the original guest "
+"configuration."
+msgstr ""
 
-#: virt-clone:162
+#: virt-clone:151
 msgid "Name for the new guest"
 msgstr "新客户端的名称"
 
-#: virt-clone:166
+#: virt-clone:155
 msgid "New UUID for the clone guest; Default is a randomly generated UUID"
 msgstr "克隆客户端的新 UUID;默认为随机生成 UUID"
 
-#: virt-clone:170 virt-install:415 virt-install.orig:415
+#: virt-clone:159 virt-install:588
 msgid "Storage Configuration"
 msgstr "存储配置"
 
-#: virt-clone:174
+#: virt-clone:163
 msgid "New file to use as the disk image for the new guest"
 msgstr "作为新客户端磁盘映像的新文件"
 
-#: virt-clone:179
+#: virt-clone:168
 msgid ""
 "Force to copy devices (eg, if 'hdc' is a readonly cdrom device, --force-"
 "copy=hdc)"
 msgstr ""
 "强制复制设备(例如:如果 'hdc' 是随机光驱设备,则使用 --force-copy=hdc)"
 
-#: virt-clone:183
+#: virt-clone:172
 msgid "Do not use a sparse file for the clone's disk image"
 msgstr "不要用稀疏文件作为克隆的磁盘映像"
 
-#: virt-clone:187
+#: virt-clone:176
 msgid "Preserve a new file to use as the disk image for the new guest"
 msgstr "保留新文件作为新客户端的磁盘映像使用"
 
-#: virt-clone:191 virt-image:128 virt-install:435 virt-install.orig:435
+#: virt-clone:180 virt-image:118 virt-install:610
 msgid "Networking Configuration"
 msgstr "联网配置"
 
-#: virt-clone:195
+#: virt-clone:184
 msgid ""
 "New fixed MAC address for the clone guest. Default is a randomly generated "
 "MAC"
 msgstr "克隆客户端的新固定 MAC 地址。默认为随机生成 MAC。"
 
-#: virt-clone:199 virt-image:158 virt-install:470 virt-install.orig:470
+#: virt-clone:188 virt-image:138 virt-install:639
 msgid "Miscellaneous Options"
 msgstr "其它选项"
 
-#: virt-clone:201 virt-convert:91 virt-image:172 virt-install:472
-#: virt-install.orig:472
+#: virt-clone:190 virt-convert:91 virt-image:152 virt-install:641
 msgid "Print debugging information"
 msgstr "输入故障排除信息"
 
-#: virt-clone:203 virt-image:174
+#: virt-clone:192 virt-image:154 virt-install:652
+#, fuzzy
+msgid "Request user input for ambiguous situations or required options."
+msgstr "在模糊状态请求用户输入。默认为 false,如果出现提示符则会终止。"
+
+#: virt-clone:195 virt-image:157
 msgid ""
 "Do not prompt for input. Answers yes where applicable, terminates for all "
 "other prompts"
 msgstr "不要提示输入。在需要的地方回答 yes,终止所有其它提示。"
 
-#: virt-clone:219
-#, fuzzy
+#: virt-clone:212
 msgid "Must be privileged to clone Xen guests"
-msgstr "必须是根用户才能克隆 Xen 客户端"
+msgstr "必须有特权才能克隆 Xen 客体"
 
-#: virt-clone:250
+#: virt-clone:242
 #, python-format
 msgid ""
 "\n"
 "Clone '%s' created successfully."
 msgstr ""
+"\n"
+"克隆 '%s' 成功。"
 
-#: virt-clone:265 virt-image:283 virt-install:784 virt-install.orig:784
+#: virt-clone:257 virt-image:267 virt-install:933
 msgid "Installation aborted at user request"
 msgstr "根据用户要求取消安装"
 
 #: virt-convert:50
 msgid "Input format, e.g. 'vmx'"
-msgstr ""
+msgstr "输入格式,例如:'vmx'"
 
 #: virt-convert:53
 msgid "Output format, e.g. 'virt-image'"
-msgstr ""
+msgstr "输出格式,例如:'virt-image'"
 
 #: virt-convert:55
 msgid "Output disk format"
-msgstr ""
+msgstr "删除磁盘格式"
 
-#: virt-convert:60 virt-install:386 virt-install.orig:386
+#: virt-convert:60 virt-install:557
 msgid "This guest should be a fully virtualized guest"
 msgstr "客户端应该是一个全虚拟客户端"
 
-#: virt-convert:62 virt-install:388 virt-install.orig:388
+#: virt-convert:62 virt-install:559
 msgid "This guest should be a paravirtualized guest"
 msgstr "这个客户端一个是一个半虚拟客户端"
 
 #: virt-convert:68
 msgid "Machine Architecture Type (i686/x86_64/ppc)"
-msgstr ""
+msgstr "机器构架类型(i686/x86_64/ppc)"
 
-#: virt-convert:71 virt-install:360 virt-install.orig:360
+#: virt-convert:71 virt-install:525
 msgid ""
 "The OS type for fully virtualized guests, e.g. 'linux', 'unix', 'windows'"
 msgstr "全虚拟客户端的操作系统类型,例如:'linux'、'unix'、'windows'"
 
 #: virt-convert:75
-#, fuzzy
 msgid ""
 "The OS variant for fully virtualized guests, e.g. 'fedora6', 'rhel5', "
 "'solaris10', 'win2k', 'vista'"
 msgstr ""
-"全虚拟客户端的操作系统变体,例如:'fedora6'、'rhel5'、'solaris10'、'win2k'"
+"全虚拟客体的操作系统变体,例"
+"如:'fedora6'、'rhel5'、'solaris10'、'win2k'、'vista'"
 
-#: virt-convert:78 virt-install:376 virt-install.orig:376
+#: virt-convert:78 virt-install:547
 msgid ""
 "Disables APIC for fully virtualized guest (overrides value in os-type/os-"
 "variant db)"
 msgstr "为全虚拟客户端禁用 APIC(在 os-type/os-variant db 中覆盖数值)"
 
-#: virt-convert:82 virt-install:380 virt-install.orig:380
+#: virt-convert:82 virt-install:551
 msgid ""
 "Disables ACPI for fully virtualized guest (overrides value in os-type/os-"
 "variant db)"
@@ -1386,222 +1671,180 @@ msgstr "为全虚拟客户端禁用 ACPI(在 os-type/os-variant db 中覆盖
 
 #: virt-convert:89
 msgid "Don't be verbose"
-msgstr ""
+msgstr "不要详细结果"
 
-#: virt-convert:97
-#, fuzzy
+#: virt-convert:100
 msgid "You need to provide an input VM definition"
-msgstr "您需要提供映像 XML 描述符"
+msgstr "您需要提供输入 VM 定义"
 
-#: virt-convert:99
+#: virt-convert:102
 msgid "Too many arguments provided"
-msgstr ""
+msgstr "提供参数过多"
 
-#: virt-convert:103
-#, fuzzy, python-format
+#: virt-convert:106
+#, python-format
 msgid "Unknown output disk format \"%s\""
-msgstr "未知磁盘格式:%s"
+msgstr "未知输出磁盘格式:\"%s\""
 
-#: virt-convert:118
-#, fuzzy, python-format
+#: virt-convert:121
+#, python-format
 msgid "Unknown output format \"%s\")"
-msgstr "未知磁盘格式:%s"
+msgstr "未知输出格式:\"%s\""
 
-#: virt-convert:120
+#: virt-convert:123
 #, python-format
 msgid "No output handler for format \"%s\")"
-msgstr ""
+msgstr "没有格式 \"%s\" 的输出处理器)"
 
-#: virt-convert:124
+#: virt-convert:127
 #, python-format
 msgid "Couldn't access input argument \"%s\"\n"
-msgstr ""
+msgstr "无法访问输入参数 \"%s\"\n"
 
-#: virt-convert:131
-#, fuzzy, python-format
+#: virt-convert:134
+#, python-format
 msgid "Couldn't determine input format for \"%s\": %s"
-msgstr "无法找到存储池 '%s':%s"
+msgstr "无法为 \"%s\" 决定输入格式:%s"
 
-#: virt-convert:136
-#, fuzzy, python-format
+#: virt-convert:139
+#, python-format
 msgid "Unknown input format \"%s\")"
-msgstr "未知磁盘格式:%s"
+msgstr "未知输入格式:\"%s\")"
 
-#: virt-convert:138
+#: virt-convert:141
 #, python-format
 msgid "No input handler for format \"%s\""
-msgstr ""
+msgstr "没有格式 \"%s\" 的输入处理器)"
 
-#: virt-convert:173
-#, fuzzy, python-format
+#: virt-convert:176
+#, python-format
 msgid "Couldn't clean up output directory \"%s\": %s"
-msgstr "无法查找卷对象:%s"
+msgstr "无法清除输出目录 \"%s\": %s"
 
-#: virt-convert:190 virt-convert:193
-#, fuzzy, python-format
+#: virt-convert:192 virt-convert:195
+#, python-format
 msgid "Couldn't import file \"%s\": %s"
-msgstr "无法获得文件 %s:%s"
+msgstr "无法导入文件 \"%s\": %s"
 
-#: virt-convert:230
+#: virt-convert:232
 #, python-format
 msgid "Generating output in '%(format)s' format to %(dir)s/"
-msgstr ""
+msgstr "在 %(dir)s/ 中以 '%(format)s' 格式生成输出"
 
-#: virt-convert:249
+#: virt-convert:251
 #, python-format
 msgid "Converting disk '%(path)s' to type %(format)s..."
-msgstr ""
+msgstr "正在将磁盘 '%(path)s' 转换为类型 %(format)s......"
 
-#: virt-convert:256 virt-convert:259
-#, fuzzy, python-format
+#: virt-convert:258 virt-convert:261
+#, python-format
 msgid "Couldn't convert disks: %s"
-msgstr "无法获得文件 %s:%s"
+msgstr "无法转换磁盘:%s"
 
-#: virt-convert:265
-#, fuzzy, python-format
+#: virt-convert:267
+#, python-format
 msgid "Couldn't export to file \"%s\": %s"
-msgstr "无法获得文件 %s:%s"
+msgstr "无法导出到文件 \"%s\": %s"
 
-#: virt-convert:277
-#, fuzzy
+#: virt-convert:279
 msgid "Aborted at user request"
-msgstr "根据用户要求取消安装"
+msgstr "根据用户要求丢弃"
 
-#: virt-image:64
-#, python-format
+#: virt-image:50
+#, fuzzy, python-format
 msgid ""
 "Warning: more networks were provided [%i] then nics required [%i]. All "
-"extras are ignored"
+"extras are ignored."
 msgstr "警告:更多网络提供 [%i] 则 nics 需要的 [%i]。所有额外的 nic 都被忽略"
 
-#: virt-image:68
-#, python-format
-msgid "The image requires %i network interface"
+#: virt-image:55
+#, fuzzy, python-format
+msgid "The image requires %i network interface."
 msgstr "映像需要 %i 网络接口"
 
-#: virt-image:94 virt-install:340 virt-install.orig:340
+#: virt-image:84 virt-install:505
 msgid "Name of the guest instance"
 msgstr "客户端事件名称"
 
-#: virt-image:96 virt-install:342 virt-install.orig:342
+#: virt-image:86 virt-install:507
 msgid "Memory to allocate for guest instance in megabytes"
 msgstr "以 MB 为单位为客户端事件分配的内存"
 
-#: virt-image:100 virt-install:349 virt-install.orig:349
+#: virt-image:90 virt-install:514
 msgid "UUID for the guest."
 msgstr "客户端 UUID。"
 
-#: virt-image:102 virt-install:351 virt-install.orig:351
+#: virt-image:92 virt-install:516
 msgid "Number of vcpus to configure for your guest"
 msgstr "配置您的客户端的 vcpu 数目"
 
-#: virt-image:104 virt-install:353 virt-install.orig:353
+#: virt-image:94 virt-install:518
 msgid "Check that vcpus do not exceed physical CPUs and warn if they do."
 msgstr "检查确定 vcpu 没有超过物理 CPU 数目,如果超过则发出警告。"
 
-#: virt-image:108 virt-install:357 virt-install.orig:357
+#: virt-image:98 virt-install:522
 msgid "Set which physical CPUs Domain can use."
 msgstr "设定可以使用的物理 CPU。"
 
-#: virt-image:111
-#, fuzzy
+#: virt-image:101
 msgid "The OS type being installed, e.g. 'linux', 'unix', 'windows'"
-msgstr "全虚拟客户端的操作系统类型,例如:'linux'、'unix'、'windows'"
+msgstr "要安装的操作系统类型,例如:'linux'、'unix'、'windows'"
 
-#: virt-image:115
-#, fuzzy
+#: virt-image:105
 msgid ""
 "The OS variant being installed, e.g. 'fedora6', 'rhel5', 'solaris10', 'win2k'"
-msgstr ""
-"全虚拟客户端的操作系统变体,例如:'fedora6'、'rhel5'、'solaris10'、'win2k'"
+msgstr "要安装的操作系统变体,例如:'fedora6'、'rhel5'、'solaris10'、'win2k'"
 
-#: virt-image:119 virt-install:371 virt-install.orig:371
-#, fuzzy
+#: virt-image:109 virt-install:542
 msgid "Full Virtualization specific options"
-msgstr "全虚拟化指定选项。"
+msgstr "全虚拟化特定选项"
 
-#: virt-image:122
-#, fuzzy
+#: virt-image:112
 msgid "Disables APIC for fully virtualized guest"
-msgstr "客户端应该是一个全虚拟客户端"
+msgstr "为全虚拟客体禁用 APIC"
 
-#: virt-image:125
-#, fuzzy
+#: virt-image:115
 msgid "Disables ACPI for fully virtualized guest"
-msgstr "客户端应该是一个全虚拟客户端"
-
-#: virt-image:131 virt-install:438 virt-install.orig:438
-msgid ""
-"Bridge to connect guest NIC to; if none given, will try to determine the "
-"default"
-msgstr "连接客户端 NIC 的桥接;如果没有给定,则将尝试确定默认桥接"
+msgstr "为全虚拟客体禁用 ACPI"
 
-#: virt-image:135 virt-install:442 virt-install.orig:442
+#: virt-image:121
 msgid ""
-"Connect the guest to a virtual network, forwarding to the physical network "
-"with NAT"
-msgstr "将客户端连接到虚拟网络,使用 NAT 转发到物理网络"
-
-#: virt-image:139 virt-install:446 virt-install.orig:446
-msgid ""
-"Fixed MAC address for the guest; if none or RANDOM is given a random address "
-"will be used"
-msgstr "客户端的固定 MAC 地址;如果没有则使用随机给定的地址。"
-
-#: virt-image:143 virt-install:452 virt-install.orig:452
-msgid "Graphics Configuration"
-msgstr "图形配置"
-
-#: virt-image:145 virt-install:454 virt-install.orig:454
-msgid "Use VNC for graphics support"
-msgstr "用 VNC 进行图形支持"
-
-#: virt-image:147 virt-install:456 virt-install.orig:456
-msgid "Port to use for VNC"
-msgstr "VNC 使用的端口"
-
-#: virt-image:149 virt-install:458 virt-install.orig:458
-msgid "Use SDL for graphics support"
-msgstr "用 SDL 进行图形支持"
-
-#: virt-image:151 virt-install:460 virt-install.orig:460
-msgid "Don't set up a graphical console for the guest."
-msgstr "不要为该客户端设置图形控制台。"
-
-#: virt-image:154 virt-install:467 virt-install.orig:467
-msgid "set up keymap for a graphical console"
-msgstr "为图形控制台设置 keymap"
+"Specify a network interface. Ex:\n"
+"--network bridge=mybr0\n"
+"--network network=libvirt_network_name\n"
+"--network network=mynet,model=e1000,mac=00:11..."
+msgstr ""
 
-#: virt-image:160
+#: virt-image:140
 msgid "Print the libvirt XML, but do not start the domain"
 msgstr "输出 libvirt XML,但不启动该域"
 
-#: virt-image:163
+#: virt-image:143
 msgid "The zero-based index of the boot record to use"
 msgstr "要使用从零开始的引导记录索引"
 
-#: virt-image:165
+#: virt-image:145
 msgid "Overwrite, or destroy, an existing image with the same name"
 msgstr "使用同样的名称覆盖或者销毁当前映像"
 
-#: virt-image:170
+#: virt-image:150
 msgid "Skip disk checksum verification process"
-msgstr ""
+msgstr "跳过磁盘 checksum 验证过程"
 
-#: virt-image:182
+#: virt-image:165
 msgid "You need to provide an image XML descriptor"
 msgstr "您需要提供映像 XML 描述符"
 
-#: virt-image:200
+#: virt-image:184
 msgid "Cannot parse"
 msgstr "无法解析"
 
-#: virt-image:205
+#: virt-image:189
 #, python-format
 msgid "The index for --boot must be between 0 and %d"
 msgstr "--boot 的索引必须在 0 和 %d 之间"
 
-#: virt-image:261
+#: virt-image:245
 #, python-format
 msgid ""
 "\n"
@@ -1612,11 +1855,11 @@ msgstr ""
 "\n"
 "创建客户端 %s......"
 
-#: virt-image:265
+#: virt-image:249
 msgid "Guest creation failed"
 msgstr "客户端创建失败"
 
-#: virt-image:271
+#: virt-image:255
 #, python-format
 msgid ""
 "Domain creation may not have been\n"
@@ -1629,53 +1872,60 @@ msgstr ""
 "重启域,否则请\n"
 "重新开始您的安装。"
 
-#: virt-install:70 virt-install.orig:70
+#: virt-install:84
 #, python-format
 msgid "Couldn't create default storage pool '%s': %s"
 msgstr "无法创建默认存储池 '%s':%s"
 
-#: virt-install:93 virt-install.orig:93
+#: virt-install:107
+#, python-format
+msgid "%(chartype)s type %(devtype)s does not support '%(optname)s' option."
+msgstr ""
+
+#: virt-install:133
+#, fuzzy, python-format
+msgid "Unknown option(s) %s"
+msgstr "未知 --disk 选项 '%s'。"
+
+#: virt-install:147
+#, fuzzy, python-format
+msgid "Error in %(chartype)s device parameters: %(err)s"
+msgstr "存储参数错误:%s"
+
+#: virt-install:170
 msgid "--disk path must start with path=, pool=, or vol=."
 msgstr "--disk 路径必须以 path=、pool= 或者 vol= 开始。"
 
-#: virt-install:121 virt-install:133 virt-install.orig:121
-#: virt-install.orig:133
+#: virt-install:177
+#, python-format
+msgid "Unknown --disk option '%s'."
+msgstr "未知 --disk 选项 '%s'。"
+
+#: virt-install:185 virt-install:197
 #, python-format
 msgid "Unknown '%s' value '%s'"
 msgstr "未知 '%s' 值 '%s'"
 
-#: virt-install:126 virt-install.orig:126
+#: virt-install:190
 #, python-format
 msgid "Improper value for 'size': %s"
 msgstr "'size' 数值不正确:%s"
 
-#: virt-install:137 virt-install.orig:137
-#, python-format
-msgid "Unknown --disk option '%s'."
-msgstr "未知 --disk 选项 '%s'。"
-
-#: virt-install:147 virt-install.orig:147
+#: virt-install:212
 msgid "Size must be specified with all 'pool='"
 msgstr "必须使用所有 'pool=' 指定大小"
 
-#: virt-install:160 virt-install.orig:160
-msgid "Storage volume must be specified as pool=poolname/volname"
+#: virt-install:226
+#, fuzzy
+msgid "Storage volume must be specified as vol=poolname/volname"
 msgstr "存储卷必须指定为 pool=poolname/volname"
 
-#: virt-install:202 virt-install.orig:202
-#, python-format
-msgid "Error with storage parameters: %s"
-msgstr "存储参数错误:%s"
-
-#: virt-install:214 virt-install.orig:214
-msgid " Do you really want to use the disk (yes or no)?"
-msgstr "您确实想要使用这张磁盘吗(是或否)?"
-
-#: virt-install:222 virt-install.orig:222
-msgid "Cannot use --file, --size, or --disk with --nodisks"
+#: virt-install:282
+#, fuzzy
+msgid "Cannot use --file, --file-size, or --disk with --nodisks"
 msgstr "--nodisks 无法 --file、--size 或者 --disk 共用"
 
-#: virt-install:225 virt-install.orig:225
+#: virt-install:285
 msgid ""
 "Cannot mix --file, --nonsparse, or --file-size with --disk options. Please "
 "see the manual for --disk syntax."
@@ -1683,182 +1933,201 @@ msgstr ""
 "--disk 选项不能与 --file、--nonsparse 或者 --file-size 混用。请查看手册中的 "
 "--disk 语法。"
 
-#: virt-install:228 virt-install.orig:228
+#: virt-install:288
 msgid "A disk must be specified (use --nodisks to override)"
 msgstr "必须指定一个磁盘(请使用 --nodisks 覆盖)"
 
-#: virt-install:236 virt-install.orig:236
+#: virt-install:296
 msgid "Need to pass size for each disk"
 msgstr "需要给出每张磁盘的大小"
 
-#: virt-install:251 virt-install.orig:251
+#: virt-install:311
 msgid "Cannot use --mac with --nonetworks"
-msgstr ""
+msgstr "不能使用带 --nonetworks 的 --mac"
 
-#: virt-install:253 virt-install.orig:253
-#, fuzzy
+#: virt-install:313
 msgid "Cannot use --bridges with --nonetworks"
-msgstr "不能混合使用 --bridge 和 --network 参数"
+msgstr "不能使用带 --nonetworks 的 --bridge"
 
-#: virt-install:255 virt-install.orig:255
-#, fuzzy
+#: virt-install:315
 msgid "Cannot use --network with --nonetworks"
-msgstr "--nodisks 无法 --file、--size 或者 --disk 共用"
+msgstr "不能使用带 --nonetworks 的 --network"
+
+#: virt-install:342
+msgid ""
+"Would you like a fully virtualized guest (yes or no)? This will allow you to "
+"run unmodified operating systems."
+msgstr ""
+
+#: virt-install:367
+#, fuzzy, python-format
+msgid "Would you like to use %s acceleration? (yes or no)"
+msgstr "您确实要使用这个磁盘吗(是或者否)?"
+
+#: virt-install:379
+msgid "Can't do both --hvm and --paravirt"
+msgstr "无法同时进行 --hvm 和 --paravirt 操作"
+
+#: virt-install:401 virt-install:402
+msgid "default"
+msgstr "默认"
 
-#: virt-install:275 virt-install.orig:275
+#: virt-install:423
 #, python-format
 msgid "Only one install method (%s) can be used"
-msgstr ""
+msgstr "只能使用一种安装方法(%s)"
 
-#: virt-install:281 virt-install.orig:281
+#: virt-install:429
 msgid "Network PXE boot is not supported for paravirtualized guests"
 msgstr "在半虚拟客户端中还不支持网络 PXE 引导"
 
-#: virt-install:284 virt-install.orig:284
+#: virt-install:432
 msgid "Paravirtualized guests cannot install off cdrom media."
 msgstr "半虚拟客户端无法在没有光盘介质情况下安装"
 
-#: virt-install:287 virt-install.orig:287
+#: virt-install:435
 msgid "--location can not be specified for remote connections."
 msgstr "无法为远程连接指定 --location。"
 
-#: virt-install:296 virt-install.orig:296
-#, fuzzy, python-format
+#: virt-install:444
+#, python-format
 msgid "One of %s, or cdrom media must be specified."
-msgstr "必须指定 --pxe、--location 和 --cdrom 之一。"
+msgstr "必须指定 %s 之一或者 cdrom 介质。"
 
-#: virt-install:314 virt-install.orig:314
+#: virt-install:457
 #, python-format
 msgid "Error creating cdrom disk: %s"
 msgstr "创建光盘失败:%s"
 
-#: virt-install:346 virt-install.orig:346
+#: virt-install:462
+msgid "What is the install CD-ROM/ISO or URL?"
+msgstr ""
+
+#: virt-install:464
+msgid "What is the install URL?"
+msgstr ""
+
+#: virt-install:511
 msgid "The CPU architecture to simulate"
 msgstr "模拟的 CPU 构架"
 
-#: virt-install:364 virt-install.orig:364
+#: virt-install:529
 msgid ""
 "The OS variant for fully virtualized guests, e.g. 'fedora6', 'rhel5', "
 "'solaris10', 'win2k'"
 msgstr ""
 "全虚拟客户端的操作系统变体,例如:'fedora6'、'rhel5'、'solaris10'、'win2k'"
 
-#: virt-install:368 virt-install.orig:368
-msgid "Physical host device to attach to the domain."
+#: virt-install:533
+#, fuzzy
+msgid "Add a serial device to the domain."
+msgstr "要附加到域中的物理主机设备。"
+
+#: virt-install:536
+msgid "Add a parallel device to the domain."
 msgstr ""
 
-#: virt-install:373 virt-install.orig:373
+#: virt-install:539
+msgid "Physical host device to attach to the domain."
+msgstr "要附加到域中的物理主机设备。"
+
+#: virt-install:544
 msgid "Use sound device emulation"
 msgstr "使用仿真声音设备"
 
-#: virt-install:384 virt-install.orig:384
+#: virt-install:555
 msgid "Virtualization Type Options"
 msgstr "虚拟化类型选项"
 
-#: virt-install:391 virt-install.orig:391
-msgid "Use kernel acceleration capabilities (kvm, kqemu, ...)"
-msgstr "使用内核加速功能(kvm、kqemu......)"
+#: virt-install:562
+msgid "Hypervisor name to use (kvm, qemu, xen, ...)"
+msgstr ""
 
-#: virt-install:395 virt-install.orig:395
+#: virt-install:568
 msgid "Installation Method Options"
 msgstr "安装方法选项"
 
-#: virt-install:398 virt-install.orig:398
+#: virt-install:571
 msgid "CD-ROM installation media"
 msgstr "光驱安装介质"
 
-#: virt-install:401 virt-install.orig:401
+#: virt-install:574
 msgid ""
 "Installation source (eg, nfs:host:/path, http://host/path, ftp://host/path)"
 msgstr "安装源(例如:nfs:host:/path、http://host/path、ftp://host/path)"
 
-#: virt-install:404 virt-install.orig:404
+#: virt-install:577
 msgid "Boot from the network using the PXE protocol"
 msgstr "使用 PXE 协议从网络引导"
 
-#: virt-install:406 virt-install.orig:406
-#, fuzzy
+#: virt-install:579
 msgid "Build guest around an existing disk image"
-msgstr "作为磁盘映像使用的文件"
+msgstr "在磁盘映像中构建客体"
 
-#: virt-install:408 virt-install.orig:408
-#, fuzzy
+#: virt-install:581
 msgid "Treat the CD-ROM media as a Live CD"
-msgstr "将光驱介质视为 LiveCD"
+msgstr "将光驱介质视为 Live CD"
 
-#: virt-install:411 virt-install.orig:411
+#: virt-install:584
 msgid "Additional arguments to pass to the kernel booted from --location"
 msgstr "附加到使用 --location 引导的内核的参数"
 
-#: virt-install:418 virt-install.orig:418
-msgid "Specify storage to use as a disk with various options."
-msgstr "使用不同选项指定作为磁盘使用的存储。"
-
-#: virt-install:422 virt-install.orig:422
-msgid "File to use as the disk image"
-msgstr "作为磁盘映像使用的文件"
-
-#: virt-install:425 virt-install.orig:425
-msgid "Size of the disk image (if it doesn't exist) in gigabytes"
-msgstr "磁盘映像大小(如果它不存在的话),以 GB 为单位"
-
-#: virt-install:429 virt-install.orig:429
+#: virt-install:591
 msgid ""
-"Don't use sparse files for disks.  Note that this will be significantly "
-"slower for guest creation"
-msgstr "不要为磁盘使用稀疏文件。请注意这会使得客户端创建变得及其缓慢"
+"Specify storage with various options. Ex.\n"
+"--disk path=/my/existing/disk\n"
+"--disk path=/my/new/disk,size=5 (in gigabytes)\n"
+"--disk vol=poolname:volname,device=cdrom,bus=scsi,..."
+msgstr ""
 
-#: virt-install:432 virt-install.orig:432
+#: virt-install:596
 msgid "Don't set up any disks for the guest."
 msgstr "不要为该客户端设置任何磁盘。"
 
-#: virt-install:449 virt-install.orig:449
-#, fuzzy
+#: virt-install:613
+msgid ""
+"Specify a network interface. Ex:\n"
+"--network bridge=mybr0\n"
+"--network network=my_libvirt_virtual_net\n"
+"--network network=mynet,model=virtio,mac=00:11..."
+msgstr ""
+
+#: virt-install:618
 msgid "Don't create network interfaces for the guest."
-msgstr "不要为该客户端设置任何磁盘。"
+msgstr "不要为该客体创建网络接口。"
 
-#: virt-install:463 virt-install.orig:463
+#: virt-install:632
+msgid "Specify video hardware type."
+msgstr ""
+
+#: virt-install:635
 msgid "Don't automatically try to connect to the guest console"
 msgstr "不要自动尝试连接到客户端控制台"
 
-#: virt-install:474 virt-install.orig:474
+#: virt-install:643
 msgid "Disables the automatic rebooting when the installation is complete."
 msgstr "安装完成时请禁用自动重启。"
 
-#: virt-install:477 virt-install.orig:477
+#: virt-install:646
 msgid "Time to wait (in minutes)"
-msgstr ""
+msgstr "要等待的时间(以分钟为单位)"
 
-#: virt-install:479 virt-install.orig:479
+#: virt-install:648
 msgid "Forces 'yes' for any applicable prompts, terminates for all others"
 msgstr "对任意应用程序提示强制回答‘yes’,终止左右其它提示"
 
-#: virt-install:483 virt-install.orig:483
-msgid ""
-"Request user input for ambiguous situations. Default is false, so will "
-"terminate if a prompt would typically be fired. "
-msgstr "在模糊状态请求用户输入。默认为 false,如果出现提示符则会终止。"
-
-#: virt-install:503 virt-install.orig:503
+#: virt-install:671
 msgid ""
 "Unable to connect to graphical console: virt-viewer not installed. Please "
 "install the 'virt-viewer' package."
 msgstr ""
 "无法连接到图形控制台:没有安装 virt-viewer。请安装 'virt-viewer' 软件包。"
 
-#: virt-install:536 virt-install.orig:536
-msgid "Can't do both --hvm and --paravirt"
-msgstr "无法同时进行 --hvm 和 --paravirt 操作"
-
-#: virt-install:548 virt-install.orig:548
-msgid "default"
-msgstr "默认"
-
-#: virt-install:570 virt-install.orig:570
+#: virt-install:713
 msgid "Can't use --pxe with --nonetworks"
-msgstr ""
+msgstr "不能使用带 --nonetworks 的 --pxe"
 
-#: virt-install:671 virt-install.orig:671
+#: virt-install:818
 msgid ""
 "\n"
 "\n"
@@ -1868,7 +2137,7 @@ msgstr ""
 "\n"
 "开始安装......"
 
-#: virt-install:682 virt-install.orig:682
+#: virt-install:829
 #, python-format
 msgid ""
 "Domain installation does not appear to have been\n"
@@ -1881,7 +2150,7 @@ msgstr ""
 "重启您的域,否则请重\n"
 "新开始安装。"
 
-#: virt-install:693 virt-install.orig:693
+#: virt-install:840
 #, python-format
 msgid ""
 "Guest installation complete... you can restart your domain\n"
@@ -1890,16 +2159,15 @@ msgstr ""
 "客户端安装完成......您可以运行\n"
 " 'virsh start %s' 重启您的域"
 
-#: virt-install:697 virt-install.orig:697
+#: virt-install:844
 msgid "Guest installation complete... restarting guest."
 msgstr "客户端安装完成......重启客户端"
 
-#: virt-install:703 virt-install.orig:703
-#, fuzzy
+#: virt-install:850
 msgid "Guest install interrupted."
-msgstr "客户端安装失败"
+msgstr "客体安装中断。"
 
-#: virt-install:710 virt-install.orig:710
+#: virt-install:857
 #, python-format
 msgid ""
 "Domain installation may not have been\n"
@@ -1912,40 +2180,36 @@ msgstr ""
 "重启您的域,否则请重\n"
 "新开始安装。"
 
-#: virt-install:736 virt-install.orig:736
-#, fuzzy
+#: virt-install:883
 msgid "Guest installation failed."
-msgstr "客户端安装失败"
+msgstr "客体安装失败。"
 
-#: virt-install:746 virt-install.orig:746
-#, fuzzy, python-format
+#: virt-install:893
+#, python-format
 msgid "%d minutes "
-msgstr " %d 分钟"
+msgstr "%d 分钟"
 
-#: virt-install:748 virt-install.orig:748
+#: virt-install:895
 #, fuzzy, python-format
 msgid ""
-"Domain installation still in progress. Waiting %sfor domain to complete "
-"installation."
-msgstr ""
-"域安装仍在进行。您可以重新连接\n"
-"到控制台以便完成安装进程。"
+"Domain installation still in progress. Waiting %sfor installation to "
+"complete."
+msgstr "域安装仍在进行。请等待 %s 完成域安装。"
 
-#: virt-install:754 virt-install.orig:754
+#: virt-install:901
 msgid "Domain has shutdown. Continuing."
 msgstr "域已经关闭。请继续......"
 
-#: virt-install:761 virt-install.orig:761
-#, fuzzy, python-format
+#: virt-install:908
+#, python-format
 msgid "Could not lookup domain after install: %s"
-msgstr "无法查找卷对象:%s"
+msgstr "安装后无法查找域:%s"
 
-#: virt-install:768 virt-install.orig:768
-#, fuzzy
+#: virt-install:915
 msgid "Installation has exceeded specified time limit. Exiting application."
-msgstr "安装已经超过指定的时间限制。取消中。"
+msgstr "安装已经超过指定的时间限制。退出程序。"
 
-#: virt-install:772 virt-install.orig:772
+#: virt-install:921
 msgid ""
 "Domain installation still in progress. You can reconnect to \n"
 "the console to complete the installation process."
@@ -1953,103 +2217,80 @@ msgstr ""
 "域安装仍在进行。您可以重新连接\n"
 "到控制台以便完成安装进程。"
 
-#~ msgid "Name or UUID of guest to clone is required"
-#~ msgstr "需要要克隆的客户端的名称或者 UUID"
-
-#~ msgid "A valid name or UUID of guest to clone is required"
-#~ msgstr "需要要克隆的客户端的有效名称或者 UUID"
-
-#~ msgid "New file to use for disk image is required"
-#~ msgstr "需要磁盘映像使用的新文件"
+#~ msgid "Could not find usable default libvirt connection."
+#~ msgstr "无法找到可用默认 libvirt 连接。"
 
-#~ msgid "Domain status must be SHUTOFF"
-#~ msgstr "域状态必须是 SHUTOFF"
+#~ msgid "Unknown network type "
+#~ msgstr "未知物理类型"
 
-#~ msgid "Domain %s already exists"
-#~ msgstr "域 %s 已存在"
-
-#, fuzzy
-#~ msgid "Cloning from %(src)s to %(dst)s..."
-#~ msgstr "从 %(src)s 克隆到 %(dst)s"
-
-#~ msgid "Invalid file location given: "
-#~ msgstr "给出的文件位置无效:"
-
-#, fuzzy
-#~ msgid "Invalid file location given: %s: %s"
-#~ msgstr "给出的文件位置无效:"
+#~ msgid "Need to pass equal numbers of networks & mac addresses"
+#~ msgstr "需要给出等量的网络和 mac 地址"
 
-#~ msgid "Connection does not support HVM virtualisation, cannot boot live CD"
-#~ msgstr "连接不支持 HVM 虚拟化,无法引导 live CD。"
+#~ msgid "Cannot clone remote VM storage."
+#~ msgstr "无法克隆远程 VM 存储。"
 
-#~ msgid "Storage object name must be a string "
-#~ msgstr "存储对象名称必须是一个字符串"
+#~ msgid "Missing path to use as disk clone destination for '%s'"
+#~ msgstr "缺少作为 '%s' 磁盘克隆目的地的路径"
 
-#~ msgid "Storage object name can not be only "
-#~ msgstr "存储对象名称不能只是"
+#~ msgid "Could not determine storage type for '%s'"
+#~ msgstr "无法确定 '%s' 的存储类型"
 
-#~ msgid "Storage object name can only contain "
-#~ msgstr "存储对象名称只能包含"
+#~ msgid "Disk volume creation is not implemented."
+#~ msgstr "没有使用磁盘卷创建。"
 
-#~ msgid "'%s' is not managed on remote host: %s"
-#~ msgstr "远程主机中不管理 '%s':%s"
-
-#~ msgid "Cannot parse capabilities"
-#~ msgstr "无法解析容量"
-
-#~ msgid "Only one of --pxe, --location and --cdrom can be used"
-#~ msgstr "只能使用 --pxe、--location 和 --cdrom 之一"
-
-#~ msgid "location must be specified for paravirtualized guests."
-#~ msgstr "必须为半虚拟客户端指定位置。"
-
-#~ msgid "Domain installation still in progress. Waiting"
-#~ msgstr "域安装仍在进行,请等待"
+#~ msgid ""
+#~ "Bridge to connect guest NIC to; if none given, will try to determine the "
+#~ "default"
+#~ msgstr "连接客户端 NIC 的桥接;如果没有给定,则将尝试确定默认桥接"
 
 #~ msgid ""
-#~ "UUID for the guest; if none is given a random UUID will be generated. If "
-#~ "you specify UUID, you should use a 32-digit hexadecimal number."
-#~ msgstr ""
-#~ "客户端的 UUID;如果没有给定则会随机生成 UUID。如果指定 UUID,则应该使用 "
-#~ "32 位十六进制数字。"
+#~ "Connect the guest to a virtual network, forwarding to the physical "
+#~ "network with NAT"
+#~ msgstr "将客户端连接到虚拟网络,使用 NAT 转发到物理网络"
 
 #~ msgid ""
-#~ "Total time to wait for VM to shutdown if console not present. Time less "
-#~ "than 0 waits indefinitely."
-#~ msgstr "控制台没有出现时等待 VM 关闭的总时间。如果时间小于 0 则一定要等待。"
+#~ "Fixed MAC address for the guest; if none or RANDOM is given a random "
+#~ "address will be used"
+#~ msgstr "客户端的固定 MAC 地址;如果没有则使用随机给定的地址。"
 
-#~ msgid "The image name and version must be present"
-#~ msgstr "必须有映像名称和版本"
+#~ msgid "Use kernel acceleration capabilities (kvm, kqemu, ...)"
+#~ msgstr "使用内核加速功能(kvm、kqemu......)"
 
-#~ msgid "Scratch disk %s does not have a size attribute"
-#~ msgstr "暂存盘 %s 没有大小属性"
+#~ msgid "Specify storage to use as a disk with various options."
+#~ msgstr "使用不同选项指定作为磁盘使用的存储。"
 
-#~ msgid "Disk file %s could not be found"
-#~ msgstr "无法找到磁盘文件 %s"
+#~ msgid "File to use as the disk image"
+#~ msgstr "作为磁盘映像使用的文件"
 
-#~ msgid "Writing %s"
-#~ msgstr "写入 %s"
+#~ msgid "Size of the disk image (if it doesn't exist) in gigabytes"
+#~ msgstr "磁盘映像大小(如果它不存在的话),以 GB 为单位"
 
-#~ msgid "Directory in which packaged file will be put"
-#~ msgstr "放入打包文件的目录"
+#~ msgid ""
+#~ "Don't use sparse files for disks.  Note that this will be significantly "
+#~ "slower for guest creation"
+#~ msgstr "不要为磁盘使用稀疏文件。请注意这会使得客户端创建变得及其缓慢"
 
-#~ msgid "The image descriptor must contain name and version"
-#~ msgstr "映像描述符必须含有名称和版本"
+#~ msgid "Force flag is set but input was required. Prompt was: %s"
+#~ msgstr "设置了 Force 标签参需要输入。提示为:%s"
 
-#~ msgid "Validation failed: %s"
-#~ msgstr "确认失败:%s"
+#~ msgid "Prompting disabled, but input was requested. Prompt was: %s"
+#~ msgstr "禁用提示,但需要输入。提示为:%s"
 
-#~ msgid "Packaging failed: %s"
-#~ msgstr "打包失败:%s"
+#~ msgid ""
+#~ "Prompting disabled, but yes/no was requested. Try --force to force 'yes' "
+#~ "for such prompts. Prompt was: %s"
+#~ msgstr ""
+#~ "禁用提示,但需要输入 yes/no。请为这种提示尝试使用 --force 强制为 'yes'。提"
+#~ "示为:%s"
 
-#~ msgid "Cloning domain..."
-#~ msgstr "克隆域......"
+#~ msgid "ERROR: "
+#~ msgstr "错误:"
 
-#~ msgid "NFS installations are only supported as root"
-#~ msgstr "只在根用户中支持 NFS 安装"
+#~ msgid "OpenSolaris microroot not found at %s"
+#~ msgstr "在 %s 中没有找到 OpenSolaris microroot"
 
-#~ msgid "Verifying install location..."
-#~ msgstr "确认安装位置......"
+#~ msgid "Do you really want to use the disk (yes or no)? "
+#~ msgstr "您确实要使用这个磁盘吗(是或者否)?"
 
-#~ msgid "Unsupported virtualization type"
-#~ msgstr "不支持的虚拟化类型"
+#~ msgid " Do you really want to use the disk (yes or no)?"
+#~ msgstr "您确实想要使用这张磁盘吗(是或否)?"
diff --git a/python-virtinst.spec b/python-virtinst.spec
index 44187fd..cca4798 100644
--- a/python-virtinst.spec
+++ b/python-virtinst.spec
@@ -19,7 +19,7 @@
 
 Summary: Python modules and utilities for installing virtual machines
 Name: python-%{appname}
-Version: 0.400.3
+Version: 0.500.0
 Release: 1%{_extra_release}
 Source0: http://virt-manager.org/download/sources/%{appname}/%{appname}-%{version}.tar.gz
 License: GPLv2+
@@ -77,6 +77,18 @@ rm -rf $RPM_BUILD_ROOT
 %{_bindir}/virt-convert
 
 %changelog
+* Tue Jul 28 2009 Cole Robinson <crobinso at redhat.com> - 0.500.0-1
+- New virt-install device options --serial, --parallel, and --video
+- Allow various auth types for libvirt connections (PolicyKit, SASL, ...)
+- New virt-clone option --auto-clone: generates all needed input.
+- Specify network device model via virt-install --network (Guido Gunther)
+
+* Tue Mar  9 2009 Cole Robinson <crobinso at redhat.com> - 0.400.3-1
+- Bug fix release
+- virt-install --file was busted
+- virt-install --os-type windows was busted for --cdrom installs
+- virt-install --os-variant values weren't used if installing from a URL
+
 * Tue Mar  3 2009 Cole Robinson <crobinso at redhat.com> - 0.400.2-1
 - virt-install --import option for creating a guest from an existing disk
 - virt-install --host-device option for host device passthrough
diff --git a/setup.py b/setup.py
index f783857..39a2922 100755
--- a/setup.py
+++ b/setup.py
@@ -19,7 +19,7 @@ datafiles = [('share/man/man1', ['man/en/virt-install.1',
 locale = None
 builddir = None
 
-VERSION="0.400.3"
+VERSION="0.500.0"
 
 class TestBaseCommand(Command):
 
@@ -51,6 +51,16 @@ class TestBaseCommand(Command):
 class TestCommand(TestBaseCommand):
 
     description = "Runs a quick unit test suite"
+    user_options = TestBaseCommand.user_options + \
+                   [("testfile=", None, "Specific test file to run (e.g "
+                                        "validation, storage, ...)"),]
+
+    def initialize_options(self):
+        TestBaseCommand.initialize_options(self)
+        self.testfile = None
+
+    def finalize_options(self):
+        TestBaseCommand.finalize_options(self)
 
     def run(self):
         '''
@@ -58,14 +68,40 @@ class TestCommand(TestBaseCommand):
         '''
         testfiles = []
         for t in glob(pjoin(self._dir, 'tests', '*.py')):
-            if not t.endswith('__init__.py') and \
-               not t.endswith("urltest.py"):
-                testfiles.append('.'.join(
-                    ['tests', splitext(basename(t))[0]])
-                )
+            if (not t.endswith('__init__.py') and
+                not t.endswith("urltest.py") and
+                not t.endswith("clitest.py")):
+
+                if self.testfile:
+                    base = os.path.basename(t)
+                    check = os.path.basename(self.testfile)
+                    if base != check and base != (check + ".py"):
+                        continue
+
+                testfiles.append('.'.join(['tests',
+                                           splitext(basename(t))[0]]))
         self._testfiles = testfiles
         TestBaseCommand.run(self)
 
+class TestCLI(TestBaseCommand):
+
+    description = "Test various CLI invocations"
+
+    user_options = (TestBaseCommand.user_options +
+                    [("prompt", None, "Run interactive CLI invocations.")])
+
+    def initialize_options(self):
+        TestBaseCommand.initialize_options(self)
+        self.prompt = 0
+
+    def run(self):
+        cmd = "python tests/clitest.py"
+        if self.debug:
+            cmd += " debug"
+        if self.prompt:
+            cmd += " prompt"
+        os.system(cmd)
+
 class TestURLFetch(TestBaseCommand):
 
     description = "Test fetching kernels and isos from various distro trees"
@@ -281,6 +317,7 @@ setup(name='virtinst',
       packages=pkgs,
       data_files = datafiles,
       cmdclass = { 'test': TestCommand, 'test_urls' : TestURLFetch,
+                   'test_cli' : TestCLI,
                     'check': CheckPylint,
                     'rpm' : custom_rpm,
                     'sdist': sdist, 'build': build,
diff --git a/tests/__init__.py b/tests/__init__.py
index e26f4ff..6d0122f 100644
--- a/tests/__init__.py
+++ b/tests/__init__.py
@@ -18,6 +18,11 @@ import libvirt
 import difflib
 import logging
 import os, sys
+import virtinst
+
+# Force is_blktap_capable to return a consistent value, so test suite
+# won't change based on the system
+virtinst._util.is_blktap_capable = lambda: False
 
 # Setup logging
 rootLogger = logging.getLogger()
@@ -38,6 +43,9 @@ else:
 os.environ["HOME"] = "/testdir"
 os.environ["DISPLAY"] = ":3.4"
 
+def open_testdriver():
+    return libvirt.open("test:///%s/tests/testdriver.xml" % os.getcwd())
+
 # Register libvirt handler
 def libvirt_callback(ignore, err):
     logging.warn("libvirt errmsg: %s" % err[2])
@@ -51,9 +59,10 @@ def read_file(filename):
 
     return out
 
-def diff_compare(actual_out, filename):
+def diff_compare(actual_out, filename, expect_out=None):
     """Compare passed string output to contents of filename"""
-    expect_out = read_file(filename)
+    if not expect_out:
+        expect_out = read_file(filename)
 
     diff = "".join(difflib.unified_diff(expect_out.splitlines(1),
                                         actual_out.splitlines(1),
diff --git a/tests/capabilities-xml/capabilities-qemu.xml b/tests/capabilities-xml/capabilities-qemu.xml
index 855e725..569b1a0 100644
--- a/tests/capabilities-xml/capabilities-qemu.xml
+++ b/tests/capabilities-xml/capabilities-qemu.xml
@@ -3,6 +3,10 @@
     <cpu>
       <arch>x86_64</arch>
     </cpu>
+    <secmodel>
+      <model>selinux</model>
+      <doi>0</doi>
+    </secmodel>
   </host>
 
   <guest>
diff --git a/tests/capabilities.py b/tests/capabilities.py
index ecb2784..19bdefa 100644
--- a/tests/capabilities.py
+++ b/tests/capabilities.py
@@ -32,17 +32,22 @@ class TestCapabilities(unittest.TestCase):
         for n in features:
             self.assertEqual(features[n],        guest.features[n])
 
-    def _testCapabilities(self, path, (host_arch, host_features), guests):
+    def _testCapabilities(self, path, (host_arch, host_features), guests,
+                          secmodel=None):
         caps = capabilities.parse(file(os.path.join("tests/capabilities-xml", path)).read())
 
         self.assertEqual(host_arch,     caps.host.arch)
         for n in host_features:
             self.assertEqual(host_features[n], caps.host.features[n])
 
+        if secmodel:
+            self.assertEqual(secmodel[0], caps.host.secmodel.model)
+            self.assertEqual(secmodel[1], caps.host.secmodel.doi)
+
         map(self._compareGuest, guests, caps.guests)
 
     def testCapabilities1(self):
-        host = ( 'x86_64', {'vmx': capabilities.FEATURE_ON} )
+        host = ( 'x86_64', {'vmx': capabilities.FEATURE_ON})
 
         guests = [
             ( 'x86_64', 'xen',
@@ -58,7 +63,8 @@ class TestCapabilities(unittest.TestCase):
         self._testCapabilities("capabilities-xen.xml", host, guests)
 
     def testCapabilities2(self):
-        host = ( 'x86_64', {} )
+        host = ( 'x86_64', {})
+        secmodel = ('selinux', '0')
 
         guests = [
             ( 'x86_64', 'hvm',
@@ -75,10 +81,10 @@ class TestCapabilities(unittest.TestCase):
               [['qemu','/usr/bin/qemu-system-ppc', ['g3bw', 'mac99', 'prep']]], {} ),
         ]
 
-        self._testCapabilities("capabilities-qemu.xml", host, guests)
+        self._testCapabilities("capabilities-qemu.xml", host, guests, secmodel)
 
     def testCapabilities3(self):
-        host = ( 'i686', {} )
+        host = ( 'i686', {})
 
         guests = [
             ( 'i686',   'hvm',
@@ -99,7 +105,8 @@ class TestCapabilities(unittest.TestCase):
         self._testCapabilities("capabilities-kvm.xml", host, guests)
 
     def testCapabilities4(self):
-        host = ( 'i686', { 'pae': capabilities.FEATURE_ON|capabilities.FEATURE_OFF } )
+        host = ( 'i686',
+                 { 'pae': capabilities.FEATURE_ON|capabilities.FEATURE_OFF })
 
         guests = [
             ( 'i686', 'linux',
diff --git a/tests/cli-test-xml/clone-disk-managed.xml b/tests/cli-test-xml/clone-disk-managed.xml
new file mode 100644
index 0000000..2018111
--- /dev/null
+++ b/tests/cli-test-xml/clone-disk-managed.xml
@@ -0,0 +1,25 @@
+<domain type='test' id='1'>
+  <name>origtest</name>
+  <uuid>db69fa1f-eef0-e567-3c20-3ef16f10376b</uuid>
+  <memory>8388608</memory>
+  <currentMemory>2097152</currentMemory>
+  <vcpu>2</vcpu>
+  <os>
+    <type arch='i686'>hvm</type>
+    <boot dev='hd'/>
+  </os>
+  <clock offset='utc'/>
+  <on_poweroff>destroy</on_poweroff>
+  <on_reboot>restart</on_reboot>
+  <on_crash>destroy</on_crash>
+  <devices>
+    <disk type='file' device='disk'>
+      <target dev='hda' bus='ide'/>
+      <source file='/default-pool/default-vol'/>
+    </disk>
+    <disk type='file' device='floppy'>
+      <target dev='fda' bus='fdc'/>
+      <readonly/>
+    </disk>
+  </devices>
+</domain>
diff --git a/tests/cli-test-xml/clone-disk.xml b/tests/cli-test-xml/clone-disk.xml
new file mode 100644
index 0000000..e7b5c08
--- /dev/null
+++ b/tests/cli-test-xml/clone-disk.xml
@@ -0,0 +1,34 @@
+<domain type='test' id='1'>
+  <name>origtest</name>
+  <uuid>db69fa1f-eef0-e567-3c20-3ef16f10376b</uuid>
+  <memory>8388608</memory>
+  <currentMemory>2097152</currentMemory>
+  <vcpu>2</vcpu>
+  <os>
+    <type arch='i686'>hvm</type>
+    <boot dev='hd'/>
+  </os>
+  <clock offset='utc'/>
+  <on_poweroff>destroy</on_poweroff>
+  <on_reboot>restart</on_reboot>
+  <on_crash>destroy</on_crash>
+  <devices>
+    <disk type='file' device='disk'>
+      <target dev='hda' bus='ide'/>
+      <source file='cli_exist1.img'/>
+    </disk>
+    <disk type='file' device='disk'>
+      <target dev='hdb' bus='ide'/>
+      <source file='cli_exist2.img'/>
+    </disk>
+    <disk type='file' device='cdrom'>
+      <target dev='hdc' bus='ide'/>
+      <source file='cli_exist2.img'/>
+      <readonly/>
+    </disk>
+    <disk type='file' device='floppy'>
+      <target dev='fda' bus='fdc'/>
+      <readonly/>
+    </disk>
+  </devices>
+</domain>
diff --git a/tests/cli-test-xml/faketree/images/boot.iso b/tests/cli-test-xml/faketree/images/boot.iso
new file mode 100644
index 0000000..7fcf7ba
--- /dev/null
+++ b/tests/cli-test-xml/faketree/images/boot.iso
@@ -0,0 +1 @@
+testiso
diff --git a/tests/cli-test-xml/faketree/images/pxeboot/initrd.img b/tests/cli-test-xml/faketree/images/pxeboot/initrd.img
new file mode 100644
index 0000000..0f3339f
--- /dev/null
+++ b/tests/cli-test-xml/faketree/images/pxeboot/initrd.img
@@ -0,0 +1 @@
+testinitrd
diff --git a/tests/cli-test-xml/faketree/images/pxeboot/vmlinuz b/tests/cli-test-xml/faketree/images/pxeboot/vmlinuz
new file mode 100644
index 0000000..fa797a2
--- /dev/null
+++ b/tests/cli-test-xml/faketree/images/pxeboot/vmlinuz
@@ -0,0 +1 @@
+testvmlinuz
diff --git a/tests/cli-test-xml/faketree/images/xen/initrd.img b/tests/cli-test-xml/faketree/images/xen/initrd.img
new file mode 100644
index 0000000..0f3339f
--- /dev/null
+++ b/tests/cli-test-xml/faketree/images/xen/initrd.img
@@ -0,0 +1 @@
+testinitrd
diff --git a/tests/cli-test-xml/faketree/images/xen/vmlinuz b/tests/cli-test-xml/faketree/images/xen/vmlinuz
new file mode 100644
index 0000000..fa797a2
--- /dev/null
+++ b/tests/cli-test-xml/faketree/images/xen/vmlinuz
@@ -0,0 +1 @@
+testvmlinuz
diff --git a/tests/cli-test-xml/image.xml b/tests/cli-test-xml/image.xml
new file mode 100644
index 0000000..5d35367
--- /dev/null
+++ b/tests/cli-test-xml/image.xml
@@ -0,0 +1,38 @@
+<image>
+  <label>A simple test image</label>
+  <domain>
+    <boot type='xen'>
+      <guest>
+        <os_type>xen</os_type>
+        <arch>i686</arch>
+        <features><pae/></features>
+      </guest>
+      <os>
+        <loader>pygrub</loader>
+      </os>
+      <drive disk="cli_root.raw" target="xvda"/>
+      <drive disk="cli_scratch.raw" target="xvdc"/>
+    </boot>
+    <boot type="hvm">
+      <guest>
+        <arch>i686</arch>
+        <features><pae/></features>
+      </guest>
+      <os>
+        <type>hvm</type>
+        <loader dev="hd"/>
+      </os>
+      <drive disk="cli_root.raw" target="hda"/>
+    </boot>
+    <devices>
+       <vcpu>7</vcpu>
+       <memory>262144</memory>
+       <interface/>
+       <graphics/>
+    </devices>
+  </domain>
+  <storage>
+    <disk file="cli_root.raw" format="raw" size="4096" use="system"/>
+    <disk file="cli_scratch.raw" format="raw" size='100' use='scratch'/>
+  </storage>
+</image>
diff --git a/tests/clitest.py b/tests/clitest.py
new file mode 100644
index 0000000..7a35889
--- /dev/null
+++ b/tests/clitest.py
@@ -0,0 +1,600 @@
+#
+# 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 commands
+import os, sys
+
+testuri = "test:///`pwd`/tests/testdriver.xml"
+
+# There is a hack in virtinst/cli.py to find this magic string and
+# convince virtinst we are using a remote connection.
+remoteuri = "__virtinst_test_remote__test:///`pwd`/tests/testdriver.xml"
+
+# Location
+xmldir = "tests/cli-test-xml"
+treedir = "tests/cli-test-xml/faketree"
+
+# Images that will be created by virt-install/virt-clone, and removed before
+# each run
+new_images =    [ "cli_new1.img", "cli_new2.img", "cli_new3.img",
+                  "cli_exist1-clone.img", "cli_exist2-clone.img"]
+
+# Images that are expected to exist before a command is run
+exist_images =  [ "cli_exist1.img", "cli_exist2.img" ]
+
+# Images that need to exist ahead of time for virt-image
+virtimage_exist = [os.path.join(xmldir, "cli_root.raw")]
+
+# Images created by virt-image
+virtimage_new = [os.path.join(xmldir, "cli_scratch.raw")]
+
+exist_files = exist_images + virtimage_exist
+new_files   = new_images + virtimage_new
+clean_files = new_images + exist_images + virtimage_exist + virtimage_new
+
+test_files = {
+    'TESTURI'           : testuri,
+    'REMOTEURI'         : remoteuri,
+    'CLONE_DISK_XML'    : "%s/clone-disk.xml" % xmldir,
+    'CLONE_STORAGE_XML' : "%s/clone-disk-managed.xml" % xmldir,
+    'IMAGE_XML'         : "%s/image.xml" % xmldir,
+    'NEWIMG1'           : new_images[0],
+    'NEWIMG2'           : new_images[1],
+    'NEWIMG3'           : new_images[2],
+    'EXISTIMG1'         : exist_images[0],
+    'EXISTIMG2'         : exist_images[1],
+    'POOL'              : "default-pool",
+    'VOL'               : "testvol1.img",
+    'MANAGEDEXIST1'     : "/default-pool/testvol1.img",
+    'MANAGEDEXIST2'     : "/default-pool/testvol2.img",
+    'MANAGEDNEW1'       : "/default-pool/clonevol",
+    'MANAGEDNEW2'       : "/default-pool/clonevol",
+}
+
+debug = False
+testprompt = False
+
+"""
+CLI test matrix
+
+Format:
+
+"appname" {
+  "global_args" : Arguments to be passed to every app invocation
+
+  "categoryfoo" : { Some descriptive test catagory name (e.g. storage)
+
+    "categoryfoo_args" : Args to be applied to all invocations in category
+
+    "valid" : { # Argument strings that should succeed
+      "--option --string --number1" # Some option string to test. The
+          resulting cmdstr would be:
+          $ appname global_args categoryfoo_args --option --string --number1
+    }
+
+    "invalid" : { # Argument strings that should fail
+      "--opt1 --opt2",
+    }
+  } # End categoryfoo
+
+  "prompt" : { # Special category that will launch an interactive command.
+               # which is only run if special args are passed to the test
+    "--some --prompt --command --string"
+  }
+}
+  "
+"""
+args_dict = {
+
+
+  "virt-install" : {
+    "global_args" : " --connect %(TESTURI)s -d --name foobar --ram 64",
+
+    "storage" : {
+      "storage_args": "--pxe --nographics --noautoconsole --hvm",
+
+      "valid"  : [
+        # Existing file, other opts
+        "--file %(EXISTIMG1)s --nonsparse --file-size 4",
+        # Existing file, no opts
+        "--file %(EXISTIMG1)s",
+        # Multiple existing files
+        "--file %(EXISTIMG1)s --file virt-image --file virt-clone",
+        # Nonexistent file
+        "--file %(NEWIMG1)s --file-size .00001 --nonsparse",
+
+        # Existing disk, lots of opts
+        "--disk path=%(EXISTIMG1)s,perms=ro,size=.0001,cache=writethrough",
+        # Existing floppy
+        "--disk path=%(EXISTIMG1)s,device=floppy",
+        # Existing disk, no extra options
+        "--disk path=%(EXISTIMG1)s",
+        # Create volume in a pool
+        "--disk pool=%(POOL)s,size=.0001",
+        # Existing volume
+        "--disk vol=%(POOL)s/%(VOL)s",
+        # 3 IDE and CD
+        "--disk path=%(EXISTIMG1)s --disk path=%(EXISTIMG1)s --disk path=%(EXISTIMG1)s --disk path=%(EXISTIMG1)s,device=cdrom",
+      ],
+
+      "invalid": [
+        # Nonexisting file, size too big
+        "--file %(NEWIMG1)s --file-size 100000 --nonsparse",
+        # Huge file, sparse, but no prompting
+        "--file %(NEWIMG1)s --file-size 100000",
+        # Nonexisting file, no size
+        "--file %(NEWIMG1)s",
+        # Too many IDE
+        "--file %(EXISTIMG1)s --file %(EXISTIMG1)s --file %(EXISTIMG1)s --file %(EXISTIMG1)s --file %(EXISTIMG1)s",
+        # Two IDE cds
+        "--disk path=%(EXISTIMG1)s,device=cdrom --disk path=%(EXISTIMG1)s,device=cdrom",
+        # Size, no file
+        "--file-size .0001",
+        # Specify a nonexistent pool
+        "--disk pool=foopool,size=.0001",
+        # Specify a nonexistent volume
+        "--disk vol=%(POOL)s/foovol",
+        # Specify a pool with no size
+        "--disk pool=%(POOL)s",
+        # Unknown cache type
+        "--disk path=%(EXISTIMG1)s,perms=ro,size=.0001,cache=FOOBAR",
+      ]
+     }, # category "storage"
+
+     "install" : {
+      "install_args": "--nographics --noautoconsole --nodisks",
+
+      "valid" : [
+        # Simple cdrom install
+        "--hvm --cdrom %(EXISTIMG1)s",
+        # Cdrom install with managed storage
+        "--hvm --cdrom %(MANAGEDEXIST1)s",
+        # Windows (2 stage) install
+        "--hvm --wait 0 --os-variant winxp --cdrom %(EXISTIMG1)s",
+        # Explicit virt-type
+        "--hvm --pxe --virt-type test",
+        # Explicity fullvirt + arch
+        "--arch i686 --pxe",
+        # Convert i*86 -> i686
+        #"--arch i486 --pxe",
+        # Directory tree URL install
+        "--hvm --location %s" % treedir,
+        # Directory tree CDROM install
+        "--hvm --cdrom %s" % treedir,
+        # Paravirt location
+        "--paravirt --location %s" % treedir
+      ],
+
+      "invalid": [
+        # Bogus virt-type
+        "--hvm --pxe --virt-type bogus",
+        # Bogus arch
+        "--hvm --pxe --arch bogus",
+        # PXE w/ paravirt
+        "--paravirt --pxe",
+        # Import with no disks
+        "--import",
+        # LiveCD with no media
+        "--livecd",
+      ],
+     }, # category "install"
+
+     "graphics": {
+      "graphics_args": "--noautoconsole --nodisks --pxe",
+
+      "valid": [
+        # SDL
+        "--sdl",
+        # VNC w/ lots of options
+        "--vnc --keymap ja --vncport 5950 --vnclisten 1.2.3.4",
+        # --video option
+        "--vnc --video vga",
+      ],
+
+      "invalid": [
+        # Invalid keymap
+        "--vnc --keymap ZZZ",
+        # Invalid port
+        "--vnc --vncport -50",
+        # Invalid --video
+        "--vnc --video foobar",
+      ],
+
+     }, # category "graphics"
+
+    "char" : {
+     "char_args": "--hvm --nographics --noautoconsole --nodisks --pxe",
+
+     "valid": [
+        # Simple devs
+        "--serial pty --parallel null",
+        # Some with options
+        "--serial file,path=/tmp/foo --parallel unix,path=/tmp/foo --parallel null",
+        # UDP
+        "--parallel udp,host=0.0.0.0:1234,bind_host=127.0.0.1:1234",
+        # TCP
+        "--serial tcp,mode=bind,host=0.0.0.0:1234",
+        # Unix
+        "--parallel unix,path=/tmp/foo-socket",
+        # TCP w/ telnet
+        "--serial tcp,host=:1234,protocol=telnet",
+     ],
+     "invalid" : [
+        # Bogus device type
+        "--parallel foobah",
+        # Unix with no path
+        "--serial unix",
+        # Path where it doesn't belong
+        "--serial null,path=/tmp/foo",
+        # Nonexistent argument
+        "--serial udp,host=:1234,frob=baz",
+     ],
+
+     }, # category 'char'
+
+     "misc": {
+      "misc_args": "--nographics --noautoconsole",
+
+      "valid": [
+        # Specifying cdrom media via --disk
+        "--hvm --disk path=virt-install,device=cdrom",
+        # FV Import install
+        "--hvm --import --disk path=virt-install",
+        # PV Import install
+        "--paravirt --import --disk path=virt-install",
+      ],
+
+      "invalid": [
+        # pxe and nonetworks
+        "--nodisks --pxe --nonetworks",
+      ],
+     }, # category "misc"
+
+     "network": {
+      "network_args": "--pxe --nographics --noautoconsole --nodisks",
+
+      "valid": [
+        # Just a macaddr
+        "--mac 11:22:33:44:55:66",
+        # user networking
+        "--network=user",
+        # Old bridge option
+        "--bridge mybr0",
+        # Old bridge w/ mac
+        "--bridge mybr0 --mac 11:22:33:44:55:66",
+        # --network bridge:
+        "--network bridge:mybr0,model=e1000",
+        # VirtualNetwork with a random macaddr
+        "--network network:default --mac RANDOM",
+        # VirtualNetwork with a random macaddr
+        "--network network:default --mac 00:11:22:33:44:55",
+        # Using '=' as the net type delimiter
+        "--network network=default,mac=11:00:11:00:11:00",
+        # with NIC model
+        "--network=user,model=e1000",
+        # several networks
+        "--network=network:default,model=e1000 --network=user,model=virtio,mac=11:22:33:44:55:66",
+      ],
+      "invalid": [
+        # Nonexistent network
+        "--network=FOO",
+        # Invalid mac
+        "--network=network:default --mac 1234",
+        # More mac addrs than nics
+        "--network user --mac 00:11:22:33:44:55 --mac 00:11:22:33:44:66",
+        # Mixing bridge and network
+        "--network user --bridge foo0",
+      ],
+
+     }, # category "network"
+
+     "remote" : {
+      "remote_args": "--connect %(REMOTEURI)s --nographics --noautoconsole",
+
+      "valid" : [
+        # Simple pxe nodisks
+        "--nodisks --pxe",
+        # Managed CDROM install
+        "--nodisks --cdrom %(MANAGEDEXIST1)s",
+        # Using existing managed storage
+        "--pxe --file %(MANAGEDEXIST1)s",
+        # Using existing managed storage 2
+        "--pxe --disk vol=%(POOL)s/%(VOL)s",
+        # Creating storage on managed pool
+        "--pxe --disk pool=%(POOL)s,size=.04",
+      ],
+      "invalid": [
+        # Use of --location
+        "--nodisks --location /tmp",
+        # Trying to use unmanaged storage
+        "--file %(EXISTIMG1)s --pxe",
+      ],
+
+     }, # category "remote"
+
+    "prompt" : [ " --connect %(TESTURI)s --debug --prompt" ]
+  },
+
+
+
+
+  "virt-clone": {
+    "global_args" : " --connect %(TESTURI)s -d",
+
+    "general" : {
+      "general_args": "-n clonetest",
+
+      "valid"  : [
+        # Nodisk guest
+        "-o test",
+        # Nodisk, but with spurious files passed
+        "-o test --file %(NEWIMG1)s --file %(NEWIMG2)s",
+
+        # XML File with 2 disks
+        "--original-xml %(CLONE_DISK_XML)s --file %(NEWIMG1)s --file %(NEWIMG2)s",
+        # XML w/ disks, overwriting existing files with --preserve
+        "--original-xml %(CLONE_DISK_XML)s --file virt-install --file %(EXISTIMG1)s --preserve",
+        # XML w/ disks, force copy a readonly target
+        "--original-xml %(CLONE_DISK_XML)s --file %(NEWIMG1)s --file %(NEWIMG2)s --file %(NEWIMG3)s --force-copy=hdc",
+        # XML w/ disks, force copy a target with no media
+        "--original-xml %(CLONE_DISK_XML)s --file %(NEWIMG1)s --file %(NEWIMG2)s --force-copy=fda",
+        # XML w/ managed storage, specify managed path
+        "--original-xml %(CLONE_STORAGE_XML)s --file %(MANAGEDNEW1)s",
+        # XML w/ managed storage, specify managed path across pools
+        #"--original-xml %(CLONE_STORAGE_XML)s --file /cross-pool/clonevol",
+      ],
+
+      "invalid": [
+        # Non-existent vm name
+        "-o idontexist",
+        # Non-existent vm name with auto flag,
+        "-o idontexist --auto-clone",
+        # Colliding new name
+        "-o test -n test",
+        # XML file with several disks, but non specified
+        "--original-xml %(CLONE_DISK_XML)s",
+        # XML w/ disks, overwriting existing files with no --preserve
+        "--original-xml %(CLONE_DISK_XML)s --file virt-install --file %(EXISTIMG1)s",
+        # XML w/ disks, force copy but not enough disks passed
+        "--original-xml %(CLONE_DISK_XML)s --file %(NEWIMG1)s --file %(NEWIMG2)s --force-copy=hdc",
+        # XML w/ managed storage, specify unmanaged path (should fail)
+        "--original-xml %(CLONE_STORAGE_XML)s --file /tmp/clonevol",
+      ]
+     }, # category "general"
+
+    "misc" : {
+      "misc_args": "",
+
+      "valid" : [
+        # Auto flag, no storage
+        "-o test --auto-clone",
+        # Auto flag w/ storage,
+        "--original-xml %(CLONE_DISK_XML)s --auto-clone",
+        # Auto flag w/ managed storage,
+        "--original-xml %(CLONE_STORAGE_XML)s --auto-clone",
+      ],
+
+      "invalid" : [
+        # Just the auto flag
+        "--auto-clone"
+      ]
+    }, # category "misc"
+
+     "remote" : {
+      "remote_args": "--connect %(REMOTEURI)s",
+
+      "valid"  : [
+        # Auto flag, no storage
+        "-o test --auto-clone",
+        # Auto flag w/ managed storage,
+        "--original-xml %(CLONE_STORAGE_XML)s --auto-clone",
+      ],
+      "invalid": [
+        # Auto flag w/ storage,
+        "--original-xml %(CLONE_DISK_XML)s --auto-clone",
+      ],
+    }, # categort "remote"
+
+    "prompt" : [ " --connect %(TESTURI) --debug --prompt",
+                 " --connect %(TESTURI) --debug --original-xml %(CLONE_DISK_XML)s --prompt" ]
+  }, # app 'virt-clone'
+
+
+
+
+  'virt-image': {
+    "global_args" : " --connect %(TESTURI)s -d %(IMAGE_XML)s",
+
+    "general" : {
+      "general_args" : "--name test-image",
+
+      "valid": [
+        # All default values
+        "",
+        # Manual boot idx 0
+        "--boot 0",
+        # Manual boot idx 1
+        "--boot 1",
+        # Lots of options
+        "--name foobar --ram 64 --os-variant winxp",
+      ],
+
+      "invalid": [
+        # Out of bounds index
+        "--boot 10",
+      ],
+     }, # category 'general'
+
+    "graphics" : {
+      "graphics_args" : "--name test-image --boot 0",
+
+      "valid": [
+        # SDL
+        "--sdl",
+        # VNC w/ lots of options
+        "--vnc --keymap ja --vncport 5950 --vnclisten 1.2.3.4",
+      ],
+
+      "invalid": [],
+    },
+
+    "misc": {
+     "misc_args" : "",
+
+      "valid" : [],
+      "invalid" : [
+        # No name specified, and no prompt flag
+        "",
+      ],
+
+     }, # category 'misc'
+
+     "network": {
+      "network_args": "--name test-image --boot 0 --nographics",
+
+      "valid": [
+        # user networking
+        "--network=user",
+        # VirtualNetwork with a random macaddr
+        "--network network:default --mac RANDOM",
+        # VirtualNetwork with a random macaddr
+        "--network network:default --mac 00:11:22:33:44:55",
+        # with NIC model
+        "--network=user,model=e1000",
+        # several networks
+        "--network=network:default,model=e1000 --network=user,model=virtio",
+        # no networks
+        #"--nonetworks",
+      ],
+      "invalid": [
+        # Nonexistent network
+        "--network=FOO",
+        # Invalid mac
+        "--network=network:default --mac 1234",
+      ],
+
+     }, # category "network"
+    "prompt" : [ " --connect %(TESTURI) %(IMAGE_XML)s --debug --prompt" ],
+
+  } # app 'virt-image'
+}
+
+def runcomm(comm):
+    try:
+        for i in new_files:
+            os.system("rm %s > /dev/null 2>&1" % i)
+
+        if debug:
+            print comm % test_files
+
+        ret = commands.getstatusoutput(comm % test_files)
+        if debug:
+            print ret[1]
+            print "\n"
+
+        return ret
+    except Exception, e:
+        return (-1, str(e))
+
+def run_prompt_comm(comm):
+    print comm
+    os.system(comm % test_files)
+
+def assertPass(comm):
+    ret = runcomm(comm)
+    if ret[0] is not 0:
+        raise AssertionError("Expected command to pass, but failed.\n" + \
+                             "Command was: %s\n" % (comm) + \
+                             "Error code : %d\n" % ret[0] + \
+                             "Output was:\n%s" % ret[1])
+
+def assertFail(comm):
+    ret = runcomm(comm)
+    if ret[0] is 0:
+        raise AssertionError("Expected command to fail, but passed.\n" + \
+                             "Command was: %s\n" % (comm) + \
+                             "Error code : %d\n" % ret[0] + \
+                             "Output was:\n%s" % ret[1])
+
+# Setup: build cliarg dict, which uses
+def run_tests():
+    for app in args_dict:
+        unique = {}
+        prompts = []
+        global_args = ""
+
+        # Build default command line dict
+        for option in args_dict.get(app):
+            if option == "global_args":
+                global_args = args_dict[app][option]
+                continue
+            elif option == "prompt":
+                prompts = args_dict[app][option]
+                continue
+
+            # Default is a unique cmd string
+            unique[option]= args_dict[app][option]
+
+        # Build up prompt cases
+        if testprompt:
+            for optstr in prompts:
+                cmd = "./" + app + " " + optstr
+                run_prompt_comm(cmd)
+            continue
+
+        # Build up unique command line cases
+        for category in unique.keys():
+            catdict = unique[category]
+            category_args = catdict["%s_args" % category]
+
+            for optstr in catdict["valid"]:
+                cmdstr = "./%s %s %s %s" % (app, global_args,
+                                            category_args, optstr)
+                assertPass(cmdstr)
+
+            for optstr in catdict["invalid"]:
+                cmdstr = "./%s %s %s %s" % (app, global_args,
+                                            category_args, optstr)
+                assertFail(cmdstr)
+
+def main():
+    # CLI Args
+    global debug
+    global testprompt
+
+    if len(sys.argv) > 1:
+        for i in range(1, len(sys.argv)):
+            if sys.argv[i].count("debug"):
+                debug = True
+            elif sys.argv[i].count("prompt"):
+                testprompt = True
+
+    # Setup needed files
+    for i in exist_files:
+        if os.path.exists(i):
+            raise ValueError("'%s' will be used by testsuite, can not already"
+                             " exist." % i)
+        os.system("touch %s" % i)
+
+    try:
+        run_tests()
+    finally:
+        # Cleanup files
+        for i in clean_files:
+            os.system("rm %s > /dev/null 2>&1" % i)
+
+if __name__ == "__main__":
+    main()
diff --git a/tests/clone-xml/general-cfg-in.xml b/tests/clone-xml/cross-pool-in.xml
similarity index 80%
copy from tests/clone-xml/general-cfg-in.xml
copy to tests/clone-xml/cross-pool-in.xml
index 143efbb..f6f0063 100644
--- a/tests/clone-xml/general-cfg-in.xml
+++ b/tests/clone-xml/cross-pool-in.xml
@@ -18,19 +18,19 @@
   <devices>
     <emulator>/usr/bin/qemu-kvm</emulator>
     <disk type='file' device='disk'>
-      <source file='/tmp/virtinst-test1.img'/>
+      <source file='/default-pool/testvol1.img'/>
       <target dev='hda' bus='ide'/>
     </disk>
-    <disk type='block' device='disk'>
-      <source dev='/dev/loop0'/>
+    <disk type='file' device='disk'>
+      <source file='/default-pool/testvol2.img'/>
       <target dev='hdb' bus='ide'/>
     </disk>
     <interface type='network'>
-      <mac address='54:52:00:6c:a0:cb'/>
+      <mac address='52:54:00:6c:a0:cb'/>
       <source network='test1'/>
     </interface>
     <interface type='network'>
-      <mac address='54:52:00:6c:bb:ca'/>
+      <mac address='52:54:00:6c:bb:ca'/>
       <source network='test2'/>
     </interface>
     <input type='mouse' bus='ps2'/>
diff --git a/tests/clone-xml/general-cfg-out.xml b/tests/clone-xml/cross-pool-out.xml
similarity index 88%
copy from tests/clone-xml/general-cfg-out.xml
copy to tests/clone-xml/cross-pool-out.xml
index abdc227..f399e29 100644
--- a/tests/clone-xml/general-cfg-out.xml
+++ b/tests/clone-xml/cross-pool-out.xml
@@ -18,12 +18,12 @@
   <on_crash>destroy</on_crash>
   <devices>
     <emulator>/usr/bin/qemu-kvm</emulator>
-    <disk type="block" device="disk">
-      <source dev="/dev/loop0"/>
+    <disk type="file" device="disk">
+      <source file="/cross-pool/new1.img"/>
       <target dev="hda" bus="ide"/>
     </disk>
     <disk type="file" device="disk">
-      <source file="/tmp/clone2.img"/>
+      <source file="/cross-pool/new2.img"/>
       <target dev="hdb" bus="ide"/>
     </disk>
     <interface type="network">
diff --git a/tests/clone-xml/empty-disks-in.xml b/tests/clone-xml/empty-disks-in.xml
index 3f8b023..a88c266 100644
--- a/tests/clone-xml/empty-disks-in.xml
+++ b/tests/clone-xml/empty-disks-in.xml
@@ -33,11 +33,11 @@
       <target dev='sdb' bus='scsi'/>
     </disk>
     <interface type='network'>
-      <mac address='54:52:00:6c:a0:cb'/>
+      <mac address='52:54:00:6c:a0:cb'/>
       <source network='test1'/>
     </interface>
     <interface type='network'>
-      <mac address='54:52:00:6c:bb:ca'/>
+      <mac address='52:54:00:6c:bb:ca'/>
       <source network='test2'/>
     </interface>
     <input type='mouse' bus='ps2'/>
diff --git a/tests/clone-xml/empty-disks-in.xml b/tests/clone-xml/force-in.xml
similarity index 93%
copy from tests/clone-xml/empty-disks-in.xml
copy to tests/clone-xml/force-in.xml
index 3f8b023..a88c266 100644
--- a/tests/clone-xml/empty-disks-in.xml
+++ b/tests/clone-xml/force-in.xml
@@ -33,11 +33,11 @@
       <target dev='sdb' bus='scsi'/>
     </disk>
     <interface type='network'>
-      <mac address='54:52:00:6c:a0:cb'/>
+      <mac address='52:54:00:6c:a0:cb'/>
       <source network='test1'/>
     </interface>
     <interface type='network'>
-      <mac address='54:52:00:6c:bb:ca'/>
+      <mac address='52:54:00:6c:bb:ca'/>
       <source network='test2'/>
     </interface>
     <input type='mouse' bus='ps2'/>
diff --git a/tests/clone-xml/empty-disks-out.xml b/tests/clone-xml/force-out.xml
similarity index 100%
copy from tests/clone-xml/empty-disks-out.xml
copy to tests/clone-xml/force-out.xml
diff --git a/tests/clone-xml/general-cfg-in.xml b/tests/clone-xml/general-cfg-in.xml
index 143efbb..89890a0 100644
--- a/tests/clone-xml/general-cfg-in.xml
+++ b/tests/clone-xml/general-cfg-in.xml
@@ -26,11 +26,11 @@
       <target dev='hdb' bus='ide'/>
     </disk>
     <interface type='network'>
-      <mac address='54:52:00:6c:a0:cb'/>
+      <mac address='52:54:00:6c:a0:cb'/>
       <source network='test1'/>
     </interface>
     <interface type='network'>
-      <mac address='54:52:00:6c:bb:ca'/>
+      <mac address='52:54:00:6c:bb:ca'/>
       <source network='test2'/>
     </interface>
     <input type='mouse' bus='ps2'/>
diff --git a/tests/clone-xml/general-cfg-in.xml b/tests/clone-xml/managed-storage-in.xml
similarity index 84%
copy from tests/clone-xml/general-cfg-in.xml
copy to tests/clone-xml/managed-storage-in.xml
index 143efbb..0f328eb 100644
--- a/tests/clone-xml/general-cfg-in.xml
+++ b/tests/clone-xml/managed-storage-in.xml
@@ -18,19 +18,19 @@
   <devices>
     <emulator>/usr/bin/qemu-kvm</emulator>
     <disk type='file' device='disk'>
-      <source file='/tmp/virtinst-test1.img'/>
+      <source file='/default-pool/testvol1.img'/>
       <target dev='hda' bus='ide'/>
     </disk>
     <disk type='block' device='disk'>
-      <source dev='/dev/loop0'/>
+      <source dev='/disk-pool/diskvol1'/>
       <target dev='hdb' bus='ide'/>
     </disk>
     <interface type='network'>
-      <mac address='54:52:00:6c:a0:cb'/>
+      <mac address='52:54:00:6c:a0:cb'/>
       <source network='test1'/>
     </interface>
     <interface type='network'>
-      <mac address='54:52:00:6c:bb:ca'/>
+      <mac address='52:54:00:6c:bb:ca'/>
       <source network='test2'/>
     </interface>
     <input type='mouse' bus='ps2'/>
diff --git a/tests/clone-xml/general-cfg-out.xml b/tests/clone-xml/managed-storage-out.xml
similarity index 92%
copy from tests/clone-xml/general-cfg-out.xml
copy to tests/clone-xml/managed-storage-out.xml
index abdc227..52e6d3a 100644
--- a/tests/clone-xml/general-cfg-out.xml
+++ b/tests/clone-xml/managed-storage-out.xml
@@ -18,12 +18,12 @@
   <on_crash>destroy</on_crash>
   <devices>
     <emulator>/usr/bin/qemu-kvm</emulator>
-    <disk type="block" device="disk">
-      <source dev="/dev/loop0"/>
+    <disk type="file" device="disk">
+      <source file="/default-pool/new1.img"/>
       <target dev="hda" bus="ide"/>
     </disk>
-    <disk type="file" device="disk">
-      <source file="/tmp/clone2.img"/>
+    <disk type="block" device="disk">
+      <source dev="/disk-pool/new2.img"/>
       <target dev="hdb" bus="ide"/>
     </disk>
     <interface type="network">
diff --git a/tests/clone-xml/noclone-storage-in.xml b/tests/clone-xml/noclone-storage-in.xml
index 3277166..2630383 100644
--- a/tests/clone-xml/noclone-storage-in.xml
+++ b/tests/clone-xml/noclone-storage-in.xml
@@ -30,11 +30,11 @@
       <readonly/>
     </disk>
     <interface type='network'>
-      <mac address='54:52:00:6c:a0:cb'/>
+      <mac address='52:54:00:6c:a0:cb'/>
       <source network='test1'/>
     </interface>
     <interface type='network'>
-      <mac address='54:52:00:6c:bb:ca'/>
+      <mac address='52:54:00:6c:bb:ca'/>
       <source network='test2'/>
     </interface>
     <input type='mouse' bus='ps2'/>
diff --git a/tests/clone-xml/readonly-disks-in.xml b/tests/clone-xml/readonly-disks-in.xml
index 06e52c5..c3962c9 100644
--- a/tests/clone-xml/readonly-disks-in.xml
+++ b/tests/clone-xml/readonly-disks-in.xml
@@ -22,7 +22,7 @@
       <target dev='hda' bus='ide'/>
     </disk>
     <disk type='file' device='disk'>
-      <source file='test3.img'/>
+      <source file='/tmp/virtinst-test1.img'/>
       <target dev='hdb' bus='ide'/>
       <readonly/>
     </disk>
@@ -35,17 +35,17 @@
       <readonly/>
     </disk>
     <disk type='file' device='cdrom'>
-      <source file='test3.img'/>
+      <source file='/tmp/virtinst-test2.img'/>
       <target dev='sdc' bus='scsi'/>
       <readonly/>
       <shareable/>
     </disk>
     <interface type='network'>
-      <mac address='54:52:00:6c:a0:cb'/>
+      <mac address='52:54:00:6c:a0:cb'/>
       <source network='test1'/>
     </interface>
     <interface type='network'>
-      <mac address='54:52:00:6c:bb:ca'/>
+      <mac address='52:54:00:6c:bb:ca'/>
       <source network='test2'/>
     </interface>
     <input type='mouse' bus='ps2'/>
diff --git a/tests/clone-xml/readonly-disks-out.xml b/tests/clone-xml/readonly-disks-out.xml
index e82715f..4394b31 100644
--- a/tests/clone-xml/readonly-disks-out.xml
+++ b/tests/clone-xml/readonly-disks-out.xml
@@ -23,7 +23,7 @@
       <target dev="hda" bus="ide"/>
     </disk>
     <disk type="file" device="disk">
-      <source file="test3.img"/>
+      <source file="/tmp/virtinst-test1.img"/>
       <target dev="hdb" bus="ide"/>
       <readonly/>
     </disk>
@@ -36,7 +36,7 @@
       <readonly/>
     </disk>
     <disk type="file" device="cdrom">
-      <source file="test3.img"/>
+      <source file="/tmp/virtinst-test2.img"/>
       <target dev="sdc" bus="scsi"/>
       <readonly/>
       <shareable/>
diff --git a/tests/clone-xml/empty-disks-in.xml b/tests/clone-xml/skip-in.xml
similarity index 93%
copy from tests/clone-xml/empty-disks-in.xml
copy to tests/clone-xml/skip-in.xml
index 3f8b023..a88c266 100644
--- a/tests/clone-xml/empty-disks-in.xml
+++ b/tests/clone-xml/skip-in.xml
@@ -33,11 +33,11 @@
       <target dev='sdb' bus='scsi'/>
     </disk>
     <interface type='network'>
-      <mac address='54:52:00:6c:a0:cb'/>
+      <mac address='52:54:00:6c:a0:cb'/>
       <source network='test1'/>
     </interface>
     <interface type='network'>
-      <mac address='54:52:00:6c:bb:ca'/>
+      <mac address='52:54:00:6c:bb:ca'/>
       <source network='test2'/>
     </interface>
     <input type='mouse' bus='ps2'/>
diff --git a/tests/clone-xml/empty-disks-out.xml b/tests/clone-xml/skip-out.xml
similarity index 96%
copy from tests/clone-xml/empty-disks-out.xml
copy to tests/clone-xml/skip-out.xml
index 4b20a3b..18f7539 100644
--- a/tests/clone-xml/empty-disks-out.xml
+++ b/tests/clone-xml/skip-out.xml
@@ -18,8 +18,8 @@
   <on_crash>destroy</on_crash>
   <devices>
     <emulator>/usr/bin/qemu-kvm</emulator>
-    <disk type="block" device="disk">
-      <source dev="/dev/loop0"/>
+    <disk type="file" device="disk">
+      <source file="/tmp/virtinst-test1.img"/>
       <target dev="hda" bus="ide"/>
     </disk>
     <disk type="file" device="floppy">
@@ -29,8 +29,8 @@
       <target dev="sda" bus="scsi"/>
       <readonly/>
     </disk>
-    <disk type="file" device="disk">
-      <source file="/tmp/clone2.img"/>
+    <disk type="block" device="disk">
+      <source dev="/dev/loop0"/>
       <target dev="sdb" bus="scsi"/>
     </disk>
     <interface type="network">
diff --git a/tests/clonetest.py b/tests/clonetest.py
index d54fac5..03370f9 100644
--- a/tests/clonetest.py
+++ b/tests/clonetest.py
@@ -29,6 +29,14 @@ CLONE_NAME = "clone-new"
 # Create some files to use as test images
 FILE1 = "/tmp/virtinst-test1.img"
 FILE2 = "/tmp/virtinst-test2.img"
+P1_VOL1  = "/default-pool/testvol1.img"
+P1_VOL2  = "/default-pool/testvol2.img"
+P2_VOL1  = "/cross-pool/testvol1.img"
+P2_VOL2  = "/cross-pool/testvol2.img"
+
+POOL1 = "/default-pool"
+POOL2 = "/cross-pool"
+DISKPOOL = "/disk-pool"
 
 for f in [ FILE1, FILE2 ]:
     os.system("touch %s" % f)
@@ -37,12 +45,13 @@ clonexml_dir = os.path.join(os.getcwd(), "tests/clone-xml")
 clone_files = []
 
 for f in os.listdir(clonexml_dir):
+    black_list = [ "managed-storage", "cross-pool", "force", "skip"]
     if f.endswith("-out.xml"):
         f = f[0:(len(f) - len("-out.xml"))]
-        if f not in clone_files:
+        if f not in clone_files and f not in black_list:
             clone_files.append(f)
 
-conn = libvirt.open("test:///default")
+conn = libvirt.open("test:///%s/../testdriver.xml" % clonexml_dir)
 
 def fake_is_uri_remote(ignore):
     return True
@@ -52,13 +61,18 @@ class TestClone(unittest.TestCase):
     def setUp(self):
         pass
 
-    def _clone_helper(self, filebase, disks=None):
+    def _clone_helper(self, filebase, disks=None, force_list=None,
+                      skip_list=None):
         """Helper for comparing clone input/output from 2 xml files"""
         infile = os.path.join(clonexml_dir, filebase + "-in.xml")
         in_content = tests.read_file(infile)
 
         cloneobj = CloneDesign(connection=conn)
         cloneobj.original_xml = in_content
+        for force in force_list or []:
+            cloneobj.force_target = force
+        for skip in skip_list or []:
+            cloneobj.skip_target = skip
 
         cloneobj = self._default_clone_values(cloneobj, disks)
         self._clone_compare(cloneobj, filebase)
@@ -81,6 +95,7 @@ class TestClone(unittest.TestCase):
             cloneobj.clone_devices = "/tmp/clone3.img"
             cloneobj.clone_devices = "/tmp/clone4.img"
             cloneobj.clone_devices = "/tmp/clone5.img"
+            cloneobj.clone_devices = None
 
         return cloneobj
 
@@ -105,14 +120,16 @@ class TestClone(unittest.TestCase):
             if vm:
                 vm.undefine()
 
-    def testCloneGuestLookup(self):
+    # Skip this test, since libvirt can add new XML elements to the defined
+    # XML (<video>) that make roundtrip a pain
+    def notestCloneGuestLookup(self):
         """Test using a vm name lookup for cloning"""
         for base in clone_files:
             infile = os.path.join(clonexml_dir, base + "-in.xml")
 
             vm = None
             try:
-                conn.defineXML(tests.read_file(infile))
+                vm = conn.defineXML(tests.read_file(infile))
 
                 cloneobj = CloneDesign(connection=conn)
                 cloneobj.original_guest = ORIG_NAME
@@ -151,8 +168,8 @@ class TestClone(unittest.TestCase):
 
             for base in [ "general-cfg" ] :
                 try:
-                    self._clone_helper(base, disks=["/default-pool/1.img",
-                                                    "/default-pool/2.img" ])
+                    self._clone_helper(base, disks=["%s/1.img" % POOL1,
+                                                    "%s/2.img" % POOL1])
 
                     # We shouldn't succeed, so test fails
                     raise AssertionError("Remote clone with storage passed "
@@ -163,3 +180,40 @@ class TestClone(unittest.TestCase):
         finally:
             CloneManager._util.is_uri_remote = oldfunc
 
+    def testCloneStorage(self):
+        base = "managed-storage"
+        self._clone_helper(base, ["%s/new1.img" % POOL1,
+                                  "%s/new2.img" % DISKPOOL])
+
+    def testCloneStorageCrossPool(self):
+        base = "cross-pool"
+        self._clone_helper(base, ["%s/new1.img" % POOL2,
+                                  "%s/new2.img" % POOL2])
+
+    def testCloneStorageForce(self):
+        base = "force"
+        self._clone_helper(base,
+                           disks=["/dev/loop0", None, "/tmp/clone2.img"],
+                           force_list=["hda", "fdb", "sdb"])
+
+    def testCloneStorageSkip(self):
+        base = "skip"
+        self._clone_helper(base,
+                           disks=["/dev/loop0", None, "/tmp/clone2.img"],
+                           skip_list=["hda", "fdb"])
+
+    def testCloneManagedToUnmanaged(self):
+        base = "managed-storage"
+
+        # We are trying to clone from a pool (/default-pool) to unmanaged
+        # storage. For this case, the cloning needs to fail back to manual
+        # operation (no libvirt calls), but since /default-pool doesn't exist,
+        # this should fail.
+        try:
+            self._clone_helper(base, ["/tmp/new1.img", "/tmp/new2.img"])
+
+            raise AssertionError("Managed to unmanaged succeeded, expected "
+                                 "failure.")
+        except (ValueError, RuntimeError), e:
+            logging.debug("Received expected exception: %s" % str(e))
+
diff --git a/tests/image-xml/image.xml b/tests/image-xml/image.xml
index e0d4793..d069b3c 100644
--- a/tests/image-xml/image.xml
+++ b/tests/image-xml/image.xml
@@ -41,8 +41,8 @@
       <partition file="boot.img"/>
       <partition file="root.img"/>
     </disk>
-    <disk file="root.raw" format="raw" size="4096" use="system"/>
-    <disk file="data.raw" format="raw" size='2048' use="data"/>
+    <disk file="root.raw" format="raw" size="4096" use="scratch"/>
+    <disk file="data.raw" format="raw" size='2048' use="scratch"/>
     <disk file="scratch.raw" format="raw" size='100' use='scratch'/>
   </storage>
 </image>
diff --git a/tests/image-xml/image2guest/image-xenfv32.xml b/tests/image-xml/image2guest/image-xenfv32.xml
index 8db2809..6ae3e02 100644
--- a/tests/image-xml/image2guest/image-xenfv32.xml
+++ b/tests/image-xml/image2guest/image-xenfv32.xml
@@ -9,7 +9,7 @@
     <boot dev='hd'/>
   </os>
   <features>
-    <acpi/><apic/>
+    <acpi/><apic/><pae/>
   </features>
   <clock offset="utc"/>
   <on_poweroff>destroy</on_poweroff>
@@ -18,8 +18,20 @@
   <vcpu>5</vcpu>
   <devices>
     <emulator>/usr/lib/xen/bin/qemu-dm</emulator>
-    <console type='pty'/>
+    <disk type='file' device='disk'>
+      <source file='REPLACEME/tests/image-xml/root.raw'/>
+      <target dev='hda' bus='ide'/>
+    </disk>
+    <disk type='file' device='disk'>
+      <source file='REPLACEME/tests/image-xml/data.raw'/>
+      <target dev='hdb' bus='ide'/>
+    </disk>
+    <disk type='file' device='disk'>
+      <source file='REPLACEME/tests/image-xml/scratch.raw'/>
+      <target dev='hdd' bus='ide'/>
+    </disk>
     <input type='mouse' bus='ps2'/>
     <graphics type='sdl' display=':3.4' xauth='/testdir/.Xauthority'/>
+    <console type='pty'/>
   </devices>
 </domain>
diff --git a/tests/image-xml/image2guest/image-xenpv32.xml b/tests/image-xml/image2guest/image-xenpv32.xml
index 8fb64b2..04cc955 100644
--- a/tests/image-xml/image2guest/image-xenpv32.xml
+++ b/tests/image-xml/image2guest/image-xenpv32.xml
@@ -9,6 +9,18 @@
   <on_crash>destroy</on_crash>
   <vcpu>5</vcpu>
   <devices>
+    <disk type='file' device='disk'>
+      <source file='REPLACEME/tests/image-xml/root.raw'/>
+      <target dev='xvda' bus='xen'/>
+    </disk>
+    <disk type='file' device='disk'>
+      <source file='REPLACEME/tests/image-xml/data.raw'/>
+      <target dev='xvdb' bus='xen'/>
+    </disk>
+    <disk type='file' device='disk'>
+      <source file='REPLACEME/tests/image-xml/scratch.raw'/>
+      <target dev='xvdc' bus='xen'/>
+    </disk>
     <input type='mouse' bus='xen'/>
     <graphics type='vnc' port='-1' keymap='ja'/>
   </devices>
diff --git a/tests/image.py b/tests/image.py
index 764f622..e4eae3b 100644
--- a/tests/image.py
+++ b/tests/image.py
@@ -80,8 +80,12 @@ class TestImageParser(unittest.TestCase):
                 g = xmlconfig.get_basic_paravirt_guest()
 
             g.installer = inst
+            g._prepare_install(None)
+
+            expect_out = tests.read_file(image2guestdir + fname)
+            expect_out = expect_out.replace("REPLACEME", os.getcwd())
             tests.diff_compare(g.get_config_xml(install=True),
-                               image2guestdir + fname)
+                               image2guestdir + fname, expect_out=expect_out)
 
 if __name__ == "__main__":
     unittest.main()
diff --git a/tests/nodedev.py b/tests/nodedev.py
index 856c3bf..8426d86 100644
--- a/tests/nodedev.py
+++ b/tests/nodedev.py
@@ -41,7 +41,7 @@ class TestNodeDev(unittest.TestCase):
             nodedev = self._nodeDevFromFile(nodefile)
 
         dev = VirtualHostDevice.device_from_node(conn, nodedev=nodedev)
-        tests.diff_compare(dev.get_xml_config(), devfile)
+        tests.diff_compare(dev.get_xml_config() + "\n", devfile)
 
     def testSystemDevice(self):
         filename = "system.xml"
diff --git a/tests/pylint-virtinst.sh b/tests/pylint-virtinst.sh
index 751455b..d55db4c 100755
--- a/tests/pylint-virtinst.sh
+++ b/tests/pylint-virtinst.sh
@@ -13,6 +13,10 @@ EXCEPTHOOK='__excepthook__'
 BUILTIN_TYPE="(StoragePool.__init__|randomMAC|Capabilities.guestForOSType|acquireKernel|acquireBootDisk|DistroInstaller.__init__|PXEInstaller.__init__|Guest.list_os_variants|Guest.get_os_type_label|Guest.get_os_variant_label|FullVirtGuest.__init__|VirtualNetworkInterface.__init__|VirtualGraphics.__init__|Installer.__init__|Guest.__init__|LiveCDInstaller.__init__|ParaVirtGuest.__init__|VirtOptionParser.print_help|get_max_vcpus|setupLogging.exception_log|VirtualDisk.__init__|disk.__init__|netdev.__init__)|guest_lookup"
 BTYPE_TYPE="${BUILTIN_TYPE}.*Redefining built-in 'type'"
 
+# Built-in type 'format'
+BUILTIN_FORMAT="(*Pool.__init__|*Volume.__init__|find_input)"
+BTYPE_FORMAT="${BUILTIN_FORMAT}.*Redefining built-in 'format'"
+
 # Following functions are in the public api which have argument names that
 # override builtin 'str'.
 BUILTIN_STR="(xml_escape)"
@@ -30,6 +34,11 @@ USE_OF__EXIT="member _exit"
 # pylint doesn't pick it up
 UNDEF_GETTEXT="Undefined variable '_'"
 
+# Don't complain about 'ucred' or 'selinux' not being available
+UCRED="import 'ucred'"
+SELINUX="import 'selinux'"
+OLDSELINUX="'selinux' has no "
+
 # Public api error
 VD_MISMATCHED_ARGS="VirtualDisk.get_xml_config.*Arguments number differs"
 
@@ -37,15 +46,17 @@ VD_MISMATCHED_ARGS="VirtualDisk.get_xml_config.*Arguments number differs"
 URLTEST_ACCESS="TestURLFetch.*Access to a protected member"
 
 # We use some hacks in the test driver to simulate remote libvirt URIs
-TEST_HACKS="TestClone.*protected member _util"
+TEST_HACKS="TestClone.*protected member _util|testQEMUDriverName.*protected member _get_uri|Access to a protected member _util"
 
 # Scattered examples of legitimately unused arguments
-UNUSED_ARGS="(SuseDistro|SolarisDistro).isValidStore.*Unused argument 'progresscb'|.*Installer.prepare.*Unused argument|post_install_check.*Unused argument 'guest'|Guest.__init__.*Unused argument 'type'"
+UNUSED_ARGS="(SuseDistro|SolarisDistro|NetWareDistro).isValidStore.*Unused argument 'progresscb'|.*Installer.prepare.*Unused argument|post_install_check.*Unused argument 'guest'|Guest.__init__.*Unused argument 'type'"
 
 # Outside __init__ checks throw false positives with distutils custom commands
 # tests.storage also invokes false positives using hasattr
 OUTSIDE_INIT="(.*Test.*|.*createPool.*)outside __init__"
 
+# pylint complains about some of the subclass funkiness in chardev classes
+CHAR_SUBCLASS=".*VirtualCharDevice' has no '(source_mode|source_path)' member.*|.*Method '_char_xml' is abstract in class 'VirtualCharDevice'.*"
 
 # FIXME: Everything skipped below are all bugs
 
@@ -55,7 +66,7 @@ ACCESS__CONN="Access to a protected member _conn"
 
 # There isn't a clean API way to access this functions from the API, but
 # they provide info that is needed. These need need to be fixed.
-PROT_MEM_BUGS="protected member (_lookup_osdict_key|_OS_TYPES|_prepare_install|_create_devices|_install_disks)"
+PROT_MEM_BUGS="protected member (_lookup_osdict_key|_OS_TYPES|_prepare_install|_create_devices|_add_install_dev)"
 
 DMSG=""
 addmsg() {
@@ -100,13 +111,17 @@ AWK=awk
 pylint --ignore=coverage.py, $FILES \
   --reports=n \
   --output-format=colorized \
-  --dummy-variables-rgx="dummy|ignore*" \
+  --dummy-variables-rgx="dummy|ignore*|.*ignore" \
   --disable-msg=${DMSG} \
   --disable-checker=${DCHECKERS} | \
   egrep -ve "$EXCEPTHOOK" \
         -ve "$BTYPE_TYPE" \
         -ve "$BTYPE_FILE" \
         -ve "$BTYPE_STR" \
+        -ve "$BTYPE_FORMAT" \
+        -ve "$UCRED" \
+        -ve "$SELINUX" \
+        -ve "$OLDSELINUX" \
         -ve "$USE_OF__EXIT" \
         -ve "$UNDEF_GETTEXT" \
         -ve "$VD_MISMATCHED_ARGS" \
@@ -115,6 +130,7 @@ pylint --ignore=coverage.py, $FILES \
         -ve "$UNUSED_ARGS" \
         -ve "$TEST_HACKS" \
         -ve "$PROT_MEM_BUGS" \
+        -ve "$CHAR_SUBCLASS" \
         -ve "$OUTSIDE_INIT" | \
   $AWK '\
 # Strip out any "*** Module name" lines if we dont list any errors for them
diff --git a/tests/storage.py b/tests/storage.py
index f1a5e52..37adb3e 100644
--- a/tests/storage.py
+++ b/tests/storage.py
@@ -15,6 +15,7 @@
 # MA 02110-1301 USA.
 
 import unittest
+import virtinst.Storage
 from virtinst.Storage import StoragePool, StorageVolume
 import libvirt
 
@@ -29,7 +30,7 @@ def _findFreePoolName(conn, namebase):
         except:
             return poolname
 
-def createPool(conn, ptype, poolname=None, format=None, tpath=None,
+def createPool(conn, ptype, poolname=None, fmt=None, tpath=None,
                spath=None, start=True):
     poolclass = StoragePool.get_pool_class(ptype)
 
@@ -44,12 +45,12 @@ def createPool(conn, ptype, poolname=None, format=None, tpath=None,
         pool_inst.source_path = spath or "/some/source/path"
     if hasattr(pool_inst, "target_path"):
         pool_inst.target_path = tpath or "/some/target/path"
-    if format and hasattr(pool_inst, "format"):
-        pool_inst.format = format
+    if fmt and hasattr(pool_inst, "format"):
+        pool_inst.format = fmt
 
     return pool_inst.install(build=True, meter=None, create=start)
 
-def createVol(poolobj, volname=None):
+def createVol(poolobj, volname=None, input_vol=None, clone_vol=None):
     volclass = StorageVolume.get_volume_for_pool(pool_object=poolobj)
 
     if volname == None:
@@ -59,6 +60,14 @@ def createVol(poolobj, volname=None):
     cap = 10 * 1024 * 1024 * 1024
     vol_inst = volclass(name=volname, capacity=cap, allocation=alloc,
                         pool=poolobj)
+    if input_vol or clone_vol:
+        if not virtinst.Storage.is_create_vol_from_supported(poolobj._conn):
+            return
+
+    if input_vol:
+        vol_inst.input_vol = input_vol
+    elif clone_vol:
+        vol_inst = virtinst.Storage.CloneVolume(volname, clone_vol)
 
     return vol_inst.install(meter=False)
 
@@ -69,25 +78,33 @@ class TestStorage(unittest.TestCase):
 
     def testDirPool(self):
         poolobj = createPool(self.conn, StoragePool.TYPE_DIR)
-        createVol(poolobj)
+        invol = createVol(poolobj)
+        createVol(poolobj, volname=invol.name() + "input", input_vol=invol)
+        createVol(poolobj, volname=invol.name() + "clone", clone_vol=invol)
 
     def testFSPool(self):
         poolobj = createPool(self.conn, StoragePool.TYPE_FS)
-        createVol(poolobj)
+        invol = createVol(poolobj)
+        createVol(poolobj, volname=invol.name() + "input", input_vol=invol)
+        createVol(poolobj, volname=invol.name() + "clone", clone_vol=invol)
 
     def testNetFSPool(self):
         poolobj = createPool(self.conn, StoragePool.TYPE_NETFS)
-        createVol(poolobj)
+        invol = createVol(poolobj)
+        createVol(poolobj, volname=invol.name() + "input", input_vol=invol)
+        createVol(poolobj, volname=invol.name() + "clone", clone_vol=invol)
 
     def testLVPool(self):
         poolobj = createPool(self.conn, StoragePool.TYPE_LOGICAL)
-        createVol(poolobj)
+        invol = createVol(poolobj)
+        createVol(poolobj, volname=invol.name() + "input", input_vol=invol)
+        createVol(poolobj, volname=invol.name() + "clone", clone_vol=invol)
 
     def testDiskPool(self):
-        poolobj = createPool(self.conn, StoragePool.TYPE_DISK, format="dos")
-        # Not implemented yet
-        #volobj = createVol(poolobj)
-        self.assertRaises(RuntimeError, createVol, poolobj)
+        poolobj = createPool(self.conn, StoragePool.TYPE_DISK, fmt="dos")
+        invol = createVol(poolobj)
+        createVol(poolobj, volname=invol.name() + "input", input_vol=invol)
+        createVol(poolobj, volname=invol.name() + "clone", clone_vol=invol)
 
     def testISCSIPool(self):
         poolobj = createPool(self.conn, StoragePool.TYPE_ISCSI)
diff --git a/tests/testdriver.xml b/tests/testdriver.xml
new file mode 100644
index 0000000..033f08b
--- /dev/null
+++ b/tests/testdriver.xml
@@ -0,0 +1,190 @@
+<node>
+
+  <cpu>
+    <nodes>4</nodes>
+    <sockets>4</sockets>
+    <cores>4</cores>
+    <threads>4</threads>
+    <active>4</active>
+    <mhz>4000</mhz>
+    <model>i686</model>
+  </cpu>
+  <memory>10000000</memory>
+
+<domain type='test'>
+  <name>test</name>
+  <uuid>4a64cc71-19c4-2fd0-2323-3050941ea3c3</uuid>
+  <memory>8388608</memory>
+  <currentMemory>2097152</currentMemory>
+  <vcpu>2</vcpu>
+  <os>
+    <type arch='i686'>hvm</type>
+    <boot dev='hd'/>
+  </os>
+  <clock offset='utc'/>
+  <on_poweroff>destroy</on_poweroff>
+  <on_reboot>restart</on_reboot>
+  <on_crash>destroy</on_crash>
+  <devices>
+  </devices>
+</domain>
+
+<network>
+  <name>default</name>
+  <uuid>715666b7-dbd4-6c78-fa55-94863da09f2d</uuid>
+  <forward mode='nat'/>
+  <bridge name='virbr0' stp='on' forwardDelay='0' />
+  <ip address='192.168.122.1' netmask='255.255.255.0'>
+    <dhcp>
+      <range start='192.168.122.2' end='192.168.122.254' />
+    </dhcp>
+  </ip>
+</network>
+
+<pool type='dir'>
+  <name>default-pool</name>
+  <uuid>35bb2ad9-388a-cdfe-461a-b8907f6e53fe</uuid>
+  <capacity>107374182400</capacity>
+  <allocation>0</allocation>
+  <available>107374182400</available>
+  <source>
+  </source>
+  <target>
+    <path>/default-pool</path>
+    <permissions>
+      <mode>0700</mode>
+      <owner>10736</owner>
+      <group>10736</group>
+    </permissions>
+  </target>
+
+  <volume>
+    <name>default-vol</name>
+    <capacity>1000000</capacity>
+    <allocation>50000</allocation>
+    <target/>
+  </volume>
+  <volume>
+    <name>testvol1.img</name>
+    <capacity>1000000</capacity>
+    <allocation>50000</allocation>
+    <target/>
+  </volume>
+  <volume>
+    <name>testvol2.img</name>
+    <capacity>1000000</capacity>
+    <allocation>50000</allocation>
+    <target/>
+  </volume>
+</pool>
+
+<pool type='dir'>
+  <name>cross-pool</name>
+  <uuid>35bb2ad9-388a-cdfe-461a-b8907f6e5abc</uuid>
+  <capacity>107374182400</capacity>
+  <allocation>0</allocation>
+  <available>107374182400</available>
+  <source>
+  </source>
+  <target>
+    <path>/cross-pool</path>
+    <permissions>
+      <mode>0700</mode>
+      <owner>10736</owner>
+      <group>10736</group>
+    </permissions>
+  </target>
+  <volume>
+    <name>testvol1.img</name>
+    <capacity>1000000</capacity>
+    <allocation>50000</allocation>
+    <target/>
+  </volume>
+  <volume>
+    <name>testvol2.img</name>
+    <capacity>1000000</capacity>
+    <allocation>50000</allocation>
+    <target/>
+  </volume>
+</pool>
+
+<pool type='logical'>
+  <name>disk-pool</name>
+  <uuid>35bb2ad9-388a-cdfe-461a-b8907f6e5aaa</uuid>
+  <capacity>107374182400</capacity>
+  <allocation>0</allocation>
+  <available>107374182400</available>
+  <source>
+  </source>
+  <target>
+    <path>/disk-pool</path>
+    <permissions>
+      <mode>0700</mode>
+      <owner>10736</owner>
+      <group>10736</group>
+    </permissions>
+  </target>
+
+  <volume>
+    <name>diskvol1</name>
+    <capacity>1000000</capacity>
+    <allocation>50000</allocation>
+    <target/>
+  </volume>
+</pool>
+
+<pool type='dir'>
+  <name>full-pool</name>
+  <uuid>35bb2ad9-388a-cdfe-461a-b8907f6e5555</uuid>
+  <capacity>1</capacity>
+  <allocation>1</allocation>
+  <available>0</available>
+  <source>
+  </source>
+  <target>
+    <path>/full-pool</path>
+    <permissions>
+      <mode>0700</mode>
+      <owner>10736</owner>
+      <group>10736</group>
+    </permissions>
+  </target>
+  <volume>
+    <name>testvol1.img</name>
+    <capacity>107374182400</capacity>
+    <allocation>107374182400</allocation>
+    <target/>
+  </volume>
+</pool>
+
+<pool type='disk'>
+  <name>halffull-pool</name>
+  <uuid>35bb2ad9-388a-cdfe-461a-b8907f6e5444</uuid>
+  <capacity>1</capacity>
+  <allocation>1</allocation>
+  <available>0</available>
+  <source>
+  </source>
+  <target>
+    <path>/halffull-pool</path>
+    <permissions>
+      <mode>0700</mode>
+      <owner>10736</owner>
+      <group>10736</group>
+    </permissions>
+  </target>
+  <volume>
+    <name>testvol1.img</name>
+    <capacity>30000000000</capacity>
+    <allocation>30000000000</allocation>
+    <target/>
+  </volume>
+  <volume>
+    <name>testvol2.img</name>
+    <capacity>30000000000</capacity>
+    <allocation>30000000000</allocation>
+    <target/>
+  </volume>
+</pool>
+
+</node>
diff --git a/tests/urltest.py b/tests/urltest.py
index fa9b618..3189c61 100644
--- a/tests/urltest.py
+++ b/tests/urltest.py
@@ -108,10 +108,15 @@ urls = {
         'x86_64': FEDORA_BASEURL % ("10", "x86_64"),
         'distro': ("linux", "fedora10")
     },
+    "fedora11" : {
+        'i386'  : FEDORA_BASEURL % ("11", "i386"),
+        'x86_64': FEDORA_BASEURL % ("11", "x86_64"),
+        'distro': ("linux", "fedora11")
+    },
     "fedora-rawhide" : {
         'i386'  : FEDORA_RAWHIDE_BASEURL % ("i386"),
         'x86_64': FEDORA_RAWHIDE_BASEURL % ("x86_64"),
-        'distro': ("linux", "fedora11")
+        'distro': ("linux", "fedora12")
     },
 
     # SUSE Distros
@@ -221,7 +226,7 @@ class TestURLFetch(unittest.TestCase):
 
 
     def setUp(self):
-        self.meter = None
+        self.meter = urlgrabber.progress.BaseMeter()
         if tests.debug:
             self.meter = urlgrabber.progress.TextMeter()
 
@@ -304,9 +309,16 @@ class TestURLFetch(unittest.TestCase):
                 self.fail()
 
         # Make sure the stores are reporting correct distro name/variant
-        self._checkDistroReporting([hvmstore, xenstore], distro_info)
+        try:
+            self._checkDistroReporting([hvmstore, xenstore], distro_info)
+        except:
+            logging.exception("Distro detection failed.")
+            self.fail()
 
-        def fakeAcquireFile(filename, ignore=None):
+        def fakeAcquireFile(filename, meter):
+            if not isinstance(meter, urlgrabber.progress.BaseMeter):
+                raise ValueError("passed meter is '%s' not an"
+                                 " actual meter." % meter)
             logging.debug("Fake acquiring %s" % filename)
             return fetcher.hasFile(filename)
 
diff --git a/tests/validation.py b/tests/validation.py
index 96ae17d..60c65cb 100644
--- a/tests/validation.py
+++ b/tests/validation.py
@@ -14,11 +14,11 @@
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
 # MA 02110-1301 USA.
 
-import libvirt
 import virtinst
 from virtinst import VirtualDisk
 
 # Test helpers
+import tests
 from storage import createPool, createVol
 
 import unittest
@@ -41,7 +41,7 @@ import os
 # We install several storage pools on the connection to ensure
 # we aren't bumping up against errors in that department.
 logging.debug("\n\nStarting 'validation' storage setup.")
-testconn = libvirt.open("test:///default")
+testconn = tests.open_testdriver()
 testcaps = virtinst.CapabilitiesParser.parse(testconn.getCapabilities())
 
 virtimage = virtinst.ImageParser.parse_file("tests/image-xml/image.xml")
@@ -49,7 +49,7 @@ virtimage = virtinst.ImageParser.parse_file("tests/image-xml/image.xml")
 offdskpaths = [ "/dev", ]
 for path in offdskpaths:
     createPool(testconn, virtinst.Storage.StoragePool.TYPE_DISK,
-               tpath=path, start=False, format="dos")
+               tpath=path, start=False, fmt="dos")
 
 dirpaths = [ "/var/lib/libvirt/images", "/", "/tmp" ]
 for path in dirpaths:
@@ -59,7 +59,7 @@ for path in dirpaths:
 dskpaths = [ "/somedev", "/dev/disk/by-uuid" ]
 for path in dskpaths:
     createPool(testconn, virtinst.Storage.StoragePool.TYPE_DISK,
-               format="dos", tpath=path, start=False)
+               fmt="dos", tpath=path, start=False)
 
 # Create a usable pool/vol pairs
 p = createPool(testconn, virtinst.Storage.StoragePool.TYPE_DIR,
@@ -119,47 +119,49 @@ args = {
 },
 
 'disk' : {
-    'init_conns' : [ testconn, None ],
-    '__init__' : {
-        'invalid' : [{ 'path' : 0},
-                     { 'path' : '/root' },
-                     { 'path' : 'valid', 'size' : None },
-                     { 'path' : "valid", 'size' : 'invalid' },
-                     { 'path' : 'valid', 'size' : -1},
-                     { 'path' : 'notblock', 'type' : VirtualDisk.TYPE_BLOCK},
-                     { 'path' :'/dev/null', 'type' : VirtualDisk.TYPE_BLOCK},
-                     { 'path' : None },
-                     { 'path' : "noexist", 'size' : 900000, 'sparse' : False },
-                     { 'path' : "noexist", 'type' : VirtualDisk.DEVICE_CDROM},
-                     { 'volName' : ("pool-exist", "vol-exist")},
-                     { 'conn' : testconn, 'volName' : ("pool-noexist",
-                                                       "vol-exist")},
-                     { 'conn' : testconn, 'volName' : ("pool-exist",
-                                                       "vol-noexist")},
-                     { 'conn' : testconn, 'volName' : ( 1234,
-                                                       "vol-noexist")},
-                     { 'path' : 'valid', 'size' : 1,
-                       'driverCache' : 'invalid' },
-                    ],
-
-        'valid' :   [{ 'path' : '/dev/loop0' },
-                     { 'path' : 'nonexist', 'size' : 1 },
-                     { 'path' :'/dev/null'},
-                     { 'path' : None, 'device' : VirtualDisk.DEVICE_CDROM},
-                     { 'path' : None, 'device' : VirtualDisk.DEVICE_FLOPPY},
-                     { 'conn' : testconn, 'volName' : ("pool-exist",
-                                                       "vol-exist")},
-                     { 'conn' : testconn, 'path' : "/pool-exist/vol-exist" },
-                     { 'conn' : testconn, 'path' : "/pool-exist/vol-noexist",
-                       'size' : 1 },
-                     { 'conn' : testconn, 'volInstall': volinst},
-                     { 'path' : 'nonexist', 'size' : 1,
-                       'driverCache' : 'writethrough' },
-                    ]
-                },
-    'shareable' : {
-        'invalid': [ None, 1234 ],
-        'valid': [ True, False ] },
+  'init_conns' : [ testconn, None ],
+  '__init__' : {
+
+   'invalid' : [
+    {'path' : 0},
+    { 'path' : '/root' },
+    { 'path' : 'valid', 'size' : None },
+    { 'path' : "valid", 'size' : 'invalid' },
+    { 'path' : 'valid', 'size' : -1},
+    { 'path' : 'notblock', 'type' : VirtualDisk.TYPE_BLOCK},
+    { 'path' :'/dev/null', 'type' : VirtualDisk.TYPE_BLOCK},
+    { 'path' : None },
+    { 'path' : "noexist", 'size' : 900000, 'sparse' : False },
+    { 'path' : "noexist", 'type' : VirtualDisk.DEVICE_CDROM},
+    { 'volName' : ("pool-exist", "vol-exist")},
+    { 'conn' : testconn, 'volName' : ("pool-noexist", "vol-exist")},
+    { 'conn' : testconn, 'volName' : ("pool-exist", "vol-noexist")},
+    { 'conn' : testconn, 'volName' : ( 1234, "vol-noexist")},
+    { 'path' : 'valid', 'size' : 1, 'driverCache' : 'invalid' },
+    { 'conn' : testconn, "path" : "/full-pool/newvol.img", "size" : 1,
+      'sparse' : False },
+   ],
+
+   'valid' : [
+    { 'path' : '/dev/loop0' },
+    { 'path' : 'nonexist', 'size' : 1 },
+    { 'path' :'/dev/null'},
+    { 'path' : None, 'device' : VirtualDisk.DEVICE_CDROM},
+    { 'path' : None, 'device' : VirtualDisk.DEVICE_FLOPPY},
+    { 'conn' : testconn, 'volName' : ("pool-exist", "vol-exist")},
+    { 'conn' : testconn, 'path' : "/pool-exist/vol-exist" },
+    { 'conn' : testconn, 'path' : "/pool-exist/vol-noexist", 'size' : 1 },
+    { 'conn' : testconn, 'volInstall': volinst},
+    { 'path' : 'nonexist', 'size' : 1, 'driverCache' : 'writethrough' },
+    # Full pool, but we are nonsparse
+    { 'conn' : testconn, "path" : "/full-pool/newvol.img", "size" : 1 },
+   ]
+  },
+
+  'shareable' : {
+    'invalid': [ None, 1234 ],
+    'valid': [ True, False ]
+  },
 },
 
 'installer' : {
@@ -187,6 +189,7 @@ args = {
                      ("pool-exist", "vol-noexist"),
                     ],
         'valid'   : ['/dev/null', 'http://web', 'ftp://ftp', 'nfs:nfsserv',
+                     '/tmp', # For installing from local dir tree
                      ("pool-exist", "vol-exist"),
                     ]}
 },
@@ -233,11 +236,47 @@ args = {
                     'valid'   : ['12345678123456781234567812345678']},
     'clone_mac' : { 'invalid' : ['badformat'],
                     'valid'   : ['AA:BB:CC:DD:EE:FF']},
-    'clone_bs'  : { 'invalid' : [], 'valid'   : ['valid']}
+    'clone_bs'  : { 'invalid' : [], 'valid'   : ['valid']},
+},
+
+'inputdev' : {
+    'init_conns' : [ testconn ],
+    'type' : {
+        'valid'   : [ "mouse", "tablet"],
+        'invalid' : [ "foobar", 1234]},
+    'bus' : {
+        'valid'   : [ "ps2", "xen", "usb"],
+        'invalid' : [ "foobar", 1234]},
 },
 
+'chardev' : {
+    'init_conns' : [ testconn ],
+    'source_path': {
+        'invalid'   : [],
+        'valid'     : [ "/some/path" ]},
+    'source_mode': {
+        'invalid'   : [ None ],
+        'valid'     : virtinst.VirtualCharDevice.char_modes },
+    'source_host': {
+        'invalid'   : [],
+        'valid'     : [ "some.source.host" ]},
+    'source_port': {
+        'invalid'   : [ "foobar"],
+        'valid'     : [ 1234 ]},
+    'connect_host': {
+        'invalid'   : [],
+        'valid'     : [ "some.connect.com" ]},
+    'connect_port': {
+        'invalid'   : [ "foobar"],
+        'valid'     : [ 1234 ]},
+    'protocol': {
+        'invalid'   : [ None ],
+        'valid'     : virtinst.VirtualCharDevice.char_protocols },
+}
+
 } # End of validation dict
 
+
 class TestValidation(unittest.TestCase):
 
     def _getInitConns(self, label):
@@ -296,12 +335,15 @@ class TestValidation(unittest.TestCase):
                    (name, paramname, paramvalue))
             raise AssertionError, msg
 
-    def _testArgs(self, obj, testclass, name, exception_check=None):
+    def _testArgs(self, obj, testclass, name, exception_check=None,
+                  manual_dict=None):
         """@obj Object to test parameters against
            @testclass Full class to test initialization against
            @name String name indexing args"""
         logging.debug("Testing '%s'" % name)
         testdict = args[name]
+        if manual_dict != None:
+            testdict = manual_dict
 
         for paramname in testdict.keys():
             if paramname == "init_conns":
@@ -406,6 +448,29 @@ class TestValidation(unittest.TestCase):
             cman = virtinst.CloneManager.CloneDesign(conn)
             self._testArgs(cman, virtinst.CloneManager.CloneDesign, label)
 
+    def testInputDev(self):
+        label = 'inputdev'
+        for conn in self._getInitConns(label):
+            cman = virtinst.VirtualInputDevice(conn)
+            self._testArgs(cman, virtinst.VirtualInputDevice, label)
+
+    def testCharDev(self):
+        label = 'chardev'
+        paramdict = args[label]
+        devs = []
+
+        for conn in self._getInitConns(label):
+            for dev in virtinst.VirtualCharDevice.dev_types:
+                for char in virtinst.VirtualCharDevice.char_types:
+                    devs.append(virtinst.VirtualCharDevice.get_dev_instance(conn, dev, char))
+
+        for dev in devs:
+            custom_dict = {}
+            for key in paramdict.keys():
+                if hasattr(dev, key):
+                    custom_dict[key] = paramdict[key]
+            self._testArgs(dev, virtinst.VirtualCharDevice, label,
+                           manual_dict=custom_dict)
 
 if __name__ == "__main__":
     unittest.main()
diff --git a/tests/virtconv-files/virtimage2vmx/image.virt-image b/tests/virtconv-files/virtimage_input/test1.virt-image
similarity index 100%
rename from tests/virtconv-files/virtimage2vmx/image.virt-image
rename to tests/virtconv-files/virtimage_input/test1.virt-image
diff --git a/tests/virtconv-files/virtimage_output/ovf2virtimage_test1.virt-image b/tests/virtconv-files/virtimage_output/ovf2virtimage_test1.virt-image
new file mode 100644
index 0000000..d4c1c65
--- /dev/null
+++ b/tests/virtconv-files/virtimage_output/ovf2virtimage_test1.virt-image
@@ -0,0 +1,32 @@
+
+<image>
+ <name>test.ovf</name>
+ <label>test.ovf</label>
+ <description>This is the description, created by RWMJ.</description>
+ <domain>
+  
+  <boot type="hvm">
+   <guest>
+    <arch>i686</arch>
+   </guest>
+   <os>
+    <loader dev="hd"/>
+   </os>
+   <drive disk="test.ovf-disk1.vmdk" target="hda" />
+<drive disk="testfile" target="hdb" />
+
+  </boot>
+
+  <devices>
+   <vcpu>3</vcpu>
+   <memory>795648</memory>
+   <interface />
+   <graphics />
+  </devices>
+ </domain>
+ <storage>
+  <disk file="test.ovf-disk1.vmdk" use="system" format="raw"/>
+<disk file="testfile" use="system" format="raw"/>
+
+ </storage>
+</image>
diff --git a/tests/virtconv-files/vmx2virtimage/test.virt-image b/tests/virtconv-files/virtimage_output/ovf2virtimage_test2.virt-image
similarity index 50%
copy from tests/virtconv-files/vmx2virtimage/test.virt-image
copy to tests/virtconv-files/virtimage_output/ovf2virtimage_test2.virt-image
index d131fe8..127351d 100644
--- a/tests/virtconv-files/vmx2virtimage/test.virt-image
+++ b/tests/virtconv-files/virtimage_output/ovf2virtimage_test2.virt-image
@@ -1,8 +1,8 @@
 
 <image>
- <name>fedora</name>
- <label>fedora</label>
- <description></description>
+ <name>w2k3_32bit</name>
+ <label>w2k3_32bit</label>
+ <description>Description added by RWMJ.</description>
  <domain>
   
   <boot type="hvm">
@@ -12,19 +12,19 @@
    <os>
     <loader dev="hd"/>
    </os>
-   <drive disk="fedora.vmdk" target="hda" />
+   <drive disk="w2k3 32bit-disk1.vmdk" target="hda" />
 
   </boot>
 
   <devices>
    <vcpu>1</vcpu>
-   <memory>524288</memory>
+   <memory>1048576</memory>
    <interface />
    <graphics />
   </devices>
  </domain>
  <storage>
-  <disk file="fedora.vmdk" use="system" format="raw"/>
+  <disk file="w2k3 32bit-disk1.vmdk" use="system" format="raw"/>
 
  </storage>
 </image>
diff --git a/tests/virtconv-files/vmx2virtimage/test.virt-image b/tests/virtconv-files/virtimage_output/vmx2virtimage_test1.virt-image
similarity index 100%
rename from tests/virtconv-files/vmx2virtimage/test.virt-image
rename to tests/virtconv-files/virtimage_output/vmx2virtimage_test1.virt-image
diff --git a/tests/virtconv-files/vmx2virtimage/test.vmx b/tests/virtconv-files/vmx_input/test1.vmx
similarity index 100%
rename from tests/virtconv-files/vmx2virtimage/test.vmx
rename to tests/virtconv-files/vmx_input/test1.vmx
diff --git a/tests/virtconv-files/virtimage2vmx/image.vmx b/tests/virtconv-files/vmx_output/virtimage2vmx_test1.vmx
similarity index 93%
rename from tests/virtconv-files/virtimage2vmx/image.vmx
rename to tests/virtconv-files/vmx_output/virtimage2vmx_test1.vmx
index db4fbe7..db5b2b2 100644
--- a/tests/virtconv-files/virtimage2vmx/image.vmx
+++ b/tests/virtconv-files/vmx_output/virtimage2vmx_test1.vmx
@@ -2,7 +2,7 @@
 #!/usr/bin/vmplayer
 
 # Generated by setup.py
-# http://virt-manager.et.redhat.com/
+# http://virt-manager.org/
 
 # This is a Workstation 5 or 5.5 config file and can be used with Player
 config.version = "8"
@@ -11,7 +11,7 @@ guestOS = "other"
 displayName = "test-image"
 annotation = "None"
 guestinfo.vmware.product.long = "test-image"
-guestinfo.vmware.product.url = "http://virt-manager.et.redhat.com/"
+guestinfo.vmware.product.url = "http://virt-manager.org/"
 guestinfo.vmware.product.class = "virtual machine"
 numvcpus = "7"
 memsize = "256"
diff --git a/tests/virtconv-test.py b/tests/virtconv-test.py
index d419f41..b949de6 100644
--- a/tests/virtconv-test.py
+++ b/tests/virtconv-test.py
@@ -19,62 +19,90 @@ import virtconv
 import os, os.path, glob
 import tests
 
-vmx2virtimage_dir = "tests/virtconv-files/vmx2virtimage"
-vmx2virtimage_files = [ "test" ]
+BASE = "tests/virtconv-files"
 
-virtimage2vmx_dir = "tests/virtconv-files/virtimage2vmx"
-virtimage2vmx_files = [ "image" ]
+vmx_input  = BASE + "/vmx_input"
+vmx_output = BASE + "/vmx_output"
 
-# For x2x conversion, we want to use already tested output, since ideally
-# we should be able to run a generated config continually through the
-# converter and it will generate the same result
-vmx2vmx_dirs = [ virtimage2vmx_dir ]
-virtimage2virtimage_dirs = [ vmx2virtimage_dir ]
+virtimage_input  = BASE + "/virtimage_input"
+virtimage_output = BASE + "/virtimage_output"
+
+ovf_input = BASE + "/ovf_input"
 
 class TestVirtConv(unittest.TestCase):
 
     def setUp(self):
         pass
 
-    def _convert_helper(self, dirname, filebase, input_type, output_type):
-        infile  = os.path.join(dirname, filebase + "." + input_type)
-        outfile = os.path.join(dirname, filebase + "." + output_type)
-
+    def _convert_helper(self, infile, outfile, in_type, out_type):
         inp  = virtconv.formats.find_parser_by_file(infile)
-        outp = virtconv.formats.parser_by_name(output_type)
+        outp = virtconv.formats.parser_by_name(out_type)
 
-        if not inp or inp.name != input_type:
+        if not inp or inp.name != in_type:
             raise AssertionError("find_parser_by_file for '%s' returned "
                                  "wrong parser type.\n"
                                  "Expected: %s\n"
                                  "Received: %s\n" % \
-                                 (infile, input_type,
+                                 (infile, in_type,
                                  str((not inp) and str(inp) or inp.name)))
 
         vmdef = inp.import_file(infile)
         out_expect = outp.export(vmdef)
         tests.diff_compare(out_expect, outfile)
 
+    def _build_compare_path(self, base, in_path, out_dir, out_type):
+        out_path = os.path.basename(in_path).rsplit(".", 1)[0]
+        return "%s/%s_%s.%s" % (out_dir, base, out_path, out_type)
+
+    def _compare_files(self, base, in_type, out_type, in_dir, out_dir):
+        for in_path in glob.glob(os.path.join(in_dir, "*." + in_type)):
+            if in_type != out_type:
+                out_path = self._build_compare_path(base, in_path,
+                                                    out_dir, out_type)
+            else:
+                out_path = in_path
+            self._convert_helper(in_path, out_path, in_type, out_type)
+
     def testVMX2VirtImage(self):
-        for filename in vmx2virtimage_files:
-            self._convert_helper(vmx2virtimage_dir, filename,
-                                 "vmx", "virt-image")
+        base = "vmx2virtimage"
+        in_type = "vmx"
+        out_type = "virt-image"
+        in_dir = vmx_input
+        out_dir = virtimage_output
 
-    def testVMX2VMX(self):
-        for dirname in vmx2vmx_dirs:
-            for filepath in glob.glob(os.path.join(dirname, "*.vmx")):
-                filename = os.path.splitext(os.path.basename(filepath))[0]
-                self._convert_helper(dirname, filename, "vmx", "vmx")
+        self._compare_files(base, in_type, out_type, in_dir, out_dir)
 
     def testVirtImage2VMX(self):
-        for filename in virtimage2vmx_files:
-            self._convert_helper(virtimage2vmx_dir, filename,
-                                 "virt-image", "vmx")
+        base = "virtimage2vmx"
+        in_type = "virt-image"
+        out_type = "vmx"
+        in_dir = virtimage_input
+        out_dir = vmx_output
+
+        self._compare_files(base, in_type, out_type, in_dir, out_dir)
+
+    def testOVF2VirtImage(self):
+        base = "ovf2virtimage"
+        in_type = "ovf"
+        out_type = "virt-image"
+        in_dir = ovf_input
+        out_dir = virtimage_output
+
+        self._compare_files(base, in_type, out_type, in_dir, out_dir)
+
+    # For x2x conversion, we want to use already tested output, since ideally
+    # we should be able to run a generated config continually through the
+    # converter and it will generate the same result
+    def testVMX2VMX(self):
+        base = None
+        in_type = out_type = "vmx"
+        in_dir = out_dir = vmx_output
+
+        self._compare_files(base, in_type, out_type, in_dir, out_dir)
 
     def testVirtImage2VirtImage(self):
-        for dirname in virtimage2virtimage_dirs:
-            for filepath in glob.glob(os.path.join(dirname, "*.virt-image")):
-                filename = os.path.splitext(os.path.basename(filepath))[0]
-                self._convert_helper(dirname, filename, "virt-image",
-                                     "virt-image")
+        base = None
+        in_type = out_type = "virt-image"
+        in_dir = out_dir = virtimage_output
 
+        self._compare_files(base, in_type, out_type, in_dir, out_dir)
diff --git a/tests/xmlconfig-xml/boot-fullyvirt-disk-block.xml b/tests/xmlconfig-xml/boot-fullyvirt-disk-block.xml
index 1f98b48..d707fbc 100644
--- a/tests/xmlconfig-xml/boot-fullyvirt-disk-block.xml
+++ b/tests/xmlconfig-xml/boot-fullyvirt-disk-block.xml
@@ -18,7 +18,6 @@
   <vcpu>5</vcpu>
   <devices>
     <emulator>/usr/lib/xen/bin/qemu-dm</emulator>
-    <console type='pty'/>
     <disk type='block' device='disk'>
       <source dev='/dev/loop0'/>
       <target dev='hda' bus='ide'/>
@@ -29,5 +28,6 @@
     </disk>
     <input type='mouse' bus='ps2'/>
     <graphics type='sdl' display=':3.4' xauth='/testdir/.Xauthority'/>
+    <console type='pty'/>
   </devices>
 </domain>
diff --git a/tests/xmlconfig-xml/boot-fullyvirt-disk-file.xml b/tests/xmlconfig-xml/boot-fullyvirt-disk-file.xml
index d31b7e1..6871a77 100644
--- a/tests/xmlconfig-xml/boot-fullyvirt-disk-file.xml
+++ b/tests/xmlconfig-xml/boot-fullyvirt-disk-file.xml
@@ -18,7 +18,6 @@
   <vcpu>5</vcpu>
   <devices>
     <emulator>/usr/lib/xen/bin/qemu-dm</emulator>
-    <console type='pty'/>
     <disk type='file' device='disk'>
       <source file='/tmp/test.img'/>
       <target dev='hda' bus='ide'/>
@@ -29,5 +28,6 @@
     </disk>
     <input type='mouse' bus='ps2'/>
     <graphics type='sdl' display=':3.4' xauth='/testdir/.Xauthority'/>
+    <console type='pty'/>
   </devices>
 </domain>
diff --git a/tests/xmlconfig-xml/boot-fullyvirt-pxe-nodisks.xml b/tests/xmlconfig-xml/boot-fullyvirt-pxe-nodisks.xml
index df11cde..7a4d007 100644
--- a/tests/xmlconfig-xml/boot-fullyvirt-pxe-nodisks.xml
+++ b/tests/xmlconfig-xml/boot-fullyvirt-pxe-nodisks.xml
@@ -18,8 +18,8 @@
   <vcpu>5</vcpu>
   <devices>
     <emulator>/usr/lib/xen/bin/qemu-dm</emulator>
-    <console type='pty'/>
     <input type='mouse' bus='ps2'/>
     <graphics type='sdl' display=':3.4' xauth='/testdir/.Xauthority'/>
+    <console type='pty'/>
   </devices>
 </domain>
diff --git a/tests/xmlconfig-xml/boot-fullyvirt-pxe.xml b/tests/xmlconfig-xml/boot-fullyvirt-pxe.xml
index cf87582..f9f5fe8 100644
--- a/tests/xmlconfig-xml/boot-fullyvirt-pxe.xml
+++ b/tests/xmlconfig-xml/boot-fullyvirt-pxe.xml
@@ -18,12 +18,12 @@
   <vcpu>5</vcpu>
   <devices>
     <emulator>/usr/lib/xen/bin/qemu-dm</emulator>
-    <console type='pty'/>
     <disk type='file' device='disk'>
       <source file='/tmp/test.img'/>
       <target dev='hda' bus='ide'/>
     </disk>
     <input type='mouse' bus='ps2'/>
     <graphics type='sdl' display=':3.4' xauth='/testdir/.Xauthority'/>
+    <console type='pty'/>
   </devices>
 </domain>
diff --git a/tests/xmlconfig-xml/boot-fullyvirt-disk-block.xml b/tests/xmlconfig-xml/boot-many-chars.xml
similarity index 58%
copy from tests/xmlconfig-xml/boot-fullyvirt-disk-block.xml
copy to tests/xmlconfig-xml/boot-many-chars.xml
index 1f98b48..ceb4202 100644
--- a/tests/xmlconfig-xml/boot-fullyvirt-disk-block.xml
+++ b/tests/xmlconfig-xml/boot-many-chars.xml
@@ -6,7 +6,7 @@
   <os>
     <type arch='i686'>hvm</type>
     <loader>/usr/lib/xen/boot/hvmloader</loader>
-    <boot dev='hd'/>
+    <boot dev='network'/>
   </os>
   <features>
     <acpi/><apic/>
@@ -18,16 +18,19 @@
   <vcpu>5</vcpu>
   <devices>
     <emulator>/usr/lib/xen/bin/qemu-dm</emulator>
-    <console type='pty'/>
-    <disk type='block' device='disk'>
-      <source dev='/dev/loop0'/>
-      <target dev='hda' bus='ide'/>
-    </disk>
-    <disk type='block' device='cdrom'>
-      <target dev='hdc' bus='ide'/>
-      <readonly/>
-    </disk>
     <input type='mouse' bus='ps2'/>
     <graphics type='sdl' display=':3.4' xauth='/testdir/.Xauthority'/>
+    <serial type='null'/>
+    <serial type='tcp'>
+      <source mode='bind' host='my.source.host' service='1234'/>
+      <protocol type='telnet'/>
+    </serial>
+    <parallel type='unix'>
+      <source mode='bind' path='/tmp/foobar'/>
+    </parallel>
+    <parallel type='udp'>
+      <source mode='bind' host='my.bind.host' service='1111'/>
+      <source mode='connect' host='my.source.host' service='2222'/>
+    </parallel>
   </devices>
 </domain>
diff --git a/tests/xmlconfig-xml/boot-many-devices.xml b/tests/xmlconfig-xml/boot-many-devices.xml
new file mode 100644
index 0000000..2afef6b
--- /dev/null
+++ b/tests/xmlconfig-xml/boot-many-devices.xml
@@ -0,0 +1,58 @@
+<domain type='xen'>
+  <name>TestGuest</name>
+  <currentMemory>204800</currentMemory>
+  <memory>409600</memory>
+  <uuid>12345678-1234-1234-1234-123456789012</uuid>
+  <os>
+    <type arch='i686'>hvm</type>
+    <loader>/usr/lib/xen/boot/hvmloader</loader>
+    <boot dev='hd'/>
+  </os>
+  <features>
+    <acpi/><apic/>
+  </features>
+  <clock offset="utc"/>
+  <on_poweroff>destroy</on_poweroff>
+  <on_reboot>restart</on_reboot>
+  <on_crash>restart</on_crash>
+  <vcpu>5</vcpu>
+  <devices>
+    <emulator>/usr/lib/xen/bin/qemu-dm</emulator>
+    <disk type='block' device='floppy'>
+      <source dev='/dev/loop0'/>
+      <target dev='fda' bus='fdc'/>
+    </disk>
+    <disk type='block' device='disk'>
+      <source dev='/dev/loop0'/>
+      <target dev='sda' bus='scsi'/>
+    </disk>
+    <interface type='network'>
+      <source network='default'/>
+      <mac address='11:22:33:44:55:66'/>
+      <model type='e1000'/>
+    </interface>
+    <interface type='user'>
+      <mac address='11:11:11:11:11:11'/>
+    </interface>
+    <input type='mouse' bus='ps2'/>
+    <graphics type='sdl' display=':3.4' xauth='/testdir/.Xauthority'/>
+    <serial type='null'/>
+    <parallel type='unix'>
+      <source mode='bind' path='/tmp/foobar'/>
+    </parallel>
+    <sound model='sb16'/>
+    <sound model='es1370'/>
+    <video>
+      <model type='vmvga'/>
+    </video>
+    <video>
+      <model type='cirrus' vram='10240' heads='3'/>
+    </video>
+    <hostdev mode='subsystem' type='usb' managed='yes'>
+      <source>
+        <vendor id='0x4321'/>
+        <product id='0x1234'/>
+      </source>
+    </hostdev>
+  </devices>
+</domain>
diff --git a/tests/xmlconfig-xml/boot-many-disks2.xml b/tests/xmlconfig-xml/boot-many-disks2.xml
new file mode 100644
index 0000000..a95e09b
--- /dev/null
+++ b/tests/xmlconfig-xml/boot-many-disks2.xml
@@ -0,0 +1,53 @@
+<domain type='xen'>
+  <name>TestGuest</name>
+  <currentMemory>204800</currentMemory>
+  <memory>409600</memory>
+  <uuid>12345678-1234-1234-1234-123456789012</uuid>
+  <os>
+    <type arch='i686'>hvm</type>
+    <loader>/usr/lib/xen/boot/hvmloader</loader>
+    <boot dev='hd'/>
+  </os>
+  <features>
+    <acpi/><apic/>
+  </features>
+  <clock offset="utc"/>
+  <on_poweroff>destroy</on_poweroff>
+  <on_reboot>restart</on_reboot>
+  <on_crash>restart</on_crash>
+  <vcpu>5</vcpu>
+  <devices>
+    <emulator>/usr/lib/xen/bin/qemu-dm</emulator>
+    <disk type='file' device='disk'>
+      <source file='/tmp/test.img'/>
+      <target dev='hda' bus='ide'/>
+    </disk>
+    <disk type='block' device='disk'>
+      <source dev='/dev/loop0'/>
+      <target dev='hdb' bus='ide'/>
+    </disk>
+    <disk type='block' device='cdrom'>
+      <source dev='/dev/loop0'/>
+      <target dev='hdc' bus='ide'/>
+      <readonly/>
+    </disk>
+    <disk type='block' device='cdrom'>
+      <target dev='sda' bus='scsi'/>
+      <readonly/>
+    </disk>
+    <disk type='block' device='floppy'>
+      <target dev='fda' bus='fdc'/>
+    </disk>
+    <disk type='block' device='floppy'>
+      <source dev='/dev/loop0'/>
+      <target dev='fdb' bus='fdc'/>
+    </disk>
+    <disk type='block' device='disk'>
+      <source dev='/dev/loop0'/>
+      <target dev='vda' bus='virtio'/>
+    </disk>
+    <input type='mouse' bus='ps2'/>
+    <graphics type='sdl' display=':3.4' xauth='/testdir/.Xauthority'/>
+    <console type='pty'/>
+  </devices>
+</domain>
diff --git a/tests/xmlconfig-xml/boot-fullyvirt-pxe-nodisks.xml b/tests/xmlconfig-xml/boot-many-hostdevs.xml
similarity index 67%
copy from tests/xmlconfig-xml/boot-fullyvirt-pxe-nodisks.xml
copy to tests/xmlconfig-xml/boot-many-hostdevs.xml
index df11cde..d810ca9 100644
--- a/tests/xmlconfig-xml/boot-fullyvirt-pxe-nodisks.xml
+++ b/tests/xmlconfig-xml/boot-many-hostdevs.xml
@@ -18,8 +18,19 @@
   <vcpu>5</vcpu>
   <devices>
     <emulator>/usr/lib/xen/bin/qemu-dm</emulator>
-    <console type='pty'/>
     <input type='mouse' bus='ps2'/>
     <graphics type='sdl' display=':3.4' xauth='/testdir/.Xauthority'/>
+    <console type='pty'/>
+    <hostdev mode='subsystem' type='usb' managed='yes'>
+      <source>
+        <vendor id='0x4321'/>
+        <product id='0x1234'/>
+      </source>
+    </hostdev>
+    <hostdev mode='subsystem' type='pci' managed='yes'>
+      <source>
+        <address domain='0x0' bus='0x11' slot='0x22' function='0x33'/>
+      </source>
+    </hostdev>
   </devices>
 </domain>
diff --git a/tests/xmlconfig-xml/boot-fullyvirt-disk-block.xml b/tests/xmlconfig-xml/boot-many-nics.xml
similarity index 56%
copy from tests/xmlconfig-xml/boot-fullyvirt-disk-block.xml
copy to tests/xmlconfig-xml/boot-many-nics.xml
index 1f98b48..b0d649a 100644
--- a/tests/xmlconfig-xml/boot-fullyvirt-disk-block.xml
+++ b/tests/xmlconfig-xml/boot-many-nics.xml
@@ -6,7 +6,7 @@
   <os>
     <type arch='i686'>hvm</type>
     <loader>/usr/lib/xen/boot/hvmloader</loader>
-    <boot dev='hd'/>
+    <boot dev='network'/>
   </os>
   <features>
     <acpi/><apic/>
@@ -18,16 +18,24 @@
   <vcpu>5</vcpu>
   <devices>
     <emulator>/usr/lib/xen/bin/qemu-dm</emulator>
-    <console type='pty'/>
-    <disk type='block' device='disk'>
-      <source dev='/dev/loop0'/>
-      <target dev='hda' bus='ide'/>
-    </disk>
-    <disk type='block' device='cdrom'>
-      <target dev='hdc' bus='ide'/>
-      <readonly/>
-    </disk>
+    <interface type='user'>
+      <mac address='11:11:11:11:11:11'/>
+    </interface>
+    <interface type='network'>
+      <source network='default'/>
+      <mac address='11:22:33:44:55:66'/>
+    </interface>
+    <interface type='network'>
+      <source network='default'/>
+      <mac address='11:22:33:44:55:66'/>
+      <model type='e1000'/>
+    </interface>
+    <interface type='bridge'>
+      <source bridge='foobr0'/>
+      <mac address='22:22:22:22:22:22'/>
+    </interface>
     <input type='mouse' bus='ps2'/>
     <graphics type='sdl' display=':3.4' xauth='/testdir/.Xauthority'/>
+    <console type='pty'/>
   </devices>
 </domain>
diff --git a/tests/xmlconfig-xml/boot-fullyvirt-pxe-nodisks.xml b/tests/xmlconfig-xml/boot-many-sounds.xml
similarity index 89%
copy from tests/xmlconfig-xml/boot-fullyvirt-pxe-nodisks.xml
copy to tests/xmlconfig-xml/boot-many-sounds.xml
index df11cde..3a5553e 100644
--- a/tests/xmlconfig-xml/boot-fullyvirt-pxe-nodisks.xml
+++ b/tests/xmlconfig-xml/boot-many-sounds.xml
@@ -18,8 +18,11 @@
   <vcpu>5</vcpu>
   <devices>
     <emulator>/usr/lib/xen/bin/qemu-dm</emulator>
-    <console type='pty'/>
     <input type='mouse' bus='ps2'/>
     <graphics type='sdl' display=':3.4' xauth='/testdir/.Xauthority'/>
+    <console type='pty'/>
+    <sound model='sb16'/>
+    <sound model='es1370'/>
+    <sound model='pcspk'/>
   </devices>
 </domain>
diff --git a/tests/xmlconfig-xml/boot-fullyvirt-disk-file.xml b/tests/xmlconfig-xml/boot-windowsxp-kvm.xml
similarity index 68%
copy from tests/xmlconfig-xml/boot-fullyvirt-disk-file.xml
copy to tests/xmlconfig-xml/boot-windowsxp-kvm.xml
index d31b7e1..5a6de32 100644
--- a/tests/xmlconfig-xml/boot-fullyvirt-disk-file.xml
+++ b/tests/xmlconfig-xml/boot-windowsxp-kvm.xml
@@ -1,33 +1,41 @@
-<domain type='xen'>
+<domain type='kvm'>
   <name>TestGuest</name>
   <currentMemory>204800</currentMemory>
   <memory>409600</memory>
   <uuid>12345678-1234-1234-1234-123456789012</uuid>
   <os>
     <type arch='i686'>hvm</type>
-    <loader>/usr/lib/xen/boot/hvmloader</loader>
     <boot dev='hd'/>
   </os>
   <features>
     <acpi/><apic/>
   </features>
-  <clock offset="utc"/>
+  <clock offset="localtime"/>
   <on_poweroff>destroy</on_poweroff>
   <on_reboot>restart</on_reboot>
   <on_crash>restart</on_crash>
   <vcpu>5</vcpu>
   <devices>
     <emulator>/usr/lib/xen/bin/qemu-dm</emulator>
-    <console type='pty'/>
     <disk type='file' device='disk'>
       <source file='/tmp/test.img'/>
       <target dev='hda' bus='ide'/>
     </disk>
+    <disk type='block' device='disk'>
+      <source dev='/dev/loop0'/>
+      <target dev='hdb' bus='ide'/>
+    </disk>
     <disk type='block' device='cdrom'>
+      <source dev='/dev/loop0'/>
       <target dev='hdc' bus='ide'/>
       <readonly/>
     </disk>
-    <input type='mouse' bus='ps2'/>
+    <interface type='network'>
+      <source network='default'/>
+      <mac address='11:22:33:44:55:66'/>
+    </interface>
+    <input type='tablet' bus='usb'/>
     <graphics type='sdl' display=':3.4' xauth='/testdir/.Xauthority'/>
+    <console type='pty'/>
   </devices>
 </domain>
diff --git a/tests/xmlconfig-xml/install-fullyvirt-disk-file.xml b/tests/xmlconfig-xml/install-f10.xml
similarity index 69%
copy from tests/xmlconfig-xml/install-fullyvirt-disk-file.xml
copy to tests/xmlconfig-xml/install-f10.xml
index 5002e52..2af45da 100644
--- a/tests/xmlconfig-xml/install-fullyvirt-disk-file.xml
+++ b/tests/xmlconfig-xml/install-f10.xml
@@ -1,12 +1,11 @@
-<domain type='xen'>
+<domain type='kvm'>
   <name>TestGuest</name>
   <currentMemory>204800</currentMemory>
   <memory>409600</memory>
   <uuid>12345678-1234-1234-1234-123456789012</uuid>
   <os>
     <type arch='i686'>hvm</type>
-    <loader>/usr/lib/xen/boot/hvmloader</loader>
-    <boot dev='cdrom'/>
+    <boot dev='network'/>
   </os>
   <features>
     <acpi/><apic/>
@@ -18,17 +17,21 @@
   <vcpu>5</vcpu>
   <devices>
     <emulator>/usr/lib/xen/bin/qemu-dm</emulator>
-    <console type='pty'/>
     <disk type='file' device='disk'>
       <source file='/tmp/test.img'/>
-      <target dev='hda' bus='ide'/>
+      <target dev='vda' bus='virtio'/>
     </disk>
-    <disk type='block' device='cdrom'>
+    <disk type='block' device='disk'>
       <source dev='/dev/loop0'/>
-      <target dev='hdc' bus='ide'/>
-      <readonly/>
+      <target dev='vdb' bus='virtio'/>
     </disk>
+    <interface type='network'>
+      <source network='default'/>
+      <mac address='11:22:33:44:55:66'/>
+      <model type='virtio'/>
+    </interface>
     <input type='mouse' bus='ps2'/>
     <graphics type='sdl' display=':3.4' xauth='/testdir/.Xauthority'/>
+    <console type='pty'/>
   </devices>
 </domain>
diff --git a/tests/xmlconfig-xml/boot-fullyvirt-disk-file.xml b/tests/xmlconfig-xml/install-f11.xml
similarity index 65%
copy from tests/xmlconfig-xml/boot-fullyvirt-disk-file.xml
copy to tests/xmlconfig-xml/install-f11.xml
index d31b7e1..9ec5fdd 100644
--- a/tests/xmlconfig-xml/boot-fullyvirt-disk-file.xml
+++ b/tests/xmlconfig-xml/install-f11.xml
@@ -1,11 +1,10 @@
-<domain type='xen'>
+<domain type='kvm'>
   <name>TestGuest</name>
   <currentMemory>204800</currentMemory>
   <memory>409600</memory>
   <uuid>12345678-1234-1234-1234-123456789012</uuid>
   <os>
     <type arch='i686'>hvm</type>
-    <loader>/usr/lib/xen/boot/hvmloader</loader>
     <boot dev='hd'/>
   </os>
   <features>
@@ -18,16 +17,21 @@
   <vcpu>5</vcpu>
   <devices>
     <emulator>/usr/lib/xen/bin/qemu-dm</emulator>
-    <console type='pty'/>
     <disk type='file' device='disk'>
       <source file='/tmp/test.img'/>
-      <target dev='hda' bus='ide'/>
+      <target dev='vda' bus='virtio'/>
     </disk>
-    <disk type='block' device='cdrom'>
-      <target dev='hdc' bus='ide'/>
-      <readonly/>
+    <disk type='block' device='disk'>
+      <source dev='/dev/loop0'/>
+      <target dev='vdb' bus='virtio'/>
     </disk>
-    <input type='mouse' bus='ps2'/>
+    <interface type='network'>
+      <source network='default'/>
+      <mac address='11:22:33:44:55:66'/>
+      <model type='virtio'/>
+    </interface>
+    <input type='tablet' bus='usb'/>
     <graphics type='sdl' display=':3.4' xauth='/testdir/.Xauthority'/>
+    <console type='pty'/>
   </devices>
 </domain>
diff --git a/tests/xmlconfig-xml/install-fullyvirt-disk-block.xml b/tests/xmlconfig-xml/install-fullyvirt-disk-block.xml
index c8638f1..7f0b526 100644
--- a/tests/xmlconfig-xml/install-fullyvirt-disk-block.xml
+++ b/tests/xmlconfig-xml/install-fullyvirt-disk-block.xml
@@ -18,7 +18,6 @@
   <vcpu>5</vcpu>
   <devices>
     <emulator>/usr/lib/xen/bin/qemu-dm</emulator>
-    <console type='pty'/>
     <disk type='block' device='disk'>
       <source dev='/dev/loop0'/>
       <target dev='hda' bus='ide'/>
@@ -30,5 +29,6 @@
     </disk>
     <input type='mouse' bus='ps2'/>
     <graphics type='sdl' display=':3.4' xauth='/testdir/.Xauthority'/>
+    <console type='pty'/>
   </devices>
 </domain>
diff --git a/tests/xmlconfig-xml/install-fullyvirt-disk-file.xml b/tests/xmlconfig-xml/install-fullyvirt-disk-file.xml
index 5002e52..bae640d 100644
--- a/tests/xmlconfig-xml/install-fullyvirt-disk-file.xml
+++ b/tests/xmlconfig-xml/install-fullyvirt-disk-file.xml
@@ -18,7 +18,6 @@
   <vcpu>5</vcpu>
   <devices>
     <emulator>/usr/lib/xen/bin/qemu-dm</emulator>
-    <console type='pty'/>
     <disk type='file' device='disk'>
       <source file='/tmp/test.img'/>
       <target dev='hda' bus='ide'/>
@@ -30,5 +29,6 @@
     </disk>
     <input type='mouse' bus='ps2'/>
     <graphics type='sdl' display=':3.4' xauth='/testdir/.Xauthority'/>
+    <console type='pty'/>
   </devices>
 </domain>
diff --git a/tests/xmlconfig-xml/install-fullyvirt-import.xml b/tests/xmlconfig-xml/install-fullyvirt-import.xml
index cf87582..f9f5fe8 100644
--- a/tests/xmlconfig-xml/install-fullyvirt-import.xml
+++ b/tests/xmlconfig-xml/install-fullyvirt-import.xml
@@ -18,12 +18,12 @@
   <vcpu>5</vcpu>
   <devices>
     <emulator>/usr/lib/xen/bin/qemu-dm</emulator>
-    <console type='pty'/>
     <disk type='file' device='disk'>
       <source file='/tmp/test.img'/>
       <target dev='hda' bus='ide'/>
     </disk>
     <input type='mouse' bus='ps2'/>
     <graphics type='sdl' display=':3.4' xauth='/testdir/.Xauthority'/>
+    <console type='pty'/>
   </devices>
 </domain>
diff --git a/tests/xmlconfig-xml/install-fullyvirt-livecd.xml b/tests/xmlconfig-xml/install-fullyvirt-livecd.xml
index 9cf09f2..e456a93 100644
--- a/tests/xmlconfig-xml/install-fullyvirt-livecd.xml
+++ b/tests/xmlconfig-xml/install-fullyvirt-livecd.xml
@@ -18,7 +18,6 @@
   <vcpu>5</vcpu>
   <devices>
     <emulator>/usr/lib/xen/bin/qemu-dm</emulator>
-    <console type='pty'/>
     <disk type='block' device='cdrom'>
       <source dev='/dev/loop0'/>
       <target dev='hdc' bus='ide'/>
@@ -26,5 +25,6 @@
     </disk>
     <input type='mouse' bus='ps2'/>
     <graphics type='sdl' display=':3.4' xauth='/testdir/.Xauthority'/>
+    <console type='pty'/>
   </devices>
 </domain>
diff --git a/tests/xmlconfig-xml/install-fullyvirt-pxe-nodisks.xml b/tests/xmlconfig-xml/install-fullyvirt-pxe-nodisks.xml
index 3cefaf5..31b3326 100644
--- a/tests/xmlconfig-xml/install-fullyvirt-pxe-nodisks.xml
+++ b/tests/xmlconfig-xml/install-fullyvirt-pxe-nodisks.xml
@@ -18,8 +18,8 @@
   <vcpu>5</vcpu>
   <devices>
     <emulator>/usr/lib/xen/bin/qemu-dm</emulator>
-    <console type='pty'/>
     <input type='mouse' bus='ps2'/>
     <graphics type='sdl' display=':3.4' xauth='/testdir/.Xauthority'/>
+    <console type='pty'/>
   </devices>
 </domain>
diff --git a/tests/xmlconfig-xml/install-fullyvirt-pxe.xml b/tests/xmlconfig-xml/install-fullyvirt-pxe.xml
index c3dab09..1c5ea56 100644
--- a/tests/xmlconfig-xml/install-fullyvirt-pxe.xml
+++ b/tests/xmlconfig-xml/install-fullyvirt-pxe.xml
@@ -18,12 +18,12 @@
   <vcpu>5</vcpu>
   <devices>
     <emulator>/usr/lib/xen/bin/qemu-dm</emulator>
-    <console type='pty'/>
     <disk type='file' device='disk'>
       <source file='/tmp/test.img'/>
       <target dev='hda' bus='ide'/>
     </disk>
     <input type='mouse' bus='ps2'/>
     <graphics type='sdl' display=':3.4' xauth='/testdir/.Xauthority'/>
+    <console type='pty'/>
   </devices>
 </domain>
diff --git a/tests/xmlconfig-xml/install-fullyvirt-disk-file.xml b/tests/xmlconfig-xml/install-windowsxp-kvm.xml
similarity index 71%
copy from tests/xmlconfig-xml/install-fullyvirt-disk-file.xml
copy to tests/xmlconfig-xml/install-windowsxp-kvm.xml
index 5002e52..43f72d8 100644
--- a/tests/xmlconfig-xml/install-fullyvirt-disk-file.xml
+++ b/tests/xmlconfig-xml/install-windowsxp-kvm.xml
@@ -1,34 +1,41 @@
-<domain type='xen'>
+<domain type='kvm'>
   <name>TestGuest</name>
   <currentMemory>204800</currentMemory>
   <memory>409600</memory>
   <uuid>12345678-1234-1234-1234-123456789012</uuid>
   <os>
     <type arch='i686'>hvm</type>
-    <loader>/usr/lib/xen/boot/hvmloader</loader>
     <boot dev='cdrom'/>
   </os>
   <features>
     <acpi/><apic/>
   </features>
-  <clock offset="utc"/>
+  <clock offset="localtime"/>
   <on_poweroff>destroy</on_poweroff>
   <on_reboot>destroy</on_reboot>
   <on_crash>destroy</on_crash>
   <vcpu>5</vcpu>
   <devices>
     <emulator>/usr/lib/xen/bin/qemu-dm</emulator>
-    <console type='pty'/>
     <disk type='file' device='disk'>
       <source file='/tmp/test.img'/>
       <target dev='hda' bus='ide'/>
     </disk>
+    <disk type='block' device='disk'>
+      <source dev='/dev/loop0'/>
+      <target dev='hdb' bus='ide'/>
+    </disk>
     <disk type='block' device='cdrom'>
       <source dev='/dev/loop0'/>
       <target dev='hdc' bus='ide'/>
       <readonly/>
     </disk>
-    <input type='mouse' bus='ps2'/>
+    <interface type='network'>
+      <source network='default'/>
+      <mac address='11:22:33:44:55:66'/>
+    </interface>
+    <input type='tablet' bus='usb'/>
     <graphics type='sdl' display=':3.4' xauth='/testdir/.Xauthority'/>
+    <console type='pty'/>
   </devices>
 </domain>
diff --git a/tests/xmlconfig-xml/install-fullyvirt-disk-file.xml b/tests/xmlconfig-xml/install-windowsxp-xennew.xml
similarity index 74%
copy from tests/xmlconfig-xml/install-fullyvirt-disk-file.xml
copy to tests/xmlconfig-xml/install-windowsxp-xennew.xml
index 5002e52..6562da7 100644
--- a/tests/xmlconfig-xml/install-fullyvirt-disk-file.xml
+++ b/tests/xmlconfig-xml/install-windowsxp-xennew.xml
@@ -11,24 +11,32 @@
   <features>
     <acpi/><apic/>
   </features>
-  <clock offset="utc"/>
+  <clock offset="localtime"/>
   <on_poweroff>destroy</on_poweroff>
   <on_reboot>destroy</on_reboot>
   <on_crash>destroy</on_crash>
   <vcpu>5</vcpu>
   <devices>
     <emulator>/usr/lib/xen/bin/qemu-dm</emulator>
-    <console type='pty'/>
     <disk type='file' device='disk'>
       <source file='/tmp/test.img'/>
       <target dev='hda' bus='ide'/>
     </disk>
+    <disk type='block' device='disk'>
+      <source dev='/dev/loop0'/>
+      <target dev='hdb' bus='ide'/>
+    </disk>
     <disk type='block' device='cdrom'>
       <source dev='/dev/loop0'/>
       <target dev='hdc' bus='ide'/>
       <readonly/>
     </disk>
-    <input type='mouse' bus='ps2'/>
+    <interface type='network'>
+      <source network='default'/>
+      <mac address='11:22:33:44:55:66'/>
+    </interface>
+    <input type='tablet' bus='usb'/>
     <graphics type='sdl' display=':3.4' xauth='/testdir/.Xauthority'/>
+    <console type='pty'/>
   </devices>
 </domain>
diff --git a/tests/xmlconfig-xml/install-fullyvirt-disk-file.xml b/tests/xmlconfig-xml/install-windowsxp-xenold.xml
similarity index 73%
copy from tests/xmlconfig-xml/install-fullyvirt-disk-file.xml
copy to tests/xmlconfig-xml/install-windowsxp-xenold.xml
index 5002e52..69e5ab8 100644
--- a/tests/xmlconfig-xml/install-fullyvirt-disk-file.xml
+++ b/tests/xmlconfig-xml/install-windowsxp-xenold.xml
@@ -9,26 +9,34 @@
     <boot dev='cdrom'/>
   </os>
   <features>
-    <acpi/><apic/>
+    
   </features>
-  <clock offset="utc"/>
+  <clock offset="localtime"/>
   <on_poweroff>destroy</on_poweroff>
   <on_reboot>destroy</on_reboot>
   <on_crash>destroy</on_crash>
   <vcpu>5</vcpu>
   <devices>
     <emulator>/usr/lib/xen/bin/qemu-dm</emulator>
-    <console type='pty'/>
     <disk type='file' device='disk'>
       <source file='/tmp/test.img'/>
       <target dev='hda' bus='ide'/>
     </disk>
+    <disk type='block' device='disk'>
+      <source dev='/dev/loop0'/>
+      <target dev='hdb' bus='ide'/>
+    </disk>
     <disk type='block' device='cdrom'>
       <source dev='/dev/loop0'/>
       <target dev='hdc' bus='ide'/>
       <readonly/>
     </disk>
-    <input type='mouse' bus='ps2'/>
+    <interface type='network'>
+      <source network='default'/>
+      <mac address='11:22:33:44:55:66'/>
+    </interface>
+    <input type='tablet' bus='usb'/>
     <graphics type='sdl' display=':3.4' xauth='/testdir/.Xauthority'/>
+    <console type='pty'/>
   </devices>
 </domain>
diff --git a/tests/xmlconfig-xml/install-fullyvirt-disk-block.xml b/tests/xmlconfig-xml/misc-qemu-driver-name.xml
similarity index 94%
copy from tests/xmlconfig-xml/install-fullyvirt-disk-block.xml
copy to tests/xmlconfig-xml/misc-qemu-driver-name.xml
index c8638f1..30987d2 100644
--- a/tests/xmlconfig-xml/install-fullyvirt-disk-block.xml
+++ b/tests/xmlconfig-xml/misc-qemu-driver-name.xml
@@ -18,17 +18,19 @@
   <vcpu>5</vcpu>
   <devices>
     <emulator>/usr/lib/xen/bin/qemu-dm</emulator>
-    <console type='pty'/>
     <disk type='block' device='disk'>
+      <driver name='qemu'/>
       <source dev='/dev/loop0'/>
       <target dev='hda' bus='ide'/>
     </disk>
     <disk type='block' device='cdrom'>
+      <driver name='qemu'/>
       <source dev='/dev/loop0'/>
       <target dev='hdc' bus='ide'/>
       <readonly/>
     </disk>
     <input type='mouse' bus='ps2'/>
     <graphics type='sdl' display=':3.4' xauth='/testdir/.Xauthority'/>
+    <console type='pty'/>
   </devices>
 </domain>
diff --git a/tests/xmlconfig-xml/install-fullyvirt-disk-file.xml b/tests/xmlconfig-xml/misc-qemu-driver-type.xml
similarity index 93%
copy from tests/xmlconfig-xml/install-fullyvirt-disk-file.xml
copy to tests/xmlconfig-xml/misc-qemu-driver-type.xml
index 5002e52..79f2c4d 100644
--- a/tests/xmlconfig-xml/install-fullyvirt-disk-file.xml
+++ b/tests/xmlconfig-xml/misc-qemu-driver-type.xml
@@ -18,17 +18,19 @@
   <vcpu>5</vcpu>
   <devices>
     <emulator>/usr/lib/xen/bin/qemu-dm</emulator>
-    <console type='pty'/>
     <disk type='file' device='disk'>
+      <driver name='qemu' type='raw'/>
       <source file='/tmp/test.img'/>
       <target dev='hda' bus='ide'/>
     </disk>
     <disk type='block' device='cdrom'>
+      <driver name='qemu'/>
       <source dev='/dev/loop0'/>
       <target dev='hdc' bus='ide'/>
       <readonly/>
     </disk>
     <input type='mouse' bus='ps2'/>
     <graphics type='sdl' display=':3.4' xauth='/testdir/.Xauthority'/>
+    <console type='pty'/>
   </devices>
 </domain>
diff --git a/tests/xmlconfig-xml/misc-xml-escaping.xml b/tests/xmlconfig-xml/misc-xml-escaping.xml
index 225ecbf..160031f 100644
--- a/tests/xmlconfig-xml/misc-xml-escaping.xml
+++ b/tests/xmlconfig-xml/misc-xml-escaping.xml
@@ -18,7 +18,6 @@
   <vcpu>5</vcpu>
   <devices>
     <emulator>/usr/lib/xen/bin/qemu-dm</emulator>
-    <console type='pty'/>
     <disk type='file' device='disk'>
       <source file='/tmp/ISO&amp;&apos;&amp;s'/>
       <target dev='hda' bus='ide'/>
@@ -30,5 +29,6 @@
     </disk>
     <input type='mouse' bus='ps2'/>
     <graphics type='sdl' display=':3.4' xauth='/testdir/.Xauthority'/>
+    <console type='pty'/>
   </devices>
 </domain>
diff --git a/tests/xmlconfig.py b/tests/xmlconfig.py
index 5a22905..a2a05e0 100644
--- a/tests/xmlconfig.py
+++ b/tests/xmlconfig.py
@@ -21,10 +21,16 @@ import urlgrabber.progress as progress
 
 import virtinst
 from virtinst import VirtualDisk
+from virtinst import VirtualAudio
+from virtinst import VirtualNetworkInterface
+from virtinst import VirtualHostDeviceUSB, VirtualHostDevicePCI
+from virtinst import VirtualCharDevice
+from virtinst import VirtualVideoDevice
 import tests
 
+conn = libvirt.open("test:///default")
+
 def get_basic_paravirt_guest():
-    conn = libvirt.open("test:///default")
     g = virtinst.ParaVirtGuest(connection=conn, type="xen")
     g.name = "TestGuest"
     g.memory = int(200)
@@ -35,9 +41,9 @@ def get_basic_paravirt_guest():
     g.vcpus = 5
     return g
 
-def get_basic_fullyvirt_guest():
-    conn = libvirt.open("test:///default")
-    g = virtinst.FullVirtGuest(connection=conn, type="xen",
+conn = libvirt.open("test:///default")
+def get_basic_fullyvirt_guest(typ="xen"):
+    g = virtinst.FullVirtGuest(connection=conn, type=typ,
                                emulator="/usr/lib/xen/bin/qemu-dm",
                                arch="i686")
     g.name = "TestGuest"
@@ -53,10 +59,17 @@ def get_basic_fullyvirt_guest():
     return g
 
 def get_filedisk(path="/tmp/test.img"):
-    return VirtualDisk(path, size=.0001)
+    return VirtualDisk(path, size=.0001, conn=conn)
 
 def get_blkdisk():
-    return VirtualDisk("/dev/loop0")
+    return VirtualDisk("/dev/loop0", conn=conn)
+
+def get_virtual_network():
+    dev = virtinst.VirtualNetworkInterface()
+    dev.macaddr = "11:22:33:44:55:66"
+    dev.type = virtinst.VirtualNetworkInterface.TYPE_VIRTUAL
+    dev.network = "default"
+    return dev
 
 class TestXMLConfig(unittest.TestCase):
 
@@ -66,6 +79,12 @@ class TestXMLConfig(unittest.TestCase):
         try:
             actualXML = xenguest.get_config_xml(install=install)
             tests.diff_compare(actualXML, filename)
+            # Libvirt throws errors since we are defining domain
+            # type='xen', when test driver can only handle type='test'
+            # Sanitize the XML so we can define
+            actualXML = actualXML.replace("<domain type='xen'>",
+                                          "<domain type='test'>")
+            actualXML = actualXML.replace(">linux<", ">xen<")
 
             # Should probably break this out into a separate function
             dom = xenguest.conn.defineXML(actualXML)
@@ -81,6 +100,16 @@ class TestXMLConfig(unittest.TestCase):
         g.disks.append(get_filedisk())
         self._compare(g, "boot-paravirt-disk-file", False)
 
+    def testBootParavirtDiskFileBlktapCapable(self):
+        oldblktap = virtinst._util.is_blktap_capable
+        try:
+            virtinst._util.is_blktap_capable = lambda: True
+            g = get_basic_paravirt_guest()
+            g.disks.append(get_filedisk())
+            self._compare(g, "boot-paravirt-disk-drv-tap", False)
+        finally:
+            virtinst._util.is_blktap_capable = oldblktap
+
     def testBootParavirtDiskBlock(self):
         g = get_basic_paravirt_guest()
         g.disks.append(get_blkdisk())
@@ -232,6 +261,17 @@ class TestXMLConfig(unittest.TestCase):
                                                location="/dev/loop0")
         self._compare(g, "install-fullyvirt-livecd", False)
 
+    def testDoubleInstall(self):
+        # Make sure that installing twice generates the same XML, to ensure
+        # we aren't polluting the device list during the install process
+        g = get_basic_fullyvirt_guest()
+        g.installer = virtinst.LiveCDInstaller(type="xen", os_type="hvm",
+                                               conn=g.conn,
+                                               location="/dev/loop0")
+        self._compare(g, "install-fullyvirt-livecd", False)
+        self._compare(g, "install-fullyvirt-livecd", False)
+
+
     def testInstallFVImport(self):
         g = get_basic_fullyvirt_guest()
         g.disks.append(get_filedisk())
@@ -246,11 +286,251 @@ class TestXMLConfig(unittest.TestCase):
                                                conn=g.conn)
         self._compare(g, "install-paravirt-import", False)
 
+    def testQEMUDriverName(self):
+        # Swap out _util.get_uri_driver for a fake method that always
+        # returns a qemu driver, to trick VirtualDisk into giving us what we
+        # want
+        def new_get_uri(ignore):
+            return "qemu:///system"
+
+        oldgetdriver = VirtualDisk._get_uri
+        try:
+            VirtualDisk._get_uri = new_get_uri
+            g = get_basic_fullyvirt_guest()
+            g.disks.append(get_blkdisk())
+            self._compare(g, "misc-qemu-driver-name", True)
+
+            g = get_basic_fullyvirt_guest()
+            g.disks.append(get_filedisk())
+            self._compare(g, "misc-qemu-driver-type", True)
+        finally:
+            VirtualDisk._get_uri = oldgetdriver
+
     def testXMLEscaping(self):
         g = get_basic_fullyvirt_guest()
         g.disks.append(get_filedisk("/tmp/ISO&'&s"))
         self._compare(g, "misc-xml-escaping", True)
 
+    # OS Type/Version configurations
+    def testF10(self):
+        g = get_basic_fullyvirt_guest("kvm")
+        g.os_type = "linux"
+        g.os_variant = "fedora10"
+        g.installer = virtinst.PXEInstaller(type="kvm", os_type="hvm",
+                                            conn=g.conn)
+        g.disks.append(get_filedisk())
+        g.disks.append(get_blkdisk())
+        g.nics.append(get_virtual_network())
+        self._compare(g, "install-f10", True)
+
+    def testF11(self):
+        g = get_basic_fullyvirt_guest("kvm")
+        g.os_type = "linux"
+        g.os_variant = "fedora11"
+        g.installer = virtinst.PXEInstaller(type="kvm", os_type="hvm",
+                                            conn=g.conn)
+        g.disks.append(get_filedisk())
+        g.disks.append(get_blkdisk())
+        g.nics.append(get_virtual_network())
+        self._compare(g, "install-f11", False)
+
+    def testBootWindows(self):
+        g = get_basic_fullyvirt_guest("kvm")
+        g.os_type = "windows"
+        g.os_variant = "winxp"
+        g.disks.append(get_filedisk())
+        g.disks.append(get_blkdisk())
+        g.nics.append(get_virtual_network())
+        self._compare(g, "boot-windowsxp-kvm", False)
+
+    def testInstallWindowsKVM(self):
+        g = get_basic_fullyvirt_guest("kvm")
+        g.os_type = "windows"
+        g.os_variant = "winxp"
+        g.disks.append(get_filedisk())
+        g.disks.append(get_blkdisk())
+        g.nics.append(get_virtual_network())
+        self._compare(g, "install-windowsxp-kvm", True)
+
+    def testInstallWindowsXenNew(self):
+        orig_ver_func = libvirt.getVersion
+        def old_xen_ver(drv=None):
+            libver = orig_ver_func()
+            if drv:
+                return (libver, 3000001)
+            return orig_ver_func(drv)
+
+        def new_xen_ver(drv=None):
+            libver = orig_ver_func()
+            if drv:
+                return (libver, 3100000)
+            return orig_ver_func(drv)
+
+        g = get_basic_fullyvirt_guest("xen")
+        g.os_type = "windows"
+        g.os_variant = "winxp"
+        g.disks.append(get_filedisk())
+        g.disks.append(get_blkdisk())
+        g.nics.append(get_virtual_network())
+
+        try:
+            for f, xml in [(old_xen_ver, "install-windowsxp-xenold"),
+                           (new_xen_ver, "install-windowsxp-xennew")]:
+                libvirt.getVersion = f
+                self._compare(g, xml, True)
+        finally:
+            libvirt.getVersion = orig_ver_func
+
+
+    # Device heavy configurations
+    def testManyDisks2(self):
+        g = get_basic_fullyvirt_guest()
+        g.disks.append(get_filedisk())
+        g.disks.append(get_blkdisk())
+        g.disks.append(VirtualDisk(conn=g.conn, path="/dev/loop0",
+                                   device=VirtualDisk.DEVICE_CDROM))
+        g.disks.append(VirtualDisk(conn=g.conn, path=None,
+                                   device=VirtualDisk.DEVICE_CDROM,
+                                   bus="scsi"))
+        g.disks.append(VirtualDisk(conn=g.conn, path=None,
+                                   device=VirtualDisk.DEVICE_FLOPPY))
+        g.disks.append(VirtualDisk(conn=g.conn, path="/dev/loop0",
+                                   device=VirtualDisk.DEVICE_FLOPPY))
+        g.disks.append(VirtualDisk(conn=g.conn, path="/dev/loop0",
+                                   bus="virtio"))
+
+        g.installer = virtinst.PXEInstaller(type="xen", os_type="hvm",
+                                            conn=g.conn)
+        self._compare(g, "boot-many-disks2", False)
+
+    def testManyNICs(self):
+        g = get_basic_fullyvirt_guest()
+        net1 = VirtualNetworkInterface(type="user",
+                                       macaddr="11:11:11:11:11:11")
+        net2 = get_virtual_network()
+        net3 = get_virtual_network()
+        net3.model = "e1000"
+        net4 = VirtualNetworkInterface(bridge="foobr0",
+                                       macaddr="22:22:22:22:22:22")
+
+        g.nics.append(net1)
+        g.nics.append(net2)
+        g.nics.append(net3)
+        g.nics.append(net4)
+        g.installer = virtinst.PXEInstaller(type="xen", os_type="hvm",
+                                            conn=g.conn)
+        self._compare(g, "boot-many-nics", False)
+
+    def testManyHostdevs(self):
+        g = get_basic_fullyvirt_guest()
+        dev1 = VirtualHostDeviceUSB(g.conn)
+        dev1.product = "0x1234"
+        dev1.vendor = "0x4321"
+
+        dev2 = VirtualHostDevicePCI(g.conn)
+        dev2.bus = "0x11"
+        dev2.slot = "0x22"
+        dev2.function = "0x33"
+
+        g.hostdevs.append(dev1)
+        g.hostdevs.append(dev2)
+        g.installer = virtinst.PXEInstaller(type="xen", os_type="hvm",
+                                            conn=g.conn)
+        self._compare(g, "boot-many-hostdevs", False)
+
+    def testManySounds(self):
+        g = get_basic_fullyvirt_guest()
+        g.sound_devs.append(VirtualAudio("sb16", conn=g.conn))
+        g.sound_devs.append(VirtualAudio("es1370", conn=g.conn))
+        g.sound_devs.append(VirtualAudio("pcspk", conn=g.conn))
+
+        g.installer = virtinst.PXEInstaller(type="xen", os_type="hvm",
+                                            conn=g.conn)
+        self._compare(g, "boot-many-sounds", False)
+
+    def testManyChars(self):
+        g = get_basic_fullyvirt_guest()
+        dev1 = VirtualCharDevice.get_dev_instance(g.conn,
+                                                  VirtualCharDevice.DEV_SERIAL,
+                                                  VirtualCharDevice.CHAR_NULL)
+        dev2 = VirtualCharDevice.get_dev_instance(g.conn,
+                                                  VirtualCharDevice.DEV_PARALLEL,
+                                                  VirtualCharDevice.CHAR_UNIX)
+        dev2.source_path = "/tmp/foobar"
+        dev3 = VirtualCharDevice.get_dev_instance(g.conn,
+                                                  VirtualCharDevice.DEV_SERIAL,
+                                                  VirtualCharDevice.CHAR_TCP)
+        dev3.protocol = "telnet"
+        dev3.source_host = "my.source.host"
+        dev3.source_port = "1234"
+        dev4 = VirtualCharDevice.get_dev_instance(g.conn,
+                                                  VirtualCharDevice.DEV_PARALLEL,
+                                                  VirtualCharDevice.CHAR_UDP)
+        dev4.bind_host = "my.bind.host"
+        dev4.bind_port = "1111"
+        dev4.source_host = "my.source.host"
+        dev4.source_port = "2222"
+
+        g.add_device(dev1)
+        g.add_device(dev2)
+        g.add_device(dev3)
+        g.add_device(dev4)
+        g.installer = virtinst.PXEInstaller(type="xen", os_type="hvm",
+                                            conn=g.conn)
+        self._compare(g, "boot-many-chars", False)
+
+    def testManyDevices(self):
+        g = get_basic_fullyvirt_guest()
+
+        # Hostdevs
+        dev1 = VirtualHostDeviceUSB(g.conn)
+        dev1.product = "0x1234"
+        dev1.vendor = "0x4321"
+        g.hostdevs.append(dev1)
+
+        # Sound devices
+        g.sound_devs.append(VirtualAudio("sb16", conn=g.conn))
+        g.sound_devs.append(VirtualAudio("es1370", conn=g.conn))
+
+        # Disk devices
+        g.disks.append(VirtualDisk(conn=g.conn, path="/dev/loop0",
+                                   device=VirtualDisk.DEVICE_FLOPPY))
+        g.disks.append(VirtualDisk(conn=g.conn, path="/dev/loop0",
+                                   bus="scsi"))
+
+        # Network devices
+        net1 = get_virtual_network()
+        net1.model = "e1000"
+        net2 = VirtualNetworkInterface(type="user",
+                                       macaddr="11:11:11:11:11:11")
+        g.nics.append(net1)
+        g.nics.append(net2)
+
+        # Character devices
+        cdev1 = VirtualCharDevice.get_dev_instance(g.conn,
+                                                   VirtualCharDevice.DEV_SERIAL,
+                                                   VirtualCharDevice.CHAR_NULL)
+        cdev2 = VirtualCharDevice.get_dev_instance(g.conn,
+                                                   VirtualCharDevice.DEV_PARALLEL,
+                                                   VirtualCharDevice.CHAR_UNIX)
+        cdev2.source_path = "/tmp/foobar"
+        g.add_device(cdev1)
+        g.add_device(cdev2)
+
+        # Video Devices
+        vdev1 = VirtualVideoDevice(g.conn)
+        vdev1.model_type = "vmvga"
+
+        vdev2 = VirtualVideoDevice(g.conn)
+        vdev2.model_type = "cirrus"
+        vdev2.vram = 10 * 1024
+        vdev2.heads = 3
+        g.add_device(vdev1)
+        g.add_device(vdev2)
+
+        g.installer = virtinst.PXEInstaller(type="xen", os_type="hvm",
+                                            conn=g.conn)
+        self._compare(g, "boot-many-devices", False)
 
 if __name__ == "__main__":
     unittest.main()
diff --git a/virt-clone b/virt-clone
index faf1e7a..1d8b47c 100755
--- a/virt-clone
+++ b/virt-clone
@@ -5,8 +5,8 @@
 # Script to set up an cloning guest configuration and kick off an cloning
 #
 # 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 
+# 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,
@@ -20,7 +20,7 @@
 # MA 02110-1301 USA.
 
 
-import os, sys
+import sys
 import logging
 import virtinst
 import virtinst.CloneManager as clmgr
@@ -38,17 +38,17 @@ gettext.bindtextdomain(virtinst.gettext_app, virtinst.gettext_dir)
 gettext.install(virtinst.gettext_app, virtinst.gettext_dir, unicode=1)
 
 ### General input gathering functions
-def get_clone_name(new_name, design):
-    while 1:
-        new_name = cli.prompt_for_input(_("What is the name for the cloned virtual machine?"), new_name)
-        try:
-            design.clone_name = new_name
-            break
-        except (ValueError, RuntimeError), e:
-            print _("ERROR: "), e
-            new_name = None
+def get_clone_name(new_name, auto_clone, design):
+    if not new_name and auto_clone:
+        # Generate a name to use
+        new_name = clmgr.generate_clone_name(design)
+        logging.debug("Auto-generated clone name '%s'." % new_name)
 
-def get_original_guest(guest, origfile, design):
+    prompt_txt = _("What is the name for the cloned virtual machine?")
+    err_txt = _("A name is required for the new virtual machine.")
+    cli.prompt_loop(prompt_txt, err_txt, new_name, design, "clone_name")
+
+def get_original_guest(guest_name, origfile, design):
 
     origxml = None
     if origfile:
@@ -56,19 +56,16 @@ def get_original_guest(guest, origfile, design):
         origxml = f.read()
         f.close()
 
-    while 1:
-        if not origxml:
-            guest = cli.prompt_for_input(_("What is the name of the original virtual machine?"), guest)
         try:
-            if origxml:
-                design.original_xml = origxml
-            else:
-                design.original_guest = guest
-            break
+            design.original_xml = origxml
+            return
         except (ValueError, RuntimeError), e:
-            print _("ERROR: "), e
-            guest = None
-            origxml = None
+            fail(e)
+
+    prompt_txt = _("What is the name of the original virtual machine?")
+    err_txt = _("An original machine name or xml file is required.")
+    cli.prompt_loop(prompt_txt, err_txt,
+                    guest_name, design, "original_guest")
 
 def get_clone_macaddr(new_mac, design):
     if new_mac is None:
@@ -83,48 +80,40 @@ def get_clone_uuid(new_uuid, design):
     if new_uuid is not None:
         design.set_clone_uuid(new_uuid)
 
-def get_clone_diskfile(new_diskfiles, design, conn, preserve=False):
+def get_clone_diskfile(new_diskfiles, design, conn, preserve=False,
+                       auto_clone=False):
     if new_diskfiles is None:
         new_diskfiles = [None]
 
+    conn = design.original_conn
+
     newidx = 0
     for origdev in design.original_devices:
-        failed_loop = False
-        while 1:
-            if not failed_loop:
-                if len(new_diskfiles) <= newidx:
-                    new_diskfiles.append(None)
-                disk = new_diskfiles[newidx]
-            else:
-                disk = None
-            failed_loop = True
-
-            disk = cli.prompt_for_input(_("What would you like to use as the cloned disk (file path) for '%s'?") % origdev, disk)
-
-            # Build disk object for validation
-            try:
-                d = virtinst.VirtualDisk(path=disk, size=.0001, conn=conn)
-            except ValueError, e:
-                print _("ERROR: "), e
-                continue
-
-            # Prompt if disk file already exists and preserve mode is not used
-            if not preserve  and  os.path.exists(d.path):
-                warnmsg = _("This will overwrite the existing path "
-                            "'%s'!\n") % d.path
-                if not cli.prompt_for_yes_or_no(warnmsg + _("Do you really want to use this disk (yes or no)?")):
-                    continue
-
-            # Check disk conflicts
-            if d.is_conflict_disk(conn) is True:
-                warnmsg = _("Disk %s is already in use by another guest!\n") % d.path
-                if not cli.prompt_for_yes_or_no(warnmsg + _("Do you really want to use the disk (yes or no)? ")):
-                    continue
-
-            design.clone_devices = d.path
-            newidx += 1
-            break
+        if len(new_diskfiles) <= newidx:
+            # Extend the new/passed paths list with None if it's not
+            # long enough
+            new_diskfiles.append(None)
+        disk = new_diskfiles[newidx]
+
+        if disk is None and auto_clone:
+            disk = clmgr.generate_clone_disk_path(origdev, design)
+
+        if origdev is None:
+            devpath = None
+        else:
+            dev = _check_disk(conn, disk, origdev, preserve)
+            devpath = dev.path
+
+        design.clone_devices = devpath
+        newidx += 1
 
+def _check_disk(conn, clone_path, orig_path, preserve):
+
+    prompt_txt = (_("What would you like to use as the cloned disk "
+                    "(file path) for '%s'?") % orig_path)
+    arg_dict = {"path": clone_path, "size": .00001, "conn": conn}
+    return cli.disk_prompt(prompt_txt, arg_dict, warn_overwrite=not preserve,
+                           prompt_size=False)
 
 def get_clone_sparse(sparse, design):
     design.set_clone_sparse(sparse)
@@ -134,11 +123,8 @@ def get_preserve(preserve, design):
 
 
 def get_force_target(target, design):
-    if target is None:
-        pass
-    else:
-        for i in target:
-            design.set_force_target(i)
+    for i in target or []:
+        design.set_force_target(i)
 
 def parse_args():
     parser = cli.VirtOptionParser()
@@ -146,7 +132,7 @@ def parse_args():
     parser.add_option("", "--connect", type="string", dest="connect",
                       action="callback", callback=cli.check_before_store,
                       help=_("Connect to hypervisor with URI"),
-                      default=virtinst.util.default_connection())
+                      default=None)
 
     geng = OptionGroup(parser, _("General Options"))
     geng.add_option("-o", "--original", type="string", dest="original_guest",
@@ -157,6 +143,9 @@ def parse_args():
                     dest="original_xml", action="callback",
                     callback=cli.check_before_store,
                     help=_("XML file to use as the original guest."))
+    geng.add_option("", "--auto-clone", dest="auto_clone", action="store_true",
+                    help=_("Auto generate clone name and storage paths from"
+                           " the original guest configuration."))
     geng.add_option("-n", "--name", type="string", dest="new_name",
                     action="callback", callback=cli.check_before_store,
                     help=_("Name for the new guest"))
@@ -199,10 +188,13 @@ def parse_args():
     misc = OptionGroup(parser, _("Miscellaneous Options"))
     misc.add_option("-d", "--debug", action="store_true", dest="debug",
                       help=_("Print debugging information"))
+    misc.add_option("", "--prompt", action="store_true", dest="prompt",
+                    help=_("Request user input for ambiguous situations or "
+                           "required options."), default=False)
     misc.add_option("", "--force", action="store_true", dest="force",
-                      help=_("Do not prompt for input. Answers yes where "
-                             "applicable, terminates for all other prompts"),
-                      default=False)
+                    help=_("Do not prompt for input. Answers yes where "
+                           "applicable, terminates for all other prompts"),
+                    default=False)
     parser.add_option_group(misc)
 
     (options, dummy) = parser.parse_args()
@@ -213,6 +205,7 @@ def main():
     options = parse_args()
 
     cli.setupLogging("virt-clone", options.debug)
+    cli.set_prompt(options.prompt)
     cli.set_force(options.force)
 
     if not User.current().has_priv(User.PRIV_CLONE, options.connect):
@@ -222,12 +215,11 @@ def main():
     design = clmgr.CloneDesign(connection=conn)
 
     try:
-        get_clone_diskfile(options.new_diskfile, design, conn,
-                           not options.preserve)
-        get_clone_macaddr(options.new_mac, design)
         get_original_guest(options.original_guest, options.original_xml,
                            design)
-        get_clone_name(options.new_name, design)
+        get_clone_name(options.new_name, options.auto_clone, design)
+
+        get_clone_macaddr(options.new_mac, design)
         get_clone_uuid(options.new_uuid, design)
         get_clone_sparse(options.sparse, design)
         get_force_target(options.target, design)
@@ -238,7 +230,7 @@ def main():
         design.setup_original()
 
         get_clone_diskfile(options.new_diskfile, design, conn,
-                           not options.preserve)
+                           not options.preserve, options.auto_clone)
 
         # setup design object
         design.setup()
diff --git a/virt-convert b/virt-convert
index f449b2d..13d1751 100755
--- a/virt-convert
+++ b/virt-convert
@@ -93,6 +93,9 @@ def parse_args():
 
 
     (options, args) = opts.parse_args()
+
+    cli.setupLogging("virt-convert", options.debug)
+
     if len(args) < 1:
         opts.error(_("You need to provide an input VM definition"))
     if len(args) > 2:
@@ -177,7 +180,6 @@ def cleanup(msg, options, vmdef, paths):
 
 def main():
     options = parse_args()
-    cli.setupLogging("virt-convert", options.debug)
 
     inp = formats.parser_by_name(options.input_format)
     outp = formats.parser_by_name(options.output_format)
@@ -233,24 +235,24 @@ def main():
 
     try:
         for d in vmdef.disks.values():
-            format = options.disk_format
+            dformat = options.disk_format
 
             # VMDK disks on Solaris converted to vdisk by default
             if (d.format == diskcfg.DISK_FORMAT_VMDK and
-                not format and vmcfg.host() == "SunOS"):
-                format = "vdisk"
+                not dformat and vmcfg.host() == "SunOS"):
+                dformat = "vdisk"
 
             elif options.output_format == "vmx":
-                format = "vmdk"
-            if not format:
-                format = "raw"
+                dformat = "vmdk"
+            if not dformat:
+                dformat = "raw"
 
-            if d.path and format != "none":
+            if d.path and dformat != "none":
                 verbose(options, _("Converting disk '%(path)s' to type "
                                    "%(format)s...") % {"path": d.path,
-                                                       "format": format})
+                                                       "format": dformat})
 
-            d.convert(options.input_dir, options.output_dir, format)
+            d.convert(options.input_dir, options.output_dir, dformat)
 
     except OSError, e:
         cleanup(_("Couldn't convert disks: %s") % e.strerror,
diff --git a/virt-image b/virt-image
index a4ab352..c3e4213 100755
--- a/virt-image
+++ b/virt-image
@@ -30,6 +30,7 @@ import virtinst.CapabilitiesParser
 import virtinst.cli as cli
 from virtinst.cli import fail
 
+import optparse
 from optparse import OptionGroup
 import gettext
 import locale
@@ -40,53 +41,42 @@ gettext.install(virtinst.gettext_app, virtinst.gettext_dir, unicode=1)
 
 ### General input gathering functions
 
-def get_name(name, image_name, guest):
-    if name is None:
-        name = image_name
-    cli.get_name(name, guest)
-
-def get_memory(memory, image_memory, guest):
-    if memory is None and image_memory is not None:
-        memory = int(image_memory)/1024
-    cli.get_memory(memory, guest)
-
-def get_vcpus(vcpus, image_vcpus, check_cpu, guest, conn):
-    if vcpus is None:
-        vcpus = int(image_vcpus)
-    cli.get_vcpus(vcpus, check_cpu, guest, conn)
-
 def get_networks(domain, macs, bridges, networks, guest):
     nnics = domain.interface
-    (macs, networks) = cli.digest_networks(guest.conn, macs, bridges,
-                                           networks, nnics)
+    net_kwargs = cli.digest_networks(guest.conn, macs, bridges, networks,
+                                     nnics)
 
-    if len(networks) > nnics:
-        print >> sys.stderr, (_("Warning: more networks were provided [%i] then nics required [%i]. All extras are ignored") % (len(networks),  nnics))
-        networks = networks[0:nnics]
-        macs = macs [0:nnics]
-    elif nnics > len(networks):
-        fail(_("The image requires %i network interface") % nnics)
+    if len(net_kwargs) > nnics:
+        logging.warn(_("Warning: more networks were provided [%i] then nics "
+                       "required [%i]. All extras are ignored.") %
+                       (len(net_kwargs), nnics))
+        net_kwargs = net_kwargs[0:nnics]
+    elif nnics > len(net_kwargs):
+        fail(_("The image requires %i network interface.") % nnics)
 
-    map(lambda m, n: cli.get_network(m, n, guest), macs, networks)
+    map(lambda kwargs: cli.get_network(kwargs, guest), net_kwargs)
 
-def get_graphics(domain, vnc, vncport, nographics, sdl, keymap, guest):
+def get_graphics(domain, vnc, vncport, vnclisten, nographics, sdl, keymap,
+                 guest):
     if not domain.graphics:
         guest.graphics_dev = None
         return
-    else:
-        if not vnc and not sdl:
-            vnc = True
-        cli.get_graphics(vnc, vncport, nographics, sdl, keymap, guest)
+
+    if not (vnc or sdl or nographics):
+        vnc = True
+    cli.get_graphics(vnc, vncport, vnclisten, nographics, sdl, keymap,
+                     guest)
 
 ### Option parsing
 def parse_args():
-    parser = cli.VirtOptionParser()
-    parser.set_usage("%prog [options] image.xml")
+    usage = "%prog [options] image.xml"
+    parser = cli.VirtOptionParser(usage=usage,
+                                  formatter=cli.VirtHelpFormatter())
 
     parser.add_option("", "--connect", type="string", dest="connect",
                       action="callback", callback=cli.check_before_store,
                       help=_("Connect to hypervisor with URI"),
-                      default=virtinst.util.default_connection())
+                      default=None)
 
     geng = OptionGroup(parser, _("General Options"))
     geng.add_option("-n", "--name", type="string", dest="name",
@@ -126,35 +116,25 @@ def parse_args():
     parser.add_option_group(fulg)
 
     netg = OptionGroup(parser, _("Networking Configuration"))
-    netg.add_option("-b", "--bridge", type="string", dest="bridge",
-                    action="callback", callback=cli.check_before_append,
-                    help=_("Bridge to connect guest NIC to; if none given, "
-                           "will try to determine the default"))
     netg.add_option("-w", "--network", type="string", dest="network",
                     action="callback", callback=cli.check_before_append,
-                    help=_("Connect the guest to a virtual network, "
-                           "forwarding to the physical network with NAT"))
+      help=_("Specify a network interface. Ex:\n"
+             "--network bridge=mybr0\n"
+             "--network network=libvirt_network_name\n"
+             "--network network=mynet,model=e1000,mac=00:11..."))
+
+    # Deprecated net options
+    netg.add_option("-b", "--bridge", type="string", dest="bridge",
+                    action="callback", callback=cli.check_before_append,
+                    help=optparse.SUPPRESS_HELP)
     netg.add_option("-m", "--mac", type="string", dest="mac",
                     action="callback", callback=cli.check_before_append,
-                    help=_("Fixed MAC address for the guest; if none or "
-                           "RANDOM is given a random address will be used"))
+                    help=optparse.SUPPRESS_HELP)
     parser.add_option_group(netg)
 
-    vncg = OptionGroup(parser, _("Graphics Configuration"))
-    vncg.add_option("", "--vnc", action="store_true", dest="vnc",
-                    help=_("Use VNC for graphics support"))
-    vncg.add_option("", "--vncport", type="int", dest="vncport",
-                    help=_("Port to use for VNC"))
-    vncg.add_option("", "--sdl", action="store_true", dest="sdl",
-                    help=_("Use SDL for graphics support"))
-    vncg.add_option("", "--nographics", action="store_true",
-                    help=_("Don't set up a graphical console for the guest."))
-    vncg.add_option("-k", "--keymap", type="string", dest="keymap",
-                    action="callback", callback=cli.check_before_store,
-                    help=_("set up keymap for a graphical console"))
+    vncg = cli.graphics_option_group(parser)
     parser.add_option_group(vncg)
 
-
     misc = OptionGroup(parser, _("Miscellaneous Options"))
     misc.add_option("-p", "--print", action="store_true", dest="print_only",
                     help=_("Print the libvirt XML, but do not start the "
@@ -170,6 +150,9 @@ def parse_args():
                     help=_("Skip disk checksum verification process"))
     misc.add_option("-d", "--debug", action="store_true", dest="debug",
                     help=_("Print debugging information"))
+    misc.add_option("", "--prompt", action="store_true", dest="prompt",
+                    help=_("Request user input for ambiguous situations or "
+                           "required options."), default=False)
     misc.add_option("", "--force", action="store_true", dest="force",
                     help=_("Do not prompt for input. Answers yes where "
                            "applicable, terminates for all other prompts"),
@@ -190,6 +173,7 @@ def main():
     options = parse_args()
 
     cli.setupLogging("virt-image", options.debug)
+    cli.set_prompt(options.prompt)
     cli.set_force(options.force)
 
     conn = cli.getConnection(options.connect)
@@ -217,16 +201,16 @@ def main():
 
 
     # now let's get some of the common questions out of the way
-    get_name(options.name, image.name, guest)
-    get_memory(options.memory, image.domain.memory, guest)
+    cli.get_name(options.name, guest, image.name)
+    cli.get_memory(options.memory, guest, image.domain.memory)
     cli.get_uuid(options.uuid, guest)
-    get_vcpus(options.vcpus, image.domain.vcpu, options.check_cpu,
-              guest, conn)
+    cli.get_vcpus(options.vcpus, options.check_cpu,
+                  guest, conn, image.domain.vcpu)
     # For now, we only allow one NIC
     get_networks(image.domain, options.mac, options.bridge,
                  options.network, guest)
 
-    get_graphics(image.domain, options.vnc, options.vncport,
+    get_graphics(image.domain, options.vnc, options.vncport, options.vnclisten,
                  options.nographics, options.sdl, options.keymap, guest)
 
     if options.distro_type:
diff --git a/virt-install b/virt-install
index ac4da5b..dbf90dc 100755
--- a/virt-install
+++ b/virt-install
@@ -24,7 +24,8 @@
 import os, sys
 import time
 import errno
-from optparse import OptionValueError, OptionGroup
+import optparse
+from optparse import OptionGroup
 import logging
 import urlgrabber.progress as progress
 
@@ -32,6 +33,8 @@ import libvirt
 import virtinst
 import virtinst.CapabilitiesParser
 import virtinst.cli as cli
+from virtinst.VirtualCharDevice import VirtualCharDevice
+from virtinst.VirtualDevice import VirtualDevice
 from virtinst.cli import fail
 
 import gettext
@@ -44,6 +47,17 @@ gettext.install(virtinst.gettext_app, virtinst.gettext_dir, unicode=1)
 DEFAULT_POOL_PATH = "/var/lib/libvirt/images"
 DEFAULT_POOL_NAME = "default"
 
+def partition(string, sep):
+    if not string:
+        return (None, None, None)
+
+    if string.count(sep):
+        splitres = string.split(sep, 1)
+        ret = (splitres[0], sep, splitres[1])
+    else:
+        ret = (string, None, None)
+    return ret
+
 def build_default_pool(guest):
 
     if not virtinst.util.is_storage_capable(guest.conn):
@@ -70,19 +84,82 @@ def build_default_pool(guest):
         raise RuntimeError(_("Couldn't create default storage pool '%s': %s") %
                              (DEFAULT_POOL_PATH, str(e)))
 
+def parse_char_option(guest, char_type, optstring):
+    """
+    Helper to parse --serial/--parallel options
+    """
+    # Peel the char type off the front
+    dev_type, ignore, optstring = partition(optstring, ",")
+
+    opts = cli.parse_optstr(optstring)
+
+    dev = VirtualCharDevice.get_dev_instance(guest.conn, char_type, dev_type)
+
+    def set_param(paramname, dictname, val=None):
+        if not val:
+            if opts.has_key(dictname):
+                val = opts[dictname]
+                del(opts[dictname])
+            else:
+                return
+
+        if not hasattr(dev, paramname):
+            raise ValueError(_("%(chartype)s type %(devtype)s does not "
+                                "support '%(optname)s' option.") %
+                                {"chartype" : char_type, "devtype": dev_type,
+                                 "optname" : dictname} )
+        setattr(dev, paramname, val)
+
+    def parse_host(key):
+        host, ignore, port = partition(opts.get(key), ":")
+        if opts.has_key(key):
+            del(opts[key])
+
+        return host, port
+
+    host, port = parse_host("host")
+    bind_host, bind_port = parse_host("bind_host")
+
+    set_param("source_path", "path")
+    set_param("source_mode", "mode")
+    set_param("protocol",   "protocol")
+    set_param("source_host", "host", host)
+    set_param("source_port", "host", port)
+    set_param("bind_host", "bind_host", bind_host)
+    set_param("bind_port", "bind_host", bind_port)
+
+    # If extra parameters, then user passed some garbage param
+    if opts:
+        raise ValueError(_("Unknown option(s) %s") % opts.keys())
+
+    # Try to generate dev XML to perform upfront validation
+    dev.get_xml_config()
+
+    return dev
+
+def get_chardevs(char_type, opts, guest):
+
+    for optstr in cli.listify(opts):
+        try:
+            dev = parse_char_option(guest, char_type, optstr)
+            guest.add_device(dev)
+        except Exception, e:
+            fail(_("Error in %(chartype)s device parameters: %(err)s") %
+                 {"chartype": char_type, "err": str(e) })
+
+
 def parse_disk_option(guest, path, size):
     """helper to properly parse --disk options"""
     abspath = None
     voltuple = None
     volinst = None
-    devtype = None
     ro = False
     shared = False
     sparse = True
-    bus = None
-    cache = None
+    option_whitelist = ["perms", "cache", "bus", "device", "size", "sparse"]
 
     # Strip media type
+    path, ignore, optstr = partition(path, ",")
     if path.startswith("path="):
         path_type = "path="
     elif path.startswith("vol="):
@@ -94,25 +171,12 @@ def parse_disk_option(guest, path, size):
     path = path[len(path_type):]
 
     # Parse out comma separated options
-    opts = {}
-    while True:
-        if not path.count(","):
-            break
-        path, tmpopts = path.split(",", 1)
-        for opt in tmpopts.split(","):
-            opt_type = None
-            opt_val = None
-            if opt.count("="):
-                opt_type, opt_val = opt.split("=", 1)
-                opts[opt_type.lower()] = opt_val.lower()
-
-    for opt in opts.items():
-        opt_type, opt_val = opt
-        if opt_type == "device":
-            devtype = opt_val
-        elif opt_type == "bus":
-            bus = opt_val
-        elif opt_type == "perms":
+    opts = cli.parse_optstr(optstr)
+    for opt_type, opt_val in opts.items():
+        if opt_type not in option_whitelist:
+            fail(_("Unknown --disk option '%s'.") % opt_type)
+
+        if opt_type == "perms":
             if opt_val == "ro":
                 ro = True
             elif opt_val == "sh":
@@ -131,10 +195,11 @@ def parse_disk_option(guest, path, size):
                 sparse = False
             else:
                 fail(_("Unknown '%s' value '%s'") % (opt_type, opt_val))
-        elif opt_type == "cache":
-            cache = opt_val
-        else:
-            fail(_("Unknown --disk option '%s'.") % (opt,))
+
+    # Set simple options from dictionary
+    devtype = opts.get("device")
+    bus     = opts.get("bus")
+    cache   = opts.get("cache")
 
     # We return (path, (poolname, volname), volinst, device, bus, readonly,
     #            shared)
@@ -155,10 +220,11 @@ def parse_disk_option(guest, path, size):
                                                               suffix=".img")
         volinst = vc(pool_name=path, name=vname, conn=guest.conn,
                      allocation=0, capacity=(size and size*1024*1024*1024))
+
     elif path_type == "vol=":
         if not path.count("/"):
             raise ValueError(_("Storage volume must be specified as "
-                               "pool=poolname/volname"))
+                               "vol=poolname/volname"))
         vollist = path.split("/")
         voltuple = (vollist[0], vollist[1])
         logging.debug("Parsed volume: as pool='%s' vol='%s'" % \
@@ -173,7 +239,14 @@ def parse_disk_option(guest, path, size):
     logging.debug("parse_disk: returning %s" % str(ret))
     return ret
 
-def get_disk(disk, size, sparse, guest, hvm, conn, is_file_path):
+def get_disk(disk, size, sparse, guest, conn, is_file_path):
+
+    # If user specified --disk, disable prompting for the whole validation
+    # process, since falling back to prompting likely wouldn't
+
+    orig_prompt = cli.doprompt
+    if not is_file_path:
+        cli.set_prompt(False)
 
     try:
         # Get disk parameters
@@ -189,45 +262,32 @@ def get_disk(disk, size, sparse, guest, hvm, conn, is_file_path):
             if not sparse and volinst:
                 volinst.allocation = volinst.capacity
 
-        d = virtinst.VirtualDisk(path=path, size=size, sparse=sparse,
-                                 volInstall=volinst, volName=voltuple,
-                                 readOnly=readOnly, shareable=shared,
-                                 device=device, bus=bus, conn=guest.conn,
-                                 driverCache=cache)
-        # Default file backed PV guests to tap driver
-        if d.type == virtinst.VirtualDisk.TYPE_FILE \
-           and not(hvm) and virtinst.util.is_blktap_capable():
-            d.driver_name = virtinst.VirtualDisk.DRIVER_TAP
-    except ValueError, e:
-        fail(_("Error with storage parameters: %s" % str(e)))
+        kwargs = {'conn': conn, 'path': path, 'size': size, 'sparse': sparse,
+                  'volInstall': volinst, 'volName': voltuple,
+                  'readOnly': readOnly, 'shareable': shared,
+                  'device': device, 'bus': bus, 'conn': guest.conn,
+                  'driverCache': cache}
 
-    # Check disk conflicts
-    if d.is_conflict_disk(conn) is True:
-        warnmsg = _("Disk %s is already in use by another guest!\n") % d.path
-        if not cli.prompt_for_yes_or_no(warnmsg + _("Do you really want to use the disk (yes or no)? ")):
-            cli.nice_exit()
+        d = cli.disk_prompt(None, kwargs)
 
-    ret = d.is_size_conflict()
-    if ret[0]:
-        fail(ret[1])
-    elif ret[1]:
-        if not cli.prompt_for_yes_or_no(ret[1] + _(" Do you really want to use the disk (yes or no)?")):
-            cli.nice_exit()
+    except ValueError, e:
+        fail(_("Error with storage parameters: %s" % str(e)))
 
     guest.disks.append(d)
+    cli.set_prompt(orig_prompt)
 
-def get_disks(file_paths, disk_paths, size, sparse, nodisks, guest, hvm, conn):
+def get_disks(file_paths, disk_paths, size, sparse, nodisks, guest, conn):
     if nodisks:
         if file_paths or disk_paths or size:
-            fail(_("Cannot use --file, --size, or --disk with --nodisks"))
+            fail(_("Cannot use --file, --file-size, or --disk with --nodisks"))
         return
     if (file_paths or size or sparse == False) and disk_paths:
         fail(_("Cannot mix --file, --nonsparse, or --file-size with --disk "
                "options. Please see the manual for --disk syntax."))
-    elif not file_paths and not disk_paths:
+    elif not file_paths and not disk_paths and not cli.is_prompt():
         fail(_("A disk must be specified (use --nodisks to override)"))
 
-    is_file_path = (file_paths or False)
+    is_file_path = ((file_paths or cli.is_prompt()) or False)
     disk = (file_paths or disk_paths)
 
     # ensure we have equal length lists
@@ -240,10 +300,10 @@ def get_disks(file_paths, disk_paths, size, sparse, nodisks, guest, hvm, conn):
         disk = [ None ] * len(size)
 
     if type(disk) == list or type(size) == list:
-        map(lambda d, s: get_disk(d, s, sparse, guest, hvm, conn,
+        map(lambda d, s: get_disk(d, s, sparse, guest, conn,
                                   is_file_path), disk, size)
     else:
-        get_disk(disk, size, sparse, guest, hvm, conn, is_file_path)
+        get_disk(disk, size, sparse, guest, conn, is_file_path)
 
 def get_networks(macs, bridges, networks, nonetworks, guest):
     if nonetworks:
@@ -254,15 +314,103 @@ def get_networks(macs, bridges, networks, nonetworks, guest):
         if networks:
             fail(_("Cannot use --network with --nonetworks"))
         return
-    (macs, networks) = cli.digest_networks(guest.conn, macs, bridges,
-                                           networks, nics=1)
-    map(lambda m, n: cli.get_network(m, n, guest), macs, networks)
+    net_kwargs = cli.digest_networks(guest.conn, macs, bridges, networks,
+                                     nics=1)
+    map(lambda kwargs: cli.get_network(kwargs, guest), net_kwargs)
+
+def prompt_virt(caps, arch, req_virt_type, req_accel):
+
+    supports_hvm   = False
+    supports_pv    = False
+    supports_accel = False
+    for guest in caps.guests:
+        if guest.os_type == "hvm":
+            supports_hvm = True
+
+        elif guest.os_type == "xen":
+            if (len(guest.domains) and
+                guest.domains[0].hypervisor_type == "kvm"):
+                # Don't prompt user for PV w/ xenner
+                continue
+            supports_pv = True
+
+    if not arch:
+        arch = caps.host.arch
+
+    if not req_virt_type:
+        if supports_hvm and supports_pv:
+            prompt_txt = _("Would you like a fully virtualized guest "
+                           "(yes or no)? This will allow you to run "
+                           "unmodified operating systems.")
+
+            if cli.prompt_for_yes_or_no(prompt_txt, ""):
+                req_virt_type = "hvm"
+            else:
+                req_virt_type = "xen"
+
+        elif supports_hvm:
+            req_virt_type = "hvm"
+
+        elif supports_pv:
+            req_virt_type = "xen"
+
+    # See if that domain supports acceleration
+    accel_type = ""
+    for guest in caps.guests:
+        if guest.os_type == req_virt_type and guest.arch == arch:
+            for dom in guest.domains:
+                if dom.hypervisor_type in [ "kvm", "kqemu" ]:
+                    supports_accel = True
+                    accel_type = dom.hypervisor_type.upper()
+
+    if supports_accel and not req_accel:
+        prompt_txt = (_("Would you like to use %s acceleration? "
+                        "(yes or no)") % accel_type)
+
+        req_accel = cli.prompt_for_yes_or_no(prompt_txt, "")
+
+    return (req_virt_type, req_accel)
+
+
+def get_virt_type(conn, options):
+
+    # Set up all virt/hypervisor parameters
+    if options.fullvirt and options.paravirt:
+        fail(_("Can't do both --hvm and --paravirt"))
+
+    capabilities = virtinst.CapabilitiesParser.parse(conn.getCapabilities())
 
+    # Accelerate request is now the default
+    req_accel = True
+    req_hv_type = options.hv_type and options.hv_type.lower() or None
+    if options.fullvirt:
+        req_virt_type = "hvm"
+    elif options.paravirt:
+        req_virt_type = "xen"
+    else:
+        # This should force capabilities to give us the most sensible default
+        req_virt_type = None
 
+    if cli.is_prompt():
+        # User requested prompting but passed no virt type flag, ask for
+        # needed info
+        req_virt_type, req_accel = prompt_virt(capabilities, options.arch,
+                                               req_virt_type, req_accel)
+
+    logging.debug("Requesting virt method '%s', hv type '%s'." %
+                  ((req_virt_type and req_virt_type or _("default")),
+                   (req_hv_type and req_hv_type or _("default"))))
+
+    try:
+        (capsguest,
+         capsdomain) = virtinst.CapabilitiesParser.guest_lookup(conn=conn,
+                        caps=capabilities, os_type=req_virt_type,
+                        arch=options.arch, type=req_hv_type,
+                        accelerated=req_accel)
+    except Exception, e:
+        fail(e)
 
-### Paravirt input gathering functions
-def get_extraargs(extra, guest):
-    guest.extraargs = extra
+    return (capsguest, capsdomain)
 
 
 def get_install_media(location, cdpath, pxe, livecd, import_install,
@@ -292,47 +440,64 @@ def get_install_media(location, cdpath, pxe, livecd, import_install,
         for disk in guest.disks:
             if disk.device == virtinst.VirtualDisk.DEVICE_CDROM:
                 cdinstall = True
-        if not cdinstall:
+        if not cdinstall and not cli.is_prompt():
             fail(_("One of %s, or cdrom media must be specified.") %
                   "--pxe, --location, --import")
 
+
     if pxe or import_install:
         return
+
     try:
-        if location or cdpath:
-            guest.location = (location or cdpath)
-        if cdpath and os.path.exists(cdpath):
-            # Build a throwaway disk for validation for local CDs only
-            virtinst.VirtualDisk(path=cdpath,
-                                 conn=guest.conn,
-                                 transient=True,
-                                 device=virtinst.VirtualDisk.DEVICE_CDROM,
-                                 readOnly=True)
-        if cdinstall:
-            guest.installer.cdrom = True
+        if not location and not cdpath and cli.is_prompt():
+            media_prompt(guest, ishvm)
+        else:
+            validate_install_media(guest, location, cdpath, cdinstall)
     except ValueError, e:
         fail(_("Error creating cdrom disk: %s" % str(e)))
 
+def media_prompt(guest, ishvm):
 
-### Option parsing
-def check_before_store(option, opt_str, value, parser):
-    if len(value) == 0:
-        raise OptionValueError, _("%s option requires an argument") %opt_str
-    setattr(parser.values, option.dest, value)
+    if ishvm:
+        prompt_txt = _("What is the install CD-ROM/ISO or URL?")
+    else:
+        prompt_txt = _("What is the install URL?")
 
-def check_before_append(option, opt_str, value, parser):
-    if len(value) == 0:
-        raise OptionValueError, _("%s option requires an argument") %opt_str
-    parser.values.ensure_value(option.dest, []).append(value)
+    while 1:
+        location = None
+        cdpath = None
+        media = cli.prompt_for_input("", prompt_txt, None)
 
+        if not ishvm or media.count(":/"):
+            location = media
+        else:
+            cdpath = media
+
+        try:
+            validate_install_media(guest, location, cdpath)
+        except Exception, e:
+            logging.error(str(e))
+            continue
+        break
+
+def validate_install_media(guest, location, cdpath, cdinstall=False):
+    if location or cdpath:
+        guest.location = (location or cdpath)
+
+    if cdinstall or cdpath:
+        guest.installer.cdrom = True
+
+
+### Option parsing
 def parse_args():
     usage = "%prog --name NAME --ram RAM STORAGE INSTALL [options]"
-    parser = cli.VirtOptionParser(usage=usage)
+    parser = cli.VirtOptionParser(usage=usage,
+                                  formatter=cli.VirtHelpFormatter())
 
     parser.add_option("", "--connect", type="string", dest="connect",
                       action="callback", callback=cli.check_before_store,
                       help=_("Connect to hypervisor with URI"),
-                      default=virtinst.util.default_connection())
+                      default=None)
 
     geng = OptionGroup(parser, _("General Options"))
     geng.add_option("-n", "--name", type="string", dest="name",
@@ -363,6 +528,12 @@ def parse_args():
                       action="callback", callback=cli.check_before_store,
                       help=_("The OS variant for fully virtualized guests, "
                              "e.g. 'fedora6', 'rhel5', 'solaris10', 'win2k'"))
+    geng.add_option("", "--serial", type="string", dest="serials",
+                    action="callback", callback=cli.check_before_append,
+                    help=_("Add a serial device to the domain."))
+    geng.add_option("", "--parallel", type="string", dest="parallels",
+                    action="callback", callback=cli.check_before_append,
+                    help=_("Add a parallel device to the domain."))
     geng.add_option("", "--host-device", type="string", dest="hostdevs",
                     action="callback", callback=cli.check_before_append,
                     help=_("Physical host device to attach to the domain."))
@@ -386,10 +557,12 @@ def parse_args():
                       help=_("This guest should be a fully virtualized guest"))
     virg.add_option("-p", "--paravirt", action="store_true", dest="paravirt",
                     help=_("This guest should be a paravirtualized guest"))
+    virg.add_option("", "--virt-type", type="string", dest="hv_type",
+                    default="",
+                    help=_("Hypervisor name to use (kvm, qemu, xen, ...)"))
     virg.add_option("", "--accelerate", action="store_true",
                     dest="accelerate", default=False,
-                    help=_("Use kernel acceleration capabilities "
-                           "(kvm, kqemu, ...)"))
+                    help=optparse.SUPPRESS_HELP)
     parser.add_option_group(virg)
 
     insg = OptionGroup(parser, _("Installation Method Options"))
@@ -415,56 +588,52 @@ def parse_args():
     stog = OptionGroup(parser, _("Storage Configuration"))
     stog.add_option("", "--disk", type="string", dest="diskopts",
                     action="callback", callback=cli.check_before_append,
-                    help=_("Specify storage to use as a disk with various "
-                           "options."))
+        help=_("Specify storage with various options. Ex.\n"
+               "--disk path=/my/existing/disk\n"
+               "--disk path=/my/new/disk,size=5 (in gigabytes)\n"
+               "--disk vol=poolname:volname,device=cdrom,bus=scsi,..."))
+    stog.add_option("", "--nodisks", action="store_true",
+                    help=_("Don't set up any disks for the guest."))
+
+    # Deprecated storage options
     stog.add_option("-f", "--file", type="string", dest="file_path",
                     action="callback", callback=cli.check_before_append,
-                    help=_("File to use as the disk image"))
+                    help=optparse.SUPPRESS_HELP)
     stog.add_option("-s", "--file-size", type="float",
                     action="append", dest="disksize",
-                    help=_("Size of the disk image (if it doesn't exist) in "
-                           "gigabytes"))
+                    help=optparse.SUPPRESS_HELP)
     stog.add_option("", "--nonsparse", action="store_false",
                     default=True, dest="sparse",
-                    help=_("Don't use sparse files for disks.  Note that this "
-                           "will be significantly slower for guest creation"))
-    stog.add_option("", "--nodisks", action="store_true",
-                    help=_("Don't set up any disks for the guest."))
+                    help=optparse.SUPPRESS_HELP)
     parser.add_option_group(stog)
 
     netg = OptionGroup(parser, _("Networking Configuration"))
-    netg.add_option("-b", "--bridge", type="string", dest="bridge",
-                    action="callback", callback=cli.check_before_append,
-                    help=_("Bridge to connect guest NIC to; if none given, "
-                           "will try to determine the default"))
     netg.add_option("-w", "--network", type="string", dest="network",
                     action="callback", callback=cli.check_before_append,
-                    help=_("Connect the guest to a virtual network, "
-                           "forwarding to the physical network with NAT"))
-    netg.add_option("-m", "--mac", type="string", dest="mac",
-                    action="callback", callback=cli.check_before_append,
-                    help=_("Fixed MAC address for the guest; if none or "
-                           "RANDOM is given a random address will be used"))
+      help=_("Specify a network interface. Ex:\n"
+             "--network bridge=mybr0\n"
+             "--network network=my_libvirt_virtual_net\n"
+             "--network network=mynet,model=virtio,mac=00:11..."))
     netg.add_option("", "--nonetworks", action="store_true",
                     help=_("Don't create network interfaces for the guest."))
+
+    # Deprecated net options
+    netg.add_option("-b", "--bridge", type="string", dest="bridge",
+                    action="callback", callback=cli.check_before_append,
+                    help=optparse.SUPPRESS_HELP)
+    netg.add_option("-m", "--mac", type="string", dest="mac",
+                    action="callback", callback=cli.check_before_append,
+                    help=optparse.SUPPRESS_HELP)
     parser.add_option_group(netg)
 
-    vncg = OptionGroup(parser, _("Graphics Configuration"))
-    vncg.add_option("", "--vnc", action="store_true", dest="vnc",
-                    help=_("Use VNC for graphics support"))
-    vncg.add_option("", "--vncport", type="int", dest="vncport",
-                    help=_("Port to use for VNC"))
-    vncg.add_option("", "--sdl", action="store_true", dest="sdl",
-                    help=_("Use SDL for graphics support"))
-    vncg.add_option("", "--nographics", action="store_true",
-                    help=_("Don't set up a graphical console for the guest."))
+    vncg = cli.graphics_option_group(parser)
+    vncg.add_option("", "--video", dest="video", type="string",
+                    action="callback", callback=cli.check_before_append,
+                    help=_("Specify video hardware type."))
     vncg.add_option("", "--noautoconsole", action="store_false",
                     dest="autoconsole",
                     help=_("Don't automatically try to connect to the guest "
                            "console"))
-    vncg.add_option("-k", "--keymap", type="string", dest="keymap",
-                    action="callback", callback=cli.check_before_store,
-                    help=_("set up keymap for a graphical console"))
     parser.add_option_group(vncg)
 
     misc = OptionGroup(parser, _("Miscellaneous Options"))
@@ -480,9 +649,8 @@ def parse_args():
                            "terminates for all others"),
                       default=False)
     misc.add_option("", "--prompt", action="store_true", dest="prompt",
-                    help=_("Request user input for ambiguous situations. "
-                           "Default is false, so will terminate if a prompt "
-                           "would typically be fired. "), default=False)
+                    help=_("Request user input for ambiguous situations or "
+                           "required options."), default=False)
     parser.add_option_group(misc)
 
     (options, dummy) = parser.parse_args()
@@ -528,33 +696,8 @@ def main():
     cli.set_force(options.force)
     cli.set_prompt(options.prompt)
     conn = cli.getConnection(options.connect)
-    capabilities = virtinst.CapabilitiesParser.parse(conn.getCapabilities())
-
-
-    # Set up all virt/hypervisor parameters
-    if options.fullvirt and options.paravirt:
-        fail(_("Can't do both --hvm and --paravirt"))
-
-    if options.fullvirt:
-        req_virt_type = "hvm"
-    elif options.paravirt:
-        req_virt_type = "xen"
-    else:
-        # This should force capabilities to give us the most sensible default
-        req_virt_type = None
 
-    logging.debug("Requesting virt method '%s'" % (req_virt_type and
-                                                   req_virt_type or
-                                                   _("default")))
-
-    try:
-        (capsguest,
-         capsdomain) = virtinst.CapabilitiesParser.guest_lookup(conn=conn,
-                        caps=capabilities, os_type=req_virt_type,
-                        arch=options.arch, type=None,
-                        accelerated=options.accelerate)
-    except Exception, e:
-        fail(e)
+    capsguest, capsdomain = get_virt_type(conn, options)
 
     virt_type = capsguest.os_type
     hv_name = capsdomain.hypervisor_type
@@ -595,23 +738,28 @@ def main():
     cli.get_cpuset(options.cpuset, guest.memory, guest, conn)
     if ishvm:
         cli.get_sound(options.sound, guest)
+        get_chardevs(VirtualDevice.VIRTUAL_DEV_SERIAL, options.serials, guest)
+        get_chardevs(VirtualDevice.VIRTUAL_DEV_PARALLEL, options.parallels,
+                     guest)
+
+    cli.get_video(options.video, guest)
 
     # set up disks
     get_disks(options.file_path, options.diskopts, options.disksize,
-              options.sparse, options.nodisks, guest, ishvm, conn)
+              options.sparse, options.nodisks, guest, conn)
 
     # set up network information
     get_networks(options.mac, options.bridge, options.network,
                  options.nonetworks, guest)
 
     # set up graphics information
-    cli.get_graphics(options.vnc, options.vncport, options.nographics,
-                     options.sdl, options.keymap, guest)
+    cli.get_graphics(options.vnc, options.vncport, options.vnclisten,
+                     options.nographics, options.sdl, options.keymap, guest)
 
     # Set host device info
     cli.get_hostdevs(options.hostdevs, guest)
 
-    get_extraargs(options.extra, guest)
+    guest.extraargs = options.extra
     if options.distro_type:
         guest.set_os_type(options.distro_type)
     if options.distro_variant:
@@ -620,14 +768,13 @@ def main():
     # and now for the full-virt vs paravirt specific questions
     get_install_media(options.location, options.cdrom, options.pxe,
                       options.livecd, options.import_install, guest, ishvm)
-    if not ishvm: # paravirt
-        continue_inst = False
-    else:
+
+    continue_inst = guest.get_continue_inst()
+    if ishvm:
         if options.noacpi:
             guest.features["acpi"] = False
         if options.noapic:
             guest.features["apic"] = False
-        continue_inst = guest.get_continue_inst()
 
     def show_console(dom):
         if guest.graphics_dev:
@@ -647,12 +794,12 @@ def main():
     # Interactive: If this is a continue_inst domain, we default to
     # waiting.  Otherwise, we can exit before the domain has finished
     # installing. Passing --wait will give the above semantics.
-    # 
+    #
     wait = continue_inst
     wait_time = -1
     autoconsole = options.autoconsole
 
-    if options.wait:
+    if options.wait != None:
         wait = True
         wait_time = options.wait * 60
         if wait_time == 0:
@@ -706,7 +853,7 @@ def main():
     except SystemExit, e:
         sys.exit(e.code)
     except Exception, e:
-        print str(e)
+        logging.error(e)
         print (_("Domain installation may not have been\n successful.  If it "
                  "was, you can restart your domain\n by running 'virsh start "
                  "%s'; otherwise, please\n restart your installation.") %
@@ -740,13 +887,13 @@ def do_install(guest, conscb, progresscb, wait, wait_time, start_time,
         return dom
 
     # Domain seems to be running
-    if wait:
+    if wait and wait_time != 0:
         timestr = ""
         if wait_time > 0:
             timestr = _("%d minutes ") % (int(wait_time) / 60)
 
         print _("Domain installation still in progress. Waiting %s"
-                 "for domain to complete installation.") % timestr
+                "for installation to complete.") % timestr
 
         # Wait loop
         while True:
@@ -769,6 +916,8 @@ def do_install(guest, conscb, progresscb, wait, wait_time, start_time,
                         "Exiting application.")
                 sys.exit(1)
     else:
+        # User specified --wait 0, which means --noautoconsole, which
+        # means just exit.
         print _("Domain installation still in progress. You can reconnect"
                 " to \nthe console to complete the installation process.")
         sys.exit(0)
diff --git a/virtconv/diskcfg.py b/virtconv/diskcfg.py
index b3f2b95..be06e50 100644
--- a/virtconv/diskcfg.py
+++ b/virtconv/diskcfg.py
@@ -18,7 +18,7 @@
 # MA 02110-1301 USA.
 #
 
-import popen2
+import subprocess
 import shutil
 import errno
 import sys
@@ -78,10 +78,11 @@ def run_cmd(cmd):
     """
     Return the exit status and output to stdout and stderr.
     """
-    proc = popen2.Popen3(cmd, capturestderr=True)
-    proc.tochild.close()
+    proc = subprocess.Popen(cmd, stderr=subprocess.PIPE,
+                            stdout=subprocess.PIPE,
+                            close_fds=True)
     ret = proc.wait()
-    return ret, proc.fromchild.readlines(), proc.childerr.readlines()
+    return ret, proc.stdout.readlines(), proc.stderr.readlines()
 
 def run_vdiskadm(args):
     """Run vdiskadm, returning the output."""
@@ -98,8 +99,8 @@ def run_vdiskadm(args):
 class disk(object):
     """Definition of an individual disk instance."""
 
-    def __init__(self, path = None, format = None, bus = "ide",
-        type = DISK_TYPE_DISK):
+    def __init__(self, path = None, format = DISK_FORMAT_NONE, bus = "ide",
+                 type = DISK_TYPE_DISK):
         self.path = path
         self.format = format
         self.bus = bus
@@ -128,8 +129,11 @@ class disk(object):
 
     def out_file(self, out_format):
         """Return the relative path of the output file."""
+        if not out_format:
+            return self.path
+
         relout = self.path.replace(disk_suffixes[self.format],
-            disk_suffixes[out_format])
+                                   disk_suffixes[out_format])
         return re.sub(r'\s', '_', relout)
 
     def vdisk_convert(self, absin, absout):
@@ -151,12 +155,17 @@ class disk(object):
         Use qemu-img to convert the given disk.  Note that at least some
         version of qemu-img cannot handle multi-file VMDKs, so this can
         easily go wrong.
+        Gentoo, Debian, and Ubuntu (potentially others) install kvm-img
+        with kvm and qemu-img with qemu. Both would work.
         """
 
         self.clean += [ absout ]
 
         ret, ignore, stderr = run_cmd(["qemu-img", "convert", "-O",
             qemu_formats[out_format], absin, absout])
+        if ret == 127:
+            ret, ignore, stderr = run_cmd(["kvm-img", "convert", "-O",
+                qemu_formats[out_format], absin, absout])
         if ret != 0:
             raise RuntimeError("Disk conversion failed with "
                 "exit status %d: %s" % (ret, "".join(stderr)))
diff --git a/virtconv/parsers/ovf.py b/virtconv/parsers/ovf.py
new file mode 100644
index 0000000..bc5944d
--- /dev/null
+++ b/virtconv/parsers/ovf.py
@@ -0,0 +1,459 @@
+#
+# Copyright 2009  Red Hat, Inc.
+# Cole Robinson <crobinso at redhat.com>
+#
+# 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 libxml2
+
+from virtconv import _gettext as _
+import virtconv.formats as formats
+import virtconv.vmcfg as vmcfg
+import virtconv.diskcfg as diskcfg
+import virtconv.netdevcfg as netdevcfg
+
+import logging
+
+# Mapping of ResourceType value to device type
+# http://konkretcmpi.org/cim218/CIM_ResourceAllocationSettingData.html
+"""
+    "Other" [1]
+    "Computer System" [2]
+    "Processor" [3]
+    "Memory" [4]
+    "IDE Controller" [5]
+    "Parallel SCSI HBA" [6]
+    "FC HBA" [7]
+    "iSCSI HBA" [8]
+    "IB HCA" [9]
+    "Ethernet Adapter" [10]
+    "Other Network Adapter" [11]
+    "I/O Slot" [12]
+    "I/O Device" [13]
+    "Floppy Drive" [14]
+    "CD Drive" [15]
+    "DVD drive" [16]
+    "Disk Drive" [17]
+    "Tape Drive" [18]
+    "Storage Extent" [19]
+    "Other storage device" [20]
+    "Serial port" [21]
+    "Parallel port" [22]
+    "USB Controller" [23]
+    "Graphics controller" [24]
+    "IEEE 1394 Controller" [25]
+    "Partitionable Unit" [26]
+    "Base Partitionable Unit" [27]
+    "Power" [28]
+    "Cooling Capacity" [29]
+    "Ethernet Switch Port" [30]
+"""
+
+DEVICE_CPU = "3"
+DEVICE_MEMORY = "4"
+DEVICE_IDE_BUS = "5"
+DEVICE_SCSI_BUS = "6"
+DEVICE_ETHERNET = "10"
+DEVICE_DISK = "17"
+DEVICE_GRAPHICS = "24"
+
+# AllocationUnits mapping can be found in Appendix C here:
+#http://www.dmtf.org/standards/documents/CIM/DSP0004.pdf
+
+
+
+def register_namespace(ctx):
+    ctx.xpathRegisterNs("ovf", "http://schemas.dmtf.org/ovf/envelope/1")
+    ctx.xpathRegisterNs("ovfenv", "http://schemas.dmtf.org/ovf/environment/1")
+    ctx.xpathRegisterNs("rasd", "http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData")
+    ctx.xpathRegisterNs("vssd", "http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_VirtualSystemSettingData")
+    ctx.xpathRegisterNs("vmw", "http://www.vmware.com/schema/ovf")
+
+def node_list(node):
+    child_list = []
+    child = node.children
+    while child:
+        child_list.append(child)
+        child = child.next
+    return child_list
+
+def get_child_content(parent_node, child_name):
+
+    for node in node_list(parent_node):
+        if node.name == child_name:
+            return node.content
+
+    return None
+
+def convert_alloc_val(ignore, val):
+    # XXX: This is a hack, but should we really have to decode
+    #      allocation units = "bytes * 2^20"?
+    val = float(val)
+
+    if val > 100000000:
+        # Assume bytes
+        return int(round(val / 1024.0 / 1024.0))
+
+    elif val > 100000:
+        # Assume kilobytes
+        return int(round(val / 1024.0))
+
+    elif val < 32:
+        # Assume GB
+        return int(val * 1024)
+
+    return int(val)
+
+def _xml_wrapper(xml, func):
+    doc = None
+    ctx = None
+    result = None
+
+    try:
+        doc = libxml2.parseDoc(xml)
+        ctx = doc.xpathNewContext()
+        register_namespace(ctx)
+
+        result = func(ctx)
+    finally:
+        if doc:
+            doc.freeDoc()
+        if ctx:
+            ctx.xpathFreeContext()
+    return result
+
+def get_xml_path(xml, path=None, func=None):
+    """
+    Return the content from the passed xml xpath, or return the result
+    of a passed function (receives xpathContext as its only arg)
+    """
+    def _get_xml_path(ctx):
+        result = None
+
+        if path:
+            ret = ctx.xpathEval(path)
+            if ret != None:
+                if type(ret) == list:
+                    if len(ret) >= 1:
+                        #result = ret[0].content
+                        result = ret
+                else:
+                    result = ret
+
+        elif func:
+            result = func(ctx)
+        else:
+            raise ValueError(_("'path' or 'func' is required."))
+
+        return result
+
+    return _xml_wrapper(xml, _get_xml_path)
+
+def _parse_hw_section(vm, nodes, file_refs, disk_section):
+    vm.nr_vcpus = 0
+    disk_buses = {}
+
+    for device_node in nodes:
+        if device_node.name != "Item":
+            continue
+
+        devtype = None
+        for item_node in node_list(device_node):
+            if item_node.name == "ResourceType":
+                devtype = item_node.content
+
+        if devtype == DEVICE_CPU:
+            cpus = get_child_content(device_node, "VirtualQuantity")
+            if cpus:
+                vm.nr_vcpus += int(cpus)
+
+        elif devtype == DEVICE_MEMORY:
+            mem = get_child_content(device_node, "VirtualQuantity")
+            alloc_str = get_child_content(device_node, "AllocationUnits")
+            if mem:
+                vm.memory = convert_alloc_val(alloc_str, mem)
+
+        elif devtype == DEVICE_ETHERNET:
+            net_model = get_child_content(device_node, "ResourceSubType")
+            if net_model:
+                net_model = net_model.lower()
+            netdev = netdevcfg.netdev(driver=net_model)
+            vm.netdevs[len(vm.netdevs)] = netdev
+
+        elif devtype == DEVICE_IDE_BUS:
+            instance_id = get_child_content(device_node, "InstanceID")
+            disk_buses[instance_id] = "ide"
+
+        elif devtype == DEVICE_SCSI_BUS:
+            instance_id = get_child_content(device_node, "InstanceID")
+            disk_buses[instance_id] = "scsi"
+
+        elif devtype in [ DEVICE_DISK ]:
+            bus_id = get_child_content(device_node, "Parent")
+            path = get_child_content(device_node, "HostResource")
+
+            dev_num = int(get_child_content(device_node, "AddressOnParent"))
+
+            if bus_id and not disk_buses.has_key(bus_id):
+                raise ValueError(_("Didn't find parent bus for disk '%s'" %
+                                 path))
+
+            bus = (bus_id and disk_buses[bus_id]) or "ide"
+
+            format = diskcfg.DISK_FORMAT_RAW
+
+            if path:
+                ref = None
+                format = diskcfg.DISK_FORMAT_VMDK
+
+                if path.startswith("ovf:/disk/"):
+                    disk_ref = path[len("ovf:/disk/"):]
+                    if not disk_section.has_key(disk_ref):
+                        raise ValueError(_("Unknown reference id '%s' "
+                                           "for path %s.") % (path, ref))
+
+                    ref, format = disk_section[disk_ref]
+
+                elif path.startswith("ovf:/file/"):
+                    ref = path[len("ovf:/file/"):]
+
+                else:
+                    raise ValueError(_("Unknown storage path type %s." % path))
+
+                if not ref:
+                    # XXX: This means allocate the disk.
+                    pass
+
+                if not file_refs.has_key(ref):
+                    raise ValueError(_("Unknown reference id '%s' "
+                                       "for path %s.") % (path, ref))
+
+                path = file_refs[ref]
+
+            disk = diskcfg.disk(path=path, format=format, bus=bus,
+                                type=diskcfg.DISK_TYPE_DISK)
+
+            vm.disks[(bus, dev_num)] = disk
+
+        else:
+            desc = get_child_content(device_node, "Description")
+            logging.debug("Unhandled device type=%s desc=%s" % (devtype, desc))
+
+class ovf_parser(formats.parser):
+    """
+    Support for OVF appliance configurations.
+
+    Whitepaper: http://www.vmware.com/pdf/ovf_whitepaper_specification.pdf
+    Spec: http://www.dmtf.org/standards/published_documents/DSP0243_1.0.0.pdf
+    """
+
+    name = "ovf"
+    suffix = ".ovf"
+    can_import = True
+    can_export = False
+    can_identify = True
+
+    @staticmethod
+    def identify_file(input_file):
+        """
+        Return True if the given file is of this format.
+        """
+        infile = open(input_file, "r")
+        xml = infile.read()
+        infile.close()
+
+        res = False
+        try:
+            res = bool(get_xml_path(xml, "/ovf:Envelope"))
+        except Exception, e:
+            logging.debug("Error parsing OVF XML: %s" % str(e))
+
+        return res
+
+    @staticmethod
+    def import_file(input_file):
+        """
+        Import a configuration file.  Raises if the file couldn't be
+        opened, or parsing otherwise failed.
+        """
+
+        infile = open(input_file, "r")
+        xml = infile.read()
+        infile.close()
+
+        return _xml_wrapper(xml, ovf_parser._import_file)
+
+    @staticmethod
+    def _import_file(ctx):
+        def xpath_str(path):
+            ret = ctx.xpathEval(path)
+            result = None
+            if ret != None:
+                if type(ret) == list:
+                    if len(ret) >= 1:
+                        result = ret[0].content
+                else:
+                    result = ret
+            return result
+
+        def bool_val(val):
+            if str(val).lower() == "false":
+                return False
+            elif str(val).lower() == "true":
+                return True
+
+            return False
+
+        def xpath_nodes(path):
+            return ctx.xpathEval(path)
+
+        vm = vmcfg.vm()
+
+        file_refs = {}
+        disk_section = {}
+        net_section = {}
+        name = None
+        desc = None
+
+        os_id_ignore = None
+        os_ver_ignore = None
+        os_type_ignore = None
+
+        # XXX: Can have multiple machines nested as VirtualSystemCollection
+        # XXX: Need to check all Envelope
+
+        # General info
+        name = xpath_str("/ovf:Envelope/ovf:VirtualSystem/ovf:Name")
+
+        # Map files in <References> to actual filename
+        ens = xpath_nodes("/ovf:Envelope[1]")[0]
+        envelope_node = ens.children
+        for envelope_node in node_list(ens):
+
+            if envelope_node.name == "References":
+                for reference_node in envelope_node.children:
+                    if reference_node.name != "File":
+                        continue
+
+                    file_id = reference_node.prop("id")
+                    path = reference_node.prop("href")
+
+                    # XXX: Should we validate the path exists? This can
+                    #      be http.
+                    if file_id and path:
+                        file_refs[file_id] = path
+
+            elif envelope_node.name == "DiskSection":
+                for disk_node in envelope_node.children:
+                    if disk_node.name != "Disk":
+                        continue
+
+                    format = disk_node.prop("format")
+                    if not format:
+                        format = diskcfg.DISK_FORMAT_VMDK
+                    elif format.lower().count("vmdk"):
+                        format = diskcfg.DISK_FORMAT_VMDK
+                    else:
+                        format = diskcfg.DISK_FORMAT_VMDK
+
+                    disk_id = disk_node.prop("diskId")
+                    file_ref = disk_node.prop("fileRef")
+                    capacity = disk_node.prop("capacity")
+                    alloc_str = disk_node.prop("AllocationUnits")
+                    capacity = convert_alloc_val(alloc_str, capacity)
+
+                    # XXX: Empty fileref means 'create this disk'
+                    disk_section[disk_id] = (file_ref, format)
+
+            elif envelope_node.name == "NetworkSection":
+                for net_node in envelope_node.children:
+                    if net_node.name != "Network":
+                        continue
+
+                    net_name_ignore = net_node.prop("name")
+                    net_section[name] = None
+
+            elif not envelope_node.isText():
+                logging.debug("Unhandled XML section '%s'" %
+                              envelope_node.name)
+
+                req = bool_val(envelope_node.prop("required"))
+                if req:
+                    raise StandardError(_("OVF section '%s' is listed as "
+                                          "required, but parser doesn't know "
+                                          "how to handle it.") %
+                                          envelope_node.name)
+
+        # Now parse VirtualSystem, since we should have set up all the
+        # necessary file/disk/whatever refs
+        for envelope_node in node_list(ens):
+            if envelope_node.name != "VirtualSystem":
+                continue
+
+            for vs_node in node_list(envelope_node):
+
+                if vs_node.name == "Info":
+                    pass
+
+                elif vs_node.name == "Name":
+                    name = vs_node.content
+
+                elif vs_node.name == "OperatingSystemSection":
+                    os_id_ignore = vs_node.prop("id")
+                    os_ver_ignore = vs_node.prop("version")
+                    # This is the VMWare OS name
+                    os_type_ignore = vs_node.prop("osType")
+
+                elif vs_node.name == "VirtualHardwareSection":
+                    _parse_hw_section(vm, node_list(vs_node), file_refs,
+                                      disk_section)
+
+                elif vs_node.name == "AnnotationSection":
+                    for an_node in node_list(vs_node):
+                        if an_node.name == "Annotation":
+                            desc = an_node.content
+
+
+        vm.name = name
+        vm.description = desc
+        vm.validate()
+
+        return vm
+
+    @staticmethod
+    def export(vm):
+        """
+        Export a configuration file as a string.
+        @vm vm configuration instance
+
+        Raises ValueError if configuration is not suitable.
+        """
+        raise NotImplementedError
+
+    @staticmethod
+    def export_file(vm, output_file):
+        """
+        Export a configuration file.
+        @vm vm configuration instance
+        @output_file Output file
+
+        Raises ValueError if configuration is not suitable, or another
+        exception on failure to write the output file.
+        """
+        raise NotImplementedError
+
+formats.register_parser(ovf_parser)
diff --git a/virtconv/parsers/virtimage.py b/virtconv/parsers/virtimage.py
index 8fb395e..7c94a58 100644
--- a/virtconv/parsers/virtimage.py
+++ b/virtconv/parsers/virtimage.py
@@ -228,18 +228,18 @@ class virtimage_parser(formats.parser):
 
         for d in boot.drives:
             disk = d.disk
-            format = None
+            fmt = None
             if disk.format == ImageParser.Disk.FORMAT_RAW:
-                format = diskcfg.DISK_FORMAT_RAW
-            elif format == ImageParser.Disk.FORMAT_VMDK:
-                format = diskcfg.DISK_FORMAT_VMDK
+                fmt = diskcfg.DISK_FORMAT_RAW
+            elif disk.format == ImageParser.Disk.FORMAT_VMDK:
+                fmt = diskcfg.DISK_FORMAT_VMDK
 
-            if format is None:
+            if fmt is None:
                 raise ValueError(_("Unable to determine disk format"))
             devid = (bus, nr_disk)
             vm.disks[devid] = diskcfg.disk(bus = bus,
                 type = diskcfg.DISK_TYPE_DISK)
-            vm.disks[devid].format = format
+            vm.disks[devid].format = fmt
             vm.disks[devid].path = disk.file
             nr_disk = nr_disk + 1
 
diff --git a/virtconv/parsers/vmx.py b/virtconv/parsers/vmx.py
index b954808..eec67f1 100644
--- a/virtconv/parsers/vmx.py
+++ b/virtconv/parsers/vmx.py
@@ -32,7 +32,7 @@ _VMX_MAIN_TEMPLATE = """
 #!/usr/bin/vmplayer
 
 # Generated by %(progname)s
-# http://virt-manager.et.redhat.com/
+# http://virt-manager.org/
 
 # This is a Workstation 5 or 5.5 config file and can be used with Player
 config.version = "8"
@@ -41,7 +41,7 @@ guestOS = "other"
 displayName = "%(vm_name)s"
 annotation = "%(vm_description)s"
 guestinfo.vmware.product.long = "%(vm_name)s"
-guestinfo.vmware.product.url = "http://virt-manager.et.redhat.com/"
+guestinfo.vmware.product.url = "http://virt-manager.org/"
 guestinfo.vmware.product.class = "virtual machine"
 numvcpus = "%(vm_nr_vcpus)s"
 memsize = "%(vm_memory)d"
diff --git a/virtinst/CapabilitiesParser.py b/virtinst/CapabilitiesParser.py
index ffdea08..d7b8b19 100644
--- a/virtinst/CapabilitiesParser.py
+++ b/virtinst/CapabilitiesParser.py
@@ -93,6 +93,7 @@ class Host(object):
 
         self.features = CapabilityFeatures()
         self.topology = None
+        self.secmodel = None
 
         if not node is None:
             self.parseXML(node)
@@ -103,6 +104,9 @@ class Host(object):
             if child.name == "topology":
                 self.topology = Topology(child)
 
+            if child.name == "secmodel":
+                self.secmodel = SecurityModel(child)
+
             if child.name != "cpu":
                 child = child.next
                 continue
@@ -252,6 +256,21 @@ class TopologyCPU(object):
         self.id = int(node.prop("id"))
 
 
+class SecurityModel(object):
+    def __init__(self, node = None):
+        self.model = None
+        self.doi = None
+
+        if not node is None:
+            self.parseXML(node)
+
+    def parseXML(self, node):
+        for child in node.children or []:
+            if child.name == "model":
+                self.model = child.content
+            elif child.name == "doi":
+                self.doi = child.content
+
 class Capabilities(object):
     def __init__(self, node = None):
         self.host = None
diff --git a/virtinst/CloneManager.py b/virtinst/CloneManager.py
index d4f483c..27cb4ff 100644
--- a/virtinst/CloneManager.py
+++ b/virtinst/CloneManager.py
@@ -32,22 +32,77 @@ General workflow for cloning:
     - Run 'CloneManager.start_duplicate', passing the CloneDesign instance
 """
 
-import os
-import libxml2
 import logging
-import subprocess
-import _util
+import re
+
+import libxml2
+import urlgrabber.progress as progress
 import libvirt
+
 import Guest
 from VirtualNetworkInterface import VirtualNetworkInterface
 from VirtualDisk import VirtualDisk
+from virtinst import Storage
 from virtinst import _virtinst as _
+import _util
+
+def _listify(val):
+    """
+    Return (was_val_a_list, listified_val)
+    """
+    if type(val) is list:
+        return True, val
+    else:
+        return False, [val]
+
+def generate_clone_disk_path(origpath, design):
+    basename = origpath
+    suffix = ""
+
+    # Try to split the suffix off the existing disk name. Ex.
+    # foobar.img -> foobar-clone.img
+    #
+    # If the suffix is greater than 7 characters, assume it isn't
+    # a file extension and is part of the disk name, at which point
+    # just stick '-clone' on the end.
+    if basename.count(".") and len(basename.rsplit(".", 1)[1]) <= 7:
+        basename, suffix = basename.rsplit(".", 1)
+        suffix = "." + suffix
+
+    return _util.generate_name(basename + "-clone",
+                               lambda p: VirtualDisk.path_exists(design.original_conn, p),
+                               suffix,
+                               lib_collision=False)
+
+def generate_clone_name(design):
+    # If the orig name is "foo-clone", we don't want the clone to be
+    # "foo-clone-clone", we want "foo-clone1"
+    basename = design.original_guest
+
+    match = re.search("-clone[1-9]*$", basename)
+    start_num = 0
+    if match:
+        num_match = re.search("[1-9]+$", match.group())
+        if num_match:
+            start_num = int(str(num_match.group()))
+        basename = basename.replace(match.group(), "")
+
+    basename = basename + "-clone"
+    return _util.generate_name(basename,
+                               design.original_conn.lookupByName,
+                               sep="", start_num=start_num)
+
 
 #
 # This class is the design paper for a clone virtual machine.
 #
 class CloneDesign(object):
 
+    # Reasons why we don't default to cloning.
+    CLONE_POLICY_NO_READONLY   = 1
+    CLONE_POLICY_NO_SHAREABLE  = 2
+    CLONE_POLICY_NO_EMPTYMEDIA = 3
+
     def __init__(self, connection):
         # hypervisor connection
         if not isinstance(connection, libvirt.virConnect):
@@ -60,9 +115,6 @@ class CloneDesign(object):
         self._original_virtual_disks = []
         self._original_xml          = None
 
-        # Deliberately private: user doesn't need to know this
-        self._original_devices_idx = []
-
         # clone guest
         self._clone_name         = None
         self._clone_devices      = []
@@ -74,9 +126,15 @@ class CloneDesign(object):
         self._clone_xml          = None
 
         self._force_target       = []
-
+        self._skip_target        = []
         self._preserve           = True
 
+        # Default clone policy for back compat: don't clone readonly,
+        # shareable, or empty disks
+        self._clone_policy       = [self.CLONE_POLICY_NO_READONLY,
+                                    self.CLONE_POLICY_NO_SHAREABLE,
+                                    self.CLONE_POLICY_NO_EMPTYMEDIA]
+
         # Throwaway guest to use for easy validation
         self._valid_guest        = Guest.Guest(connection=connection)
 
@@ -88,6 +146,7 @@ class CloneDesign(object):
             self.clone_uuid = uuid
             break
 
+
     # Getter/Setter methods
 
     def get_original_guest(self):
@@ -95,15 +154,19 @@ class CloneDesign(object):
     def set_original_guest(self, original_guest):
         if self._lookup_vm(original_guest):
             self._original_guest = original_guest
-    original_guest = property(get_original_guest, set_original_guest)
+    original_guest = property(get_original_guest, set_original_guest,
+                              doc="Original guest name.")
 
     def set_original_xml(self, val):
         if type(val) is not str:
             raise ValueError(_("Original xml must be a string."))
         self._original_xml = val
+        self._original_guest = _util.get_xml_path(self.original_xml,
+                                                  "/domain/name")
     def get_original_xml(self):
         return self._original_xml
-    original_xml = property(get_original_xml, set_original_xml)
+    original_xml = property(get_original_xml, set_original_xml,
+                            doc="XML of the original guest.")
 
     def get_clone_name(self):
         return self._clone_name
@@ -122,7 +185,8 @@ class CloneDesign(object):
             pass
 
         self._clone_name = name
-    clone_name = property(get_clone_name, set_clone_name)
+    clone_name = property(get_clone_name, set_clone_name,
+                          doc="Name to use for the new guest clone.")
 
     def set_clone_uuid(self, uuid):
         try:
@@ -136,92 +200,166 @@ class CloneDesign(object):
         self._clone_uuid = uuid
     def get_clone_uuid(self):
         return self._clone_uuid
-    clone_uuid = property(get_clone_uuid, set_clone_uuid)
+    clone_uuid = property(get_clone_uuid, set_clone_uuid,
+                          doc="UUID to use for the new guest clone")
 
     def set_clone_devices(self, devpath):
         # Devices here is a string path. Every call to set_clone_devices
         # Adds the path (if valid) to the internal _clone_devices list
 
+        disklist = []
+        is_list, pathlist = _listify(devpath)
+
         # Check path is valid
+        # XXX: What if disk is being preserved, and storage is readonly?
         try:
-            disk = VirtualDisk(devpath, size=.0000001, conn=self._hyper_conn)
+            for path in pathlist:
+                device = VirtualDisk.DEVICE_DISK
+                if not path:
+                    device = VirtualDisk.DEVICE_CDROM
+
+                disk = VirtualDisk(path, size=.0000001,
+                                   conn=self._hyper_conn,
+                                   device=device)
+                disklist.append(disk)
         except Exception, e:
             raise ValueError(_("Could not use path '%s' for cloning: %s") %
                              (devpath, str(e)))
 
-        self._clone_virtual_disks.append(disk)
-        self._clone_devices.append(devpath)
+        if is_list:
+            self._clone_virtual_disks = []
+            self._clone_devices = []
+
+        self._clone_virtual_disks.extend(disklist)
+        self._clone_devices.extend(pathlist)
     def get_clone_devices(self):
         return self._clone_devices
-    clone_devices = property(get_clone_devices, set_clone_devices)
+    clone_devices = property(get_clone_devices, set_clone_devices,
+                             doc="Paths to use for the new disk locations.")
 
     def get_clone_virtual_disks(self):
         return self._clone_virtual_disks
-    clone_virtual_disks = property(get_clone_virtual_disks)
+    clone_virtual_disks = property(get_clone_virtual_disks,
+                                   doc="VirtualDisk instances for the new"
+                                       " disk paths")
 
     def set_clone_mac(self, mac):
-        VirtualNetworkInterface(mac, conn=self.original_conn)
-        self._clone_mac.append(mac)
+        is_list, maclist = _listify(mac)
+
+        for m in maclist:
+            VirtualNetworkInterface(m, conn=self.original_conn)
+
+        if is_list:
+            self._clone_mac = []
+
+        self._clone_mac.extend(maclist)
     def get_clone_mac(self):
         return self._clone_mac
-    clone_mac = property(get_clone_mac, set_clone_mac)
+    clone_mac = property(get_clone_mac, set_clone_mac,
+                         doc="MAC address for the new guest clone.")
 
     def get_clone_bs(self):
         return self._clone_bs
     def set_clone_bs(self, rate):
         self._clone_bs = rate
-    clone_bs = property(get_clone_bs, set_clone_bs)
+    clone_bs = property(get_clone_bs, set_clone_bs,
+                        doc="Block size to use when cloning guest storage.")
 
     def get_original_devices_size(self):
         ret = []
         for disk in self.original_virtual_disks:
             ret.append(disk.size)
         return ret
-    original_devices_size = property(get_original_devices_size)
+    original_devices_size = property(get_original_devices_size,
+                                     doc="Size of the original guest's disks."
+                                         " DEPRECATED: Get this info from"
+                                         " original_virtual_disks")
 
     def get_original_devices(self):
         ret = []
         for disk in self.original_virtual_disks:
             ret.append(disk.path)
         return ret
-    original_devices = property(get_original_devices)
+    original_devices = property(get_original_devices,
+                                doc="Original disk paths that will be cloned. "
+                                    "DEPRECATED: Get this info from "
+                                    "original_virtual_disks")
 
     def get_original_virtual_disks(self):
         return self._original_virtual_disks
-    original_virtual_disks = property(get_original_virtual_disks)
+    original_virtual_disks = property(get_original_virtual_disks,
+                                      doc="VirtualDisk instances of the "
+                                          "original disks being cloned.")
 
     def get_hyper_conn(self):
         return self._hyper_conn
-    original_conn = property(get_hyper_conn)
+    def set_hyper_conn(self, conn):
+        self._hyper_conn = conn
+    original_conn = property(get_hyper_conn, set_hyper_conn,
+                             doc="Libvirt virConnect instance we are cloning "
+                                 "on")
 
     def get_original_dom(self):
         return self._original_dom
-    original_dom = property(get_original_dom)
+    original_dom = property(get_original_dom,
+                            doc="Libvirt virDomain instance of the original "
+                                 "guest. May not be available if cloning from "
+                                 "XML.")
 
     def get_clone_xml(self):
         return self._clone_xml
     def set_clone_xml(self, clone_xml):
         self._clone_xml = clone_xml
-    clone_xml = property(get_clone_xml, set_clone_xml)
+    clone_xml = property(get_clone_xml, set_clone_xml,
+                         doc="Generated XML for the guest clone.")
 
     def get_clone_sparse(self):
         return self._clone_sparse
     def set_clone_sparse(self, flg):
         self._clone_sparse = flg
-    clone_sparse = property(get_clone_sparse, set_clone_sparse)
+    clone_sparse = property(get_clone_sparse, set_clone_sparse,
+                            doc="Whether to attempt sparse allocation during "
+                                "cloning.")
 
     def get_preserve(self):
         return self._preserve
     def set_preserve(self, flg):
         self._preserve = flg
-    preserve = property(get_preserve, set_preserve)
+    preserve = property(get_preserve, set_preserve,
+                        doc="If true, preserve ALL original disk devices.")
 
     def set_force_target(self, dev):
-        self._force_target.append(dev)
+        if type(dev) is list:
+            self._force_target = dev[:]
+        else:
+            self._force_target.append(dev)
     def get_force_target(self):
         return self._force_target
-    force_target = property(set_force_target)
+    force_target = property(get_force_target, set_force_target,
+                            doc="List of disk targets that we force cloning "
+                                "despite CloneManager's recommendation.")
 
+    def set_skip_target(self, dev):
+        if type(dev) is list:
+            self._skip_target = dev[:]
+        else:
+            self._skip_target.append(dev)
+    def get_skip_target(self):
+        return self._skip_target
+    skip_target = property(get_skip_target, set_skip_target,
+                           doc="List of disk targets that we skip cloning "
+                               "despite CloneManager's recommendation. This "
+                               "takes precedence over force_target.")
+
+    def set_clone_policy(self, policy_list):
+        if type(policy_list) != list:
+            raise ValueError(_("Cloning policy must be a list of rules."))
+        self._clone_policy = policy_list
+    def get_clone_policy(self):
+        return self._clone_policy
+    clone_policy = property(get_clone_policy, set_clone_policy,
+                            doc="List of policy rules for determining which "
+                                "vm disks to clone. See CLONE_POLICY_*")
 
     # Functional methods
 
@@ -234,23 +372,15 @@ class CloneDesign(object):
         if self.original_guest == None and self.original_xml == None:
             raise RuntimeError(_("Original guest name or xml is required."))
 
-        if self.original_guest != None:
+        if self.original_guest != None and not self.original_xml:
             self._original_dom = self._lookup_vm(self.original_guest)
             self.original_xml = self._original_dom.XMLDesc(0)
 
         # Pull clonable storage info from the original xml
-        self._original_virtual_disks, \
-        self._original_devices_idx = self._get_original_devices_info(self._original_xml)
+        self._original_virtual_disks = self._get_original_devices_info(self._original_xml)
 
         logging.debug("Original paths: %s" % (self.original_devices))
         logging.debug("Original sizes: %s" % (self.original_devices_size))
-        logging.debug("Original idxs: %s" % (self._original_devices_idx))
-
-        # If there are any devices that need to be cloned and we are on
-        # a remote connection, fail
-        if (self.original_devices and
-            _util.is_uri_remote(self.original_conn.getURI())):
-            raise RuntimeError(_("Cannot clone remote VM storage."))
 
         # If domain has devices to clone, it must be 'off' or 'paused'
         if self._original_dom and len(self.original_devices) != 0:
@@ -261,16 +391,6 @@ class CloneDesign(object):
                 raise RuntimeError, _("Domain with devices to clone must be "
                                       "paused or shutoff.")
 
-        # Check mac address is not in use
-        # XXX: Check this at set time?
-        for i in self._clone_mac:
-            ret, msg = self._check_mac(i)
-            if msg is not None:
-                if ret:
-                    raise RuntimeError, msg
-                else:
-                    logging.warning(msg)
-
 
     def setup_clone(self):
         """
@@ -293,17 +413,6 @@ class CloneDesign(object):
         node = ctx.xpathEval("/domain/name")
         node[0].setContent(self._clone_name)
 
-        # Changing storage paths
-        clone_devices = iter(self._clone_devices)
-        for i in self._original_devices_idx:
-            node = ctx.xpathEval("/domain/devices/disk[%d]/source" % i)
-            node = node[0].get_properties()
-            try:
-                node.setContent(clone_devices.next())
-            except Exception:
-                raise ValueError, _("Missing path to use as disk clone "
-                                    "destination for '%s'") % node.getContent()
-
         # We always have a UUID since one is generated at init time
         node = ctx.xpathEval("/domain/uuid")
         node[0].setContent(self._clone_uuid)
@@ -324,17 +433,37 @@ class CloneDesign(object):
                         break
                 node[0].setContent(mac)
 
-        # Change xml disk type values if original and clone disk types
-        # (block/file) don't match
-        for i in range(0, len(self._original_devices_idx)):
-            orig_type = (self._original_virtual_disks[i].type ==
-                         VirtualDisk.TYPE_FILE)
-            clone_type = (self._clone_virtual_disks[i].type ==
-                          VirtualDisk.TYPE_FILE)
+        if len(self.clone_virtual_disks) < len(self.original_virtual_disks):
+            raise ValueError(_("More disks to clone that new paths specified. "
+                               "(%(passed)d specified, %(need)d needed") %
+                               {"passed" : len(self.clone_virtual_disks),
+                                "need"   : len(self.original_virtual_disks) })
+
+        # Changing storage XML
+        for i in range(0, len(self.original_virtual_disks)):
+            orig_disk = self._original_virtual_disks[i]
+            clone_disk = self._clone_virtual_disks[i]
+
+            self._change_storage_xml(ctx, orig_disk, clone_disk)
+
+            # Sync 'size' between the two
+            if orig_disk.size:
+                clone_disk.size = orig_disk.size
+
+            # Setup proper cloning inputs for the new virtual disks
+            if orig_disk.vol_object and clone_disk.vol_install:
+                # Source and dest are managed. If they share the same pool,
+                # replace vol_install with a CloneVolume instance, otherwise
+                # simply set input_vol on the dest vol_install
+                if (clone_disk.vol_install.pool.name() ==
+                    orig_disk.vol_object.storagePoolLookupByVolume().name()):
+                    newname = clone_disk.vol_install.name
+                    clone_disk.vol_install = Storage.CloneVolume(newname, orig_disk.vol_object)
+                else:
+                    clone_disk.vol_install.input_vol = orig_disk.vol_object
 
-            self._change_disk_type(orig_type, clone_type,
-                                   self._original_devices_idx[i],
-                                   ctx)
+            else:
+                clone_disk.clone_path = orig_disk.path
 
         # Save altered clone xml
         self._clone_xml = str(doc)
@@ -342,7 +471,6 @@ class CloneDesign(object):
         ctx.xpathFreeContext()
         doc.freeDoc()
 
-
     def setup(self):
         """
         Helper function that wraps setup_original and setup_clone, with
@@ -362,109 +490,120 @@ class CloneDesign(object):
         nic = VirtualNetworkInterface(macaddr=mac, conn=self.original_conn)
         return nic.is_conflict_net(self._hyper_conn)
 
+    def _change_storage_xml(self, ctx, orig_disk, clone_disk):
+        """
+        Swap the original disk path out for the clone disk path in the
+        passed XML context
+        """
+        base_path   = ("/domain/devices/disk[target/@dev='%s']" %
+                       orig_disk.target)
+        disk        = ctx.xpathEval(base_path)[0]
+        driver      = ctx.xpathEval(base_path + "/driver")
+        disk_type   = ctx.xpathEval(base_path + "/@type")
+        source_node = ctx.xpathEval(base_path + "/source")
+        source_node = source_node and source_node[0]
+
+        # If no destination path, our job is easy
+        if not clone_disk.path:
+            if source_node:
+                source_node.unlinkNode()
+                source_node.freeNode()
+            return
+
+        if not source_node:
+            # No original source, but new path specified: create <source> tag
+            source_node = disk.newChild(None, "source", None)
+        else:
+            source_node.get_properties().unlinkNode()
+
+        # Change disk type/driver
+        if clone_disk.type == clone_disk.TYPE_FILE:
+            dtype, prop, drvval = ("file", "file", "file")
+        else:
+            dtype, prop, drvval = ("block", "dev", "phy")
+
+        # Only change these type/driver values if they are in our minimal
+        # known whitelist, to try and avoid future problems
+        if disk_type[0].getContent() in [ "file", "block" ]:
+            disk_type[0].setContent(dtype)
+        if driver and driver[0].prop("name") in [ "file", "block" ]:
+            driver[0].setProp("name", drvval)
+
+        source_node.setProp(prop, clone_disk.path)
+
     # Parse disk paths that need to be cloned from the original guest's xml
     # Return a tuple of lists:
-    # ([list of paths to clone], [size of those paths],
-    #  [file/block type of those paths], [indices of disks to be cloned])
+    # ([list of VirtualDisk instances of the source paths to clone]
+    #  [indices in the original xml of those disks])
     def _get_original_devices_info(self, xml):
 
         disks   = []
         lst     = []
-        idx_lst = []
 
-        doc = libxml2.parseDoc(xml)
-        ctx = doc.xpathNewContext()
-        try:
-            count = ctx.xpathEval("count(/domain/devices/disk)")
-            for i in range(1, int(count+1)):
-                # Check if the disk needs cloning
-                node = self._get_available_cloning_device(ctx, i,
-                                                          self._force_target)
-                if node == None:
-                    continue
-                idx_lst.append(i)
-                lst.append(node[0].get_properties().getContent())
-        finally:
-            if ctx is not None:
-                ctx.xpathFreeContext()
-            if doc is not None:
-                doc.freeDoc()
+        count = _util.get_xml_path(xml, "count(/domain/devices/disk)")
+        for i in range(1, int(count+1)):
+            # Check if the disk needs cloning
+            (path, target) = self._do_we_clone_device(xml, i)
+            if target == None:
+                continue
+            lst.append((path, target))
 
         # Set up virtual disk to encapsulate all relevant path info
-        for path in lst:
+        for path, target in lst:
             d = None
             try:
-                try:
-                    d = VirtualDisk(path, conn=self._hyper_conn)
-                except:
-                    # Let's specify a size, and see if the error goes away.
-                    # If so, we know the media doesn't exist
-                    d = VirtualDisk(path, conn=self._hyper_conn, size=.0001)
+                if (path and
+                    not VirtualDisk.path_exists(self._hyper_conn, path)):
                     raise ValueError(_("Disk '%s' does not exist.") %
-                                     d.path)
+                                     path)
+
+                device = VirtualDisk.DEVICE_DISK
+                if not path:
+                    # Tell VirtualDisk we are a cdrom to allow empty media
+                    device = VirtualDisk.DEVICE_CDROM
+
+                d = VirtualDisk(path, conn=self._hyper_conn, device=device)
+                d.target = target
             except Exception, e:
                 raise ValueError(_("Could not determine original disk "
                                    "information: %s" % str(e)))
             disks.append(d)
 
-        return (disks, idx_lst)
-
-    # Pull disk #i from the original guest xml, return it's xml
-    # if it should be cloned (skips readonly, empty, or sharable disks
-    # unless its target is in the 'force' list)
-    def _get_available_cloning_device(self, ctx, i, force):
-
-        node = None
-        force_flg = False
-
-        node = ctx.xpathEval("/domain/devices/disk[%d]/source" % i)
-        # If there is no media path, ignore
-        if len(node) == 0:
-            return None
-
-        target = ctx.xpathEval("/domain/devices/disk[%d]/target/@dev" % i)
-        target = target[0].getContent()
-
-        for f_target in force:
-            if target == f_target:
-                force_flg = True
-
-        # Skip readonly disks unless forced
-        ro = ctx.xpathEval("/domain/devices/disk[%d]/readonly" % i)
-        if len(ro) != 0 and force_flg == False:
-            return None
-        # Skip sharable disks unless forced
-        share = ctx.xpathEval("/domain/devices/disk[%d]/shareable" % i) 
-        if len(share) != 0 and force_flg == False:
-            return None
-
-        return node
-
-    # Check if original disk type (file/block) is different from
-    # requested clones disk type, and alter xml if needed
-    def _change_disk_type(self, org_type, cln_type, dev_idx, ctx):
-
-        disk_type = ctx.xpathEval("/domain/devices/disk[%d]/@type" % dev_idx)
-        driv_name = ctx.xpathEval("/domain/devices/disk[%d]/driver/@name" %
-                                  dev_idx)
-        src = ctx.xpathEval("/domain/devices/disk[%d]/source" % dev_idx)
-        src_chid_txt = src[0].get_properties().getContent()
-
-        # different type
-        if org_type != cln_type:
-            if org_type == True:
-                # changing from file to disk
-                typ, driv, newprop = ("block", "phy", "dev")
-            else:
-                # changing from disk to file
-                typ, driv, newprop = ("file", "file", "file")
+        return disks
+
+    # Pull disk #i from the original guest xml, return it's source path
+    # if it should be cloned
+    # Cloning policy based on 'clone_policy', 'force_target' and 'skip_target'
+    def _do_we_clone_device(self, xml, i):
+        base_path = "/domain/devices/disk[%d]" % i
+        source  = _util.get_xml_path(xml, "%s/source/@dev | %s/source/@file" %
+                                     (base_path, base_path))
+        target  = _util.get_xml_path(xml, base_path + "/target/@dev")
+        ro      = _util.get_xml_path(xml, "count(%s/readonly)" % base_path)
+        share   = _util.get_xml_path(xml, "count(%s/shareable)" % base_path)
+
+        if not target:
+            raise ValueError("XML has no 'dev' attribute in disk target")
+
+        if target in self.skip_target:
+            return (None, None)
+
+        if target in self.force_target:
+            return (source, target)
+
+        # No media path
+        if not source and self.CLONE_POLICY_NO_EMPTYMEDIA in self.clone_policy:
+            return (None, None)
+
+        # Readonly disks
+        if ro and self.CLONE_POLICY_NO_READONLY in self.clone_policy:
+            return (None, None)
 
-            disk_type[0].setContent(typ)
-            if driv_name:
-                driv_name[0].setContent(driv)
-            src[0].get_properties().unlinkNode()
-            src[0].newProp(newprop, src_chid_txt)
+        # Shareable disks
+        if share and self.CLONE_POLICY_NO_SHAREABLE in self.clone_policy:
+            return (None, None)
 
+        return (source, target)
 
     # Simple wrapper for checking a vm exists and returning the domain
     def _lookup_vm(self, name):
@@ -482,6 +621,9 @@ def start_duplicate(design, meter=None):
 
     logging.debug("Starting duplicate.")
 
+    if not meter:
+        meter = progress.BaseMeter()
+
     dom = None
     try:
         # Define domain first so we can catch any xml errors before duplicating
@@ -499,139 +641,20 @@ def start_duplicate(design, meter=None):
 
     logging.debug("Duplicating finished.")
 
-def _vdisk_clone(path, clone):
-    logging.debug("Using vdisk clone.")
-
-    path = os.path.expanduser(path)
-    clone = os.path.expanduser(clone)
-    try:
-        rc = subprocess.call([ '/usr/sbin/vdiskadm', 'clone', path, clone ])
-        return rc == 0
-    except OSError:
-        return False
-
 # Iterate over the list of disks, and clone them using the appropriate
 # clone method
 def _do_duplicate(design, meter):
 
-    IS_UNKNOWN = 0
-    IS_LOCAL = 1
-    IS_VDISK = 2
-
-    dst_dev_iter = iter(design.clone_virtual_disks)
-
-    clone_type_dict = {}
-
-    # First loop over the devices, validate we can clone them, and
-    # determine what clone operation to use
-    for src_dev in design.original_virtual_disks:
-        dst_dev = dst_dev_iter.next()
-        src_path = src_dev.path
-        dst_path = dst_dev.path
-
-        clone_type = IS_UNKNOWN
-
-        if (_util.is_vdisk(src_path) or
-            (os.path.exists(dst_path) and _util.is_vdisk(dst_path))):
-
-            if (not _util.is_vdisk(src_path) or
-                os.path.exists(dst_path)):
-                raise RuntimeError, _("copying to an existing vdisk is not"
-                                      " supported")
-            clone_type = IS_VDISK
-
-        else:
-            clone_type = IS_LOCAL
-
-        if clone_type == IS_UNKNOWN:
-            raise RuntimeError(_("Could not determine storage type for '%s'")
-                               % src_path)
-        clone_type_dict[src_path] = clone_type
-
-
-    dst_dev_iter = iter(design.clone_virtual_disks)
-    dst_siz_iter = iter(design.original_devices_size)
-
     # Now actually do the cloning
-    for src_dev in design.original_virtual_disks:
-        src_path = src_dev.path
-        dst_dev = dst_dev_iter.next()
-        dst_path = dst_dev.path
-        dst_siz = int(dst_siz_iter.next() * 1024 * 1024 * 1024)
-
-        clone_type = clone_type_dict[src_path]
-
-        if src_path == "/dev/null":
+    for dst_dev in design.clone_virtual_disks:
+        if dst_dev.clone_path == "/dev/null":
             # Not really sure why this check was here, but keeping for compat
             logging.debug("Source dev was /dev/null. Skipping")
             continue
-        elif src_path == dst_path:
+        elif dst_dev.clone_path == dst_dev.path:
             logging.debug("Source and destination are the same. Skipping.")
             continue
 
-        if meter:
-            meter.start(size=dst_siz,
-                        text=_("Cloning %(srcfile)s") % {'srcfile' : src_path})
-
-        if clone_type == IS_LOCAL:
-            _local_clone(src_path, dst_path, dst_siz, design, meter)
-
-        elif clone_type == IS_VDISK:
-            if not _vdisk_clone(src_path, dst_path):
-                raise RuntimeError, _("failed to clone disk")
-            if meter:
-                meter.end(dst_siz)
-
+        # VirtualDisk.setup handles everything
+        dst_dev.setup(meter)
 
-def _local_clone(src_dev, dst_dev, dst_siz, design, meter=None):
-
-    # if a destination file exists and sparse flg is True,
-    # this priority takes a existing file.
-    if (os.path.exists(dst_dev) == False and design.clone_sparse == True):
-        clone_block_size = 4096
-        sparse = True
-        try:
-            fd = os.open(dst_dev, os.O_WRONLY | os.O_CREAT)
-            os.ftruncate(fd, dst_siz)
-        finally:
-            os.close(fd)
-    else:
-        clone_block_size = 1024*1024*10
-        sparse = False
-
-    logging.debug("Local Cloning %s to %s, sparse=%s, block_size=%s" %
-                  (src_dev, dst_dev, sparse, clone_block_size))
-
-    zeros = '\0' * 4096
-
-    try:
-        src_fd = os.open(src_dev, os.O_RDONLY)
-        dst_fd = os.open(dst_dev, os.O_WRONLY | os.O_CREAT)
-
-        i=0
-        while 1:
-            l = os.read(src_fd, clone_block_size)
-            s = len(l)
-            if s == 0:
-                if meter:
-                    meter.end(dst_siz)
-                break
-            # check sequence of zeros
-            if sparse and zeros == l:
-                os.lseek(dst_fd, s, 1)
-            else:
-                b = os.write(dst_fd, l)
-                if s != b:
-                    if meter:
-                        meter.end(i)
-                    break
-            i += s
-            if i < dst_siz:
-                if meter:
-                    meter.update(i)
-
-    finally:
-        if src_fd is not None:
-            os.close(src_fd)
-        if dst_fd is not None:
-            os.close(dst_fd)
diff --git a/virtinst/DistroInstaller.py b/virtinst/DistroInstaller.py
index 75c6bec..fe4677d 100644
--- a/virtinst/DistroInstaller.py
+++ b/virtinst/DistroInstaller.py
@@ -28,12 +28,18 @@ import OSDistro
 
 from virtinst import _virtinst as _
 
-def _is_url(url):
+def _is_url(url, is_local):
     """
     Check if passed string is a (psuedo) valid http, ftp, or nfs url.
     """
-    return (url.startswith("http://") or url.startswith("ftp://") or \
-            url.startswith("nfs:")) and not os.path.exists(url)
+    if is_local and os.path.exists(url):
+        if os.path.isdir(url):
+            return True
+        else:
+            return False
+
+    return (url.startswith("http://") or url.startswith("ftp://") or
+            url.startswith("nfs:"))
 
 def _sanitize_url(url):
     """
@@ -87,6 +93,8 @@ class DistroInstaller(Installer.Installer):
         is_tuple = False
         validated = True
         self._location_is_path = True
+        is_local = (not self.conn or
+                    not _util.is_uri_remote(self.conn.getURI()))
 
         # Basic validation
         if type(val) is not str and (type(val) is not tuple and len(val) != 2):
@@ -100,13 +108,12 @@ class DistroInstaller(Installer.Installer):
                                    " a storage tuple."))
             is_tuple = True
 
-        elif _is_url(val):
+        elif _is_url(val, is_local):
             val = _sanitize_url(val)
             self._location_is_path = False
             logging.debug("DistroInstaller location is a network source.")
 
-        elif os.path.exists(os.path.abspath(val)) \
-             and (not self.conn or not _util.is_uri_remote(self.conn.getURI())):
+        elif os.path.exists(os.path.abspath(val)) and is_local:
             val = os.path.abspath(val)
             logging.debug("DistroInstaller location is a local "
                           "file/path: %s" % val)
@@ -115,20 +122,23 @@ class DistroInstaller(Installer.Installer):
             # Didn't determine anything about the location
             validated = False
 
-
-        if is_tuple or (validated == False and self.conn and
-                        _util.is_storage_capable(self.conn)):
+        if self._location_is_path or (validated == False and self.conn and
+                                      _util.is_storage_capable(self.conn)):
             # If user passed a storage tuple, OR
             # We couldn't determine the location type and a storage capable
             #   connection was passed:
             # Pass the parameters off to VirtualDisk to validate, and pull
             # out the path
             stuple = (is_tuple and val) or None
-            path = (not validated and val) or None
+            path = (not is_tuple and val) or None
 
             try:
-                d = VirtualDisk(path=path, device=VirtualDisk.DEVICE_CDROM,
-                                conn=self.conn, volName=stuple)
+                d = VirtualDisk(path=path,
+                                device=VirtualDisk.DEVICE_CDROM,
+                                transient=True,
+                                readOnly=True,
+                                conn=self.conn,
+                                volName=stuple)
                 val = d.path
             except Exception, e:
                 logging.debug(str(e))
@@ -158,8 +168,10 @@ class DistroInstaller(Installer.Installer):
                                              scratchdir = self.scratchdir,
                                              distro = distro)
             self._tmpfiles.append(cdrom)
+        else:
+            cdrom = self.location
 
-        self._install_disk = VirtualDisk(path=self.location,
+        self._install_disk = VirtualDisk(path=cdrom,
                                          conn=guest.conn,
                                          device=VirtualDisk.DEVICE_CDROM,
                                          readOnly=True,
@@ -196,7 +208,8 @@ class DistroInstaller(Installer.Installer):
             self.install["extraargs"] = args
 
             self._tmpfiles.append(kernelfn)
-            self._tmpfiles.append(initrdfn)
+            if initrdfn:
+                self._tmpfiles.append(initrdfn)
 
         # If they're installing off a local file/device, we map it
         # through to a virtual CD or disk
diff --git a/virtinst/FullVirtGuest.py b/virtinst/FullVirtGuest.py
index 8dc2b0a..d88d0dd 100644
--- a/virtinst/FullVirtGuest.py
+++ b/virtinst/FullVirtGuest.py
@@ -23,7 +23,9 @@ import _util
 import DistroInstaller
 
 from Guest import Guest
-from VirtualDisk import VirtualDisk
+from VirtualDevice import VirtualDevice
+from VirtualInputDevice import VirtualInputDevice
+from VirtualCharDevice import VirtualCharDevice
 
 class FullVirtGuest(Guest):
 
@@ -34,7 +36,10 @@ class FullVirtGuest(Guest):
                                                         os_type = "hvm",
                                                         conn=connection)
         Guest.__init__(self, type, connection, hypervisorURI, installer)
+
         self.disknode = "hd"
+        self._diskbus = "ide"
+
         self.features = { "acpi": None, "pae":
             _util.is_pae_capable(self.conn), "apic": None }
 
@@ -80,7 +85,10 @@ class FullVirtGuest(Guest):
     def _get_input_device(self):
         typ = self._lookup_device_param("input", "type")
         bus = self._lookup_device_param("input", "bus")
-        return (typ, bus)
+        dev = VirtualInputDevice(self.conn)
+        dev.type = typ
+        dev.bus = bus
+        return dev
 
     def _get_features_xml(self):
         ret = "  <features>\n"
@@ -103,48 +111,28 @@ class FullVirtGuest(Guest):
         if self.emulator is not None:
             emu_xml = "    <emulator>%s</emulator>\n" % self.emulator
 
-        return (emu_xml +
-                """    <console type='pty'/>\n""" +
-                Guest._get_device_xml(self, install))
-
-    def _get_disk_xml(self, install = True):
-        """Get the disk config in the libvirt XML format"""
-        ret = ""
-        used_targets = []
-        for disk in self._install_disks:
-            if not disk.bus:
-                disk.bus = "ide"
-            used_targets.append(disk.generate_target(used_targets))
-
-        for d in self._install_disks:
-            saved_path = None
-            if d.device == VirtualDisk.DEVICE_CDROM \
-               and d.transient and not install:
-                # Keep cdrom around, but with no media attached
-                # But only if we are a distro that doesn't have a multi
-                # stage install (aka not Windows)
-                saved_path = d.path
-                if not self.get_continue_inst():
-                    d.path = None
-
-            if ret:
-                ret += "\n"
-            ret += d.get_xml_config(d.target)
-            if saved_path != None:
-                d.path = saved_path
-
-        return ret
+        return (emu_xml + Guest._get_device_xml(self, install))
 
     def _set_defaults(self):
-        Guest._set_defaults(self)
-
         disk_bus  = self._lookup_device_param("disk", "bus")
         net_model = self._lookup_device_param("net", "model")
 
         # Only overwrite params if they weren't already specified
-        for net in self._install_nics:
+        for net in self._get_install_devs(VirtualDevice.VIRTUAL_DEV_NET):
             if net_model and not net.model:
                 net.model = net_model
-        for disk in self._install_disks:
+        for disk in self._get_install_devs(VirtualDevice.VIRTUAL_DEV_DISK):
             if disk_bus and not disk.bus:
                 disk.bus = disk_bus
+
+        # If no serial devices were attached to the guest, stick the default
+        # console device in.
+        if (not self._get_install_devs(VirtualDevice.VIRTUAL_DEV_SERIAL) and
+            not self._get_install_devs(VirtualDevice.VIRTUAL_DEV_CONSOLE)):
+            dev = VirtualCharDevice.get_dev_instance(self.conn,
+                                                     VirtualCharDevice.DEV_CONSOLE,
+                                                     VirtualCharDevice.CHAR_PTY)
+            self._add_install_dev(dev)
+
+        # Run this last, so we get first crack at disk attributes
+        Guest._set_defaults(self)
diff --git a/virtinst/Guest.py b/virtinst/Guest.py
index ade6d18..958230e 100644
--- a/virtinst/Guest.py
+++ b/virtinst/Guest.py
@@ -27,6 +27,8 @@ import _util
 import libvirt
 import CapabilitiesParser
 import VirtualGraphics
+from VirtualDevice import VirtualDevice
+from VirtualDisk import VirtualDisk
 
 import osdict
 from virtinst import _virtinst as _
@@ -75,15 +77,18 @@ class Guest(object):
         self._os_type = None
         self._os_variant = None
 
-        # Public device lists unaltered by install process
+        # DEPRECATED: Public device lists unaltered by install process
         self.disks = []
         self.nics = []
         self.sound_devs = []
         self.hostdevs = []
 
-        # Device lists to use/alter during install process
-        self._install_disks = []
-        self._install_nics = []
+        # General device list. Only access through API calls (even internally)
+        self._devices = []
+
+        # Device list to use/alter during install process. Don't access
+        # directly, use internal APIs
+        self._install_devices = []
 
         # The libvirt virDomain object we 'Create'
         self.domain = None
@@ -91,6 +96,9 @@ class Guest(object):
         # Default disk target prefix ('hd' or 'xvd'). Set in subclass
         self.disknode = None
 
+        # Default bus for disks (set in subclass)
+        self._diskbus = None
+
         self.conn = connection
         if self.conn == None:
             logging.debug("No conn passed to Guest, opening URI '%s'" % \
@@ -188,9 +196,11 @@ class Guest(object):
                     raise ValueError, _("cpuset's pCPU numbers must be less "
                                         "than pCPUs.")
             else:
-                if int(c) >= pcpus:
-                    raise ValueError, _("cpuset's pCPU numbers must be less "
-                                        "than pCPUs.")
+                if len(c) > 0:
+                    val = int(c)
+                    if val >= pcpus:
+                        raise ValueError, _("cpuset's pCPU numbers must be less "
+                                            "than pCPUs.")
         self._cpuset = val
     cpuset = property(get_cpuset, set_cpuset)
 
@@ -383,57 +393,134 @@ class Guest(object):
     # END DEPRECATED PROPERTIES
 
 
-    # Private xml building methods
+    # Device Add/Remove Public API methods
 
-    def _get_disk_xml(self, install=True):
-        """Return xml for disk devices (Must be implemented in subclass)"""
-        raise NotImplementedError
+    def _dev_build_list(self, devtype, devlist=None):
+        if not devlist:
+            devlist = self._devices
 
-    def _get_network_xml(self):
-        """Get the network config in the libvirt XML format"""
-        xml = ""
-        for n in self._install_nics:
-            xml = _util.xml_append(xml, n.get_xml_config())
-        return xml
+        newlist = []
+        for i in devlist:
+            if i.virtual_device_type == devtype:
+                newlist.append(i)
+        return newlist
 
-    def _get_graphics_xml(self):
-        """Get the graphics config in the libvirt XML format."""
-        if self._graphics_dev is None:
-            return ""
-        return self._graphics_dev.get_xml_config()
+    def add_device(self, dev):
+        """
+        Add the passed device to the guest's device list.
+
+        @param dev: VirtualDevice instance to attach to guest
+        """
+        if not isinstance(dev, VirtualDevice):
+            raise ValueError(_("Must pass a VirtualDevice instance."))
+        devtype = dev.virtual_device_type
+
+        if   devtype == VirtualDevice.VIRTUAL_DEV_DISK:
+            self.disks.append(dev)
+        elif devtype == VirtualDevice.VIRTUAL_DEV_NET:
+            self.nics.append(dev)
+        elif devtype == VirtualDevice.VIRTUAL_DEV_AUDIO:
+            self.sound_devs.append(dev)
+        elif devtype == VirtualDevice.VIRTUAL_DEV_GRAPHICS:
+            self._graphics_dev = dev
+        elif devtype == VirtualDevice.VIRTUAL_DEV_HOSTDEV:
+            self.hostdevs.append(dev)
+        else:
+            self._devices.append(dev)
+
+    def get_devices(self, devtype):
+        """
+        Return a list of devices of type 'devtype' that will installed on
+        the guest.
+
+        @param devtype: Device type to search for (one of
+                        VirtualDevice.virtual_device_types)
+        """
+        if   devtype == VirtualDevice.VIRTUAL_DEV_DISK:
+            return self.disks[:]
+        elif devtype == VirtualDevice.VIRTUAL_DEV_NET:
+            return self.nics[:]
+        elif devtype == VirtualDevice.VIRTUAL_DEV_AUDIO:
+            return self.sound_devs[:]
+        elif devtype == VirtualDevice.VIRTUAL_DEV_GRAPHICS:
+            return self._graphics_dev and [self._graphics_dev] or []
+        elif devtype == VirtualDevice.VIRTUAL_DEV_HOSTDEV:
+            return self.hostdevs[:]
+        else:
+            return self._dev_build_list(devtype)
+
+    def get_all_devices(self):
+        """
+        Return a list of all devices being installed with the guest
+        """
+        retlist = []
+        for devtype in VirtualDevice.virtual_device_types:
+            retlist.extend(self.get_devices(devtype))
+        return retlist
+
+    def remove_device(self, dev):
+        """
+        Remove the passed device from the guest's device list
+
+        @param dev: VirtualDevice instance
+        """
+        if dev == self._graphics_dev:
+            self._graphics_dev = None
+
+        for devlist in [self.disks, self.nics, self.sound_devs, self.hostdevs,
+                        self._devices]:
+            if dev in devlist:
+                devlist.remove(dev)
+
+    # Device fetching functions used internally during the install process.
+    # These allow us to change dev defaults, add install media, etc. during
+    # the install, but revert to a clean state if the install fails
+    def _init_install_devs(self):
+        self._install_devices = self.get_all_devices()[:]
+
+    def _get_install_devs(self, devtype):
+        return self._dev_build_list(devtype, self._install_devices)
+
+    def _add_install_dev(self, dev):
+        self._install_devices.append(dev)
+
+    def _get_all_install_devs(self):
+        retlist = []
+        for devtype in VirtualDevice.virtual_device_types:
+            retlist.extend(self._get_install_devs(devtype))
+        return retlist
+
+    # Private xml building methods
 
     def _get_input_device(self):
         """ Return a tuple of the form (devtype, bus) for the desired
             input device. (Must be implemented in subclass) """
         raise NotImplementedError
 
-    def _get_input_xml(self):
-        """Get the input device config in libvirt XML format."""
-        (devtype, bus) = self._get_input_device()
-        return "    <input type='%s' bus='%s'/>" % (devtype, bus)
-
-    def _get_sound_xml(self):
-        """Get the sound device configuration in libvirt XML format."""
-        xml = ""
-        for sound_dev in self.sound_devs:
-            xml = _util.xml_append(xml, sound_dev.get_xml_config())
-        return xml
-
-    def _get_hostdev_xml(self):
-        xml = ""
-        for hostdev in self.hostdevs:
-            xml = _util.xml_append(xml, hostdev.get_xml_config())
-        return xml
-
     def _get_device_xml(self, install=True):
+        change_disks = []
+        for d in self._get_install_devs(VirtualDevice.VIRTUAL_DEV_DISK):
+            if (d.device == VirtualDisk.DEVICE_CDROM
+                and d.transient
+                and not install):
+                # Keep cdrom around, but with no media attached,
+                # But only if we are a distro that doesn't have a multi
+                # stage install (aka not Windows)
+                if not self.get_continue_inst():
+                    change_disks.append((d, d.path))
+                    d.path = None
+
         xml = ""
+        try:
+            for dev in self._get_all_install_devs():
+                xml = _util.xml_append(xml, dev.get_xml_config())
+        finally:
+            try:
+                for disk, path in change_disks:
+                    disk.path = path
+            except:
+                pass
 
-        xml = _util.xml_append(xml, self._get_disk_xml(install))
-        xml = _util.xml_append(xml, self._get_network_xml())
-        xml = _util.xml_append(xml, self._get_input_xml())
-        xml = _util.xml_append(xml, self._get_graphics_xml())
-        xml = _util.xml_append(xml, self._get_sound_xml())
-        xml = _util.xml_append(xml, self._get_hostdev_xml())
         return xml
 
     def _get_features_xml(self):
@@ -586,22 +673,28 @@ class Guest(object):
 
 
     def _prepare_install(self, meter):
-        self._install_disks = self.disks[:]
-        self._install_nics = self.nics[:]
-        self._set_defaults()
+        self._init_install_devs()
 
         self._installer.prepare(guest = self,
                                 meter = meter)
         if self._installer.install_disk is not None:
-            self._install_disks.append(self._installer.install_disk)
+            self._add_install_dev(self._installer.install_disk)
+
+        # Run 'set_defaults' after install prep, since some installers
+        # (ImageInstaller) alter the device list.
+        self._set_defaults()
+
+        # Only set up an input device if there isn't already preset
+        if not self._get_install_devs(VirtualDevice.VIRTUAL_DEV_INPUT):
+            self._add_install_dev(self._get_input_device())
 
     def _create_devices(self, progresscb):
         """Ensure that devices are setup"""
-        for disk in self._install_disks:
+        for disk in self._get_install_devs(VirtualDevice.VIRTUAL_DEV_DISK):
             disk.setup(progresscb)
-        for nic in self._install_nics:
+        for nic in self._get_install_devs(VirtualDevice.VIRTUAL_DEV_NET):
             nic.setup(self.conn)
-        for hostdev in self.hostdevs:
+        for hostdev in self._get_install_devs(VirtualDevice.VIRTUAL_DEV_HOSTDEV):
             hostdev.setup()
 
     def _do_install(self, consolecb, meter, removeOld=False, wait=True):
@@ -696,6 +789,15 @@ class Guest(object):
             raise RuntimeError, _("Domain has already been started!")
 
     def _set_defaults(self):
+        used_targets = []
+        for disk in self._get_install_devs(VirtualDevice.VIRTUAL_DEV_DISK):
+            if not disk.bus:
+                if disk.device == disk.DEVICE_FLOPPY:
+                    disk.bus = "fdc"
+                else:
+                    disk.bus = self._diskbus
+            used_targets.append(disk.generate_target(used_targets))
+
         if self.uuid is None:
             while 1:
                 self.uuid = _util.uuidToString(_util.randomUUID())
@@ -716,38 +818,23 @@ class Guest(object):
         Using self.os_type and self.os_variant to find key in OSTYPES
         @returns: dict value, or None if os_type/variant wasn't set
         """
-        typ = self.os_type
-        var = self.os_variant
-        if typ:
-            if var and self._OS_TYPES[typ]["variants"][var].has_key(key):
-                return self._OS_TYPES[typ]["variants"][var][key]
-            elif self._OS_TYPES[typ].has_key(key):
-                return self._OS_TYPES[typ][key]
-        return self._DEFAULTS[key]
+        return osdict.lookup_osdict_key(self.conn, self.type, self.os_type,
+                                        self.os_variant, key)
 
     def _lookup_device_param(self, device_key, param):
         """
         Check the OS dictionary for the prefered device setting for passed
         device type and param (bus, model, etc.)
         """
-        os_devs = self._lookup_osdict_key("devices")
-        default_devs = self._DEFAULTS["devices"]
-        for devs in [os_devs, default_devs]:
-            if not devs.has_key(device_key):
-                continue
-            for ent in devs[device_key][param]:
-                hv_types = ent[0]
-                param_value = ent[1]
-                if self.type in hv_types:
-                    return param_value
-                elif "all" in hv_types:
-                    return param_value
-        raise RuntimeError(_("Invalid dictionary entry for device '%s %s'" % \
-                             (device_key, param)))
+        return osdict.lookup_device_param(self.conn, self.type, self.os_type,
+                                          self.os_variant, device_key, param)
 
     def terminate_console(self):
         if self._consolechild:
-            os.kill(self._consolechild, signal.SIGKILL)
+            try:
+                os.kill(self._consolechild, signal.SIGKILL)
+            except:
+                pass
 
 def _wait_for_domain(conn, name):
     # sleep in .25 second increments until either a) we get running
diff --git a/virtinst/ImageManager.py b/virtinst/ImageManager.py
index 8e6dacf..889c8c8 100644
--- a/virtinst/ImageManager.py
+++ b/virtinst/ImageManager.py
@@ -154,7 +154,7 @@ class ImageInstaller(Installer.Installer):
                 d.driver_name = VirtualDisk.DRIVER_TAP
             d.target = m.target
 
-            guest._install_disks.append(d)
+            guest._add_install_dev(d)
 
     def _abspath(self, p):
         return self.image.abspath(p)
diff --git a/virtinst/ImageParser.py b/virtinst/ImageParser.py
index 65d2619..8c67cfc 100644
--- a/virtinst/ImageParser.py
+++ b/virtinst/ImageParser.py
@@ -240,13 +240,7 @@ class Disk:
             import sha
             has_hashlib = False
 
-        meter_ct = 0
         m = None
-        disk_size = os.path.getsize(self.file)
-        if meter:
-            meter.start(size=disk_size,
-                        text=_("Checking disk signature for %s" % self.file))
-
         if has_hashlib is True:
             if self.csum.has_key("sha256"):
                 csumvalue = self.csum["sha256"]
@@ -262,6 +256,12 @@ class Disk:
         if not m:
             return
 
+        meter_ct = 0
+        disk_size = os.path.getsize(self.file)
+        if meter:
+            meter.start(size=disk_size,
+                        text=_("Checking disk signature for %s" % self.file))
+
         f = open(self.file,"r")
         while 1:
             chunk = f.read(65536)
diff --git a/virtinst/Installer.py b/virtinst/Installer.py
index 43def2a..22d3fa7 100644
--- a/virtinst/Installer.py
+++ b/virtinst/Installer.py
@@ -136,12 +136,17 @@ class Installer(object):
     def get_scratchdir(self):
         if platform.system() == 'SunOS':
             return '/var/tmp'
-        if self.type == "xen" and os.path.exists(XEN_SCRATCH):
-            return XEN_SCRATCH
-        if os.geteuid() == 0 and os.path.exists(LIBVIRT_SCRATCH):
-            return LIBVIRT_SCRATCH
+        if os.geteuid() == 0:
+            if self.type == "xen" and os.path.exists(XEN_SCRATCH):
+                return XEN_SCRATCH
+            if os.path.exists(LIBVIRT_SCRATCH):
+                return LIBVIRT_SCRATCH
         else:
-            return os.path.expanduser("~/.virtinst/boot")
+            scratch = os.path.expanduser("~/.virtinst/boot")
+            if not os.path.exists(scratch):
+                os.makedirs(scratch, 0750)
+            _util.selinux_restorecon(scratch)
+            return scratch
     scratchdir = property(get_scratchdir)
 
     def get_cdrom(self):
diff --git a/virtinst/NodeDeviceParser.py b/virtinst/NodeDeviceParser.py
index 9e91027..4360f89 100644
--- a/virtinst/NodeDeviceParser.py
+++ b/virtinst/NodeDeviceParser.py
@@ -405,10 +405,11 @@ def is_pci_detach_capable(conn):
     if not isinstance(conn, libvirt.virConnect):
         raise ValueError(_("'conn' must be a virConnect instance."))
 
-    if dir(libvirt).count("virNodeDeviceDettach") == 0:
-        return False
+    if (hasattr(libvirt, "virNodeDevice") and
+        hasattr(libvirt.virNodeDevice, "dettach")):
+        return True
 
-    return True
+    return False
 
 def lookupNodeName(conn, name):
     """
diff --git a/virtinst/OSDistro.py b/virtinst/OSDistro.py
index 5fcc93c..9d02ea6 100644
--- a/virtinst/OSDistro.py
+++ b/virtinst/OSDistro.py
@@ -28,6 +28,7 @@ import socket
 import ConfigParser
 
 import virtinst
+from virtinst.Guest import Guest
 from virtinst import _util
 from virtinst import _virtinst as _
 
@@ -86,6 +87,8 @@ def _storeForDistro(fetcher, baseuri, typ, progresscb, arch, distro=None,
         stores.append(SolarisDistro)
     if distro == "solaris" or distro is None:
         stores.append(OpenSolarisDistro)
+    if distro == "netware" or distro is None:
+        stores.append(NetWareDistro)
 
     stores.append(GenericDistro)
 
@@ -116,8 +119,9 @@ def _acquireMedia(iskernel, guest, baseuri, progresscb, arch,
         if iskernel is True:
             # FIXME: We should probably do this for both kernel and boot
             # disk?
+            os_type, os_variant = store.get_osdict_info()
             return (store.acquireKernel(guest, fetcher, progresscb),
-                    store.os_type, store.os_variant)
+                    os_type, os_variant)
         elif iskernel is False:
             return store.acquireBootDisk(fetcher, progresscb)
         else:
@@ -143,7 +147,7 @@ def detectMediaDistro(location, arch):
     import urlgrabber
     progress = urlgrabber.progress.BaseMeter()
     store = _acquireMedia(None, None, location, progress, arch, "/var/tmp")
-    return (store.os_type, store.os_variant)
+    return store.get_osdict_info()
 
 
 def distroFromTreeinfo(fetcher, progresscb, uri, arch, vmtype=None,
@@ -160,7 +164,10 @@ def distroFromTreeinfo(fetcher, progresscb, uri, arch, vmtype=None,
     finally:
         os.unlink(tmptreeinfo)
 
-    fam = treeinfo.get("general", "family")
+    try:
+        fam = treeinfo.get("general", "family")
+    except ConfigParser.NoSectionError:
+        return None
 
     if re.match(".*Fedora.*", fam):
         dclass = FedoraDistro
@@ -236,7 +243,8 @@ class Distro:
 
     def acquireBootDisk(self, fetcher, progresscb):
         if self._hasTreeinfo(fetcher, progresscb):
-            return fetcher.acquireFile(self._getTreeinfoMedia("boot.iso"))
+            return fetcher.acquireFile(self._getTreeinfoMedia("boot.iso"),
+                                       progresscb)
         else:
             for path in self._boot_iso_paths:
                 if fetcher.hasFile(path):
@@ -244,6 +252,28 @@ class Distro:
             raise RuntimeError(_("Could not find boot.iso in %s tree." % \
                                self.name))
 
+    def get_osdict_info(self):
+        """
+        Return (distro, variant) tuple, checking to make sure they are valid
+        osdict entries
+        """
+        if not self.os_type:
+            return (None, None)
+
+        if self.os_type not in Guest.list_os_types():
+            logging.debug("%s set os_type to %s, which is not in osdict." %
+                          (self, self.os_type))
+            return (None, None)
+
+        if (self.os_variant and
+            self.os_variant not in Guest.list_os_variants(self.os_type)):
+            logging.debug("%s set os_variant to %s, which is not in osdict"
+                          " for distro %s." %
+                          (self, self.os_variant, self.os_type))
+            return (self.os_type, None)
+
+        return (self.os_type, self.os_variant)
+
     def _hasTreeinfo(self, fetcher, progresscb):
         # all Red Hat based distros should have .treeinfo, perhaps others
         # will in time
@@ -427,7 +457,7 @@ class FedoraDistro(RedHatDistro):
                 if ver == "development":
                     self.os_variant = self._latestFedoraVariant()
                 elif ver:
-                    self.os_variant = "fedora" + str(ver)
+                    self.os_variant = "fedora" + (str(ver).split("-"))[0]
 
             return ret
         else:
@@ -1022,8 +1052,11 @@ class SolarisDistro(SunDistro):
                 self.initrdpath)
 
 class OpenSolarisDistro(SunDistro):
+
+    os_variant = "opensolaris"
+ 
     kernelpath = "platform/i86xpv/kernel/unix"
-    initrdpath = "boot/x86.microroot"
+    initrdpaths = [ "platform/i86pc/boot_archive", "boot/x86.microroot" ]
 
     def isValidStore(self, fetcher, progresscb):
         if fetcher.hasFile(self.kernelpath):
@@ -1042,7 +1075,7 @@ class OpenSolarisDistro(SunDistro):
 
         args = ''
         if kopts:
-            args += '-' + kopts
+            args += ' -' + kopts
         if kbargs:
             args += ' -B ' + kbargs
 
@@ -1059,9 +1092,31 @@ class OpenSolarisDistro(SunDistro):
         args = "/" + self.kernelpath + self.install_args(guest)
 
         try:
-            initrd = fetcher.acquireFile(self.initrdpath, progresscb)
+            initrd = fetcher.acquireFile(self.initrdpaths[0], progresscb)
             return (kernel, initrd, args)
-        except:
-            os.unlink(kernel)
-            raise RuntimeError(_("OpenSolaris microroot not found at %s") %
-                self.initrdpath)
+        except Exception, e:
+            try:
+                initrd = fetcher.acquireFile(self.initrdpaths[1], progresscb)
+                return (kernel, initrd, args)
+            except:
+                os.unlink(kernel)
+                raise Exception("No OpenSolaris boot archive found: %s\n" % e)
+
+
+# NetWare 6 PV
+class NetWareDistro(Distro):
+    name = "NetWare"
+    os_type = "other"
+    os_variant = "netware6"
+
+    loaderpath = "STARTUP/XNLOADER.SYS"
+
+    def isValidStore(self, fetcher, progresscb):
+        if fetcher.hasFile(self.loaderpath):
+            logging.debug("Detected NetWare")
+            return True
+        return False
+
+    def acquireKernel(self, guest, fetcher, progresscb):
+        loader = fetcher.acquireFile(self.loaderpath, progresscb)
+        return (loader, "", "")
diff --git a/virtinst/ParaVirtGuest.py b/virtinst/ParaVirtGuest.py
index f1e83ae..6b467ac 100644
--- a/virtinst/ParaVirtGuest.py
+++ b/virtinst/ParaVirtGuest.py
@@ -21,6 +21,10 @@
 
 from Guest import Guest
 from DistroInstaller import DistroInstaller
+from VirtualInputDevice import VirtualInputDevice
+from VirtualDevice import VirtualDevice
+from VirtualDisk import VirtualDisk
+import _util
 
 class ParaVirtGuest(Guest):
     def __init__(self, type=None, connection=None, hypervisorURI=None,
@@ -30,24 +34,20 @@ class ParaVirtGuest(Guest):
                                         conn=connection)
         Guest.__init__(self, type, connection, hypervisorURI, installer)
         self.disknode = "xvd"
+        self._diskbus = "xen"
 
     def _get_input_device(self):
-        return ("mouse", "xen")
+        dev = VirtualInputDevice(self.conn)
+        dev.type = "mouse"
+        dev.bus = "xen"
+        return dev
 
-    def _get_disk_xml(self, install = True):
-        """Get the disk config in the libvirt XML format"""
-        ret = ""
-        used_targets = []
-        for disk in self._install_disks:
-            if not disk.bus:
-                disk.bus = "xen"
-            used_targets.append(disk.generate_target(used_targets))
+    def _set_defaults(self):
+        # Default file backed PV guests to tap driver
+        for d in self._get_install_devs(VirtualDevice.VIRTUAL_DEV_DISK):
+            if (d.type == VirtualDisk.TYPE_FILE
+                and _util.is_blktap_capable()
+                and d.driver_name == None):
+                d.driver_name = VirtualDisk.DRIVER_TAP
 
-        for d in self._install_disks:
-            if d.transient and not install:
-                continue
-
-            if ret:
-                ret += "\n"
-            ret += d.get_xml_config(d.target)
-        return ret
+        Guest._set_defaults(self)
diff --git a/virtinst/Storage.py b/virtinst/Storage.py
index 911c606..b7dcc15 100644
--- a/virtinst/Storage.py
+++ b/virtinst/Storage.py
@@ -45,8 +45,9 @@ General workflow for the different storage objects:
 @see: U{http://libvirt.org/storage.html}
 """
 
-
 import libvirt
+import threading
+import time
 
 import logging
 from xml.sax.saxutils import escape
@@ -59,13 +60,8 @@ DEFAULT_LVM_TARGET_BASE = "/dev/"
 DEFAULT_DIR_TARGET_BASE = "/var/lib/libvirt/images/"
 DEFAULT_ISCSI_TARGET = "/dev/disk/by-path"
 
-# Pools:
-#   DirectoryPool         : A flat filesystem directory
-#   FilesystemPool        : A formatted partition
-#   NetworkFilesystemPool : NFS
-#   LogicalPool           : LVM Volume Group
-#   DiskPool              : Raw disk
-#   iSCSIPool             : iSCSI
+def is_create_vol_from_supported(ignore_conn):
+    return bool(dir(libvirt.virStoragePool).count("createXMLFrom"))
 
 class StorageObject(object):
     """
@@ -483,7 +479,7 @@ class NetworkFilesystemPool(StoragePool):
         return FileVolume
     get_volume_class = staticmethod(get_volume_class)
 
-    formats = [ "auto", "nfs" ]
+    formats = [ "auto", "nfs", "glusterfs"]
 
     # Register applicable property methods from parent class
     source_path = property(StoragePool.get_source_path,
@@ -548,11 +544,31 @@ class LogicalPool(StoragePool):
                            StoragePool.set_target_path,
                            doc=_("Location of the existing LVM volume group."))
 
-    def __init__(self, conn, name, target_path=None, uuid=None, perms=None):
+    def __init__(self, conn, name, target_path=None, uuid=None, perms=None,
+                 source_path=None):
         StoragePool.__init__(self, name=name, type=StoragePool.TYPE_LOGICAL,
                              target_path=target_path, uuid=uuid, conn=conn)
         if perms:
             self.perms = perms
+        if source_path:
+            self.source_path = source_path
+
+    # Need to overwrite storage path checks, since this optionally be a list
+    # of devices
+    def get_source_path(self):
+        return self._source_path
+    def set_source_path(self, val):
+        if not val:
+            self._source_path = None
+            return
+
+        if type(val) != list:
+            StoragePool.set_source_path(self, val)
+        else:
+            self._source_path = val
+    source_path = property(get_source_path, set_source_path,
+                           doc=_("Optional device(s) to build new LVM volume "
+                                 "on."))
 
     def _get_default_target_path(self):
         return DEFAULT_LVM_TARGET_BASE + self.name
@@ -563,12 +579,29 @@ class LogicalPool(StoragePool):
         return xml
 
     def _get_source_xml(self):
-        return ""
+        sources = self.source_path
+        if type(sources) != list:
+            sources = sources and [sources] or []
+
+        xml = ""
+        for s in sources:
+            xml += "    <device path='%s'/>\n" % s
+        return xml
+
+    def install(self, meter=None, create=False, build=False):
+        if build and not self.source_path:
+            raise ValueError(_("Must explicitly specify source path if "
+                               "building' pool"))
+        return StoragePool.install(self, meter=meter, create=create,
+                                   build=build)
 
 class DiskPool(StoragePool):
     """
     Create a storage pool from a physical disk
     """
+    def get_volume_class():
+        return DiskVolume
+    get_volume_class = staticmethod(get_volume_class)
 
     # Register applicable property methods from parent class
     source_path = property(StoragePool.get_source_path,
@@ -581,10 +614,6 @@ class DiskPool(StoragePool):
 
     formats = [ "auto", "bsd", "dos", "dvh", "gpt", "mac", "pc98", "sun" ]
 
-    def get_volume_class():
-        raise NotImplementedError(_("Disk volume creation is not implemented."))
-    get_volume_class = staticmethod(get_volume_class)
-
     def __init__(self, conn, name, source_path=None, target_path=None,
                  format="auto", uuid=None):
         StoragePool.__init__(self, name=name, type=StoragePool.TYPE_DISK,
@@ -687,8 +716,19 @@ class StorageVolume(StorageObject):
 
     formats = []
 
+    # File vs. Block for the Volume class
+    _file_type = None
+
     def __init__(self, name, capacity, conn=None, pool_name=None, pool=None,
                  allocation=0):
+        """
+        @param name: Name for the new storage volume
+        @param capacity: Total size of the new volume (in bytes)
+        @param conn: optional virConnect instance to lookup pool_name on
+        @param pool_name: optional pool_name to install on
+        @param pool: virStoragePool object to install on
+        @param allocation: amount of storage to actually allocate (default 0)
+        """
         if pool is None:
             if pool_name is None:
                 raise ValueError(_("One of pool or pool_name must be "
@@ -706,10 +746,15 @@ class StorageVolume(StorageObject):
         self._allocation = None
         self._capacity = None
         self._format = None
+        self._input_vol = None
 
         self.allocation = allocation
         self.capacity = capacity
 
+        # Indicate that the volume installation has finished. Used to
+        # definitively tell the storage progress thread to stop polling.
+        self._install_finished = True
+
     def get_volume_for_pool(pool_object=None, pool_name=None, conn=None):
         """
         Returns volume class associated with passed pool_object/name
@@ -743,17 +788,8 @@ class StorageVolume(StorageObject):
                                                         pool_name=pool_name,
                                                         conn=conn)
         pool_object.refresh(0)
-
-        for i in range(0, 100000):
-            tryname = name
-            if i != 0:
-                tryname += ("-%d" % i)
-            tryname += suffix
-            try:
-                pool_object.storageVolLookupByName(tryname)
-            except libvirt.libvirtError:
-                return tryname
-        raise ValueError(_("Default volume target path range exceeded."))
+        return _util.generate_name(name, pool_object.storageVolLookupByName,
+                                   suffix)
     find_free_name = staticmethod(find_free_name)
 
     def lookup_pool_by_name(pool_object=None, pool_name=None, conn=None):
@@ -783,8 +819,11 @@ class StorageVolume(StorageObject):
         return pool_object
     lookup_pool_by_name = staticmethod(lookup_pool_by_name)
 
-
     # Properties used by all volumes
+    def get_file_type(self):
+        return self._file_type
+    file_type = property(get_file_type)
+
     def get_capacity(self):
         return self._capacity
     def set_capacity(self, val):
@@ -836,6 +875,23 @@ class StorageVolume(StorageObject):
         self._pool = newpool
     pool = property(get_pool, set_pool)
 
+    def get_input_vol(self):
+        return self._input_vol
+    def set_input_vol(self, vol):
+        if vol is None:
+            self._input_vol = None
+            return
+
+        if not isinstance(vol, libvirt.virStorageVol):
+            raise ValueError(_("input_vol must be a virStorageVol"))
+        if not is_create_vol_from_supported(self.pool._conn):
+            raise ValueError(_("Creating storage from an existing volume is"
+                               " not supported by this libvirt version."))
+        self._input_vol = vol
+    input_vol = property(get_input_vol, set_input_vol,
+                         doc=_("virStorageVolume pointer to clone/use as "
+                               "input."))
+
     # Property functions used by more than one child class
     def get_format(self):
         return self._format
@@ -892,22 +948,65 @@ class StorageVolume(StorageObject):
         xml = self.get_xml_config()
         logging.debug("Creating storage volume '%s' with xml:\n%s" % \
                       (self.name, xml))
-        if meter:
-            #meter.start(size=self.capacity,
-            #            text=_("Creating storage volume..."))
-            # XXX: We don't have any meaningful way to update the meter
-            # XXX: throughout the operation, so just skip it
-            pass
+
+        t = threading.Thread(target=self._progress_thread,
+                             name="Checking storage allocation",
+                             args=(meter,))
+        t.setDaemon(True)
+
         try:
-            vol = self.pool.createXML(xml, 0)
-        except Exception, e:
-            raise RuntimeError("Couldn't create storage volume '%s': '%s'" %
-                               (self.name, str(e)))
-        if meter:
-            #meter.end(0)
-            pass
-        logging.debug("Storage volume '%s' install complete." % self.name)
-        return vol
+            try:
+                self._install_finished = False
+                t.start()
+                if meter:
+                    meter.start(size=self.allocation,
+                                text=_("Allocating '%s'") % self.name)
+
+                if self.input_vol:
+                    vol = self.pool.createXMLFrom(xml, self.input_vol, 0)
+                else:
+                    vol = self.pool.createXML(xml, 0)
+
+                if meter:
+                    meter.end(self.allocation)
+                logging.debug("Storage volume '%s' install complete." %
+                              self.name)
+                return vol
+            except Exception, e:
+                raise RuntimeError("Couldn't create storage volume "
+                                   "'%s': '%s'" % (self.name, str(e)))
+        finally:
+            self._install_finished = True
+
+    def _progress_thread(self, meter):
+        lookup_attempts = 10
+        vol = None
+
+        if not meter:
+            return
+
+        while lookup_attempts > 0:
+            try:
+                vol = self.pool.storageVolLookupByName(self.name)
+                break
+            except:
+                lookup_attempts -= 1
+                time.sleep(.2)
+                if self._install_finished:
+                    break
+                else:
+                    continue
+            break
+
+        if vol == None:
+            logging.debug("Couldn't lookup storage volume in prog thread.")
+            return
+
+        while not self._install_finished:
+            time.sleep(1)
+            ignore, ignore, alloc = vol.info()
+            meter.update(alloc)
+
 
     def is_size_conflict(self):
         """
@@ -939,6 +1038,7 @@ class FileVolume(StorageVolume):
     """
     Build and install xml for use on pools which use file based storage
     """
+    _file_type = libvirt.VIR_STORAGE_VOL_FILE
 
     formats = ["raw", "bochs", "cloop", "cow", "dmg", "iso", "qcow",\
                "qcow2", "vmdk", "vpc"]
@@ -963,24 +1063,33 @@ class FileVolume(StorageVolume):
     def _get_source_xml(self):
         return ""
 
-#class DiskVolume(StorageVolume):
-#    """
-#    Build and install xml for use on disk device pools
-#    """
-#    def __init__(self, *args, **kwargs):
-#        raise NotImplementedError
+class DiskVolume(StorageVolume):
+    """
+    Build and install xml volumes for use on physical disk pools
+    """
 
-#class iSCSIVolume(StorageVolume):
-#    """
-#    Build and install xml for use on iSCSI device pools
-#    """
-#    def __init__(self, *args, **kwargs):
-#        raise NotImplementedError
+    # Register applicable property methods from parent class
+    perms = property(StorageObject.get_perms, StorageObject.set_perms)
+
+    def __init__(self, name, capacity, pool=None, pool_name=None, conn=None,
+                 allocation=None, perms=None):
+        StorageVolume.__init__(self, name=name, pool=pool, pool_name=pool_name,
+                               allocation=allocation, capacity=capacity,
+                               conn=conn)
+        if perms:
+            self.perms = perms
+
+    def _get_target_xml(self):
+        return "%s" % self._get_perms_xml()
+
+    def _get_source_xml(self):
+        return ""
 
 class LogicalVolume(StorageVolume):
     """
     Build and install logical volumes for lvm pools
     """
+    _file_type = libvirt.VIR_STORAGE_VOL_BLOCK
 
     # Register applicable property methods from parent class
     perms = property(StorageObject.get_perms, StorageObject.set_perms)
@@ -998,3 +1107,46 @@ class LogicalVolume(StorageVolume):
 
     def _get_source_xml(self):
         return ""
+
+class CloneVolume(StorageVolume):
+    """
+    Build and install a volume that is a clone of an existing volume
+    """
+
+    format = property(StorageVolume.get_format, StorageVolume.set_format)
+
+    def __init__(self, name, input_vol):
+        if not isinstance(input_vol, libvirt.virStorageVol):
+            raise ValueError(_("input_vol must be a virStorageVol"))
+
+        pool = input_vol.storagePoolLookupByVolume()
+
+        # Populate some basic info
+        xml  = input_vol.XMLDesc(0)
+        typ  = input_vol.info()[0]
+        cap  = int(_util.get_xml_path(xml, "/volume/capacity"))
+        alc  = int(_util.get_xml_path(xml, "/volume/allocation"))
+        fmt  = _util.get_xml_path(xml, "/volume/target/format/@type")
+
+        StorageVolume.__init__(self, name=name, pool=pool,
+                               pool_name=pool.name(),
+                               allocation=alc, capacity=cap)
+
+        self.input_vol = input_vol
+        self._file_type = typ
+        self._format = fmt
+
+    def get_xml_config(self):
+        xml  = self.input_vol.XMLDesc(0)
+        newxml = _util.set_xml_path(xml, "/volume/name", self.name)
+        return newxml
+
+#class iSCSIVolume(StorageVolume):
+#    """
+#    Build and install xml for use on iSCSI device pools
+#    """
+#    _file_type = libvirt.VIR_STORAGE_VOL_FILE
+#
+#    def __init__(self, *args, **kwargs):
+#        raise NotImplementedError
+
diff --git a/virtinst/VirtualAudio.py b/virtinst/VirtualAudio.py
index becfbd3..2ceb2ab 100644
--- a/virtinst/VirtualAudio.py
+++ b/virtinst/VirtualAudio.py
@@ -22,7 +22,9 @@ from virtinst import _virtinst as _
 
 class VirtualAudio(VirtualDevice.VirtualDevice):
 
-    MODELS = [ "es1370", "sb16", "pcspk" ]
+    _virtual_device_type = VirtualDevice.VirtualDevice.VIRTUAL_DEV_AUDIO
+
+    MODELS = [ "es1370", "sb16", "pcspk", "ac97" ]
 
     def __init__(self, model, conn=None):
         VirtualDevice.VirtualDevice.__init__(self, conn)
diff --git a/virtinst/VirtualCharDevice.py b/virtinst/VirtualCharDevice.py
new file mode 100644
index 0000000..bc6887b
--- /dev/null
+++ b/virtinst/VirtualCharDevice.py
@@ -0,0 +1,375 @@
+#
+# Copyright 2009  Red Hat, Inc.
+# Cole Robinson <crobinso at redhat.com>
+#
+# 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 VirtualDevice
+from xml.sax.saxutils import escape as xml_escape
+
+from virtinst import _virtinst as _
+
+class VirtualCharDevice(VirtualDevice.VirtualDevice):
+    """
+    Base class for all character devices. Shouldn't be instantiated
+    directly.
+    """
+
+    DEV_SERIAL   = "serial"
+    DEV_PARALLEL = "parallel"
+    DEV_CONSOLE  = "console"
+    dev_types    = [ DEV_SERIAL, DEV_PARALLEL, DEV_CONSOLE ]
+
+    CHAR_PTY    = "pty"
+    CHAR_DEV    = "dev"
+    CHAR_STDIO  = "stdio"
+    CHAR_PIPE   = "pipe"
+    CHAR_FILE   = "file"
+    CHAR_VC     = "vc"
+    CHAR_NULL   = "null"
+    CHAR_TCP    = "tcp"
+    CHAR_UDP    = "udp"
+    CHAR_UNIX   = "unix"
+    char_types  = [ CHAR_PTY, CHAR_DEV, CHAR_STDIO, CHAR_FILE, CHAR_VC,
+                    CHAR_PIPE, CHAR_NULL, CHAR_TCP, CHAR_UDP, CHAR_UNIX ]
+
+    CHAR_MODE_CONNECT = "connect"
+    CHAR_MODE_BIND = "bind"
+    char_modes = [ CHAR_MODE_CONNECT, CHAR_MODE_BIND ]
+
+    CHAR_PROTOCOL_RAW = "raw"
+    CHAR_PROTOCOL_TELNET = "telnet"
+    char_protocols = [ CHAR_PROTOCOL_RAW, CHAR_PROTOCOL_TELNET ]
+
+    def get_char_type_desc(char_type):
+        """
+        Return a human readable description of the passed char type
+        """
+        desc = ""
+
+        if char_type == VirtualCharDevice.CHAR_PTY:
+            desc = _("Psuedo TTY")
+        elif char_type == VirtualCharDevice.CHAR_DEV:
+            desc = _("Physical host character device")
+        elif char_type == VirtualCharDevice.CHAR_STDIO:
+            desc = _("Standard input/output")
+        elif char_type == VirtualCharDevice.CHAR_PIPE:
+            desc = _("Named pipe")
+        elif char_type == VirtualCharDevice.CHAR_FILE:
+            desc = _("Output to a file")
+        elif char_type == VirtualCharDevice.CHAR_VC:
+            desc = _("Virtual console")
+        elif char_type == VirtualCharDevice.CHAR_NULL:
+            desc = _("Null device")
+        elif char_type == VirtualCharDevice.CHAR_TCP:
+            desc = _("TCP net console")
+        elif char_type == VirtualCharDevice.CHAR_UDP:
+            desc = _("UDP net console")
+        elif char_type == VirtualCharDevice.CHAR_UNIX:
+            desc = _("Unix socket")
+
+        return desc
+    get_char_type_desc = staticmethod(get_char_type_desc)
+
+    def get_char_mode_desc(char_mode):
+        """
+        Return a human readable description of the passed char type
+        """
+        desc = ""
+
+        if char_mode == VirtualCharDevice.CHAR_MODE_CONNECT:
+            desc = _("Client mode.")
+        elif char_mode == VirtualCharDevice.CHAR_MODE_BIND:
+            desc = _("Server mode.")
+
+        return desc
+    get_char_mode_desc = staticmethod(get_char_mode_desc)
+
+    # 'char_type' of class (must be properly set in subclass)
+    _char_type = None
+
+    def get_dev_instance(conn, dev_type, char_type):
+        """
+        Set up the class attributes for the passed char_type
+        """
+
+        # By default, all the possible parameters are enabled for the
+        # device class. We go through here and del() all the ones that
+        # don't apply. This is kind of whacky, but it's nice to to
+        # allow an API user to just use hasattr(obj, paramname) to see
+        # what parameters apply, instead of having to hardcode all that
+        # information.
+        if dev_type == VirtualCharDevice.DEV_CONSOLE:
+            return VirtualConsoleDevice(conn)
+
+        if char_type == VirtualCharDevice.CHAR_PTY:
+            c = VirtualCharPtyDevice
+        elif char_type == VirtualCharDevice.CHAR_STDIO:
+            c = VirtualCharStdioDevice
+        elif char_type == VirtualCharDevice.CHAR_NULL:
+            c = VirtualCharNullDevice
+        elif char_type == VirtualCharDevice.CHAR_VC:
+            c = VirtualCharVcDevice
+        elif char_type == VirtualCharDevice.CHAR_DEV:
+            c = VirtualCharDevDevice
+        elif char_type == VirtualCharDevice.CHAR_FILE:
+            c = VirtualCharFileDevice
+        elif char_type == VirtualCharDevice.CHAR_PIPE:
+            c = VirtualCharPipeDevice
+        elif char_type == VirtualCharDevice.CHAR_TCP:
+            c = VirtualCharTcpDevice
+        elif char_type == VirtualCharDevice.CHAR_UNIX:
+            c = VirtualCharUnixDevice
+        elif char_type == VirtualCharDevice.CHAR_UDP:
+            c = VirtualCharUdpDevice
+        else:
+            raise ValueError(_("Unknown character device type '%s'.") %
+                             char_type)
+
+        return c(conn, dev_type)
+    get_dev_instance = staticmethod(get_dev_instance)
+
+    def __init__(self, conn, dev_type):
+        if dev_type not in self.dev_types:
+            raise ValueError(_("Unknown character device type '%s'") % dev_type)
+        self._dev_type = dev_type
+        self._virtual_device_type = self._dev_type
+
+        VirtualDevice.VirtualDevice.__init__(self, conn)
+
+        if not self._char_type:
+            raise ValueError("Must not be instantiated through a subclass.")
+
+        if self._char_type not in self.char_types:
+            raise ValueError(_("Unknown character device type '%s'")
+                             % self._char_type)
+
+        # Init
+        self._source_path = None
+        self._source_mode = self.CHAR_MODE_BIND
+        self._source_host = "127.0.0.1"
+        self._source_port = None
+        self._bind_host = None
+        self._bind_port = None
+        self._protocol = self.CHAR_PROTOCOL_RAW
+
+    # Properties
+    def get_char_type(self):
+        return self._char_type
+    char_type = property(get_char_type,
+                         doc=_("Method used to expose character device in "
+                               "the host."))
+
+    # Properties functions used by the various subclasses
+    def get_source_path(self):
+        return self._source_path
+    def set_source_path(self, val):
+        self._source_path = val
+
+    def get_source_mode(self):
+        return self._source_mode
+    def set_source_mode(self, val):
+        if val not in self.char_modes:
+            raise ValueError(_("Unknown character mode '%s'.") % val)
+        self._source_mode = val
+
+    def get_source_host(self):
+        return self._source_host
+    def set_source_host(self, val):
+        self._source_host = val
+
+    def get_source_port(self):
+        return self._source_port
+    def set_source_port(self, val):
+        self._source_port = int(val)
+
+    def get_bind_host(self):
+        return self._bind_host
+    def set_bind_host(self, val):
+        self._bind_host = val
+
+    def get_bind_port(self):
+        return self._bind_port
+    def set_bind_port(self, val):
+        self._bind_port = int(val)
+
+    def get_protocol(self):
+        return self._protocol
+    def set_protocol(self, val):
+        if val not in self.char_protocols:
+            raise ValueError(_("Unknown protocol '%s'.") % val)
+        self._protocol = val
+
+    # XML building helpers
+    def _char_empty_xml(self):
+        """
+        Provide source xml for devices with no params (null, stdio, ...)
+        """
+        return ""
+
+    def _char_file_xml(self):
+        """
+        Provide source xml for devs that require only a patch (dev, pipe)
+        """
+        file_xml = ""
+        mode_xml = ""
+        if self.source_path:
+            file_xml = " path='%s'" % xml_escape(self.source_path)
+        else:
+            raise ValueError(_("A source path is required for character "
+                               "device type '%s'" % self.char_type))
+
+        if hasattr(self, "source_mode") and self.source_mode:
+            mode_xml = " mode='%s'" % xml_escape(self.source_mode)
+
+        xml = "      <source%s%s/>\n" % (mode_xml, file_xml)
+        return xml
+
+    def _char_xml(self):
+        raise NotImplementedError("Must be implemented in subclass.")
+
+    def get_xml_config(self):
+        xml  = "    <%s type='%s'" % (self._dev_type, self._char_type)
+        char_xml = self._char_xml()
+        if char_xml:
+            xml += ">\n%s" % char_xml
+            xml += "    </%s>" % self._dev_type
+        else:
+            xml += "/>"
+        return xml
+
+# Back compat class for building a simple PTY 'console' element
+class VirtualConsoleDevice(VirtualCharDevice):
+    _char_xml = VirtualCharDevice._char_empty_xml
+    _char_type = VirtualCharDevice.CHAR_PTY
+
+    def __init__(self, conn):
+        VirtualCharDevice.__init__(self, conn, VirtualCharDevice.DEV_CONSOLE)
+
+# Classes for each device 'type'
+
+class VirtualCharPtyDevice(VirtualCharDevice):
+    _char_type = VirtualCharDevice.CHAR_PTY
+    _char_xml = VirtualCharDevice._char_empty_xml
+class VirtualCharStdioDevice(VirtualCharDevice):
+    _char_type = VirtualCharDevice.CHAR_STDIO
+    _char_xml = VirtualCharDevice._char_empty_xml
+class VirtualCharNullDevice(VirtualCharDevice):
+    _char_type = VirtualCharDevice.CHAR_NULL
+    _char_xml = VirtualCharDevice._char_empty_xml
+class VirtualCharVcDevice(VirtualCharDevice):
+    _char_type = VirtualCharDevice.CHAR_VC
+    _char_xml = VirtualCharDevice._char_empty_xml
+
+class VirtualCharDevDevice(VirtualCharDevice):
+    _char_type = VirtualCharDevice.CHAR_DEV
+    _char_xml = VirtualCharDevice._char_file_xml
+    source_path = property(VirtualCharDevice.get_source_path,
+                           VirtualCharDevice.set_source_path,
+                           doc=_("Host character device to attach to guest."))
+class VirtualCharPipeDevice(VirtualCharDevice):
+    _char_type = VirtualCharDevice.CHAR_PIPE
+    _char_xml = VirtualCharDevice._char_file_xml
+    source_path = property(VirtualCharDevice.get_source_path,
+                           VirtualCharDevice.set_source_path,
+                           doc=_("Named pipe to use for input and output."))
+class VirtualCharFileDevice(VirtualCharDevice):
+    _char_type = VirtualCharDevice.CHAR_FILE
+    _char_xml = VirtualCharDevice._char_file_xml
+    source_path = property(VirtualCharDevice.get_source_path,
+                           VirtualCharDevice.set_source_path,
+                           doc=_("File path to record device output."))
+
+class VirtualCharUnixDevice(VirtualCharDevice):
+    _char_type = VirtualCharDevice.CHAR_UNIX
+    _char_xml = VirtualCharDevice._char_file_xml
+
+    source_mode = property(VirtualCharDevice.get_source_mode,
+                           VirtualCharDevice.set_source_mode,
+                           doc=_("Target connect/listen mode."))
+    source_path = property(VirtualCharDevice.get_source_path,
+                           VirtualCharDevice.set_source_path,
+                           doc=_("Unix socket path."))
+
+class VirtualCharTcpDevice(VirtualCharDevice):
+    _char_type = VirtualCharDevice.CHAR_TCP
+
+    source_mode = property(VirtualCharDevice.get_source_mode,
+                           VirtualCharDevice.set_source_mode,
+                           doc=_("Target connect/listen mode."))
+    source_host = property(VirtualCharDevice.get_source_host,
+                           VirtualCharDevice.set_source_host,
+                           doc=_("Address to connect/listen to."))
+    source_port = property(VirtualCharDevice.get_source_port,
+                           VirtualCharDevice.set_source_port,
+                           doc=_("Port on target host to connect/listen to."))
+    protocol = property(VirtualCharDevice.get_protocol,
+                         VirtualCharDevice.set_protocol,
+                         doc=_("Format used when sending data."))
+
+    def _char_xml(self):
+        if not self.source_host and not self.source_port:
+            raise ValueError(_("A host and port must be specified."))
+
+        xml = ("      <source mode='%s' host='%s' service='%s'/>\n" %
+               (self.source_mode, self.source_host, self.source_port))
+        xml += "      <protocol type='%s'/>\n" % self.protocol
+        return xml
+
+class VirtualCharUdpDevice(VirtualCharDevice):
+    _char_type = VirtualCharDevice.CHAR_UDP
+
+    bind_host = property(VirtualCharDevice.get_bind_host,
+                         VirtualCharDevice.set_bind_host,
+                         doc=_("Host address to bind to."))
+    bind_port = property(VirtualCharDevice.get_bind_port,
+                         VirtualCharDevice.set_bind_port,
+                         doc=_("Host port to bind to."))
+    source_host = property(VirtualCharDevice.get_source_host,
+                           VirtualCharDevice.set_source_host,
+                           doc=_("Host address to send output to."))
+    source_port = property(VirtualCharDevice.get_source_port,
+                           VirtualCharDevice.set_source_port,
+                           doc=_("Host port to send output to."))
+
+    # XXX: UDP: Only source _connect_ port required?
+    def _char_xml(self):
+        if not self.source_port:
+            raise ValueError(_("A connection port must be specified."))
+
+        xml = ""
+        bind_xml = ""
+        bind_host_xml = ""
+        bind_port_xml = ""
+        source_host_xml = ""
+
+        if self.bind_port:
+            bind_port_xml = " service='%s'" % self.bind_port
+            if not self.bind_host:
+                self.bind_host = "127.0.0.1"
+        if self.bind_host:
+            bind_host_xml = " host='%s'" % self.bind_host
+        if self.source_host:
+            source_host_xml = " host='%s'" % self.source_host
+
+        if self.bind_host or self.bind_port:
+            bind_xml = ("      <source mode='bind'%s%s/>\n" %
+                        (bind_host_xml, bind_port_xml))
+
+        xml += bind_xml
+        xml += ("      <source mode='connect'%s service='%s'/>\n" %
+                (source_host_xml, self.source_port))
+        return xml
diff --git a/virtinst/VirtualDevice.py b/virtinst/VirtualDevice.py
index beac535..73e3365 100644
--- a/virtinst/VirtualDevice.py
+++ b/virtinst/VirtualDevice.py
@@ -30,6 +30,28 @@ class VirtualDevice(object):
     Base class for all domain xml device objects.
     """
 
+    VIRTUAL_DEV_DISK            = "disk"
+    VIRTUAL_DEV_NET             = "interface"
+    VIRTUAL_DEV_INPUT           = "input"
+    VIRTUAL_DEV_GRAPHICS        = "graphics"
+    VIRTUAL_DEV_AUDIO           = "sound"
+    VIRTUAL_DEV_HOSTDEV         = "hostdev"
+    VIRTUAL_DEV_SERIAL          = "serial"
+    VIRTUAL_DEV_PARALLEL        = "parallel"
+    VIRTUAL_DEV_CONSOLE         = "console"
+    VIRTUAL_DEV_VIDEO           = "video"
+
+    # Ordering in this list is important: it will be the order the
+    # Guest class outputs XML. So changing this may upset the test suite
+    virtual_device_types = [VIRTUAL_DEV_DISK, VIRTUAL_DEV_NET,
+                            VIRTUAL_DEV_INPUT, VIRTUAL_DEV_GRAPHICS,
+                            VIRTUAL_DEV_SERIAL, VIRTUAL_DEV_PARALLEL,
+                            VIRTUAL_DEV_CONSOLE, VIRTUAL_DEV_AUDIO,
+                            VIRTUAL_DEV_VIDEO, VIRTUAL_DEV_HOSTDEV ]
+
+    # General device type (disk, interface, etc.)
+    _virtual_device_type = None
+
     def __init__(self, conn=None):
         """
         Initialize device state
@@ -37,6 +59,12 @@ class VirtualDevice(object):
         @param conn: libvirt connection to validate device against
         @type conn: virConnect
         """
+        if not self._virtual_device_type:
+            raise ValueError(_("Virtual device type must be set in subclass."))
+
+        if self._virtual_device_type not in self.virtual_device_types:
+            raise ValueError(_("Unknown virtual device type '%s'.") %
+                             self._virtual_device_type)
 
         if conn:
             if not isinstance(conn, libvirt.virConnect):
@@ -59,8 +87,17 @@ class VirtualDevice(object):
         self._conn = val
     conn = property(get_conn, set_conn)
 
+    def get_virtual_device_type(self):
+        return self._virtual_device_type
+    virtual_device_type = property(get_virtual_device_type)
+
     def _is_remote(self):
-        return self.__remote
+        return bool(self.__remote)
+
+    def _get_uri(self):
+        if self.conn:
+            return self.conn.getURI()
+        return None
 
     def _check_bool(self, val, name):
         if val not in [True, False]:
diff --git a/virtinst/VirtualDisk.py b/virtinst/VirtualDisk.py
index a7087d1..67e2d03 100644
--- a/virtinst/VirtualDisk.py
+++ b/virtinst/VirtualDisk.py
@@ -22,6 +22,7 @@
 import os, statvfs
 import subprocess
 import logging
+import urlgrabber.progress as progress
 import libvirt
 
 import _util
@@ -43,6 +44,17 @@ def _vdisk_create(path, size, kind, sparse = True):
     except OSError:
         return False
 
+def _vdisk_clone(path, clone):
+    logging.debug("Using vdisk clone.")
+
+    path = os.path.expanduser(path)
+    clone = os.path.expanduser(clone)
+    try:
+        rc = subprocess.call([ '/usr/sbin/vdiskadm', 'clone', path, clone ])
+        return rc == 0
+    except OSError:
+        return False
+
 class VirtualDisk(VirtualDevice):
     """
     Builds a libvirt domain disk xml description
@@ -74,10 +86,16 @@ class VirtualDisk(VirtualDevice):
     and will throw ValueError's if problems are found.
     """
 
+    _virtual_device_type = VirtualDevice.VIRTUAL_DEV_DISK
+
     DRIVER_FILE = "file"
     DRIVER_PHY = "phy"
     DRIVER_TAP = "tap"
-    driver_names = [DRIVER_FILE, DRIVER_PHY, DRIVER_TAP]
+    DRIVER_QEMU = "qemu"
+    driver_names = [DRIVER_FILE, DRIVER_PHY, DRIVER_TAP, DRIVER_QEMU]
+
+    DRIVER_QEMU_RAW = "raw"
+    # No list here, since there are many other valid values
 
     DRIVER_TAP_RAW = "aio"
     DRIVER_TAP_QCOW = "qcow"
@@ -101,11 +119,34 @@ class VirtualDisk(VirtualDevice):
     TYPE_BLOCK = "block"
     types = [TYPE_FILE, TYPE_BLOCK]
 
+    @staticmethod
+    def path_exists(conn, path):
+        """
+        Check if path exists. If we can't determine, return False
+        """
+        is_remote = _util.is_uri_remote(conn.getURI())
+        try:
+            vol = None
+            try:
+                vol = conn.storageVolLookupByPath(path)
+            except:
+                pass
+
+            if vol:
+                return True
+
+            if not is_remote:
+                return os.path.exists(path)
+        except:
+            pass
+
+        return False
+
     def __init__(self, path=None, size=None, transient=False, type=None,
                  device=DEVICE_DISK, driverName=None, driverType=None,
                  readOnly=False, sparse=True, conn=None, volObject=None,
                  volInstall=None, volName=None, bus=None, shareable=False,
-                 driverCache=None):
+                 driverCache=None, selinuxLabel=None):
         """
         @param path: filesystem path to the disk image.
         @type path: C{str}
@@ -140,6 +181,8 @@ class VirtualDisk(VirtualDevice):
         @type shareable: C{bool}
         @param driverCache: Disk cache mode (none, writethrough, writeback)
         @type driverCache: member of cache_types
+        @param selinuxLabel: Used for labelling new or relabel existing storage
+        @type selinuxLabel: C{str}
         """
 
         VirtualDevice.__init__(self, conn=conn)
@@ -155,6 +198,8 @@ class VirtualDisk(VirtualDevice):
         self._bus = None
         self._shareable = None
         self._driver_cache = None
+        self._selinux_label = None
+        self._clone_path = None
 
         # XXX: No property methods for these
         self.transient = transient
@@ -173,6 +218,7 @@ class VirtualDisk(VirtualDevice):
         self._set_bus(bus, validate=False)
         self._set_shareable(shareable, validate=False)
         self._set_driver_cache(driverCache, validate=False)
+        self._set_selinux_label(selinuxLabel, validate=False)
 
         if volName:
             self.__lookup_vol_name(volName)
@@ -197,6 +243,26 @@ class VirtualDisk(VirtualDevice):
         self.__validate_wrapper("_path", val, validate)
     path = property(_get_path, _set_path)
 
+    def _get_clone_path(self):
+        return self._clone_path
+    def _set_clone_path(self, val, validate=True):
+        if val is not None:
+            self._check_str(val, "path")
+            val = os.path.abspath(val)
+
+            # Pass the path to a VirtualDisk, which should provide validation
+            # for us
+            try:
+                # If this disk isn't managed, don't pass 'conn' to this
+                # validation disk, to ensure we have permissions for manual
+                # cloning
+                conn = self.__storage_specified() and self.conn or None
+                VirtualDisk(conn=conn, path=val)
+            except Exception, e:
+                raise ValueError(_("Error validating clone path: %s") % e)
+        self.__validate_wrapper("_clone_path", val, validate)
+    clone_path = property(_get_clone_path, _set_clone_path)
+
     def _get_size(self):
         return self._size
     def _set_size(self, val, validate=True):
@@ -293,6 +359,22 @@ class VirtualDisk(VirtualDevice):
         self.__validate_wrapper("_driver_cache", val, validate)
     driver_cache = property(_get_driver_cache, _set_driver_cache)
 
+    # If there is no selinux support on the libvirt connection or the
+    # system, we won't throw errors if this is set, just silently ignore.
+    def _get_selinux_label(self):
+        return self._selinux_label
+    def _set_selinux_label(self, val, validate=True):
+        if val is not None:
+            self._check_str(val, "selinux_label")
+
+            if (self._support_selinux() and
+                not _util.selinux_is_label_valid(val)):
+                # XXX Not valid if we support changing labels remotely
+                raise ValueError(_("SELinux label '%s' is not valid.") % val)
+
+        self.__validate_wrapper("_selinux_label", val, validate)
+    selinux_label = property(_get_selinux_label, _set_selinux_label)
+
     # Validation assistance methods
 
     # Initializes attribute if it hasn't been done, then validates args.
@@ -310,12 +392,12 @@ class VirtualDisk(VirtualDevice):
                 setattr(self, varname, orig)
                 raise
 
-    def __set_size(self, creating_storage):
+    def __set_size(self):
         """
         Fill in 'size' attribute for existing storage.
         """
 
-        if creating_storage:
+        if self.__creating_storage():
             return
 
         if self.__storage_specified() and self.vol_object:
@@ -332,8 +414,6 @@ class VirtualDisk(VirtualDevice):
             newsize = newsize / 1024.0 / 1024.0 / 1024.0
 
         if newsize != self.size:
-            logging.debug("Setting size for existing storage to '%s'" %
-                          newsize)
             self._set_size(newsize, validate=False)
 
     def __set_dev_type(self):
@@ -352,27 +432,69 @@ class VirtualDisk(VirtualDevice):
             else:
                 raise ValueError, _("Unknown storage volume type.")
         elif self.vol_install:
-            if isinstance(self.vol_install, Storage.FileVolume):
+            if self.vol_install.file_type == libvirt.VIR_STORAGE_VOL_FILE:
                 dtype = self.TYPE_FILE
             else:
-                # All others should be using TYPE_BLOCK (hopefully)
                 dtype = self.TYPE_BLOCK
         elif self.path:
             if _util.stat_disk(self.path)[0]:
                 dtype = self.TYPE_FILE
             else:
                 dtype = self.TYPE_BLOCK
-            if _util.is_vdisk(self.path):
-                self._driverName = self.DRIVER_TAP
-                self._driverType = self.DRIVER_TAP_VDISK
 
-        if self.type is None:
-            logging.debug("Detected storage as type '%s'" % dtype)
-        elif dtype != self.type:
+        if not dtype:
+            dtype = self.type or self.TYPE_BLOCK
+
+        elif self.type and dtype != self.type:
             raise ValueError(_("Passed type '%s' does not match detected "
                                "storage type '%s'" % (self.type, dtype)))
         self.set_type(dtype, validate=False)
 
+    def __set_driver(self):
+        """
+        Set driverName and driverType from passed parameters
+
+        Where possible, we want to force driverName = "raw" if installing
+        a QEMU VM. Without telling QEMU to expect a raw file, the emulator
+        is forced to autodetect, which has security implications:
+
+        http://lists.gnu.org/archive/html/qemu-devel/2008-04/msg00675.html
+        """
+        drvname = None
+        drvtype = None
+
+        if self.conn:
+            driver = _util.get_uri_driver(self._get_uri())
+            if driver.lower() == "qemu":
+                drvname = self.DRIVER_QEMU
+
+        if self.vol_object:
+            drvtype = _util.get_xml_path(self.vol_object.XMLDesc(0),
+                                         "/volume/target/format")
+
+        elif self.vol_install:
+            if drvname == self.DRIVER_QEMU:
+                if self.vol_install.file_type == libvirt.VIR_STORAGE_VOL_FILE:
+                    drvtype = self.vol_install.format
+                else:
+                    drvtype = self.DRIVER_QEMU_RAW
+
+        elif self.__creating_storage():
+            if drvname == self.DRIVER_QEMU:
+                drvtype = self.DRIVER_QEMU_RAW
+
+        elif self.path and os.path.exists(self.path):
+            if _util.is_vdisk(self.path):
+                drvname = self.DRIVER_TAP
+                drvtype = self.DRIVER_TAP_VDISK
+
+        if self._driverName and self._driverName != drvname:
+            # User already set driverName to a different value, respect that
+            return
+
+        self._driverName = drvname
+        self._driverType = drvtype
+
     def __lookup_vol_name(self, name_tuple):
         """
         lookup volume via tuple passed via __init__'s volName parameter
@@ -399,6 +521,26 @@ class VirtualDisk(VirtualDevice):
         """
         return (self.vol_object != None or self.vol_install != None)
 
+    def __creating_storage(self):
+        """
+        Return True if the user requested us to create a device
+        """
+        return not (self.__no_storage() or
+                    (self.__storage_specified() and self.vol_object) or
+                    (self.path and os.path.exists(self.path)))
+
+    def __no_storage(self):
+        """
+        Return True if no path or storage was specified
+        """
+        no_storage = (not self.__storage_specified() and not self.path)
+        if no_storage:
+            if (self.device != self.DEVICE_FLOPPY and
+                self.device != self.DEVICE_CDROM):
+                raise ValueError(_("Device type '%s' requires a path") %
+                                 self.device)
+        return no_storage
+
     def __check_if_path_managed(self):
         """
         Determine if we can use libvirt storage apis to create or lookup
@@ -415,7 +557,10 @@ class VirtualDisk(VirtualDevice):
 
             try:
                 vol = self.conn.storageVolLookupByPath(self.path)
+                vol.info()
             except Exception, e:
+                vol = None
+
                 try:
                     try:
                         # Pool may need to be refreshed, but if it errors,
@@ -425,7 +570,9 @@ class VirtualDisk(VirtualDevice):
                         pool = None
                         raise
                     vol = self.conn.storageVolLookupByPath(self.path)
+                    vol.info()
                 except Exception, e:
+                    vol = None
                     verr = str(e)
 
         if not vol:
@@ -445,10 +592,7 @@ class VirtualDisk(VirtualDevice):
                 if self.sparse:
                     alloc = 0
                 else:
-                    #alloc = cap
-                    # XXX: disable setting managed storage as nonsparse
-                    # XXX: since it hoses libvirtd (for now)
-                    alloc = 0
+                    alloc = cap
                 vol = volclass(name=os.path.basename(self.path),
                                capacity=cap, allocation=alloc, pool=pool)
                 self._set_vol_install(vol, validate=False)
@@ -495,11 +639,29 @@ class VirtualDisk(VirtualDevice):
                               "StorageVolume object")
                 self._set_size(newsize, validate=False)
 
-        # Remove this piece when storage volume creation is async
-        if self.sparse and self.vol_install and \
-           self.vol_install.allocation != 0:
-            logging.debug("Setting vol_install allocation to 0 (sparse).")
-            self.vol_install.allocation = 0
+    def _storage_security_label(self):
+        """
+        Return SELinux label of existing storage, or None
+        """
+        context = ""
+
+        if self.__no_storage():
+            return context
+
+        if self.vol_object:
+            context = _util.get_xml_path(self.vol_object.XMLDesc(0),
+                                         "/volume/target/permissions/label")
+        elif self.vol_install:
+            # XXX: If user entered a manual label, should we sync this
+            # to vol_install?
+            l = _util.get_xml_path(self.vol_install.pool.XMLDesc(0),
+                                   "/pool/target/permissions/label")
+            context = l or ""
+        else:
+            context = _util.selinux_getfilecon(self.path)
+
+        return context
+
 
     def __validate_params(self):
         """
@@ -507,47 +669,53 @@ class VirtualDisk(VirtualDevice):
         disk parameters.
         """
 
-        # if storage capable, try to lookup path
-        # if no obj: if remote, error
-        storage_capable = False
-        if self.conn:
-            storage_capable = _util.is_storage_capable(self.conn)
+        if self.__no_storage():
+            # No storage specified for a removable device type (CDROM, floppy)
+            self._type = self.TYPE_BLOCK
+            return True
 
-        if not storage_capable and self._is_remote():
-            raise ValueError, _("Connection doesn't support remote storage.")
+        storage_capable = bool(self.conn and
+                               _util.is_storage_capable(self.conn))
 
-        # If the user didn't pass storage parameters, try to determine them
-        # from the passed path
-        if storage_capable and self.path is not None \
-           and not self.__storage_specified():
+        if storage_capable and not self.__storage_specified():
+            # Try to lookup self.path storage objects
             self.__check_if_path_managed()
 
-        # Sync parameters between VirtualDisk and potentially passed
-        # storage objects.
+        if self._is_remote():
+            if not storage_capable:
+                raise ValueError, _("Connection doesn't support remote "
+                                    "storage.")
+            if not self.__storage_specified():
+                raise ValueError, _("Must specify libvirt managed storage "
+                                    "if on a remote connection")
+
+        # Sync parameters between VirtualDisk and  storage objects.
         self.__sync_params()
 
-        # One small caveat: if self.path isn't set at this point, we are
-        # basically done.
-        if self.path is None:
-            if self.device != self.DEVICE_FLOPPY and \
-               self.device != self.DEVICE_CDROM:
-                raise ValueError, _("Device type '%s' requires a path") % \
-                                  self.device
-            return True
+        # The main distinctions from this point forward:
+        # - Are we doing storage API operations or local media checks?
+        # - Do we need to create the storage?
 
+        managed_storage = self.__storage_specified()
+        create_media = self.__creating_storage()
 
-        # The main distinctions from this point forward:
-        # Are we doing storage API operations or local media checks?
-        managed_storage = self.__storage_specified() or self.path is None
-        # Do we need to create the storage?
-        create_media = not ((managed_storage and self.vol_object) or \
-                            (self.path and os.path.exists(self.path)))
+        self.__set_size()
+
+        if not self.selinux_label:
+            # If we are using existing storage, pull the label from it
+            # If we are installing via vol_install, pull from the parent pool
+            # If we are creating local storage, use the expected label
+            context = ""
 
-        self.__set_size(create_media)
+            if create_media and not managed_storage:
+                context = self._expected_security_label()
+            else:
+                context = self._storage_security_label()
 
-        if self._is_remote() and not managed_storage:
-            raise ValueError, _("Must specify libvirt managed storage if on "
-                                "a remote connection")
+            self._selinux_label = context or ""
+
+        # Set driverName + driverType
+        self.__set_driver()
 
         # If not creating the storage, our job is easy
         if not create_media:
@@ -557,7 +725,6 @@ class VirtualDisk(VirtualDevice):
                     # vdisk _is_ a directory.
                     raise ValueError(_("The path '%s' must be a file or a "
                                        "device, not a directory") % self.path)
-                # XXX: Any selinux validation checks should go here
 
             self.__set_dev_type()
             return True
@@ -570,7 +737,8 @@ class VirtualDisk(VirtualDevice):
 
         if not managed_storage:
             if self.type is self.TYPE_BLOCK:
-                raise ValueError, _("Local block device path must exist.")
+                raise ValueError, _("Local block device path '%s' must "
+                                    "exist.") % self.path
             self.set_type(self.TYPE_FILE, validate=False)
 
             # Path doesn't exist: make sure we have write access to dir
@@ -584,6 +752,7 @@ class VirtualDisk(VirtualDevice):
                 raise ValueError, _("No write access to directory '%s'") % \
                                     os.path.dirname(self.path)
         else:
+            # Set dev type from existing storage
             self.__set_dev_type()
 
         # Applicable for managed or local storage
@@ -593,7 +762,131 @@ class VirtualDisk(VirtualDevice):
         elif ret[1]:
             logging.warn(ret[1])
 
+    # Storage creation routines
+    def _do_create_storage(self, progresscb):
+        # If a clone_path is specified, but not vol_install.input_vol,
+        # that means we are cloning unmanaged -> managed, so skip this
+        if (self.vol_install and
+            (not self.clone_path or self.vol_install.input_vol)):
+            self._set_vol_object(self.vol_install.install(meter=progresscb),
+                                 validate=False)
+            # Then just leave: vol_install should handle any selinux stuff
+            return
+
+        if self.clone_path:
+            text = (_("Cloning %(srcfile)s") %
+                    {'srcfile' : os.path.basename(self.clone_path)})
+        else:
+            text=_("Creating storage file %s") % os.path.basename(self.path)
+
+        size_bytes = long(self.size * 1024L * 1024L * 1024L)
+        progresscb.start(filename=self.path, size=long(size_bytes),
+                         text=text)
 
+        if self.clone_path:
+            # VDisk clone
+            if (_util.is_vdisk(self.clone_path) or
+                (os.path.exists(self.path) and _util.is_vdisk(self.path))):
+
+                if (not _util.is_vdisk(self.clone_path) or
+                    os.path.exists(self.path)):
+                    raise RuntimeError, _("copying to an existing vdisk is not"
+                                          " supported")
+                if not _vdisk_clone(self.clone_path, self.path):
+                    raise RuntimeError, _("failed to clone disk")
+                progresscb.end(size_bytes)
+
+            else:
+                # Plain file clone
+                self._clone_local(progresscb, size_bytes)
+
+        elif _util.is_vdisk(self.path):
+            # Create vdisk
+            progresscb.update(1024)
+            if not _vdisk_create(self.path, size_bytes, "vmdk", self.sparse):
+                raise RuntimeError, _("Error creating vdisk %s" % self.path)
+
+            progresscb.end(self.size)
+        else:
+            # Plain file creation
+            self._create_local_file(progresscb, size_bytes)
+
+    def _create_local_file(self, progresscb, size_bytes):
+        """
+        Helper function which attempts to build self.path
+        """
+        fd = None
+
+        try:
+            try:
+                fd = os.open(self.path, os.O_WRONLY | os.O_CREAT)
+                if self.sparse:
+                    os.ftruncate(fd, size_bytes)
+                    progresscb.update(self.size)
+                else:
+                    buf = '\x00' * 1024 * 1024 # 1 meg of nulls
+                    for i in range(0, long(self.size * 1024L)):
+                        os.write(fd, buf)
+                        progresscb.update(long(i * 1024L * 1024L))
+            except OSError, e:
+                raise RuntimeError(_("Error creating diskimage %s: %s") %
+                                   (self.path, str(e)))
+        finally:
+            if fd is not None:
+                os.close(fd)
+            progresscb.end(size_bytes)
+
+    def _clone_local(self, meter, size_bytes):
+
+        # if a destination file exists and sparse flg is True,
+        # this priority takes a existing file.
+        if (os.path.exists(self.path) == False and self.sparse == True):
+            clone_block_size = 4096
+            sparse = True
+            fd = None
+            try:
+                fd = os.open(self.path, os.O_WRONLY | os.O_CREAT)
+                os.ftruncate(fd, size_bytes)
+            finally:
+                if fd:
+                    os.close(fd)
+        else:
+            clone_block_size = 1024*1024*10
+            sparse = False
+
+        logging.debug("Local Cloning %s to %s, sparse=%s, block_size=%s" %
+                      (self.clone_path, self.path, sparse, clone_block_size))
+
+        zeros = '\0' * 4096
+
+        try:
+            src_fd = os.open(self.clone_path, os.O_RDONLY)
+            dst_fd = os.open(self.path, os.O_WRONLY | os.O_CREAT)
+
+            i=0
+            while 1:
+                l = os.read(src_fd, clone_block_size)
+                s = len(l)
+                if s == 0:
+                    meter.end(size_bytes)
+                    break
+                # check sequence of zeros
+                if sparse and zeros == l:
+                    os.lseek(dst_fd, s, 1)
+                else:
+                    b = os.write(dst_fd, l)
+                    if s != b:
+                        meter.end(i)
+                        break
+                i += s
+                if i < size_bytes:
+                    meter.update(i)
+
+        finally:
+            if src_fd is not None:
+                os.close(src_fd)
+            if dst_fd is not None:
+                os.close(dst_fd)
 
     def setup(self, progresscb=None):
         """
@@ -605,53 +898,23 @@ class VirtualDisk(VirtualDevice):
         @param progresscb: progress meter
         @type progresscb: instanceof urlgrabber.BaseMeter
         """
-        if self.vol_object:
-            return
-        elif self.vol_install:
-            self._set_vol_object(self.vol_install.install(meter=progresscb),
-                                 validate=False)
-            return
-        elif (self.type == VirtualDisk.TYPE_FILE and self.path is not None
-             and not os.path.exists(self.path)):
-            size_bytes = long(self.size * 1024L * 1024L * 1024L)
-
-            if progresscb:
-                progresscb.start(filename=self.path,size=long(size_bytes), \
-                                 text=_("Creating storage file..."))
-
-            if _util.is_vdisk(self.path):
-                progresscb.update(1024)
-                if (not _vdisk_create(self.path, size_bytes, "vmdk",
-                    self.sparse)):
-                    raise RuntimeError, _("Error creating vdisk %s" % self.path)
-                self._driverName = self.DRIVER_TAP
-                self._driverType = self.DRIVER_TAP_VDISK
-                progresscb.end(self.size)
-                return
-
-            fd = None
-            try:
-                try:
-                    fd = os.open(self.path, os.O_WRONLY | os.O_CREAT)
-                    if self.sparse:
-                        os.ftruncate(fd, size_bytes)
-                        if progresscb:
-                            progresscb.update(self.size)
-                    else:
-                        buf = '\x00' * 1024 * 1024 # 1 meg of nulls
-                        for i in range(0, long(self.size * 1024L)):
-                            os.write(fd, buf)
-                            if progresscb:
-                                progresscb.update(long(i * 1024L * 1024L))
-                except OSError, e:
-                    raise RuntimeError, _("Error creating diskimage %s: %s" % \
-                                        (self.path, str(e)))
-            finally:
-                if fd is not None:
-                    os.close(fd)
-                if progresscb:
-                    progresscb.end(size_bytes)
-        # FIXME: set selinux context?
+        if not progresscb:
+            progresscb = progress.BaseMeter()
+
+        if self.__creating_storage() or self.clone_path:
+            self._do_create_storage(progresscb)
+
+        # Relabel storage if it was requested
+        storage_label = self._storage_security_label()
+        if storage_label and storage_label != self.selinux_label:
+            if not self._support_selinux():
+                logging.debug("No support for changing selinux context.")
+            elif not self._security_can_fix():
+                logging.debug("Can't fix selinux context in this case.")
+            else:
+                logging.debug("Changing path=%s selinux label %s -> %s" %
+                              (self.path, storage_label, self.selinux_label))
+                _util.selinux_setfilecon(self.path, self.selinux_label)
 
     def get_xml_config(self, disknode=None):
         """
@@ -727,8 +990,7 @@ class VirtualDisk(VirtualDevice):
         if self.vol_install:
             return self.vol_install.is_size_conflict()
 
-        if self.vol_object or self.size is None or not self.path \
-           or os.path.exists(self.path) or self.type != self.TYPE_FILE:
+        if not self.__creating_storage():
             return (False, None)
 
         ret = False
@@ -801,6 +1063,79 @@ class VirtualDisk(VirtualDevice):
 
         return ret
 
+    def _support_selinux(self):
+        """
+        Return True if we have the requisite libvirt and library support
+        for selinux commands
+        """
+        if (not self._caps and False):
+            #self._caps.host.secmodel is None or
+            #self._caps.host.secmodel.model != "selinux"):
+            # XXX: Libvirt support isn't strictly required, but all the
+            #      our label guesses are built with svirt in mind
+            return False
+
+        elif self._is_remote():
+            return False
+
+        elif not _util.have_selinux():
+            # XXX: When libvirt supports changing labels via storage APIs,
+            #      this will need changing.
+            return False
+
+        elif self.__storage_specified() and self.path:
+            try:
+                statinfo = os.stat(self.path)
+            except:
+                return False
+
+            # Not sure if this is even the correct metric for
+            # 'Can we change the file context'
+            return os.geteuid() in ['0', statinfo.st_uid]
+
+        return True
+
+    def _expected_security_label(self):
+        """
+        Best guess at what the expected selinux label should be for the disk
+        """
+        label = None
+
+        # XXX: These are really only approximations in the remote case?
+        # XXX: Maybe libvirt should expose the relevant selinux labels in
+        #      the capabilities XML?
+
+        if not self._support_selinux():
+            pass
+        elif self.__no_storage():
+            pass
+        elif self.read_only:
+            label = _util.selinux_readonly_label()
+        elif self.shareable:
+            # XXX: Should this be different? or do we not care about MLS here?
+            label = _util.selinux_rw_label()
+        else:
+            label = _util.selinux_rw_label()
+
+        return label or ""
+
+    def _security_can_fix(self):
+        can_fix = True
+
+        if not self._support_selinux():
+            can_fix = False
+        elif self.__no_storage():
+            can_fix = False
+        elif self.type == VirtualDisk.TYPE_BLOCK:
+            # Shouldn't change labelling on block devices (though we can)
+            can_fix = False
+        elif not self.read_only:
+            # XXX Leave all other (R/W disk) relabeling up to libvirt/svirt
+            # for now
+            can_fix = False
+
+        return can_fix
+
     def _get_target_type(self):
         """
         Returns the suggested disk target prefix (hd, xvd, sd ...) from
@@ -813,10 +1148,10 @@ class VirtualDisk(VirtualDevice):
             return ("sd", 16)
         elif self.bus == "xen":
             return ("xvd", 16)
+        elif self.bus == "fdc" or self.device == self.DEVICE_FLOPPY:
+            return ("fd", 2)
         elif self.bus == "ide":
             return ("hd", 4)
-        elif self.bus == "floppy" or self.device == self.DEVICE_FLOPPY:
-            return ("fd", 2)
         else:
             return (None, None)
 
diff --git a/virtinst/VirtualGraphics.py b/virtinst/VirtualGraphics.py
index 8c554bc..63d77c6 100644
--- a/virtinst/VirtualGraphics.py
+++ b/virtinst/VirtualGraphics.py
@@ -26,6 +26,8 @@ from virtinst import _virtinst as _
 
 class VirtualGraphics(VirtualDevice.VirtualDevice):
 
+    _virtual_device_type = VirtualDevice.VirtualDevice.VIRTUAL_DEV_GRAPHICS
+
     TYPE_SDL = "sdl"
     TYPE_VNC = "vnc"
 
diff --git a/virtinst/VirtualHostDevice.py b/virtinst/VirtualHostDevice.py
index fed15fd..a40514f 100644
--- a/virtinst/VirtualHostDevice.py
+++ b/virtinst/VirtualHostDevice.py
@@ -20,10 +20,14 @@
 import VirtualDevice
 import NodeDeviceParser
 import logging
+
+from virtinst import _util
 from virtinst import _virtinst as _
 
 class VirtualHostDevice(VirtualDevice.VirtualDevice):
 
+    _virtual_device_type = VirtualDevice.VirtualDevice.VIRTUAL_DEV_HOSTDEV
+
     def device_from_node(conn, name=None, nodedev=None):
         """
         Convert the passed libvirt node device name to a VirtualHostDevice
@@ -74,6 +78,8 @@ class VirtualHostDevice(VirtualDevice.VirtualDevice):
         self.type = None
 
         self.managed = True
+        if _util.get_uri_driver(self.conn.getURI()).lower() == "xen":
+            self.managed = False
 
         self._nodedev = nodedev
 
@@ -95,7 +101,7 @@ class VirtualHostDevice(VirtualDevice.VirtualDevice):
         xml += "      <source>\n"
         xml += self._get_source_xml()
         xml += "      </source>\n"
-        xml += "    </hostdev>\n"
+        xml += "    </hostdev>"
         return xml
 
 
@@ -200,9 +206,11 @@ class VirtualHostDevicePCI(VirtualHostDevice):
 
         try:
             # Do this as a sanity check, so that we don't fail at domain
-            # start time
-            self._nodedev.deviceDetach()
-            self._nodedev.deviceReset()
+            # start time. This is independent of the 'managed' state, since
+            # this should work regardless.
+            node = conn.nodeDeviceLookupByName(self._nodedev.name)
+            node.dettach()
+            node.reset()
         except Exception, e:
             raise RuntimeError(_("Could not detach PCI device: %s" % str(e)))
 
diff --git a/virtinst/VirtualInputDevice.py b/virtinst/VirtualInputDevice.py
new file mode 100644
index 0000000..da14aae
--- /dev/null
+++ b/virtinst/VirtualInputDevice.py
@@ -0,0 +1,59 @@
+#
+# Copyright 2009  Red Hat, Inc.
+# Cole Robinson <crobinso at redhat.com>
+#
+# 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 VirtualDevice
+from virtinst import _virtinst as _
+
+class VirtualInputDevice(VirtualDevice.VirtualDevice):
+
+    _virtual_device_type = VirtualDevice.VirtualDevice.VIRTUAL_DEV_INPUT
+
+    INPUT_TYPE_MOUSE = "mouse"
+    INPUT_TYPE_TABLET = "tablet"
+    input_types = [INPUT_TYPE_MOUSE, INPUT_TYPE_TABLET]
+
+    INPUT_BUS_PS2 = "ps2"
+    INPUT_BUS_USB = "usb"
+    INPUT_BUS_XEN = "xen"
+    input_buses = [INPUT_BUS_PS2, INPUT_BUS_USB, INPUT_BUS_XEN]
+
+    def __init__(self, conn):
+        VirtualDevice.VirtualDevice.__init__(self, conn)
+
+        self._type = self.INPUT_BUS_XEN
+        self._bus = self.INPUT_BUS_PS2
+
+    def get_type(self):
+        return self._type
+    def set_type(self, val):
+        if val not in self.input_types:
+            raise ValueError(_("Unknown input type '%s'.") % val)
+        self._type = val
+    type = property(get_type, set_type)
+
+    def get_bus(self):
+        return self._bus
+    def set_bus(self, val):
+        if val not in self.input_buses:
+            raise ValueError(_("Unknown input bus '%s'.") % val)
+        self._bus = val
+    bus = property(get_bus, set_bus)
+
+    def get_xml_config(self):
+        return "    <input type='%s' bus='%s'/>" % (self.type, self.bus)
diff --git a/virtinst/VirtualNetworkInterface.py b/virtinst/VirtualNetworkInterface.py
index 0e77519..7a35e5b 100644
--- a/virtinst/VirtualNetworkInterface.py
+++ b/virtinst/VirtualNetworkInterface.py
@@ -28,39 +28,73 @@ from virtinst import _virtinst as _
 
 class VirtualNetworkInterface(VirtualDevice.VirtualDevice):
 
+    _virtual_device_type = VirtualDevice.VirtualDevice.VIRTUAL_DEV_NET
+
     TYPE_BRIDGE  = "bridge"
     TYPE_VIRTUAL = "network"
     TYPE_USER    = "user"
+    network_types = [TYPE_BRIDGE, TYPE_VIRTUAL, TYPE_USER]
+
+    def get_network_type_desc(net_type):
+        """
+        Return human readable description for passed network type
+        """
+        desc = ""
+
+        if net_type == VirtualNetworkInterface.TYPE_BRIDGE:
+            desc = _("Shared physical device")
+        elif net_type ==  VirtualNetworkInterface.TYPE_VIRTUAL:
+            desc = _("Virtual networking")
+        elif net_type == VirtualNetworkInterface.TYPE_USER:
+            desc = _("Usermode networking")
+        else:
+            raise ValueError(_("Unknown network type '%s'") % net_type)
+
+        return desc
+    get_network_type_desc = staticmethod(get_network_type_desc)
 
     def __init__(self, macaddr=None, type=TYPE_BRIDGE, bridge=None,
                  network=None, model=None, conn=None):
         VirtualDevice.VirtualDevice.__init__(self, conn)
 
-        if (macaddr is not None and __builtin__.type(macaddr) is not str):
-            raise ValueError, _("MAC address must be a string.")
-
-        if macaddr is not None:
-            form = re.match("^([0-9a-fA-F]{1,2}:){5}[0-9a-fA-F]{1,2}$",macaddr)
-            if form is None:
-                raise ValueError, \
-                    _("MAC address must be of the format AA:BB:CC:DD:EE:FF")
-
         self._network = None
+        self._macaddr = None
+        self._type = None
 
-        self.macaddr = macaddr
         self.type = type
+        self.macaddr = macaddr
         self.bridge = bridge
         self.network = network
         self.model = model
+
         if self.type == self.TYPE_VIRTUAL:
             if network is None:
                 raise ValueError, _("A network name was not provided")
-        elif self.type == self.TYPE_BRIDGE:
-            pass
-        elif self.type == self.TYPE_USER:
-            pass
-        else:
-            raise ValueError, _("Unknown network type %s") % (type,)
+
+    def get_type(self):
+        return self._type
+    def set_type(self, val):
+        if val not in self.network_types:
+            raise ValueError, _("Unknown network type %s") % val
+        self._type = val
+    type = property(get_type, set_type)
+
+    def get_macaddr(self):
+        return self._macaddr
+    def set_macaddr(self, val):
+        if val is None:
+            self._macaddr = None
+            return
+
+        if __builtin__.type(val) is not str:
+            raise ValueError, _("MAC address must be a string.")
+
+        form = re.match("^([0-9a-fA-F]{1,2}:){5}[0-9a-fA-F]{1,2}$", val)
+        if form is None:
+            raise ValueError(_("MAC address must be of the format "
+                               "AA:BB:CC:DD:EE:FF"))
+        self._macaddr = val
+    macaddr = property(get_macaddr, set_macaddr)
 
     def get_network(self):
         return self._network
@@ -127,7 +161,7 @@ class VirtualNetworkInterface(VirtualDevice.VirtualDevice):
                     raise RuntimeError(msg)
 
         if not self.bridge and self.type == "bridge":
-            self.bridge = _util.default_bridge()
+            self.bridge = _util.default_bridge2(self.conn)
 
     def get_xml_config(self):
         src_xml = ""
diff --git a/virtinst/VirtualVideoDevice.py b/virtinst/VirtualVideoDevice.py
new file mode 100644
index 0000000..562353c
--- /dev/null
+++ b/virtinst/VirtualVideoDevice.py
@@ -0,0 +1,71 @@
+#
+# Copyright 2009  Red Hat, Inc.
+# Cole Robinson <crobinso at redhat.com>
+#
+# 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 VirtualDevice
+
+class VirtualVideoDevice(VirtualDevice.VirtualDevice):
+
+    _virtual_device_type = VirtualDevice.VirtualDevice.VIRTUAL_DEV_VIDEO
+
+    # Default models list
+    _model_types = [ "cirrus", "vga", "vmvga", "xen" ]
+
+    def __init__(self, conn):
+        VirtualDevice.VirtualDevice.__init__(self, conn=conn)
+
+        self._model_type    = None
+        self._vram          = None
+        self._heads         = None
+
+    def get_model_types(self):
+        return self._model_types[:]
+    model_types = property(get_model_types)
+
+    def get_model_type(self):
+        return self._model_type
+    def set_model_type(self, val):
+        self._model_type = val
+    model_type = property(get_model_type, set_model_type)
+
+    def get_vram(self):
+        return self._vram
+    def set_vram(self, val):
+        self._vram = val
+    vram = property(get_vram, set_vram)
+
+    def get_heads(self):
+        return self._heads
+    def set_heads(self, val):
+        self._heads = val
+    heads = property(get_heads, set_heads)
+
+    def get_xml_config(self):
+        model_xml = "      <model"
+        if self.model_type:
+            model_xml += " type='%s'" % self.model_type
+        if self.vram:
+            model_xml += " vram='%s'" % self.vram
+        if self.heads:
+            model_xml += " heads='%s'" % self.heads
+        model_xml += "/>\n"
+
+        xml = ("    <video>\n" +
+               model_xml +
+               "    </video>")
+        return xml
diff --git a/virtinst/__init__.py b/virtinst/__init__.py
index 2d64dcf..b24dccb 100644
--- a/virtinst/__init__.py
+++ b/virtinst/__init__.py
@@ -27,13 +27,17 @@ def _virtinst(msg):
 import util
 import Storage
 from Guest import Guest, XenGuest
+from VirtualDevice import VirtualDevice
 from VirtualNetworkInterface import VirtualNetworkInterface, \
                                     XenNetworkInterface
 from VirtualGraphics import VirtualGraphics
 from VirtualAudio import VirtualAudio
+from VirtualInputDevice import VirtualInputDevice
 from VirtualDisk import VirtualDisk, XenDisk
 from VirtualHostDevice import (VirtualHostDevice, VirtualHostDeviceUSB,
                                VirtualHostDevicePCI)
+from VirtualCharDevice import VirtualCharDevice
+from VirtualVideoDevice import VirtualVideoDevice
 from FullVirtGuest import FullVirtGuest
 from ParaVirtGuest import ParaVirtGuest
 from DistroInstaller import DistroInstaller
@@ -51,4 +55,6 @@ __all__ = ["Guest", "XenGuest", "VirtualNetworkInterface",
            "VirtualDisk", "XenDisk", "FullVirtGuest", "ParaVirtGuest",
            "DistroInstaller", "PXEInstaller", "LiveCDInstaller",
            "ImportInstaller", "ImageInstaller", "CloneDesign", "Storage",
-           "User", "util"]
+           "User", "util", "VirtualDevice",
+           "VirtualHostDevice", "VirtualHostDeviceUSB", "VirtualVideoDevice",
+           "VirtualHostDevicePCI", "VirtualCharDevice", "VirtualInputDevice"]
diff --git a/virtinst/_util.py b/virtinst/_util.py
index ff5bc91..0c5781f 100644
--- a/virtinst/_util.py
+++ b/virtinst/_util.py
@@ -28,12 +28,21 @@ import os
 import re
 import commands
 import logging
+import traceback
+import platform
+import subprocess
 
+import libxml2
 import libvirt
 
-from virtinst import util
+import virtinst.util as util
 from virtinst import _virtinst as _
 
+try:
+    import selinux
+except ImportError:
+    selinux = None
+
 def is_vdisk(path):
     if not os.path.exists("/usr/sbin/vdiskadm"):
         return False
@@ -97,10 +106,18 @@ def vm_uuid_collision(conn, uuid):
     Check if passed UUID string is in use by another guest of the connection
     Returns true/false
     """
+    return libvirt_collision(conn.lookupByUUIDString, uuid)
+
+def libvirt_collision(collision_cb, val):
+    """
+    Run the passed collision function with val as the only argument:
+    If libvirtError is raised, return False
+    If no libvirtError raised, return True
+    """
     check = False
-    if uuid is not None:
+    if val is not None:
         try:
-            if conn.lookupByUUIDString(uuid) is not None:
+            if collision_cb(val) is not None:
                 check = True
         except libvirt.libvirtError:
             pass
@@ -175,6 +192,187 @@ def fetch_all_guests(conn):
 
     return (active, inactive)
 
+def log_exception(msg=""):
+    """
+    Log the most recent backtrace at the DEBUG level, rather than the
+    ERROR level (which goes to stderr when used with the cli tools)
+
+    @param msg: Option message to log before the backtrace
+    """
+    tb = "".join(traceback.format_exc()).strip()
+    if tb != "None":
+        if msg:
+            msg += "\n"
+        msg += tb
+
+    if msg:
+        logging.debug(msg)
+
+def set_xml_path(xml, path, newval):
+    """
+    Set the passed xml xpath to the new value
+    """
+    doc = None
+    ctx = None
+    result = None
+
+    try:
+        doc = libxml2.parseDoc(xml)
+        ctx = doc.xpathNewContext()
+
+        ret = ctx.xpathEval(path)
+        if ret != None:
+            if type(ret) == list:
+                if len(ret) == 1:
+                    ret[0].setContent(newval)
+            else:
+                ret.setContent(newval)
+
+        result = doc.serialize()
+    finally:
+        if doc:
+            doc.freeDoc()
+        if ctx:
+            ctx.xpathFreeContext()
+    return result
+
+
+def generate_name(base, collision_cb, suffix="", lib_collision=True,
+                  start_num=0, sep="-"):
+    """
+    Generate a new name from the passed base string, verifying it doesn't
+    collide with the collision callback.
+
+    This can be used to generate disk path names from the parent VM or pool
+    name. Names generated look like 'base-#suffix', ex:
+
+    If foobar, and foobar-1.img already exist, and:
+    base   = "foobar"
+    suffix = ".img"
+
+    output = "foobar-2.img"
+
+    @param base: The base string to use for the name (e.g. "my-orig-vm-clone")
+    @param collision_cb: A callback function to check for collision,
+                         receives the generated name as its only arg
+    @param lib_collision: If true, the collision_cb is not a boolean function,
+                          and instead throws a libvirt error on failure
+    @start_num: The number to start at for generating non colliding names
+    @sep: The seperator to use between the basename and the generated number
+          (default is "-")
+    """
+
+    for i in range(start_num, start_num + 100000):
+        tryname = base
+        if i != 0:
+            tryname += ("%s%d" % (sep, i))
+        tryname += suffix
+        if lib_collision:
+            if not libvirt_collision(collision_cb, tryname):
+                return tryname
+        else:
+            if not collision_cb(tryname):
+                return tryname
+    raise ValueError(_("Name generation range exceeded."))
+
+# Selinux helpers
+def have_selinux():
+    return bool(selinux) and bool(selinux.is_selinux_enabled())
+
+def selinux_restorecon(path):
+    if have_selinux() and hasattr(selinux, "restorecon"):
+        try:
+            selinux.restorecon(path)
+        except Exception, e:
+            logging.debug("Restoring context for '%s' failed: %s" % (path,
+                                                                     str(e)))
+def selinux_getfilecon(path):
+    if have_selinux():
+        return selinux.getfilecon(path)[1]
+    return None
+
+def selinux_setfilecon(storage, label):
+    """
+    Wrapper for selinux.setfilecon. Libvirt may be able to relabel existing
+    storage someday, we can fold that into this.
+    """
+    if have_selinux():
+        selinux.setfilecon(storage, label)
+
+def selinux_is_label_valid(label):
+    """
+    Check if the passed label is an actually valid selinux context label
+    Returns False if selinux support is not present
+    """
+    return bool(have_selinux() and (not hasattr(selinux, "context_new") or
+                                    selinux.context_new(label)))
+
+def selinux_rw_label():
+    """
+    Expected SELinux label for read/write disks
+    """
+    con = "system_u:object_r:virt_image_t:s0"
+
+    if not selinux_is_label_valid(con):
+        con = ""
+    return con
+
+def selinux_readonly_label():
+    """
+    Expected SELinux label for things like readonly installation media
+    """
+    con = "system_u:object_r:virt_content_t:s0"
+
+    if not selinux_is_label_valid(con):
+        # The RW label is newer than the RO one, so see if that exists
+        con = selinux_rw_label()
+    return con
+
+def default_nic():
+    """
+    Return the default NIC to use, if one is specified.
+    """
+
+    dev = ''
+
+    if platform.system() != 'SunOS':
+        return dev
+
+    # XXX: fails without PRIV_XVM_CONTROL
+    proc = subprocess.Popen(['/usr/lib/xen/bin/xenstore-read',
+        'device-misc/vif/default-nic'], stdout=subprocess.PIPE,
+        stderr=subprocess.PIPE)
+    out = proc.stdout.readlines()
+    if len(out) > 0:
+        dev = out[0].rstrip()
+
+    return dev
+
+def default_bridge2(conn = None):
+    if platform.system() == 'SunOS':
+        return ["bridge", default_nic()]
+
+    dev = util.default_route()
+
+    if (dev is not None and
+        (not conn or not is_uri_remote(conn.getURI()))):
+        # New style peth0 == phys dev, eth0 == bridge, eth0 == default route
+        if os.path.exists("/sys/class/net/%s/bridge" % dev):
+            return ["bridge", dev]
+
+        # Old style, peth0 == phys dev, eth0 == netloop, xenbr0 == bridge,
+        # vif0.0 == netloop enslaved, eth0 == default route
+        try:
+            defn = int(dev[-1])
+        except:
+            defn = -1
+
+        if (defn >= 0 and
+            os.path.exists("/sys/class/net/peth%d/brport" % defn) and
+            os.path.exists("/sys/class/net/xenbr%d/bridge" % defn)):
+            return ["bridge", "xenbr%d" % defn]
+
+    return None
 
 #
 # These functions accidentally ended up in the API under virtinst.util
@@ -206,3 +404,4 @@ get_uri_driver = util.get_uri_driver
 is_storage_capable = util.is_storage_capable
 get_xml_path = util.get_xml_path
 lookup_pool_by_path = util.lookup_pool_by_path
+check_keytable = util.check_keytable
diff --git a/virtinst/cli.py b/virtinst/cli.py
index 12ab73b..c4d121c 100644
--- a/virtinst/cli.py
+++ b/virtinst/cli.py
@@ -23,19 +23,27 @@ import os, sys
 import logging
 import logging.handlers
 import locale
+import optparse
 from optparse import OptionValueError, OptionParser
 
 import libvirt
 import _util
 import virtinst
 from virtinst import CapabilitiesParser, VirtualNetworkInterface, \
-                     VirtualGraphics, VirtualAudio, User
+                     VirtualGraphics, VirtualAudio, VirtualDisk, User
 from virtinst import _virtinst as _
 
 MIN_RAM = 64
 force = False
 doprompt = True
 
+def check_if_test_uri_remote(uri):
+    magic = "__virtinst_test_remote__"
+    if uri and uri.startswith(magic):
+        uri = uri.replace(magic, "")
+        _util.is_uri_remote = lambda uri_: True
+    return uri
+
 class VirtOptionParser(OptionParser):
     '''Subclass to get print_help to work properly with non-ascii text'''
 
@@ -51,6 +59,30 @@ class VirtOptionParser(OptionParser):
         encoding = self._get_encoding(file)
         file.write(self.format_help().encode(encoding, "replace"))
 
+class VirtHelpFormatter(optparse.IndentedHelpFormatter):
+    """
+    Subclass the default help formatter to allow printing newline characters
+    in --help output. The way we do this is a huge hack :(
+    """
+    oldwrap = None
+
+    def format_option(self, option):
+        self.oldwrap = optparse.textwrap.wrap
+        ret = []
+        try:
+            optparse.textwrap.wrap = self._textwrap_wrapper
+            ret = optparse.IndentedHelpFormatter.format_option(self, option)
+        finally:
+            optparse.textwrap.wrap = self.oldwrap
+        return ret
+
+    def _textwrap_wrapper(self, text, width):
+        ret = []
+        for line in text.split("\n"):
+            ret.extend(self.oldwrap(line, width))
+        if ret:
+            print "\n".join(ret)
+        return ret
 #
 # Setup helpers
 #
@@ -104,27 +136,135 @@ def setupLogging(appname, debug=False):
         sys.__excepthook__(type, val, tb)
     sys.excepthook = exception_log
 
+    # Log the app command string
+    logging.debug("Launched with command line:\n%s" % " ".join(sys.argv))
+
 def fail(msg):
     """Convenience function when failing in cli app"""
     logging.error(msg)
-    import traceback
-    tb = "".join(traceback.format_exc()).strip()
-    if tb != "None":
-        logging.debug(tb)
+    _util.log_exception()
+    _fail_exit()
+
+def _fail_exit():
     sys.exit(1)
 
 def nice_exit():
     print _("Exiting at user request.")
     sys.exit(0)
 
+# Connection opening helper functions
 def getConnection(connect):
-    if not User.current().has_priv(User.PRIV_CREATE_DOMAIN, connect):
+    if (connect and
+        not User.current().has_priv(User.PRIV_CREATE_DOMAIN, connect)):
         fail(_("Must be root to create Xen guests"))
-    if connect is None:
-        fail(_("Could not find usable default libvirt connection."))
 
-    logging.debug("Using libvirt URI '%s'" % connect)
-    return libvirt.open(connect)
+    # Hack to facilitate remote unit testing
+    connect = check_if_test_uri_remote(connect)
+
+    logging.debug("Requesting libvirt URI %s" % (connect or "default"))
+    conn = open_connection(connect)
+    logging.debug("Received libvirt URI %s" % conn.getURI())
+
+    return conn
+
+
+def open_connection(uri):
+    open_flags = 0
+    valid_auth_options = [libvirt.VIR_CRED_AUTHNAME,
+                          libvirt.VIR_CRED_PASSPHRASE,
+                          libvirt.VIR_CRED_EXTERNAL]
+    authcb = do_creds
+    authcb_data = None
+
+    return libvirt.openAuth(uri, [valid_auth_options, authcb, authcb_data],
+                            open_flags)
+
+def do_creds(creds, cbdata):
+    try:
+        return _do_creds(creds, cbdata)
+    except:
+        _util.log_exception("Error in creds callback.")
+        raise
+
+def _do_creds(creds, cbdata_ignore):
+
+    if (len(creds) == 1 and
+        creds[0][0] == libvirt.VIR_CRED_EXTERNAL and
+        creds[0][2] == "PolicyKit"):
+        return _do_creds_polkit(creds[0][1])
+
+    for cred in creds:
+        if cred[0] == libvirt.VIR_CRED_EXTERNAL:
+            return -1
+
+    return _do_creds_authname(creds)
+
+# PolicyKit auth
+def _do_creds_polkit(action):
+    if os.getuid() == 0:
+        logging.debug("Skipping policykit check as root")
+        return 0 # Success
+    logging.debug("Doing policykit for %s" % action)
+
+    import subprocess
+    import commands
+
+    bin_path = "/usr/bin/polkit-auth"
+
+    if not os.path.exists(bin_path):
+        logging.debug("%s not present, skipping polkit auth." % bin_path)
+        return 0
+
+    cmdstr = "%s %s" % (bin_path, "--explicit")
+    output = commands.getstatusoutput(cmdstr)
+    if output[1].count(action):
+        logging.debug("User already authorized for %s." % action)
+        # Hide spurious output from polkit-auth
+        popen_stdout = subprocess.PIPE
+        popen_stderr = subprocess.PIPE
+    else:
+        popen_stdout = None
+        popen_stderr = None
+
+    # Force polkit prompting to be text mode. Not strictly required, but
+    # launching a dialog is overkill.
+    env = os.environ.copy()
+    env["POLKIT_AUTH_FORCE_TEXT"] = "set"
+
+    cmd = [bin_path, "--obtain", action]
+    proc = subprocess.Popen(cmd, env=env, stdout=popen_stdout,
+                            stderr=popen_stderr)
+    out, err = proc.communicate()
+
+    if out and popen_stdout:
+        logging.debug("polkit-auth stdout: %s" % out)
+    if err and popen_stderr:
+        logging.debug("polkit-auth stderr: %s" % err)
+
+    return 0
+
+# SASL username/pass auth
+def _do_creds_authname(creds):
+    retindex = 4
+
+    for cred in creds:
+        credtype, prompt, ignore, ignore, ignore = cred
+        prompt += ": "
+
+        res = cred[retindex]
+        if credtype == libvirt.VIR_CRED_AUTHNAME:
+            res = raw_input(prompt)
+        elif credtype == libvirt.VIR_CRED_PASSPHRASE:
+            import getpass
+            res = getpass.getpass(prompt)
+        else:
+            logging.debug("Unknown auth type in creds callback: %d" %
+                          credtype)
+            return -1
+
+        cred[retindex] = res
+
+    return 0
 
 #
 # Prompting
@@ -139,15 +279,24 @@ def set_prompt(prompt=True):
     global doprompt
     doprompt = prompt
 
-def prompt_for_input(prompt = "", val = None):
+def is_prompt():
+    return doprompt
+
+def prompt_for_input(noprompt_err, prompt = "", val = None, failed=False):
     if val is not None:
         return val
-    if force:
-        fail(_("Force flag is set but input was required. "
-               "Prompt was: %s" % prompt))
-    if not doprompt:
-        fail(_("Prompting disabled, but input was requested. "
-               "Prompt was: %s" % prompt))
+
+    if force or not is_prompt():
+        if failed:
+            # We already failed validation in a previous function, just exit
+            _fail_exit()
+
+        msg = noprompt_err
+        if not force and not msg.count("--prompt"):
+            # msg wasn't already appended to from yes_or_no
+            msg = noprompt_err + " " + _("(use --prompt to run interactively)")
+        fail(msg)
+
     print prompt + " ",
     return sys.stdin.readline().strip()
 
@@ -159,48 +308,180 @@ def yes_or_no(s):
         return False
     raise ValueError, "A yes or no response is required"
 
-def prompt_for_yes_or_no(prompt):
+def prompt_for_yes_or_no(warning, question):
     """catches yes_or_no errors and ensures a valid bool return"""
     if force:
         logging.debug("Forcing return value of True to prompt '%s'")
         return True
 
-    if not doprompt:
-        fail(_("Prompting disabled, but yes/no was requested. "
-               "Try --force to force 'yes' for such prompts. "
-               "Prompt was: %s" % prompt))
+    errmsg = warning + _(" (Use --prompt or --force to override)")
 
     while 1:
-        inp = prompt_for_input(prompt, None)
+        inp = prompt_for_input(errmsg, warning + question, None)
         try:
             res = yes_or_no(inp)
             break
         except ValueError, e:
-            print _("ERROR: "), e
+            logging.error(e)
             continue
     return res
 
+# Prompt the user with 'prompt_txt' for a value. Set 'obj'.'param_name'
+# to the entered value. If it errors, use 'err_txt' to print a error
+# message, and then re prompt.
+def prompt_loop(prompt_txt, noprompt_err, passed_val, obj, param_name,
+                err_txt="%s", func=None):
+    failed = False
+    while True:
+        passed_val = prompt_for_input(noprompt_err, prompt_txt, passed_val,
+                                      failed)
+        try:
+            if func:
+                return func(passed_val)
+            setattr(obj, param_name, passed_val)
+            break
+        except (ValueError, RuntimeError), e:
+            logging.error(err_txt % e)
+            passed_val = None
+            failed = True
+
+# Register vnc + sdl options for virt-install and virt-image
+def graphics_option_group(parser):
+    from optparse import OptionGroup
+
+    vncg = OptionGroup(parser, _("Graphics Configuration"))
+    vncg.add_option("", "--vnc", action="store_true", dest="vnc",
+                    help=_("Use VNC for graphics support"))
+    vncg.add_option("", "--vncport", type="int", dest="vncport",
+                    help=_("Port to use for VNC"))
+    vncg.add_option("", "--vnclisten", type="string", dest="vnclisten",
+                    help=_("Address to listen on for VNC connections."))
+    vncg.add_option("-k", "--keymap", type="string", dest="keymap",
+                    action="callback", callback=check_before_store,
+                    help=_("set up keymap for the VNC console"))
+    vncg.add_option("", "--sdl", action="store_true", dest="sdl",
+                    help=_("Use SDL for graphics support"))
+    vncg.add_option("", "--nographics", action="store_true",
+                    help=_("Don't set up a graphical console for the guest."))
+    return vncg
+
+# Specific function for disk prompting. Returns a validated VirtualDisk
+# device.
+#
+def disk_prompt(prompt_txt, arg_dict, warn_overwrite=False, prompt_size=True):
+
+    retry_path = True
+    conn = arg_dict.get("conn")
+    passed_path = arg_dict.get("path")
+    size = arg_dict.get("size")
+
+    no_path_needed = (bool(arg_dict.get("volInstall")) or
+                      bool(arg_dict.get("volName")))
+
+    while 1:
+        if not retry_path:
+            passed_path = None
+            size = None
+        retry_path = False
+
+        msg = None
+        patherr = _("A disk path must be specified.")
+        if not prompt_txt:
+            msg = _("What would you like to use as the disk (file path)?")
+            if not size is None:
+                msg = _("Please enter the path to the file you would like to "
+                        "use for storage. It will have size %sGB.") %(size,)
+
+        if not no_path_needed:
+            path = prompt_for_input(patherr, prompt_txt or msg, passed_path)
+        else:
+            path = None
+        arg_dict["path"] = path
+
+        sizeerr = _("A size must be specified for non-existent disks.")
+        if path and not size and prompt_size:
+            size_prompt = _("How large would you like the disk (%s) to "
+                            "be (in gigabytes)?") % path
+
+            try:
+                if not VirtualDisk.path_exists(conn, path):
+                    size = prompt_loop(size_prompt, sizeerr, size, None, None,
+                                       func=float)
+            except Exception, e:
+                # Path is probably bogus, raise the error
+                logging.error(str(e))
+                continue
+        arg_dict["size"] = size
+
+        # Build disk object for validation
+        try:
+            dev = VirtualDisk(**arg_dict)
+        except ValueError, e:
+            if is_prompt():
+                logging.error(e)
+                continue
+            else:
+                fail(_("Error with storage parameters: %s" % str(e)))
+
+        askmsg = _("Do you really want to use this disk (yes or no)")
+
+        # Prompt if disk file already exists and preserve mode is not used
+        if warn_overwrite and os.path.exists(dev.path):
+            msg = (_("This will overwrite the existing path '%s'!\n" %
+                   dev.path))
+            if not prompt_for_yes_or_no(msg, askmsg):
+                continue
+
+        # Check disk conflicts
+        if dev.is_conflict_disk(conn) is True:
+            msg = (_("Disk %s is already in use by another guest!\n" %
+                   dev.path))
+            if not prompt_for_yes_or_no(msg, askmsg):
+                continue
+
+        isfatal, errmsg = dev.is_size_conflict()
+        if isfatal:
+            fail(errmsg)
+        elif errmsg:
+            if not prompt_for_yes_or_no(errmsg, askmsg):
+                continue
+
+        # Passed all validation, return path
+        return dev
 #
 # Ask for attributes
 #
 
-def get_name(name, guest):
+def listify(l):
+    if l is None:
+        return []
+    elif type(l) != list:
+        return [ l ]
+    else:
+        return l
+
+def get_name(name, guest, image_name=None):
+    prompt_txt = _("What is the name of your virtual machine?")
+    err_txt = _("A name is required for the virtual machine.")
+
     if name is None:
-        fail(_("A name is required for the virtual machine."))
-    try:
-        guest.name = name
-    except ValueError, e:
-        fail(e)
-
-def get_memory(memory, guest):
-    if memory is None:
-        fail(_("Memory amount is required for the virtual machine."))
-    if memory < MIN_RAM:
-        fail(_("Installs currently require %d megs of RAM.") % MIN_RAM)
-    try:
-        guest.memory = memory
-    except ValueError, e:
-        fail(e)
+        name = image_name
+    prompt_loop(prompt_txt, err_txt, name, guest, "name")
+
+def get_memory(memory, guest, image_memory=None):
+    prompt_txt = _("How much RAM should be allocated (in megabytes)?")
+    err_txt = _("Memory amount is required for the virtual machine.")
+    def check_memory(mem):
+        mem = int(mem)
+        if mem < MIN_RAM:
+            raise ValueError(_("Installs currently require %d megs "
+                               "of RAM.") % MIN_RAM)
+        guest.memory = mem
+
+    if memory is None and image_memory is not None:
+        memory = int(image_memory)/1024
+    prompt_loop(prompt_txt, err_txt, memory, guest, "memory",
+                func=check_memory)
 
 def get_uuid(uuid, guest):
     if uuid:
@@ -209,16 +490,21 @@ def get_uuid(uuid, guest):
         except ValueError, e:
             fail(e)
 
-def get_vcpus(vcpus, check_cpu, guest, conn):
-
+def get_vcpus(vcpus, check_cpu, guest, conn, image_vcpus=None):
     if check_cpu:
         hostinfo = conn.getInfo()
         cpu_num = hostinfo[4] * hostinfo[5] * hostinfo[6] * hostinfo[7]
-        if vcpus <= cpu_num:
-            pass
-        elif not prompt_for_yes_or_no(_("You have asked for more virtual CPUs (%d) than there are physical CPUs (%d) on the host. This will work, but performance will be poor. Are you sure? (yes or no)") % (vcpus, cpu_num)):
-            nice_exit()
+        if not vcpus <= cpu_num:
+            msg = _("You have asked for more virtual CPUs (%d) than there "
+                    "are physical CPUs (%d) on the host. This will work, "
+                    "but performance will be poor. ") % (vcpus, cpu_num)
+            askmsg = _("Are you sure? (yes or no)")
 
+            if not prompt_for_yes_or_no(msg, askmsg):
+                nice_exit()
+
+    if vcpus is None and image_vcpus is not None:
+        vcpus = int(image_vcpus)
     if vcpus is not None:
         try:
             guest.vcpus = vcpus
@@ -261,30 +547,81 @@ def get_cpuset(cpuset, mem, guest, conn):
         guest.cpuset = cpustr
     return
 
-def get_network(mac, network, guest):
-    if mac == "RANDOM":
-        mac = None
-    if network == "user":
-        n = VirtualNetworkInterface(mac, type="user", conn=guest.conn)
-    elif network[0:6] == "bridge":
-        n = VirtualNetworkInterface(mac, type="bridge", bridge=network[7:],
-                                    conn=guest.conn)
-    elif network[0:7] == "network":
-        n = VirtualNetworkInterface(mac, type="network", network=network[8:],
-                                    conn=guest.conn)
-    else:
-        fail(_("Unknown network type ") + network)
+def get_network(net_kwargs, guest):
+    n = VirtualNetworkInterface(**net_kwargs)
     guest.nics.append(n)
 
-def digest_networks(conn, macs, bridges, networks, nics = 0):
-    def listify(l):
-        if l is None:
-            return []
-        elif type(l) != list:
-            return [ l ]
+
+def parse_optstr(optstr, basedict=None):
+    """
+    Helper function for parsing opt strings of the form
+    opt1=val1,opt2=val2,...
+    'basedict' is a starting dictionary, so the caller can easily set
+    default values, etc.
+
+    Returns a dictionary of {'opt1': 'val1', 'opt2': 'val2'}
+    """
+    optstr = str(optstr or "")
+    optdict = basedict or {}
+
+    args = optstr.split(",")
+    for opt in args:
+        if not opt:
+            continue
+
+        opt_type = None
+        opt_val = None
+        if opt.count("="):
+            opt_type, opt_val = opt.split("=", 1)
+            optdict[opt_type.lower()] = opt_val.lower()
         else:
-            return l
+            optdict[opt.lower()] = None
+
+    return optdict
+
+def parse_network_opts(conn, mac, network):
+    net_type = None
+    network_name = None
+    bridge_name = None
+    model = None
+    option_whitelist = ["model", "mac"]
+
+    args = network.split(",")
+
+    # Determine net type and bridge vs. network
+    netdata = None
+    typestr = args[0]
+    del(args[0])
 
+    if typestr.count(":"):
+        net_type, netdata = typestr.split(":", 1)
+    elif typestr.count("="):
+        net_type, netdata = typestr.split("=", 1)
+    else:
+        net_type = typestr
+
+    if net_type == VirtualNetworkInterface.TYPE_VIRTUAL:
+        network_name = netdata
+    elif net_type == VirtualNetworkInterface.TYPE_BRIDGE:
+        bridge_name = netdata
+
+    # Pass the remaining arg=value pairs
+    opts = parse_optstr(",".join(args))
+    for opt_type, ignore_val in opts.items():
+        if opt_type not in option_whitelist:
+            fail(_("Unknown network option '%s'") % opt_type)
+
+    model   = opts.get("model")
+    mac     = opts.get("mac") or mac
+
+    # The keys here correspond to parameter names for VirtualNetworkInterface
+    # __init__
+    if mac == "RANDOM":
+        mac = None
+    return { "conn" : conn, "type" : net_type, "bridge": bridge_name,
+             "network" : network_name, "model" : model , "macaddr" : mac }
+
+def digest_networks(conn, macs, bridges, networks, nics = 0):
     macs     = listify(macs)
     bridges  = listify(bridges)
     networks = listify(networks)
@@ -294,9 +631,8 @@ def digest_networks(conn, macs, bridges, networks, nics = 0):
 
     if bridges:
         networks = map(lambda b: "bridge:" + b, bridges)
-    
-    # With just one mac, create a default network if one is not
-    # specified.
+
+    # With just one mac, create a default network if one is not specified.
     if len(macs) == 1 and len(networks) == 0:
         if User.current().has_priv(User.PRIV_CREATE_NETWORK, conn.getURI()):
             net = _util.default_network(conn)
@@ -304,16 +640,14 @@ def digest_networks(conn, macs, bridges, networks, nics = 0):
         else:
             networks.append("user")
 
-    # ensure we have less macs then networks. Auto fill in the remaining
-    # macs       
+    # ensure we have less macs then networks, otherwise autofill the mac list
     if len(macs) > len(networks):
-        fail(_("Need to pass equal numbers of networks & mac addresses"))
+        fail(_("Cannot pass more mac addresses than networks."))
     else:
         for dummy in range (len(macs),len(networks)):
             macs.append(None)
-            
-    
-    # Create extra networks up to the number of nics requested 
+
+    # Create extra networks up to the number of nics requested
     if len(macs) < nics:
         for dummy in range(len(macs),nics):
             if User.current().has_priv(User.PRIV_CREATE_NETWORK, conn.getURI()):
@@ -322,10 +656,16 @@ def digest_networks(conn, macs, bridges, networks, nics = 0):
             else:
                 networks.append("user")
             macs.append(None)
-            
-    return (macs, networks)
 
-def get_graphics(vnc, vncport, nographics, sdl, keymap, guest):
+    net_init_dicts = []
+    for i in range(0, len(networks)):
+        mac = macs[i]
+        netstr = networks[i]
+        net_init_dicts.append(parse_network_opts(conn, mac, netstr))
+
+    return net_init_dicts
+
+def get_graphics(vnc, vncport, vnclisten, nographics, sdl, keymap, guest):
     if (vnc and nographics) or \
        (vnc and sdl) or \
        (sdl and nographics):
@@ -348,10 +688,16 @@ def get_graphics(vnc, vncport, nographics, sdl, keymap, guest):
         return
     if vnc is not None:
         guest.graphics_dev = VirtualGraphics(type=VirtualGraphics.TYPE_VNC)
-    if vncport:
-        guest.graphics_dev.port = vncport
+        if vncport:
+            guest.graphics_dev.port = vncport
+        if vnclisten:
+            guest.graphics_dev.listen = vnclisten
     if keymap:
-        guest.graphics_dev.keymap = keymap
+        checked_keymap = _util.check_keytable(keymap)
+        if checked_keymap:
+            guest.graphics_dev.keymap = checked_keymap
+        else:
+            raise ValueError, _("Didn't match keymap '%s' in keytable!" % keymap)
 
 def get_sound(sound, guest):
 
@@ -370,6 +716,15 @@ def get_hostdevs(hostdevs, guest):
                                                           name=devname)
         guest.hostdevs.append(dev)
 
+def get_video(video_models, guest):
+    if not video_models:
+        return
+
+    for model in video_models:
+        dev = virtinst.VirtualVideoDevice(guest.conn)
+        dev.model_type = model
+        guest.add_device(dev)
+
 ### Option parsing
 def check_before_store(option, opt_str, value, parser):
     if len(value) == 0:
diff --git a/virtinst/osdict.py b/virtinst/osdict.py
index 385010f..54d839d 100644
--- a/virtinst/osdict.py
+++ b/virtinst/osdict.py
@@ -19,6 +19,9 @@
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
 # MA 02110-1301 USA.
 
+import libvirt
+
+import _util
 
 """
 Default values for OS_TYPES keys. Can be overwritten at os_type or
@@ -64,6 +67,68 @@ def sort_helper(tosort):
 
     return retlist
 
+def parse_key_entry(conn, hv_type, key_entry):
+    d = _util.get_uri_driver(conn.getURI())
+    libver = libvirt.getVersion()
+    try:
+        drvver = libvirt.getVersion(d)[1]
+    except:
+        drvver = 0
+
+    if type(key_entry) == list:
+        # List of tuples with hv_type, version, etc. mappings
+        for tup in key_entry:
+            exp_hvs = tup[0]
+            if type(exp_hvs) != list:
+                exp_hvs = [exp_hvs]
+            exp_hv_ver = 0
+            exp_lib_ver = 0
+            val = tup[-1]
+
+            if len(tup) > 2:
+                exp_hv_ver = tup[1]
+            if len(tup) > 3:
+                exp_lib_ver = tup[2]
+
+            if hv_type not in exp_hvs and "all" not in exp_hvs:
+                continue
+
+            if exp_hv_ver and drvver > exp_hv_ver:
+                continue
+
+            if exp_lib_ver and libver > exp_lib_ver:
+                continue
+
+            return val
+    else:
+        return key_entry
+
+def lookup_osdict_key(conn, hv_type, os_type, var, key):
+
+    dictval = DEFAULTS[key]
+    if os_type:
+        if var and OS_TYPES[os_type]["variants"][var].has_key(key):
+            dictval = OS_TYPES[os_type]["variants"][var][key]
+        elif OS_TYPES[os_type].has_key(key):
+            dictval = OS_TYPES[os_type][key]
+
+    return parse_key_entry(conn, hv_type, dictval)
+
+
+def lookup_device_param(conn, hv_type, os_type, var, device_key, param):
+
+    os_devs = lookup_osdict_key(conn, hv_type, os_type, var, "devices")
+    default_devs = DEFAULTS["devices"]
+
+    for devs in [os_devs, default_devs]:
+        if not devs.has_key(device_key):
+            continue
+
+        return parse_key_entry(conn, hv_type, devs[device_key][param])
+
+    raise RuntimeError(_("Invalid dictionary entry for device '%s %s'" %
+                       (device_key, param)))
+
 # NOTE: keep variant keys using only lowercase so we can do case
 #       insensitive checks on user passed input
 OS_TYPES = {\
@@ -107,14 +172,35 @@ OS_TYPES = {\
                         "input" : { "type" : [ (["all"], "tablet") ],
                                     "bus"  : [ (["all"], "usb"), ] },
                      }},
+        "fedora12": { "label": "Fedora 12", "distro": "fedora",
+                      "devices" : {
+                        "disk" : { "bus"   : [ (["kvm"], "virtio") ] },
+                        "net"  : { "model" : [ (["kvm"], "virtio") ] },
+                        "input" : { "type" : [ (["all"], "tablet") ],
+                                    "bus"  : [ (["all"], "usb"), ] },
+                     }},
         "sles10": { "label": "Suse Linux Enterprise Server",
                     "distro": "suse" },
+        "sles11": { "label": "Suse Linux Enterprise Server 11",
+                    "distro": "suse",
+                      "devices" : {
+                        "disk" : { "bus"   : [ (["kvm"], "virtio") ] },
+                        "net"  : { "model" : [ (["kvm"], "virtio") ] },
+                    },
+                  },
         "debianetch": { "label": "Debian Etch", "distro": "debian" },
         "debianlenny": { "label": "Debian Lenny", "distro": "debian",
                       "devices" : {
                         "disk" : { "bus"   : [ (["kvm"], "virtio") ] },
                         "net"  : { "model" : [ (["kvm"], "virtio") ] }
                       }},
+        "debiansqueeze": { "label": "Debian Squeeze", "distro": "debian",
+                      "devices" : {
+                        "disk" : { "bus"   : [ (["kvm"], "virtio") ] },
+                        "net"  : { "model" : [ (["kvm"], "virtio") ] },
+                        "input" : { "type" : [ (["all"], "tablet") ],
+                                    "bus"  : [ (["all"], "usb"), ] },
+                     }},
         "ubuntuhardy": { "label": "Ubuntu 8.04 LTS (Hardy Heron)",
                          "distro": "ubuntu",
                          "devices" : {
@@ -131,6 +217,12 @@ OS_TYPES = {\
                             "net"  : { "model" : [ (["kvm"], "virtio") ] },
                             "disk" : { "bus"   : [ (["kvm"], "virtio") ] }
                         }},
+        "ubuntukarmic": { "label": "Ubuntu 9.10 (Karmic Koala)",
+                          "distro": "ubuntu",
+                          "devices" : {
+                            "net"  : { "model" : [ (["kvm"], "virtio") ] },
+                            "disk" : { "bus"   : [ (["kvm"], "virtio") ] }
+                        }},
         "generic24": { "label": "Generic 2.4.x kernel" },
         "generic26": { "label": "Generic 2.6.x kernel" },
         "virtio26": { "sortby": "genericvirtio26",
@@ -153,13 +245,20 @@ OS_TYPES = {\
     },
     "variants": { \
         "winxp":{ "label": "Microsoft Windows XP (x86)",
-                  "acpi": False, "apic": False },
+                  "acpi": [ ("xen", 3001000, False),
+                            ("all", True ), ],
+                  "apic": [ ("xen", 3001000, False),
+                            ("all", True ), ], },
         "winxp64":{ "label": "Microsoft Windows XP (x86_64)" },
         "win2k": { "label": "Microsoft Windows 2000",
-                   "acpi": False, "apic": False },
+                  "acpi": [ ("xen", 3001000, False),
+                            ("all", True ), ],
+                  "apic": [ ("xen", 3001000, False),
+                            ("all", True ), ], },
         "win2k3": { "label": "Microsoft Windows 2003" },
         "win2k8": { "label": "Microsoft Windows 2008" },
         "vista": { "label": "Microsoft Windows Vista" },
+        "win7": { "label": "Microsoft Windows 7" }
     },
 },
 
@@ -211,7 +310,7 @@ OS_TYPES = {\
         "msdos": { "label": "MS-DOS", "acpi": False, "apic": False },
         "netware4": { "label": "Novell Netware 4" },
         "netware5": { "label": "Novell Netware 5" },
-        "netware6": { "label": "Novell Netware 6" },
+        "netware6": { "label": "Novell Netware 6", "pv_cdrom_install": True, },
         "generic": { "label": "Generic" },
     },
 },}
diff --git a/virtinst/util.py b/virtinst/util.py
index a0cdd0c..808200f 100644
--- a/virtinst/util.py
+++ b/virtinst/util.py
@@ -38,11 +38,13 @@ from sys import stderr
 
 import libvirt
 from virtinst import _virtinst as _
+import virtinst
 import CapabilitiesParser
 from User import User
 
 KEYBOARD_DIR = "/etc/sysconfig/keyboard"
 XORG_CONF = "/etc/X11/xorg.conf"
+CONSOLE_SETUP_CONF = "/etc/default/console-setup"
 
 def default_route(nic = None):
     if platform.system() == 'SunOS':
@@ -75,59 +77,24 @@ def default_route(nic = None):
             continue
     return None
 
-def _default_nic():
-    """Return the default NIC to use, if one is specified.
-       This is NOT part of the API and may change at will."""
-
-    dev = ''
-
-    if platform.system() != 'SunOS':
-        return dev
-
-    # XXX: fails without PRIV_XVM_CONTROL
-    proc = subprocess.Popen(['/usr/lib/xen/bin/xenstore-read',
-        'device-misc/vif/default-nic'], stdout=subprocess.PIPE,
-        stderr=subprocess.PIPE)
-    out = proc.stdout.readlines()
-    if len(out) > 0:
-        dev = out[0].rstrip()
-
-    return dev
 
 def default_bridge():
-    if platform.system() == 'SunOS':
-        return _default_nic()
-
-    rt = default_route()
-    if rt is None:
-        defn = None
+    ret = virtinst._util.default_bridge2(None)
+    if not ret:
+        # Maintain this behavior for back compat
+        ret = "xenbr0"
     else:
-        defn = int(rt[-1])
+        ret = ret[1]
 
-    if defn is None:
-        return "xenbr0"
-    else:
-        return "xenbr%d"%(defn)
+    return ret
 
 def default_network(conn):
-    if platform.system() == 'SunOS':
-        return ["bridge", _default_nic()]
-
-    dev = default_route()
+    ret = virtinst._util.default_bridge2(conn)
+    if not ret:
+        # FIXME: Check that this exists
+        ret = ["network", "default"]
 
-    if dev is not None and not is_uri_remote(conn.getURI()):
-        # New style peth0 == phys dev, eth0 == bridge, eth0 == default route
-        if os.path.exists("/sys/class/net/%s/bridge" % dev):
-            return ["bridge", dev]
-
-        # Old style, peth0 == phys dev, eth0 == netloop, xenbr0 == bridge,
-        # vif0.0 == netloop enslaved, eth0 == default route
-        defn = int(dev[-1])
-        if os.path.exists("/sys/class/net/peth%d/brport" % defn) and \
-           os.path.exists("/sys/class/net/xenbr%d/bridge" % defn):
-            return ["bridge", "xenbr%d" % defn]
-
-    return ["network", "default"]
+    return ret
 
 def default_connection():
     if os.path.exists('/var/lib/xend'):
@@ -214,7 +181,7 @@ def randomMAC(type = "xen"):
     """Generate a random MAC address.
 
     00-16-3E allocated to xensource
-    54-52-00 used by qemu/kvm
+    52-54-00 used by qemu/kvm
 
     The OUI list is available at http://standards.ieee.org/regauth/oui/oui.txt.
 
@@ -227,12 +194,12 @@ def randomMAC(type = "xen"):
     True
     >>> randomMAC("xen").startswith("00:16:36")
     True
-    >>> randomMAC("qemu").startswith("54:52:00")
+    >>> randomMAC("qemu").startswith("52:54:00")
     True
 
     @return: MAC address string
     """
-    ouis = { 'xen': [ 0x00, 0x16, 0x36 ], 'qemu': [ 0x54, 0x52, 0x00 ] }
+    ouis = { 'xen': [ 0x00, 0x16, 0x36 ], 'qemu': [ 0x52, 0x54, 0x00 ] }
 
     try:
         oui = ouis[type]
@@ -354,12 +321,32 @@ def _xorg_keymap():
         f.close()
     return kt
 
+def _console_setup_keymap():
+    """Look in /etc/default/console-setup for the host machine's keymap, and attempt to
+       map it to a keymap supported by qemu"""
+
+    kt = None
+    try:
+        f = open(CONSOLE_SETUP_CONF, "r")
+    except IOError, e:
+        logging.debug('Could not open "%s": %s ' % (CONSOLE_SETUP_CONF, str(e)))
+    else:
+        keymap_re = re.compile(r'\s*XKBLAYOUT="(?P<kt>[a-z-]+)"')
+        for line in f:
+            m = keymap_re.match(line)
+            if m:
+                kt = m.group('kt')
+                break
+        else:
+            logging.debug("Didn't find keymap in '%s'!" % XORG_CONF)
+        f.close()
+    return kt
+
 def default_keymap():
     """Look in /etc/sysconfig for the host machine's keymap, and attempt to
        map it to a keymap supported by qemu"""
 
     # Set keymap to same as hosts
-    import keytable
     default = "en-us"
     keymap = None
 
@@ -369,6 +356,8 @@ def default_keymap():
     except IOError, e:
         logging.debug('Could not open "/etc/sysconfig/keyboard" ' + str(e))
         kt = _xorg_keymap()
+        if not kt:
+            kt = _console_setup_keymap()
     else:
         while 1:
             s = f.readline()
@@ -392,26 +381,7 @@ def default_keymap():
 
     kt = kt.lower()
 
-    # Try a simple lookup in the keytable
-    if keytable.keytable.has_key(kt.lower()):
-        keymap = keytable.keytable[kt]
-    else:
-        # Try a more intelligent lookup: strip out all '-' and '_', sort
-        # the keytable keys putting the longest first, then compare
-        # by string prefix
-        def len_cmp(a, b):
-            return len(b) - len(a)
-
-        clean_kt = kt.replace("-", "").replace("_", "")
-        sorted_keys = sorted(keytable.keytable.keys(), len_cmp)
-
-        for key in sorted_keys:
-            origkey = key
-            key = key.replace("-", "").replace("_","")
-
-            if clean_kt.startswith(key):
-                keymap = keytable.keytable[origkey]
-                break
+    keymap = check_keytable(kt)
 
     if not keymap:
         logging.debug("Didn't match keymap '%s' in keytable!" % kt)
@@ -556,7 +526,7 @@ def get_xml_path(xml, path=None, func=None):
             ret = ctx.xpathEval(path)
             if ret != None:
                 if type(ret) == list:
-                    if len(ret) == 1:
+                    if len(ret) >= 1:
                         result = ret[0].content
                 else:
                     result = ret
@@ -599,6 +569,31 @@ def lookup_pool_by_path(conn, path):
                 return p
     return None
 
+def check_keytable(kt):
+    import keytable
+    keymap = None
+    # Try a simple lookup in the keytable
+    if keytable.keytable.has_key(kt.lower()):
+        return keytable.keytable[kt]
+    else:
+        # Try a more intelligent lookup: strip out all '-' and '_', sort
+        # the keytable keys putting the longest first, then compare
+        # by string prefix
+        def len_cmp(a, b):
+            return len(b) - len(a)
+
+        clean_kt = kt.replace("-", "").replace("_", "")
+        sorted_keys = sorted(keytable.keytable.keys(), len_cmp)
+
+        for key in sorted_keys:
+            origkey = key
+            key = key.replace("-", "").replace("_","")
+
+            if clean_kt.startswith(key):
+                return keytable.keytable[origkey]
+
+    return keymap
+
 def _test():
     import doctest
     doctest.testmod()

-- 
Virtinst Debian packaging



More information about the Pkg-libvirt-commits mailing list