Initial support for grml_cd stuff
[grml-live.git] / docs / grml-live.txt
index 3f14ba5..003589c 100644 (file)
@@ -3,27 +3,232 @@ grml-live(8)
 
 Name
 ----
-grml-live - generate a grml (based) live-cd
+grml-live - build process script for generating a (grml based) Linux Live-ISO
 
 Synopsis
 --------
-grml-live [ todo...]
+grml-live [-c <classe[s]>] [-t <target_directory>] [-F] [-h|--help]
 
 *******************************************************************************
-Important! grml-live is under heavy construction and everything but ready yet.
+Important! grml-live is under heavy construction, your feedback is highly
+appreciated.  This document is growing as requested. If you have questions which
+aren't answered by this document yet please let me (mika@grml.org) know!
 *******************************************************************************
 
-Introduction
-------------
+Description
+-----------
 
-grml-live provides the build system for creating a grml (based) live-cd.  It is
-based on link:http://www.informatik.uni-koeln.de/fai/[FAI] (Fully Automatic
-Installation).
+grml-live provides the build system for creating (a grml based) live-cd. The
+build system is based on link:http://www.informatik.uni-koeln.de/fai/[FAI]
+(Fully Automatic Installation).
+
+FAI uses a class based system. This gives you the flexibility to choose the
+packages you would like to include on your very own Linux live-cd without having
+to deal with all the details of a build process.
+
+CAUTION: grml-live does not use /etc/fai for configuration but instead provides
+and uses /etc/grml/fai. This ensures that it does not clash with default FAI
+configuration and packages, so you can use grml-live and FAI completely
+independent!
+
+[NOTE]
+Please notice that you should have a fast network connection as all the Debian
+packages will be installed via network. If you want to use a local mirror
+(strongly recommended!) checkout
+mkdebmirror (see /usr/share/doc/grml-live/examples/mkdebmirror)
+debmirro(1) and reprepro(1) (check out
+/usr/share/doc/grml-live/examples/reprepro/ for a sample configuration).
+To avoid downloading of the base system check out FAI's
+NFSROOT (check docs for ../fai/nfsroot/live/filesystem.dir/var/tmp/base.tgz).
+
+Options
+-------
+
+  -c **CLASSES**::
+
+Specify the CLASSES to be used for building the ISO via fai.
+By default only the class GRML is assumed, resulting in a small base system (being
+about ~170MB ISO size).
+
+  -t **TARGET_DIRECTORY**::
+
+Output directory of the build process of FAI - being the chroot
+used for building the ISO.
+
+  -F::
+
+Force execution and do not display summary of configuration details.
+
+  -h|--help::
+
+Display short usage information and exit.
+
+  additional_arguments_for_fai::
+
+Any additional argument(s) to grml-live will be given to the FAI commandline
+(being basically "fai dirinstall ...).  This might become a temporary solution
+(due to security reasons), if you need an option please let us know so we can
+implement it.
+
+How to get your own live-cd - the easy, fast and simple way
+-----------------------------------------------------------
+
+To get a small, Debian-stable and grml based live-cd:
+
+  # TARGET="/grml/grml_uncompressed"
+  # CDDIR="/grml/grml_cd"
+  # grml-live -c GRML -t $TARGET
+  # mksquashfs $TARGET/* $CDDIR/live/grml.squashfs -noappend
+  # cd $CDDIR
+  # mkisofs -V "my personal grml" -l -r -J -no-emul-boot -boot-load-size 4 \
+            -boot-info-table -c boot/isolinux/boot.cat \
+            -b boot/isolinux/isolinux.bin -o /grml/grml.iso .
+
+(TODO: provide the content of /grml/chroot/grml_cd through the package
+grml-live, in the meanwhile get the content from a current grml-ISO)
+
+The class concept
+-----------------
+
+grml-live uses FAI and its class based concept for adjusting configuration
+according to your needs. This gives you flexibility and strength without losing
+the simplicity in the build process.
+
+The main and base class provided by grml-live is named GRML. It's strongly
+recommended to **always** use the class GRML when building an ISO using
+grml-live.  The following files and directories are relevant for class GRML by
+default:
+
+  /etc/grml/fai/config/scripts/GRML/
+  /etc/grml/fai/config/debconf/GRML
+  /etc/grml/fai/config/class/GRML.var
+  /etc/grml/fai/config/hooks/instsoft.GRML
+  /etc/grml/fai/config/package_config/GRML
+
+Take a look at the next section for information about the concept of those
+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. For example
+if you want to use your own class named "FOOBAR" just extend CLASSES="GRML" inside
+/etc/grml/grml-live.conf to CLASSES="GRML,FOOBAR" or invoke grml-live using
+the classes option: "grml-live -c GRML,FOOBAR ...".
+
+More details regarding the class concept can be found in the documentation of
+FAI (available at /usr/share/doc/fai-doc/).
+
+Files
+-----
+
+Notice that grml-live ships FAI configuration files that do not use the same
+namespace as the FAI packages itself.  This ensures that grml-live does not
+clash with your usual FAI configuration, so instead of /etc/fai/fai.conf
+(package fai-client) grml uses /etc/grml/fai/fai.conf instead. For more details
+see below. To get an idea how another configuration or example files could look
+like check out /usr/share/doc/fai-doc/examples/simple/ (provided by Debian package
+fai-doc). /usr/share/doc/fai-doc/fai-guide.html/ch-config.html also provides
+documentation regarding configuration possibilities.
+
+  /usr/sbin/grml-live
+
+Script for the main build process (being a wrapper around FAI currently).
+Requires root permissions for execution.
+
+  /etc/grml/fai/fai.conf
+
+Main configuration file which specifies where all the configuration files and
+scripts for FAI/grml-live can be found. By default it is
+FAI_CONFIGDIR=/etc/grml/fai/config, a directory shipped by grml-live
+out-of-the-box so you shouldn't have to configure anything in this file.
+
+  /etc/grml/fai/make-fai-nfsroot.conf
+
+TODO
+
+  /etc/grml/fai/NFSROOT
+
+TODO
+
+  /etc/grml/fai/apt/sources.list
+
+This file specifies which mirrors should be used for retreiving the Debian
+packages used for creating the ISO. If you want to use a local mirror you have
+to adjust this file.
+
+  /etc/grml/fai/config/
+
+The main directory for configuration of FAI/grml-live. More details below.
+
+  /etc/grml/fai/config/class/
+
+This directory contains files which specify main configuration variables for the
+FAI classes.
+
+  /etc/grml/fai/config/debconf/
+
+This directory provides the files for preseeding/configuration of debconf
+through files.
+
+  /etc/grml/fai/config/hooks/
+
+This directory provides files for customizing the build process through hooks.
+Hooks are user defined programs or scripts, which are called during the
+installation process.
+
+  /etc/grml/fai/config/package_config/
+
+File with lists of software packages to be installed or removed.  The different
+classes describe what should find its way to your ISO.  When running 'fai -v -C
+/etc/grml/fai -cGRML dirinstall ...' only the files from the directory GRML/
+will be taken, if you use 'fai -v -C /etc/grml/fai -cGRML,FOOBAR dirinstall ...'
+then the files of GRML/ **plus** the files from FOOBAR/ will be taken. So just
+create a new class to adjust it to your needs. Please notice that the directory
+GRML contains a package list defining a minimum but still reasonable package
+configuration.
+
+  /etc/grml/fai/config/scripts/
+
+Scripts for customising the ISO within build process.
+
+  /etc/grml/fai/live-initramfs/
+
+This directory provides the files used for building the initramfs/initrd via
+live-initramfs(8).
+
+Requirements for the build system
+---------------------------------
+
+* any Debian based system should be sufficient (if not please send a bug
+report), for example a grml2hd harddisk installation ships all you need
+
+* enough free disk space, at least 1GB are required for a minimal grml-live run
+
+* 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
+as possiblbe)
+
+Known TODOs
+-----------
+
+* extend the grml-live wrapper script so it runs all the necessary command in a
+single run (boot/isolinux, mksquashfs and mkisofs stuff is missing currently)
+
+* really support signed apt repositories
+
+* explain (and provide configuration for) the use of NFSROOT
+
+* support setting stuff like ISO name, version,...
+
+* support different flavours and architectures of Debian (currently it defaults
+to Debian/stable x86_32)
 
 Bugs
 ----
-Please report feedback, link:http://grml.org/bugs/[bugreports] and wishes link:http://grml.org/contact/[to us]!
+
+Please report feedback, link:http://grml.org/bugs/[bugreports] and wishes
+link:http://grml.org/contact/[to the grml-team]!
 
 Authors
 -------
 Michael Prokop <mika@grml.org>.
+