grml-live provides the build system for creating a grml and Debian based Linux
Live-CD. The build system is based on
-link:http://www.informatik.uni-koeln.de/fai/[FAI] (Fully Automatic
+link:http://fai-project.org/[FAI] (Fully Automatic
Installation). grml-live uses the "fai dirinstall" feature to generate a chroot
system based on the class concept of FAI (see later sections for further
details) and provides the framework to be able to generate a full-featured ISO.
Specify the CLASSES to be used for building the ISO via FAI. By default only
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
+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.
+[IMPORTANT]
+All class names should be written in uppercase letters. Do not use a dash, use
+an underscore. So do not use "amd64" but "AMD64", do not use "FOO BAR" but
+"FOO_BAR".
+
+
-C **CONFIGURATION_FILE**::
The specified file is used as configuration file for grml-live. By default
/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
-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) or a recent version of debootstrap.
+"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
+debootstrap.
-t **TEMPLATE_DIRECTORY**::
-z::
-Use ZLIB instead of LZMA compression in mksquashfs part of the build process.
+Use ZLIB instead of LZMA/XZ compression in mksquashfs part of the build process.
[[usage-examples]]
Usage examples
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
-set CLASSES="GRMLBASE,GRML_SMALL,I386" inside /etc/grml/grml-live.local or
-invoke grml-live using the classes option: "grml-live -c
+set CLASSES="GRMLBASE,GRML_SMALL,I386,FOOBAR" inside /etc/grml/grml-live.local
+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
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/grml-live.local
All the local configuration should go to this file. This file overrides any
-defaults of grml-live. Configurations via /etc/grml/grml-live.local are prefered
+defaults of grml-live. Configurations via /etc/grml/grml-live.local are preferred
over the ones from /etc/grml/grml-live.conf. If you want to override settings
from /etc/grml/grml-live.local as well you have to specify them on the grml-live
commandline.
/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
---------------------------------
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.
+Use squashfs-tools >=4.2-1 (available from Grml repositories as well as from
+Debian/unstable) to build Grml (based) ISOs featuring kernel version
+2.6.38-grml[64].
+
+////////////////////////////////////////////////////////////////////////////////
+Difference between squashfs-lzma-tools, squashfs-lzma-tools4 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[4] had to be introduced and maintained by the Grml
+team. Different kernel versions provide different squashfs file formats. Kernel
+versions until 2.6.28-grml[64] used the 3.x file format but those outdated
+kernels aren't supported by grml-live automatically anymore nowdays (manual
+handling through SQUASHFS_BINARY possible though). Kernel versions
+2.6.31-grml[64] and 2.6.33-grml[64] use openwrt's squashfs lzma file format
+version 4. Kernel versions starting with 2.6.35-grml[64] use the mainline ondisk
+file format version 4.
+
+If you're wondering which package supports what, here's a short overview:
+
+* squashfs-lzma-tools4 4.0-x: ZLIB as default, LZMA support via '-comp lzma'
+option (enabled by grml-live by default), file format version 4 (mainline
+version), package maintained and available from Grml, recommended for current
+grml-live builds featuring kernels >=2.6.35-grml[64]
+
+* squashfs-lzma-tools 4.0-2: ZLIB as default, LZMA support via '-lzma' option
+(enabled by grml-live by default), file format version 4 (openwrt style),
+package maintained and available from Grml, recommended for any grml-live builds
+with kernel versions 2.6.31-grml[64] and 2.6.33-grml[64]
+
+* squashfs-tools 1:4.0-x: ZLIB as default, no LZMA support/options, file format
+version 4, package maintained and available from Debian, recommended only for
+ZLIB-only builds of any grml-live builds with kernel versions >=2.6.31-grml[64]
+
+Outdated, JFTR:
+
+* 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 3.3-1: LZMA as default, ZLIB support via '-nolzma' option,
+file format version 3
+
+Now, depending on the kernel version you want to use you need different versions
+of squashfs-tools/squashfs-lzma-tools[4]. Yes, that's a mess (don't ask how much
+this sucks for us developers) - though we're putting lots of effort into our
+toolchain to automatically handle this for you through the grml-live build
+system and provide proper documentation. The situation is supposed to calm down
+with the recent integration of the squashfs file format 4 in the mainline
+kernel. Support for LZMA is pending and as soon as it's available mainline this
+should dramatically simplify the situation for developers as well as users.
+
+[TIP]
+If you want to force usage of a specific mksquashfs binary just set the
+SQUASHFS_BINARY configuration/environment variable. Set SQUASHFS_OPTIONS for
+customizing the options that should be used by the mksquashfs binary during
+build process.
+
+Using squashfs-lzma-tools4 4.0-1 on the build system
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+squashfs-lzma-tools4 4.0-1 is available via the Grml repositories. It provides
+the mksquashfs-lzma4 and unsquashfs-lzma4 binaries. The package does NOT
+conflict with neither Debian's squashfs-tools package nor Grml's
+squashfs-lzma-tools package, so you can install all of them at the same time and
+the build system will try to figure out the best matching binary automatically
+for you.
+
+The packages can be downloaded from
+link:http://deb.grml.org/pool/main/s/squashfs-lzma-tools4/[http://deb.grml.org/pool/main/s/squashfs-lzma-tools4/]
+
+It provides support for the new squashfs file format version 4 (as available in
+mainline, so *not* the one being used by squashfs-lzma-tools and kernel
+2.6.33-grml) and therefore requires kernel versions starting with
+2.6.35-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 compression instead.
+
+* Kernel 2.6.31-grml[64]: works with ZLIB compression, fails with LZMA
+* Kernel 2.6.33-grml[64]: works with ZLIB compression, fails with LZMA
+* Kernel 2.6.35-grml[64]: works with ZLIB *and* LZMA compression
+* Kernel 2.6.36-grml[64]: works with ZLIB *and* LZMA compression
+
+[NOTE]
+squashfs-tools >=4.1-1 and/or squashfs-lzma-tools4 are the recommended package
+for building up2date ISOs with grml-live! Please use other squashfs-* packages
+only if you want to build live systems providing kernel versions older than
+2.6.35-grml*. Use squashfs-tools >=4.1-1 or squashfs-lzma-tools4 from Grml if
+you want to remaster any Grml releases MORE RECENT than 2010.04.
+
+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 (based on openwrt
+patches, this is *not* the mainline file format that's being used by kernel
+2.6.35-grml and squashfs-lzma-tools4!) 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.28-grml[64]: does not work
+* Kernel 2.6.31-grml[64]: works
+* Kernel 2.6.33-grml[64]: works
+* Kernel 2.6.35-grml[64]: works for ZLIB compression, fails for LZMA
+
+[NOTE]
+Please use squashfs-lzma-tools >=4.0-2 from Grml only if you want to remaster
+Grml releases 2009.10 and 2010.04 or live systems with their according kernel
+versions.
+
+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
+neither with the squashfs-lzma-tools 4.0-2 package nor with the
+squashfs-lzma-tools4 package (so you can install all 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 (dropped with
+link:http://packages.debian.org/changelogs/pool/main/s/squashfs-tools/current/changelog[version
+1:3.3-4] and not yet re-integrated yet, see
+link:http://bugs.debian.org/594595[#594595]). If you need LZMA support please
+use Grml's squashfs-lzma-tools[4] (see sections above) instead.
+
+* Kernels \<=2.6.28-grml[64]: does not work
+* Kernel 2.6.31-grml[64]: works (ZLIB only)
+* Kernel 2.6.33-grml[64]: works (ZLIB only)
+* Kernel 2.6.35-grml[64]: works (ZLIB only)
+* Kernel 2.6.36-grml[64]: works (ZLIB only)
+
+[NOTE]
+Please use squashfs-tools between 4.0-1 and 4.1-1 only if you want to remaster
+Grml releases starting with 2009.10 using the ZLIB compression, please use other
+squashfs packages otherwise instead.
+
+Outdated, JFTR:
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.
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
+Please use squashfs-lzma-tools 3.3-1 only if you want to remaster Grml releases
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
+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
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
+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.
# 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):
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
+ # optionally(!) install basefile so we don't have to build basic
+ # chroot from scratch, grab from http://daily.grml.org/
+ # mkdir -p /etc/grml/fai/config/basefiles/
+ # mv base.tgz /etc/grml/fai/config/basefiles/I386.tar.gz
+ # mv base64.tgz /etc/grml/fai/config/basefiles/AMD64.tar.gz
- # install relevant tools:
- apt-get -o APT::Install-Recommends=false install grml-live squashfs-lzma-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-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"
+ ## want a faster build process and don't need smaller ISOs?
+ ## if so use zlib compression
+ # SQUASHFS_OPTIONS="-comp gzip -b 256k"
+ ## want to use a specific squashfs binary?
+ # SQUASHFS_BINARY='/usr/bin/mksquashfs'
# 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
# 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
+ deb http://fai-project.org/download lenny koeln
EOF
# get gpg key of FAI repos and install current FAI version:
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.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
+ 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
-or check out the link:http://www.informatik.uni-koeln.de/fai/[FAI-homepage] for
+or check out the link:http://fai-project.org/[FAI-homepage] for
further details.
[[how-to-debug]]
# 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?
+How do I install further files into the chroot/ISO?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Just point the configuration variable CHROOT_INSTALL to the directory which
files will be adjusted during runtime automatically.
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 prefered over
+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.
First of all build the chroot system:
mkdir /tmp/nfsroot && cd /tmp/nfsroot
- debootstrap lenny /tmp/nfsroot/ http://ftp.de.debian.org/debian
+ debootstrap squeeze /tmp/nfsroot/ http://cdn.debian.net/debian
tar zcf base.tgz ./
Then check out where your NFSROOT is located:
/grml-live/grml-live_20071029.22138/grml_chroot//
[...]
+[TIP]
+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
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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 squeeze main contrib non-free
"
[...]
- FAI_DEBOOTSTRAP="lenny http://localhost:3142/ftp.de.debian.org/debian lenny main contrib non-free"
+ 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
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
+ deb http://localhost:9999/debian squeeze main contrib non-free
"
- FAI_DEBOOTSTRAP="lenny http://localhost:9999/debian"
+ FAI_DEBOOTSTRAP="squeeze 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.
+[[revert_manifold]]
+How do I revert the manifold feature from an ISO?
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+The so called manifold feature Grml ISOs use by default allows to use the same
+ISO for CD boot and USB boot. If you notice any problems when booting just
+revert the manifold feature running:
+
+ % dd if=/dev/zero of=grml.iso bs=512 count=1 conv=notrunc
+
+To switch from manifold to isohybrid mode (an alternative approach provided by
+syslinux) then just execute:
+
+ % isohybrid grml.iso
+
+[[basetgz]]
+How do I create a base tar.gz (I386.tar.gz or AMD64.tar.gz)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Execute the following commands (requires root):
+
+ ARCH='amd64' # replace with i386 if necessary
+ SUITE='squeeze' # using the current stable release should always work
+ debootstrap --arch "$ARCH" --exclude=info,tasksel,tasksel-data "$SUITE" "$ARCH" http://debian.netcologne.de/debian
+ cd "$ARCH"
+ rm var/cache/apt/archives/*.deb
+ tar zcf ../"${ARCH}".tar.gz *
+
+And finally place the generated tarball in /etc/grml/fai/config/basefiles/ (note
+that it needs to be uppercase letters matching the class names, so: AMD64.tar.gz
+for amd64 and I386.tar.gz for i386).
+
+[[autobuild]]
+How do I set up an autobuild environment?
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+If you want to set up a system like link:http://daily.grml.org/[daily.grml.org]
+the Debian package grml-live-buildd provides all you need to start. Start with
+figuring out the cron job script /usr/share/grml-live/buildd/cronjob.sh.
+
+If you want to automatically update the grml-live Debian package on your build
+system based on the git tree of grml-live (so you get bleeding edge of
+development which might is interesting for services like daily.grml.org) the
+provided release_helper.sh script provides everything you need. Execute as root:
+
+ echo "deb file:/home/grml-live-git/grml-live.build-area/ ./" >> /etc/apt/sources.list.d/grml-live.list
+ adduser --disabled-login --disabled-password grml-live-git
+
+Execute 'visudo' to update sudo configuration and add the following line:
+
+ grml-live-git ALL=NOPASSWD: /usr/bin/apt-get
+
+Switch to user grml-live-git and configure the rest:
+
+ su - grml-live-git
+ mkdir grml-live.build-area
+ git clone git://git.grml.org/grml-live.git
+ git config --global user.name "Grml-Live Git Autobuild"
+ git config --global user.email "grml-live-git@$(hostname)"
+
+Finally install a cron job (as user grml-live-git) like:
+
+ 30 00 * * * cd /home/grml-live-git/grml-live.git/ && env AUTOBUILD=1 scripts/release_helper.sh >/home/grml-live-git/grml-live-build.log
+
+Tip: To find out the build date of the installed grml-live package just execute:
+
+ % apt-cache policy grml-live | grep 'Installed.*autobuild'
+ Installed: 0.13.1~autobuild1300450381
+
+and run "date -ud @$STRING" where $STRING is the number behind the "autobuild",
+like:
+
+ % date -ud @1300450081
+ Fri Mar 18 12:08:01 UTC 2011
+
[[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>
+Don't hesitate to contact the author: <mika@grml.org>
[[download]]
Download / install grml-live as a Debian package
Please report feedback, link:http://grml.org/bugs/[bugreports] and wishes
link:http://grml.org/contact/[to the grml-team]!
+[[documentation]]
+Documentation
+-------------
+
+The most recent grml-live documentation is available online at
+http://grml.org/grml-live/ and for offline reading also available
+in different formats:
+
+* http://grml.org/grml-live/grml-live.epub
+* http://grml.org/grml-live/grml-live.pdf
+
[[authors]]
Authors
-------