Bump version to 0.2.7
[snf-image-creator] / docs / usage.rst
index b8f4ffb..c43fb29 100644 (file)
@@ -31,9 +31,6 @@ snf-image-creator receives the following options:
                          upload the image to pithos with name FILENAME
    -r IMAGENAME, --register=IMAGENAME
                          register the image with ~okeanos as IMAGENAME
                          upload the image to pithos with name FILENAME
    -r IMAGENAME, --register=IMAGENAME
                          register the image with ~okeanos as IMAGENAME
-   -a ACCOUNT, --account=ACCOUNT
-                         use this ACCOUNT when uploading/registering images
-                         [Default: None]
    -m KEY=VALUE, --metadata=KEY=VALUE
                          add custom KEY=VALUE metadata to the image
    -t TOKEN, --token=TOKEN
    -m KEY=VALUE, --metadata=KEY=VALUE
                          add custom KEY=VALUE metadata to the image
    -t TOKEN, --token=TOKEN
@@ -48,24 +45,28 @@ snf-image-creator receives the following options:
                          media
    --no-sysprep          don't perform any system preparation operation
    --no-shrink           don't shrink the image
                          media
    --no-sysprep          don't perform any system preparation operation
    --no-shrink           don't shrink the image
+   --public              register image with cyclades 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
    --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 resulting filename using the *-o* option. To
-upload the image to *pithos+*, provide valid credentials  using *-a* and *-t*
-and a filename using *-u*. If you also want to register the image with
-*~okeanos*, in addition to *-u* provide a registration name using *-r*.
-
-By default snf-image-creator will perform a number of system preparation
-operations on the snapshot of the media and will shrink the last partition
-found, before extracting the image. Both can be disabled by specifying
+the image you create, provide a filename using the *-o* option. To upload the
+image to *pithos+*, provide a valid authentication token using *-t* and a
+filename using *-u*. If you also want to register the image with *~okeanos*, in
+addition to *-u* provide a registration name using *-r*. All images are
+registered as *private*. Only the user that registers the image can create
+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
+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.
 
 If *--print-sysprep* is defined, the program will exit after printing a
 list of enabled and disabled system preparation operation applicable to this
 *--no-sysprep* and *--no-shrink* respectively.
 
 If *--print-sysprep* is defined, the program will exit after printing a
 list of enabled and disabled system preparation operation applicable to this
-media source. The user can enable or disable specific *syspreps* when creating
-an image, using *-{enable,disable}-sysprep* options. You may specify those
-options multiple times to enable or disable multiple *syspreps*.
+input media. The user can enable or disable specific *syspreps*, using
+*-{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
 debian system, we print the following output:
 
 Running *snf-image-creator* with *--print-sysprep* on a raw file that hosts a
 debian system, we print the following output:
@@ -175,11 +176,11 @@ following basic information:
  * Name: A short name for the image (ex. "Slackware")
  * Description: An one-line description for the image
    (ex. "Slackware Linux 14.0 with KDE")
  * Name: A short name for the image (ex. "Slackware")
  * Description: An one-line description for the image
    (ex. "Slackware Linux 14.0 with KDE")
- * Account: An *~okeanos* account email
- * Token: A token corresponding to the account defined previously
+ * Registration Type: Private or Public
+ * Account: The authentication token for an *~okeanos* account
 
 After confirming, the image will be extracted, uploaded to *pithos+* and
 
 After confirming, the image will be extracted, uploaded to *pithos+* and
-registered to *~okeanos*. The user will also be given the choice to keep a
+registered with *~okeanos*. The user will also be given the choice to keep a
 local copy of it.
 
 For most users the functionality this mode provides should be sufficient.
 local copy of it.
 
 For most users the functionality this mode provides should be sufficient.
@@ -188,7 +189,7 @@ Expert mode
 -----------
 
 Expert mode allows the user to have better control on the image creation
 -----------
 
 Expert mode allows the user to have better control on the image creation
-process. In the picture below the main menu can be seen:
+process. The main menu can be seen in the picture below:
 
 .. image:: /snapshots/main_menu.png
 
 
 .. image:: /snapshots/main_menu.png
 
@@ -201,9 +202,11 @@ In the *Customize* sub-menu the user can control:
 
 In the *Register* sub-menu the user can provide:
 
 
 In the *Register* sub-menu the user can provide:
 
- * The credentials to login to *~okeanos*
+ * The credentials (authentication token) to use when authenticating
+   to *~okeanos*
  * A *pithos+* filename for the uploaded *diskdump* image
  * A *pithos+* filename for the uploaded *diskdump* image
- * A name for the image to be registered to *~okeanos* with
+ * A name for the image to use when registering it with *~okeanos*, as well as
+   the registration type (*private* or *public*)
 
 By choosing the *Extract* menu entry, the user can dump the image to the local
 file system. Finally, if the user selects *Reset*, the system will ignore
 
 By choosing the *Extract* menu entry, the user can dump the image to the local
 file system. Finally, if the user selects *Reset*, the system will ignore
@@ -217,7 +220,7 @@ system that runs the program. This is done either by specifying / as input
 media or by using the *Bundle Host* button in the media selection dialog of
 snf-mkimage. During this operation, the files of the disk are copied into a
 temporary image file, which means that the file system that will host the
 media or by using the *Bundle Host* button in the media selection dialog of
 snf-mkimage. During this operation, the files of the disk are copied into a
 temporary image file, which means that the file system that will host the
-temporary image needs to have a lot of free space (see `the tmpdir option`_
+temporary image needs to have a lot of free space (see `large temporary files`_
 for more information).
 
 Creating a new image
 for more information).
 
 Creating a new image
@@ -228,13 +231,13 @@ disk from the Internet:
 
 .. code-block:: console
 
 
 .. code-block:: console
 
-   $ wget http://ubuntureleases.tsl.gr/12.04.1/ubuntu-12.04.1-server-amd64.iso
+   $ wget http://ubuntureleases.tsl.gr/12.04.2/ubuntu-12.04.2-server-amd64.iso
 
 Verify that it has been downloaded correctly:
 
 .. code-block:: console
 
 
 Verify that it has been downloaded correctly:
 
 .. code-block:: console
 
-   $ echo 'a8c667e871f48f3a662f3fbf1c3ddb17  ubuntu-12.04.1-server-amd64.iso' > check.md5
+   $ echo 'a8c667e871f48f3a662f3fbf1c3ddb17  ubuntu-12.04.2-server-amd64.iso' > check.md5
    $ md5sum -c check.md5
 
 Create a 2G sparse file to host the new system:
    $ md5sum -c check.md5
 
 Create a 2G sparse file to host the new system:
@@ -248,14 +251,14 @@ And install the Ubuntu system on this file:
 .. code-block:: console
 
    $ sudo kvm -boot d -drive file=ubuntu_hd.raw,format=raw,cache=none,if=virtio \
 .. code-block:: console
 
    $ sudo kvm -boot d -drive file=ubuntu_hd.raw,format=raw,cache=none,if=virtio \
-     -m 1G -cdrom ubuntu-12.04.1-server-amd64.iso
+     -m 1G -cdrom ubuntu-12.04.2-server-amd64.iso
 
 .. warning::
 
    During the installation, you will be asked about the partition scheme. Don't 
    use LVM partitions. They are not supported by snf-image-creator.
 
 
 .. warning::
 
    During the installation, you will be asked about the partition scheme. Don't 
    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 to it
+You will be able to boot your installed OS and make any changes you want
 (e.g. install openssh-server) using the following command::
 
    $ sudo kvm -m 1G -boot c -drive file=ubuntu_hd.raw,format=raw,cache=none,if=virtio
 (e.g. install openssh-server) using the following command::
 
    $ sudo kvm -m 1G -boot c -drive file=ubuntu_hd.raw,format=raw,cache=none,if=virtio
@@ -271,18 +274,32 @@ image:
 In the first screen you will be asked to choose if you want to run the program
 in *Wizard* or *Expert* mode. Choose *Wizard*.
 
 In the first screen you will be asked to choose if you want to run the program
 in *Wizard* or *Expert* mode. Choose *Wizard*.
 
-.. image:: /snapshots/01_wizard.png
+.. image:: /snapshots/wizard.png
 
 
-Then you will be asked to provide a name, a description, an *~okeanos* account
-and the token corresponding to this account. After that you will be asked to
-confirm the provided data.
+Then you will be asked to provide a name, a description, a registration type
+(*private* or *public*) and the authentication token corresponding to your
+*~okeanos* account. Finally, you'll be asked to confirm the provided data.
 
 
-.. image:: /snapshots/06_confirm.png
+.. image:: /snapshots/confirm.png
 
 Choosing *YES* will create and upload the image to your *~okeanos* account.
 
 
 Choosing *YES* will create and upload the image to your *~okeanos* account.
 
-Some caveats on image creation
-==============================
+Limitations
+===========
+
+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.
+
+Logical Volumes
+---------------
+
+The program cannot work on LVM partitions [#f1]_. The input media may only
+contain primary or logical partitions.
 
 Para-virtualized drivers
 ------------------------
 
 Para-virtualized drivers
 ------------------------
@@ -293,18 +310,21 @@ Ethernet cards on the VM instances are para-virtualized and need special
 version 2.6.25 and are shipped with all the popular Linux distributions. The
 problem is that if the driver for the para-virtualized disk I/O controller is
 built as module, it needs to be preloaded using an initial ramdisk, otherwise
 version 2.6.25 and are shipped with all the popular Linux distributions. The
 problem is that if the driver for the para-virtualized disk I/O controller is
 built as module, it needs to be preloaded using an initial ramdisk, otherwise
-the VM will not be able to boot.
+the VM won't be able to boot.
 
 
-Many popular linux distributions, like Ubuntu and Debian, will automatically
+Many popular Linux distributions, like Ubuntu and Debian, will automatically
 create a generic initial ramdisk file that contains many different modules,
 including the VirtIO drivers. Others that target more experienced users, like
 create a generic initial ramdisk file that contains many different modules,
 including the VirtIO drivers. Others that target more experienced users, like
-Slackware, won't do that [#f1]_. *snf-image-creator* cannot resolve this kind
+Slackware, won't do that [#f2]_. *snf-image-creator* cannot resolve this kind
 of problems and it's left to the user to do so. Please refer to your
 distribution's documentation for more information on this. You can always check
 if a system can boot with para-virtualized disk controller by launching it with
 of problems and it's left to the user to do so. Please refer to your
 distribution's documentation for more information on this. You can always check
 if a system can boot with para-virtualized disk controller by launching it with
-kvm using the *if=virtio* option (take a look at the kvm command in the
+kvm using the *if=virtio* option (see the kvm command in the
 `Creating a new image`_ section).
 
 `Creating a new image`_ section).
 
+Some caveats on image creation
+==============================
+
 Image partition schemes and shrinking
 -------------------------------------
 
 Image partition schemes and shrinking
 -------------------------------------
 
@@ -322,25 +342,26 @@ Keep this in mind when creating images. It's always better to have your swap
 partition placed as the last partition on the disk and have your largest
 partition (*/* or */home*) just before that.
 
 partition placed as the last partition on the disk and have your largest
 partition (*/* or */home*) just before that.
 
-The tmpdir option
------------------
+Large temporary files
+---------------------
 
 *snf-image-creator* may create large temporary files when running:
 
  * During image shrinking, the input media snapshot file may reach the size of
    the original media.
 
 *snf-image-creator* may create large temporary files when running:
 
  * During image shrinking, the input media snapshot file may reach the size of
    the original media.
- * When bundling the host system, the size of temporary image file may reach
-   the size of all disk files.
+ * When bundling the host system, the temporary image file may became as large
+   as the rest of the disk files altogether.
 
 
-The */tmp* directory is not a good place for hosting large files. In many systems
+*/tmp* directory is not a good place for hosting large files. In many systems
 the contents of */tmp* are stored in volatile memory and the size they may occupy
 is limited. By default, *snf-image-creator* will use a heuristic approach to
 determine where to store large temporary files. It will examine the free space
 under */var/tmp*, the user's home directory and */mnt* and will pick the one
 the contents of */tmp* are stored in volatile memory and the size they may occupy
 is limited. By default, *snf-image-creator* will use a heuristic approach to
 determine where to store large temporary files. It will examine the free space
 under */var/tmp*, the user's home directory and */mnt* and will pick the one
-with the most free space. The user may overwrite this behaviour and indicate a
-directory using the *tmpdir* option. This option is present in both
-*snf-image-creator* and *snf-mkimage*.
+with the most available space. The user may overwrite this behaviour and
+indicate a different directory using the *tmpdir* option. This option is
+supported by both *snf-image-creator* and *snf-mkimage*.
 
 .. rubric:: Footnotes
 
 
 .. rubric:: Footnotes
 
-.. [#f1] http://mirrors.slackware.com/slackware/slackware-14.0/README.initrd
+.. [#f1] http://sourceware.org/lvm2/
+.. [#f2] http://mirrors.slackware.com/slackware/slackware-14.0/README.initrd