X-Git-Url: https://git.grml.org/?p=grml-live.git;a=blobdiff_plain;f=docs%2Fgrml-live.txt;h=fb27bc00fc5b0ba4f99a670757b0fc2508e9fbf5;hp=bbb75e4270e2c1f4c14539e4ad2fe37eaa3179f5;hb=cd6eea7f0f5d029f40d1aff1af62b78f82abbd06;hpb=e439b588bef008dd6fbfbc8bfbc7bb5fb6ae88f6 diff --git a/docs/grml-live.txt b/docs/grml-live.txt index bbb75e4..fb27bc0 100644 --- a/docs/grml-live.txt +++ b/docs/grml-live.txt @@ -89,18 +89,18 @@ So instead of GRML_MEDIUM you can also use GRML_SMALL and GRML_FULL. -C **CONFIGURATION_FILE**:: The specified file is used as configuration file for grml-live. By default -/etc/grml/grml-live.conf is used for main configuration. If a file named +/etc/grml/grml-live.conf is used as default configuration. If a file named /etc/grml/grml-live.local exists it is used as well (sourced after reading -/etc/grml/grml-live.conf to allow overriding settings). As a last option the -specified configuration file is sourced so it is possible to override settings -of /etc/grml/grml-live.conf as well as of /etc/grml/grml-live.local. Please -notice that all configuration files have to be adjusted during execution of -grml-live, so please make sure you use /etc/grml/grml-live.conf as a base for -your own configuration file. Please also notice that the configuration file -specified via this option is **not** (yet) supported inside the -scripts/hooks/classes at /etc/grml/fai/config. Instead use -/etc/grml/grml-live.conf and/or /etc/grml/grml-live.local for configuration -stuff used inside /etc/grml/fai/config. +/etc/grml/grml-live.conf meant as main file for local configuration). As a last +option the specified configuration file is sourced so it is possible to override +settings of /etc/grml/grml-live.conf as well as of /etc/grml/grml-live.local. +Please notice that all configuration files have to be adjusted during execution +of grml-live, so please make sure you use /etc/grml/grml-live.conf as a base for +your own configuration file (usually /etc/grml/grml-live.local). Please also +notice that the configuration file specified via this option is **not** (yet) +supported inside the scripts/hooks/classes at /etc/grml/fai/config. Instead use +/etc/grml/grml-live.local for configuration stuff used inside +/etc/grml/fai/config. -F:: @@ -121,6 +121,17 @@ Display short usage information and exit. Specify name of ISO which will be available inside $OUTPUT_DIRECTORY/grml_isos by default. + -I **CHROOT_INSTALL**:: + +Specify name of source directory which provides files that should become part of +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 @@ -143,7 +154,7 @@ Specify name of the release. 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) until it's supported by debootstrap. +(/etc/grml/fai/config/basefiles/....tar.gz) or a recent version of debootstrap. -t **TEMPLATE_DIRECTORY**:: @@ -245,9 +256,9 @@ files/directories. 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 -extend CLASSES="GRMLBASE,GRML_SMALL,I386" inside /etc/grml/grml-live.conf to -CLASSES="GRMLBASE,GRML_SMALL,I386,FOOBAR" or invoke grml-live using the classes -option: "grml-live -c GRMLBASE,GRML_SMALL,I386,FOOBAR ...". +set CLASSES="GRMLBASE,GRML_SMALL,I386" 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 FAI itself (being available at /usr/share/doc/fai-doc/). @@ -322,8 +333,17 @@ Script for the main build process. Requires root permissions for execution. /etc/grml/grml-live.conf -Main configuration file for grml-live. All the important steps can be configured -at this stage. +Main configuration file for grml-live which should be considered as a reference +configuration file only. Please use /etc/grml/grml-live.local for local +configuration instead. + + /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 +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 @@ -445,15 +465,106 @@ 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 +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-1: LZMA as default, no ZLIB support/options, file format 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-1 on the build system +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +squashfs-lzma-tools 4.0-1 is available via the grml repositories. It provides +the mksquashfs-lzma and unsquashfs-lzma binaries and the package does NOT +conflict with the 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 does NOT provide support for ZLIB compression. If you need ZLIB support +please use squashfs-tools 1:4.0-1 instead and use the '-z' option of grml-live +or set "SQUASHFS_OPTIONS='-nolzma'" in the grml-live configuration file. + +* 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-1 if you want to remaster grml releases +MORE RECENT than 2009.05 using the LZMA compression. + +Using squashfs-tools 1:4.0-1 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 and the package does NOT +conflict with the squashfs-lzma-tools 4.0-1 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/[ftp://ftp.de.debian.org/debian/pool/main/s/squashfs/] + +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 +squashfs-lzma-tools 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]: supposed to work (verification in progress) + +[NOTE] +Please use squashfs-tools 1:4.0-1 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/]. @@ -465,12 +576,7 @@ Please use squashfs-lzma-tools 3.3-1 if you want to remaster grml release 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]. @@ -509,10 +615,10 @@ option in grml-live cmdline): 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 @@ -576,17 +682,20 @@ Instructions 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' @@ -594,7 +703,7 @@ Instructions 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 @@ -632,14 +741,33 @@ further details. I've problems with the build process. How to start debugging? ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -Check out the logs inside /var/log/fai/... If you don't have the time to debug -the problem in further detail or don't know how to proceed just send a copy of -your config, logs and the commandline with a short problem description to -: +Check out the logs inside /var/log/fai/... If you think it's a bug in grml-live +send a copy of your config, logs and the commandline with a short problem +description to : # 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 + -> finally mail grml_live_problem.tar.gz to + +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]. + +[[install-local-files]] +How to I install further files into the chroot/ISO? +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Just point the configuration variable CHROOT_INSTALL to the directory which +provides the files you would like to install. Note that the files are installed +under '/' in the chroot - so you have to create the rootfs structure on your +own. Usage example: + + echo "CHROOT_INSTALL=\$GRML_FAI_CONFIG/chroot_install" >> /etc/grml/grml-live.local + mkdir -p /etc/grml/fai/chroot_install/usr/src/ + wget example.org/foo.tar.gz + mv foo.tar.gz /etc/grml/fai/chroot_install/usr/src/ + grml-live ... [[local-debian-mirror]] Can I use my own (local) Debian mirror? @@ -706,7 +834,7 @@ 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 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: @@ -752,10 +880,10 @@ 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 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 @@ -818,8 +946,7 @@ link:http://git.grml.org/?p=grml-live.git[http://git.grml.org/?p=grml-live.git] TODO list --------- -Check out link:http://wiki.grml.org/doku.php?id=grml-live[grml-live in the grml-wiki] -for details. +Check out the link:http://git.grml.org/?p=grml-live.git;a=blob;f=TODO;hb=HEAD[TODO file]. [[bugs]] Bugs