434a1e194c267570f7eb7d97296fadba8bf8e6e7
[grml.org.git] / grml2usb / index.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.5.2" />\r
7 <title>grml2usb(8)</title>\r
8 <style type="text/css">\r
9 /* Debug borders */\r
10 p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
11 /*\r
12   border: 1px solid red;\r
13 */\r
14 }\r
15 \r
16 body {\r
17   margin: 1em 5% 1em 5%;\r
18 }\r
19 \r
20 a {\r
21   color: blue;\r
22   text-decoration: underline;\r
23 }\r
24 a:visited {\r
25   color: fuchsia;\r
26 }\r
27 \r
28 em {\r
29   font-style: italic;\r
30   color: navy;\r
31 }\r
32 \r
33 strong {\r
34   font-weight: bold;\r
35   color: #083194;\r
36 }\r
37 \r
38 tt {\r
39   color: navy;\r
40 }\r
41 \r
42 h1, h2, h3, h4, h5, h6 {\r
43   color: #527bbd;\r
44   font-family: sans-serif;\r
45   margin-top: 1.2em;\r
46   margin-bottom: 0.5em;\r
47   line-height: 1.3;\r
48 }\r
49 \r
50 h1, h2, h3 {\r
51   border-bottom: 2px solid silver;\r
52 }\r
53 h2 {\r
54   padding-top: 0.5em;\r
55 }\r
56 h3 {\r
57   float: left;\r
58 }\r
59 h3 + * {\r
60   clear: left;\r
61 }\r
62 \r
63 div.sectionbody {\r
64   font-family: serif;\r
65   margin-left: 0;\r
66 }\r
67 \r
68 hr {\r
69   border: 1px solid silver;\r
70 }\r
71 \r
72 p {\r
73   margin-top: 0.5em;\r
74   margin-bottom: 0.5em;\r
75 }\r
76 \r
77 ul, ol, li > p {\r
78   margin-top: 0;\r
79 }\r
80 \r
81 pre {\r
82   padding: 0;\r
83   margin: 0;\r
84 }\r
85 \r
86 span#author {\r
87   color: #527bbd;\r
88   font-family: sans-serif;\r
89   font-weight: bold;\r
90   font-size: 1.1em;\r
91 }\r
92 span#email {\r
93 }\r
94 span#revnumber, span#revdate, span#revremark {\r
95   font-family: sans-serif;\r
96 }\r
97 \r
98 div#footer {\r
99   font-family: sans-serif;\r
100   font-size: small;\r
101   border-top: 2px solid silver;\r
102   padding-top: 0.5em;\r
103   margin-top: 4.0em;\r
104 }\r
105 div#footer-text {\r
106   float: left;\r
107   padding-bottom: 0.5em;\r
108 }\r
109 div#footer-badges {\r
110   float: right;\r
111   padding-bottom: 0.5em;\r
112 }\r
113 \r
114 div#preamble {\r
115   margin-top: 1.5em;\r
116   margin-bottom: 1.5em;\r
117 }\r
118 div.tableblock, div.imageblock, div.exampleblock, div.verseblock,\r
119 div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,\r
120 div.admonitionblock {\r
121   margin-top: 1.0em;\r
122   margin-bottom: 1.5em;\r
123 }\r
124 div.admonitionblock {\r
125   margin-top: 2.0em;\r
126   margin-bottom: 2.0em;\r
127   margin-right: 10%;\r
128   color: #606060;\r
129 }\r
130 \r
131 div.content { /* Block element content. */\r
132   padding: 0;\r
133 }\r
134 \r
135 /* Block element titles. */\r
136 div.title, caption.title {\r
137   color: #527bbd;\r
138   font-family: sans-serif;\r
139   font-weight: bold;\r
140   text-align: left;\r
141   margin-top: 1.0em;\r
142   margin-bottom: 0.5em;\r
143 }\r
144 div.title + * {\r
145   margin-top: 0;\r
146 }\r
147 \r
148 td div.title:first-child {\r
149   margin-top: 0.0em;\r
150 }\r
151 div.content div.title:first-child {\r
152   margin-top: 0.0em;\r
153 }\r
154 div.content + div.title {\r
155   margin-top: 0.0em;\r
156 }\r
157 \r
158 div.sidebarblock > div.content {\r
159   background: #ffffee;\r
160   border: 1px solid silver;\r
161   padding: 0.5em;\r
162 }\r
163 \r
164 div.listingblock > div.content {\r
165   border: 1px solid silver;\r
166   background: #f4f4f4;\r
167   padding: 0.5em;\r
168 }\r
169 \r
170 div.quoteblock, div.verseblock {\r
171   padding-left: 1.0em;\r
172   margin-left: 1.0em;\r
173   margin-right: 10%;\r
174   border-left: 5px solid #dddddd;\r
175   color: #777777;\r
176 }\r
177 \r
178 div.quoteblock > div.attribution {\r
179   padding-top: 0.5em;\r
180   text-align: right;\r
181 }\r
182 \r
183 div.verseblock > div.content {\r
184   white-space: pre;\r
185 }\r
186 div.verseblock > div.attribution {\r
187   padding-top: 0.75em;\r
188   text-align: left;\r
189 }\r
190 /* DEPRECATED: Pre version 8.2.7 verse style literal block. */\r
191 div.verseblock + div.attribution {\r
192   text-align: left;\r
193 }\r
194 \r
195 div.admonitionblock .icon {\r
196   vertical-align: top;\r
197   font-size: 1.1em;\r
198   font-weight: bold;\r
199   text-decoration: underline;\r
200   color: #527bbd;\r
201   padding-right: 0.5em;\r
202 }\r
203 div.admonitionblock td.content {\r
204   padding-left: 0.5em;\r
205   border-left: 3px solid #dddddd;\r
206 }\r
207 \r
208 div.exampleblock > div.content {\r
209   border-left: 3px solid #dddddd;\r
210   padding-left: 0.5em;\r
211 }\r
212 \r
213 div.imageblock div.content { padding-left: 0; }\r
214 span.image img { border-style: none; }\r
215 a.image:visited { color: white; }\r
216 \r
217 dl {\r
218   margin-top: 0.8em;\r
219   margin-bottom: 0.8em;\r
220 }\r
221 dt {\r
222   margin-top: 0.5em;\r
223   margin-bottom: 0;\r
224   font-style: normal;\r
225   color: navy;\r
226 }\r
227 dd > *:first-child {\r
228   margin-top: 0.1em;\r
229 }\r
230 \r
231 ul, ol {\r
232     list-style-position: outside;\r
233 }\r
234 ol.arabic {\r
235   list-style-type: decimal;\r
236 }\r
237 ol.loweralpha {\r
238   list-style-type: lower-alpha;\r
239 }\r
240 ol.upperalpha {\r
241   list-style-type: upper-alpha;\r
242 }\r
243 ol.lowerroman {\r
244   list-style-type: lower-roman;\r
245 }\r
246 ol.upperroman {\r
247   list-style-type: upper-roman;\r
248 }\r
249 \r
250 div.compact ul, div.compact ol,\r
251 div.compact p, div.compact p,\r
252 div.compact div, div.compact div {\r
253   margin-top: 0.1em;\r
254   margin-bottom: 0.1em;\r
255 }\r
256 \r
257 div.tableblock > table {\r
258   border: 3px solid #527bbd;\r
259 }\r
260 thead, p.table.header {\r
261   font-family: sans-serif;\r
262   font-weight: bold;\r
263 }\r
264 tfoot {\r
265   font-weight: bold;\r
266 }\r
267 td > div.verse {\r
268   white-space: pre;\r
269 }\r
270 p.table {\r
271   margin-top: 0;\r
272 }\r
273 /* Because the table frame attribute is overriden by CSS in most browsers. */\r
274 div.tableblock > table[frame="void"] {\r
275   border-style: none;\r
276 }\r
277 div.tableblock > table[frame="hsides"] {\r
278   border-left-style: none;\r
279   border-right-style: none;\r
280 }\r
281 div.tableblock > table[frame="vsides"] {\r
282   border-top-style: none;\r
283   border-bottom-style: none;\r
284 }\r
285 \r
286 \r
287 div.hdlist {\r
288   margin-top: 0.8em;\r
289   margin-bottom: 0.8em;\r
290 }\r
291 div.hdlist tr {\r
292   padding-bottom: 15px;\r
293 }\r
294 dt.hdlist1.strong, td.hdlist1.strong {\r
295   font-weight: bold;\r
296 }\r
297 td.hdlist1 {\r
298   vertical-align: top;\r
299   font-style: normal;\r
300   padding-right: 0.8em;\r
301   color: navy;\r
302 }\r
303 td.hdlist2 {\r
304   vertical-align: top;\r
305 }\r
306 div.hdlist.compact tr {\r
307   margin: 0;\r
308   padding-bottom: 0;\r
309 }\r
310 \r
311 .comment {\r
312   background: yellow;\r
313 }\r
314 \r
315 .footnote, .footnoteref {\r
316   font-size: 0.8em;\r
317 }\r
318 \r
319 span.footnote, span.footnoteref {\r
320   vertical-align: super;\r
321 }\r
322 \r
323 #footnotes {\r
324   margin: 20px 0 20px 0;\r
325   padding: 7px 0 0 0;\r
326 }\r
327 \r
328 #footnotes div.footnote {\r
329   margin: 0 0 5px 0;\r
330 }\r
331 \r
332 #footnotes hr {\r
333   border: none;\r
334   border-top: 1px solid silver;\r
335   height: 1px;\r
336   text-align: left;\r
337   margin-left: 0;\r
338   width: 20%;\r
339   min-width: 100px;\r
340 }\r
341 \r
342 \r
343 @media print {\r
344   div#footer-badges { display: none; }\r
345 }\r
346 \r
347 div#toc {\r
348   margin-bottom: 2.5em;\r
349 }\r
350 \r
351 div#toctitle {\r
352   color: #527bbd;\r
353   font-family: sans-serif;\r
354   font-size: 1.1em;\r
355   font-weight: bold;\r
356   margin-top: 1.0em;\r
357   margin-bottom: 0.1em;\r
358 }\r
359 \r
360 div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
361   margin-top: 0;\r
362   margin-bottom: 0;\r
363 }\r
364 div.toclevel2 {\r
365   margin-left: 2em;\r
366   font-size: 0.9em;\r
367 }\r
368 div.toclevel3 {\r
369   margin-left: 4em;\r
370   font-size: 0.9em;\r
371 }\r
372 div.toclevel4 {\r
373   margin-left: 6em;\r
374   font-size: 0.9em;\r
375 }\r
376 /* Workarounds for IE6's broken and incomplete CSS2. */\r
377 \r
378 div.sidebar-content {\r
379   background: #ffffee;\r
380   border: 1px solid silver;\r
381   padding: 0.5em;\r
382 }\r
383 div.sidebar-title, div.image-title {\r
384   color: #527bbd;\r
385   font-family: sans-serif;\r
386   font-weight: bold;\r
387   margin-top: 0.0em;\r
388   margin-bottom: 0.5em;\r
389 }\r
390 \r
391 div.listingblock div.content {\r
392   border: 1px solid silver;\r
393   background: #f4f4f4;\r
394   padding: 0.5em;\r
395 }\r
396 \r
397 div.quoteblock-attribution {\r
398   padding-top: 0.5em;\r
399   text-align: right;\r
400 }\r
401 \r
402 div.verseblock-content {\r
403   white-space: pre;\r
404 }\r
405 div.verseblock-attribution {\r
406   padding-top: 0.75em;\r
407   text-align: left;\r
408 }\r
409 \r
410 div.exampleblock-content {\r
411   border-left: 3px solid #dddddd;\r
412   padding-left: 0.5em;\r
413 }\r
414 \r
415 /* IE6 sets dynamically generated links as visited. */\r
416 div#toc a:visited { color: blue; }\r
417 </style>\r
418 <script type="text/javascript">\r
419 /*<![CDATA[*/\r
420 window.onload = function(){asciidoc.footnotes(); asciidoc.toc(2);}\r
421 var asciidoc = {  // Namespace.\r
422 \r
423 /////////////////////////////////////////////////////////////////////\r
424 // Table Of Contents generator\r
425 /////////////////////////////////////////////////////////////////////\r
426 \r
427 /* Author: Mihai Bazon, September 2002\r
428  * http://students.infoiasi.ro/~mishoo\r
429  *\r
430  * Table Of Content generator\r
431  * Version: 0.4\r
432  *\r
433  * Feel free to use this script under the terms of the GNU General Public\r
434  * License, as long as you do not remove or alter this notice.\r
435  */\r
436 \r
437  /* modified by Troy D. Hanson, September 2006. License: GPL */\r
438  /* modified by Stuart Rackham, 2006, 2009. License: GPL */\r
439 \r
440 // toclevels = 1..4.\r
441 toc: function (toclevels) {\r
442 \r
443   function getText(el) {\r
444     var text = "";\r
445     for (var i = el.firstChild; i != null; i = i.nextSibling) {\r
446       if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.\r
447         text += i.data;\r
448       else if (i.firstChild != null)\r
449         text += getText(i);\r
450     }\r
451     return text;\r
452   }\r
453 \r
454   function TocEntry(el, text, toclevel) {\r
455     this.element = el;\r
456     this.text = text;\r
457     this.toclevel = toclevel;\r
458   }\r
459 \r
460   function tocEntries(el, toclevels) {\r
461     var result = new Array;\r
462     var re = new RegExp('[hH]([2-'+(toclevels+1)+'])');\r
463     // Function that scans the DOM tree for header elements (the DOM2\r
464     // nodeIterator API would be a better technique but not supported by all\r
465     // browsers).\r
466     var iterate = function (el) {\r
467       for (var i = el.firstChild; i != null; i = i.nextSibling) {\r
468         if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {\r
469           var mo = re.exec(i.tagName);\r
470           if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {\r
471             result[result.length] = new TocEntry(i, getText(i), mo[1]-1);\r
472           }\r
473           iterate(i);\r
474         }\r
475       }\r
476     }\r
477     iterate(el);\r
478     return result;\r
479   }\r
480 \r
481   var toc = document.getElementById("toc");\r
482   var entries = tocEntries(document.getElementById("content"), toclevels);\r
483   for (var i = 0; i < entries.length; ++i) {\r
484     var entry = entries[i];\r
485     if (entry.element.id == "")\r
486       entry.element.id = "_toc_" + i;\r
487     var a = document.createElement("a");\r
488     a.href = "#" + entry.element.id;\r
489     a.appendChild(document.createTextNode(entry.text));\r
490     var div = document.createElement("div");\r
491     div.appendChild(a);\r
492     div.className = "toclevel" + entry.toclevel;\r
493     toc.appendChild(div);\r
494   }\r
495   if (entries.length == 0)\r
496     toc.parentNode.removeChild(toc);\r
497 },\r
498 \r
499 \r
500 /////////////////////////////////////////////////////////////////////\r
501 // Footnotes generator\r
502 /////////////////////////////////////////////////////////////////////\r
503 \r
504 /* Based on footnote generation code from:\r
505  * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html\r
506  */\r
507 \r
508 footnotes: function () {\r
509   var cont = document.getElementById("content");\r
510   var noteholder = document.getElementById("footnotes");\r
511   var spans = cont.getElementsByTagName("span");\r
512   var refs = {};\r
513   var n = 0;\r
514   for (i=0; i<spans.length; i++) {\r
515     if (spans[i].className == "footnote") {\r
516       n++;\r
517       // Use [\s\S] in place of . so multi-line matches work.\r
518       // Because JavaScript has no s (dotall) regex flag.\r
519       note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];\r
520       noteholder.innerHTML +=\r
521         "<div class='footnote' id='_footnote_" + n + "'>" +\r
522         "<a href='#_footnoteref_" + n + "' title='Return to text'>" +\r
523         n + "</a>. " + note + "</div>";\r
524       spans[i].innerHTML =\r
525         "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +\r
526         "' title='View footnote' class='footnote'>" + n + "</a>]";\r
527       var id =spans[i].getAttribute("id");\r
528       if (id != null) refs["#"+id] = n;\r
529     }\r
530   }\r
531   if (n == 0)\r
532     noteholder.parentNode.removeChild(noteholder);\r
533   else {\r
534     // Process footnoterefs.\r
535     for (i=0; i<spans.length; i++) {\r
536       if (spans[i].className == "footnoteref") {\r
537         var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");\r
538         href = href.match(/#.*/)[0];  // Because IE return full URL.\r
539         n = refs[href];\r
540         spans[i].innerHTML =\r
541           "[<a href='#_footnote_" + n +\r
542           "' title='View footnote' class='footnote'>" + n + "</a>]";\r
543       }\r
544     }\r
545   }\r
546 }\r
547 \r
548 }\r
549 /*]]>*/\r
550 </script>\r
551 </head>\r
552 <body>\r
553 <div id="header">\r
554 <h1>grml2usb(8)</h1>\r
555 <div id="toc">\r
556   <div id="toctitle">Table of Contents</div>\r
557   <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>\r
558 </div>\r
559 </div>\r
560 <div id="content">\r
561 <h2 id="_name">1. Name</h2>\r
562 <div class="sectionbody">\r
563 <div class="paragraph"><p>grml2usb - install grml ISO(s) on usb device for booting</p></div>\r
564 </div>\r
565 <h2 id="_synopsis">2. Synopsis</h2>\r
566 <div class="sectionbody">\r
567 <div class="paragraph"><p>grml2usb [ options ] &lt;ISO[s]&gt; &lt;device&gt;</p></div>\r
568 <div class="sidebarblock">\r
569 <div class="sidebar-content">\r
570 <div class="paragraph"><p>Important! The grml team does not take responsibility for loss of any data!</p></div>\r
571 </div></div>\r
572 </div>\r
573 <h2 id="introduction">3. Introduction</h2>\r
574 <div class="sectionbody">\r
575 <div class="paragraph"><p>grml2usb installs grml on a given partition of your usb device and makes it\r
576 bootable. It provides multi-iso support, meaning you can specify several grml\r
577 ISOs on the command line at once and select the grml flavour you would like to\r
578 boot on the bootprompt then. Note that the <strong>first</strong> ISO specified on the grml2usb\r
579 command line will become the default one (that&#8217;s the one that will boot when\r
580 just pressing enter on the bootprompt or wait until the boot timeout matches).</p></div>\r
581 <div class="admonitionblock">\r
582 <table><tr>\r
583 <td class="icon">\r
584 <img src="./images/icons/important.png" alt="Important" />\r
585 </td>\r
586 <td class="content">By default a compatible master boot record (MBR) is installed on the device\r
587 (being for example /dev/sdX when executing <em>grml2usb grml.iso /dev/sdX1</em>) and\r
588 syslinux is being used as default bootloader. Avoid installation of the default\r
589 MBR using the <em>--skip-mbr</em> option or if you encounter any problems with the\r
590 default MBR consider using <em>--syslinux-mbr</em> instead.</td>\r
591 </tr></table>\r
592 </div>\r
593 <div class="admonitionblock">\r
594 <table><tr>\r
595 <td class="icon">\r
596 <img src="./images/icons/note.png" alt="Note" />\r
597 </td>\r
598 <td class="content">Whereas grml2usb is the script to install recent grml ISOs (&gt;=2009.10) the\r
599 script grml2usb-compat supports older grml releases (&lt;2009.10) as well.</td>\r
600 </tr></table>\r
601 </div>\r
602 </div>\r
603 <h2 id="options">4. Options</h2>\r
604 <div class="sectionbody">\r
605 <div class="paragraph"><p>The ISO[s] should be the path to one or multiple grml-ISOs and/or the path to\r
606 the currently running live-system (being /live/image).</p></div>\r
607 <div class="paragraph"><p>The device either might be a device name like /dev/sdX1 or a directory. When\r
608 specifying a device name the device is mounted automatically. When specifying a\r
609 directory grml2usb is assuming that you did set up a bootloader on your own (or\r
610 don&#8217;t need one) and a bootloader won&#8217;t be installed automatically.</p></div>\r
611 <div class="paragraph"><p>The following options are supported:</p></div>\r
612 <div class="dlist"><dl>\r
613 <dt class="hdlist1">\r
614 <strong>--bootoptions=&#8230;</strong>\r
615 </dt>\r
616 <dd>\r
617 <p>\r
618 Use specified bootoptions as default. To use flavour name as a argument for a\r
619 boot parameter use %flavour which will be expanded to the flavour name.\r
620 </p>\r
621 </dd>\r
622 <dt class="hdlist1">\r
623 <strong>--bootloader-only</strong>\r
624 </dt>\r
625 <dd>\r
626 <p>\r
627 Do <strong>not</strong> copy files but instead just install a bootloader.  Note that the boot\r
628 addons are copied to /boot/addons at this stage as well.  If you want to skip\r
629 copying the boot addons consider using the --skip-addons option.\r
630 </p>\r
631 </dd>\r
632 <dt class="hdlist1">\r
633 <strong>--copy-only</strong>\r
634 </dt>\r
635 <dd>\r
636 <p>\r
637 Copy files only but do <strong>not</strong> install a bootloader.\r
638 </p>\r
639 </dd>\r
640 <dt class="hdlist1">\r
641 <strong>--dry-run</strong>\r
642 </dt>\r
643 <dd>\r
644 <p>\r
645 Avoid executing commands, instead show what would be executed.\r
646 Warning: please notice that the ISO has to be mounted anyway, otherwise\r
647 identifying the grml flavour would not be possible.\r
648 </p>\r
649 </dd>\r
650 <dt class="hdlist1">\r
651 <strong>--fat16</strong>\r
652 </dt>\r
653 <dd>\r
654 <p>\r
655 Format specified partition with FAT16.\r
656 <strong>Important:</strong> this will destroy any existing data on the specified partition!\r
657 </p>\r
658 </dd>\r
659 <dt class="hdlist1">\r
660 <strong>--force</strong>\r
661 </dt>\r
662 <dd>\r
663 <p>\r
664 Force any (possible dangerous) actions requiring manual interaction (like --fat16).\r
665 </p>\r
666 </dd>\r
667 <dt class="hdlist1">\r
668 <strong>--grub</strong>\r
669 </dt>\r
670 <dd>\r
671 <p>\r
672 Install grub bootloader instead of (default) syslinux.\r
673 </p>\r
674 </dd>\r
675 <dt class="hdlist1">\r
676 <strong>--grub-mbr</strong>\r
677 </dt>\r
678 <dd>\r
679 <p>\r
680 Install grub into MBR (Master Boot Record) instead of PBR (Partition Boot\r
681 Record). Check out <a href="#mbr-vs-pbr">the <em>mbr-vs-pbr</em> section in the FAQ of this document</a> for further details.\r
682 </p>\r
683 </dd>\r
684 <dt class="hdlist1">\r
685 <strong>--help</strong>\r
686 </dt>\r
687 <dd>\r
688 <p>\r
689 Display usage information and exit.\r
690 </p>\r
691 </dd>\r
692 </dl></div>\r
693 <div class="dlist"><dl>\r
694 <dt class="hdlist1">\r
695 <strong>--lilo-binary=&#8230;</strong>\r
696 </dt>\r
697 <dd>\r
698 <p>\r
699 Use specified lilo executable for installing master boot record (MBR) when using\r
700 the <em>--syslinux-mbr</em> option. By default any system wide (from $PATH) lilo\r
701 executable is taken.  If there can not be find any lilo executable the\r
702 statically compiled version of the grml2usb Debian package (see\r
703 /usr/share/grml2usb/lilo/lilo.static.[amd64|i386]) is taken.\r
704 </p>\r
705 </dd>\r
706 <dt class="hdlist1">\r
707 <strong>--mbr-menu</strong>\r
708 </dt>\r
709 <dd>\r
710 <p>\r
711 Install master boot record (MBR) with integrated boot menu: interactively choose\r
712 the partition to boot from, with a timeout to load the default partition, or\r
713 boot from floppy. When NOT using the --mbr-menu option a MBR with LBA and large\r
714 disc support but without an integrated boot menu is installed (so it&#8217;s not\r
715 visible at all but instead directly jumps to the bootloader - being grub or\r
716 syslinux). Note: This options is available only when using the default MBR and\r
717 won&#8217;t have any effect if you&#8217;re using the <em>--syslinux-mbr</em> option.\r
718 </p>\r
719 </dd>\r
720 <dt class="hdlist1">\r
721 <strong>--quiet</strong>\r
722 </dt>\r
723 <dd>\r
724 <p>\r
725 Do not output anything but just errors on console.\r
726 </p>\r
727 </dd>\r
728 <dt class="hdlist1">\r
729 <strong>--skip-addons</strong>\r
730 </dt>\r
731 <dd>\r
732 <p>\r
733 Do not install /boot/addons/ files (like dos, grub, memdisk,&#8230;).\r
734 </p>\r
735 </dd>\r
736 <dt class="hdlist1">\r
737 <strong>--remove-bootoption=&#8230;</strong>\r
738 </dt>\r
739 <dd>\r
740 <p>\r
741 Remove specified bootoption (could be a regex) from existing boot options. Use\r
742 multiple entries for removing different bootoptions at once. (Note: this option\r
743 is not support in grml2usb-compat.)\r
744 </p>\r
745 </dd>\r
746 <dt class="hdlist1">\r
747 <strong>--skip-grub-config</strong>\r
748 </dt>\r
749 <dd>\r
750 <p>\r
751 Skip generation of grub configuration files. By default the configuration\r
752 files for syslinux <strong>and</strong> grub will be written so you&#8217;ve a working configuration\r
753 file no matter whether you&#8217;re using grub or syslinux as bootloader.\r
754 </p>\r
755 </dd>\r
756 <dt class="hdlist1">\r
757 <strong>--skip-mbr</strong>\r
758 </dt>\r
759 <dd>\r
760 <p>\r
761 Do not touch/install the master boot record (MBR).\r
762 </p>\r
763 </dd>\r
764 <dt class="hdlist1">\r
765 <strong>--skip-syslinux-config</strong>\r
766 </dt>\r
767 <dd>\r
768 <p>\r
769 Skip generation of syslinux configuration files. By default the configuration\r
770 files for syslinux <strong>and</strong> grub will be written so you&#8217;ve a working configuration\r
771 file no matter whether you&#8217;re using grub or syslinux as bootloader.\r
772 </p>\r
773 </dd>\r
774 <dt class="hdlist1">\r
775 <strong>--syslinux</strong>\r
776 </dt>\r
777 <dd>\r
778 <p>\r
779 This option is deprecated and is being left only for backwards compatibility\r
780 reasons. Syslinux is the default bootloader of grml2usb and therefore the\r
781 <em>--syslinux</em> option doesn&#8217;t have any effects. If you do not want to use syslinux\r
782 as bootloader consider using the <em>--grub</em> option.\r
783 </p>\r
784 </dd>\r
785 <dt class="hdlist1">\r
786 <strong>--syslinux-mbr</strong>\r
787 </dt>\r
788 <dd>\r
789 <p>\r
790 Install syslinux' master boot record (MBR, which is booting from the partition\r
791 with the "active" flag set) instead of the default one.  If you encounter any\r
792 problems with the default MBR you can try using the syslinux MBR instead. If\r
793 that works for you please <a href="#author">let us know</a> so we can adjust our default\r
794 MBR accordingly. Note: When using the <em>--syslinux-mbr</em> option lilo is executed\r
795 before the MBR is installed so the according partitions are set active.\r
796 </p>\r
797 </dd>\r
798 </dl></div>\r
799 <div class="dlist"><dl>\r
800 <dt class="hdlist1">\r
801 <strong>-v</strong>, <strong>--version</strong>\r
802 </dt>\r
803 <dd>\r
804 <p>\r
805 Return version and exit.\r
806 </p>\r
807 </dd>\r
808 <dt class="hdlist1">\r
809 <strong>--verbose</strong>\r
810 </dt>\r
811 <dd>\r
812 <p>\r
813 Enable verbose mode.\r
814 </p>\r
815 </dd>\r
816 </dl></div>\r
817 </div>\r
818 <h2 id="_developers_corner">5. Developers Corner</h2>\r
819 <div class="sectionbody">\r
820 <h3 id="directory-layout">5.1. Directory layout on usb device</h3><div style="clear:left"></div>\r
821 <div class="literalblock">\r
822 <div class="content">\r
823 <pre><tt>boot/ -&gt;\r
824   |-- addons/\r
825   |   |-- allinone.img     [grub - all in one image]\r
826   |   |-- bsd4grml/        [MirBSD]\r
827   |   |-- balder10.imz     [FreeDOS]\r
828   |   |-- memdisk          [chainloading helper]\r
829   |   |-- memtest          [memtest86+]\r
830   |-- release/\r
831   |   |-- grml/\r
832   |   |   |-- linux26      [Kernel]\r
833   |   |   |-- initrd.gz    [initramfs]\r
834   |   |-- grml64\r
835   |   |   |-- linux26      [Kernel]\r
836   |   |   |-- initrd.gz    [initramfs]\r
837   |   |-- grml-medium\r
838   |   |   |-- linux26      [...]\r
839   |   |   |-- initrd.gz\r
840   |   |-- grml64-medium\r
841   |   |   |-- linux26\r
842   |   |   |-- initrd.gz\r
843   |   |-- grml-small\r
844   |   |   |-- linux26\r
845   |   |   |-- initrd.gz\r
846   |   `-- grml64-small\r
847   |       |-- linux26\r
848   |       |-- initrd.gz\r
849   |-- grub/\r
850   |   |-- grml.png         [graphical bootsplash background image for grub2]\r
851   |   |-- grub.cfg         [configuration file for grub2]\r
852   |   |-- menu.lst         [configuration file for grub1]\r
853   |   |-- splash.xpm.gz    [splash screen for grub1]\r
854   `-- syslinux/\r
855       |-- grml.png         [graphical bootsplash background image for syslinux]\r
856       |-- syslinux.cfg     [main configuration file for syslinux]\r
857       `-- [....]           [several further config files for syslinux]</tt></pre>\r
858 </div></div>\r
859 <div class="literalblock">\r
860 <div class="content">\r
861 <pre><tt>grml/\r
862   |-- grml2usb.txt         [not yet implemented]\r
863   |-- grml-cheatcodes.txt  [list of bootoptions for grml]\r
864   |-- grml-version.txt     [file containing information about grml-version]\r
865   |-- LICENSE.txt          [license information]\r
866   |-- md5sums              [md5sums of original ISO]\r
867   |-- README.txt           [informational text]\r
868   `-- web/                 [browser related files]\r
869       |-- index.html\r
870       |-- style.css\r
871       `-- images/\r
872           |-- button.png\r
873           |-- favicon.png\r
874           |-- linux.jpg\r
875           `-- logo.png</tt></pre>\r
876 </div></div>\r
877 <div class="literalblock">\r
878 <div class="content">\r
879 <pre><tt>live/\r
880   |-- grml/\r
881   |   |-- filesystem.module    [module specifying which squashfs should be used for grml]\r
882   |   `-- grml.squashfs        [squashfs file for grml]\r
883   |-- grml-medium/\r
884   |   |-- filesystem.module    [module specifying which squashfs should be used for grml-medium]\r
885   |   `-- grml-medium.squashfs [squashfs file for grml-medium]\r
886   |-- grml-small/\r
887   |   |-- filesystem.module    [module specifying which squashfs should be used for grml-medium]\r
888   |   `-- grml-small.squashfs  [squashfs file for grml-small]\r
889   `-- ...</tt></pre>\r
890 </div></div>\r
891 <h3 id="source">5.2. Grabbing the source</h3><div style="clear:left"></div>\r
892 <div class="literalblock">\r
893 <div class="content">\r
894 <pre><tt>% git clone git://git.grml.org/grml2usb.git</tt></pre>\r
895 </div></div>\r
896 <h3 id="debugging">5.3. Developers Debugging Hints</h3><div style="clear:left"></div>\r
897 <div class="paragraph"><p>To play with grml2usb you can avoid using a real device via a loopback file\r
898 setup, like:</p></div>\r
899 <div class="literalblock">\r
900 <div class="content">\r
901 <pre><tt># dd if=/dev/zero of=~/loopback bs=1M count=100 # adjust size to your needs\r
902 # losetup /dev/loop1 ~/loopback</tt></pre>\r
903 </div></div>\r
904 <div class="paragraph"><p>Then create according partitions either running for example:</p></div>\r
905 <div class="literalblock">\r
906 <div class="content">\r
907 <pre><tt># echo -en "n\np\n1\n\n\nt\n6\na\n1\n w\n" | fdisk /dev/loop1</tt></pre>\r
908 </div></div>\r
909 <div class="paragraph"><p>or:</p></div>\r
910 <div class="literalblock">\r
911 <div class="content">\r
912 <pre><tt># parted /dev/loop1 -s "mkpart primary fat16 0 -1s mkfs 1 fat16"</tt></pre>\r
913 </div></div>\r
914 <div class="paragraph"><p>Finally create a filesystem and execute grml2usb as needed:</p></div>\r
915 <div class="literalblock">\r
916 <div class="content">\r
917 <pre><tt># mkfs.vfat /dev/loop1\r
918 # grml2usb --bootloader-only /grml/isos/grml-small_2009.10.iso /dev/loop1</tt></pre>\r
919 </div></div>\r
920 <h3 id="performance-tracing">5.4. Performance tracing</h3><div style="clear:left"></div>\r
921 <div class="literalblock">\r
922 <div class="content">\r
923 <pre><tt># blktrace -d /dev/sdX -o - | blkparse -i -\r
924 # grml2usb grml_2009.10.iso /dev/sdX1</tt></pre>\r
925 </div></div>\r
926 </div>\r
927 <h2 id="troubleshooting">6. Troubleshooting and Pitfalls when booting</h2>\r
928 <div class="sectionbody">\r
929 <div class="paragraph"><p>Here is a list of common error messages from BIOS/bootloader when trying to boot\r
930 from USB.</p></div>\r
931 <div class="hdlist"><table>\r
932 <tr>\r
933 <td class="hdlist1">\r
934 <strong>Error message</strong>\r
935 <br />\r
936 </td>\r
937 <td class="hdlist2">\r
938 <p style="margin-top: 0;">\r
939 ran out of input data. System halted\r
940 </p>\r
941 </td>\r
942 </tr>\r
943 <tr>\r
944 <td class="hdlist1">\r
945 <strong>Reason</strong>\r
946 <br />\r
947 </td>\r
948 <td class="hdlist2">\r
949 <p style="margin-top: 0;">\r
950 Everything OK, except for the filesystem used on your usb device. So\r
951 instead of fat16 you are using for example fat32. Fix: use the appropriate\r
952 filesystem (fat16 for usb pens usually). The Bootsplash might be displayed, the\r
953 kernel loads but you very soon get the error message.\r
954 </p>\r
955 </td>\r
956 </tr>\r
957 <tr>\r
958 <td class="hdlist1">\r
959 <strong>Error message</strong>\r
960 <br />\r
961 </td>\r
962 <td class="hdlist2">\r
963 <p style="margin-top: 0;">\r
964 Invalid operating system\r
965 </p>\r
966 </td>\r
967 </tr>\r
968 <tr>\r
969 <td class="hdlist1">\r
970 <strong>Reason</strong>\r
971 <br />\r
972 </td>\r
973 <td class="hdlist2">\r
974 <p style="margin-top: 0;">\r
975 the partition layout is not ok. Very probably there&#8217;s no primary\r
976   partition (/dev/sdX{1..4}) or none has the flag <em>bootable</em> set.\r
977 </p>\r
978 </td>\r
979 </tr>\r
980 <tr>\r
981 <td class="hdlist1">\r
982 <strong>Error message</strong>\r
983 <br />\r
984 </td>\r
985 <td class="hdlist2">\r
986 <p style="margin-top: 0;">\r
987 Boot error.\r
988 </p>\r
989 </td>\r
990 </tr>\r
991 <tr>\r
992 <td class="hdlist1">\r
993 <strong>Reason</strong>\r
994 <br />\r
995 </td>\r
996 <td class="hdlist2">\r
997 <p style="margin-top: 0;">\r
998 Some BIOSses offer different modes for USB booting. The proper mode\r
999 to boot a USB stick is USB-HDD. If that doesn’t work or is not supported by your\r
1000 system, you need to format your USB-Stick as USB-ZIP.  To do this, syslinux\r
1001 contains an utility called mkdiskimage, which you can use to re-format your USB\r
1002 stick in USB-ZIP format running <em>mkdiskimage -4 /dev/sdX 1 64 32</em>. Please be\r
1003 aware that this procedure will erase all data on your stick.  After executing\r
1004 mkdiskimage just continue installing as usual (grml2usb &#8230;  /dev/sdX4). Note\r
1005 that this is not going to work for any device larger than 8 GB, since\r
1006 mkdiskimage only supports 1024c 256h 63s. For a more detailed explanation, refer\r
1007 to /usr/share/doc/syslinux-common/usbkey.txt.\r
1008 </p>\r
1009 </td>\r
1010 </tr>\r
1011 <tr>\r
1012 <td class="hdlist1">\r
1013 <strong>Error message</strong>\r
1014 <br />\r
1015 </td>\r
1016 <td class="hdlist2">\r
1017 <p style="margin-top: 0;">\r
1018 No operating system found.\r
1019 </p>\r
1020 </td>\r
1021 </tr>\r
1022 <tr>\r
1023 <td class="hdlist1">\r
1024 <strong>Reason</strong>\r
1025 <br />\r
1026 </td>\r
1027 <td class="hdlist2">\r
1028 <p style="margin-top: 0;">\r
1029 you forgot to set the boot-flag on the partition. Or there really isn&#8217;t\r
1030 any operating system at all. :)\r
1031 </p>\r
1032 </td>\r
1033 </tr>\r
1034 <tr>\r
1035 <td class="hdlist1">\r
1036 <strong>Error message</strong>\r
1037 <br />\r
1038 </td>\r
1039 <td class="hdlist2">\r
1040 <p style="margin-top: 0;">\r
1041 kernel-panic: unable to mount root-fs&#8230;\r
1042 </p>\r
1043 </td>\r
1044 </tr>\r
1045 <tr>\r
1046 <td class="hdlist1">\r
1047 <strong>Reason</strong>\r
1048 <br />\r
1049 </td>\r
1050 <td class="hdlist2">\r
1051 <p style="margin-top: 0;">\r
1052 Kernel boots but fails to find the root filesystem. The root=\r
1053 argument in your kernel commandline is pointing to the wrong device. Adjust\r
1054 root=&#8230;, consider using root=UUID=&#8230;.\r
1055 </p>\r
1056 </td>\r
1057 </tr>\r
1058 <tr>\r
1059 <td class="hdlist1">\r
1060 <strong>Error message</strong>\r
1061 <br />\r
1062 </td>\r
1063 <td class="hdlist2">\r
1064 <p style="margin-top: 0;">\r
1065 Could not find kernel image: &#8230;\r
1066 </p>\r
1067 </td>\r
1068 </tr>\r
1069 <tr>\r
1070 <td class="hdlist1">\r
1071 <strong>Reason</strong>\r
1072 <br />\r
1073 </td>\r
1074 <td class="hdlist2">\r
1075 <p style="margin-top: 0;">\r
1076 either a broken isolinux/syslinux version or a broken BIOS. Check out\r
1077 whether the vendor provides a BIOS update or if using bootloader grub instead of\r
1078 isolinux/syslinux fixes the problem.\r
1079 </p>\r
1080 </td>\r
1081 </tr>\r
1082 </table></div>\r
1083 </div>\r
1084 <h2 id="faq">7. Frequently Asked Questions (FAQ)</h2>\r
1085 <div class="sectionbody">\r
1086 <h3 id="download">7.1. Where can I get grml2usb?</h3><div style="clear:left"></div>\r
1087 <div class="paragraph"><p>grml2usb is available as Debian package via <a href="http://deb.grml.org/">the\r
1088 grml-testing Debian repository</a>.</p></div>\r
1089 <div class="paragraph"><p>If you do not want to (or can&#8217;t) use the grml2usb Debian package you can either\r
1090 use the grml2usb git tree running:</p></div>\r
1091 <div class="literalblock">\r
1092 <div class="content">\r
1093 <pre><tt>git clone git://git.grml.org/grml2usb.git\r
1094 cd grml2usb\r
1095 make -C mbr\r
1096 sudo ./grml2usb ...</tt></pre>\r
1097 </div></div>\r
1098 <div class="paragraph"><p>or download the provided\r
1099 <a href="http://grml.org/grml2usb/grml2usb.tgz">http://grml.org/grml2usb/grml2usb.tgz</a>\r
1100 (<a href="http://grml.org/grml2usb/grml2usb.tgz.md5.asc">gpg signed md5 hash</a>).\r
1101 Download and extract the tarball and execute the provided script <em>install.sh</em>.</p></div>\r
1102 <div class="admonitionblock">\r
1103 <table><tr>\r
1104 <td class="icon">\r
1105 <img src="./images/icons/note.png" alt="Note" />\r
1106 </td>\r
1107 <td class="content">It is <strong>NOT</strong> enough to have just the grml2usb script itself without the according\r
1108 files provided either via the Debian package, the git tree or the file\r
1109 grml2usb.tgz.</td>\r
1110 </tr></table>\r
1111 </div>\r
1112 <h3 id="grml2hd-vs-grml2usb">7.2. What&#8217;s the difference between grml2hd and grml2usb?</h3><div style="clear:left"></div>\r
1113 <div class="paragraph"><p>grml2hd installs a running grml system to a harddisk. When rebooting the\r
1114 harddisk installation can be modified and changes will find their way to the\r
1115 harddisk immediately.  grml2usb copies just the compressed chroot filesystem\r
1116 (being the squashfs file), some further informational files and a bootloader to\r
1117 your device. This way you don&#8217;t need as much space as with a harddisk\r
1118 installation (just a USB device with &gt;=ISO size) and when rebooting the system\r
1119 your changes will be lost (unless you are using the persistency feature, see\r
1120 <a href="http://wiki.grml.org/doku.php?id=persistency">http://wiki.grml.org/doku.php?id=persistency</a>).\r
1121 Think of using a better CD version: booting is (usually) faster, you don&#8217;t need\r
1122 to burn a new CD when a new ISO version arrives (just install the new ISO using\r
1123 grml2usb) and you can carry additional files on a writable medium with yourself.</p></div>\r
1124 <h3 id="dd">7.3. Why can&#8217;t I just dd the ISO to a USB device?</h3><div style="clear:left"></div>\r
1125 <div class="paragraph"><p>Well, you can. :) Starting with grml 2009.10 the ISOs are dd-able straight out-of-the-box.</p></div>\r
1126 <div class="admonitionblock">\r
1127 <table><tr>\r
1128 <td class="icon">\r
1129 <img src="./images/icons/important.png" alt="Important" />\r
1130 </td>\r
1131 <td class="content">Note that ANY existing data on your USB device will be destroyed when\r
1132 using the dd approach.</td>\r
1133 </tr></table>\r
1134 </div>\r
1135 <div class="paragraph"><p>This allows you to dd the Grml ISO to your USB device (use for example\r
1136 <a href="http://www.chrysocome.net/rawwrite">rawwrite</a> if you&#8217;ve just a Windows\r
1137 system available) running:</p></div>\r
1138 <div class="literalblock">\r
1139 <div class="content">\r
1140 <pre><tt>% dd if=grml_2009.10.iso of=/dev/sdX</tt></pre>\r
1141 </div></div>\r
1142 <div class="paragraph"><p>where /dev/sdX is your USB device. Of course this doesn&#8217;t provide such a\r
1143 flexible system like with grml2usb (no multi-ISO setup, no additional default\r
1144 bootoptions,&#8230;) but it&#8217;s a nice way to get a working USB boot setup if you\r
1145 don&#8217;t have grml2usb available.</p></div>\r
1146 <h3 id="grml2usb-vs-dd">7.4. What&#8217;s the difference between grml2usb and just using dd?</h3><div style="clear:left"></div>\r
1147 <div class="paragraph"><p>grml2usb does not remove any data from your USB device and does not alter the\r
1148 partition table at all. grml2usb provides multi-ISO support, support for adding\r
1149 default bootoptions and selecting the bootloader (syslinux vs. grub) without\r
1150 having to manually touch the ISO at all.</p></div>\r
1151 <h3 id="grml2iso">7.5. What&#8217;s grml2iso?</h3><div style="clear:left"></div>\r
1152 <div class="paragraph"><p>grml2iso is a script which uses grml2usb to generate a multiboot ISO out of\r
1153 several grml ISOs. See <em>man grml2iso</em> for further details.</p></div>\r
1154 <h3 id="grml2usb-compat">7.6. grml2usb fails with "Fatal: file default.cfg could not be found."</h3><div style="clear:left"></div>\r
1155 <div class="paragraph"><p>If you are trying to install an older grml ISO (older than grml 2009.10) with a\r
1156 recent version of grml2usb then you might notice:</p></div>\r
1157 <div class="literalblock">\r
1158 <div class="content">\r
1159 <pre><tt>Fatal: file default.cfg could not be found.\r
1160 Note:  this grml2usb version requires an ISO generated by grml-live &gt;=0.9.24 ...\r
1161        ... either use grml releases &gt;=2009.10 or switch to an older grml2usb version.\r
1162        Please visit http://grml.org/grml2usb/#grml2usb-compat for further information\r
1163 Fatal: a critical error happend during execution (not a grml ISO?), giving up</tt></pre>\r
1164 </div></div>\r
1165 <div class="paragraph"><p>Breaking the backward compatibility was necessary to avoid maintainability hell.\r
1166 If you want to install older grml ISOs please use the grml2usb-compat script\r
1167 which provides support for older releases.</p></div>\r
1168 <h3 id="menu-lst">7.7. Why is there a menu.lst and a grub.cfg inside /boot/grub/?</h3><div style="clear:left"></div>\r
1169 <div class="paragraph"><p>grml2usb supports grub version 1 (grub1) as well as grub version 2 (grub2).\r
1170 Whereas grub1 uses menu.lst the new version grub2 needs grub.cfg.\r
1171 Providing both files allows grml2usb to install grub on the target device\r
1172 no matter which grub version is available on the host where grml2usb is\r
1173 executed on.</p></div>\r
1174 <h3 id="stage1">7.8. grub-install fails with 'The file ../boot/grub/stage1 not read correctly"?!</h3><div style="clear:left"></div>\r
1175 <div class="paragraph"><p>Check whether the partition has the right partition type. For example do NOT use\r
1176 FAT16 (partition type 6) when using a ext3 filesystem on the partition but\r
1177 instead use the correct partition type (<em>83</em> - Linux) then.</p></div>\r
1178 <h3 id="grub-install-xfs_freeze">7.9. grub-install complains about /sbin/grub-install and/or xfs_freeze?!</h3><div style="clear:left"></div>\r
1179 <div class="paragraph"><p>The following message:</p></div>\r
1180 <div class="literalblock">\r
1181 <div class="content">\r
1182 <pre><tt>You shouldn't call /sbin/grub-install. Please call /usr/sbin/grub-install instead!\r
1183 xfs_freeze: specified file ["/tmp/tmpqaBK6z/boot/grub"] is not on an XFS filesystem</tt></pre>\r
1184 </div></div>\r
1185 <div class="paragraph"><p>This is "normal". grub-install sends those messages to stderr. To avoid hiding any\r
1186 possible real error messages grml2usb doesn&#8217;t ignore those messages.</p></div>\r
1187 <h3 id="device-map">7.10. grub-install complains about /boot/grub/device.map?!</h3><div style="clear:left"></div>\r
1188 <div class="paragraph"><p>The following message:</p></div>\r
1189 <div class="literalblock">\r
1190 <div class="content">\r
1191 <pre><tt>grub-probe: error: Cannot open `/boot/grub/device.map'</tt></pre>\r
1192 </div></div>\r
1193 <div class="paragraph"><p>This is "normal" (at least with grub1). This isn&#8217;t a problem, because the\r
1194 device.map file will be generated on the target device anyway.</p></div>\r
1195 <h3 id="unary-operator">7.11. grub-install complains about a unary operator?!</h3><div style="clear:left"></div>\r
1196 <div class="paragraph"><p>The following message:</p></div>\r
1197 <div class="literalblock">\r
1198 <div class="content">\r
1199 <pre><tt>'/usr/sbin/grub-install: line 374: [: =: unary operator expected'</tt></pre>\r
1200 </div></div>\r
1201 <div class="paragraph"><p>This is "normal". Just ignore it. (It usually doesn&#8217;t appear\r
1202 on the second invocation on the same device.)</p></div>\r
1203 <h3 id="unknown-filesystem">7.12. grub-install fails with grub-probe: error: unknown filesystem?!</h3><div style="clear:left"></div>\r
1204 <div class="paragraph"><p>The following message:</p></div>\r
1205 <div class="literalblock">\r
1206 <div class="content">\r
1207 <pre><tt>grub-probe: error: unknown filesystem\r
1208 Auto-detection of a filesystem module failed.\r
1209 Please specify the module with the option `--modules' explicitly.</tt></pre>\r
1210 </div></div>\r
1211 <div class="paragraph"><p>usually means that the device partition table says something else than the\r
1212 filesystem on the device. For example using FAT16 as filesystem type and\r
1213 using FAT32 as filesystem on the partition will not work. Either set filesystem\r
1214 type to FAT32 or format the partition using FAT16. It is essential that\r
1215 device partition table and filesystem use the same filesystem type.</p></div>\r
1216 <h3 id="mbr-vs-pbr">7.13. grub-setup fails after Attempting to install GRUB to a partition instead of the MBR?!</h3><div style="clear:left"></div>\r
1217 <div class="paragraph"><p>The following message:</p></div>\r
1218 <div class="literalblock">\r
1219 <div class="content">\r
1220 <pre><tt>grub-setup: warn: Attempting to install GRUB to a partition instead of the MBR.  This is a BAD idea.\r
1221 grub-setup: warn: Embedding is not possible.  GRUB can only be installed in this setup by using blocklists.  However, blocklists are UNRELIABLE and its use is discouraged.\r
1222 grub-setup: error: Cannot read `/grub/core.img' correctly</tt></pre>\r
1223 </div></div>\r
1224 <div class="paragraph"><p>appears when using grub2 versions older than 1.98 as those version introduced a\r
1225 regression which avoids that grub is being installed into a partition (PBR,\r
1226 Partition Boot Record) instead of MBR (Master Boot Record).</p></div>\r
1227 <div class="paragraph"><p>To work around this issue you can either 1) upgrade to grub versions &gt;=1.98, 2)\r
1228 install grub into the MBR (Master Boot Record) using the <em>--grub-mbr</em> option of\r
1229 grml2usb or 3) switch to syslinux as bootmanager (just drop the <em>--grub</em>\r
1230 option).</p></div>\r
1231 <h3 id="splash-xpm">7.14. I&#8217;m getting something like "Error: /usr/share/grml2usb/grub/splash.xpm.gz can not be read"!?</h3><div style="clear:left"></div>\r
1232 <div class="paragraph"><p>Looks like you&#8217;ve only the grml2usb script itself available. Please make sure\r
1233 you&#8217;ve the grml2usb Debian package installed. The most resent stable version is\r
1234 available via <a href="http://deb.grml.org/">the grml-testing Debian repository</a>.  If\r
1235 you do not have a Debian system please see section <a href="#download">Where can I get grml2usb?</a> in this FAQ.</p></div>\r
1236 <h3 id="fat16">7.15. Why do I have to use a FAT16/FAT32 filesystem?</h3><div style="clear:left"></div>\r
1237 <div class="paragraph"><p>Syslinux (currently) does not support any other filesystems besides FAT16/FAT32\r
1238 (though that&#8217;s a sane default if you want to share your files with other\r
1239 (operating) systems). If you want to use a different filesystem (like ext2/3)\r
1240 use the bootloader grub instead using grml2usb&#8217;s <em>--grub</em> option.</p></div>\r
1241 <div class="admonitionblock">\r
1242 <table><tr>\r
1243 <td class="icon">\r
1244 <img src="./images/icons/note.png" alt="Note" />\r
1245 </td>\r
1246 <td class="content">FAT32 is supported since syslinux version 3.0.</td>\r
1247 </tr></table>\r
1248 </div>\r
1249 <h3 id="cool-idea">7.16. I think I&#8217;ve got a really cool idea!</h3><div style="clear:left"></div>\r
1250 <div class="paragraph"><p>Great! Please check out\r
1251 <a href="http://git.grml.org/?p=grml2usb.git;a=blob;f=TODO;hb=HEAD">the TODO file</a>.\r
1252 Feel free to <a href="#author">report your wishes to the author</a>. Patches highly\r
1253 appreciated.</p></div>\r
1254 <h3 id="booting-from-usb">7.17. I&#8217;ve problems with booting from USB.</h3><div style="clear:left"></div>\r
1255 <div class="paragraph"><p>Check out <a href="#troubleshooting">Troubleshooting and Pitfalls when booting</a>.</p></div>\r
1256 <h3 id="found-a-bug">7.18. I&#8217;ve found a bug!</h3><div style="clear:left"></div>\r
1257 <div class="paragraph"><p>Please <a href="#author">report it to the author</a>. Please provide usage examples and output\r
1258 of your grml2usb commandline (consider using the "--verbose" option).</p></div>\r
1259 </div>\r
1260 <h2 id="usage-examples">8. Usage examples</h2>\r
1261 <div class="sectionbody">\r
1262 <div class="literalblock">\r
1263 <div class="content">\r
1264 <pre><tt># grml2usb /home/grml/grml_2009.10.iso /dev/sdX1</tt></pre>\r
1265 </div></div>\r
1266 <div class="paragraph"><p>Install specified ISO on device /dev/sdX1.</p></div>\r
1267 <div class="literalblock">\r
1268 <div class="content">\r
1269 <pre><tt># grml2usb /home/grml/grml_2009.10.iso /home/grml/grml_small_2009.10.iso /dev/sdX1</tt></pre>\r
1270 </div></div>\r
1271 <div class="paragraph"><p>Install specified ISOs on device /dev/sdX1 for multibooting ISOs.</p></div>\r
1272 <div class="literalblock">\r
1273 <div class="content">\r
1274 <pre><tt># grml2usb /live/image /dev/sdX1</tt></pre>\r
1275 </div></div>\r
1276 <div class="paragraph"><p>Install currently running grml live system on device /dev/sdX1.</p></div>\r
1277 <div class="literalblock">\r
1278 <div class="content">\r
1279 <pre><tt># grml2usb /live/image /home/grml/grml_2009.10.iso /dev/sdX1</tt></pre>\r
1280 </div></div>\r
1281 <div class="paragraph"><p>Install currently running grml live system and the specified\r
1282 ISO on device /dev/sdX1 for multibooting.</p></div>\r
1283 <div class="literalblock">\r
1284 <div class="content">\r
1285 <pre><tt># grml2usb --fat16 /home/grml/grml_2009.10.iso /dev/sdX1</tt></pre>\r
1286 </div></div>\r
1287 <div class="paragraph"><p>Install specified ISO on device /dev/sdX1 and format partition /dev/sdX1 with\r
1288 FAT16 filesystem.</p></div>\r
1289 <div class="literalblock">\r
1290 <div class="content">\r
1291 <pre><tt># grml2usb --grub --grub-mbr /home/grml/grml_2009.10.iso /dev/sdX1</tt></pre>\r
1292 </div></div>\r
1293 <div class="paragraph"><p>Install specified ISO on device /dev/sdX1 and use grub as bootloader (instead of\r
1294 syslinux being the default) and install a master boot record (MBR) to the MBR of\r
1295 /dev/sdX.</p></div>\r
1296 <div class="literalblock">\r
1297 <div class="content">\r
1298 <pre><tt># grml2usb-compat /home/grml/grml_2009.05.iso /dev/sdX1</tt></pre>\r
1299 </div></div>\r
1300 <div class="paragraph"><p>Install older grml ISO on device /dev/sdX1.</p></div>\r
1301 <div class="literalblock">\r
1302 <div class="content">\r
1303 <pre><tt># grml2usb --bootoptions="lang=de ssh=mysecret" grml_2009.10.iso /dev/sdX1</tt></pre>\r
1304 </div></div>\r
1305 <div class="paragraph"><p>Install specified ISO on device /dev/sdX1 and use "lang=de ssh=mysecret" as\r
1306 default bootoptions.</p></div>\r
1307 <div class="literalblock">\r
1308 <div class="content">\r
1309 <pre><tt># grml2usb --remove-bootoption="vga=791" --remove-bootoption="quiet" grml_2009.10.iso /dev/sdX1</tt></pre>\r
1310 </div></div>\r
1311 <div class="paragraph"><p>Install specified ISO on device /dev/sdX1 remove vga=791 and quiet from existing bootoptions.</p></div>\r
1312 <div class="literalblock">\r
1313 <div class="content">\r
1314 <pre><tt># grml2usb --bootoptions="persistent-path=%flavour_name" grml64_2010.04.iso grml_2010.04.iso /dev/sdX1</tt></pre>\r
1315 </div></div>\r
1316 <div class="paragraph"><p>Install specified Isos on device /dev/sdx and add parameter persisten-path\r
1317 to every menu entry. %flavour_name will be expanded to the flavour of the specific\r
1318 iso, e.g. grml64 and grml.</p></div>\r
1319 </div>\r
1320 <h2 id="ressources">9. Online Ressources</h2>\r
1321 <div class="sectionbody">\r
1322 <div class="paragraph"><p>Check out the <a href="http://grml.org/grml2usb/">grml2usb webpage</a> and the\r
1323 <a href="http://git.grml.org/?p=grml2usb.git">grml2usb git repository</a>.</p></div>\r
1324 </div>\r
1325 <h2 id="bugs">10. Bugs</h2>\r
1326 <div class="sectionbody">\r
1327 <div class="paragraph"><p>Please report feedback, bugreports and wishes <a href="#author">to the author</a>.</p></div>\r
1328 </div>\r
1329 <h2 id="author">11. Author</h2>\r
1330 <div class="sectionbody">\r
1331 <div class="paragraph"><p>Michael Prokop &lt;<a href="mailto:mika@grml.org">mika@grml.org</a>&gt;</p></div>\r
1332 </div>\r
1333 </div>\r
1334 <div id="footnotes"><hr /></div>\r
1335 <div id="footer">\r
1336 <div id="footer-text">\r
1337 Last updated 2010-06-16 15:30:28 CEST\r
1338 </div>\r
1339 </div>\r
1340 </body>\r
1341 </html>\r