snf-image-creator comes in 2 variants:
- * snf-image-creator: A non-interactive command line program
- * snf-mkimage: A user-friendly dialog-based program
+ * snf-mkimage: A non-interactive command line program
+ * snf-image-creator: A user-friendly dialog-based program
Both expect the input media as first argument. The input media may be a local
file, a block device or *"/"* if you want to create an image out of the running
Non-interactive version
=======================
-snf-image-creator receives the following options:
+snf-mkimage receives the following options:
.. code-block:: console
- $ snf-image-creator --help
- Usage: snf-image-creator [options] <input_media>
-
- Options:
- --version show program's version number and exit
- -h, --help show this help message and exit
- -o FILE, --outfile=FILE
- dump image to FILE
- -f, --force overwrite output files if they exist
- -s, --silent output only errors
- -u FILENAME, --upload=FILENAME
- upload the image to the storage service with name FILENAME
- -r IMAGENAME, --register=IMAGENAME
- register the image with the compute service as IMAGENAME
- -m KEY=VALUE, --metadata=KEY=VALUE
- add custom KEY=VALUE metadata to the image
- -t TOKEN, --token=TOKEN
- use this authentication token when
- uploading/registering images
- -a URL, --authentication-url=URL
- use this authentication URL when uploading/registering
- images
- -c CLOUD, --cloud=CLOUD
- use this saved cloud account to authenticate against a
- cloud when uploading/registering images
- --print-sysprep print the enabled and disabled system preparation
- operations for this input media
- --enable-sysprep=SYSPREP
- run SYSPREP operation on the input media
- --disable-sysprep=SYSPREP
- prevent SYSPREP operation from running on the input
- media
- --no-sysprep don't perform any system preparation operation
- --no-shrink don't shrink any partition
- --public register image with the compute service as public
- --tmpdir=DIR create large temporary image files under DIR
+ $ snf-mkimage --help
+ Usage: snf-mkimage [options] <input_media>
+
+ Options:
+ --version show program's version number and exit
+ -h, --help show this help message and exit
+ -o FILE, --outfile=FILE
+ dump image to FILE
+ -f, --force overwrite output files if they exist
+ -s, --silent output only errors
+ -u FILENAME, --upload=FILENAME
+ upload the image to the cloud with name FILENAME
+ -r IMAGENAME, --register=IMAGENAME
+ register the image with a cloud as IMAGENAME
+ -m KEY=VALUE, --metadata=KEY=VALUE
+ add custom KEY=VALUE metadata to the image
+ -t TOKEN, --token=TOKEN
+ use this authentication token when
+ uploading/registering images
+ -a URL, --authentication-url=URL
+ use this authentication URL when uploading/registering
+ images
+ -c CLOUD, --cloud=CLOUD
+ use this saved cloud account to authenticate against a
+ cloud when uploading/registering images
+ --print-syspreps print the enabled and disabled system preparation
+ operations for this input media
+ --enable-sysprep=SYSPREP
+ run SYSPREP operation on the input media
+ --disable-sysprep=SYSPREP
+ prevent SYSPREP operation from running on the input
+ media
+ --print-sysprep-params
+ print the needed sysprep parameters for this input
+ media
+ --sysprep-param=SYSPREP_PARAMS
+ Add KEY=VALUE system preparation parameter
+ --no-sysprep don't perform any system preparation operation
+ --no-shrink don't shrink any partition
+ --public register image with the cloud as public
+ --tmpdir=DIR create large temporary image files under DIR
Most input options are self-describing. If you want to save a local copy of
the image you create, provide a filename using the *-o* option. To upload the
VM's out of it. If you want the image to be visible by other user too, use the
*--public* option.
-By default, before extracting the image, snf-image-creator will perform a
+By default, before extracting the image, snf-mkimage will perform a
number of system preparation operations on the snapshot of the media and will
shrink the last partition found. Both actions can be disabled by specifying
*--no-sysprep* and *--no-shrink* respectively.
*-{enable,disable}-sysprep* options. The user may specify those options
multiple times.
-Running *snf-image-creator* with *--print-sysprep* on a raw file that hosts a
+Running *snf-mkimage* with *--print-sysprep* on a raw file that hosts a
debian system, we print the following output:
.. _sysprep:
.. code-block:: console
- $ snf-image-creator --print-sysprep ubuntu.raw
- snf-image-creator 0.3
+ $ snf-mkimage --print-syspreps ubuntu.raw
+ snf-image-creator 0.6
=====================
Examining source media `ubuntu_hd.raw' ... looks like an image file
Snapshotting media source ... done
.. code-block:: console
- $ snf-image-creator --enable-sysprep cleanup-mail --enable-sysprep remove-user-accounts ...
+ $ snf-mkimage --enable-sysprep cleanup-mail --enable-sysprep remove-user-accounts ...
Dialog-based version
====================
-*snf-mkimage* receives the following options:
+*snf-image-creator* receives the following options:
.. code-block:: console
- $ snf-mkimage --help
- Usage: snf-mkimage [options] [<input_media>]
+ $ snf-image-creator --help
+ Usage: snf-image-creator [options] [<input_media>]
Options:
--version show program's version number and exit
`Host bundling operation`_).
After the input media is examined and the program is initialized, the user will
-be given the choice to run *snf-mkimage* in *wizard* or *expert* mode.
+be given the choice to run *snf-image-creator* in *wizard* or *expert* mode.
Wizard mode
-----------
-When *snf-mkimage* runs in *wizard* mode, the user is just asked to provide the
+When *snf-image-creator* runs in *wizard* mode, the user is just asked to provide the
following basic information:
* Cloud: The cloud account to use to upload and register the resulting image
Creating a new image
====================
-Suppose you want to create a new Ubuntu server image. Download the installation
-disk from the Internet:
+Suppose your host system is a Debian Wheezy and you want to create a new Ubuntu
+server image. Download the installation disk from the Internet:
.. code-block:: console
use LVM partitions. They are not supported by snf-image-creator.
You will be able to boot your installed OS and make any changes you want
-(e.g. install openssh-server) using the following command::
+(e.g. install openssh-server) using the following command:
+
+.. code-block:: console
$ sudo kvm -m 1G -boot c -drive file=ubuntu.raw,format=raw,cache=none,if=virtio
-After you're done, you may use *snf-mkimage* as root to create and upload the
+After you're done, you may use *snf-image-creator* as root to create and upload the
image:
.. code-block:: console
$ sudo -s
- $ snf-mkimage ubuntu.raw
+ $ snf-image-creator ubuntu.raw
In the first screen you will be asked to choose if you want to run the program
in *Wizard* or *Expert* mode. Choose *Wizard*.
Supported operating systems
---------------------------
-*snf-image-creator* can only fully function on input media hosting *Linux*
-systems. The program will detect the needed metadata and you may use it to
-upload and register other *Unix* or *Windows* images, but you cannot use it to
-shrink them or perform system preparation operations.
+*snf-image-creator* can only fully function on input media hosting *Linux*,
+*FreeBSD* (tested on version 9.1) and *Windows* (Server 2008 R2 and Server
+2012) systems. The program will detect the needed metadata and you may use it
+to upload and register other *Unix* images, but you cannot use it to shrink
+them or perform system preparation operations.
Logical Volumes
---------------
kvm using the *if=virtio* option (see the kvm command in the
`Creating a new image`_ section).
+For Windows and FreeBSD systems, the needed drivers need to be manually
+downloaded and installed on the media before the image creation process takes
+place. For *FreeBSD* the virtio drivers can be found
+`here <http://people.freebsd.org/~kuriyama/virtio/>`_. For Windows the drivers
+are hosted by the
+`Fedora Project <http://alt.fedoraproject.org/pub/alt/virtio-win/latest/images/>`_.
+
Some caveats on image creation
==============================