.. program:: qvm-create

:program:`qvm-create` -- create new domain
==========================================

Synopsis
--------

:command:`qvm-create` [-h] [--verbose] [--quiet] [--force-root] [--class *CLS*] [--property *NAME*=*VALUE*] [--pool *POOL_NAME:VOLUME_NAME*] [--template *VALUE*] --label *VALUE* [--root-copy-from *FILENAME* | --root-move-from *FILENAME*] *VMNAME*
:command:`qvm-create` --help-classes

Options
-------

.. option:: --help, -h

   show help message and exit

.. option:: --verbose, -v

   Increase verbosity.

.. option:: --quiet, -q

   Decrease verbosity.

.. option:: --standalone

   shortcut for --class StandaloneVM, see below

.. option:: --disp

   shortcut for --class DispVM --label red, see below

.. option:: --help-classes

   List available qube classes and exit. See below for short description.

.. option:: --class, -C

   The new domain class name (default: **AppVM** for
   :py:class:`qubes.vm.appvm.AppVM`).

.. option:: --prop=NAME=VALUE, --property=NAME=VALUE

   Set domain's property, like "internal", "memory" or "vcpus". Any property may
   be set this way, even "qid".

.. option:: --template=VALUE, -t VALUE

   Specify the TemplateVM to use, when applicable. This is an alias for
   ``--property template=VALUE``.

.. option:: --label=VALUE, -l VALUE

   Specify the label to use for the new domain (e.g. red, yellow, green, ...).
   This in an alias for ``--property label=VALUE``.

.. option:: --root-copy-from=FILENAME, -r FILENAME

   Use provided :file:`root.img` instead of default/empty one (file
   will be *copied*). If the provided file does not have the same size
   as the system volume being created, the VM will still be created
   but with an empty system volume, and the program will report an
   error. This option is mutually exclusive with :option:`--root-move-from`.

.. option:: --root-move-from=FILENAME, -R FILENAME

   Like :option:`--root-copy-from`, but remove provided :file:`root.img` file
   after succesful copy. This option is mutually exclusive with
   :option:`--root-copy-from`.

.. option:: -P POOL

    Pool to use for the new domain. All volumes besides snapshots volumes are
    imported in to the specified POOL. THIS IS WHAT YOU WANT TO USE NORMALLY.

.. option:: --pool=POOL:VOLUME, -p POOL:VOLUME

    Specify the pool to use for the specific volume

Qube classes
------------

Qube class (or type) specify basic features of it, mostly what data persists
across reboots and what properties qube have.

AppVM
^^^^^

Default qube class, for template-based qubes. In this type, root volume is used
from its template and changes made to it are discarded at qube restart. Changes
in qube's private volume are persistent.

StandaloneVM
^^^^^^^^^^^^

This qube class have both root and private volumes persistent. This qube type
does not have template property.

TemplateVM
^^^^^^^^^^

A qube that can be used as a template for `AppVM`. Otherwise very similar to
`StandaloneVM`.

DispVM
^^^^^^

A disposable qube - no data persists across qube restarts. It must have template
set to an `AppVM` instance that have `dispvm_allowed` property set to true (see
:manpage:`qvm-prefs(1)`).

Authors
-------

| Joanna Rutkowska <joanna at invisiblethingslab dot com>
| Rafal Wojtczuk <rafal at invisiblethingslab dot com>
| Marek Marczykowski <marmarek at invisiblethingslab dot com>
| Wojtek Porczyk <woju at invisiblethingslab dot com>
| Bahtiar `kalkin-` Gadimov <bahtiar at gadimov dot de> 

| For complete author list see: https://github.com/QubesOS/qubes-core-admin-client.git

.. vim: ts=3 sw=3 et tw=80
