press: add linux-magazin.de URL
[grml.org.git] / grml-live / index.html
index a3cd5ca..f01c64b 100644 (file)
@@ -3,7 +3,7 @@
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
 <head>\r
 <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 8.6.6" />\r
+<meta name="generator" content="AsciiDoc 8.6.9" />\r
 <title>grml-live(8)</title>\r
 <style type="text/css">\r
 /* Shared CSS for AsciiDoc xhtml11 and html5 backends */\r
@@ -87,10 +87,16 @@ ul, ol, li > p {
 ul > li     { color: #aaa; }\r
 ul > li > * { color: black; }\r
 \r
-pre {\r
+.monospaced, code, pre {\r
+  font-family: "Courier New", Courier, monospace;\r
+  font-size: inherit;\r
+  color: navy;\r
   padding: 0;\r
   margin: 0;\r
 }\r
+pre {\r
+  white-space: pre-wrap;\r
+}\r
 \r
 #author {\r
   color: #527bbd;\r
@@ -219,7 +225,7 @@ div.exampleblock > div.content {
 }\r
 \r
 div.imageblock div.content { padding-left: 0; }\r
-span.image img { border-style: none; }\r
+span.image img { border-style: none; vertical-align: text-bottom; }\r
 a.image:visited { color: white; }\r
 \r
 dl {\r
@@ -349,7 +355,7 @@ div.colist td img {
   margin-bottom: 0.1em;\r
 }\r
 \r
-div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
   margin-top: 0;\r
   margin-bottom: 0;\r
 }\r
@@ -407,18 +413,14 @@ span.underline { text-decoration: underline; }
 span.overline { text-decoration: overline; }\r
 span.line-through { text-decoration: line-through; }\r
 \r
+div.unbreakable { page-break-inside: avoid; }\r
+\r
 \r
 /*\r
  * xhtml11 specific\r
  *\r
  * */\r
 \r
-tt {\r
-  font-family: monospace;\r
-  font-size: inherit;\r
-  color: navy;\r
-}\r
-\r
 div.tableblock {\r
   margin-top: 1.0em;\r
   margin-bottom: 1.5em;\r
@@ -452,12 +454,6 @@ div.tableblock > table[frame="vsides"] {
  *\r
  * */\r
 \r
-.monospaced {\r
-  font-family: monospace;\r
-  font-size: inherit;\r
-  color: navy;\r
-}\r
-\r
 table.tableblock {\r
   margin-top: 1.0em;\r
   margin-bottom: 1.5em;\r
@@ -537,6 +533,8 @@ body.manpage div.sectionbody {
 @media print {\r
   body.manpage div#toc { display: none; }\r
 }\r
+\r
+\r
 </style>\r
 <script type="text/javascript">\r
 /*<![CDATA[*/\r
@@ -581,7 +579,7 @@ toc: function (toclevels) {
 \r
   function tocEntries(el, toclevels) {\r
     var result = new Array;\r
-    var re = new RegExp('[hH]([2-'+(toclevels+1)+'])');\r
+    var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');\r
     // Function that scans the DOM tree for header elements (the DOM2\r
     // nodeIterator API would be a better technique but not supported by all\r
     // browsers).\r
@@ -610,7 +608,7 @@ toc: function (toclevels) {
   var i;\r
   for (i = 0; i < toc.childNodes.length; i++) {\r
     var entry = toc.childNodes[i];\r
-    if (entry.nodeName == 'div'\r
+    if (entry.nodeName.toLowerCase() == 'div'\r
      && entry.getAttribute("class")\r
      && entry.getAttribute("class").match(/^toclevel/))\r
       tocEntriesToRemove.push(entry);\r
@@ -656,7 +654,7 @@ footnotes: function () {
   var entriesToRemove = [];\r
   for (i = 0; i < noteholder.childNodes.length; i++) {\r
     var entry = noteholder.childNodes[i];\r
-    if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote")\r
+    if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")\r
       entriesToRemove.push(entry);\r
   }\r
   for (i = 0; i < entriesToRemove.length; i++) {\r
@@ -756,7 +754,7 @@ Linux Live system (CD/ISO)</p></div>
 -e &lt;extract_iso_name&gt;] [-g &lt;grml_name&gt;] [-i &lt;iso_name&gt;] [\r
 -o &lt;output_directory&gt;] [-r &lt;release_name&gt;] [-s &lt;suite&gt;] [\r
 -t &lt;template_directory&gt;] [-v &lt;version_number&gt;] [-U &lt;username&gt;] [\r
--AbBFnNqQuVz]</p></div>\r
+-w &lt;date&gt;] [-AbBFnNqQuVz]</p></div>\r
 </div>\r
 </div>\r
 <div class="sect1">\r
@@ -1041,9 +1039,10 @@ Specify name of the release.
 </dt>\r
 <dd>\r
 <p>\r
-Specify the Debian suite you want to use for your live-system.  Defaults to\r
-"squeeze" (being current Debian/stable). Supported values are: etch, lenny,\r
-squeeze, sid. Debian "squeeze" requires a recent base.tgz\r
+Specify the Debian suite you want to use for your live-system. If unset defaults\r
+to "testing". Supported values are: stable, testing, unstable (or their\r
+corresponding release names like "jessie"). Please be aware that recent Debian\r
+suites might require a recent base.tgz\r
 debootstrap.\r
 </p>\r
 </dd>\r
@@ -1090,6 +1089,26 @@ Increase verbosity in the build process.
 </p>\r
 </dd>\r
 <dt class="hdlist1">\r
+-w <strong>DATE</strong>\r
+</dt>\r
+<dd>\r
+<p>\r
+The wayback machine. Build the system using Debian archives from the specified\r
+date.  Valid date formats are yyyymmddThhmmssZ or simply yyyymmdd.  To learn\r
+which snapshots exist, i.e. which date strings are valid, simply browse the\r
+lists on <a href="http://snapshot.debian.org/">http://snapshot.debian.org/</a>.  If there is no import at the exact time\r
+you specified you will get the latest available timestamp which is before the\r
+time you specified.\r
+This option is useful especially for release and debugging builds - for example\r
+if you know that the Debian archive was in a good state on a specific date but\r
+you want to build it on another day in the future, where the archive might not\r
+be as needed anymore. Please be aware that this is restricted to the plain\r
+Debian repositories only, as referred to in /etc/apt/sources.list.d/debian.list\r
+(so neither the Grml repositories nor any further custom ones are affected by\r
+the wayback machine).\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
 -z\r
 </dt>\r
 <dd>\r
@@ -1107,14 +1126,14 @@ Use ZLIB instead of LZMA/XZ compression in mksquashfs part of the build process.
 as build and output directory just run:</p></div>\r
 <div class="literalblock">\r
 <div class="content">\r
-<pre><tt># grml-live</tt></pre>\r
+<pre><code># grml-live</code></pre>\r
 </div></div>\r
 <div class="paragraph"><p>To get a 64bit Debian-testing and grml-small based Live-CD using /srv/grml-live\r
 as build and output directory use the following command line on your amd64\r
 system:</p></div>\r
 <div class="literalblock">\r
 <div class="content">\r
-<pre><tt># grml-live -s testing -c GRMLBASE,GRML_SMALL,AMD64 -o /srv/grml-live</tt></pre>\r
+<pre><code># grml-live -s testing -c GRMLBASE,GRML_SMALL,AMD64 -o /srv/grml-live</code></pre>\r
 </div></div>\r
 <div class="admonitionblock">\r
 <table><tr>\r
@@ -1172,15 +1191,15 @@ losing the simplicity in the build process.</p></div>
 recommended to <strong>always</strong> use the class GRMLBASE when building an ISO using\r
 grml-live, as well as the architecture dependent class which provides the kernel\r
 (being <em>I386</em> for x86_32 and <em>AMD64</em> for x86_64) and a GRML_* class (like\r
-GRML_SMALL, GRML_MEDIUM or GRML_FULL). The following files and directories are\r
+GRML_SMALL or GRML_FULL). The following files and directories are\r
 relevant for class GRMLBASE by default:</p></div>\r
 <div class="literalblock">\r
 <div class="content">\r
-<pre><tt>${GRML_FAI_CONFIG}/config/scripts/GRMLBASE/\r
+<pre><code>${GRML_FAI_CONFIG}/config/scripts/GRMLBASE/\r
 ${GRML_FAI_CONFIG}/config/debconf/GRMLBASE\r
 ${GRML_FAI_CONFIG}/config/class/GRMLBASE.var\r
 ${GRML_FAI_CONFIG}/config/hooks/instsoft.GRMLBASE\r
-${GRML_FAI_CONFIG}/config/package_config/GRMLBASE</tt></pre>\r
+${GRML_FAI_CONFIG}/config/package_config/GRMLBASE</code></pre>\r
 </div></div>\r
 <div class="paragraph"><p>Take a look at the next section for information about the concept of those\r
 files/directories.</p></div>\r
@@ -1207,6 +1226,13 @@ DEBORPHAN: get rid of all packages listed in output of deborphan
 </li>\r
 <li>\r
 <p>\r
+FRESHCLAM: execute freshclam (if it&#8217;s present) to update clamav definitions\r
+(increases resulting ISO size ~70MB). By default it&#8217;s skipped to avoid bigger\r
+ISO size.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
 GRMLBASE: the main class responsible for getting a minimal subset of what&#8217;s\r
 defining a Grml system. Important parts of the buildprocess are specified in\r
 this class as well, so unless you have a really good reason you should always\r
@@ -1216,29 +1242,17 @@ use this class.
 <li>\r
 <p>\r
 GRML_FULL: full featured Grml, also known as the "normal", full grml as\r
-introduced in December 2011 (~350MB ISO size).\r
-</p>\r
-</li>\r
-<li>\r
-<p>\r
-GRML_MEDIUM: medium sized Grml version, used to be known as grml-medium\r
-until December 2011 (~220MB ISO size).\r
+introduced in December 2011 (~460MB ISO size).\r
 </p>\r
 </li>\r
 <li>\r
 <p>\r
-GRML_SMALL: minimum sized Grml version, known as grml-small (~110MB ISO\r
+GRML_SMALL: minimum sized Grml version, known as grml-small (~230MB ISO\r
 size).\r
 </p>\r
 </li>\r
 <li>\r
 <p>\r
-GRML_XL: large size Grml version, used to be known as "full grml" until\r
-December 2011 (~700MB ISO size).\r
-</p>\r
-</li>\r
-<li>\r
-<p>\r
 LATEX: LaTeX(-related) packages like auctex, texlive,&#8230;\r
 (which used to be shipped by grml before the LaTeX removal)\r
 </p>\r
@@ -1301,19 +1315,19 @@ fai-doc). Furthermore /usr/share/doc/fai-doc/fai-guide.html/ch-config.html
 provides documentation regarding configuration possibilities.</p></div>\r
 <div class="literalblock">\r
 <div class="content">\r
-<pre><tt>/usr/sbin/grml-live</tt></pre>\r
+<pre><code>/usr/sbin/grml-live</code></pre>\r
 </div></div>\r
 <div class="paragraph"><p>Script for the main build process. Requires root permissions for execution.</p></div>\r
 <div class="literalblock">\r
 <div class="content">\r
-<pre><tt>/etc/grml/grml-live.conf</tt></pre>\r
+<pre><code>/etc/grml/grml-live.conf</code></pre>\r
 </div></div>\r
 <div class="paragraph"><p>Main configuration file for grml-live which should be considered as a reference\r
 configuration file only. Please use /etc/grml/grml-live.local for local\r
 configuration instead.</p></div>\r
 <div class="literalblock">\r
 <div class="content">\r
-<pre><tt>/etc/grml/grml-live.local</tt></pre>\r
+<pre><code>/etc/grml/grml-live.local</code></pre>\r
 </div></div>\r
 <div class="paragraph"><p>All the local configuration should go to this file. This file overrides any\r
 defaults of grml-live. Configurations via /etc/grml/grml-live.local are preferred\r
@@ -1322,7 +1336,7 @@ from /etc/grml/grml-live.local as well you have to specify them on the grml-live
 commandline.</p></div>\r
 <div class="literalblock">\r
 <div class="content">\r
-<pre><tt>${GRML_FAI_CONFIG}/fai.conf</tt></pre>\r
+<pre><code>${GRML_FAI_CONFIG}/fai.conf</code></pre>\r
 </div></div>\r
 <div class="paragraph"><p>Main configuration file for FAI which specifies where all the configuration\r
 files and scripts for FAI/grml-live can be found. By default the configuration\r
@@ -1332,43 +1346,31 @@ grml-live out-of-the-box so you shouldn&#8217;t have to configure anything in th
 file.</p></div>\r
 <div class="literalblock">\r
 <div class="content">\r
-<pre><tt>${GRML_FAI_CONFIG}/make-fai-nfsroot.conf</tt></pre>\r
-</div></div>\r
-<div class="paragraph"><p>This file is used by make-fai-nfsroot(8) only. Usually you don&#8217;t have to change\r
-anything inside this file. If you want to modify NFSROOT though you can adjust\r
-it there.</p></div>\r
-<div class="literalblock">\r
-<div class="content">\r
-<pre><tt>${GRML_FAI_CONFIG}/NFSROOT</tt></pre>\r
-</div></div>\r
-<div class="paragraph"><p>This file specifies the package list for creating the NFSROOT.</p></div>\r
-<div class="literalblock">\r
-<div class="content">\r
-<pre><tt>${GRML_FAI_CONFIG}/config/</tt></pre>\r
+<pre><code>${GRML_FAI_CONFIG}/config/</code></pre>\r
 </div></div>\r
 <div class="paragraph"><p>The main directory for configuration of FAI/grml-live. More details below.</p></div>\r
 <div class="literalblock">\r
 <div class="content">\r
-<pre><tt>${GRML_FAI_CONFIG}/config/class/</tt></pre>\r
+<pre><code>${GRML_FAI_CONFIG}/config/class/</code></pre>\r
 </div></div>\r
 <div class="paragraph"><p>This directory contains files which specify main configuration variables for the\r
 FAI classes.</p></div>\r
 <div class="literalblock">\r
 <div class="content">\r
-<pre><tt>${GRML_FAI_CONFIG}/config/debconf/</tt></pre>\r
+<pre><code>${GRML_FAI_CONFIG}/config/debconf/</code></pre>\r
 </div></div>\r
 <div class="paragraph"><p>This directory provides the files for preseeding/configuration of debconf\r
 through files.</p></div>\r
 <div class="literalblock">\r
 <div class="content">\r
-<pre><tt>${GRML_FAI_CONFIG}/config/hooks/</tt></pre>\r
+<pre><code>${GRML_FAI_CONFIG}/config/hooks/</code></pre>\r
 </div></div>\r
 <div class="paragraph"><p>This directory provides files for customising the build process through hooks.\r
 Hooks are user defined programs or scripts, which are called during the\r
 installation process.</p></div>\r
 <div class="literalblock">\r
 <div class="content">\r
-<pre><tt>${GRML_FAI_CONFIG}/config/package_config/</tt></pre>\r
+<pre><code>${GRML_FAI_CONFIG}/config/package_config/</code></pre>\r
 </div></div>\r
 <div class="paragraph"><p>Directory with lists of software packages to be installed or removed.  The\r
 different classes describe what should find its way to your ISO.  When running\r
@@ -1381,12 +1383,12 @@ directory GRMLBASE contains a package list defining a minimum but still
 reasonable package configuration.</p></div>\r
 <div class="literalblock">\r
 <div class="content">\r
-<pre><tt>${GRML_FAI_CONFIG}/config/scripts/</tt></pre>\r
+<pre><code>${GRML_FAI_CONFIG}/config/scripts/</code></pre>\r
 </div></div>\r
 <div class="paragraph"><p>Scripts for customising the ISO within the build process.</p></div>\r
 <div class="literalblock">\r
 <div class="content">\r
-<pre><tt>${GRML_FAI_CONFIG}/live-initramfs/</tt></pre>\r
+<pre><code>${GRML_FAI_CONFIG}/live-initramfs/</code></pre>\r
 </div></div>\r
 <div class="paragraph"><p>This directory provides the files used for building the initramfs/initrd via\r
 live-initramfs(8).</p></div>\r
@@ -1424,8 +1426,7 @@ total free disk space
 <li>\r
 <p>\r
 fast network access for retrieving the Debian packages used for creating the\r
-chroot (check out "local mirror" and "NFSROOT" to workaround this problem as far\r
-as possible)\r
+chroot (check out "local mirror" to workaround this problem as far as possible)\r
 </p>\r
 </li>\r
 </ul></div>\r
@@ -1435,9 +1436,8 @@ as possible)
 <div class="sect1">\r
 <h2 id="current_state">12. Current state of grml-live with squashfs-tools and kernel</h2>\r
 <div class="sectionbody">\r
-<div class="paragraph"><p>Use squashfs-tools &gt;=4.2-1 (available from Grml repositories as well as from\r
-Debian/testing and Debian/unstable) to build Grml (based) ISOs featuring kernel\r
-version 2.6.38-grml[64] or newer.</p></div>\r
+<div class="paragraph"><p>Use squashfs-tools &gt;=4.2-1 to build Grml (based) ISOs featuring kernel version\r
+2.6.38-grml[64] or newer.</p></div>\r
 </div>\r
 </div>\r
 <div class="sect1">\r
@@ -1448,53 +1448,51 @@ version 2.6.38-grml[64] or newer.</p></div>
 <div class="paragraph"><p>The easiest way to get a running grml-live setup is to just use Grml.\r
 Of course using grml-live on a plain, original Debian installation is supported\r
 as well. So there we go.</p></div>\r
-<div class="paragraph"><p>What we have: plain, original Debian squeeze (6.0) with debian-backports\r
-enabled. (This is important for squashfs-tools.)</p></div>\r
-<div class="paragraph"><p>What we want: build a Grml ISO based on Debian/wheezy for the amd64 architecture\r
+<div class="paragraph"><p>What we have: plain, original Debian jessie (8.x).</p></div>\r
+<div class="paragraph"><p>What we want: build a Grml ISO based on Debian/jessie for the amd64 architecture\r
 using grml-live.</p></div>\r
 <div class="sect3">\r
 <h4 id="_instructions">13.1.1. Instructions</h4>\r
 <div class="literalblock">\r
 <div class="content">\r
-<pre><tt># adjust sources.list:\r
-cat &gt;&gt; /etc/apt/sources.list &lt;&lt; EOF</tt></pre>\r
+<pre><code># adjust sources.list:\r
+cat &gt;&gt; /etc/apt/sources.list &lt;&lt; EOF</code></pre>\r
 </div></div>\r
 <div class="literalblock">\r
 <div class="content">\r
-<pre><tt># grml stable repository:\r
+<pre><code># grml stable repository:\r
   deb     http://deb.grml.org/ grml-stable  main\r
-# deb-src http://deb.grml.org/ grml-stable  main</tt></pre>\r
+# deb-src http://deb.grml.org/ grml-stable  main</code></pre>\r
 </div></div>\r
 <div class="literalblock">\r
 <div class="content">\r
-<pre><tt># grml testing/development repository:\r
+<pre><code># grml testing/development repository:\r
   deb     http://deb.grml.org/ grml-testing main\r
 # deb-src http://deb.grml.org/ grml-testing main\r
-EOF</tt></pre>\r
+EOF</code></pre>\r
 </div></div>\r
 <div class="literalblock">\r
 <div class="content">\r
-<pre><tt># get keyring for apt:\r
+<pre><code># get keyring for apt:\r
 apt-get update\r
-apt-get --allow-unauthenticated install grml-debian-keyring</tt></pre>\r
+apt-get --allow-unauthenticated install grml-debian-keyring</code></pre>\r
 </div></div>\r
 <div class="literalblock">\r
 <div class="content">\r
-<pre><tt># optionally(!) install basefile so we don't have to build basic\r
+<pre><code># optionally(!) install basefile so we don't have to build basic\r
 # chroot from scratch, grab from http://daily.grml.org/\r
 # mkdir -p /etc/grml/fai/config/basefiles/\r
 # mv I386.tar.gz /etc/grml/fai/config/basefiles/\r
-# mv AMD64.tar.gz /etc/grml/fai/config/basefiles/</tt></pre>\r
+# mv AMD64.tar.gz /etc/grml/fai/config/basefiles/</code></pre>\r
 </div></div>\r
 <div class="literalblock">\r
 <div class="content">\r
-<pre><tt># install relevant tools\r
-apt-get install -t squeeze-backports squashfs-tools\r
-apt-get --no-install-recommends install grml-live</tt></pre>\r
+<pre><code># install relevant tools\r
+apt-get --no-install-recommends install grml-live</code></pre>\r
 </div></div>\r
 <div class="literalblock">\r
 <div class="content">\r
-<pre><tt># adjust grml-live configuration for our needs:\r
+<pre><code># adjust grml-live configuration for our needs:\r
 cat &gt; /etc/grml/grml-live.local &lt;&lt; EOF\r
 ## want a faster build process and don't need smaller ISOs?\r
 ## if so use zlib compression\r
@@ -1505,31 +1503,31 @@ cat &gt; /etc/grml/grml-live.local &lt;&lt; EOF
 # CHROOT_INSTALL="/etc/grml/fai/chroot_install"\r
 ## adjust if necessary (defaults to /grml/grml-live):\r
 ## OUTPUT="/srv/grml-live"\r
-FAI_DEBOOTSTRAP="wheezy http://cdn.debian.net/debian/"\r
+FAI_DEBOOTSTRAP="jessie http://ftp.debian.org/debian/"\r
 # ARCH="amd64"\r
 CLASSES="GRMLBASE,GRML_FULL,AMD64"\r
-EOF</tt></pre>\r
+EOF</code></pre>\r
 </div></div>\r
 <div class="literalblock">\r
 <div class="content">\r
-<pre><tt># just optional(!) - upgrade FAI to latest available version:\r
-cat &gt;&gt; /etc/apt/sources.list &lt;&lt; EOF\r
-# fai:\r
-  deb http://fai-project.org/download squeeze koeln\r
-EOF</tt></pre>\r
+<pre><code># just optional(!) - upgrade FAI to latest available version:\r
+cat &gt;&gt; /etc/apt/sources.list.d/fai.list &lt;&lt; EOF\r
+deb     http://jenkins.grml.org/debian fai main\r
+deb-src http://jenkins.grml.org/debian fai main\r
+EOF</code></pre>\r
 </div></div>\r
 <div class="literalblock">\r
 <div class="content">\r
-<pre><tt># get gpg key of FAI repos and install current FAI version:\r
-gpg -a --recv-keys AB9B66FD; gpg -a --export AB9B66FD | apt-key add -\r
+<pre><code># get gpg key of FAI repos and install current FAI version:\r
+wget -O - http://jenkins.grml.org/debian/C525F56752D4A654.asc | sudo apt-key add -\r
 apt-get update\r
-apt-get install fai-client fai-server fai-doc</tt></pre>\r
+apt-get install fai-client fai-server fai-doc</code></pre>\r
 </div></div>\r
 <div class="paragraph"><p>That&#8217;s it. Now invoking <em>grml-live -V</em> should build the ISO.  If everything\r
 worked as expected the last line of the shell output should look like:</p></div>\r
 <div class="literalblock">\r
 <div class="content">\r
-<pre><tt>[*] Successfully finished execution of grml-live [running 687 seconds]</tt></pre>\r
+<pre><code>[*] Successfully finished execution of grml-live [running 687 seconds]</code></pre>\r
 </div></div>\r
 <div class="paragraph"><p>and the ISO can be found inside /grml-live/grml-live/grml_isos/ then.</p></div>\r
 </div>\r
@@ -1560,17 +1558,17 @@ under <em>/</em> in the chroot - so you have to create the rootfs structure on y
 own. Usage example:</p></div>\r
 <div class="literalblock">\r
 <div class="content">\r
-<pre><tt>echo "CHROOT_INSTALL=\$GRML_FAI_CONFIG/chroot_install" &gt;&gt; /etc/grml/grml-live.local\r
+<pre><code>echo "CHROOT_INSTALL=\$GRML_FAI_CONFIG/chroot_install" &gt;&gt; /etc/grml/grml-live.local\r
 mkdir -p /etc/grml/fai/chroot_install/usr/src/\r
 wget example.org/foo.tar.gz\r
 mv foo.tar.gz /etc/grml/fai/chroot_install/usr/src/\r
-grml-live ...</tt></pre>\r
+grml-live ...</code></pre>\r
 </div></div>\r
 </div>\r
 <div class="sect2">\r
 <h3 id="local-debian-mirror">13.5. Can I use my own (local) Debian mirror?</h3>\r
 <div class="paragraph"><p>Yes. Set up an according sources.list configuration as class file in\r
-FAI_DEBOOTSTRAP (if not already using NFSROOT&#8217;s base.tgz) inside\r
+FAI_DEBOOTSTRAP (if not already using a base.tgz) inside\r
 /etc/grml/grml-live.conf[.local]. If you&#8217;re setting up your own class file don&#8217;t\r
 forget to include the class name in the class list (grml-live -c &#8230;).</p></div>\r
 <div class="paragraph"><p>If you want to use a local (for example NFS mount) mirror additionally then\r
@@ -1578,7 +1576,7 @@ adjust MIRROR_DIRECTORY in /etc/grml/grml-live.conf[.local] as well.</p></div>
 <div class="paragraph"><p>If you want to use a HTTP Proxy (like apt-cacher-ng), set APT_PROXY. Example:</p></div>\r
 <div class="literalblock">\r
 <div class="content">\r
-<pre><tt>APT_PROXY="http://localhost:3142/"</tt></pre>\r
+<pre><code>APT_PROXY="http://localhost:3142/"</code></pre>\r
 </div></div>\r
 </div>\r
 <div class="sect2">\r
@@ -1586,20 +1584,20 @@ adjust MIRROR_DIRECTORY in /etc/grml/grml-live.conf[.local] as well.</p></div>
 <div class="paragraph"><p>Just create a new class (using the package_config directory):</p></div>\r
 <div class="literalblock">\r
 <div class="content">\r
-<pre><tt># cat &gt; /etc/grml/fai/config/package_config/MIKA &lt;&lt; EOF\r
-PACKAGES aptitude</tt></pre>\r
+<pre><code># cat &gt; /etc/grml/fai/config/package_config/MIKA &lt;&lt; EOF\r
+PACKAGES aptitude</code></pre>\r
 </div></div>\r
 <div class="literalblock">\r
 <div class="content">\r
-<pre><tt>vim\r
+<pre><code>vim\r
 another_name_of_a_debian_package\r
 and_another_one\r
-EOF</tt></pre>\r
+EOF</code></pre>\r
 </div></div>\r
 <div class="paragraph"><p>and specify it when invoking grml-live then:</p></div>\r
 <div class="literalblock">\r
 <div class="content">\r
-<pre><tt># grml-live -c GRMLBASE,GRML_SMALL,AMD64,MIKA</tt></pre>\r
+<pre><code># grml-live -c GRMLBASE,GRML_SMALL,AMD64,MIKA</code></pre>\r
 </div></div>\r
 </div>\r
 <div class="sect2">\r
@@ -1608,18 +1606,50 @@ EOF</tt></pre>
 what you are searching for just run:</p></div>\r
 <div class="literalblock">\r
 <div class="content">\r
-<pre><tt>rm -rf /etc/grml/fai /etc/grml/grml-live.conf\r
-dpkg -i --force-confnew --force-confmiss /path/to/grml-live_..._all.deb</tt></pre>\r
+<pre><code>rm -rf /etc/grml/fai /etc/grml/grml-live.conf\r
+dpkg -i --force-confnew --force-confmiss /path/to/grml-live_..._all.deb</code></pre>\r
 </div></div>\r
 </div>\r
 <div class="sect2">\r
-<h3 id="create-a-base-tgz">13.8. How do I create a base.tgz?</h3>\r
-<div class="paragraph"><p>First of all create the chroot using debootstrap:</p></div>\r
+<h3 id="apt-cacher">13.8. Set up apt-cacher-ng for use with grml-live</h3>\r
+<div class="paragraph"><p>Make sure /etc/grml/grml-live.local provides according APT_PROXY and\r
+FAI_DEBOOTSTRAP:</p></div>\r
 <div class="literalblock">\r
 <div class="content">\r
-<pre><tt>BASECHROOT='/tmp/basefile'\r
-debootstrap squeeze "$BASECHROOT" http://cdn.debian.net/debian\r
-tar -C "$BASECHROOT" --exclude='var/cache/apt/archives/*.deb' -zcf base.tar.gz ./</tt></pre>\r
+<pre><code># cat /etc/grml/grml-live.local\r
+[...]\r
+APT_PROXY="http://localhost:3142/"\r
+[...]\r
+FAI_DEBOOTSTRAP="jessie http://localhost:3142/ftp.debian.org/debian jessie main contrib non-free"</code></pre>\r
+</div></div>\r
+<div class="paragraph"><p>Make sure apt-cacher-ng is running (<em>/etc/init.d/apt-cacher-ng restart</em>).\r
+That&#8217;s it.  All downloaded files will be cached in /var/cache/apt-cacher-ng then.</p></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="revert_manifold">13.9. How do I revert the manifold feature from an ISO?</h3>\r
+<div class="paragraph"><p>The so called manifold feature Grml ISOs use by default allows one to use the same\r
+ISO for CD boot and USB boot. If you notice any problems when booting just\r
+revert the manifold feature running:</p></div>\r
+<div class="literalblock">\r
+<div class="content">\r
+<pre><code>% dd if=/dev/zero of=grml.iso bs=512 count=1 conv=notrunc</code></pre>\r
+</div></div>\r
+<div class="paragraph"><p>To switch from manifold to isohybrid mode (an alternative approach provided by\r
+syslinux) then just execute:</p></div>\r
+<div class="literalblock">\r
+<div class="content">\r
+<pre><code>% isohybrid grml.iso</code></pre>\r
+</div></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="create-a-base-tgz">13.10. How do I create a base tar.gz (I386.tar.gz or AMD64.tar.gz)</h3>\r
+<div class="paragraph" id="basetgz"><p>First of all create the chroot using debootstrap (requires root):</p></div>\r
+<div class="literalblock">\r
+<div class="content">\r
+<pre><code>BASECHROOT='/tmp/basefile'  # path where the chroot gets generated\r
+SUITE='jessie'              # using the current stable release should always work\r
+debootstrap --exclude=info,tasksel,tasksel-data "$SUITE" "$BASECHROOT" http://ftp.debian.org/debian\r
+tar -C "$BASECHROOT" --exclude='var/cache/apt/archives/*.deb' -zcf "${SUITE}".tar.gz ./</code></pre>\r
 </div></div>\r
 <div class="admonitionblock">\r
 <table><tr>\r
@@ -1632,105 +1662,133 @@ then invoke debootstrap using the <em>--arch i386</em> option. Disclaimer: build
 AMD64 base.tgz won&#8217;t work if you are using a 32bit kernel system of course.</td>\r
 </tr></table>\r
 </div>\r
-<div class="paragraph"><p>Then move the base.tar.gz to /etc/grml/fai/config/basefiles/$CLASSNAME.tar.gz.\r
-Use e.g. I386 as $CLASSNAME for i386 chroots and AMD64 for amd64 chroots.</p></div>\r
-<div class="paragraph"><p>Now executing grml-live should use this file as base system instead of executing\r
+<div class="paragraph"><p>Finally place the generated tarball in /etc/grml/fai/config/basefiles/ (note\r
+that it needs to be uppercase letters matching the class names, so: e.g.\r
+AMD64.tar.gz for amd64 and I386.tar.gz for i386).</p></div>\r
+<div class="paragraph"><p>Then executing grml-live should use this file as base system instead of executing\r
 debootstrap. Check out the output for something like:</p></div>\r
 <div class="literalblock">\r
 <div class="content">\r
-<pre><tt>[...]\r
+<pre><code>[...]\r
 ftar: extracting //etc/grml/fai/config/basefiles///AMD64.tar.gz to /srv/grml64_testing/grml_chroot//\r
-[...]</tt></pre>\r
+[...]</code></pre>\r
 </div></div>\r
-<div class="admonitionblock">\r
-<table><tr>\r
-<td class="icon">\r
-<img src="./images/icons/tip.png" alt="Tip" />\r
-</td>\r
-<td class="content">Existing base.tgz can be found at <a href="http://daily.grml.org/">http://daily.grml.org/</a></td>\r
-</tr></table>\r
-</div>\r
 </div>\r
 <div class="sect2">\r
-<h3 id="apt-cacher">13.9. Set up apt-cacher-ng for use with grml-live</h3>\r
-<div class="paragraph"><p>Make sure /etc/grml/grml-live.local provides according APT_PROXY and\r
-FAI_DEBOOTSTRAP:</p></div>\r
+<h3 id="localrepos">13.11. How to use your own local repository</h3>\r
+<div class="paragraph"><p>Let&#8217;s assume you have Debian package(s) in your filesystem inside\r
+<code>/home/foobar/local-packages</code> and want to provide them to your grml-live build.\r
+This can be achieved either 1) through a bind mount (using the MIRROR_DIRECTORY\r
+configuration) or 2) by serving a repository via HTTP.</p></div>\r
+<div class="sect3">\r
+<h4 id="_serving_via_bind_mount_mirror_directory">13.11.1. Serving via bind mount / MIRROR_DIRECTORY</h4>\r
+<div class="paragraph"><p>Make sure to create an according sources.list configuration file, e.g. using\r
+your own class name <code>CUSTOM</code>:</p></div>\r
 <div class="literalblock">\r
 <div class="content">\r
-<pre><tt># cat /etc/grml/grml-live.local\r
-[...]\r
-APT_PROXY="http://localhost:3142/"\r
-[...]\r
-FAI_DEBOOTSTRAP="squeeze http://localhost:3142/cdn.debian.net/debian squeeze main contrib non-free"</tt></pre>\r
+<pre><code># cat &gt; /etc/grml/fai/config/files/etc/apt/sources.list.d/local-packages.list/CUSTOM &lt;&lt; EOF\r
+deb file:///home/foobar/local-packages ./\r
+EOF</code></pre>\r
 </div></div>\r
-<div class="paragraph"><p>Make sure apt-cacher-ng is running (<em>/etc/init.d/apt-cacher-ng restart</em>).\r
-That&#8217;s it.  All downloaded files will be cached in /var/cache/apt-cacher-ng then.</p></div>\r
-</div>\r
-<div class="sect2">\r
-<h3 id="revert_manifold">13.10. How do I revert the manifold feature from an ISO?</h3>\r
-<div class="paragraph"><p>The so called manifold feature Grml ISOs use by default allows one to use the same\r
-ISO for CD boot and USB boot. If you notice any problems when booting just\r
-revert the manifold feature running:</p></div>\r
+<div class="paragraph"><p>Add the according MIRROR_DIRECTORY configuration to your grml-live configuration:</p></div>\r
 <div class="literalblock">\r
 <div class="content">\r
-<pre><tt>% dd if=/dev/zero of=grml.iso bs=512 count=1 conv=notrunc</tt></pre>\r
+<pre><code># echo "MIRROR_DIRECTORY='/home/foobar/packages'" &gt;&gt; /etc/grml/grml-live.local</code></pre>\r
 </div></div>\r
-<div class="paragraph"><p>To switch from manifold to isohybrid mode (an alternative approach provided by\r
-syslinux) then just execute:</p></div>\r
+<div class="paragraph"><p>Make sure the local directory looks like a mirror:</p></div>\r
 <div class="literalblock">\r
 <div class="content">\r
-<pre><tt>% isohybrid grml.iso</tt></pre>\r
+<pre><code>% cd /home/foobar/packages\r
+% dpkg-scanpackages . /dev/null | gzip &gt; Packages.gz</code></pre>\r
 </div></div>\r
+<div class="paragraph"><p>Finally invoke grml-live with your class name (<code>CUSTOM</code> in this example) added\r
+to the list of classes on the command line (see grml-live option <code>-c</code>).</p></div>\r
 </div>\r
-<div class="sect2">\r
-<h3 id="basetgz">13.11. How do I create a base tar.gz (I386.tar.gz or AMD64.tar.gz)</h3>\r
-<div class="paragraph"><p>Execute the following commands (requires root):</p></div>\r
+<div class="sect3">\r
+<h4 id="_serving_a_repository_via_http">13.11.2. Serving a repository via HTTP</h4>\r
+<div class="paragraph"><p>Make sure to create an according sources.list configuration file, e.g. using\r
+your own class name <code>CUSTOM</code>:</p></div>\r
+<div class="literalblock">\r
+<div class="content">\r
+<pre><code># cat &gt; /etc/grml/fai/config/files/etc/apt/sources.list.d/local-packages.list/CUSTOM &lt;&lt; EOF\r
+deb http://127.0.0.1:8000/ ./\r
+EOF</code></pre>\r
+</div></div>\r
+<div class="paragraph"><p>Make sure the local directory is served via HTTP on the according IP address and\r
+port. For the <code>http://127.0.0.1:8000/</code> example from above it should be enough to\r
+just invoke:</p></div>\r
 <div class="literalblock">\r
 <div class="content">\r
-<pre><tt>ARCH='amd64' # replace with i386 if necessary\r
-SUITE='squeeze' # using the current stable release should always work\r
-debootstrap --arch "$ARCH" --exclude=info,tasksel,tasksel-data "$SUITE" "$ARCH" http://debian.netcologne.de/debian\r
-cd "$ARCH"\r
-rm var/cache/apt/archives/*.deb\r
-tar zcf ../"${ARCH}".tar.gz *</tt></pre>\r
+<pre><code>% cd /home/foobar/packages\r
+% dpkg-scanpackages . /dev/null | gzip &gt; Packages.gz\r
+% python -m SimpleHTTPServer 8000</code></pre>\r
 </div></div>\r
-<div class="paragraph"><p>And finally place the generated tarball in /etc/grml/fai/config/basefiles/ (note\r
-that it needs to be uppercase letters matching the class names, so: AMD64.tar.gz\r
-for amd64 and I386.tar.gz for i386).</p></div>\r
+<div class="admonitionblock">\r
+<table><tr>\r
+<td class="icon">\r
+<img src="./images/icons/tip.png" alt="Tip" />\r
+</td>\r
+<td class="content">Of course you can also use a real Debian repository setup using tools like\r
+reprepro(1) and/or using a real web server, though for quick debugging sessions\r
+python&#8217;s SimpleHTTPServer in combination with dpkg-scanpackages from package\r
+dpkg-dev is a simple and easy approach.</td>\r
+</tr></table>\r
+</div>\r
+<div class="paragraph"><p>Finally invoke grml-live with your class name (<code>CUSTOM</code> in this example) added\r
+to the list of classes on the command line (see grml-live option <code>-c</code>).</p></div>\r
+</div>\r
 </div>\r
 </div>\r
 </div>\r
 <div class="sect1">\r
 <h2 id="download">14. Download / install grml-live as a Debian package</h2>\r
 <div class="sectionbody">\r
-<div class="paragraph"><p>Debian packages are available through the grml-repository at\r
-<a href="http://deb.grml.org/pool/main/g/grml-live/">deb.grml.org</a>.  If you want to\r
-build a Debian package on your own (using for example a specific version or the\r
-current development tree), just execute:</p></div>\r
+<div class="paragraph"><p>Stable Debian packages are available through the grml-repository at\r
+<a href="http://deb.grml.org/pool/main/g/grml-live/">deb.grml.org</a> and the latest\r
+Git commits are available as Debian packages from\r
+<a href="http://jenkins.grml.org/job/grml-live-binaries/">jenkins.grml.org</a>.\r
+If you want to build a Debian package on your own (using for example a specific\r
+version or the current development tree), just execute:</p></div>\r
 <div class="literalblock">\r
 <div class="content">\r
-<pre><tt>git clone git://git.grml.org/grml-live\r
+<pre><code>git clone git://git.grml.org/grml-live\r
 cd grml-live\r
-debuild -us -uc</tt></pre>\r
+debuild -us -uc</code></pre>\r
+</div></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="run-from-git">15. Run grml-live directly from git</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>In case you want to run grml-live directly from the git repository checkout\r
+(after making sure all dependencies are installed), you should set\r
+<code>GRML_FAI_CONFIG</code> so that a) it finds the according FAI configuration files and\r
+b) does not use the config files of an possibly installed <code>grml-live</code> package.\r
+Usage example:</p></div>\r
+<div class="literalblock">\r
+<div class="content">\r
+<pre><code># export GRML_FAI_CONFIG=$(pwd)/etc/grml/fai\r
+# export SCRIPTS_DIRECTORY=$(pwd)/scripts\r
+# ./grml-live -s sid -a amd64 -c GRMLBASE,GRML_FULL,AMD64</code></pre>\r
 </div></div>\r
 </div>\r
 </div>\r
 <div class="sect1">\r
-<h2 id="source">15. Source</h2>\r
+<h2 id="source">16. Source</h2>\r
 <div class="sectionbody">\r
 <div class="paragraph"><p>The source of grml-live is available at\r
 <a href="https://github.com/grml/grml-live/">https://github.com/grml/grml-live/</a></p></div>\r
 </div>\r
 </div>\r
 <div class="sect1">\r
-<h2 id="bugs">16. Bugs</h2>\r
+<h2 id="bugs">17. Bugs</h2>\r
 <div class="sectionbody">\r
 <div class="paragraph"><p>Please report feedback, <a href="http://grml.org/bugs/">bugreports</a> and wishes\r
 <a href="http://grml.org/contact/">to the Grml team</a>!</p></div>\r
 </div>\r
 </div>\r
 <div class="sect1">\r
-<h2 id="documentation">17. Documentation</h2>\r
+<h2 id="documentation">18. Documentation</h2>\r
 <div class="sectionbody">\r
 <div class="paragraph"><p>The most recent grml-live documentation is available online at\r
 <a href="http://grml.org/grml-live/">http://grml.org/grml-live/</a> and for offline reading also available\r
@@ -1750,7 +1808,7 @@ in different formats:</p></div>
 </div>\r
 </div>\r
 <div class="sect1">\r
-<h2 id="authors">18. Authors</h2>\r
+<h2 id="authors">19. Authors</h2>\r
 <div class="sectionbody">\r
 <div class="paragraph"><p>Michael Prokop &lt;<a href="mailto:mika@grml.org">mika@grml.org</a>&gt;</p></div>\r
 </div>\r
@@ -1759,7 +1817,8 @@ in different formats:</p></div>
 <div id="footnotes"><hr /></div>\r
 <div id="footer">\r
 <div id="footer-text">\r
-Last updated 2012-01-19 13:18:45 CET\r
+Last updated\r
+ 2016-02-15 22:15:22 CET\r
 </div>\r
 </div>\r
 </body>\r