Clarify /etc/grml/fai/apt/sources.list in docs
[grml-live.git] / docs / grml-live.txt
1 grml-live(8)
2 ============
3
4 Name
5 ----
6
7 grml-live - build framework based on FAI for generating a grml and Debian based
8 Linux Live system (CD/ISO)
9
10 Synopsis
11 --------
12
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]
16
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.
20
21 Description
22 -----------
23
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.
32
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.
36
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!
41
42 [NOTE]
43
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
51 for details).
52
53 Options
54 -------
55
56   -a **ARCHITECTURE**::
57
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
63 and amd64.
64
65   -b::
66
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.
71
72   -B::
73
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.
78
79   -c **CLASSES**::
80
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.
88
89   -C **CONFIGURATION_FILE**::
90
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.
104
105   -F::
106
107 Force execution and do not prompt for acknowledgment of configuration.
108
109   -g **GRML_NAME**::
110
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 with booting.
114
115   -h::
116
117 Display short usage information and exit.
118
119   -i **ISO_NAME**::
120
121 Specify name of ISO which will be available inside $OUTPUT_DIRECTORY/grml_isos
122 by default.
123
124   -o **OUTPUT_DIRECTORY**::
125
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).
130
131   -q::
132
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'.
136
137   -r **RELEASENAME**::
138
139 Specify name of the release.
140
141   -s **SUITE**::
142
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, squeeze,
145 sid.
146
147   -t **TEMPLATE_DIRECTORY**::
148
149 Specify place of the templates used for building the ISO. By default
150 (and if not manually specified) this is /usr/share/grml-live/templates/.
151
152   -u::
153
154 Update existing chroot instead of rebuilding it from scratch. This option is
155 based on the softupdate feature of FAI.
156
157   -v **VERSION_NUMBER**::
158
159 Specify version number of the release.
160
161   -V::
162
163 Increase verbosity in the build process.
164
165   -z::
166
167 Use ZLIB instead of LZMA compression in mksquashfs part of the build process.
168
169 Usage examples
170 --------------
171
172 To get a small, Debian-stable and grml-based Live-CD using /grml/grml-live
173 as build and output directory just run:
174
175   # grml-live
176
177 To get a small Debian-unstable and grml-small based Live-CD using
178 /home/mika/grml-live as build and output directory just use:
179
180   # grml-live -s sid -c GRMLBASE,GRML_SMALL,I386 -o /home/mika/grml-live
181
182 To get a medium sized, Debian-unstable and grml-based Live-CD for i386
183 architecture using /grml/grml-live as build and output directory just run:
184
185   # grml-live -s sid -a i386 -c GRMLBASE,GRML_MEDIUM,I386
186
187 To get a small, Debian-unstable and grml-based Live-CD using /tmp as build and
188 output directory and use grml_0.0-3.iso as ISO name (placed inside
189 /tmp/grml_isos) just invoke:
190
191   # grml-live -o /tmp -c GRMLBASE,GRML_SMALL,I386 -s sid -i grml_0.0-3.iso
192
193 [NOTE]
194
195 If you have about 700MB of free space inside /dev/shm (being a tmpfs, usually
196 you should have >=1GB of RAM) just run "mount -o remount,suid,dev,rw /dev/shm"
197 and use /dev/shm as build and output directory - resulting in very fast build
198 process.  But please be aware of the fact that rebooting your system will result
199 in an empty /dev/shm, so please use another directory for $CHROOT_OUTPUT,
200 $BUILD_OUTPUT and $ISO_OUTPUT if you plan to create more persistent output. :)
201
202 Main features of grml-live
203 --------------------------
204
205 * create a grml-/Debian-based Linux Live-CD with one single command
206
207 * class based concept, providing a maximum of flexibility
208
209 * supports integration of own hooks, scripts and configuration
210
211 * supports use and integration of own Software and/or Kernels via simple use of
212 Debian repositories
213
214 * native support of FAI features
215
216 * multi-arch support (work in progress)
217
218 The class concept
219 -----------------
220
221 grml-live uses FAI and its class based concept for adjusting configuration and
222 setup according to your needs. This gives you flexibility and strength without
223 losing the simplicity in the build process.
224
225 The main and base class provided by grml-live is named GRMLBASE. It's strongly
226 recommended to **always** use the class GRMLBASE when building an ISO using
227 grml-live, as well as the architecture dependent class which provides the kernel
228 (being 'I386' for x86_32 and 'AMD64' for x86_64) and a GRML_* class (like
229 GRML_SMALL, GRML_MEDIUM or GRML_FULL). The following files and directories are
230 relevant for class GRMLBASE by default:
231
232   /etc/grml/fai/config/scripts/GRMLBASE/
233   /etc/grml/fai/config/debconf/GRMLBASE
234   /etc/grml/fai/config/class/GRMLBASE.var
235   /etc/grml/fai/config/hooks/instsoft.GRMLBASE
236   /etc/grml/fai/config/package_config/GRMLBASE
237
238 Take a look at the next section for information about the concept of those
239 files/directories.
240
241 If you want to use your own configuration, extend an existing configuration
242 and/or add additional packages to your ISO just invent a new class (or extend an
243 existing one). For example if you want to use your own class named "FOOBAR" just
244 extend CLASSES="GRMLBASE,GRML_SMALL,I386" inside /etc/grml/grml-live.conf to
245 CLASSES="GRMLBASE,GRML_SMALL,I386,FOOBAR" or invoke grml-live using the classes
246 option: "grml-live -c GRMLBASE,GRML_SMALL,I386,FOOBAR ...".
247
248 More details regarding the class concept can be found in the documentation of
249 FAI itself (being available at /usr/share/doc/fai-doc/).
250
251 [[X7]]
252 [[classes]]
253 Available classes
254 -----------------
255
256 The package selection part of the classes can be found in
257 /etc/grml/fai/config/package_config whereas some further classes are defined for
258 example in /etc/grml/fai/config/scripts/ so specific feature sets can be
259 selected. The following classes are predefined:
260
261 * DEBORPHAN: get rid of all packages listed in output of Deborphan
262
263 * GRMLBASE: the main class responsible for getting a minimal subset of what's
264 defining a grml system. Important parts of the buildprocess are specified in
265 this class as well, so unless you have a really good reason you should always
266 use this class.
267
268 * GRML_FORENSIC: tools for forensic investigations which has been created
269 by people from link:http://www.forensic-geeks.org/[forensic-geeks.org].
270
271 * GRML_FULL: full featured grml, also known as the "normal", full grml.
272
273 * GRML_MEDIUM: medium sized grml version, known as grml-medium
274
275 * GRML_POWERPC: grml for PowerPC architecture, not supported yet (still work in
276 progress)
277
278 * GRML_SMALL: minimum sized grml version, known as grml-small
279
280 * LATEX_CLEANUP: get rid of several very large LaTeX directories
281 (like some /usr/share/doc/texlive-*, /usr/share/doc/texmf,...)
282
283 * LOCALES: use full featured locales setup (see /etc/locale.gen.grml). This
284 avoids to get rid of /usr/share/locale - which happens by default otherwise - as
285 well.
286
287 * NO_ONLINE: do not run scripts during the chroot build process which require a
288 network connection
289
290 * RELEASE: run some specific scripts and commands to provide the workflow for an
291 official grml release
292
293 * REMOVE_DOCS: get rid of documentation directories (like /usr/share/doc,
294 /usr/share/man/, /usr/share/info,...)
295
296 * XORG: providing important packages for use with a base grml-featured X.org
297 setup
298
299 Files
300 -----
301
302 Notice that grml-live ships FAI configuration files that do not use the same
303 namespace as the FAI packages itself. This ensures that grml-live does not clash
304 with your usual FAI configuration, so instead of /etc/fai/fai.conf (package
305 fai-client) grml uses /etc/grml/fai/fai.conf instead. For more details see
306 below. To get an idea how another configuration or example files could look like
307 check out /usr/share/doc/fai-doc/examples/simple/ (provided by Debian package
308 fai-doc). Furthermore /usr/share/doc/fai-doc/fai-guide.html/ch-config.html
309 provides documentation regarding configuration possibilities.
310
311   /usr/sbin/grml-live
312
313 Script for the main build process. Requires root permissions for execution.
314
315   /etc/grml/grml-live.conf
316
317 Main configuration file for grml-live. All the important steps can be configured
318 at this stage.
319
320   /etc/grml/fai/fai.conf
321
322 Main configuration file for FAI which specifies where all the configuration
323 files and scripts for FAI/grml-live can be found. By default it is set to
324 FAI_CONFIGDIR=/etc/grml/fai/config, a directory shipped by grml-live
325 out-of-the-box so you shouldn't have to configure anything in this file.
326
327   /etc/grml/fai/make-fai-nfsroot.conf
328
329 This file is used by make-fai-nfsroot(8) only. Usually you don't have to change
330 anything inside this file. If you want to modify NFSROOT though you can adjust
331 it there.
332
333   /etc/grml/fai/NFSROOT
334
335 This file specifies the package list for creating the NFSROOT.
336
337   /etc/grml/fai/apt/sources.list
338
339 This file specifies which mirrors should be considered for retrieving the Debian
340 packages when creating the main chroot (including all the software you would
341 like to see included). Important: this file should *not* be adjusted manually!
342 Instead use the GRML_LIVE_SOURCES variable inside /etc/grml/grml-live.conf which
343 modifies /etc/grml/fai/apt/sources.list on-the-fly via grml-live then. If you
344 want to generally adjust apt configuration check out /etc/grml/fai/files/etc/apt
345 instead.
346
347   /etc/grml/fai/config/
348
349 The main directory for configuration of FAI/grml-live. More details below.
350
351   /etc/grml/fai/config/class/
352
353 This directory contains files which specify main configuration variables for the
354 FAI classes.
355
356   /etc/grml/fai/config/debconf/
357
358 This directory provides the files for preseeding/configuration of debconf
359 through files.
360
361   /etc/grml/fai/config/hooks/
362
363 This directory provides files for customising the build process through hooks.
364 Hooks are user defined programs or scripts, which are called during the
365 installation process.
366
367   /etc/grml/fai/config/package_config/
368
369 Directory with lists of software packages to be installed or removed.  The
370 different classes describe what should find its way to your ISO.  When running
371 "grml-live -c GRMLBASE,GRML_SMALL,I386 ..." only the configuration of GRMLBASE,
372 GRML_SMALL and and I386 will be taken. If you use 'grml-live -c
373 GRMLBASE,GRML_SMALL,I386,FOOBAR ...' then the files of GRMLBASE, GRML_SMALL,
374 I386 **plus** the files from FOOBAR will be taken. So just create a new class to
375 adjust the package selection according to your needs.  Please notice that the
376 directory GRMLBASE contains a package list defining a minimum but still
377 reasonable package configuration.
378
379   /etc/grml/fai/config/scripts/
380
381 Scripts for customising the ISO within the build process.
382
383   /etc/grml/fai/files/
384
385 This directory provides files used inside the scripts of
386 /etc/grml/fai/config/scripts/*. For a full documentation what happens with the
387 files please refer to the source of the scripts.
388
389   /etc/grml/fai/live-initramfs/
390
391 This directory provides the files used for building the initramfs/initrd via
392 live-initramfs(8).
393
394 Available log files
395 -------------------
396
397 grml-live itself logs to /var/log/grml-live.log. Unless you set ZERO_LOGFILE in
398 /etc/grml/grml-live.conf the output is appended to the file. If you set the
399 ZERO_LOGFILE configuration option the logfile will be truncated on each new
400 invocation of grml-live.
401
402 The FAI part of grml-live logs to /var/log/fai/$HOSTNAME/ - so the
403 default being /var/log/fai/grml/.
404
405 If you are using the grml-live buildd you will find the logs of the grml-live
406 run at /var/log/grml-buildd.stdout and /var/log/grml-buildd.stderr.
407
408 Requirements for the build system
409 ---------------------------------
410
411 * any Debian based system should be sufficient (if not it's a bug, so please
412 send us a bug report then) [a usual link:http://grml.org/grml2hd/[grml2hd]
413 harddisk installation ships all you need]
414
415 * enough free disk space; at least 800MB are required for a minimal grml-live
416 run (\~400MB for the chroot [$CHROOT_OUTPUT], \~150MB for the build target
417 [$BUILD_OUTPUT] and \~150MB for the resulting ISO [$ISO_OUTPUT] plus some
418 temporary files), if you plan to use GRML_FULL you should have at least 4GB of
419 total free disk space
420
421 * fast network access for retrieving the Debian packages used for creating the
422 chroot (check out "local mirror" and "NFSROOT" to workaround this problem as far
423 as possible)
424
425 For further information see next section.
426
427 [[X8]]
428 [[current_state]]
429 Current state of grml-live with squashfs-tools and kernel
430 ---------------------------------------------------------
431
432 To make it easier to track problems this section documents current state of
433 grml-live playing together with squashfs-tools / squashfs-lzma-tools (for
434 building the compressed file) and the kernel version. Documentation of this
435 section is up2date by 02nd of december 2008, please report any bugs you
436 encounter.
437
438 System
439 ~~~~~~
440
441 * grml-live, version 0.9.6
442
443 * building grml-medium (Debian/unstable)
444
445 * software versions used in the ISO (being installed automatically, recorded
446 just as a reference):
447
448   ii  busybox             1:1.10.2-2          Tiny utilities for small and embedded systems
449   ii  initramfs-tools     0.92f.grml01        tools for generating an initramfs
450   ii  klibc-utils         1.5.12-2            small utilities built with klibc for early boot
451   ii  live-initramfs      1.139.1-4grml.03    Debian Live initramfs hook
452   ii  lvm2                2.02.39-2           The Linux Logical Volume Manager
453   ii  mdadm               2.6.7.1-1           tool to administer Linux MD arrays (software RAID)
454   ii  udev                0.125-6grml0        /dev/ and hotplug management daemon
455
456 Using squashfs-lzma-tools 3.3-1 on the build system
457 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
458
459 squashfs-lzma-tools from the grml repository supports kernel 2.6.26-grml[64]
460 (version >=grml.05) using both lzma and zlib (-nolzma) compression. It's the
461 recommended package for building ISOs with grml-live currently!
462
463 The packages can be downloaded from
464 link:http://deb.grml.org/pool/main/s/squashfs-lzma/[http://deb.grml.org/pool/main/s/squashfs-lzma/].
465
466 [NOTE]
467 Please use squashfs-lzma-tools 3.3-1 if you want to remaster release 2008.11 of grml.
468
469 Using squashfs-tools 1:3.3-7 on the build system
470 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
471
472 squashfs-tools 1:3.3-7 is available via Debian/unstable and Debian/testing
473 (lenny) pool running:
474
475   # aptitude install squashfs-tools=1:3.3-7
476
477 or directly via downloading the files
478 http://grml.org/squashfs/squashfs-tools_3.3-7_i386.deb (for x86) or
479 http://grml.org/squashfs/squashfs-tools_3.3-7_amd64.deb (for amd64) [both build
480 on and for Debian/etch but working with testing and unstable as well].
481
482 Please notice that squashfs-tools 1:3.3-7 does NOT support LZMA compression
483 at all (so you won't be able to remaster release 2008.11 for example). The
484 -nolzma option of mksquashfs is not available therefore (even though
485 grml-live will deactivate it for you automatically anyway). Please use
486 squashfs-lzma-tools instead.
487
488 * Kernel 2.6.23-grml: does NOT work, please use squashfs-tools 1:3.2r2-9exp1
489                       instead if you still want to use kernel 2.6.23
490 * Kernel 2.6.26-grml: works (without LZMA compression of course!)
491
492 Using squashfs-tools 1:3.2r2-9exp1 on the build system
493 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
494
495 squashfs-tools 1:3.2r2-9exp1 is available via the grml-testing repository,
496 running:
497
498   # aptitude install squashfs-tools=1:3.2r2-9exp1
499
500 or directly via downloading the files
501 http://grml.org/squashfs/squashfs-tools_3.2r2-9exp1_i386.deb (for x86) or
502 http://grml.org/squashfs/squashfs-tools_3.2r2-9exp1_amd64.deb (for amd64).
503
504 Versions with ZLIB compression (SQUASHFS_OPTIONS='-nolzma' or -z
505 option in grml-live cmdline):
506
507 * Kernel 2.6.23-grml: works
508 * Kernel 2.6.26-grml: works
509
510 Versions with LZMA compression:
511
512 * Kernel 2.6.23-grml: works
513 * Kernel 2.6.26-grml: does NOT work, please use zlib mode instead or switch
514   to Debian package squashfs-lzma-tools (see section above).
515
516 FAQ
517 ---
518
519 Help, I'm using Debian etch and I don't have FAI version >3.2
520 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
521
522   wget http://www.informatik.uni-koeln.de/fai/download/etch/fai-client_3.2.8_all.deb \
523        http://www.informatik.uni-koeln.de/fai/download/etch/fai-server_3.2.8_all.deb \
524        http://www.informatik.uni-koeln.de/fai/download/etch/fai-doc_3.2.8_all.deb
525   dpkg -i fai-client_3.2.8_all.deb fai-server_3.2.8_all.deb fai-doc_3.2.8_all.deb
526
527 or check out the link:http://www.informatik.uni-koeln.de/fai/[FAI-homepage] for
528 further details.
529
530 I've problems with the build process. How to start debugging?
531 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
532
533 Check out the logs inside /var/log/fai/... If you don't have the time to debug
534 the problem in further detail or don't know how to proceed just send a copy of
535 your config, logs and the commandline with a short problem description to
536 <mika@grml.org>:
537
538   # history | grep grml-live > /etc/grml/grml_live.cmdline
539   # tar zcf grml_live_problem.tar.gz /etc/grml/grml-live.conf \
540             /etc/grml/grml-buildd.conf /var/log/fai /etc/grml/fai
541
542 Can I use my own (local) Debian mirror?
543 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
544
545 Sure. Just adjust the variables GRML_LIVE_SOURCES and FAI_DEBOOTSTRAP (if not
546 already using NFSROOT's base.tgz) inside /etc/grml/grml-live.conf according to
547 your needs. Please don't forget that you should use the grml servers as well
548 (see default configuration) so all the grml packages can be downloaded as well.
549
550 If you want to use a local (for example NFS mount) mirror additionally, just
551 adjust MIRROR_DIRECTORY and MIRROR_SOURCES inside /etc/grml/grml-live.conf as
552 well.
553
554 Unless you specify GRML_LIVE_SOURCES and/or FAI_DEBOOTSTRAP the default from
555 /etc/grml/fai/apt/sources.list and /etc/grml/fai/make-fai-nfsroot.conf will be
556 taken. If you customise the variables in /etc/grml/grml-live.conf then the two
557 files will be adjusted during runtime automatically.
558
559 If MIRROR_DIRECTORY and MIRROR_SOURCES are specified the local mirror will be
560 taken as first entry in the generated sources.list so it's prefered over
561 non-local mirrors. Using a fallback mirror (via providing several mirrors in
562 GRML_LIVE_SOURCES as used by default) is a recommended setting.
563
564 How do I add additional Debian package(s) to my CD/ISO?
565 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
566
567 Just create a new class (using the package_config directory):
568
569   # cat > /etc/grml/fai/config/package_config/MIKA << EOF
570   PACKAGES aptitude
571
572   vim
573   another_name_of_a_debian_package
574   and_another_one
575   EOF
576
577 and specify it when invoking grml-live then:
578
579   # grml-live -c GRMLBASE,GRML_SMALL,I386,MIKA
580
581 I fscked up my grml-live configuration. How do I reset it to the defaults?
582 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
583
584 Notice: this deletes all your grml-live configuration files. If that's really
585 what you are searching for just run:
586
587   rm -rf /etc/grml/fai /etc/grml/grml-live.conf
588   dpkg -i --force-confnew --force-confmiss /path/to/grml-live_..._all.deb
589
590 [NOTE]
591
592 If you don't control your /etc using a version control system (VCS) yet it's a
593 good chance to start using it now. Check out
594 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/]
595 for more details how to maintain /etc using the mercurial VCS.
596
597 How do I create a base.tgz for use as NFSROOT?
598 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
599
600 First of all build the chroot system:
601
602   mkdir /tmp/nfsroot && cd /tmp/nfsroot
603   debootstrap lenny /tmp/nfsroot/ http://ftp.de.debian.org/debian
604   tar zcf base.tgz ./
605
606 Then check out where your NFSROOT is located:
607
608   # grep '^NFSROOT' /etc/grml/fai/make-fai-nfsroot.conf
609   NFSROOT=/grml/fai/nfsroot
610
611 So as /grml/fai/nfsroot is your NFSROOT place the file under
612 /grml/fai/nfsroot/live/filesystem.dir/var/tmp/:
613
614   mv base.tgz /grml/fai/nfsroot/live/filesystem.dir/var/tmp/base.tgz
615
616 or even better use /etc/grml/fai/config/basefiles/$CLASSNAME.tar.gz instead.
617 Use I386 as $CLASSNAME for i386 builds and AMD64 for amd64 builds.
618
619 Now running "grml-live ..." will use this file as main system instead of
620 executing debootstrap. Check out the output for the following lines if using
621 NFSROOT:
622
623   [...]
624   Calling task_extrbase
625   Unpacking Debian base archive
626   Extracting /grml/fai/nfsroot/live/filesystem.dir/var/tmp/base.tgz
627   Calling task_mirror
628   [...]
629
630 or if using /etc/grml/fai/config/basefiles/$CLASSNAME.tar.gz for:
631
632   [...]
633   ftar: extracting /etc/grml/fai/config/basefiles///AMD64.tar.gz to
634   /grml-live/grml-live_20071029.22138/grml_chroot//
635   [...]
636
637 Set up apt-cacher for use with grml-live
638 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
639
640 Make sure /etc/grml/grml-live.conf provides according GRML_LIVE_SOURCES and
641 FAI_DEBOOTSTRAP:
642
643   # cat /etc/grml/grml-live.conf
644   [...]
645   GRML_LIVE_SOURCES="
646   deb http://localhost:3142/deb.grml.org grml-stable  main
647   deb http://localhost:3142/deb.grml.org grml-testing main
648   deb http://localhost:3142/ftp.de.debian.org/debian lenny main contrib non-free
649   "
650   [...]
651   FAI_DEBOOTSTRAP="lenny http://localhost:3142/ftp.de.debian.org/debian lenny main contrib non-free"
652
653 Make sure apt-cacher is running (/etc/init.d/apt-cacher restart). That's it.
654 All downloaded files will be cached in /var/cache/apt-cacher/ now.
655
656 Set up approx for use with grml-live
657 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
658
659 Make sure /etc/grml/grml-live.conf provides according GRML_LIVE_SOURCES and
660 FAI_DEBOOTSTRAP:
661
662   # cat /etc/grml/grml-live.conf
663   [...]
664   GRML_LIVE_SOURCES="
665   deb http://localhost:9999/grml            grml-stable  main
666   deb http://localhost:9999/grml            grml-testing main
667   deb http://localhost:9999/debian lenny    main contrib non-free
668   "
669   FAI_DEBOOTSTRAP="lenny http://localhost:9999/debian"
670
671 Configure approx:
672
673   # cat /etc/approx/approx.conf
674   [...]
675   debian http://ftp.at.debian.org/debian
676   grml   http://deb.grml.org/
677
678 Don't forget to restart approx (/etc/init.d/approx restart). That's it.
679 All downloaded files will be cached in /var/cache/approx now.
680
681 I've a question which isn't answered by this document
682 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
683
684 Don't hesitate to ask on IRC (channel #grml on irc.freenode.org) or just drop me
685 a mail: <mika@grml.org>
686
687 Download / install grml-live as a Debian package
688 ------------------------------------------------
689
690 Debian packages are available through the grml-repository at
691 link:http://deb.grml.org/pool/main/g/grml-live/[deb.grml.org].  If you want to
692 build a Debian package on your own (using for example a specific version or the
693 current development tree), just execute:
694
695   git clone git://git.grml.org/grml-live
696   cd grml-live
697   debuild -us -uc
698
699 Source
700 ------
701
702 The source of grml-live is available at
703 link:http://git.grml.org/?p=grml-live.git[http://git.grml.org/?p=grml-live.git]
704
705 TODO list
706 ---------
707
708 Check out link:http://wiki.grml.org/doku.php?id=grml-live[grml-live in the grml-wiki]
709 for details.
710
711 Bugs
712 ----
713
714 Please report feedback, link:http://grml.org/bugs/[bugreports] and wishes
715 link:http://grml.org/contact/[to the grml-team]!
716
717 Authors
718 -------
719 Michael Prokop <mika@grml.org>
720
721 /////////////////////////////////////
722 // vim:ai tw=80 ft=asciidoc expandtab
723 /////////////////////////////////////