Rename -t option to -o; add iscsitarget, disable mdadm in initrd
[grml-live.git] / docs / grml-live.txt
index 9c0d88a..c7cb2c5 100644 (file)
@@ -10,7 +10,9 @@ Linux Live system (CD/ISO)
 Synopsis
 --------
 
-grml-live [-c <classe[s]>] [-t <target_directory>] [-s <suite>] [-Fvh]
+grml-live [-c <classe[s]>] [-g <grml_name>] [-i <iso_name> ] [-o
+<output_directory>] [-r <release_name>] [-s <suite>] [-t <template_directory>]
+[-v <version_number>] [-FVh]
 
 *******************************************************************************
 Important! This document is growing as requested. If you have questions which
@@ -54,36 +56,61 @@ Options
   -c **CLASSES**::
 
 Specify the CLASSES to be used for building the ISO via FAI.  By default only
-the classes GRMLBASE and I386 are assumed, resulting in a small base system
-(being about ~150MB total ISO size) for x86 (32bit).
+the classes GRMLBASE, GRML_SMALL and I386 are assumed, resulting in a small base
+system (being about ~150MB total ISO size). If using a non-I386 system (like
+amd64) you should specify the appropriate architecture as well. Additionally you
+can specify a class providing a grml-kernel (see
+/etc/grml/fai/config/package_config/ for a full list).  So instead of GRML_SMALL
+you can also use GRML_MEDIUM and GRML_FULL instead.
 
-  -s **SUITE**::
+  -F::
 
-Specify the Debian suite you want to use for your live-system.  Defaults to
-"etch" (being current Debian/stable). Supported values are: etch, lenny, sid,
-stable, testing, unstable.
+Force execution and do not prompt for acknowledgment of configuration.
+
+  -g **GRML_NAME**::
+
+Set the grml flavour name. Common usage examples: grml, grml-small, grml64.
+
+  -h::
+
+Display short usage information and exit.
+
+  -i **ISO_NAME**::
+
+Specify name of ISO which will be available inside $OUTPUT_DIRECTORY/grml_isos
+by default.
 
-  -t **TARGET_DIRECTORY**::
+  -o **OUTPUT_DIRECTORY**::
 
 Main output directory of the build process of FAI.  Some directories are created
 inside this target directory, being: grml_cd (where the files for creating the
 ISO are located, including the compressed squashfs file), grml_chroot (the
 chroot system) and grml_isos (where the resulting ISO is stored).
 
-  -F::
+  -r **RELEASENAME**::
 
-Force execution and do not prompt for acknowledgment of configuration.
+Specify name of the release.
 
-  -h::
+  -s **SUITE**::
 
-Display short usage information and exit.
+Specify the Debian suite you want to use for your live-system.  Defaults to
+"etch" (being current Debian/stable). Supported values are: etch, lenny, sid.
 
-  -v::
+  -t **TEMPLATE_DIRECTORY**::
+
+Specify place of the templates used for building the ISO. By default 
+(and if not manually specified) this is /usr/share/grml-live/templates/.
+
+  -v **VERSION_NUMBER**::
+
+Specify version number of the release.
+
+  -V::
 
 Increase verbosity in the build process.
 
-How to get your own Live-CD - the easy, fast and simple way
------------------------------------------------------------
+Usage examples
+--------------
 
 To get a small, Debian-stable and grml-based Live-CD using /grml/grml-live
 as build and output directory just run:
@@ -93,7 +120,13 @@ as build and output directory just run:
 To get a small Debian-unstable and grml-small based Live-CD using
 /home/mika/grml-live as build and output directory just use:
 
-  # grml-live -c GRMLBASE,GRML_SMALL,I386 -t /home/mika/grml-live
+  # grml-live -c GRMLBASE,GRML_SMALL,I386 -o /home/mika/grml-live
+
+To get a small, Debian-unstable and grml-based Live-CD using /tmp as build and
+output directory and use grml_0.0-3.iso as ISO name (placed inside
+/tmp/grml_isos) just invoke:
+
+  # grml-live -o /tmp -c GRMLBASE,GRML_SMALL,I386 -s sid -i grml_0.0-3.iso
 
 [NOTE]
 
@@ -101,8 +134,8 @@ If you have about 700MB of free space inside /dev/shm (being a tmpfs, usually
 you should have >=1GB of RAM) just run "mount -o remount,suid,dev,rw /dev/shm"
 and use /dev/shm as build and output directory - resulting in very fast build
 process.  But please be aware of the fact that rebooting your system will result
-in an empty /dev/shm, so please another directory for $CHROOT_TARGET,
-$BUILD_TARGET and $ISO_TARGET if you plan to create more persistent output. :)
+in an empty /dev/shm, so please another directory for $CHROOT_OUTPUT,
+$BUILD_OUTPUT and $ISO_OUTPUT if you plan to create more persistent output. :)
 
 Main features of grml-live
 --------------------------
@@ -129,9 +162,10 @@ losing the simplicity in the build process.
 
 The main and base class provided by grml-live is named GRMLBASE. It's strongly
 recommended to **always** use the class GRMLBASE when building an ISO using
-grml-live, as well as the architecture dependend class which provides the kernel
-(being 'I386' for x86_32 currently only). The following files and directories
-are relevant for class GRMLBASE by default:
+grml-live, as well as the architecture dependent class which provides the kernel
+(being 'I386' for x86_32 and 'AMD64' for x86_64) and a GRML_* class (like
+GRML_SMALL, GRML_MEDIUM or GRML_FULL). The following files and directories are
+relevant for class GRMLBASE by default:
 
   /etc/grml/fai/config/scripts/GRMLBASE/
   /etc/grml/fai/config/debconf/GRMLBASE
@@ -145,9 +179,9 @@ files/directories.
 If you want to use your own configuration, extend an existing configuration
 and/or add additional packages to your ISO just invent a new class (or extend an
 existing one). For example if you want to use your own class named "FOOBAR" just
-extend CLASSES="GRMLBASE,I386" inside /etc/grml/grml-live.conf to
-CLASSES="GRMLBASE,I386,FOOBAR" or invoke grml-live using the classes option:
-"grml-live -c GRMLBASE,I386,FOOBAR ...".
+extend CLASSES="GRMLBASE,GRML_SMALL,I386" inside /etc/grml/grml-live.conf to
+CLASSES="GRMLBASE,GRML_SMALL,I386,FOOBAR" or invoke grml-live using the classes
+option: "grml-live -c GRMLBASE,GRML_SMALL,I386,FOOBAR ...".
 
 More details regarding the class concept can be found in the documentation of
 FAI itself (being available at /usr/share/doc/fai-doc/).
@@ -223,12 +257,13 @@ installation process.
 
 Directory with lists of software packages to be installed or removed.  The
 different classes describe what should find its way to your ISO.  When running
-"grml-live -c GRMLBASE,I386 ..." only the files from the directories GRMLBASE
-and I386 will be taken, if you use 'grml-live -c GRMLBASE,I386,FOOBAR ...' then
-the files of GRMLBASE, I386 **plus** the files from FOOBAR will be taken. So
-just create a new class to adjust the package selection according to your needs.
-Please notice that the directory GRMLBASE contains a package list defining a
-minimum but still reasonable package configuration.
+"grml-live -c GRMLBASE,GRML_SMALL,I386 ..." only the configuration of GRMLBASE,
+GRML_SMALL and and I386 will be taken. If you use 'grml-live -c
+GRMLBASE,GRML_SMALL,I386,FOOBAR ...' then the files of GRMLBASE, GRML_SMALL,
+I386 **plus** the files from FOOBAR will be taken. So just create a new class to
+adjust the package selection according to your needs.  Please notice that the
+directory GRMLBASE contains a package list defining a minimum but still
+reasonable package configuration.
 
   /etc/grml/fai/config/scripts/
 
@@ -253,9 +288,10 @@ send us a bug report then) [a usual link:http://grml.org/grml2hd/[grml2hd]
 harddisk installation ships all you need]
 
 * enough free disk space; at least 800MB are required for a minimal grml-live
-run (\~400MB for the chroot [$CHROOT_TARGET], \~150MB for the build target
-[$BUILD_TARGET] and \~150MB for the resulting ISO [$ISO_TARGET] plus some
-temporary files)
+run (\~400MB for the chroot [$CHROOT_OUTPUT], \~150MB for the build target
+[$BUILD_OUTPUT] and \~150MB for the resulting ISO [$ISO_OUTPUT] plus some
+temporary files), if you plan to use GRML_FULL you should have at least 4GB of
+total free disk space
 
 * fast network access for retreiving the Debian packages used for creating the
 chroot (check out "local mirror" and "NFSROOT" to workaround this problem as far
@@ -323,7 +359,7 @@ Just create a new class (using the package_config directory):
 
 and specify it when invoking grml-live then:
 
-  # grml-live -c GRMLBASE,I386,MIKA
+  # grml-live -c GRMLBASE,GRML_SMALL,I386,MIKA
 
 I fscked up my grml-live configuration. How do I reset it to the defaults?
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -370,69 +406,44 @@ executing debootstrap. Check out the output for the following lines:
   Calling task_mirror
   [...]
 
-I've a question which isn't answered by this document
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Don't hesitate to ask on IRC (channel #grml on irc.freenode.org) or just drop me
-a mail: <mika@grml.org>
-
-Known TODOs
------------
-
-* "fai dirinstall" does not seem to always exit according to what happend during
-the build; make sure to exit on any error
-
-* document the available classes in more detail
-
-* add a check to make sure $TARGET is mounted rw,suid,dev?
-
-* add support for amd64 [gebi?] + ppc [formorer?] (and identify all packages
-that are arch specific so we have a clean package list in all classes)
-
-* support different grml-flavours through classes right out-of-the-box (being:
-grml and  grml-small (done), each for x86, amd64 and ppc)
+Set up approx for use with grml-live
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-* support signed apt repositories (currently it's deactivated via FAI's
-FAI_ALLOW_UNSIGNED=1 for some packages in the toolchain)
+Make sure /etc/grml/grml-live.conf provides according GRML_LIVE_SOURCES and
+FAI_DEBOOTSTRAP:
 
-* support setting stuff like ISO name, version,... on-the-fly (especially for
-stuff inside boot/isolinux/*)
-
-* support "final builds" (including stuff like generating md5sums, gpg,... -
-create a grml_release-directory including all the details about the build
-process like dpkg selection, logs,...)
-
-* the grml-live class(es) should send output to stdout and stderr as used inside
-FAI as well (so it's not as verbose unless you specify it, make it configurable
-though); check for errors inside the logs then as well
-
-* provide possibility for cleanup of all created build directories and
-a smart summary of the buildprocess (including "took ... minutes/seconds to
-build...")
-
-* check out how FAI_DEBMIRROR of /etc/grml/fai/fai.conf could be merged with our
-MIRROR_DIRECTORY and MIRROR_SOURCES feature of /etc/grml/grml-live.conf
+  # cat /etc/grml/grml-live.conf
+  [...]
+  GRML_LIVE_SOURCES="
+  deb http://localhost:9999/grml            grml-stable  main
+  deb http://localhost:9999/grml            grml-testing main
+  deb http://localhost:9999/debian etch     main contrib non-free
+  "
+  FAI_DEBOOTSTRAP="etch http://localhost:9999/debian"
 
-* support hooks to allow further customisation of the build process
+Configure approx:
 
-Long term goals
----------------
+  # cat /etc/approx/approx.conf
+  [...]
+  debian http://ftp.at.debian.org/debian
+  grml   http://deb.grml.org/
 
-* Provide all upcoming grml releases based on grml-live.
+Don't forget to restart approx (/etc/init.d/approx restart). That's it.
+All downloaded files will be cached in /var/cache/approx now.
 
-* Provide a console interface (using dialog) for easy and common use of
-grml-live.
+I've a question which isn't answered by this document
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-* Provide a graphical interface (for example using pygtk) for easy and common
-use of grml-live.
+Don't hesitate to ask on IRC (channel #grml on irc.freenode.org) or just drop me
+a mail: <mika@grml.org>
 
 Download / install grml-live as a Debian package
 ------------------------------------------------
 
-Debian packages will be available through the grml-repository at
-link:http://deb.grml.org/[http://deb.grml.org/] as soon as the grml-team
-considers grml-live as stable enough. In the meantime just build the package on
-your own:
+Debian packages are available through the grml-repository at
+link:http://deb.grml.org/pool/main/g/grml-live/[deb.grml.org].  If you want to
+build a Debian package on your own (using for example a specific version or the
+current development tree), just execute:
 
   hg clone http://hg.grml.org/grml-live
   cd grml-live
@@ -444,6 +455,12 @@ Source
 The source of grml-live is available at
 link:http://hg.grml.org/grml-live/[http://hg.grml.org/grml-live/]
 
+TODO list
+---------
+
+Check out link:http://wiki.grml.org/doku.php?id=grml-live[grml-live@grml-wiki]
+for details.
+
 Bugs
 ----