Add -T option for unpacking chroot archives
[grml-live.git] / docs / grml-live.txt
index 4bc5666..debc706 100644 (file)
@@ -12,7 +12,8 @@ Synopsis
 
 grml-live [-a <architecture>] [-c <classe[s]>] [-C <configfile>] [-g
 <grml_name>] [-i <iso_name> ] [-o <output_directory>] [-r <release_name>] [-s
-<suite>] [-t <template_directory>] [-v <version_number>] [-bBFhquVz]
+<suite>] [-t <template_directory>] [-v <version_number>] [-U <username>] [
+-AbBFnNquVz]
 
 CAUTION: Please check out <<current_state,the 'Current state of grml-live with
 squashfs-tools and kernel' section>> for details about current state of involved
@@ -35,8 +36,9 @@ 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
+provides and uses ${GRML_FAI_CONFIG} which is pointing to /etc/grml/fai by default
+(unless overriden using the ''-D'' option). This ensures that it does not clash
+with default FAI configuration and packages, so you can use grml-live and FAI
 completely independent at the same time!
 
 [NOTE]
@@ -53,6 +55,11 @@ for details).
 Options
 -------
 
+  -A::
+
+Clean up output directories before attempting the build. Packs the chroot
+into a tar archive, and removes chroot and iso build directories before exiting.
+
   -a **ARCHITECTURE**::
 
 Use the specified architecture instead of the currently running one.  This
@@ -79,12 +86,13 @@ really know that you do not want to update the chroot.
   -c **CLASSES**::
 
 Specify the CLASSES to be used for building the ISO via FAI.  By default only
-the classes GRMLBASE, GRML_MEDIUM and I386 are assumed, resulting in a small base
-system (being about ~180MB 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
-<<classes,the 'CLASSES' section in this document>> for details about available classes).
-So instead of GRML_MEDIUM you can also use GRML_SMALL and GRML_FULL.
+the classes GRMLBASE, GRML_FULL and I386/AMD64 (depending on system
+architecture) are assumed, resulting in a small base system (being about ~180MB
+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 <<classes,the 'CLASSES' section in this document>> for
+details about available classes).  So instead of GRML_FULL you can also use
+GRML_SMALL and GRML_FULL.
 
 [IMPORTANT]
 All class names should be written in uppercase letters. Do not use a dash, use
@@ -104,9 +112,9 @@ Please notice that all configuration files have to be adjusted during execution
 of grml-live, so please make sure you use /etc/grml/grml-live.conf as a base for
 your own configuration file (usually /etc/grml/grml-live.local). Please also
 notice that the configuration file specified via this option is **not** (yet)
-supported inside the scripts/hooks/classes at /etc/grml/fai/config. Instead use
+supported inside the scripts/hooks/classes at ${GRML_FAI_CONFIG}/config. Instead use
 /etc/grml/grml-live.local for configuration stuff used inside
-/etc/grml/fai/config.
+${GRML_FAI_CONFIG}/config.
 
   -d **DATE**::
 
@@ -118,6 +126,16 @@ the bootsplash related files. This option is useful if you want to provide an
 ISO with release information for a specific date but have to build it in
 advance. Usage example: '-d 2009-10-30'
 
+  -D **CONFIGURATION_DIRECTORY**::
+
+The specified directory is used as configuration directory for grml-live and its
+FAI. By default /etc/grml/fai is used as default configuration directory.  If
+you want to have different configuration scripts, package definitions, etc. with
+without messing with the global configuration under /etc/grml/fai provided by
+grml-live this option provides you the option to use your own configuration
+directory. This directory is what's being referred to as ${GRML_FAI_CONFIG}
+throughout this documentation.
+
   -F::
 
 Force execution and do not prompt for acknowledgment of configuration.
@@ -148,6 +166,18 @@ in the chroot so you have to create the rootfs structure on your own.
 Skip creation of the ISO file. This option is useful if you want to build/update
 the chroot and/or recreate the squashfs file without building an ISO file.
 
+  -N::
+
+Bootstrap the chroot without building bootloader, squashfs, or finalizing the
+ISO. Use this option if installation of some packages fails, you want to run
+custom commands or similar.
+The main use of this option is to save time by skipping stages which aren't
+necessary for bootstrapping the chroot and which would get executed more than
+once when iterating through the initial bootstrapping.
+Alternatively, use this option as a test run of grml-live. Once you are
+satisfied with the state of your grml_chroot, use grml-live **-u** to build the
+remaining stages and finalize the ISO.
+
   -o **OUTPUT_DIRECTORY**::
 
 Main output directory of the build process of FAI.  Some directories are created
@@ -168,9 +198,9 @@ Specify name of the release.
   -s **SUITE**::
 
 Specify the Debian suite you want to use for your live-system.  Defaults to
-"lenny" (being current Debian/stable). Supported values are: etch, lenny, sid.
-Debian "squeeze" (current Debian/testing) requires base.tgz
-(/etc/grml/fai/config/basefiles/$CLASSNAME.tar.gz) or a recent version of
+"squeeze" (being current Debian/stable). Supported values are: etch, lenny,
+squeeze, sid. Debian "squeeze" requires a recent base.tgz
+(${GRML_FAI_CONFIG}/config/basefiles/$CLASSNAME.tar.gz) or a recent version of
 debootstrap.
 
   -t **TEMPLATE_DIRECTORY**::
@@ -178,11 +208,20 @@ debootstrap.
 Specify place of the templates used for building the ISO. By default
 (and if not manually specified) this is /usr/share/grml-live/templates/.
 
+  -T **CHROOT_ARCHIVE**::
+
+Unpack chroot tar archive before starting. Most useful in combination with
+-A and -b or -u.
+
   -u::
 
 Update existing chroot instead of rebuilding it from scratch. This option is
 based on the softupdate feature of FAI.
 
+  -U **USERNAME**::
+
+Sets ownership of all build output files to specified username before exiting.
+
   -v **VERSION_NUMBER**::
 
 Specify version number of the release.
@@ -193,7 +232,7 @@ Increase verbosity in the build process.
 
   -z::
 
-Use ZLIB instead of LZMA compression in mksquashfs part of the build process.
+Use ZLIB instead of LZMA/XZ compression in mksquashfs part of the build process.
 
 [[usage-examples]]
 Usage examples
@@ -207,18 +246,18 @@ 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 -s sid -c GRMLBASE,GRML_SMALL,I386 -o /home/mika/grml-live
+  # grml-live -s sid -c GRMLBASE,GRML_SMALL,AMD64 -o /home/mika/grml-live
 
-To get a medium sized, Debian-unstable and grml-based Live-CD for i386
+To get a medium sized, Debian-unstable and grml-based Live-CD for amd64
 architecture using /grml/grml-live as build and output directory just run:
 
-  # grml-live -s sid -a i386 -c GRMLBASE,GRML_MEDIUM,I386
+  # grml-live -s sid -a amd64 -c GRMLBASE,GRML_FULL,AMD64
 
 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
+  # grml-live -o /tmp -c GRMLBASE,GRML_SMALL,AMD64 -s sid -i grml_0.0-3.iso
 
 [NOTE]
 
@@ -261,11 +300,11 @@ grml-live, as well as the architecture dependent class which provides the kernel
 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
-  /etc/grml/fai/config/class/GRMLBASE.var
-  /etc/grml/fai/config/hooks/instsoft.GRMLBASE
-  /etc/grml/fai/config/package_config/GRMLBASE
+  ${GRML_FAI_CONFIG}/config/scripts/GRMLBASE/
+  ${GRML_FAI_CONFIG}/config/debconf/GRMLBASE
+  ${GRML_FAI_CONFIG}/config/class/GRMLBASE.var
+  ${GRML_FAI_CONFIG}/config/hooks/instsoft.GRMLBASE
+  ${GRML_FAI_CONFIG}/config/package_config/GRMLBASE
 
 Take a look at the next section for information about the concept of those
 files/directories.
@@ -273,9 +312,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
-set CLASSES="GRMLBASE,GRML_SMALL,I386,FOOBAR" inside /etc/grml/grml-live.local
+set CLASSES="GRMLBASE,GRML_SMALL,AMD64,FOOBAR" inside /etc/grml/grml-live.local
 or invoke grml-live using the classes option: "grml-live -c
-GRMLBASE,GRML_SMALL,I386,FOOBAR ...".
+GRMLBASE,GRML_SMALL,AMD64,FOOBAR ...".
 
 More details regarding the class concept can be found in the documentation of
 FAI itself (being available at /usr/share/doc/fai-doc/).
@@ -286,25 +325,28 @@ Available classes
 -----------------
 
 The package selection part of the classes can be found in
-/etc/grml/fai/config/package_config whereas some further classes are defined for
-example in /etc/grml/fai/config/scripts/ so specific feature sets can be
+${GRML_FAI_CONFIG}/config/package_config whereas some further classes are defined for
+example in ${GRML_FAI_CONFIG}/config/scripts/ so specific feature sets can be
 selected. The following classes are predefined:
 
 * DEBORPHAN: get rid of all packages listed in output of Deborphan
 
 * GRMLBASE: the main class responsible for getting a minimal subset of what's
-defining a grml system. Important parts of the buildprocess are specified in
+defining a Grml system. Important parts of the buildprocess are specified in
 this class as well, so unless you have a really good reason you should always
 use this class.
 
-* GRML_FULL: full featured grml, also known as the "normal", full grml.
+* GRML_FULL: full featured grml, also known as the "normal", full grml as
+introduced in november 2011 (~350MB ISO size).
 
-* GRML_MEDIUM: medium sized grml version, known as grml-medium
+* GRML_MEDIUM: medium sized grml version, used to be known as grml-medium
+until november 2011 (~220MB ISO size).
 
-* GRML_POWERPC: grml for PowerPC architecture, not supported yet (still work in
-progress)
+* GRML_SMALL: minimum sized grml version, known as grml-small (~110MB ISO
+size).
 
-* GRML_SMALL: minimum sized grml version, known as grml-small
+* GRML_XL: large size Grml version, used to be known as "full grml" until
+november 2011 (~700MB ISO size).
 
 * LATEX: LaTeX(-related) packages like auctex, texlive,...
 (which used to be shipped by grml before the LaTeX removal)
@@ -325,6 +367,9 @@ official grml release
 * REMOVE_DOCS: get rid of documentation directories (like /usr/share/doc,
 /usr/share/man/, /usr/share/info,...)
 
+* SOURCES: retrieve Debian source packages after installation. Files will be
+placed in the output directory under grml_sources.
+
 * XORG: providing important packages for use with a base grml-featured X.org
 setup
 
@@ -335,7 +380,7 @@ 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
+fai-client) grml uses ${GRML_FAI_CONFIG}/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). Furthermore /usr/share/doc/fai-doc/fai-guide.html/ch-config.html
@@ -359,72 +404,72 @@ over the ones from /etc/grml/grml-live.conf. If you want to override settings
 from /etc/grml/grml-live.local as well you have to specify them on the grml-live
 commandline.
 
-  /etc/grml/fai/fai.conf
+  ${GRML_FAI_CONFIG}/fai.conf
 
 Main configuration file for FAI which specifies where all the configuration
 files and scripts for FAI/grml-live can be found. By default the configuration
 variables are FAI_CONFIG_SRC=file:///etc/grml/fai/config and
-FAI_CONFIGDIR=/etc/grml/fai/config - both pointing to a directory shipped by
+GRML_FAI_CONFIG=/etc/grml/fai/config - both pointing to 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
+  ${GRML_FAI_CONFIG}/make-fai-nfsroot.conf
 
 This file is used by make-fai-nfsroot(8) only. Usually you don't have to change
 anything inside this file. If you want to modify NFSROOT though you can adjust
 it there.
 
-  /etc/grml/fai/NFSROOT
+  ${GRML_FAI_CONFIG}/NFSROOT
 
 This file specifies the package list for creating the NFSROOT.
 
-  /etc/grml/fai/apt/sources.list
+  ${GRML_FAI_CONFIG}/apt/sources.list
 
 This file specifies which mirrors should be considered for retrieving the Debian
 packages when creating the main chroot (including all the software you would
 like to see included). Important: this file should *not* be adjusted manually!
 Instead use the GRML_LIVE_SOURCES variable inside /etc/grml/grml-live.conf or
-/etc/grml/grml-live.local which modifies /etc/grml/fai/apt/sources.list
+/etc/grml/grml-live.local which modifies ${GRML_FAI_CONFIG}/apt/sources.list
 on-the-fly via grml-live then. If you want to generally adjust apt configuration
-use FAI's fcopy command with /etc/grml/fai/config/files instead.
+use FAI's fcopy command with ${GRML_FAI_CONFIG}/config/files instead.
 
-  /etc/grml/fai/config/
+  ${GRML_FAI_CONFIG}/config/
 
 The main directory for configuration of FAI/grml-live. More details below.
 
-  /etc/grml/fai/config/class/
+  ${GRML_FAI_CONFIG}/config/class/
 
 This directory contains files which specify main configuration variables for the
 FAI classes.
 
-  /etc/grml/fai/config/debconf/
+  ${GRML_FAI_CONFIG}/config/debconf/
 
 This directory provides the files for preseeding/configuration of debconf
 through files.
 
-  /etc/grml/fai/config/hooks/
+  ${GRML_FAI_CONFIG}/config/hooks/
 
 This directory provides files for customising 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/
+  ${GRML_FAI_CONFIG}/config/package_config/
 
 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,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
+"grml-live -c GRMLBASE,GRML_SMALL,AMD64 ..." only the configuration of GRMLBASE,
+GRML_SMALL and and AMD64 will be taken. If you use 'grml-live -c
+GRMLBASE,GRML_SMALL,AMD64,FOOBAR ...' then the files of GRMLBASE, GRML_SMALL,
+AMD64 **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/
+  ${GRML_FAI_CONFIG}/config/scripts/
 
 Scripts for customising the ISO within the build process.
 
-  /etc/grml/fai/live-initramfs/
+  ${GRML_FAI_CONFIG}/live-initramfs/
 
 This directory provides the files used for building the initramfs/initrd via
 live-initramfs(8).
@@ -441,7 +486,7 @@ The FAI part of grml-live logs to /var/log/fai/$HOSTNAME/ - so the
 default being /var/log/fai/grml/.
 
 If you are using the grml-live buildd you will find the logs of the grml-live
-run at /var/log/grml-buildd.stdout and /var/log/grml-buildd.stderr.
+run at /var/log/grml-buildd.log.
 
 If you want to store build information in a database just install the
 grml-live-db Debian package. Further details available in the grml-live-db
@@ -475,12 +520,11 @@ For further information see next section.
 Current state of grml-live with squashfs-tools and kernel
 ---------------------------------------------------------
 
-To make it easier to track problems this section documents current state of
-grml-live playing together with squashfs-tools / squashfs-lzma-tools /
-squashfs-lzma-tools4 (for building the compressed file) and the kernel version.
-Documentation of this section is up2date by 1st of september 2010, please report
-any bugs you encounter.
+Use squashfs-tools >=4.2-1 (available from Grml repositories as well as from
+Debian/unstable) to build Grml (based) ISOs featuring kernel version
+2.6.38-grml[64].
 
+////////////////////////////////////////////////////////////////////////////////
 Difference between squashfs-lzma-tools, squashfs-lzma-tools4 and squashfs-tools
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
@@ -515,7 +559,6 @@ with kernel versions 2.6.31-grml[64] and 2.6.33-grml[64]
 version 4, package maintained and available from Debian, recommended only for
 ZLIB-only builds of any grml-live builds with kernel versions >=2.6.31-grml[64]
 
-////////////////////////////////////////////////////////////////////////////////
 Outdated, JFTR:
 
 * squashfs-tools 1:3.3-7: ZLIB as default, no LZMA support/options, file format
@@ -526,7 +569,6 @@ option, file format version 3
 
 * squashfs-lzma-tools 3.3-1: LZMA as default, ZLIB support via '-nolzma' option,
 file format version 3
-////////////////////////////////////////////////////////////////////////////////
 
 Now, depending on the kernel version you want to use you need different versions
 of squashfs-tools/squashfs-lzma-tools[4]. Yes, that's a mess (don't ask how much
@@ -566,13 +608,14 @@ ZLIB compression instead.
 * Kernel 2.6.31-grml[64]: works with ZLIB compression, fails with LZMA
 * Kernel 2.6.33-grml[64]: works with ZLIB compression, fails with LZMA
 * Kernel 2.6.35-grml[64]: works with ZLIB *and* LZMA compression
+* Kernel 2.6.36-grml[64]: works with ZLIB *and* LZMA compression
 
 [NOTE]
-squashfs-lzma-tools4 is the recommended package for building up2date ISOs with
-grml-live! Please use other squashfs-* packages only if you want to build live
-systems providing kernel versions older than 2.6.35-grml*. Use
-squashfs-lzma-tools4 from Grml if you want to remaster any Grml releases MORE
-RECENT than 2010.04.
+squashfs-tools >=4.1-1 and/or squashfs-lzma-tools4 are the recommended package
+for building up2date ISOs with grml-live! Please use other squashfs-* packages
+only if you want to build live systems providing kernel versions older than
+2.6.35-grml*. Use squashfs-tools >=4.1-1 or squashfs-lzma-tools4 from Grml if
+you want to remaster any Grml releases MORE RECENT than 2010.04.
 
 Using squashfs-lzma-tools 4.0-2 on the build system
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -626,13 +669,13 @@ use Grml's squashfs-lzma-tools[4] (see sections above) instead.
 * Kernel 2.6.31-grml[64]: works (ZLIB only)
 * Kernel 2.6.33-grml[64]: works (ZLIB only)
 * Kernel 2.6.35-grml[64]: works (ZLIB only)
+* Kernel 2.6.36-grml[64]: works (ZLIB only)
 
 [NOTE]
-Please use squashfs-tools >=1:4.0-1 only if you want to remaster Grml releases
-starting with 2009.10 using the ZLIB compression, please use squashfs-lzma-tools
-/ squashfs-lzma-tools4 otherwise instead.
+Please use squashfs-tools between 4.0-1 and 4.1-1 only if you want to remaster
+Grml releases starting with 2009.10 using the ZLIB compression, please use other
+squashfs packages otherwise instead.
 
-//////////////////////////////////////////////////////////////////////////////////
 Outdated, JFTR:
 
 Using squashfs-lzma-tools 3.3-1 on the build system
@@ -712,7 +755,7 @@ plain, original Debian installation is supported as well. So there we go.
 
 What we have: plain, original Debian Lenny (5.0).
 
-What we want: build a grml-medium ISO based on Debian/squeeze for the i386
+What we want: build a grml-medium ISO based on Debian/squeeze for the amd64
 architecture using grml-live.
 
 [IMPORTANT]
@@ -742,11 +785,7 @@ Instructions
   Pin: origin deb.grml.org
   Pin-Priority: 1
 
-  Package: squashfs-lzma-tools
-  Pin: origin deb.grml.org
-  Pin-Priority: 996
-
-  Package: squashfs-lzma-tools4
+  Package: squashfs-tools
   Pin: origin deb.grml.org
   Pin-Priority: 996
   EOF
@@ -763,15 +802,13 @@ Instructions
 
   # install relevant tools
   # please check out http://grml.org/grml-live/#current_state when encountering problems!
-  apt-get -o APT::Install-Recommends=false install grml-live squashfs-lzma-tools squashfs-lzma-tools4
+  apt-get -o APT::Install-Recommends=false install grml-live squashfs-tools
 
   # adjust grml-live configuration for our needs:
   cat > /etc/grml/grml-live.local << EOF
   ## want a faster build process and don't need smaller ISOs?
-  ## if so use zlib compression, for kernels >=2.6.35-grml* and squashfs-lzma-tools4:
+  ## if so use zlib compression
   # SQUASHFS_OPTIONS="-comp gzip -b 256k"
-  ## ... or for kernels <=2.6.33-grml* and squashfs-lzma-tools:
-  # SQUASHFS_OPTIONS="-nolzma -b 256k"
   ## want to use a specific squashfs binary?
   # SQUASHFS_BINARY='/usr/bin/mksquashfs'
   # install local files into the chroot
@@ -780,7 +817,7 @@ Instructions
   ## OUTPUT="/srv/grml-live"
   FAI_DEBOOTSTRAP="squeeze http://cdn.debian.net/debian/"
   ARCH="i386"
-  CLASSES="GRMLBASE,GRML_MEDIUM,I386"
+  CLASSES="GRMLBASE,GRML_FULL,AMD64"
   # PRESERVE_LOGFILE='1'
   # ZERO_FAI_LOGFILE='1'
   GRML_LIVE_SOURCES="
@@ -808,17 +845,17 @@ worked as expected the last line of the shell output should look like:
 
 and the ISO can be found inside /grml-live/grml-live/grml_isos/ then.
 
-[[fai-on-etch]]
-Help, I'm using Debian etch and I don't have FAI version >3.2
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-  wget http://fai-project.org/download/etch/fai-client_3.2.8_all.deb \
-       http://fai-project.org/download/etch/fai-server_3.2.8_all.deb \
-       http://fai-project.org/download/etch/fai-doc_3.2.8_all.deb
-  dpkg -i fai-client_3.2.8_all.deb fai-server_3.2.8_all.deb fai-doc_3.2.8_all.deb
+[[grml_fai_config_variable]]
+What is $GRML_FAI_CONFIG?
+~~~~~~~~~~~~~~~~~~~~~~~~~
 
-or check out the link:http://fai-project.org/[FAI-homepage] for
-further details.
+The variable '$GRML_FAI_CONFIG' is pointing to the directory /etc/grml/fai by
+default.  To provide you a maximum of flexibility you can set up your own
+configuration directory (e.g. based on /etc/grml/fai) and use this directory
+running grml-live with the '-D <config_dir>' option. Now '$GRML_FAI_CONFIG'
+points to the specified directory instead of using /etc/grml/fai and all the
+configuration files, scripts and hooks will be taken from your
+'$GRML_FAI_CONFIG' directory.
 
 [[how-to-debug]]
 I've problems with the build process. How to start debugging?
@@ -876,7 +913,7 @@ to get the ratio between the different options):
 * 1 minute and 40 seconds with ZLIB
 
 [[install-local-files]]
-How to I install further files into the chroot/ISO?
+How do I install further files into the chroot/ISO?
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 Just point the configuration variable CHROOT_INSTALL to the directory which
@@ -894,24 +931,18 @@ own. Usage example:
 Can I use my own (local) Debian mirror?
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-Sure. Just adjust the variables GRML_LIVE_SOURCES and FAI_DEBOOTSTRAP (if not
-already using NFSROOT's base.tgz) inside /etc/grml/grml-live.conf according to
-your needs. Please don't forget that you should use the grml servers as well
-(see default configuration) so all the grml packages can be downloaded as well.
+Yes. Set up an according sources.list configuration as class file in
+${GRML_FAI_CONFIG}/config/files/etc/apt/sources.list.d/ and adjust the variable
+FAI_DEBOOTSTRAP (if not already using NFSROOT's base.tgz) inside
+/etc/grml/grml-live.conf[.local]. If you're setting up your own class file don't
+forget to include the class name in the class list (grml-live -c ...).
 
-If you want to use a local (for example NFS mount) mirror additionally, just
-adjust MIRROR_DIRECTORY and MIRROR_SOURCES inside /etc/grml/grml-live.conf as
-well.
+If you want to use a local (for example NFS mount) mirror additionally then
+adjust MIRROR_DIRECTORY in /etc/grml/grml-live.conf[.local] as well.
 
-Unless you specify GRML_LIVE_SOURCES and/or FAI_DEBOOTSTRAP the default from
-/etc/grml/fai/apt/sources.list and /etc/grml/fai/make-fai-nfsroot.conf will be
-taken. If you customise the variables in /etc/grml/grml-live.conf then the two
-files will be adjusted during runtime automatically.
+If you want to use a HTTP Proxy (like apt-cacher-ng), set APT_PROXY. Example:
 
-If MIRROR_DIRECTORY and MIRROR_SOURCES are specified the local mirror will be
-taken as first entry in the generated sources.list so it's preferred over
-non-local mirrors. Using a fallback mirror (via providing several mirrors in
-GRML_LIVE_SOURCES as used by default) is a recommended setting.
+  APT_PROXY="http://localhost:3142/"
 
 [[add-additional-debian-packages]]
 How do I add additional Debian package(s) to my CD/ISO?
@@ -929,7 +960,7 @@ Just create a new class (using the package_config directory):
 
 and specify it when invoking grml-live then:
 
-  # grml-live -c GRMLBASE,GRML_SMALL,I386,MIKA
+  # grml-live -c GRMLBASE,GRML_SMALL,AMD64,MIKA
 
 [[reset-grml-live-configuration]]
 I fscked up my grml-live configuration. How do I reset it to the defaults?
@@ -955,7 +986,7 @@ How do I create a base.tgz for use as NFSROOT?
 First of all build the chroot system:
 
   mkdir /tmp/nfsroot && cd /tmp/nfsroot
-  debootstrap lenny /tmp/nfsroot/ http://cdn.debian.net/debian
+  debootstrap squeeze /tmp/nfsroot/ http://cdn.debian.net/debian
   tar zcf base.tgz ./
 
 Then check out where your NFSROOT is located:
@@ -993,25 +1024,20 @@ or if using /etc/grml/fai/config/basefiles/$CLASSNAME.tar.gz for:
 Existing base.tgz can be found at http://daily.grml.org/
 
 [[apt-cacher]]
-Set up apt-cacher / apt-cacher-ng for use with grml-live
+Set up apt-cacher-ng for use with grml-live
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-Make sure /etc/grml/grml-live.conf provides according GRML_LIVE_SOURCES and
+Make sure /etc/grml/grml-live.local provides according APT_PROXY and
 FAI_DEBOOTSTRAP:
 
-  # cat /etc/grml/grml-live.conf
+  # cat /etc/grml/grml-live.local
   [...]
-  GRML_LIVE_SOURCES="
-  deb http://localhost:3142/deb.grml.org grml-stable  main
-  deb http://localhost:3142/deb.grml.org grml-testing main
-  deb http://localhost:3142/cdn.debian.net/debian lenny main contrib non-free
-  "
+  APT_PROXY="http://localhost:3142/"
   [...]
-  FAI_DEBOOTSTRAP="lenny http://localhost:3142/cdn.debian.net/debian lenny main contrib non-free"
+  FAI_DEBOOTSTRAP="squeeze http://localhost:3142/cdn.debian.net/debian squeeze main contrib non-free"
 
-Make sure apt-cacher / apt-cacher-ng is running ('/etc/init.d/apt-cacher
-restart' or '/etc/init.d/apt-cacher-ng restart'). That's it.  All downloaded
-files will be cached in /var/cache/apt-cacher/ or /var/cache/apt-cacher-ng then.
+Make sure apt-cacher-ng is running ('/etc/init.d/apt-cacher-ng restart').
+That's it.  All downloaded files will be cached in /var/cache/apt-cacher-ng then.
 
 [[approx]]
 Set up approx for use with grml-live
@@ -1025,9 +1051,9 @@ FAI_DEBOOTSTRAP:
   GRML_LIVE_SOURCES="
   deb http://localhost:9999/grml            grml-stable  main
   deb http://localhost:9999/grml            grml-testing main
-  deb http://localhost:9999/debian lenny    main contrib non-free
+  deb http://localhost:9999/debian squeeze  main contrib non-free
   "
-  FAI_DEBOOTSTRAP="lenny http://localhost:9999/debian"
+  FAI_DEBOOTSTRAP="squeeze http://localhost:9999/debian"
 
 Configure approx:
 
@@ -1039,6 +1065,81 @@ Configure approx:
 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.
 
+[[revert_manifold]]
+How do I revert the manifold feature from an ISO?
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+The so called manifold feature Grml ISOs use by default allows one to use the same
+ISO for CD boot and USB boot. If you notice any problems when booting just
+revert the manifold feature running:
+
+  % dd if=/dev/zero of=grml.iso bs=512 count=1 conv=notrunc
+
+To switch from manifold to isohybrid mode (an alternative approach provided by
+syslinux) then just execute:
+
+  % isohybrid grml.iso
+
+[[basetgz]]
+How do I create a base tar.gz (I386.tar.gz or AMD64.tar.gz)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Execute the following commands (requires root):
+
+  ARCH='amd64' # replace with i386 if necessary
+  SUITE='squeeze' # using the current stable release should always work
+  debootstrap --arch "$ARCH" --exclude=info,tasksel,tasksel-data "$SUITE" "$ARCH" http://debian.netcologne.de/debian
+  cd "$ARCH"
+  rm var/cache/apt/archives/*.deb
+  tar zcf ../"${ARCH}".tar.gz *
+
+And finally place the generated tarball in /etc/grml/fai/config/basefiles/ (note
+that it needs to be uppercase letters matching the class names, so: AMD64.tar.gz
+for amd64 and I386.tar.gz for i386).
+
+[[autobuild]]
+How do I set up an autobuild environment?
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+If you want to set up a system like link:http://daily.grml.org/[daily.grml.org]
+the Debian package grml-live-buildd provides all you need to start. Start with
+figuring out the cron job script /usr/share/grml-live/buildd/cronjob.sh.
+
+If you want to automatically update the grml-live Debian package on your build
+system based on the git tree of grml-live (so you get bleeding edge of
+development which might is interesting for services like daily.grml.org) the
+provided release_helper.sh script provides everything you need. Execute as root:
+
+  echo "deb file:/home/grml-live-git/grml-live.build-area/ ./" >> /etc/apt/sources.list.d/grml-live.list
+  adduser --disabled-login --disabled-password grml-live-git
+
+Execute 'visudo' to update sudo configuration and add the following line:
+
+  grml-live-git ALL=NOPASSWD: /usr/bin/apt-get
+
+Switch to user grml-live-git and configure the rest:
+
+  su - grml-live-git
+  mkdir grml-live.build-area
+  git clone git://git.grml.org/grml-live.git
+  git config --global user.name "Grml-Live Git Autobuild"
+  git config --global user.email "grml-live-git@$(hostname)"
+
+Finally install a cron job (as user grml-live-git) like:
+
+  30 00 * * * cd /home/grml-live-git/grml-live.git/ && env AUTOBUILD=1 scripts/release_helper.sh >/home/grml-live-git/grml-live-build.log
+
+Tip: To find out the build date of the installed grml-live package just execute:
+
+  % apt-cache policy grml-live | grep 'Installed.*autobuild'
+   Installed: 0.13.1~autobuild1300450381
+
+and run "date -ud @$STRING" where $STRING is the number behind the "autobuild",
+like:
+
+  % date -ud @1300450081
+  Fri Mar 18 12:08:01 UTC 2011
+
 [[question]]
 I've a question which isn't answered by this document
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~