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>] [-bFhuVz]
+<suite>] [-t <template_directory>] [-v <version_number>] [-bBFhquVz]
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
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, 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::
ISO are located, including the compressed squashfs file), grml_chroot (the
chroot system) and grml_isos (where the resulting ISO is stored).
+ -q::
+
+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'.
+
-r **RELEASENAME**::
Specify name of the release.
-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 possiblbe)
+as possible)
For further information see next section.
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 27th of september 2008.
-
-System
-~~~~~~
-
-* grml-live, version 0.9.4
-
-* 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-2grml.01 Debian Live initramfs hook
- ii lvm2 2.02.39-2 The Linux Logical Volume Manager
- ii mdadm 2.6.7-3.1 tool to administer Linux MD arrays (software RAID)
- ii udev 0.125-6grml0 /dev/ and hotplug management daemon
+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
-(version >=grml.05) using both lzma and zlib (-nolzma) compression. It's the
-recommended package for building ISOs with grml-live currently.
+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 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
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. 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.
+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
+ 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>