Clarify that we no longer support i586 but require i686+
[grml.org.git] / online-docs / grml-live.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"\r
2     "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">\r
3 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
4 <head>\r
5 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
6 <meta name="generator" content="AsciiDoc 8.2.2" />\r
7 <style type="text/css">\r
8 /* Debug borders */\r
9 p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
10 /*\r
11   border: 1px solid red;\r
12 */\r
13 }\r
14 \r
15 body {\r
16   margin: 1em 5% 1em 5%;\r
17 }\r
18 \r
19 a {\r
20   color: blue;\r
21   text-decoration: underline;\r
22 }\r
23 a:visited {\r
24   color: fuchsia;\r
25 }\r
26 \r
27 em {\r
28   font-style: italic;\r
29 }\r
30 \r
31 strong {\r
32   font-weight: bold;\r
33 }\r
34 \r
35 tt {\r
36   color: navy;\r
37 }\r
38 \r
39 h1, h2, h3, h4, h5, h6 {\r
40   color: #527bbd;\r
41   font-family: sans-serif;\r
42   margin-top: 1.2em;\r
43   margin-bottom: 0.5em;\r
44   line-height: 1.3;\r
45 }\r
46 \r
47 h1 {\r
48   border-bottom: 2px solid silver;\r
49 }\r
50 h2 {\r
51   border-bottom: 2px solid silver;\r
52   padding-top: 0.5em;\r
53 }\r
54 \r
55 div.sectionbody {\r
56   font-family: serif;\r
57   margin-left: 0;\r
58 }\r
59 \r
60 hr {\r
61   border: 1px solid silver;\r
62 }\r
63 \r
64 p {\r
65   margin-top: 0.5em;\r
66   margin-bottom: 0.5em;\r
67 }\r
68 \r
69 pre {\r
70   padding: 0;\r
71   margin: 0;\r
72 }\r
73 \r
74 span#author {\r
75   color: #527bbd;\r
76   font-family: sans-serif;\r
77   font-weight: bold;\r
78   font-size: 1.1em;\r
79 }\r
80 span#email {\r
81 }\r
82 span#revision {\r
83   font-family: sans-serif;\r
84 }\r
85 \r
86 div#footer {\r
87   font-family: sans-serif;\r
88   font-size: small;\r
89   border-top: 2px solid silver;\r
90   padding-top: 0.5em;\r
91   margin-top: 4.0em;\r
92 }\r
93 div#footer-text {\r
94   float: left;\r
95   padding-bottom: 0.5em;\r
96 }\r
97 div#footer-badges {\r
98   float: right;\r
99   padding-bottom: 0.5em;\r
100 }\r
101 \r
102 div#preamble,\r
103 div.tableblock, div.imageblock, div.exampleblock, div.verseblock,\r
104 div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,\r
105 div.admonitionblock {\r
106   margin-right: 10%;\r
107   margin-top: 1.5em;\r
108   margin-bottom: 1.5em;\r
109 }\r
110 div.admonitionblock {\r
111   margin-top: 2.5em;\r
112   margin-bottom: 2.5em;\r
113 }\r
114 \r
115 div.content { /* Block element content. */\r
116   padding: 0;\r
117 }\r
118 \r
119 /* Block element titles. */\r
120 div.title, caption.title {\r
121   font-family: sans-serif;\r
122   font-weight: bold;\r
123   text-align: left;\r
124   margin-top: 1.0em;\r
125   margin-bottom: 0.5em;\r
126 }\r
127 div.title + * {\r
128   margin-top: 0;\r
129 }\r
130 \r
131 td div.title:first-child {\r
132   margin-top: 0.0em;\r
133 }\r
134 div.content div.title:first-child {\r
135   margin-top: 0.0em;\r
136 }\r
137 div.content + div.title {\r
138   margin-top: 0.0em;\r
139 }\r
140 \r
141 div.sidebarblock > div.content {\r
142   background: #ffffee;\r
143   border: 1px solid silver;\r
144   padding: 0.5em;\r
145 }\r
146 \r
147 div.listingblock {\r
148   margin-right: 0%;\r
149 }\r
150 div.listingblock > div.content {\r
151   border: 1px solid silver;\r
152   background: #f4f4f4;\r
153   padding: 0.5em;\r
154 }\r
155 \r
156 div.quoteblock > div.content {\r
157   padding-left: 2.0em;\r
158 }\r
159 \r
160 div.attribution {\r
161   text-align: right;\r
162 }\r
163 div.verseblock + div.attribution {\r
164   text-align: left;\r
165 }\r
166 \r
167 div.admonitionblock .icon {\r
168   vertical-align: top;\r
169   font-size: 1.1em;\r
170   font-weight: bold;\r
171   text-decoration: underline;\r
172   color: #527bbd;\r
173   padding-right: 0.5em;\r
174 }\r
175 div.admonitionblock td.content {\r
176   padding-left: 0.5em;\r
177   border-left: 2px solid silver;\r
178 }\r
179 \r
180 div.exampleblock > div.content {\r
181   border-left: 2px solid silver;\r
182   padding: 0.5em;\r
183 }\r
184 \r
185 div.verseblock div.content {\r
186   white-space: pre;\r
187 }\r
188 \r
189 div.imageblock div.content { padding-left: 0; }\r
190 div.imageblock img { border: 1px solid silver; }\r
191 span.image img { border-style: none; }\r
192 \r
193 dl {\r
194   margin-top: 0.8em;\r
195   margin-bottom: 0.8em;\r
196 }\r
197 dt {\r
198   margin-top: 0.5em;\r
199   margin-bottom: 0;\r
200   font-style: italic;\r
201 }\r
202 dd > *:first-child {\r
203   margin-top: 0;\r
204 }\r
205 \r
206 ul, ol {\r
207     list-style-position: outside;\r
208 }\r
209 ol.olist2 {\r
210   list-style-type: lower-alpha;\r
211 }\r
212 \r
213 div.tableblock > table {\r
214   border: 3px solid #527bbd;\r
215 }\r
216 thead {\r
217   font-family: sans-serif;\r
218   font-weight: bold;\r
219 }\r
220 tfoot {\r
221   font-weight: bold;\r
222 }\r
223 \r
224 div.hlist {\r
225   margin-top: 0.8em;\r
226   margin-bottom: 0.8em;\r
227 }\r
228 div.hlist td {\r
229   padding-bottom: 5px;\r
230 }\r
231 td.hlist1 {\r
232   vertical-align: top;\r
233   font-style: italic;\r
234   padding-right: 0.8em;\r
235 }\r
236 td.hlist2 {\r
237   vertical-align: top;\r
238 }\r
239 \r
240 @media print {\r
241   div#footer-badges { display: none; }\r
242 }\r
243 \r
244 div#toctitle {\r
245   color: #527bbd;\r
246   font-family: sans-serif;\r
247   font-size: 1.1em;\r
248   font-weight: bold;\r
249   margin-top: 1.0em;\r
250   margin-bottom: 0.1em;\r
251 }\r
252 \r
253 div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
254   margin-top: 0;\r
255   margin-bottom: 0;\r
256 }\r
257 div.toclevel2 {\r
258   margin-left: 2em;\r
259   font-size: 0.9em;\r
260 }\r
261 div.toclevel3 {\r
262   margin-left: 4em;\r
263   font-size: 0.9em;\r
264 }\r
265 div.toclevel4 {\r
266   margin-left: 6em;\r
267   font-size: 0.9em;\r
268 }\r
269 /* Workarounds for IE6's broken and incomplete CSS2. */\r
270 \r
271 div.sidebar-content {\r
272   background: #ffffee;\r
273   border: 1px solid silver;\r
274   padding: 0.5em;\r
275 }\r
276 div.sidebar-title, div.image-title {\r
277   font-family: sans-serif;\r
278   font-weight: bold;\r
279   margin-top: 0.0em;\r
280   margin-bottom: 0.5em;\r
281 }\r
282 \r
283 div.listingblock div.content {\r
284   border: 1px solid silver;\r
285   background: #f4f4f4;\r
286   padding: 0.5em;\r
287 }\r
288 \r
289 div.quoteblock-content {\r
290   padding-left: 2.0em;\r
291 }\r
292 \r
293 div.exampleblock-content {\r
294   border-left: 2px solid silver;\r
295   padding-left: 0.5em;\r
296 }\r
297 \r
298 /* IE6 sets dynamically generated links as visited. */\r
299 div#toc a:visited { color: blue; }\r
300 </style>\r
301 <title>grml-live(8)</title>\r
302 </head>\r
303 <body>\r
304 <div id="header">\r
305 <h1>grml-live(8)</h1>\r
306 </div>\r
307 <h2>Name</h2>\r
308 <div class="sectionbody">\r
309 <p>grml-live - build framework based on FAI for generating a grml and Debian based\r
310 Linux Live system (CD/ISO)</p>\r
311 </div>\r
312 <h2>Synopsis</h2>\r
313 <div class="sectionbody">\r
314 <p>grml-live [-a &lt;architecture&gt;] [-c &lt;classe[s]&gt;] [-C &lt;configfile&gt;] [-g\r
315 &lt;grml_name&gt;] [-i &lt;iso_name&gt; ] [-o &lt;output_directory&gt;] [-r &lt;release_name&gt;] [-s\r
316 &lt;suite&gt;] [-t &lt;template_directory&gt;] [-v &lt;version_number&gt;] [-bFhuVz]</p>\r
317 <div class="admonitionblock">\r
318 <table><tr>\r
319 <td class="icon">\r
320 <img src="./images/icons/caution.png" alt="Caution" />\r
321 </td>\r
322 <td class="content">Please check out <a href="#current_state">the <em>Current state of grml-live with squashfs-tools and kernel</em> section</a> for details about current state of involved\r
323 tools before starting with grml-live or if you encounter any problems.</td>\r
324 </tr></table>\r
325 </div>\r
326 </div>\r
327 <h2>Description</h2>\r
328 <div class="sectionbody">\r
329 <p>grml-live provides the build system for creating a grml and Debian based Linux\r
330 Live-CD. The build system is based on\r
331 <a href="http://www.informatik.uni-koeln.de/fai/">FAI</a> (Fully Automatic\r
332 Installation). grml-live uses the "fai dirinstall" feature to generate a chroot\r
333 system based on the class concept of FAI (see later sections for further\r
334 details) and provides the framework to be able to generate a full-featured ISO.\r
335 It does not use all the FAI features by default though and you don't have to\r
336 know FAI to be able to use it.</p>\r
337 <p>The use of FAI gives you the flexibility to choose the packages you would like\r
338 to include on your very own Linux Live-CD without having to deal with all the\r
339 details of a build process.</p>\r
340 <div class="admonitionblock">\r
341 <table><tr>\r
342 <td class="icon">\r
343 <img src="./images/icons/caution.png" alt="Caution" />\r
344 </td>\r
345 <td class="content">grml-live does <strong>not</strong> use /etc/fai for configuration but instead\r
346 provides and uses /etc/grml/fai. This ensures that it does not clash with\r
347 default FAI configuration and packages, so you can use grml-live and FAI\r
348 completely independent at the same time!</td>\r
349 </tr></table>\r
350 </div>\r
351 <div class="admonitionblock">\r
352 <table><tr>\r
353 <td class="icon">\r
354 <img src="./images/icons/note.png" alt="Note" />\r
355 </td>\r
356 <td class="content">Please notice that you should have a fast network connection as all the Debian\r
357 packages will be downloaded and installed via network. If you want to use a\r
358 local mirror (strongly recommended if you plan to use grml-live more than once)\r
359 checkout mkdebmirror (see /usr/share/doc/grml-live/examples/mkdebmirror),\r
360 debmirror(1), reprepro(1) (see /usr/share/doc/grml-live/examples/reprepro/ for a\r
361 sample configuration), apt-cacher(1) and approx(8). To avoid downloading the\r
362 base system again and again check out FAI's NFSROOT (see FAQ of this document\r
363 for details).</td>\r
364 </tr></table>\r
365 </div>\r
366 </div>\r
367 <h2>Options</h2>\r
368 <div class="sectionbody">\r
369 <dl>\r
370 <dt>\r
371 -a <strong>ARCHITECTURE</strong>\r
372 </dt>\r
373 <dd>\r
374 <p>\r
375 Use the specified architecture instead of the currently running one.  This\r
376 allows building a 32bit system on a 64bit host (though you can't build a 64bit\r
377 system on a 32bit system/kernel of course). Please notice that real\r
378 crosscompiling (like building a ppc system on x86) isn't possible due to the\r
379 nature and the need of working in a chroot. Currently supported values: i386\r
380 and amd64.\r
381 </p>\r
382 </dd>\r
383 <dt>\r
384 -b\r
385 </dt>\r
386 <dd>\r
387 <p>\r
388 Build the ISO without updating the chroot via FAI. This option is useful for\r
389 example when working on stable releases: if you have a working base\r
390 system/chroot and do not want to execute any further updates (via "-u" option)\r
391 but intend to only build the ISO.\r
392 </p>\r
393 </dd>\r
394 <dt>\r
395 -c <strong>CLASSES</strong>\r
396 </dt>\r
397 <dd>\r
398 <p>\r
399 Specify the CLASSES to be used for building the ISO via FAI.  By default only\r
400 the classes GRMLBASE, GRML_SMALL and I386 are assumed, resulting in a small base\r
401 system (being about ~150MB total ISO size). If using a non-I386 system (like\r
402 amd64) you should specify the appropriate architecture as well. Additionally you\r
403 can specify a class providing a grml-kernel (see\r
404 <a href="#classes">the <em>CLASSES</em> section in this document</a> for details about available classes).\r
405 So instead of GRML_SMALL you can also use GRML_MEDIUM and GRML_FULL.\r
406 </p>\r
407 </dd>\r
408 <dt>\r
409 -C <strong>CONFIGURATION_FILE</strong>\r
410 </dt>\r
411 <dd>\r
412 <p>\r
413 The specified file is used as configuration file for grml-live. By default\r
414 /etc/grml/grml-live.conf is used for main configuration. If a file named\r
415 /etc/grml/grml-live.local exists it is used as well (sourced after reading\r
416 /etc/grml/grml-live.conf to allow overriding settings). As a last option the\r
417 specified configuration file is sourced so it is possible to override settings\r
418 of /etc/grml/grml-live.conf as well as of /etc/grml/grml-live.local. Please\r
419 notice that all configuration files have to be adjusted during execution of\r
420 grml-live, so please make sure you use /etc/grml/grml-live.conf as a base for\r
421 your own configuration file. Please also notice that the configuration file\r
422 specified via this option is <strong>not</strong> (yet) supported inside the\r
423 scripts/hooks/classes at /etc/grml/fai/config. Instead use\r
424 /etc/grml/grml-live.conf and/or /etc/grml/grml-live.local for configuration\r
425 stuff used inside /etc/grml/fai/config.\r
426 </p>\r
427 </dd>\r
428 <dt>\r
429 -F\r
430 </dt>\r
431 <dd>\r
432 <p>\r
433 Force execution and do not prompt for acknowledgment of configuration.\r
434 </p>\r
435 </dd>\r
436 <dt>\r
437 -g <strong>GRML_NAME</strong>\r
438 </dt>\r
439 <dd>\r
440 <p>\r
441 Set the grml flavour name. Common usage examples: grml, grml-small, grml64.\r
442 Please do NOT use blanks and any special characters like <em>/</em>, <em>;</em> inside\r
443 GRML_NAME, otherwise you might notice problems with booting.\r
444 </p>\r
445 </dd>\r
446 <dt>\r
447 -h\r
448 </dt>\r
449 <dd>\r
450 <p>\r
451 Display short usage information and exit.\r
452 </p>\r
453 </dd>\r
454 <dt>\r
455 -i <strong>ISO_NAME</strong>\r
456 </dt>\r
457 <dd>\r
458 <p>\r
459 Specify name of ISO which will be available inside $OUTPUT_DIRECTORY/grml_isos\r
460 by default.\r
461 </p>\r
462 </dd>\r
463 <dt>\r
464 -o <strong>OUTPUT_DIRECTORY</strong>\r
465 </dt>\r
466 <dd>\r
467 <p>\r
468 Main output directory of the build process of FAI.  Some directories are created\r
469 inside this target directory, being: grml_cd (where the files for creating the\r
470 ISO are located, including the compressed squashfs file), grml_chroot (the\r
471 chroot system) and grml_isos (where the resulting ISO is stored).\r
472 </p>\r
473 </dd>\r
474 <dt>\r
475 -r <strong>RELEASENAME</strong>\r
476 </dt>\r
477 <dd>\r
478 <p>\r
479 Specify name of the release.\r
480 </p>\r
481 </dd>\r
482 <dt>\r
483 -s <strong>SUITE</strong>\r
484 </dt>\r
485 <dd>\r
486 <p>\r
487 Specify the Debian suite you want to use for your live-system.  Defaults to\r
488 "etch" (being current Debian/stable). Supported values are: etch, lenny, sid.\r
489 </p>\r
490 </dd>\r
491 <dt>\r
492 -t <strong>TEMPLATE_DIRECTORY</strong>\r
493 </dt>\r
494 <dd>\r
495 <p>\r
496 Specify place of the templates used for building the ISO. By default\r
497 (and if not manually specified) this is /usr/share/grml-live/templates/.\r
498 </p>\r
499 </dd>\r
500 <dt>\r
501 -u\r
502 </dt>\r
503 <dd>\r
504 <p>\r
505 Update existing chroot instead of rebuilding it from scratch. This option is\r
506 based on the softupdate feature of FAI.\r
507 </p>\r
508 </dd>\r
509 <dt>\r
510 -v <strong>VERSION_NUMBER</strong>\r
511 </dt>\r
512 <dd>\r
513 <p>\r
514 Specify version number of the release.\r
515 </p>\r
516 </dd>\r
517 <dt>\r
518 -V\r
519 </dt>\r
520 <dd>\r
521 <p>\r
522 Increase verbosity in the build process.\r
523 </p>\r
524 </dd>\r
525 <dt>\r
526 -z\r
527 </dt>\r
528 <dd>\r
529 <p>\r
530 Use ZLIB instead of LZMA compression in mksquashfs part of the build process.\r
531 </p>\r
532 </dd>\r
533 </dl>\r
534 </div>\r
535 <h2>Usage examples</h2>\r
536 <div class="sectionbody">\r
537 <p>To get a small, Debian-stable and grml-based Live-CD using /grml/grml-live\r
538 as build and output directory just run:</p>\r
539 <div class="literalblock">\r
540 <div class="content">\r
541 <pre><tt># grml-live</tt></pre>\r
542 </div></div>\r
543 <p>To get a small Debian-unstable and grml-small based Live-CD using\r
544 /home/mika/grml-live as build and output directory just use:</p>\r
545 <div class="literalblock">\r
546 <div class="content">\r
547 <pre><tt># grml-live -s sid -c GRMLBASE,GRML_SMALL,I386 -o /home/mika/grml-live</tt></pre>\r
548 </div></div>\r
549 <p>To get a medium sized, Debian-unstable and grml-based Live-CD for i386\r
550 architecture using /grml/grml-live as build and output directory just run:</p>\r
551 <div class="literalblock">\r
552 <div class="content">\r
553 <pre><tt># grml-live -s sid -a i386 -c GRMLBASE,GRML_MEDIUM,I386</tt></pre>\r
554 </div></div>\r
555 <p>To get a small, Debian-unstable and grml-based Live-CD using /tmp as build and\r
556 output directory and use grml_0.0-3.iso as ISO name (placed inside\r
557 /tmp/grml_isos) just invoke:</p>\r
558 <div class="literalblock">\r
559 <div class="content">\r
560 <pre><tt># grml-live -o /tmp -c GRMLBASE,GRML_SMALL,I386 -s sid -i grml_0.0-3.iso</tt></pre>\r
561 </div></div>\r
562 <div class="admonitionblock">\r
563 <table><tr>\r
564 <td class="icon">\r
565 <img src="./images/icons/note.png" alt="Note" />\r
566 </td>\r
567 <td class="content">If you have about 700MB of free space inside /dev/shm (being a tmpfs, usually\r
568 you should have &gt;=1GB of RAM) just run "mount -o remount,suid,dev,rw /dev/shm"\r
569 and use /dev/shm as build and output directory - resulting in very fast build\r
570 process.  But please be aware of the fact that rebooting your system will result\r
571 in an empty /dev/shm, so please use another directory for $CHROOT_OUTPUT,\r
572 $BUILD_OUTPUT and $ISO_OUTPUT if you plan to create more persistent output. :)</td>\r
573 </tr></table>\r
574 </div>\r
575 </div>\r
576 <h2>Main features of grml-live</h2>\r
577 <div class="sectionbody">\r
578 <ul>\r
579 <li>\r
580 <p>\r
581 create a grml-/Debian-based Linux Live-CD with one single command\r
582 </p>\r
583 </li>\r
584 <li>\r
585 <p>\r
586 class based concept, providing a maximum of flexibility\r
587 </p>\r
588 </li>\r
589 <li>\r
590 <p>\r
591 supports integration of own hooks, scripts and configuration\r
592 </p>\r
593 </li>\r
594 <li>\r
595 <p>\r
596 supports use and integration of own Software and/or Kernels via simple use of\r
597 Debian repositories\r
598 </p>\r
599 </li>\r
600 <li>\r
601 <p>\r
602 native support of FAI features\r
603 </p>\r
604 </li>\r
605 <li>\r
606 <p>\r
607 multi-arch support (work in progress)\r
608 </p>\r
609 </li>\r
610 </ul>\r
611 </div>\r
612 <h2>The class concept</h2>\r
613 <div class="sectionbody">\r
614 <p>grml-live uses FAI and its class based concept for adjusting configuration and\r
615 setup according to your needs. This gives you flexibility and strength without\r
616 losing the simplicity in the build process.</p>\r
617 <p>The main and base class provided by grml-live is named GRMLBASE. It's strongly\r
618 recommended to <strong>always</strong> use the class GRMLBASE when building an ISO using\r
619 grml-live, as well as the architecture dependent class which provides the kernel\r
620 (being <em>I386</em> for x86_32 and <em>AMD64</em> for x86_64) and a GRML_* class (like\r
621 GRML_SMALL, GRML_MEDIUM or GRML_FULL). The following files and directories are\r
622 relevant for class GRMLBASE by default:</p>\r
623 <div class="literalblock">\r
624 <div class="content">\r
625 <pre><tt>/etc/grml/fai/config/scripts/GRMLBASE/\r
626 /etc/grml/fai/config/debconf/GRMLBASE\r
627 /etc/grml/fai/config/class/GRMLBASE.var\r
628 /etc/grml/fai/config/hooks/instsoft.GRMLBASE\r
629 /etc/grml/fai/config/package_config/GRMLBASE</tt></pre>\r
630 </div></div>\r
631 <p>Take a look at the next section for information about the concept of those\r
632 files/directories.</p>\r
633 <p>If you want to use your own configuration, extend an existing configuration\r
634 and/or add additional packages to your ISO just invent a new class (or extend an\r
635 existing one). For example if you want to use your own class named "FOOBAR" just\r
636 extend CLASSES="GRMLBASE,GRML_SMALL,I386" inside /etc/grml/grml-live.conf to\r
637 CLASSES="GRMLBASE,GRML_SMALL,I386,FOOBAR" or invoke grml-live using the classes\r
638 option: "grml-live -c GRMLBASE,GRML_SMALL,I386,FOOBAR &#8230;".</p>\r
639 <p>More details regarding the class concept can be found in the documentation of\r
640 FAI itself (being available at /usr/share/doc/fai-doc/).</p>\r
641 </div>\r
642 <h2><a id="classes"></a>Available classes</h2>\r
643 <div class="sectionbody">\r
644 <p>The package selection part of the classes can be found in\r
645 /etc/grml/fai/config/package_config whereas some further classes are defined for\r
646 example in /etc/grml/fai/config/scripts/ so specific feature sets can be\r
647 selected. The following classes are predefined:</p>\r
648 <ul>\r
649 <li>\r
650 <p>\r
651 DEBORPHAN: get rid of all packages listed in output of Deborphan\r
652 </p>\r
653 </li>\r
654 <li>\r
655 <p>\r
656 GRMLBASE: the main class responsible for getting a minimal subset of what's\r
657 defining a grml system. Important parts of the buildprocess are specified in\r
658 this class as well, so unless you have a really good reason you should always\r
659 use this class.\r
660 </p>\r
661 </li>\r
662 <li>\r
663 <p>\r
664 GRML_FORENSIC: tools for forensic investigations which has been created\r
665 by people from <a href="http://www.forensic-geeks.org/">forensic-geeks.org</a>.\r
666 </p>\r
667 </li>\r
668 <li>\r
669 <p>\r
670 GRML_FULL: full featured grml, also known as the "normal", full grml.\r
671 </p>\r
672 </li>\r
673 <li>\r
674 <p>\r
675 GRML_MEDIUM: medium sized grml version, known as grml-medium\r
676 </p>\r
677 </li>\r
678 <li>\r
679 <p>\r
680 GRML_POWERPC: grml for PowerPC architecture, not supported yet (still work in\r
681 progress)\r
682 </p>\r
683 </li>\r
684 <li>\r
685 <p>\r
686 GRML_SMALL: minimum sized grml version, known as grml-small\r
687 </p>\r
688 </li>\r
689 <li>\r
690 <p>\r
691 LATEX_CLEANUP: get rid of several very large LaTeX directories\r
692 (like some /usr/share/doc/texlive-*, /usr/share/doc/texmf,&#8230;)\r
693 </p>\r
694 </li>\r
695 <li>\r
696 <p>\r
697 LOCALES: use full featured locales setup (see /etc/locale.gen.grml)\r
698 </p>\r
699 </li>\r
700 <li>\r
701 <p>\r
702 NO_ONLINE: do not run scripts during the chroot build process which require a\r
703 network connection\r
704 </p>\r
705 </li>\r
706 <li>\r
707 <p>\r
708 RELEASE: run some specific scripts and commands to provide the workflow for an\r
709 official grml release\r
710 </p>\r
711 </li>\r
712 <li>\r
713 <p>\r
714 REMOVE_DOCS: get rid of documentation directories (like /usr/share/doc,\r
715 /usr/share/man/, /usr/share/info,&#8230;)\r
716 </p>\r
717 </li>\r
718 <li>\r
719 <p>\r
720 XORG: providing important packages for use with a base grml-featured X.org\r
721 setup\r
722 </p>\r
723 </li>\r
724 </ul>\r
725 </div>\r
726 <h2>Files</h2>\r
727 <div class="sectionbody">\r
728 <p>Notice that grml-live ships FAI configuration files that do not use the same\r
729 namespace as the FAI packages itself. This ensures that grml-live does not clash\r
730 with your usual FAI configuration, so instead of /etc/fai/fai.conf (package\r
731 fai-client) grml uses /etc/grml/fai/fai.conf instead. For more details see\r
732 below. To get an idea how another configuration or example files could look like\r
733 check out /usr/share/doc/fai-doc/examples/simple/ (provided by Debian package\r
734 fai-doc). Furthermore /usr/share/doc/fai-doc/fai-guide.html/ch-config.html\r
735 provides documentation regarding configuration possibilities.</p>\r
736 <div class="literalblock">\r
737 <div class="content">\r
738 <pre><tt>/usr/sbin/grml-live</tt></pre>\r
739 </div></div>\r
740 <p>Script for the main build process. Requires root permissions for execution.</p>\r
741 <div class="literalblock">\r
742 <div class="content">\r
743 <pre><tt>/etc/grml/grml-live.conf</tt></pre>\r
744 </div></div>\r
745 <p>Main configuration file for grml-live. All the important steps can be configured\r
746 at this stage.</p>\r
747 <div class="literalblock">\r
748 <div class="content">\r
749 <pre><tt>/etc/grml/fai/fai.conf</tt></pre>\r
750 </div></div>\r
751 <p>Main configuration file for FAI which specifies where all the configuration\r
752 files and scripts for FAI/grml-live can be found. By default it is set to\r
753 FAI_CONFIGDIR=/etc/grml/fai/config, a directory shipped by grml-live\r
754 out-of-the-box so you shouldn't have to configure anything in this file.</p>\r
755 <div class="literalblock">\r
756 <div class="content">\r
757 <pre><tt>/etc/grml/fai/make-fai-nfsroot.conf</tt></pre>\r
758 </div></div>\r
759 <p>This file is used by make-fai-nfsroot(8) only. Usually you don't have to change\r
760 anything inside this file. If you want to modify NFSROOT though you can adjust\r
761 it there.</p>\r
762 <div class="literalblock">\r
763 <div class="content">\r
764 <pre><tt>/etc/grml/fai/NFSROOT</tt></pre>\r
765 </div></div>\r
766 <p>This file specifies the package list for creating the NFSROOT.</p>\r
767 <div class="literalblock">\r
768 <div class="content">\r
769 <pre><tt>/etc/grml/fai/apt/sources.list</tt></pre>\r
770 </div></div>\r
771 <p>This file specifies which mirrors should be used for retreiving the Debian\r
772 packages used for creating the main chroot (including all the software you would\r
773 like to see included). If you want to use a local mirror you either have to\r
774 adjust this file or use the GRML_LIVE_SOURCES variable inside\r
775 /etc/grml/grml-live.conf which modifies /etc/grml/fai/apt/sources.list\r
776 on-the-fly then.</p>\r
777 <div class="literalblock">\r
778 <div class="content">\r
779 <pre><tt>/etc/grml/fai/config/</tt></pre>\r
780 </div></div>\r
781 <p>The main directory for configuration of FAI/grml-live. More details below.</p>\r
782 <div class="literalblock">\r
783 <div class="content">\r
784 <pre><tt>/etc/grml/fai/config/class/</tt></pre>\r
785 </div></div>\r
786 <p>This directory contains files which specify main configuration variables for the\r
787 FAI classes.</p>\r
788 <div class="literalblock">\r
789 <div class="content">\r
790 <pre><tt>/etc/grml/fai/config/debconf/</tt></pre>\r
791 </div></div>\r
792 <p>This directory provides the files for preseeding/configuration of debconf\r
793 through files.</p>\r
794 <div class="literalblock">\r
795 <div class="content">\r
796 <pre><tt>/etc/grml/fai/config/hooks/</tt></pre>\r
797 </div></div>\r
798 <p>This directory provides files for customising the build process through hooks.\r
799 Hooks are user defined programs or scripts, which are called during the\r
800 installation process.</p>\r
801 <div class="literalblock">\r
802 <div class="content">\r
803 <pre><tt>/etc/grml/fai/config/package_config/</tt></pre>\r
804 </div></div>\r
805 <p>Directory with lists of software packages to be installed or removed.  The\r
806 different classes describe what should find its way to your ISO.  When running\r
807 "grml-live -c GRMLBASE,GRML_SMALL,I386 &#8230;" only the configuration of GRMLBASE,\r
808 GRML_SMALL and and I386 will be taken. If you use <em>grml-live -c\r
809 GRMLBASE,GRML_SMALL,I386,FOOBAR &#8230;</em> then the files of GRMLBASE, GRML_SMALL,\r
810 I386 <strong>plus</strong> the files from FOOBAR will be taken. So just create a new class to\r
811 adjust the package selection according to your needs.  Please notice that the\r
812 directory GRMLBASE contains a package list defining a minimum but still\r
813 reasonable package configuration.</p>\r
814 <div class="literalblock">\r
815 <div class="content">\r
816 <pre><tt>/etc/grml/fai/config/scripts/</tt></pre>\r
817 </div></div>\r
818 <p>Scripts for customising the ISO within the build process.</p>\r
819 <div class="literalblock">\r
820 <div class="content">\r
821 <pre><tt>/etc/grml/fai/files/</tt></pre>\r
822 </div></div>\r
823 <p>This directory provides files used inside the scripts of\r
824 /etc/grml/fai/config/scripts/*. For a full documentation what happens with the\r
825 files please refer to the source of the scripts.</p>\r
826 <div class="literalblock">\r
827 <div class="content">\r
828 <pre><tt>/etc/grml/fai/live-initramfs/</tt></pre>\r
829 </div></div>\r
830 <p>This directory provides the files used for building the initramfs/initrd via\r
831 live-initramfs(8).</p>\r
832 </div>\r
833 <h2>Available log files</h2>\r
834 <div class="sectionbody">\r
835 <p>grml-live itself logs to /var/log/grml-live.log. Unless you set ZERO_LOGFILE in\r
836 /etc/grml/grml-live.conf the output is appended to the file. If you set the\r
837 ZERO_LOGFILE configuration option the logfile will be truncated on each new\r
838 invocation of grml-live.</p>\r
839 <p>The FAI part of grml-live logs to /var/log/fai/$HOSTNAME/ - so the\r
840 default being /var/log/fai/grml/.</p>\r
841 <p>If you are using the grml-live buildd you will find the logs of the grml-live\r
842 run at /var/log/grml-buildd.stdout and /var/log/grml-buildd.stderr.</p>\r
843 </div>\r
844 <h2>Requirements for the build system</h2>\r
845 <div class="sectionbody">\r
846 <ul>\r
847 <li>\r
848 <p>\r
849 any Debian based system should be sufficient (if not it's a bug, so please\r
850 send us a bug report then) [a usual <a href="http://grml.org/grml2hd/">grml2hd</a>\r
851 harddisk installation ships all you need]\r
852 </p>\r
853 </li>\r
854 <li>\r
855 <p>\r
856 enough free disk space; at least 800MB are required for a minimal grml-live\r
857 run (~400MB for the chroot [$CHROOT_OUTPUT], ~150MB for the build target\r
858 [$BUILD_OUTPUT] and ~150MB for the resulting ISO [$ISO_OUTPUT] plus some\r
859 temporary files), if you plan to use GRML_FULL you should have at least 4GB of\r
860 total free disk space\r
861 </p>\r
862 </li>\r
863 <li>\r
864 <p>\r
865 fast network access for retreiving the Debian packages used for creating the\r
866 chroot (check out "local mirror" and "NFSROOT" to workaround this problem as far\r
867 as possiblbe)\r
868 </p>\r
869 </li>\r
870 </ul>\r
871 <p>For further information see next section.</p>\r
872 </div>\r
873 <h2><a id="current_state"></a>Current state of grml-live with squashfs-tools and kernel</h2>\r
874 <div class="sectionbody">\r
875 <p>To make it easier to track problems this section documents current state of\r
876 grml-live playing together with squashfs-tools / squashfs-lzma-tools (for\r
877 building the compressed file) and the kernel version. Documentation of this\r
878 section is up2date by 27th of september 2008.</p>\r
879 <h3>System</h3>\r
880 <ul>\r
881 <li>\r
882 <p>\r
883 grml-live, version 0.9.4\r
884 </p>\r
885 </li>\r
886 <li>\r
887 <p>\r
888 building grml-medium (Debian/unstable)\r
889 </p>\r
890 </li>\r
891 <li>\r
892 <p>\r
893 software versions used in the ISO (being installed automatically, recorded\r
894 just as a reference):\r
895 </p>\r
896 <div class="literalblock">\r
897 <div class="content">\r
898 <pre><tt>ii  busybox             1:1.10.2-2          Tiny utilities for small and embedded systems\r
899 ii  initramfs-tools     0.92f.grml01        tools for generating an initramfs\r
900 ii  klibc-utils         1.5.12-2            small utilities built with klibc for early boot\r
901 ii  live-initramfs      1.139.1-2grml.01    Debian Live initramfs hook\r
902 ii  lvm2                2.02.39-2           The Linux Logical Volume Manager\r
903 ii  mdadm               2.6.7-3.1           tool to administer Linux MD arrays (software RAID)\r
904 ii  udev                0.125-6grml0        /dev/ and hotplug management daemon</tt></pre>\r
905 </div></div>\r
906 </li>\r
907 </ul>\r
908 <h3>Using squashfs-lzma-tools 3.3-1 on the build system</h3>\r
909 <p>squashfs-lzma-tools from the grml repository supports kernel 2.6.26-grml\r
910 (version &gt;=grml.05) using both lzma and zlib (-nolzma) compression. It's the\r
911 recommended package for building ISOs with grml-live currently.</p>\r
912 <h3>Using squashfs-tools 1:3.3-7 on the build system</h3>\r
913 <p>squashfs-tools 1:3.3-7 is available via Debian/unstable and Debian/testing\r
914 (lenny) pool running:</p>\r
915 <div class="literalblock">\r
916 <div class="content">\r
917 <pre><tt># aptitude install squashfs-tools=1:3.3-7</tt></pre>\r
918 </div></div>\r
919 <p>or directly via downloading the files\r
920 http://grml.org/squashfs/squashfs-tools_3.3-7_i386.deb (for x86) or\r
921 http://grml.org/squashfs/squashfs-tools_3.3-7_amd64.deb (for amd64) [both build\r
922 on and for Debian/etch but working with testing and unstable as well].</p>\r
923 <p>Please notice that squashfs-tools 1:3.3-7 does NOT support LZMA compression at\r
924 all. The -nolzma option of mksquashfs is not available therefore (even\r
925 though grml-live will deactivate it for you automatically anyway). Please\r
926 use squashfs-lzma-tools instead.</p>\r
927 <ul>\r
928 <li>\r
929 <p>\r
930 Kernel 2.6.23-grml: does NOT work, please use squashfs-tools 1:3.2r2-9exp1\r
931                     instead if you still want to use kernel 2.6.23\r
932 </p>\r
933 </li>\r
934 <li>\r
935 <p>\r
936 Kernel 2.6.26-grml: works\r
937 </p>\r
938 </li>\r
939 </ul>\r
940 <h3>Using squashfs-tools 1:3.2r2-9exp1 on the build system</h3>\r
941 <p>squashfs-tools 1:3.2r2-9exp1 is available via the grml-testing repository,\r
942 running:</p>\r
943 <div class="literalblock">\r
944 <div class="content">\r
945 <pre><tt># aptitude install squashfs-tools=1:3.2r2-9exp1</tt></pre>\r
946 </div></div>\r
947 <p>or directly via downloading the files\r
948 http://grml.org/squashfs/squashfs-tools_3.2r2-9exp1_i386.deb (for x86) or\r
949 http://grml.org/squashfs/squashfs-tools_3.2r2-9exp1_amd64.deb (for amd64).</p>\r
950 <p>Versions with ZLIB compression (SQUASHFS_OPTIONS=<em>-nolzma</em> or -z\r
951 option in grml-live cmdline):</p>\r
952 <ul>\r
953 <li>\r
954 <p>\r
955 Kernel 2.6.23-grml: works\r
956 </p>\r
957 </li>\r
958 <li>\r
959 <p>\r
960 Kernel 2.6.26-grml: works\r
961 </p>\r
962 </li>\r
963 </ul>\r
964 <p>Versions with LZMA compression:</p>\r
965 <ul>\r
966 <li>\r
967 <p>\r
968 Kernel 2.6.23-grml: works\r
969 </p>\r
970 </li>\r
971 <li>\r
972 <p>\r
973 Kernel 2.6.26-grml: does NOT work, please use zlib mode instead\r
974 </p>\r
975 </li>\r
976 </ul>\r
977 </div>\r
978 <h2>FAQ</h2>\r
979 <div class="sectionbody">\r
980 <h3>Help, I'm using Debian etch and I don't have FAI version &gt;3.2</h3>\r
981 <div class="literalblock">\r
982 <div class="content">\r
983 <pre><tt>wget http://www.informatik.uni-koeln.de/fai/download/etch/fai-client_3.2.8_all.deb \\r
984      http://www.informatik.uni-koeln.de/fai/download/etch/fai-server_3.2.8_all.deb \\r
985      http://www.informatik.uni-koeln.de/fai/download/etch/fai-doc_3.2.8_all.deb\r
986 dpkg -i fai-client_3.2.8_all.deb fai-server_3.2.8_all.deb fai-doc_3.2.8_all.deb</tt></pre>\r
987 </div></div>\r
988 <p>or check out the <a href="http://www.informatik.uni-koeln.de/fai/">FAI-homepage</a> for\r
989 further details.</p>\r
990 <h3>I've problems with the build process. How to start debugging?</h3>\r
991 <p>Check out the logs inside /var/log/fai/&#8230; If you don't have the time to debug\r
992 the problem in further detail or don't know how to proceed just send a copy of\r
993 your config, logs and the commandline with a short problem description to\r
994 &lt;mika@grml.org&gt;:</p>\r
995 <div class="literalblock">\r
996 <div class="content">\r
997 <pre><tt># history | grep grml-live &gt; /etc/grml/grml_live.cmdline\r
998 # tar zcf grml_live_problem.tar.gz /etc/grml/grml-live.conf \\r
999           /etc/grml/grml-buildd.conf /var/log/fai /etc/grml/fai</tt></pre>\r
1000 </div></div>\r
1001 <h3>Can I use my own (local) Debian mirror?</h3>\r
1002 <p>Sure. Just adjust the variables GRML_LIVE_SOURCES and FAI_DEBOOTSTRAP (if not\r
1003 already using NFSROOT's base.tgz) inside /etc/grml/grml-live.conf according to\r
1004 your needs. Please don't forget that you should use the grml servers as well\r
1005 (see default configuration) so all the grml packages can be downloaded as well.</p>\r
1006 <p>If you want to use a local (for example NFS mount) mirror additionally, just\r
1007 adjust MIRROR_DIRECTORY and MIRROR_SOURCES inside /etc/grml/grml-live.conf as\r
1008 well.</p>\r
1009 <p>Unless you specify GRML_LIVE_SOURCES and/or FAI_DEBOOTSTRAP the default from\r
1010 /etc/grml/fai/apt/sources.list and /etc/grml/fai/make-fai-nfsroot.conf will be\r
1011 taken. If you customise the variables in /etc/grml/grml-live.conf then the two\r
1012 files will be adjusted during runtime automatically.</p>\r
1013 <p>If MIRROR_DIRECTORY and MIRROR_SOURCES are specified the local mirror will be\r
1014 taken as first entry in the generated sources.list so it's prefered over\r
1015 non-local mirrors. Using a fallback mirror (via providing several mirrors in\r
1016 GRML_LIVE_SOURCES as used by default) is a recommended setting.</p>\r
1017 <h3>How do I add additional Debian package(s) to my CD/ISO?</h3>\r
1018 <p>Just create a new class (using the package_config directory):</p>\r
1019 <div class="literalblock">\r
1020 <div class="content">\r
1021 <pre><tt># cat &gt; /etc/grml/fai/config/package_config/MIKA &lt;&lt; EOF\r
1022 PACKAGES aptitude</tt></pre>\r
1023 </div></div>\r
1024 <div class="literalblock">\r
1025 <div class="content">\r
1026 <pre><tt>vim\r
1027 another_name_of_a_debian_package\r
1028 and_another_one\r
1029 EOF</tt></pre>\r
1030 </div></div>\r
1031 <p>and specify it when invoking grml-live then:</p>\r
1032 <div class="literalblock">\r
1033 <div class="content">\r
1034 <pre><tt># grml-live -c GRMLBASE,GRML_SMALL,I386,MIKA</tt></pre>\r
1035 </div></div>\r
1036 <h3>I fscked up my grml-live configuration. How do I reset it to the defaults?</h3>\r
1037 <p>Notice: this deletes all your grml-live configuration files. If that's really\r
1038 what you are searching for just run:</p>\r
1039 <div class="literalblock">\r
1040 <div class="content">\r
1041 <pre><tt>rm -rf /etc/grml/fai /etc/grml/grml-live.conf\r
1042 dpkg -i --force-confnew --force-confmiss /path/to/grml-live_..._all.deb</tt></pre>\r
1043 </div></div>\r
1044 <div class="admonitionblock">\r
1045 <table><tr>\r
1046 <td class="icon">\r
1047 <img src="./images/icons/note.png" alt="Note" />\r
1048 </td>\r
1049 <td class="content">If you don't control your /etc using a version control system (VCS) yet it's a\r
1050 good chance to start using it now. Check out\r
1051 <a href="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/</a>\r
1052 for more details how to maintain /etc using the mercurial VCS.</td>\r
1053 </tr></table>\r
1054 </div>\r
1055 <h3>How do I create a base.tgz for use as NFSROOT?</h3>\r
1056 <p>First of all build the chroot system:</p>\r
1057 <div class="literalblock">\r
1058 <div class="content">\r
1059 <pre><tt>mkdir /tmp/nfsroot &amp;&amp; cd /tmp/nfsroot\r
1060 debootstrap etch /tmp/nfsroot/ http://ftp.de.debian.org/debian\r
1061 tar zcf base.tgz ./</tt></pre>\r
1062 </div></div>\r
1063 <p>Then check out where your NFSROOT is located:</p>\r
1064 <div class="literalblock">\r
1065 <div class="content">\r
1066 <pre><tt># grep '^NFSROOT' /etc/grml/fai/make-fai-nfsroot.conf\r
1067 NFSROOT=/grml/fai/nfsroot</tt></pre>\r
1068 </div></div>\r
1069 <p>So as /grml/fai/nfsroot is your NFSROOT place the file under\r
1070 /grml/fai/nfsroot/live/filesystem.dir/var/tmp/:</p>\r
1071 <div class="literalblock">\r
1072 <div class="content">\r
1073 <pre><tt>mv base.tgz /grml/fai/nfsroot/live/filesystem.dir/var/tmp/base.tgz</tt></pre>\r
1074 </div></div>\r
1075 <p>or even better use /etc/grml/fai/config/basefiles/$CLASSNAME.tar.gz instead.\r
1076 Use I386 as $CLASSNAME for i386 builds and AMD64 for amd64 builds.</p>\r
1077 <p>Now running "grml-live &#8230;" will use this file as main system instead of\r
1078 executing debootstrap. Check out the output for the following lines if using\r
1079 NFSROOT:</p>\r
1080 <div class="literalblock">\r
1081 <div class="content">\r
1082 <pre><tt>[...]\r
1083 Calling task_extrbase\r
1084 Unpacking Debian base archive\r
1085 Extracting /grml/fai/nfsroot/live/filesystem.dir/var/tmp/base.tgz\r
1086 Calling task_mirror\r
1087 [...]</tt></pre>\r
1088 </div></div>\r
1089 <p>or if using /etc/grml/fai/config/basefiles/$CLASSNAME.tar.gz for:</p>\r
1090 <div class="literalblock">\r
1091 <div class="content">\r
1092 <pre><tt>[...]\r
1093 ftar: extracting /etc/grml/fai/config/basefiles///AMD64.tar.gz to\r
1094 /grml-live/grml-live_20071029.22138/grml_chroot//\r
1095 [...]</tt></pre>\r
1096 </div></div>\r
1097 <h3>Set up apt-cacher for use with grml-live</h3>\r
1098 <p>Make sure /etc/grml/grml-live.conf provides according GRML_LIVE_SOURCES and\r
1099 FAI_DEBOOTSTRAP:</p>\r
1100 <div class="literalblock">\r
1101 <div class="content">\r
1102 <pre><tt># cat /etc/grml/grml-live.conf\r
1103 [...]\r
1104 GRML_LIVE_SOURCES="\r
1105 deb http://localhost:3142/deb.grml.org grml-stable  main\r
1106 deb http://localhost:3142/deb.grml.org grml-testing main\r
1107 deb http://localhost:3142/ftp.de.debian.org/debian etch main contrib non-free\r
1108 "\r
1109 [...]\r
1110 FAI_DEBOOTSTRAP="etch http://localhost:3142/ftp.de.debian.org/debian etch main contrib non-free"</tt></pre>\r
1111 </div></div>\r
1112 <p>Make sure apt-cacher is running (/etc/init.d/apt-cacher restart). That's it.\r
1113 All downloaded files will be cached in /var/cache/apt-cacher/ now.</p>\r
1114 <h3>Set up approx for use with grml-live</h3>\r
1115 <p>Make sure /etc/grml/grml-live.conf provides according GRML_LIVE_SOURCES and\r
1116 FAI_DEBOOTSTRAP:</p>\r
1117 <div class="literalblock">\r
1118 <div class="content">\r
1119 <pre><tt># cat /etc/grml/grml-live.conf\r
1120 [...]\r
1121 GRML_LIVE_SOURCES="\r
1122 deb http://localhost:9999/grml            grml-stable  main\r
1123 deb http://localhost:9999/grml            grml-testing main\r
1124 deb http://localhost:9999/debian etch     main contrib non-free\r
1125 "\r
1126 FAI_DEBOOTSTRAP="etch http://localhost:9999/debian"</tt></pre>\r
1127 </div></div>\r
1128 <p>Configure approx:</p>\r
1129 <div class="literalblock">\r
1130 <div class="content">\r
1131 <pre><tt># cat /etc/approx/approx.conf\r
1132 [...]\r
1133 debian http://ftp.at.debian.org/debian\r
1134 grml   http://deb.grml.org/</tt></pre>\r
1135 </div></div>\r
1136 <p>Don't forget to restart approx (/etc/init.d/approx restart). That's it.\r
1137 All downloaded files will be cached in /var/cache/approx now.</p>\r
1138 <h3>I've a question which isn't answered by this document</h3>\r
1139 <p>Don't hesitate to ask on IRC (channel #grml on irc.freenode.org) or just drop me\r
1140 a mail: &lt;mika@grml.org&gt;</p>\r
1141 </div>\r
1142 <h2>Download / install grml-live as a Debian package</h2>\r
1143 <div class="sectionbody">\r
1144 <p>Debian packages are available through the grml-repository at\r
1145 <a href="http://deb.grml.org/pool/main/g/grml-live/">deb.grml.org</a>.  If you want to\r
1146 build a Debian package on your own (using for example a specific version or the\r
1147 current development tree), just execute:</p>\r
1148 <div class="literalblock">\r
1149 <div class="content">\r
1150 <pre><tt>hg clone http://hg.grml.org/grml-live\r
1151 cd grml-live\r
1152 debuild -us -uc</tt></pre>\r
1153 </div></div>\r
1154 </div>\r
1155 <h2>Source</h2>\r
1156 <div class="sectionbody">\r
1157 <p>The source of grml-live is available at\r
1158 <a href="http://hg.grml.org/grml-live/">http://hg.grml.org/grml-live/</a></p>\r
1159 </div>\r
1160 <h2>TODO list</h2>\r
1161 <div class="sectionbody">\r
1162 <p>Check out <a href="http://wiki.grml.org/doku.php?id=grml-live">grml-live@grml-wiki</a>\r
1163 for details.</p>\r
1164 </div>\r
1165 <h2>Bugs</h2>\r
1166 <div class="sectionbody">\r
1167 <p>Please report feedback, <a href="http://grml.org/bugs/">bugreports</a> and wishes\r
1168 <a href="http://grml.org/contact/">to the grml-team</a>!</p>\r
1169 </div>\r
1170 <h2>Authors</h2>\r
1171 <div class="sectionbody">\r
1172 <p>Michael Prokop &lt;mika@grml.org&gt;</p>\r
1173 </div>\r
1174 <div id="footer">\r
1175 <div id="footer-text">\r
1176 Last updated 29-Sep-2008 04:31:50 CEST\r
1177 </div>\r
1178 </div>\r
1179 </body>\r
1180 </html>\r