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>] [-bBFnNquVz]
+<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
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]
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
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**::
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.
Specify the Debian suite you want to use for your live-system. Defaults to
"squeeze" (being current Debian/stable). Supported values are: etch, lenny,
squeeze, sid. Debian "squeeze" requires a recent base.tgz
-(/etc/grml/fai/config/basefiles/$CLASSNAME.tar.gz) or a recent version of
+(${GRML_FAI_CONFIG}/config/basefiles/$CLASSNAME.tar.gz) or a recent version of
debootstrap.
-t **TEMPLATE_DIRECTORY**::
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.
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.
-----------------
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
* 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
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
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
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).
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
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?
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?
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 squeeze main contrib non-free
- "
+ APT_PROXY="http://localhost:3142/"
[...]
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