-e <extract_iso_name>] [-g <grml_name>] [-i <iso_name>] [\r
-o <output_directory>] [-r <release_name>] [-s <suite>] [\r
-t <template_directory>] [-v <version_number>] [-U <username>] [\r
--AbBFnNqQuVz]</p></div>\r
+-w <date>] [-AbBFnNqQuVz]</p></div>\r
</div>\r
</div>\r
<div class="sect1">\r
<p>\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 "wheezy"). Please be aware that recent Debian\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
</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
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
<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
+introduced in December 2011 (~460MB 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
-</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,…\r
(which used to be shipped by grml before the LaTeX removal)\r
</p>\r
<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 >=4.2-1 (available from Grml repositories as well as from\r
-Debian) to build Grml (based) ISOs featuring kernel version 2.6.38-grml[64] or\r
-newer.</p></div>\r
+<div class="paragraph"><p>Use squashfs-tools >=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
<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 wheezy (7.x).</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
# 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://http.debian.net/debian/"\r
+FAI_DEBOOTSTRAP="jessie http://ftp.debian.org/debian/"\r
# ARCH="amd64"\r
CLASSES="GRMLBASE,GRML_FULL,AMD64"\r
EOF</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><code>BASECHROOT='/tmp/basefile'\r
-debootstrap wheezy "$BASECHROOT" http://http.debian.net/debian\r
-tar -C "$BASECHROOT" --exclude='var/cache/apt/archives/*.deb' -zcf base.tar.gz ./</code></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’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
AMD64 base.tgz won’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
ftar: extracting //etc/grml/fai/config/basefiles///AMD64.tar.gz to /srv/grml64_testing/grml_chroot//\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’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><code># cat /etc/grml/grml-live.local\r
-[...]\r
-APT_PROXY="http://localhost:3142/"\r
-[...]\r
-FAI_DEBOOTSTRAP="wheezy http://localhost:3142/http.debian.net/debian wheezy main contrib non-free"</code></pre>\r
+<pre><code># cat > /etc/grml/fai/config/files/etc/apt/sources.list.d/local-packages.list/CUSTOM << 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’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><code>% dd if=/dev/zero of=grml.iso bs=512 count=1 conv=notrunc</code></pre>\r
+<pre><code># echo "MIRROR_DIRECTORY='/home/foobar/packages'" >> /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><code>% isohybrid grml.iso</code></pre>\r
+<pre><code>% cd /home/foobar/packages\r
+% dpkg-scanpackages . /dev/null | gzip > 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>ARCH='amd64' # replace with i386 if necessary\r
-SUITE='wheezy' # 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 *</code></pre>\r
+<pre><code># cat > /etc/grml/fai/config/files/etc/apt/sources.list.d/local-packages.list/CUSTOM << EOF\r
+deb http://127.0.0.1:8000/ ./\r
+EOF</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="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><code>% cd /home/foobar/packages\r
+% dpkg-scanpackages . /dev/null | gzip > Packages.gz\r
+% python -m SimpleHTTPServer 8000</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">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’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><code>git clone git://git.grml.org/grml-live\r
</div>\r
</div>\r
<div class="sect1">\r
-<h2 id="source">15. Source</h2>\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">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
</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 <<a href="mailto:mika@grml.org">mika@grml.org</a>></p></div>\r
</div>\r
<div id="footnotes"><hr /></div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 2013-12-11 11:53:34 CET\r
+Last updated\r
+ 2016-02-15 22:15:22 CET\r
</div>\r
</div>\r
</body>\r