Synopsis
--------
-grml-live [-c <classe[s]>] [-t <target_directory>] [-s <suite>] [-Fvh]
+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]
-*******************************************************************************
-Important! This document is growing as requested. If you have questions which
-aren't answered by this document yet please let me know: <mika@grml.org>!
-*******************************************************************************
+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
+tools before starting with grml-live or if you encounter any problems.
Description
-----------
local mirror (strongly recommended if you plan to use grml-live more than once)
checkout mkdebmirror (see /usr/share/doc/grml-live/examples/mkdebmirror),
debmirror(1), reprepro(1) (see /usr/share/doc/grml-live/examples/reprepro/ for a
-sample configuration) and approx(8). To avoid downloading the base system again
-and again check out FAI's NFSROOT (see FAQ of this document for details).
+sample configuration), apt-cacher(1) and approx(8). To avoid downloading the
+base system again and again check out FAI's NFSROOT (see FAQ of this document
+for details).
Options
-------
+ -a **ARCHITECTURE**::
+
+Use the specified architecture instead of the currently running one. This
+allows building a 32bit system on a 64bit host (though you can't build a 64bit
+system on a 32bit system/kernel of course). Please notice that real
+crosscompiling (like building a ppc system on x86) isn't possible due to the
+nature and the need of working in a chroot. Currently supported values: i386
+and amd64.
+
+ -b::
+
+Build the ISO without updating the chroot via FAI. This option is useful for
+example when working on stable releases: if you have a working base
+system/chroot and do not want to execute any further updates (via "-u" option)
+but intend to only build the ISO.
+
+ -B::
+
+Build the ISO without touching the chroot at all. This option is useful if
+you modified anything that FAI or grml-live might adjust via grml's FAI
+scripts. It's like the '-b' option but even more advanced. Use only if you
+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 and I386 are assumed, resulting in a small base system
-(being about ~150MB total ISO size) for x86 (32bit).
+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.
+
+ -C **CONFIGURATION_FILE**::
+
+The specified file is used as configuration file for grml-live. By default
+/etc/grml/grml-live.conf is used for main configuration. If a file named
+/etc/grml/grml-live.local exists it is used as well (sourced after reading
+/etc/grml/grml-live.conf to allow overriding settings). As a last option the
+specified configuration file is sourced so it is possible to override settings
+of /etc/grml/grml-live.conf as well as of /etc/grml/grml-live.local. 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. 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
+/etc/grml/grml-live.conf and/or /etc/grml/grml-live.local for configuration
+stuff used inside /etc/grml/fai/config.
- -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.
+Please do NOT use blanks and any special characters like '/', ';' inside
+GRML_NAME, otherwise you might notice problems while booting.
+
+ -h::
+
+Display short usage information and exit.
+
+ -i **ISO_NAME**::
- -t **TARGET_DIRECTORY**::
+Specify name of ISO which will be available inside $OUTPUT_DIRECTORY/grml_isos
+by default.
+
+ -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::
+ -q::
-Force execution and do not prompt for acknowledgment of configuration.
+Build the ISO without (re-)creating the squashfs compressed file using mksquashfs.
+This option is useful if you just want to update parts outside the chroot in the ISO.
+Consider combining this option with the build-only option '-b'.
- -h::
+ -r **RELEASENAME**::
-Display short usage information and exit.
+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/....tar.gz) until it's supported by debootstrap.
+
+ -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/.
+
+ -u::
- -v::
+Update existing chroot instead of rebuilding it from scratch. This option is
+based on the softupdate feature of FAI.
+
+ -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
------------------------------------------------------------
+ -z::
+
+Use ZLIB instead of LZMA compression in mksquashfs part of the build process.
+
+[[usage-examples]]
+Usage examples
+--------------
To get a small, Debian-stable and grml-based Live-CD using /grml/grml-live
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 -s sid -c GRMLBASE,GRML_SMALL,I386 -o /home/mika/grml-live
+
+To get a medium sized, Debian-unstable and grml-based Live-CD for i386
+architecture using /grml/grml-live as build and output directory just run:
+
+ # grml-live -s sid -a i386 -c GRMLBASE,GRML_MEDIUM,I386
+
+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]
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 use another directory for $CHROOT_OUTPUT,
+$BUILD_OUTPUT and $ISO_OUTPUT if you plan to create more persistent output. :)
+[[main-features]]
Main features of grml-live
--------------------------
* multi-arch support (work in progress)
+[[class-concept]]
The class concept
-----------------
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
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/).
+[[X7]]
+[[classes]]
+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
+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
+this class as well, so unless you have a really good reason you should always
+use this class.
+
+* GRML_FORENSIC: tools for forensic investigations which has been created
+by people from link:http://www.forensic-geeks.org/[forensic-geeks.org].
+
+* GRML_FULL: full featured grml, also known as the "normal", full grml.
+
+* GRML_MEDIUM: medium sized grml version, known as grml-medium
+
+* GRML_POWERPC: grml for PowerPC architecture, not supported yet (still work in
+progress)
+
+* GRML_SMALL: minimum sized grml version, known as grml-small
+
+* LATEX: LaTeX(-related) packages like auctex, texlive,...
+(which used to be shipped by grml before the LaTeX removal)
+
+* LATEX_CLEANUP: get rid of several very large LaTeX directories
+(like some /usr/share/doc/texlive-*, /usr/share/doc/texmf,...)
+
+* LOCALES: use full featured locales setup (see /etc/locale.gen.grml). This
+avoids to get rid of /usr/share/locale - which happens by default otherwise - as
+well.
+
+* NO_ONLINE: do not run scripts during the chroot build process which require a
+network connection
+
+* RELEASE: run some specific scripts and commands to provide the workflow for an
+official grml release
+
+* REMOVE_DOCS: get rid of documentation directories (like /usr/share/doc,
+/usr/share/man/, /usr/share/info,...)
+
+* XORG: providing important packages for use with a base grml-featured X.org
+setup
+
+[[files]]
Files
-----
/etc/grml/fai/apt/sources.list
-This file specifies which mirrors should be used for retreiving the Debian
-packages used for creating the main chroot (including all the software you would
-like to see included). If you want to use a local mirror you either have to
-adjust this file or use the GRML_LIVE_SOURCES variable inside
-/etc/grml/grml-live.conf which modifies /etc/grml/fai/apt/sources.list
-on-the-fly then.
+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
+on-the-fly via grml-live then. If you want to generally adjust apt configuration
+check out /etc/grml/fai/files/etc/apt instead.
/etc/grml/fai/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,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/
This directory provides the files used for building the initramfs/initrd via
live-initramfs(8).
+[[log-files]]
+Available log files
+-------------------
+
+grml-live itself logs to /var/log/grml-live.log. Unless you set ZERO_LOGFILE in
+/etc/grml/grml-live.conf the output is appended to the file. If you set the
+ZERO_LOGFILE configuration option the logfile will be truncated on each new
+invocation of grml-live.
+
+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.
+
+[[requirements]]
Requirements for the build system
---------------------------------
-* any Debian based system should be sufficient (if not it's a bug, so please
-send us a bug report then) [a usual link:http://grml.org/grml2hd/[grml2hd]
-harddisk installation ships all you need]
+* any Debian based system should be sufficient (if it doesn't work it's a bug,
+please send us a bug report then) [a usual
+link:http://grml.org/grml2hd/[grml2hd] harddisk installation (using grml or
+grml-medium) ships all you need]. Check out <<deploy-on-debian,How do I deploy
+grml-live on a plain Debian installation>> for details how to set up grml-live
+on a plain, original Debian system.
* 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
+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
+* fast network access for retrieving the Debian packages used for creating the
chroot (check out "local mirror" and "NFSROOT" to workaround this problem as far
-as possiblbe)
+as possible)
+
+For further information see next section.
+
+[[X8]]
+[[current_state]]
+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 (for
+building the compressed file) and the kernel version. Documentation of this
+section is up2date by 04nd of august 2009, please report any bugs you
+encounter.
+
+Using squashfs-lzma-tools 3.3-1 on the build system
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+squashfs-lzma-tools from the grml repository supports kernel 2.6.26-grml[64] and
+2.6.28-grml[64] using both lzma and zlib (-nolzma) compression. It's the
+recommended package for building ISOs with grml-live currently!
+The packages can be downloaded from
+link:http://deb.grml.org/pool/main/s/squashfs-lzma/[http://deb.grml.org/pool/main/s/squashfs-lzma/].
+
+[NOTE]
+Please use squashfs-lzma-tools 3.3-1 if you want to remaster grml release
+2008.11 or 2009.05.
+
+Using squashfs-tools 1:3.3-7 on the build system
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+squashfs-tools 1:3.3-7 is available via the official Debian/unstable and
+Debian/testing (Lenny) pool running:
+
+ # aptitude install squashfs-tools=1:3.3-7
+
+or directly via downloading the files
+http://grml.org/squashfs/squashfs-tools_3.3-7_i386.deb (for x86) or
+http://grml.org/squashfs/squashfs-tools_3.3-7_amd64.deb (for amd64) [both build
+on and for Debian/etch but working with testing and unstable as well].
+
+Please notice that squashfs-tools 1:3.3-7 does NOT support LZMA compression at
+all (so you won't be able to remaster release 2008.11 and 2009.05 using LZMA for
+example). The -nolzma option of mksquashfs is not available therefore (even
+though grml-live will deactivate it for you automatically anyway). Please use
+squashfs-lzma-tools instead.
+
+* Kernel 2.6.23-grml: does NOT work, please use squashfs-tools 1:3.2r2-9exp1
+ instead if you still want to use kernel 2.6.23 (not
+ recommended)
+* Kernel 2.6.26-grml: works (without LZMA compression only of course!)
+* Kernel 2.6.28-grml: works (without LZMA compression only of course!)
+
+Using squashfs-tools 1:3.2r2-9exp1 on the build system
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+squashfs-tools 1:3.2r2-9exp1 is available via the grml-testing repository,
+running:
+
+ # aptitude install squashfs-tools=1:3.2r2-9exp1
+
+or directly via downloading the files
+http://grml.org/squashfs/squashfs-tools_3.2r2-9exp1_i386.deb (for x86) or
+http://grml.org/squashfs/squashfs-tools_3.2r2-9exp1_amd64.deb (for amd64).
+
+Using with ZLIB compression (SQUASHFS_OPTIONS='-nolzma' or -z
+option in grml-live cmdline):
+
+* Kernel 2.6.23-grml: works
+* Kernel 2.6.26-grml: works
+* Kernel 2.6.28-grml: supposed to work (not verified though)
+
+Using with LZMA compression:
+
+* Kernel 2.6.23-grml: works
+* Kernel 2.6.26-grml: does NOT work, please use zlib mode instead or switch
+ to Debian package squashfs-lzma-tools (see section above).
+* Kernel 2.6.28-grml: does NOT work, please use zlib mode instead or switch
+ to Debian package squashfs-lzma-tools (see section above).
+
+[[faq]]
FAQ
---
+[[deploy-on-debian]]
+How do I deploy grml-live on a plain Debian installation?
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+The easiest way to get a running grml-live setup is to install grml or
+grml-medium using grml2hd (for example inside KVM, Virtualbox, VMware,... if you
+don't want to run it on a physical system). Of course using grml-live on a
+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
+architecture using grml-live.
+
+[IMPORTANT]
+
+If you encounter any problems while booting the resulting ISO please be aware of
+<<current_state,the 'current state of grml-live with squashfs-tools and kernel'
+section>>.
+
+Instructions
+^^^^^^^^^^^^
+
+ # adjust sources.list:
+ cat >> /etc/apt/sources.list << EOF
+
+ # grml stable repository:
+ deb http://deb.grml.org/ grml-stable main
+ deb-src http://deb.grml.org/ grml-stable main
+
+ # grml testing/development repository:
+ deb http://deb.grml.org/ grml-testing main
+ deb-src http://deb.grml.org/ grml-testing main
+ EOF
+
+ # adjust apt-pinning (only prefer squashfs stuff from grml):
+ cat >> /etc/apt/preferences << EOF
+ Package: *
+ Pin: origin deb.grml.org
+ Pin-Priority: 1
+
+ Package: squashfs-tools
+ Pin: origin deb.grml.org
+ Pin-Priority: 996
+
+ Package: squashfs-lzma-tools
+ Pin: origin deb.grml.org
+ Pin-Priority: 996
+ EOF
+
+ # get keyring for apt:
+ apt-get update
+ apt-get --allow-unauthenticated install grml-debian-keyring
+
+ # install basefile so we don't have to build basic chroot from scratch:
+ mkdir -p /etc/grml/fai/config/basefiles/
+ mv base.tgz /etc/grml/fai/config/basefiles/I386.tar.gz
+
+ # install relevant tools:
+ apt-get -o APT::Install-Recommends=false install grml-live squashfs-lzma-tools
+
+ # adjust grml-live configuration for our needs:
+ cat > /etc/grml/grml-live.local << EOF
+ # consider using lzma only for space reasons (resulting in longer
+ # build time but smaller ISO):
+ SQUASHFS_OPTIONS="-nolzma"
+ ## adjust if necessary (defaults to /grml/grml-live):
+ ## OUTPUT="/srv/grml-live"
+ FAI_DEBOOTSTRAP="squeeze http://ftp.de.debian.org/debian/"
+ ARCH="i386"
+ CLASSES="GRMLBASE,GRML_MEDIUM,I386"
+ ZERO_LOGFILE='1'
+ # ZERO_FAI_LOGFILE='1'
+ GRML_LIVE_SOURCES="
+ deb http://deb.grml.org/ grml-stable main
+ deb http://deb.grml.org/ grml-testing main
+ deb http://ftp.de.debian.org/debian squeeze main contrib non-free
+ "
+ EOF
+
+ # just optional(!) - upgrade FAI to latest available version:
+ cat >> /etc/apt/sources.list << EOF
+ # fai:
+ deb http://www.informatik.uni-koeln.de/fai/download lenny koeln
+ EOF
+
+ # get gpg key of FAI repos and install current FAI version:
+ gpg -a --recv-keys AB9B66FD; gpg -a --export AB9B66FD | apt-key add -
+ apt-get update
+ apt-get install fai-client fai-server fai-doc
+
+That's it. Now invoking 'grml-live -V' should build the ISO. If everything
+worked as expected the last line of the shell output should look like:
+
+ [*] Successfully finished execution of grml-live [running 687 seconds]
+
+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://www.informatik.uni-koeln.de/fai/download/etch/fai-client_3.2.1_all.deb \
- http://www.informatik.uni-koeln.de/fai/download/etch/fai-server_3.2.1_all.deb
- dpkg -i fai-client_3.2.1_all.deb fai-server_3.2.1_all.deb
+ wget http://www.informatik.uni-koeln.de/fai/download/etch/fai-client_3.2.8_all.deb \
+ http://www.informatik.uni-koeln.de/fai/download/etch/fai-server_3.2.8_all.deb \
+ http://www.informatik.uni-koeln.de/fai/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
or check out the link:http://www.informatik.uni-koeln.de/fai/[FAI-homepage] for
further details.
+[[how-to-debug]]
I've problems with the build process. How to start debugging?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-Check out the logs inside /var/log/fai/dirinstall/... If you don't have the time
-to debug the problem in further detail or don't know how to proceed just send a
-copy of your config, logs and the commandline with a short problem description
-to <mika@grml.org>:
+Check out the logs inside /var/log/fai/... If you don't have the time to debug
+the problem in further detail or don't know how to proceed just send a copy of
+your config, logs and the commandline with a short problem description to
+<mika@grml.org>:
# history | grep grml-live > /etc/grml/grml_live.cmdline
# tar zcf grml_live_problem.tar.gz /etc/grml/grml-live.conf \
- /var/log/fai/dirinstall /etc/grml/fai
+ /etc/grml/grml-buildd.conf /var/log/fai /etc/grml/fai
+[[local-debian-mirror]]
Can I use my own (local) Debian mirror?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
(see default configuration) so all the grml packages can be downloaded as well.
If you want to use a local (for example NFS mount) mirror additionally, just
-adjust MIRROR_DIRECTORY and MIRROR_SOURCES insede /etc/grml/grml-live.conf as
+adjust MIRROR_DIRECTORY and MIRROR_SOURCES inside /etc/grml/grml-live.conf as
well.
Unless you specify GRML_LIVE_SOURCES and/or FAI_DEBOOTSTRAP the default from
non-local mirrors. Using a fallback mirror (via providing several mirrors in
GRML_LIVE_SOURCES as used by default) is a recommended setting.
+[[add-additional-debian-packages]]
How do I add additional Debian package(s) to my CD/ISO?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
and specify it when invoking grml-live then:
- # grml-live -c GRMLBASE,I386,MIKA
+ # grml-live -c GRMLBASE,GRML_SMALL,I386,MIKA
+[[reset-grml-live-configuration]]
I fscked up my grml-live configuration. How do I reset it to the defaults?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
link:http://michael-prokop.at/blog/2007/03/14/maintain-etc-with-mercurial-on-debian/[http://michael-prokop.at/blog/2007/03/14/maintain-etc-with-mercurial-on-debian/]
for more details how to maintain /etc using the mercurial VCS.
+[[create-a-base-tgz]]
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 etch /tmp/nfsroot/ http://ftp.de.debian.org/debian
+ debootstrap lenny /tmp/nfsroot/ http://ftp.de.debian.org/debian
tar zcf base.tgz ./
Then check out where your NFSROOT is located:
mv base.tgz /grml/fai/nfsroot/live/filesystem.dir/var/tmp/base.tgz
+or even better use /etc/grml/fai/config/basefiles/$CLASSNAME.tar.gz instead.
+Use I386 as $CLASSNAME for i386 builds and AMD64 for amd64 builds.
+
Now running "grml-live ..." will use this file as main system instead of
-executing debootstrap. Check out the output for the following lines:
+executing debootstrap. Check out the output for the following lines if using
+NFSROOT:
[...]
Calling task_extrbase
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 (check logs for stuff like "dpkg:
-error processing" [software.log], "FAILED with exit code" [shell.log],...)
-
-* support something like a directory /etc/grml/fai/packages to install
-additional Debian packages without the need for a Debian repository
-
-* document the available classes in more detail (GRMLBASE, LATEX_CLEANUP,
-NO_ONLINE, REMOVE_DOCS, GRML_SMALL,...)
-
-* add a check to make sure $TARGET is mounted rw,suid,dev?
+or if using /etc/grml/fai/config/basefiles/$CLASSNAME.tar.gz for:
-* 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)
+ [...]
+ ftar: extracting /etc/grml/fai/config/basefiles///AMD64.tar.gz to
+ /grml-live/grml-live_20071029.22138/grml_chroot//
+ [...]
-* support different grml-flavours through classes right out-of-the-box (being:
-grml and grml-small (done), each for x86, amd64 and ppc)
+[[apt-cacher]]
+Set up apt-cacher / apt-cacher-ng 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/*)
+ # cat /etc/grml/grml-live.conf
+ [...]
+ 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/ftp.de.debian.org/debian lenny main contrib non-free
+ "
+ [...]
+ FAI_DEBOOTSTRAP="lenny http://localhost:3142/ftp.de.debian.org/debian lenny main contrib non-free"
-* 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,...)
+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.
-* 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
+[[approx]]
+Set up approx for use with grml-live
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-* provide possibility for cleanup of all created build directories and
-a smart summary of the buildprocess (including "took ... minutes/seconds to
-build...")
+Make sure /etc/grml/grml-live.conf provides according GRML_LIVE_SOURCES and
+FAI_DEBOOTSTRAP:
-* 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 lenny main contrib non-free
+ "
+ FAI_DEBOOTSTRAP="lenny 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.
+[[question]]
+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]]
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
+ git clone git://git.grml.org/grml-live
cd grml-live
debuild -us -uc
+[[source]]
Source
------
The source of grml-live is available at
-link:http://hg.grml.org/grml-live/[http://hg.grml.org/grml-live/]
+link:http://git.grml.org/?p=grml-live.git[http://git.grml.org/?p=grml-live.git]
+
+[[todo-list]]
+TODO list
+---------
+
+Check out link:http://wiki.grml.org/doku.php?id=grml-live[grml-live in the grml-wiki]
+for details.
+[[bugs]]
Bugs
----
Please report feedback, link:http://grml.org/bugs/[bugreports] and wishes
link:http://grml.org/contact/[to the grml-team]!
+[[authors]]
Authors
-------
-Michael Prokop <mika@grml.org>.
+Michael Prokop <mika@grml.org>
/////////////////////////////////////
// vim:ai tw=80 ft=asciidoc expandtab