/etc/grml/grml-live.local for configuration stuff used inside
/etc/grml/fai/config.
+ -d **DATE**::
+
+Use specified date as build date information on the ISO instead of the default.
+The default is the date when grml-live is being executed (retrieved via
+executing 'date +%Y-%m-%d'). The information is stored inside the file
+/GRML/grml-version on the ISO, /etc/grml_version in the squashfs file and in all
+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'
+
-F::
Force execution and do not prompt for acknowledgment of configuration.
the chroot/ISO. Not enabled by default. Note: the files are installed under '/'
in the chroot so you have to create the rootfs structure on your own.
+ -n::
+
+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.
+
-o **OUTPUT_DIRECTORY**::
Main output directory of the build process of FAI. Some directories are created
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
/etc/grml/fai/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 it is set to
-FAI_CONFIGDIR=/etc/grml/fai/config, a directory shipped by grml-live
-out-of-the-box so you shouldn't have to configure anything in this file.
+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-live out-of-the-box so you shouldn't have to configure anything in this
+file.
/etc/grml/fai/make-fai-nfsroot.conf
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.
+use FAI's fcopy command with /etc/grml/fai/config/files instead.
/etc/grml/fai/config/
Scripts for customising the ISO within the build process.
- /etc/grml/fai/files/
-
-This directory provides files used inside the scripts of
-/etc/grml/fai/config/scripts/*. For a full documentation what happens with the
-files please refer to the source of the scripts.
-
/etc/grml/fai/live-initramfs/
This directory provides the files used for building the initramfs/initrd via
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.
+grml-live itself logs to /var/log/grml-live.log. Unless you set PRESERVE_LOGFILE
+in your grml-live configuration the file is cleared 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.
+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
+manpage.
+
[[requirements]]
Requirements for the build system
---------------------------------
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
+section is up2date by 7rd of september 2009, please report any bugs you
encounter.
+Difference between squashfs-lzma-tools and squashfs-tools
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Whereas the ZLIB compression is much faster in the build process, the LZMA
+compression provides a smaller resulting ISO. If you're wondering: the official
+Grml builds use the LZMA compression.
+
+Squashfs-tools was introduced in Debian and once provided support for LZMA
+compression. Sadly LZMA compression within squashfs-tools became unsupported and
+therefore squashfs-lzma-tools had to be introduced by the Grml team. Different
+kernel versions provide different squashfs file formats (version 3.x for kernel
+versions until 2.6.28-grml[64], since kernel 2.6.31-grml[64] it's the 4.x
+format).
+
+If you're wondering which package supports what, here's a short overview:
+
+* squashfs-tools 1:4.0-1: ZLIB as default, no LZMA support/options, file format
+version 4
+
+* squashfs-tools 1:3.3-7: ZLIB as default, no LZMA support/options, file format
+version 3
+
+* squashfs-tools 1:3.2r2-9exp1: LZMA as default, ZLIB support via -nolzma
+option, file format version 3
+
+* squashfs-lzma-tools 4.0-2: ZLIB as default, LZMA support via -lzma option,
+file format version 4
+
+* squashfs-lzma-tools 3.3-1: LZMA as default, ZLIB support via -nolzma option,
+file format version 3
+
+Depending on the kernel version you want to use you need different versions
+squashfs-tools/squashfs-lzma-tools. Yes, that's pretty a mess (don't ask how
+much this sucks for us developers) - though this is supposed to calm down with
+the recent integration of squashfs file format 4 in the mainline kernel. Support
+for LZMA is pending and should dramatically simplify the situation for
+developers as well as users as soon as it's available mainline.
+
+Using squashfs-lzma-tools 4.0-2 on the build system
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+squashfs-lzma-tools 4.0-2 is available via the grml repositories. It provides
+the mksquashfs-lzma and unsquashfs-lzma binaries. The package does NOT conflict
+with Debian's squashfs-tools package (you can install both of them at the same
+time).
+
+The packages can be downloaded from
+link:http://deb.grml.org/pool/main/s/squashfs-lzma-tools/[http://deb.grml.org/pool/main/s/squashfs-lzma-tools/]
+
+It provides support for the new squashfs file format version 4 and therefore
+requires kernel versions newer than 2.6.28-grml[64]. It supports LZMA as well as
+ZLIB compression. Just use the defaults for enabling LZMA or use grml-live's
+'-z' option if you want to use ZLIB instead.
+
+* Kernel 2.6.23-grml[64]: does not work
+* Kernel 2.6.26-grml[64]: does not work
+* Kernel 2.6.28-grml[64]: does not work
+* Kernel 2.6.31-grml[64]: works
+
+[NOTE]
+
+Please use squashfs-lzma-tools >=4.0-2 from Grml if you want to remaster any
+grml release being MORE RECENT than 2009.05.
+
+Using squashfs-tools 1:4.0-X on the build system
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+squashfs-tools >=1:4.0-1 is available in Debian/unstable and Debian/testing. It
+provides the mksquashfs and unsquashfs binaries. The package does NOT
+conflict with the squashfs-lzma-tools 4.0-2 package (you can install both of
+them at the same time).
+
+The packages can be downloaded from
+link:ftp://ftp.de.debian.org/debian/pool/main/s/squashfs-tools/[ftp://ftp.de.debian.org/debian/pool/main/s/squashfs-tools/]
+
+It provides support for the new squashfs file format version 4 and therefore
+requires kernel versions newer than 2.6.28-grml[64].
+
+It does NOT support LZMA compression. If you need LZMA support please use
+Grml's squashfs-lzma-tools (see section above) instead.
+
+* Kernel 2.6.23-grml[64]: does not work
+* Kernel 2.6.26-grml[64]: does not work
+* Kernel 2.6.28-grml[64]: does not work
+* Kernel 2.6.31-grml[64]: works
+
+[NOTE]
+Please use squashfs-tools >=1:4.0-1 only if you want to remaster grml releases
+MORE RECENT than 2009.05 using the ZLIB compression.
+
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!
+squashfs-lzma-tools 3.3-1 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/].
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
+squashfs-tools 1:3.3-7 is available through
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].
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).
+* Kernel 2.6.26-grml: does NOT work, please use ZLIB mode instead or switch
+ to Debian package squashfs-lzma-tools 3.3-1 (see section above).
+* Kernel 2.6.28-grml: does NOT work, please use ZLIB mode instead or switch
+ to Debian package squashfs-lzma-tools 3.3-1 (see section above).
[[faq]]
FAQ
# grml stable repository:
deb http://deb.grml.org/ grml-stable main
- deb-src 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
+ # deb-src http://deb.grml.org/ grml-testing main
EOF
# adjust apt-pinning (only prefer squashfs stuff from grml):
mkdir -p /etc/grml/fai/config/basefiles/
mv base.tgz /etc/grml/fai/config/basefiles/I386.tar.gz
- # install relevant tools:
+ # 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
# adjust grml-live configuration for our needs:
cat > /etc/grml/grml-live.local << EOF
- # consider using lzma only for space reasons (resulting in longer
+ # consider using LZMA only for space reasons (resulting in longer
# build time but smaller ISO):
SQUASHFS_OPTIONS="-nolzma"
# install local files into the chroot
CHROOT_INSTALL="/etc/grml/fai/chroot_install"
## adjust if necessary (defaults to /grml/grml-live):
## OUTPUT="/srv/grml-live"
- FAI_DEBOOTSTRAP="squeeze http://ftp.de.debian.org/debian/"
+ FAI_DEBOOTSTRAP="squeeze http://cdn.debian.net/debian/"
ARCH="i386"
CLASSES="GRMLBASE,GRML_MEDIUM,I386"
- ZERO_LOGFILE='1'
+ # PRESERVE_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
+ deb http://cdn.debian.net/debian squeeze main contrib non-free
"
EOF
# history | grep grml-live > /etc/grml/grml_live.cmdline
# tar zcf grml_live_problem.tar.gz /etc/grml/grml-live.conf \
- /etc/grml/grml-buildd.conf /var/log/fai /etc/grml/fai
+ /etc/grml/grml_live.cmdline /etc/grml/grml-buildd.conf \
+ /var/log/fai /etc/grml/fai
-> finally mail grml_live_problem.tar.gz to <mika@grml.org>
If you need help with grml-live or would like to see new features as part of
grml-live you can get commercial support via
link:http://grml-solutions.com/[Grml Solutions].
+[[lzma-vs-zlib]]
+How much is the difference between LZMA and ZLIB compression?
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+ISO size (bs = blocksize):
+
+[width="45%",cols="3,^2,^2"]
+|============================================================
+|ISO |LZMA (256kB bs) |ZLIB
+|grml_sid |666M | 771M
+|grml_squeeze |659M | 761M
+|grml_lenny |624M | 723M
+|grml64_sid |677M | 791M
+|grml64_squeeze |671M | 785M
+|grml64_lenny |639M | 745M
+|grml-medium_sid |208M | 236M
+|grml-medium_squeeze |206M | 234M
+|grml-medium_lenny |193M | 220M
+|grml64-medium_sid |213M | 245M
+|grml64-medium_squeeze |213M | 244M
+|grml64-medium_lenny |201M | 231M
+|grml-small_sid |102M | 118M
+|grml-small_squeeze |101M | 117M
+|grml-small_lenny |97M | 112M
+|grml64-small_sid |103M | 120M
+|grml64-small_squeeze |103M | 120M
+|grml64-small_lenny |99M | 116M
+|============================================================
+
+Build time of grml-medium's squashfs file (depends on your system, though just
+to get the ratio between the different options):
+
+* 10 minutes and 4 seconds with LZMA default blocksize (128k)
+* 7 minutes 27 seconds with LZMA and blocksize 256k
+* 6 minutes and 8 seconds with LZMA blocksize 512k
+* 1 minute and 40 seconds with ZLIB
+
[[install-local-files]]
How to I install further files into the chroot/ISO?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
First of all build the chroot system:
mkdir /tmp/nfsroot && cd /tmp/nfsroot
- debootstrap lenny /tmp/nfsroot/ http://ftp.de.debian.org/debian
+ debootstrap lenny /tmp/nfsroot/ http://cdn.debian.net/debian
tar zcf base.tgz ./
Then check out where your NFSROOT is located:
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
+ deb http://localhost:3142/cdn.debian.net/debian lenny main contrib non-free
"
[...]
- FAI_DEBOOTSTRAP="lenny http://localhost:3142/ftp.de.debian.org/debian lenny main contrib non-free"
+ FAI_DEBOOTSTRAP="lenny http://localhost:3142/cdn.debian.net/debian lenny 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
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>
+Don't hesitate to contact the author: <mika@grml.org>
[[download]]
Download / install grml-live as a Debian package