<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.4" />\r
+<meta name="generator" content="AsciiDoc 8.6.9" />\r
<title>grml-autoconfig(1)</title>\r
<style type="text/css">\r
-/* Sans-serif font. */\r
+/* Shared CSS for AsciiDoc xhtml11 and html5 backends */\r
+\r
+/* Default font. */\r
+body {\r
+ font-family: Georgia,serif;\r
+}\r
+\r
+/* Title font. */\r
h1, h2, h3, h4, h5, h6,\r
div.title, caption.title,\r
thead, p.table.header,\r
-div#toctitle,\r
-span#author, span#revnumber, span#revdate, span#revremark,\r
-div#footer {\r
+#toctitle,\r
+#author, #revnumber, #revdate, #revremark,\r
+#footer {\r
font-family: Arial,Helvetica,sans-serif;\r
}\r
\r
-/* Serif font. */\r
-div.sectionbody {\r
- font-family: Georgia,"Times New Roman",Times,serif;\r
-}\r
-\r
-/* Monospace font. */\r
-tt {\r
- font-size: inherit;\r
-}\r
-\r
body {\r
margin: 1em 5% 1em 5%;\r
}\r
color: #083194;\r
}\r
\r
-tt {\r
- font-size: inherit;\r
- color: navy;\r
-}\r
-\r
h1, h2, h3, h4, h5, h6 {\r
color: #527bbd;\r
margin-top: 1.2em;\r
h3 + * {\r
clear: left;\r
}\r
+h5 {\r
+ font-size: 1.0em;\r
+}\r
\r
div.sectionbody {\r
margin-left: 0;\r
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
-span#author {\r
+#author {\r
color: #527bbd;\r
font-weight: bold;\r
font-size: 1.1em;\r
}\r
-span#email {\r
+#email {\r
}\r
-span#revnumber, span#revdate, span#revremark {\r
+#revnumber, #revdate, #revremark {\r
}\r
\r
-div#footer {\r
+#footer {\r
font-size: small;\r
border-top: 2px solid silver;\r
padding-top: 0.5em;\r
margin-top: 4.0em;\r
}\r
-div#footer-text {\r
+#footer-text {\r
float: left;\r
padding-bottom: 0.5em;\r
}\r
-div#footer-badges {\r
+#footer-badges {\r
float: right;\r
padding-bottom: 0.5em;\r
}\r
\r
-div#preamble {\r
+#preamble {\r
margin-top: 1.5em;\r
margin-bottom: 1.5em;\r
}\r
-div.tableblock, div.imageblock, div.exampleblock, div.verseblock,\r
+div.imageblock, div.exampleblock, div.verseblock,\r
div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,\r
div.admonitionblock {\r
margin-top: 1.0em;\r
margin-left: 1.0em;\r
margin-right: 10%;\r
border-left: 5px solid #f0f0f0;\r
- color: #777777;\r
+ color: #888;\r
}\r
\r
div.quoteblock > div.attribution {\r
}\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
margin-bottom: 0.1em;\r
}\r
\r
-div.tableblock > table {\r
- border: 3px solid #527bbd;\r
-}\r
-thead, p.table.header {\r
- font-weight: bold;\r
- color: #527bbd;\r
-}\r
tfoot {\r
font-weight: bold;\r
}\r
td > div.verse {\r
white-space: pre;\r
}\r
-p.table {\r
- margin-top: 0;\r
-}\r
-/* Because the table frame attribute is overriden by CSS in most browsers. */\r
-div.tableblock > table[frame="void"] {\r
- border-style: none;\r
-}\r
-div.tableblock > table[frame="hsides"] {\r
- border-left-style: none;\r
- border-right-style: none;\r
-}\r
-div.tableblock > table[frame="vsides"] {\r
- border-top-style: none;\r
- border-bottom-style: none;\r
-}\r
-\r
\r
div.hdlist {\r
margin-top: 0.8em;\r
}\r
\r
@media print {\r
- div#footer-badges { display: none; }\r
+ #footer-badges { display: none; }\r
}\r
\r
-div#toc {\r
+#toc {\r
margin-bottom: 2.5em;\r
}\r
\r
-div#toctitle {\r
+#toctitle {\r
color: #527bbd;\r
font-size: 1.1em;\r
font-weight: bold;\r
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
\r
span.big { font-size: 2em; }\r
span.small { font-size: 0.6em; }\r
+\r
+span.underline { text-decoration: underline; }\r
+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
+div.tableblock {\r
+ margin-top: 1.0em;\r
+ margin-bottom: 1.5em;\r
+}\r
+div.tableblock > table {\r
+ border: 3px solid #527bbd;\r
+}\r
+thead, p.table.header {\r
+ font-weight: bold;\r
+ color: #527bbd;\r
+}\r
+p.table {\r
+ margin-top: 0;\r
+}\r
+/* Because the table frame attribute is overriden by CSS in most browsers. */\r
+div.tableblock > table[frame="void"] {\r
+ border-style: none;\r
+}\r
+div.tableblock > table[frame="hsides"] {\r
+ border-left-style: none;\r
+ border-right-style: none;\r
+}\r
+div.tableblock > table[frame="vsides"] {\r
+ border-top-style: none;\r
+ border-bottom-style: none;\r
+}\r
+\r
+\r
+/*\r
+ * html5 specific\r
+ *\r
+ * */\r
+\r
+table.tableblock {\r
+ margin-top: 1.0em;\r
+ margin-bottom: 1.5em;\r
+}\r
+thead, p.tableblock.header {\r
+ font-weight: bold;\r
+ color: #527bbd;\r
+}\r
+p.tableblock {\r
+ margin-top: 0;\r
+}\r
+table.tableblock {\r
+ border-width: 3px;\r
+ border-spacing: 0px;\r
+ border-style: solid;\r
+ border-color: #527bbd;\r
+ border-collapse: collapse;\r
+}\r
+th.tableblock, td.tableblock {\r
+ border-width: 1px;\r
+ padding: 4px;\r
+ border-style: solid;\r
+ border-color: #527bbd;\r
+}\r
+\r
+table.tableblock.frame-topbot {\r
+ border-left-style: hidden;\r
+ border-right-style: hidden;\r
+}\r
+table.tableblock.frame-sides {\r
+ border-top-style: hidden;\r
+ border-bottom-style: hidden;\r
+}\r
+table.tableblock.frame-none {\r
+ border-style: hidden;\r
+}\r
+\r
+th.tableblock.halign-left, td.tableblock.halign-left {\r
+ text-align: left;\r
+}\r
+th.tableblock.halign-center, td.tableblock.halign-center {\r
+ text-align: center;\r
+}\r
+th.tableblock.halign-right, td.tableblock.halign-right {\r
+ text-align: right;\r
+}\r
+\r
+th.tableblock.valign-top, td.tableblock.valign-top {\r
+ vertical-align: top;\r
+}\r
+th.tableblock.valign-middle, td.tableblock.valign-middle {\r
+ vertical-align: middle;\r
+}\r
+th.tableblock.valign-bottom, td.tableblock.valign-bottom {\r
+ vertical-align: bottom;\r
+}\r
+\r
+\r
+/*\r
+ * manpage specific\r
+ *\r
+ * */\r
+\r
+body.manpage h1 {\r
+ padding-top: 0.5em;\r
+ padding-bottom: 0.5em;\r
+ border-top: 2px solid silver;\r
+ border-bottom: 2px solid silver;\r
+}\r
+body.manpage h2 {\r
+ border-style: none;\r
+}\r
+body.manpage div.sectionbody {\r
+ margin-left: 3em;\r
+}\r
+\r
+@media print {\r
+ body.manpage div#toc { display: none; }\r
+}\r
+\r
+\r
</style>\r
<script type="text/javascript">\r
/*<![CDATA[*/\r
-window.onload = function(){asciidoc.footnotes();}\r
var asciidoc = { // Namespace.\r
\r
/////////////////////////////////////////////////////////////////////\r
\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
}\r
\r
var toc = document.getElementById("toc");\r
+ if (!toc) {\r
+ return;\r
+ }\r
+\r
+ // Delete existing TOC entries in case we're reloading the TOC.\r
+ var tocEntriesToRemove = [];\r
+ var i;\r
+ for (i = 0; i < toc.childNodes.length; i++) {\r
+ var entry = toc.childNodes[i];\r
+ if (entry.nodeName.toLowerCase() == 'div'\r
+ && entry.getAttribute("class")\r
+ && entry.getAttribute("class").match(/^toclevel/))\r
+ tocEntriesToRemove.push(entry);\r
+ }\r
+ for (i = 0; i < tocEntriesToRemove.length; i++) {\r
+ toc.removeChild(tocEntriesToRemove[i]);\r
+ }\r
+\r
+ // Rebuild TOC entries.\r
var entries = tocEntries(document.getElementById("content"), toclevels);\r
for (var i = 0; i < entries.length; ++i) {\r
var entry = entries[i];\r
*/\r
\r
footnotes: function () {\r
- var cont = document.getElementById("content");\r
+ // Delete existing footnote entries in case we're reloading the footnodes.\r
+ var i;\r
var noteholder = document.getElementById("footnotes");\r
+ if (!noteholder) {\r
+ return;\r
+ }\r
+ var entriesToRemove = [];\r
+ for (i = 0; i < noteholder.childNodes.length; i++) {\r
+ var entry = noteholder.childNodes[i];\r
+ if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")\r
+ entriesToRemove.push(entry);\r
+ }\r
+ for (i = 0; i < entriesToRemove.length; i++) {\r
+ noteholder.removeChild(entriesToRemove[i]);\r
+ }\r
+\r
+ // Rebuild footnote entries.\r
+ var cont = document.getElementById("content");\r
var spans = cont.getElementsByTagName("span");\r
var refs = {};\r
var n = 0;\r
for (i=0; i<spans.length; i++) {\r
if (spans[i].className == "footnote") {\r
n++;\r
- // Use [\s\S] in place of . so multi-line matches work.\r
- // Because JavaScript has no s (dotall) regex flag.\r
- note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];\r
+ var note = spans[i].getAttribute("data-note");\r
+ if (!note) {\r
+ // Use [\s\S] in place of . so multi-line matches work.\r
+ // Because JavaScript has no s (dotall) regex flag.\r
+ note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];\r
+ spans[i].innerHTML =\r
+ "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +\r
+ "' title='View footnote' class='footnote'>" + n + "</a>]";\r
+ spans[i].setAttribute("data-note", note);\r
+ }\r
noteholder.innerHTML +=\r
"<div class='footnote' id='_footnote_" + n + "'>" +\r
"<a href='#_footnoteref_" + n + "' title='Return to text'>" +\r
n + "</a>. " + note + "</div>";\r
- spans[i].innerHTML =\r
- "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +\r
- "' title='View footnote' class='footnote'>" + n + "</a>]";\r
var id =spans[i].getAttribute("id");\r
if (id != null) refs["#"+id] = n;\r
}\r
}\r
}\r
}\r
+},\r
+\r
+install: function(toclevels) {\r
+ var timerId;\r
+\r
+ function reinstall() {\r
+ asciidoc.footnotes();\r
+ if (toclevels) {\r
+ asciidoc.toc(toclevels);\r
+ }\r
+ }\r
+\r
+ function reinstallAndRemoveTimer() {\r
+ clearInterval(timerId);\r
+ reinstall();\r
+ }\r
+\r
+ timerId = setInterval(reinstall, 500);\r
+ if (document.addEventListener)\r
+ document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);\r
+ else\r
+ window.onload = reinstallAndRemoveTimer;\r
}\r
\r
}\r
+asciidoc.install();\r
/*]]>*/\r
</script>\r
</head>\r
<div class="sect1">\r
<h2 id="current-versions">Behavior in current Grml versions</h2>\r
<div class="sectionbody">\r
-<div class="paragraph"><p>This section applies to all Grml versions newer than release 2009.05.</p></div>\r
+<div class="paragraph"><p>This section applies to all Grml versions newer than release 2013.02.</p></div>\r
<div class="paragraph"><p>The central concept of grml-autoconfig is the DCS directory which holds debs,\r
configuration and scripts which are used during system startup.</p></div>\r
<div class="sect2">\r
<h3 id="_determination_of_dcs_directory">Determination of DCS directory</h3>\r
-<div class="paragraph"><p>The DCS directory defaults to the root directory of the GRML live image. If a\r
-file system labeled GRMLCFG is found, the DCS directory is the root directory of\r
-that file system. Alternatively, the myconfig boot parameter can be used to\r
-directly specify a device which is then taken as DCS directory\r
-(myconfig=/dev/sda1, for example). If your device is labeled different to\r
-GRMLCFG the proper label can be set via the autoconfig boot parameter\r
-(autoconfig=SOMELABEL, for example).</p></div>\r
+<div class="paragraph"><p>The DCS directory defaults to the root directory of the GRML live image\r
+(Note: the directory is known as /lib/live/mount/medium/ on a <em>running</em>\r
+Grml system then!). If a file system labeled GRMLCFG is found, the DCS\r
+directory is the root directory of that file system. Alternatively, the\r
+myconfig boot parameter can be used to directly specify a device which\r
+is then taken as DCS directory (myconfig=/dev/sda1, for example). If\r
+your device is labeled different to GRMLCFG the proper label can be set\r
+via the autoconfig boot parameter (autoconfig=SOMELABEL, for example).</p></div>\r
<div class="paragraph"><p>Without any additional boot parameters, the GCA at DCSDIR/config.tbz is\r
-automatically unpacked and DCSDIR/scrips/grml.sh is automatically executed on\r
+automatically unpacked and DCSDIR/scripts/grml.sh is automatically executed on\r
system startup. The <em>noautoconfig</em> boot parameter disables this automatic\r
behavior.</p></div>\r
</div>\r
</p>\r
<div class="literalblock">\r
<div class="content">\r
-<pre><tt>myconfig=/dev/sda1 => read DCS from usb-device\r
-myconfig=/dev/fd0 => read DCS from floppy-disk</tt></pre>\r
+<pre><code>myconfig=/dev/sda1 => read DCS from usb-device</code></pre>\r
</div></div>\r
</dd>\r
<dt class="hdlist1">\r
</p>\r
<div class="literalblock">\r
<div class="content">\r
-<pre><tt>autoconfig=SOMELABEL => search for device labeled SOMELABEL to use as\r
- DCS device.</tt></pre>\r
+<pre><code>autoconfig=SOMELABEL => search for device labeled SOMELABEL to use as\r
+ DCS device.</code></pre>\r
</div></div>\r
</dd>\r
<dt class="hdlist1">\r
</p>\r
<div class="literalblock">\r
<div class="content">\r
-<pre><tt>home=/dev/sda3 => use /dev/sda3 as the homepartition\r
+<pre><code>home=/dev/sda3 => use /dev/sda3 as the homepartition\r
home=scan => scan through the available partitions and search\r
- for file grml.img</tt></pre>\r
+ for file grml.img</code></pre>\r
</div></div>\r
</dd>\r
<dt class="hdlist1">\r
</p>\r
<div class="literalblock">\r
<div class="content">\r
-<pre><tt>partconf=/dev/sda2 => try to mount /dev/sda2 and copy files specified\r
- in /etc/grml/partconf to the booted Grml system</tt></pre>\r
+<pre><code>partconf=/dev/sda2 => try to mount /dev/sda2 and copy files specified\r
+ in /etc/grml/partconf to the booted Grml system</code></pre>\r
</div></div>\r
</dd>\r
<dt class="hdlist1">\r
</p>\r
<div class="literalblock">\r
<div class="content">\r
-<pre><tt>netconfig=server.tld/path/to/config.tbz => restore configuration using wget to download file config.tbz\r
-netconfig=server.tld/config-$ARCH.tbz => download config for specified architecture</tt></pre>\r
+<pre><code>netconfig=server.tld/path/to/config.tbz => restore configuration using wget to download file config.tbz\r
+netconfig=server.tld/config-$ARCH.tbz => download config for specified architecture</code></pre>\r
</div></div>\r
</dd>\r
<dt class="hdlist1">\r
</p>\r
<div class="literalblock">\r
<div class="content">\r
-<pre><tt>netcript=server.tld/path/to/script => download and run script/executable from server\r
-netscript=server.tld/script-$HOSTNAME => download and run script/executable for specific host</tt></pre>\r
+<pre><code>netscript=server.tld/path/to/script => download and run script/executable from server\r
+netscript=server.tld/script-$HOSTNAME => download and run script/executable for specific host</code></pre>\r
</div></div>\r
</dd>\r
<dt class="hdlist1">\r
</p>\r
<div class="literalblock">\r
<div class="content">\r
-<pre><tt>extract=/home/grml => extract only /home/grml from archive\r
+<pre><code>extract=/home/grml => extract only /home/grml from archive\r
extract=/etc => extract only /etc from archive\r
-extract=/home/grml/config => extract only $HOME/config from archive</tt></pre>\r
+extract=/home/grml/config => extract only $HOME/config from archive</code></pre>\r
</div></div>\r
</dd>\r
<dt class="hdlist1">\r
relative to DCSDIR. If the path points to a file, this single file is\r
executed. If no path is given, it defaults to scripts/grml.sh.\r
If the given name points to a directory, all scripts inside it are\r
- executed, but the run-parts name restrictions apply: script names must\r
- consist entirely of upper and lower case letters, digits, underscores,\r
- and hyphens. Usage examples:\r
+ executed. Usage examples:\r
</p>\r
<div class="literalblock">\r
<div class="content">\r
-<pre><tt>scripts => run script DCSDIR/scripts/grml.sh\r
+<pre><code>scripts => run script DCSDIR/scripts/grml.sh\r
scripts=foobar.sh => run script foobar.sh in DCSDIR\r
-scripts=foobar => run all scripts inside DCSDIR/foobar directory</tt></pre>\r
+scripts=foobar => run all scripts inside DCSDIR/foobar directory</code></pre>\r
</div></div>\r
</dd>\r
<dt class="hdlist1">\r
</p>\r
<div class="literalblock">\r
<div class="content">\r
-<pre><tt>config => restore configuration using file DCSDIR/config.tbz\r
-config=config_foobar.tbz => restore configuration using file DCSDIR/config_foobar.tbz</tt></pre>\r
+<pre><code>config => restore configuration using file DCSDIR/config.tbz\r
+config=config_foobar.tbz => restore configuration using file DCSDIR/config_foobar.tbz</code></pre>\r
</div></div>\r
</dd>\r
<dt class="hdlist1">\r
</p>\r
<div class="literalblock">\r
<div class="content">\r
-<pre><tt>Usage examples:</tt></pre>\r
+<pre><code>Usage examples:</code></pre>\r
</div></div>\r
<div class="literalblock">\r
<div class="content">\r
-<pre><tt>debs=*.deb => install all debian packages (suffix .deb) from directory DCSDIR/debs/\r
-debs=foo/01*.deb => install all debian packages (suffix .deb) starting with 01 in the filename from directory DCSDIR/foo</tt></pre>\r
+<pre><code>debs=*.deb => install all debian packages (suffix .deb) from directory DCSDIR/debs/\r
+debs=foo/01*.deb => install all debian packages (suffix .deb) starting with 01 in the filename from directory DCSDIR/foo</code></pre>\r
</div></div>\r
</dd>\r
<dt class="hdlist1">\r
<dd>\r
<p>\r
Deactivate automounting. By default the scripts try to mount a device with\r
- label <em>GRMLCFG</em>. If you specify the noautoconfig bootparam this automounting\r
- will be deactivated.\r
+ label <em>GRMLCFG</em>. If you specify the noautoconfig boot parameter this\r
+ automounting will be deactivated.\r
</p>\r
<div class="literalblock">\r
<div class="content">\r
-<pre><tt>noautoconfig => disables auto mounting of label 'GRMLCFG'</tt></pre>\r
+<pre><code>noautoconfig => disables auto mounting of label 'GRMLCFG'</code></pre>\r
</div></div>\r
</dd>\r
</dl></div>\r
</div>\r
<div class="sect2">\r
<h3 id="_permanently_adjust_boot_parameters">Permanently adjust boot parameters</h3>\r
-<div class="paragraph"><p>As you probably know you can adjust boot parameters on the bootprompt. You want\r
-to set some boot parameters permanently? That’s possible via adding a directory\r
-named <em>bootparams</em> to the Grml ISO which has to be located at the root-directory\r
-/bootparams/ (note: the directory is known as /live/image/bootparams/ on a\r
-<em>running</em> Grml system then). Place a textfile inside the directory containing\r
-the boot parameters which should be appended to default ones (this corresponds\r
-to booting without any special parameters).</p></div>\r
-<div class="literalblock">\r
-<div class="content">\r
-<pre><tt>mkdir bootparams\r
-echo lang=de > bootparams/my_bootparams</tt></pre>\r
-</div></div>\r
-<div class="paragraph"><p>Then burn a multisession CD where directory bootparams is located in the root\r
-directory of the CD.</p></div>\r
-<div class="admonitionblock">\r
-<table><tr>\r
-<td class="icon">\r
-<div class="title">Note</div>\r
-</td>\r
-<td class="content">Not all boot parameters can be used via /bootparams/. This is a limitation of\r
-the way the kernel and userspace retrieve boot parameters. Boot parameter\r
-regarding the kernel definitely do <strong>NOT</strong> work. Boot parameter related to\r
-grml-autoconfig (the main part of the boot process in Grml running in userspace,\r
-being all the stuff after startup of udev) are expected to work. Boot parameter\r
-related to initrd/initramfs (the part between <em>Searching for GRML file</em> and\r
-startup of udev) are <strong>NOT</strong> covered by /bootparams/ as well yet.</td>\r
-</tr></table>\r
-</div>\r
-<div class="admonitionblock">\r
-<table><tr>\r
-<td class="icon">\r
-<div class="title">Tip</div>\r
-</td>\r
-<td class="content">the application k3b (not available on the live-CD but available through the\r
-Debian repositories) provides an easy to use interface for doing the\r
-multisession task.</td>\r
-</tr></table>\r
-</div>\r
-</div>\r
-<div class="sect2">\r
-<h3 id="_permanently_adjust_boot_parameters_2">Permanently adjust boot parameters</h3>\r
-<div class="paragraph"><p>As you probably know you can adjust boot parameters on the bootprompt. You want\r
-to set some boot parameters permanently? That’s possible via adding a directory\r
-named <em>bootparams</em> to the Grml ISO which has to be located at the root-directory\r
-/bootparams/ (note: the directory is known as /live/image/bootparams/ on a\r
-<em>running</em> Grml system then). Place a textfile inside the directory containing\r
-the boot parameters which should be appended to default ones (this corresponds\r
-to booting without any special parameters).</p></div>\r
+<div class="paragraph"><p>As you probably know you can adjust boot parameters on the bootprompt.\r
+You want to set some boot parameters permanently? That’s possible via\r
+adding a directory named <em>bootparams</em> to the Grml ISO which has to be\r
+located at the root-directory /bootparams/ (Note: the directory is known\r
+as /lib/live/mount/medium/bootparams/ on a <em>running</em> Grml system then!).\r
+Place a textfile inside the directory containing the boot parameters\r
+which should be appended to default ones (this corresponds to booting\r
+without any special parameters).</p></div>\r
<div class="literalblock">\r
<div class="content">\r
-<pre><tt>mkdir bootparams\r
-echo lang=de > bootparams/my_bootparams</tt></pre>\r
+<pre><code>mkdir bootparams\r
+echo lang=de > bootparams/my_bootparams</code></pre>\r
</div></div>\r
<div class="paragraph"><p>Then burn a multisession CD where directory bootparams is located in the root\r
directory of the CD.</p></div>\r
<h3 id="_personal_configuration_files">Personal configuration files</h3>\r
<div class="paragraph"><p>You are a fan of the editor vim? Great. You probably have your own <sub>/.vimrc and\r
want to use it on the Grml system. You also don’t like the default zsh\r
-configuration and want to use your own </sub>/.zshrc? How to procede? Copy your\r
+configuration and want to use your own </sub>/.zshrc? How to proceed? Copy your\r
.vimrc and .zshrc to $HOME of user <em>grml</em>. Place additional files in\r
$HOME/config. Now create a configuration for your files running:</p></div>\r
<div class="literalblock">\r
<div class="content">\r
-<pre><tt>save-config -home -configdir</tt></pre>\r
+<pre><code>save-config -home -configdir</code></pre>\r
</div></div>\r
<div class="paragraph"><p>Now you should have a file named config.tbz containing your configuration files.\r
You can copy the archive to a webserver and restore it via downloading during\r
reboot using the following commandline on bootprompt:</p></div>\r
<div class="literalblock">\r
<div class="content">\r
-<pre><tt>grml netconfig=server.tld/path/to/config.tbz</tt></pre>\r
+<pre><code>grml netconfig=server.tld/path/to/config.tbz</code></pre>\r
</div></div>\r
-<div class="paragraph"><p>You don’t have network access but own a floppy drive? Copy the file to a floppy\r
-disk and boot with:</p></div>\r
+<div class="paragraph"><p>You don’t have network access but own a USB device? Copy the file to a USB\r
+device and boot with something like:</p></div>\r
<div class="literalblock">\r
<div class="content">\r
-<pre><tt>grml myconfig=/dev/fd0</tt></pre>\r
-</div></div>\r
-<div class="paragraph"><p>Floppy is to small or to slow? Ok, let’s use a usb device:</p></div>\r
-<div class="literalblock">\r
-<div class="content">\r
-<pre><tt>grml myconfig=/dev/sda1</tt></pre>\r
+<pre><code>grml myconfig=/dev/sda1</code></pre>\r
</div></div>\r
</div>\r
<div class="sect2">\r
the following command as user root:</p></div>\r
<div class="literalblock">\r
<div class="content">\r
-<pre><tt>save-config -etc</tt></pre>\r
+<pre><code>save-config -etc</code></pre>\r
</div></div>\r
<div class="paragraph"><p>Now you should have a file named config.tbz containing your configuration files.\r
-If you want to use it with a floppy disk copy the file to a floppy and boot via\r
-using the following command on bootprompt:</p></div>\r
-<div class="literalblock">\r
-<div class="content">\r
-<pre><tt>grml myconfig=/dev/fd0</tt></pre>\r
-</div></div>\r
-<div class="paragraph"><p>Floppy is to small or to slow? Ok, let’s use a usb device:</p></div>\r
+If you want to use it with a USB device copy the file to it and boot via\r
+using the following command on boot prompt:</p></div>\r
<div class="literalblock">\r
<div class="content">\r
-<pre><tt>grml myconfig=/dev/sda1</tt></pre>\r
+<pre><code>grml myconfig=/dev/sda1</code></pre>\r
</div></div>\r
<div class="paragraph"><p>You do have an existing harddisk installation and want to use its configuration?\r
-Let’s say the debian system is located in /dev/sda2. You want to use the\r
+Let’s say the Debian system is located in /dev/sda2. You want to use the\r
directory /etc/network. This directory is activated by default in\r
/etc/grml/partconf so we don’t have to do any further work. We just need to\r
activate it via using the following commandline on bootprompt:</p></div>\r
<div class="literalblock">\r
<div class="content">\r
-<pre><tt>grml partconf=/dev/sda2</tt></pre>\r
+<pre><code>grml partconf=/dev/sda2</code></pre>\r
</div></div>\r
</div>\r
<div class="sect2">\r
<div class="paragraph"><p>Let’s assume you have burned the Grml iso to a CD-RW using a commandline like:</p></div>\r
<div class="literalblock">\r
<div class="content">\r
-<pre><tt>cdrecord dev=/dev/hdc -v -multi -tao grml_0.5.iso</tt></pre>\r
+<pre><code>cdrecord dev=/dev/hdc -v -multi -tao grml_0.5.iso</code></pre>\r
</div></div>\r
<div class="paragraph"><p>Now create a directory named debs and place foobar.deb in it:</p></div>\r
<div class="literalblock">\r
<div class="content">\r
-<pre><tt>mkdir debs/ && cp foobar.deb debs/</tt></pre>\r
+<pre><code>mkdir debs/ && cp foobar.deb debs/</code></pre>\r
</div></div>\r
-<div class="paragraph"><p>Notice: This directory will be located in /live/image after burning the second\r
+<div class="paragraph"><p>Notice: This directory will be located in /lib/live/mount/medium after burning the second\r
session.</p></div>\r
<div class="paragraph"><p>Now create the second session containing this directory:</p></div>\r
<div class="literalblock">\r
<div class="content">\r
-<pre><tt>mkisofs -M grml_0.5.iso -C `cdrecord -msinfo dev=/dev/hdc` -R -o 2nd_session.iso debs</tt></pre>\r
+<pre><code>mkisofs -M grml_0.5.iso -C `cdrecord -msinfo dev=/dev/hdc` -R -o 2nd_session.iso debs</code></pre>\r
</div></div>\r
<div class="paragraph"><p>Finally append the second session to the cd using:</p></div>\r
<div class="literalblock">\r
<div class="content">\r
-<pre><tt>cdrecord dev=/dev/hdc -v -multi -tao 2nd_session.iso</tt></pre>\r
+<pre><code>cdrecord dev=/dev/hdc -v -multi -tao 2nd_session.iso</code></pre>\r
</div></div>\r
<div class="admonitionblock">\r
<table><tr>\r
<div class="paragraph"><p>Now boot from your new personalized Grml CD using the debs parameter:</p></div>\r
<div class="literalblock">\r
<div class="content">\r
-<pre><tt>grml debs</tt></pre>\r
+<pre><code>grml debs</code></pre>\r
</div></div>\r
</div>\r
<div class="sect2">\r
<h3 id="_run_your_own_commands_on_startup">Run your own commands on startup</h3>\r
-<div class="paragraph"><p>You know that booting with <em>grml service=foobar</em> executes /etc/init.d/foobar\r
-when booting Grml. But you want to setup a more complex network configuration,\r
-adjust some other stuff and so on on your own? Just write a script named grml.sh\r
-which does the job and use own of the mentioned bootparams. Let’s say you have\r
-placed grml.sh on your usb device (usb stick) then use the following commandline\r
-on bootprompt:</p></div>\r
+<div class="paragraph"><p>You know that booting with <em>grml services=foobar</em> executes\r
+/etc/init.d/foobar when booting Grml. But you want to setup a more\r
+complex network configuration, adjust some other stuff and so on, on\r
+your own? Just write a script named grml.sh which does the job and use\r
+one of the mentioned boot parameters. Let’s say you have placed grml.sh\r
+on your usb device (usb stick) then use the following commandline on\r
+bootprompt:</p></div>\r
<div class="literalblock">\r
<div class="content">\r
-<pre><tt>grml myconfig=/dev/sda1</tt></pre>\r
+<pre><code>grml myconfig=/dev/sda1</code></pre>\r
</div></div>\r
-<div class="paragraph"><p>Or even better: create a floppy disk with label GRMLCFG running:</p></div>\r
+<div class="paragraph"><p>Or even better: create a device with label GRMLCFG running (adjust /dev/sdX1\r
+according to your needs):</p></div>\r
<div class="literalblock">\r
<div class="content">\r
-<pre><tt>fdformat /dev/fd0 # format the floppy disk if not done already\r
-mkfs.ext2 -L GRMLCFG /dev/fd0 # now create ext2 filesystem with label GRMLCFG on it:</tt></pre>\r
+<pre><code>mkfs.ext3 -L GRMLCFG /dev/sdX1 # warning: this destroys all data on /dev/sdX1</code></pre>\r
</div></div>\r
<div class="admonitionblock">\r
<table><tr>\r
documentation/manpage of the filesystem you want to use.</td>\r
</tr></table>\r
</div>\r
-<div class="paragraph"><p>Now place your configuration archive (see save-config and the other usage\r
-scenarios) and the script grml.sh on the floppy disk. Now you can boot your\r
-system without specifying any bootparameters on bootprompt because devices\r
-labeled with GRMLCFG are mounted readonly and used by default. If you did not\r
-label your device you can use the device anyway using <em>grml myconfig=/dev/ice</em>\r
-on the bootprompt.</p></div>\r
+<div class="paragraph"><p>Now place your configuration archive (see save-config and the other\r
+usage scenarios) and the script grml.sh on the device. Now you can boot\r
+your system without specifying any boot parameters on bootprompt because\r
+devices labeled with GRMLCFG are mounted readonly and used by default.\r
+If you did not label your device you can use the device anyway using\r
+<em>grml myconfig=/dev/sdX</em> (adjust /dev/sdX) on the bootprompt.</p></div>\r
</div>\r
<div class="sect2">\r
<h3 id="_debug_remote_systems">Debug remote systems</h3>\r
/etc/network is predefined in /etc/grml/partconf the configuration from\r
/dev/sda2 will be taken.</p></div>\r
<div class="paragraph"><p>Or you use a standard Grml medium and have grml read IP address, netmask and\r
-default gateway from another medium like a floppy or an USB stick. Take a look\r
-at the script saveconfig and the boot parameter myconfig.</p></div>\r
+default gateway from another medium like a USB stick. Take a look at the script\r
+saveconfig and the boot parameter myconfig.</p></div>\r
<div class="paragraph"><p>Or you put a grml.iso file on your hard disk (maybe in /boot/grml) or on an USB\r
stick, use grub to boot from there and place debs, configuration scripts or Grml\r
-configuraton archives alongside the .iso.</p></div>\r
+configuration archives alongside the .iso.</p></div>\r
</div>\r
</div>\r
</div>\r
<div id="footnotes"><hr /></div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 2011-05-22 13:13:56 CEST\r
+Last updated 2014-03-20 16:07:25 CET\r
</div>\r
</div>\r
</body>\r