-c **CLASSES**::
Specify the CLASSES to be used for building the ISO via FAI. By default only
-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
+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_SMALL you can also use GRML_MEDIUM and GRML_FULL.
+So instead of GRML_MEDIUM you can also use GRML_SMALL and GRML_FULL.
-C **CONFIGURATION_FILE**::
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 with booting.
+GRML_NAME, otherwise you might notice problems while booting.
-h::
-s **SUITE**::
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.
+"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**::
Use ZLIB instead of LZMA compression in mksquashfs part of the build process.
+[[usage-examples]]
Usage examples
--------------
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
-----------------
* 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,...)
* 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/
This directory provides the files used for building the initramfs/initrd via
live-initramfs(8).
+[[log-files]]
Available log files
-------------------
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_OUTPUT], \~150MB for the build target
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 possible)
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 02nd of december 2008, please report any bugs you
+section is up2date by 04nd of august 2009, please report any bugs you
encounter.
-System
-~~~~~~
-
-* grml-live, version 0.9.6
-
-* building grml-medium (Debian/unstable)
-
-* software versions used in the ISO (being installed automatically, recorded
-just as a reference):
-
- ii busybox 1:1.10.2-2 Tiny utilities for small and embedded systems
- ii initramfs-tools 0.92f.grml01 tools for generating an initramfs
- ii klibc-utils 1.5.12-2 small utilities built with klibc for early boot
- ii live-initramfs 1.139.1-4grml.03 Debian Live initramfs hook
- ii lvm2 2.02.39-2 The Linux Logical Volume Manager
- ii mdadm 2.6.7.1-1 tool to administer Linux MD arrays (software RAID)
- ii udev 0.125-6grml0 /dev/ and hotplug management daemon
-
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]
-(version >=grml.05) using both lzma and zlib (-nolzma) compression. It's the
+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 release 2008.11 of grml.
+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 Debian/unstable and Debian/testing
-(lenny) pool running:
+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
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 for example). The
--nolzma option of mksquashfs is not available therefore (even though
-grml-live will deactivate it for you automatically anyway). Please use
+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
-* Kernel 2.6.26-grml: works (without LZMA compression of course!)
+ 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
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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).
-Versions with ZLIB compression (SQUASHFS_OPTIONS='-nolzma' or -z
+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)
-Versions with LZMA compression:
+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
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# tar zcf grml_live_problem.tar.gz /etc/grml/grml-live.conf \
/etc/grml/grml-buildd.conf /var/log/fai /etc/grml/fai
+[[local-debian-mirror]]
Can I use my own (local) Debian mirror?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# 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:
/grml-live/grml-live_20071029.22138/grml_chroot//
[...]
-Set up apt-cacher for use with grml-live
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+[[apt-cacher]]
+Set up apt-cacher / apt-cacher-ng for use with grml-live
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Make sure /etc/grml/grml-live.conf provides according GRML_LIVE_SOURCES and
FAI_DEBOOTSTRAP:
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 etch main contrib non-free
+ deb http://localhost:3142/ftp.de.debian.org/debian lenny main contrib non-free
"
[...]
- FAI_DEBOOTSTRAP="etch http://localhost:3142/ftp.de.debian.org/debian etch main contrib non-free"
+ FAI_DEBOOTSTRAP="lenny http://localhost:3142/ftp.de.debian.org/debian lenny main contrib non-free"
-Make sure apt-cacher is running (/etc/init.d/apt-cacher restart). That's it.
-All downloaded files will be cached in /var/cache/apt-cacher/ now.
+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.
+[[approx]]
Set up approx for use with grml-live
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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
+ deb http://localhost:9999/debian lenny main contrib non-free
"
- FAI_DEBOOTSTRAP="etch http://localhost:9999/debian"
+ FAI_DEBOOTSTRAP="lenny http://localhost:9999/debian"
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.
+[[question]]
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>
+[[download]]
Download / install grml-live as a Debian package
------------------------------------------------
cd grml-live
debuild -us -uc
+[[source]]
Source
------
The source of grml-live is available at
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>