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