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.
-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
+"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.
-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
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 /
-squashfs-lzma-tools4 (for building the compressed file) and the kernel version.
-Documentation of this section is up2date by 1st of september 2010, 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
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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
* 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
* 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-lzma-tools4 is 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-lzma-tools4 from Grml if you want to remaster any Grml releases MORE
-RECENT than 2010.04.
+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
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
* 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 >=1:4.0-1 only if you want to remaster Grml releases
-starting with 2009.10 using the ZLIB compression, please use squashfs-lzma-tools
-/ squashfs-lzma-tools4 otherwise instead.
+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
Pin: origin deb.grml.org
Pin-Priority: 1
- Package: squashfs-lzma-tools
- Pin: origin deb.grml.org
- Pin-Priority: 996
-
- Package: squashfs-lzma-tools4
+ Package: squashfs-tools
Pin: origin deb.grml.org
Pin-Priority: 996
EOF
# 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 squashfs-lzma-tools4
+ 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
## want a faster build process and don't need smaller ISOs?
- ## if so use zlib compression, for kernels >=2.6.35-grml* and squashfs-lzma-tools4:
+ ## if so use zlib compression
# SQUASHFS_OPTIONS="-comp gzip -b 256k"
- ## ... or for kernels <=2.6.33-grml* and squashfs-lzma-tools:
- # SQUASHFS_OPTIONS="-nolzma -b 256k"
## want to use a specific squashfs binary?
# SQUASHFS_BINARY='/usr/bin/mksquashfs'
# install local files into the chroot
# 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]]
* 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
First of all build the chroot system:
mkdir /tmp/nfsroot && cd /tmp/nfsroot
- debootstrap lenny /tmp/nfsroot/ http://cdn.debian.net/debian
+ debootstrap squeeze /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/cdn.debian.net/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/cdn.debian.net/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
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~