X-Git-Url: https://git.grml.org/?p=grml-live.git;a=blobdiff_plain;f=docs%2Fgrml-live.txt;h=85e8acf2802176d7a397b5ad8f5b36c8086701bd;hp=ccbbdf5ab7e951187f2c22d15de94cd44c90a36f;hb=be17ebff90c8248ea0e8f6d76ef47cd58ce0c4b5;hpb=37d57059229f0d87ec1b12b69da8a6e0ee520e76 diff --git a/docs/grml-live.txt b/docs/grml-live.txt index ccbbdf5..85e8acf 100644 --- a/docs/grml-live.txt +++ b/docs/grml-live.txt @@ -10,15 +10,13 @@ Linux Live system (CD/ISO) Synopsis -------- -grml-live [-a ] [-c ] [-g ] [-i ] -[-o ] [-r ] [-s ] [-t -] [-v ] [-bFVhuz] +grml-live [-a ] [-c ] [-C ] [-g +] [-i ] [-o ] [-r ] [-s +] [-t ] [-v ] [-bBFhquVz] -******************************************************************************* -Important! This document is growing as requested. If you have questions which -aren't answered by this document yet please let me know: ! -This document currently applies to grml-live version 0.3. -******************************************************************************* +CAUTION: Please check out <> for details about current state of involved +tools before starting with grml-live or if you encounter any problems. Description ----------- @@ -71,15 +69,22 @@ example when working on stable releases: if you have a working base 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 -/etc/grml/fai/config/package_config/ for a full list). So instead of GRML_SMALL -you can also use GRML_MEDIUM and GRML_FULL instead. +<> for details about available classes). +So instead of GRML_MEDIUM you can also use GRML_SMALL and GRML_FULL. -C **CONFIGURATION_FILE**:: @@ -104,6 +109,8 @@ Force execution and do not prompt for acknowledgment of configuration. -g **GRML_NAME**:: 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 while booting. -h:: @@ -121,6 +128,12 @@ inside this target directory, being: grml_cd (where the files for creating the 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. @@ -128,7 +141,9 @@ 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**:: @@ -234,10 +249,56 @@ 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/). +[[X7]] +[[classes]] Available classes ----------------- -Documentation to be done... +The package selection part of the classes can be found in +/etc/grml/fai/config/package_config whereas some further classes are defined for +example in /etc/grml/fai/config/scripts/ so specific feature sets can be +selected. The following classes are predefined: + +* DEBORPHAN: get rid of all packages listed in output of Deborphan + +* GRMLBASE: the main class responsible for getting a minimal subset of what's +defining a grml system. Important parts of the buildprocess are specified in +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 + +* GRML_POWERPC: grml for PowerPC architecture, not supported yet (still work in +progress) + +* 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,...) + +* LOCALES: use full featured locales setup (see /etc/locale.gen.grml). This +avoids to get rid of /usr/share/locale - which happens by default otherwise - as +well. + +* NO_ONLINE: do not run scripts during the chroot build process which require a +network connection + +* RELEASE: run some specific scripts and commands to provide the workflow for an +official grml release + +* REMOVE_DOCS: get rid of documentation directories (like /usr/share/doc, +/usr/share/man/, /usr/share/info,...) + +* XORG: providing important packages for use with a base grml-featured X.org +setup Files ----- @@ -279,12 +340,13 @@ This file specifies the package list for creating the NFSROOT. /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/ @@ -350,9 +412,12 @@ run at /var/log/grml-buildd.stdout and /var/log/grml-buildd.stderr. 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 <> 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 @@ -360,20 +425,197 @@ 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. + +[[X8]] +[[current_state]] +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. + +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! + +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 the official Debian/unstable and +Debian/testing (Lenny) pool running: + + # aptitude install squashfs-tools=1:3.3-7 + +or directly via downloading the files +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]. + +Please notice that squashfs-tools 1:3.3-7 does NOT support LZMA compression at +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 (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 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +squashfs-tools 1:3.2r2-9exp1 is available via the grml-testing repository, +running: + + # aptitude install squashfs-tools=1:3.2r2-9exp1 + +or directly via downloading the files +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). + +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) + +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 --- +[[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 +<>. + +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. + 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.4_all.deb \ - http://www.informatik.uni-koeln.de/fai/download/etch/fai-server_3.2.4_all.deb \ - http://www.informatik.uni-koeln.de/fai/download/etch/fai-doc_3.2.4_all.deb - dpkg -i fai-client_3.2.4_all.deb fai-server_3.2.4_all.deb fai-doc_3.2.4_all.deb + 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 + 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 further details. @@ -451,7 +693,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 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: @@ -485,8 +727,8 @@ or if using /etc/grml/fai/config/basefiles/$CLASSNAME.tar.gz for: /grml-live/grml-live_20071029.22138/grml_chroot// [...] -Set up apt-cacher for use with grml-live -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +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: @@ -496,13 +738,14 @@ 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. Set up approx for use with grml-live ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -515,9 +758,9 @@ FAI_DEBOOTSTRAP: 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: @@ -543,7 +786,7 @@ link:http://deb.grml.org/pool/main/g/grml-live/[deb.grml.org]. If you want to build a Debian package on your own (using for example a specific version or the current development tree), just execute: - hg clone http://hg.grml.org/grml-live + git clone git://git.grml.org/grml-live cd grml-live debuild -us -uc @@ -551,12 +794,12 @@ Source ------ The source of grml-live is available at -link:http://hg.grml.org/grml-live/[http://hg.grml.org/grml-live/] +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@grml-wiki] +Check out link:http://wiki.grml.org/doku.php?id=grml-live[grml-live in the grml-wiki] for details. Bugs @@ -567,7 +810,7 @@ link:http://grml.org/contact/[to the grml-team]! Authors ------- -Michael Prokop . +Michael Prokop ///////////////////////////////////// // vim:ai tw=80 ft=asciidoc expandtab