7 grml-live - build framework based on FAI for generating a grml and Debian based
8 Linux Live system (CD/ISO)
13 grml-live [-a <architecture>] [-c <classe[s]>] [-C <configfile>] [-g
14 <grml_name>] [-i <iso_name> ] [-o <output_directory>] [-r <release_name>] [-s
15 <suite>] [-t <template_directory>] [-v <version_number>] [-bBFhquVz]
17 CAUTION: Please check out <<current_state,the 'Current state of grml-live with
18 squashfs-tools and kernel' section>> for details about current state of involved
19 tools before starting with grml-live or if you encounter any problems.
24 grml-live provides the build system for creating a grml and Debian based Linux
25 Live-CD. The build system is based on
26 link:http://www.informatik.uni-koeln.de/fai/[FAI] (Fully Automatic
27 Installation). grml-live uses the "fai dirinstall" feature to generate a chroot
28 system based on the class concept of FAI (see later sections for further
29 details) and provides the framework to be able to generate a full-featured ISO.
30 It does not use all the FAI features by default though and you don't have to
31 know FAI to be able to use it.
33 The use of FAI gives you the flexibility to choose the packages you would like
34 to include on your very own Linux Live-CD without having to deal with all the
35 details of a build process.
37 CAUTION: grml-live does **not** use /etc/fai for configuration but instead
38 provides and uses /etc/grml/fai. This ensures that it does not clash with
39 default FAI configuration and packages, so you can use grml-live and FAI
40 completely independent at the same time!
44 Please notice that you should have a fast network connection as all the Debian
45 packages will be downloaded and installed via network. If you want to use a
46 local mirror (strongly recommended if you plan to use grml-live more than once)
47 checkout mkdebmirror (see /usr/share/doc/grml-live/examples/mkdebmirror),
48 debmirror(1), reprepro(1) (see /usr/share/doc/grml-live/examples/reprepro/ for a
49 sample configuration), apt-cacher(1) and approx(8). To avoid downloading the
50 base system again and again check out FAI's NFSROOT (see FAQ of this document
58 Use the specified architecture instead of the currently running one. This
59 allows building a 32bit system on a 64bit host (though you can't build a 64bit
60 system on a 32bit system/kernel of course). Please notice that real
61 crosscompiling (like building a ppc system on x86) isn't possible due to the
62 nature and the need of working in a chroot. Currently supported values: i386
67 Build the ISO without updating the chroot via FAI. This option is useful for
68 example when working on stable releases: if you have a working base
69 system/chroot and do not want to execute any further updates (via "-u" option)
70 but intend to only build the ISO.
74 Build the ISO without touching the chroot at all. This option is useful if
75 you modified anything that FAI or grml-live might adjust via grml's FAI
76 scripts. It's like the '-b' option but even more advanced. Use only if you
77 really know that you do not want to update the chroot.
81 Specify the CLASSES to be used for building the ISO via FAI. By default only
82 the classes GRMLBASE, GRML_MEDIUM and I386 are assumed, resulting in a small base
83 system (being about ~180MB total ISO size). If using a non-I386 system (like
84 amd64) you should specify the appropriate architecture as well. Additionally you
85 can specify a class providing a grml-kernel (see
86 <<classes,the 'CLASSES' section in this document>> for details about available classes).
87 So instead of GRML_MEDIUM you can also use GRML_SMALL and GRML_FULL.
89 -C **CONFIGURATION_FILE**::
91 The specified file is used as configuration file for grml-live. By default
92 /etc/grml/grml-live.conf is used for main configuration. If a file named
93 /etc/grml/grml-live.local exists it is used as well (sourced after reading
94 /etc/grml/grml-live.conf to allow overriding settings). As a last option the
95 specified configuration file is sourced so it is possible to override settings
96 of /etc/grml/grml-live.conf as well as of /etc/grml/grml-live.local. Please
97 notice that all configuration files have to be adjusted during execution of
98 grml-live, so please make sure you use /etc/grml/grml-live.conf as a base for
99 your own configuration file. Please also notice that the configuration file
100 specified via this option is **not** (yet) supported inside the
101 scripts/hooks/classes at /etc/grml/fai/config. Instead use
102 /etc/grml/grml-live.conf and/or /etc/grml/grml-live.local for configuration
103 stuff used inside /etc/grml/fai/config.
107 Force execution and do not prompt for acknowledgment of configuration.
111 Set the grml flavour name. Common usage examples: grml, grml-small, grml64.
112 Please do NOT use blanks and any special characters like '/', ';' inside
113 GRML_NAME, otherwise you might notice problems while booting.
117 Display short usage information and exit.
121 Specify name of ISO which will be available inside $OUTPUT_DIRECTORY/grml_isos
124 -o **OUTPUT_DIRECTORY**::
126 Main output directory of the build process of FAI. Some directories are created
127 inside this target directory, being: grml_cd (where the files for creating the
128 ISO are located, including the compressed squashfs file), grml_chroot (the
129 chroot system) and grml_isos (where the resulting ISO is stored).
133 Build the ISO without (re-)creating the squashfs compressed file using mksquashfs.
134 This option is useful if you just want to update parts outside the chroot in the ISO.
135 Consider combining this option with the build-only option '-b'.
139 Specify name of the release.
143 Specify the Debian suite you want to use for your live-system. Defaults to
144 "lenny" (being current Debian/stable). Supported values are: etch, lenny, sid.
145 Debian "squeeze" (current Debian/testing) requires base.tgz
146 (/etc/grml/fai/config/basefiles/....tar.gz) until it's supported by debootstrap.
148 -t **TEMPLATE_DIRECTORY**::
150 Specify place of the templates used for building the ISO. By default
151 (and if not manually specified) this is /usr/share/grml-live/templates/.
155 Update existing chroot instead of rebuilding it from scratch. This option is
156 based on the softupdate feature of FAI.
158 -v **VERSION_NUMBER**::
160 Specify version number of the release.
164 Increase verbosity in the build process.
168 Use ZLIB instead of LZMA compression in mksquashfs part of the build process.
174 To get a small, Debian-stable and grml-based Live-CD using /grml/grml-live
175 as build and output directory just run:
179 To get a small Debian-unstable and grml-small based Live-CD using
180 /home/mika/grml-live as build and output directory just use:
182 # grml-live -s sid -c GRMLBASE,GRML_SMALL,I386 -o /home/mika/grml-live
184 To get a medium sized, Debian-unstable and grml-based Live-CD for i386
185 architecture using /grml/grml-live as build and output directory just run:
187 # grml-live -s sid -a i386 -c GRMLBASE,GRML_MEDIUM,I386
189 To get a small, Debian-unstable and grml-based Live-CD using /tmp as build and
190 output directory and use grml_0.0-3.iso as ISO name (placed inside
191 /tmp/grml_isos) just invoke:
193 # grml-live -o /tmp -c GRMLBASE,GRML_SMALL,I386 -s sid -i grml_0.0-3.iso
197 If you have about 700MB of free space inside /dev/shm (being a tmpfs, usually
198 you should have >=1GB of RAM) just run "mount -o remount,suid,dev,rw /dev/shm"
199 and use /dev/shm as build and output directory - resulting in very fast build
200 process. But please be aware of the fact that rebooting your system will result
201 in an empty /dev/shm, so please use another directory for $CHROOT_OUTPUT,
202 $BUILD_OUTPUT and $ISO_OUTPUT if you plan to create more persistent output. :)
205 Main features of grml-live
206 --------------------------
208 * create a grml-/Debian-based Linux Live-CD with one single command
210 * class based concept, providing a maximum of flexibility
212 * supports integration of own hooks, scripts and configuration
214 * supports use and integration of own Software and/or Kernels via simple use of
217 * native support of FAI features
219 * multi-arch support (work in progress)
225 grml-live uses FAI and its class based concept for adjusting configuration and
226 setup according to your needs. This gives you flexibility and strength without
227 losing the simplicity in the build process.
229 The main and base class provided by grml-live is named GRMLBASE. It's strongly
230 recommended to **always** use the class GRMLBASE when building an ISO using
231 grml-live, as well as the architecture dependent class which provides the kernel
232 (being 'I386' for x86_32 and 'AMD64' for x86_64) and a GRML_* class (like
233 GRML_SMALL, GRML_MEDIUM or GRML_FULL). The following files and directories are
234 relevant for class GRMLBASE by default:
236 /etc/grml/fai/config/scripts/GRMLBASE/
237 /etc/grml/fai/config/debconf/GRMLBASE
238 /etc/grml/fai/config/class/GRMLBASE.var
239 /etc/grml/fai/config/hooks/instsoft.GRMLBASE
240 /etc/grml/fai/config/package_config/GRMLBASE
242 Take a look at the next section for information about the concept of those
245 If you want to use your own configuration, extend an existing configuration
246 and/or add additional packages to your ISO just invent a new class (or extend an
247 existing one). For example if you want to use your own class named "FOOBAR" just
248 extend CLASSES="GRMLBASE,GRML_SMALL,I386" inside /etc/grml/grml-live.conf to
249 CLASSES="GRMLBASE,GRML_SMALL,I386,FOOBAR" or invoke grml-live using the classes
250 option: "grml-live -c GRMLBASE,GRML_SMALL,I386,FOOBAR ...".
252 More details regarding the class concept can be found in the documentation of
253 FAI itself (being available at /usr/share/doc/fai-doc/).
260 The package selection part of the classes can be found in
261 /etc/grml/fai/config/package_config whereas some further classes are defined for
262 example in /etc/grml/fai/config/scripts/ so specific feature sets can be
263 selected. The following classes are predefined:
265 * DEBORPHAN: get rid of all packages listed in output of Deborphan
267 * GRMLBASE: the main class responsible for getting a minimal subset of what's
268 defining a grml system. Important parts of the buildprocess are specified in
269 this class as well, so unless you have a really good reason you should always
272 * GRML_FORENSIC: tools for forensic investigations which has been created
273 by people from link:http://www.forensic-geeks.org/[forensic-geeks.org].
275 * GRML_FULL: full featured grml, also known as the "normal", full grml.
277 * GRML_MEDIUM: medium sized grml version, known as grml-medium
279 * GRML_POWERPC: grml for PowerPC architecture, not supported yet (still work in
282 * GRML_SMALL: minimum sized grml version, known as grml-small
284 * LATEX: LaTeX(-related) packages like auctex, texlive,...
285 (which used to be shipped by grml before the LaTeX removal)
287 * LATEX_CLEANUP: get rid of several very large LaTeX directories
288 (like some /usr/share/doc/texlive-*, /usr/share/doc/texmf,...)
290 * LOCALES: use full featured locales setup (see /etc/locale.gen.grml). This
291 avoids to get rid of /usr/share/locale - which happens by default otherwise - as
294 * NO_ONLINE: do not run scripts during the chroot build process which require a
297 * RELEASE: run some specific scripts and commands to provide the workflow for an
298 official grml release
300 * REMOVE_DOCS: get rid of documentation directories (like /usr/share/doc,
301 /usr/share/man/, /usr/share/info,...)
303 * XORG: providing important packages for use with a base grml-featured X.org
310 Notice that grml-live ships FAI configuration files that do not use the same
311 namespace as the FAI packages itself. This ensures that grml-live does not clash
312 with your usual FAI configuration, so instead of /etc/fai/fai.conf (package
313 fai-client) grml uses /etc/grml/fai/fai.conf instead. For more details see
314 below. To get an idea how another configuration or example files could look like
315 check out /usr/share/doc/fai-doc/examples/simple/ (provided by Debian package
316 fai-doc). Furthermore /usr/share/doc/fai-doc/fai-guide.html/ch-config.html
317 provides documentation regarding configuration possibilities.
321 Script for the main build process. Requires root permissions for execution.
323 /etc/grml/grml-live.conf
325 Main configuration file for grml-live. All the important steps can be configured
328 /etc/grml/fai/fai.conf
330 Main configuration file for FAI which specifies where all the configuration
331 files and scripts for FAI/grml-live can be found. By default it is set to
332 FAI_CONFIGDIR=/etc/grml/fai/config, a directory shipped by grml-live
333 out-of-the-box so you shouldn't have to configure anything in this file.
335 /etc/grml/fai/make-fai-nfsroot.conf
337 This file is used by make-fai-nfsroot(8) only. Usually you don't have to change
338 anything inside this file. If you want to modify NFSROOT though you can adjust
341 /etc/grml/fai/NFSROOT
343 This file specifies the package list for creating the NFSROOT.
345 /etc/grml/fai/apt/sources.list
347 This file specifies which mirrors should be considered for retrieving the Debian
348 packages when creating the main chroot (including all the software you would
349 like to see included). Important: this file should *not* be adjusted manually!
350 Instead use the GRML_LIVE_SOURCES variable inside /etc/grml/grml-live.conf or
351 /etc/grml/grml-live.local which modifies /etc/grml/fai/apt/sources.list
352 on-the-fly via grml-live then. If you want to generally adjust apt configuration
353 check out /etc/grml/fai/files/etc/apt instead.
355 /etc/grml/fai/config/
357 The main directory for configuration of FAI/grml-live. More details below.
359 /etc/grml/fai/config/class/
361 This directory contains files which specify main configuration variables for the
364 /etc/grml/fai/config/debconf/
366 This directory provides the files for preseeding/configuration of debconf
369 /etc/grml/fai/config/hooks/
371 This directory provides files for customising the build process through hooks.
372 Hooks are user defined programs or scripts, which are called during the
373 installation process.
375 /etc/grml/fai/config/package_config/
377 Directory with lists of software packages to be installed or removed. The
378 different classes describe what should find its way to your ISO. When running
379 "grml-live -c GRMLBASE,GRML_SMALL,I386 ..." only the configuration of GRMLBASE,
380 GRML_SMALL and and I386 will be taken. If you use 'grml-live -c
381 GRMLBASE,GRML_SMALL,I386,FOOBAR ...' then the files of GRMLBASE, GRML_SMALL,
382 I386 **plus** the files from FOOBAR will be taken. So just create a new class to
383 adjust the package selection according to your needs. Please notice that the
384 directory GRMLBASE contains a package list defining a minimum but still
385 reasonable package configuration.
387 /etc/grml/fai/config/scripts/
389 Scripts for customising the ISO within the build process.
393 This directory provides files used inside the scripts of
394 /etc/grml/fai/config/scripts/*. For a full documentation what happens with the
395 files please refer to the source of the scripts.
397 /etc/grml/fai/live-initramfs/
399 This directory provides the files used for building the initramfs/initrd via
406 grml-live itself logs to /var/log/grml-live.log. Unless you set ZERO_LOGFILE in
407 /etc/grml/grml-live.conf the output is appended to the file. If you set the
408 ZERO_LOGFILE configuration option the logfile will be truncated on each new
409 invocation of grml-live.
411 The FAI part of grml-live logs to /var/log/fai/$HOSTNAME/ - so the
412 default being /var/log/fai/grml/.
414 If you are using the grml-live buildd you will find the logs of the grml-live
415 run at /var/log/grml-buildd.stdout and /var/log/grml-buildd.stderr.
418 Requirements for the build system
419 ---------------------------------
421 * any Debian based system should be sufficient (if it doesn't work it's a bug,
422 please send us a bug report then) [a usual
423 link:http://grml.org/grml2hd/[grml2hd] harddisk installation (using grml or
424 grml-medium) ships all you need]. Check out <<deploy-on-debian,How do I deploy
425 grml-live on a plain Debian installation>> for details how to set up grml-live
426 on a plain, original Debian system.
428 * enough free disk space; at least 800MB are required for a minimal grml-live
429 run (\~400MB for the chroot [$CHROOT_OUTPUT], \~150MB for the build target
430 [$BUILD_OUTPUT] and \~150MB for the resulting ISO [$ISO_OUTPUT] plus some
431 temporary files), if you plan to use GRML_FULL you should have at least 4GB of
432 total free disk space
434 * fast network access for retrieving the Debian packages used for creating the
435 chroot (check out "local mirror" and "NFSROOT" to workaround this problem as far
438 For further information see next section.
442 Current state of grml-live with squashfs-tools and kernel
443 ---------------------------------------------------------
445 To make it easier to track problems this section documents current state of
446 grml-live playing together with squashfs-tools / squashfs-lzma-tools (for
447 building the compressed file) and the kernel version. Documentation of this
448 section is up2date by 04nd of august 2009, please report any bugs you
451 Using squashfs-lzma-tools 3.3-1 on the build system
452 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
454 squashfs-lzma-tools from the grml repository supports kernel 2.6.26-grml[64] and
455 2.6.28-grml[64] using both lzma and zlib (-nolzma) compression. It's the
456 recommended package for building ISOs with grml-live currently!
458 The packages can be downloaded from
459 link:http://deb.grml.org/pool/main/s/squashfs-lzma/[http://deb.grml.org/pool/main/s/squashfs-lzma/].
462 Please use squashfs-lzma-tools 3.3-1 if you want to remaster grml release
465 Using squashfs-tools 1:3.3-7 on the build system
466 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
468 squashfs-tools 1:3.3-7 is available via the official Debian/unstable and
469 Debian/testing (Lenny) pool running:
471 # aptitude install squashfs-tools=1:3.3-7
473 or directly via downloading the files
474 http://grml.org/squashfs/squashfs-tools_3.3-7_i386.deb (for x86) or
475 http://grml.org/squashfs/squashfs-tools_3.3-7_amd64.deb (for amd64) [both build
476 on and for Debian/etch but working with testing and unstable as well].
478 Please notice that squashfs-tools 1:3.3-7 does NOT support LZMA compression at
479 all (so you won't be able to remaster release 2008.11 and 2009.05 using LZMA for
480 example). The -nolzma option of mksquashfs is not available therefore (even
481 though grml-live will deactivate it for you automatically anyway). Please use
482 squashfs-lzma-tools instead.
484 * Kernel 2.6.23-grml: does NOT work, please use squashfs-tools 1:3.2r2-9exp1
485 instead if you still want to use kernel 2.6.23 (not
487 * Kernel 2.6.26-grml: works (without LZMA compression only of course!)
488 * Kernel 2.6.28-grml: works (without LZMA compression only of course!)
490 Using squashfs-tools 1:3.2r2-9exp1 on the build system
491 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
493 squashfs-tools 1:3.2r2-9exp1 is available via the grml-testing repository,
496 # aptitude install squashfs-tools=1:3.2r2-9exp1
498 or directly via downloading the files
499 http://grml.org/squashfs/squashfs-tools_3.2r2-9exp1_i386.deb (for x86) or
500 http://grml.org/squashfs/squashfs-tools_3.2r2-9exp1_amd64.deb (for amd64).
502 Using with ZLIB compression (SQUASHFS_OPTIONS='-nolzma' or -z
503 option in grml-live cmdline):
505 * Kernel 2.6.23-grml: works
506 * Kernel 2.6.26-grml: works
507 * Kernel 2.6.28-grml: supposed to work (not verified though)
509 Using with LZMA compression:
511 * Kernel 2.6.23-grml: works
512 * Kernel 2.6.26-grml: does NOT work, please use zlib mode instead or switch
513 to Debian package squashfs-lzma-tools (see section above).
514 * Kernel 2.6.28-grml: does NOT work, please use zlib mode instead or switch
515 to Debian package squashfs-lzma-tools (see section above).
522 How do I deploy grml-live on a plain Debian installation?
523 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
525 The easiest way to get a running grml-live setup is to install grml or
526 grml-medium using grml2hd (for example inside KVM, Virtualbox, VMware,... if you
527 don't want to run it on a physical system). Of course using grml-live on a
528 plain, original Debian installation is supported as well. So there we go.
530 What we have: plain, original Debian Lenny (5.0).
532 What we want: build a grml-medium ISO based on Debian/squeeze for the i386
533 architecture using grml-live.
537 If you encounter any problems while booting the resulting ISO please be aware of
538 <<current_state,the 'current state of grml-live with squashfs-tools and kernel'
544 # adjust sources.list:
545 cat >> /etc/apt/sources.list << EOF
547 # grml stable repository:
548 deb http://deb.grml.org/ grml-stable main
549 deb-src http://deb.grml.org/ grml-stable main
551 # grml testing/development repository:
552 deb http://deb.grml.org/ grml-testing main
553 deb-src http://deb.grml.org/ grml-testing main
556 # adjust apt-pinning (only prefer squashfs stuff from grml):
557 cat >> /etc/apt/preferences << EOF
559 Pin: origin deb.grml.org
562 Package: squashfs-tools
563 Pin: origin deb.grml.org
566 Package: squashfs-lzma-tools
567 Pin: origin deb.grml.org
571 # get keyring for apt:
573 apt-get --allow-unauthenticated install grml-debian-keyring
575 # install basefile so we don't have to build basic chroot from scratch:
576 mkdir -p /etc/grml/fai/config/basefiles/
577 mv base.tgz /etc/grml/fai/config/basefiles/I386.tar.gz
579 # install relevant tools:
580 apt-get -o APT::Install-Recommends=false install grml-live squashfs-lzma-tools
582 # adjust grml-live configuration for our needs:
583 cat > /etc/grml/grml-live.local << EOF
584 # consider using lzma only for space reasons (resulting in longer
585 # build time but smaller ISO):
586 SQUASHFS_OPTIONS="-nolzma"
587 ## adjust if necessary (defaults to /grml/grml-live):
588 ## OUTPUT="/srv/grml-live"
589 FAI_DEBOOTSTRAP="squeeze http://ftp.de.debian.org/debian/"
591 CLASSES="GRMLBASE,GRML_MEDIUM,I386"
593 # ZERO_FAI_LOGFILE='1'
595 deb http://deb.grml.org/ grml-stable main
596 deb http://deb.grml.org/ grml-testing main
597 deb http://ftp.de.debian.org/debian squeeze main contrib non-free
601 # just optional(!) - upgrade FAI to latest available version:
602 cat >> /etc/apt/sources.list << EOF
604 deb http://www.informatik.uni-koeln.de/fai/download lenny koeln
607 # get gpg key of FAI repos and install current FAI version:
608 gpg -a --recv-keys AB9B66FD; gpg -a --export AB9B66FD | apt-key add -
610 apt-get install fai-client fai-server fai-doc
612 That's it. Now invoking 'grml-live -V' should build the ISO. If everything
613 worked as expected the last line of the shell output should look like:
615 [*] Successfully finished execution of grml-live [running 687 seconds]
617 and the ISO can be found inside /grml-live/grml-live/grml_isos/ then.
620 Help, I'm using Debian etch and I don't have FAI version >3.2
621 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
623 wget http://www.informatik.uni-koeln.de/fai/download/etch/fai-client_3.2.8_all.deb \
624 http://www.informatik.uni-koeln.de/fai/download/etch/fai-server_3.2.8_all.deb \
625 http://www.informatik.uni-koeln.de/fai/download/etch/fai-doc_3.2.8_all.deb
626 dpkg -i fai-client_3.2.8_all.deb fai-server_3.2.8_all.deb fai-doc_3.2.8_all.deb
628 or check out the link:http://www.informatik.uni-koeln.de/fai/[FAI-homepage] for
632 I've problems with the build process. How to start debugging?
633 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
635 Check out the logs inside /var/log/fai/... If you don't have the time to debug
636 the problem in further detail or don't know how to proceed just send a copy of
637 your config, logs and the commandline with a short problem description to
640 # history | grep grml-live > /etc/grml/grml_live.cmdline
641 # tar zcf grml_live_problem.tar.gz /etc/grml/grml-live.conf \
642 /etc/grml/grml-buildd.conf /var/log/fai /etc/grml/fai
644 [[local-debian-mirror]]
645 Can I use my own (local) Debian mirror?
646 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
648 Sure. Just adjust the variables GRML_LIVE_SOURCES and FAI_DEBOOTSTRAP (if not
649 already using NFSROOT's base.tgz) inside /etc/grml/grml-live.conf according to
650 your needs. Please don't forget that you should use the grml servers as well
651 (see default configuration) so all the grml packages can be downloaded as well.
653 If you want to use a local (for example NFS mount) mirror additionally, just
654 adjust MIRROR_DIRECTORY and MIRROR_SOURCES inside /etc/grml/grml-live.conf as
657 Unless you specify GRML_LIVE_SOURCES and/or FAI_DEBOOTSTRAP the default from
658 /etc/grml/fai/apt/sources.list and /etc/grml/fai/make-fai-nfsroot.conf will be
659 taken. If you customise the variables in /etc/grml/grml-live.conf then the two
660 files will be adjusted during runtime automatically.
662 If MIRROR_DIRECTORY and MIRROR_SOURCES are specified the local mirror will be
663 taken as first entry in the generated sources.list so it's prefered over
664 non-local mirrors. Using a fallback mirror (via providing several mirrors in
665 GRML_LIVE_SOURCES as used by default) is a recommended setting.
667 [[add-additional-debian-packages]]
668 How do I add additional Debian package(s) to my CD/ISO?
669 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
671 Just create a new class (using the package_config directory):
673 # cat > /etc/grml/fai/config/package_config/MIKA << EOF
677 another_name_of_a_debian_package
681 and specify it when invoking grml-live then:
683 # grml-live -c GRMLBASE,GRML_SMALL,I386,MIKA
685 [[reset-grml-live-configuration]]
686 I fscked up my grml-live configuration. How do I reset it to the defaults?
687 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
689 Notice: this deletes all your grml-live configuration files. If that's really
690 what you are searching for just run:
692 rm -rf /etc/grml/fai /etc/grml/grml-live.conf
693 dpkg -i --force-confnew --force-confmiss /path/to/grml-live_..._all.deb
697 If you don't control your /etc using a version control system (VCS) yet it's a
698 good chance to start using it now. Check out
699 link:http://michael-prokop.at/blog/2007/03/14/maintain-etc-with-mercurial-on-debian/[http://michael-prokop.at/blog/2007/03/14/maintain-etc-with-mercurial-on-debian/]
700 for more details how to maintain /etc using the mercurial VCS.
702 [[create-a-base-tgz]]
703 How do I create a base.tgz for use as NFSROOT?
704 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
706 First of all build the chroot system:
708 mkdir /tmp/nfsroot && cd /tmp/nfsroot
709 debootstrap lenny /tmp/nfsroot/ http://ftp.de.debian.org/debian
712 Then check out where your NFSROOT is located:
714 # grep '^NFSROOT' /etc/grml/fai/make-fai-nfsroot.conf
715 NFSROOT=/grml/fai/nfsroot
717 So as /grml/fai/nfsroot is your NFSROOT place the file under
718 /grml/fai/nfsroot/live/filesystem.dir/var/tmp/:
720 mv base.tgz /grml/fai/nfsroot/live/filesystem.dir/var/tmp/base.tgz
722 or even better use /etc/grml/fai/config/basefiles/$CLASSNAME.tar.gz instead.
723 Use I386 as $CLASSNAME for i386 builds and AMD64 for amd64 builds.
725 Now running "grml-live ..." will use this file as main system instead of
726 executing debootstrap. Check out the output for the following lines if using
730 Calling task_extrbase
731 Unpacking Debian base archive
732 Extracting /grml/fai/nfsroot/live/filesystem.dir/var/tmp/base.tgz
736 or if using /etc/grml/fai/config/basefiles/$CLASSNAME.tar.gz for:
739 ftar: extracting /etc/grml/fai/config/basefiles///AMD64.tar.gz to
740 /grml-live/grml-live_20071029.22138/grml_chroot//
744 Set up apt-cacher / apt-cacher-ng for use with grml-live
745 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
747 Make sure /etc/grml/grml-live.conf provides according GRML_LIVE_SOURCES and
750 # cat /etc/grml/grml-live.conf
753 deb http://localhost:3142/deb.grml.org grml-stable main
754 deb http://localhost:3142/deb.grml.org grml-testing main
755 deb http://localhost:3142/ftp.de.debian.org/debian lenny main contrib non-free
758 FAI_DEBOOTSTRAP="lenny http://localhost:3142/ftp.de.debian.org/debian lenny main contrib non-free"
760 Make sure apt-cacher / apt-cacher-ng is running ('/etc/init.d/apt-cacher
761 restart' or '/etc/init.d/apt-cacher-ng restart'). That's it. All downloaded
762 files will be cached in /var/cache/apt-cacher/ or /var/cache/apt-cacher-ng then.
765 Set up approx for use with grml-live
766 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
768 Make sure /etc/grml/grml-live.conf provides according GRML_LIVE_SOURCES and
771 # cat /etc/grml/grml-live.conf
774 deb http://localhost:9999/grml grml-stable main
775 deb http://localhost:9999/grml grml-testing main
776 deb http://localhost:9999/debian lenny main contrib non-free
778 FAI_DEBOOTSTRAP="lenny http://localhost:9999/debian"
782 # cat /etc/approx/approx.conf
784 debian http://ftp.at.debian.org/debian
785 grml http://deb.grml.org/
787 Don't forget to restart approx (/etc/init.d/approx restart). That's it.
788 All downloaded files will be cached in /var/cache/approx now.
791 I've a question which isn't answered by this document
792 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
794 Don't hesitate to ask on IRC (channel #grml on irc.freenode.org) or just drop me
795 a mail: <mika@grml.org>
798 Download / install grml-live as a Debian package
799 ------------------------------------------------
801 Debian packages are available through the grml-repository at
802 link:http://deb.grml.org/pool/main/g/grml-live/[deb.grml.org]. If you want to
803 build a Debian package on your own (using for example a specific version or the
804 current development tree), just execute:
806 git clone git://git.grml.org/grml-live
814 The source of grml-live is available at
815 link:http://git.grml.org/?p=grml-live.git[http://git.grml.org/?p=grml-live.git]
821 Check out link:http://wiki.grml.org/doku.php?id=grml-live[grml-live in the grml-wiki]
828 Please report feedback, link:http://grml.org/bugs/[bugreports] and wishes
829 link:http://grml.org/contact/[to the grml-team]!
834 Michael Prokop <mika@grml.org>
836 /////////////////////////////////////
837 // vim:ai tw=80 ft=asciidoc expandtab
838 /////////////////////////////////////