Merge remote-tracking branch 'origin/github/pr/45'
[grml.org.git] / grml-debootstrap / index.html
1 <?xml version="1.0" encoding="UTF-8"?>\r
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"\r
3     "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">\r
4 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
5 <head>\r
6 <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />\r
7 <meta name="generator" content="AsciiDoc 8.6.10" />\r
8 <title>grml-debootstrap(8)</title>\r
9 <style type="text/css">\r
10 /* Shared CSS for AsciiDoc xhtml11 and html5 backends */\r
11 \r
12 /* Default font. */\r
13 body {\r
14   font-family: Georgia,serif;\r
15 }\r
16 \r
17 /* Title font. */\r
18 h1, h2, h3, h4, h5, h6,\r
19 div.title, caption.title,\r
20 thead, p.table.header,\r
21 #toctitle,\r
22 #author, #revnumber, #revdate, #revremark,\r
23 #footer {\r
24   font-family: Arial,Helvetica,sans-serif;\r
25 }\r
26 \r
27 body {\r
28   margin: 1em 5% 1em 5%;\r
29 }\r
30 \r
31 a {\r
32   color: blue;\r
33   text-decoration: underline;\r
34 }\r
35 a:visited {\r
36   color: fuchsia;\r
37 }\r
38 \r
39 em {\r
40   font-style: italic;\r
41   color: navy;\r
42 }\r
43 \r
44 strong {\r
45   font-weight: bold;\r
46   color: #083194;\r
47 }\r
48 \r
49 h1, h2, h3, h4, h5, h6 {\r
50   color: #527bbd;\r
51   margin-top: 1.2em;\r
52   margin-bottom: 0.5em;\r
53   line-height: 1.3;\r
54 }\r
55 \r
56 h1, h2, h3 {\r
57   border-bottom: 2px solid silver;\r
58 }\r
59 h2 {\r
60   padding-top: 0.5em;\r
61 }\r
62 h3 {\r
63   float: left;\r
64 }\r
65 h3 + * {\r
66   clear: left;\r
67 }\r
68 h5 {\r
69   font-size: 1.0em;\r
70 }\r
71 \r
72 div.sectionbody {\r
73   margin-left: 0;\r
74 }\r
75 \r
76 hr {\r
77   border: 1px solid silver;\r
78 }\r
79 \r
80 p {\r
81   margin-top: 0.5em;\r
82   margin-bottom: 0.5em;\r
83 }\r
84 \r
85 ul, ol, li > p {\r
86   margin-top: 0;\r
87 }\r
88 ul > li     { color: #aaa; }\r
89 ul > li > * { color: black; }\r
90 \r
91 .monospaced, code, pre {\r
92   font-family: "Courier New", Courier, monospace;\r
93   font-size: inherit;\r
94   color: navy;\r
95   padding: 0;\r
96   margin: 0;\r
97 }\r
98 pre {\r
99   white-space: pre-wrap;\r
100 }\r
101 \r
102 #author {\r
103   color: #527bbd;\r
104   font-weight: bold;\r
105   font-size: 1.1em;\r
106 }\r
107 #email {\r
108 }\r
109 #revnumber, #revdate, #revremark {\r
110 }\r
111 \r
112 #footer {\r
113   font-size: small;\r
114   border-top: 2px solid silver;\r
115   padding-top: 0.5em;\r
116   margin-top: 4.0em;\r
117 }\r
118 #footer-text {\r
119   float: left;\r
120   padding-bottom: 0.5em;\r
121 }\r
122 #footer-badges {\r
123   float: right;\r
124   padding-bottom: 0.5em;\r
125 }\r
126 \r
127 #preamble {\r
128   margin-top: 1.5em;\r
129   margin-bottom: 1.5em;\r
130 }\r
131 div.imageblock, div.exampleblock, div.verseblock,\r
132 div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,\r
133 div.admonitionblock {\r
134   margin-top: 1.0em;\r
135   margin-bottom: 1.5em;\r
136 }\r
137 div.admonitionblock {\r
138   margin-top: 2.0em;\r
139   margin-bottom: 2.0em;\r
140   margin-right: 10%;\r
141   color: #606060;\r
142 }\r
143 \r
144 div.content { /* Block element content. */\r
145   padding: 0;\r
146 }\r
147 \r
148 /* Block element titles. */\r
149 div.title, caption.title {\r
150   color: #527bbd;\r
151   font-weight: bold;\r
152   text-align: left;\r
153   margin-top: 1.0em;\r
154   margin-bottom: 0.5em;\r
155 }\r
156 div.title + * {\r
157   margin-top: 0;\r
158 }\r
159 \r
160 td div.title:first-child {\r
161   margin-top: 0.0em;\r
162 }\r
163 div.content div.title:first-child {\r
164   margin-top: 0.0em;\r
165 }\r
166 div.content + div.title {\r
167   margin-top: 0.0em;\r
168 }\r
169 \r
170 div.sidebarblock > div.content {\r
171   background: #ffffee;\r
172   border: 1px solid #dddddd;\r
173   border-left: 4px solid #f0f0f0;\r
174   padding: 0.5em;\r
175 }\r
176 \r
177 div.listingblock > div.content {\r
178   border: 1px solid #dddddd;\r
179   border-left: 5px solid #f0f0f0;\r
180   background: #f8f8f8;\r
181   padding: 0.5em;\r
182 }\r
183 \r
184 div.quoteblock, div.verseblock {\r
185   padding-left: 1.0em;\r
186   margin-left: 1.0em;\r
187   margin-right: 10%;\r
188   border-left: 5px solid #f0f0f0;\r
189   color: #888;\r
190 }\r
191 \r
192 div.quoteblock > div.attribution {\r
193   padding-top: 0.5em;\r
194   text-align: right;\r
195 }\r
196 \r
197 div.verseblock > pre.content {\r
198   font-family: inherit;\r
199   font-size: inherit;\r
200 }\r
201 div.verseblock > div.attribution {\r
202   padding-top: 0.75em;\r
203   text-align: left;\r
204 }\r
205 /* DEPRECATED: Pre version 8.2.7 verse style literal block. */\r
206 div.verseblock + div.attribution {\r
207   text-align: left;\r
208 }\r
209 \r
210 div.admonitionblock .icon {\r
211   vertical-align: top;\r
212   font-size: 1.1em;\r
213   font-weight: bold;\r
214   text-decoration: underline;\r
215   color: #527bbd;\r
216   padding-right: 0.5em;\r
217 }\r
218 div.admonitionblock td.content {\r
219   padding-left: 0.5em;\r
220   border-left: 3px solid #dddddd;\r
221 }\r
222 \r
223 div.exampleblock > div.content {\r
224   border-left: 3px solid #dddddd;\r
225   padding-left: 0.5em;\r
226 }\r
227 \r
228 div.imageblock div.content { padding-left: 0; }\r
229 span.image img { border-style: none; vertical-align: text-bottom; }\r
230 a.image:visited { color: white; }\r
231 \r
232 dl {\r
233   margin-top: 0.8em;\r
234   margin-bottom: 0.8em;\r
235 }\r
236 dt {\r
237   margin-top: 0.5em;\r
238   margin-bottom: 0;\r
239   font-style: normal;\r
240   color: navy;\r
241 }\r
242 dd > *:first-child {\r
243   margin-top: 0.1em;\r
244 }\r
245 \r
246 ul, ol {\r
247     list-style-position: outside;\r
248 }\r
249 ol.arabic {\r
250   list-style-type: decimal;\r
251 }\r
252 ol.loweralpha {\r
253   list-style-type: lower-alpha;\r
254 }\r
255 ol.upperalpha {\r
256   list-style-type: upper-alpha;\r
257 }\r
258 ol.lowerroman {\r
259   list-style-type: lower-roman;\r
260 }\r
261 ol.upperroman {\r
262   list-style-type: upper-roman;\r
263 }\r
264 \r
265 div.compact ul, div.compact ol,\r
266 div.compact p, div.compact p,\r
267 div.compact div, div.compact div {\r
268   margin-top: 0.1em;\r
269   margin-bottom: 0.1em;\r
270 }\r
271 \r
272 tfoot {\r
273   font-weight: bold;\r
274 }\r
275 td > div.verse {\r
276   white-space: pre;\r
277 }\r
278 \r
279 div.hdlist {\r
280   margin-top: 0.8em;\r
281   margin-bottom: 0.8em;\r
282 }\r
283 div.hdlist tr {\r
284   padding-bottom: 15px;\r
285 }\r
286 dt.hdlist1.strong, td.hdlist1.strong {\r
287   font-weight: bold;\r
288 }\r
289 td.hdlist1 {\r
290   vertical-align: top;\r
291   font-style: normal;\r
292   padding-right: 0.8em;\r
293   color: navy;\r
294 }\r
295 td.hdlist2 {\r
296   vertical-align: top;\r
297 }\r
298 div.hdlist.compact tr {\r
299   margin: 0;\r
300   padding-bottom: 0;\r
301 }\r
302 \r
303 .comment {\r
304   background: yellow;\r
305 }\r
306 \r
307 .footnote, .footnoteref {\r
308   font-size: 0.8em;\r
309 }\r
310 \r
311 span.footnote, span.footnoteref {\r
312   vertical-align: super;\r
313 }\r
314 \r
315 #footnotes {\r
316   margin: 20px 0 20px 0;\r
317   padding: 7px 0 0 0;\r
318 }\r
319 \r
320 #footnotes div.footnote {\r
321   margin: 0 0 5px 0;\r
322 }\r
323 \r
324 #footnotes hr {\r
325   border: none;\r
326   border-top: 1px solid silver;\r
327   height: 1px;\r
328   text-align: left;\r
329   margin-left: 0;\r
330   width: 20%;\r
331   min-width: 100px;\r
332 }\r
333 \r
334 div.colist td {\r
335   padding-right: 0.5em;\r
336   padding-bottom: 0.3em;\r
337   vertical-align: top;\r
338 }\r
339 div.colist td img {\r
340   margin-top: 0.3em;\r
341 }\r
342 \r
343 @media print {\r
344   #footer-badges { display: none; }\r
345 }\r
346 \r
347 #toc {\r
348   margin-bottom: 2.5em;\r
349 }\r
350 \r
351 #toctitle {\r
352   color: #527bbd;\r
353   font-size: 1.1em;\r
354   font-weight: bold;\r
355   margin-top: 1.0em;\r
356   margin-bottom: 0.1em;\r
357 }\r
358 \r
359 div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
360   margin-top: 0;\r
361   margin-bottom: 0;\r
362 }\r
363 div.toclevel2 {\r
364   margin-left: 2em;\r
365   font-size: 0.9em;\r
366 }\r
367 div.toclevel3 {\r
368   margin-left: 4em;\r
369   font-size: 0.9em;\r
370 }\r
371 div.toclevel4 {\r
372   margin-left: 6em;\r
373   font-size: 0.9em;\r
374 }\r
375 \r
376 span.aqua { color: aqua; }\r
377 span.black { color: black; }\r
378 span.blue { color: blue; }\r
379 span.fuchsia { color: fuchsia; }\r
380 span.gray { color: gray; }\r
381 span.green { color: green; }\r
382 span.lime { color: lime; }\r
383 span.maroon { color: maroon; }\r
384 span.navy { color: navy; }\r
385 span.olive { color: olive; }\r
386 span.purple { color: purple; }\r
387 span.red { color: red; }\r
388 span.silver { color: silver; }\r
389 span.teal { color: teal; }\r
390 span.white { color: white; }\r
391 span.yellow { color: yellow; }\r
392 \r
393 span.aqua-background { background: aqua; }\r
394 span.black-background { background: black; }\r
395 span.blue-background { background: blue; }\r
396 span.fuchsia-background { background: fuchsia; }\r
397 span.gray-background { background: gray; }\r
398 span.green-background { background: green; }\r
399 span.lime-background { background: lime; }\r
400 span.maroon-background { background: maroon; }\r
401 span.navy-background { background: navy; }\r
402 span.olive-background { background: olive; }\r
403 span.purple-background { background: purple; }\r
404 span.red-background { background: red; }\r
405 span.silver-background { background: silver; }\r
406 span.teal-background { background: teal; }\r
407 span.white-background { background: white; }\r
408 span.yellow-background { background: yellow; }\r
409 \r
410 span.big { font-size: 2em; }\r
411 span.small { font-size: 0.6em; }\r
412 \r
413 span.underline { text-decoration: underline; }\r
414 span.overline { text-decoration: overline; }\r
415 span.line-through { text-decoration: line-through; }\r
416 \r
417 div.unbreakable { page-break-inside: avoid; }\r
418 \r
419 \r
420 /*\r
421  * xhtml11 specific\r
422  *\r
423  * */\r
424 \r
425 div.tableblock {\r
426   margin-top: 1.0em;\r
427   margin-bottom: 1.5em;\r
428 }\r
429 div.tableblock > table {\r
430   border: 3px solid #527bbd;\r
431 }\r
432 thead, p.table.header {\r
433   font-weight: bold;\r
434   color: #527bbd;\r
435 }\r
436 p.table {\r
437   margin-top: 0;\r
438 }\r
439 /* Because the table frame attribute is overriden by CSS in most browsers. */\r
440 div.tableblock > table[frame="void"] {\r
441   border-style: none;\r
442 }\r
443 div.tableblock > table[frame="hsides"] {\r
444   border-left-style: none;\r
445   border-right-style: none;\r
446 }\r
447 div.tableblock > table[frame="vsides"] {\r
448   border-top-style: none;\r
449   border-bottom-style: none;\r
450 }\r
451 \r
452 \r
453 /*\r
454  * html5 specific\r
455  *\r
456  * */\r
457 \r
458 table.tableblock {\r
459   margin-top: 1.0em;\r
460   margin-bottom: 1.5em;\r
461 }\r
462 thead, p.tableblock.header {\r
463   font-weight: bold;\r
464   color: #527bbd;\r
465 }\r
466 p.tableblock {\r
467   margin-top: 0;\r
468 }\r
469 table.tableblock {\r
470   border-width: 3px;\r
471   border-spacing: 0px;\r
472   border-style: solid;\r
473   border-color: #527bbd;\r
474   border-collapse: collapse;\r
475 }\r
476 th.tableblock, td.tableblock {\r
477   border-width: 1px;\r
478   padding: 4px;\r
479   border-style: solid;\r
480   border-color: #527bbd;\r
481 }\r
482 \r
483 table.tableblock.frame-topbot {\r
484   border-left-style: hidden;\r
485   border-right-style: hidden;\r
486 }\r
487 table.tableblock.frame-sides {\r
488   border-top-style: hidden;\r
489   border-bottom-style: hidden;\r
490 }\r
491 table.tableblock.frame-none {\r
492   border-style: hidden;\r
493 }\r
494 \r
495 th.tableblock.halign-left, td.tableblock.halign-left {\r
496   text-align: left;\r
497 }\r
498 th.tableblock.halign-center, td.tableblock.halign-center {\r
499   text-align: center;\r
500 }\r
501 th.tableblock.halign-right, td.tableblock.halign-right {\r
502   text-align: right;\r
503 }\r
504 \r
505 th.tableblock.valign-top, td.tableblock.valign-top {\r
506   vertical-align: top;\r
507 }\r
508 th.tableblock.valign-middle, td.tableblock.valign-middle {\r
509   vertical-align: middle;\r
510 }\r
511 th.tableblock.valign-bottom, td.tableblock.valign-bottom {\r
512   vertical-align: bottom;\r
513 }\r
514 \r
515 \r
516 /*\r
517  * manpage specific\r
518  *\r
519  * */\r
520 \r
521 body.manpage h1 {\r
522   padding-top: 0.5em;\r
523   padding-bottom: 0.5em;\r
524   border-top: 2px solid silver;\r
525   border-bottom: 2px solid silver;\r
526 }\r
527 body.manpage h2 {\r
528   border-style: none;\r
529 }\r
530 body.manpage div.sectionbody {\r
531   margin-left: 3em;\r
532 }\r
533 \r
534 @media print {\r
535   body.manpage div#toc { display: none; }\r
536 }\r
537 \r
538 \r
539 </style>\r
540 <script type="text/javascript">\r
541 /*<![CDATA[*/\r
542 var asciidoc = {  // Namespace.\r
543 \r
544 /////////////////////////////////////////////////////////////////////\r
545 // Table Of Contents generator\r
546 /////////////////////////////////////////////////////////////////////\r
547 \r
548 /* Author: Mihai Bazon, September 2002\r
549  * http://students.infoiasi.ro/~mishoo\r
550  *\r
551  * Table Of Content generator\r
552  * Version: 0.4\r
553  *\r
554  * Feel free to use this script under the terms of the GNU General Public\r
555  * License, as long as you do not remove or alter this notice.\r
556  */\r
557 \r
558  /* modified by Troy D. Hanson, September 2006. License: GPL */\r
559  /* modified by Stuart Rackham, 2006, 2009. License: GPL */\r
560 \r
561 // toclevels = 1..4.\r
562 toc: function (toclevels) {\r
563 \r
564   function getText(el) {\r
565     var text = "";\r
566     for (var i = el.firstChild; i != null; i = i.nextSibling) {\r
567       if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.\r
568         text += i.data;\r
569       else if (i.firstChild != null)\r
570         text += getText(i);\r
571     }\r
572     return text;\r
573   }\r
574 \r
575   function TocEntry(el, text, toclevel) {\r
576     this.element = el;\r
577     this.text = text;\r
578     this.toclevel = toclevel;\r
579   }\r
580 \r
581   function tocEntries(el, toclevels) {\r
582     var result = new Array;\r
583     var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');\r
584     // Function that scans the DOM tree for header elements (the DOM2\r
585     // nodeIterator API would be a better technique but not supported by all\r
586     // browsers).\r
587     var iterate = function (el) {\r
588       for (var i = el.firstChild; i != null; i = i.nextSibling) {\r
589         if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {\r
590           var mo = re.exec(i.tagName);\r
591           if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {\r
592             result[result.length] = new TocEntry(i, getText(i), mo[1]-1);\r
593           }\r
594           iterate(i);\r
595         }\r
596       }\r
597     }\r
598     iterate(el);\r
599     return result;\r
600   }\r
601 \r
602   var toc = document.getElementById("toc");\r
603   if (!toc) {\r
604     return;\r
605   }\r
606 \r
607   // Delete existing TOC entries in case we're reloading the TOC.\r
608   var tocEntriesToRemove = [];\r
609   var i;\r
610   for (i = 0; i < toc.childNodes.length; i++) {\r
611     var entry = toc.childNodes[i];\r
612     if (entry.nodeName.toLowerCase() == 'div'\r
613      && entry.getAttribute("class")\r
614      && entry.getAttribute("class").match(/^toclevel/))\r
615       tocEntriesToRemove.push(entry);\r
616   }\r
617   for (i = 0; i < tocEntriesToRemove.length; i++) {\r
618     toc.removeChild(tocEntriesToRemove[i]);\r
619   }\r
620 \r
621   // Rebuild TOC entries.\r
622   var entries = tocEntries(document.getElementById("content"), toclevels);\r
623   for (var i = 0; i < entries.length; ++i) {\r
624     var entry = entries[i];\r
625     if (entry.element.id == "")\r
626       entry.element.id = "_toc_" + i;\r
627     var a = document.createElement("a");\r
628     a.href = "#" + entry.element.id;\r
629     a.appendChild(document.createTextNode(entry.text));\r
630     var div = document.createElement("div");\r
631     div.appendChild(a);\r
632     div.className = "toclevel" + entry.toclevel;\r
633     toc.appendChild(div);\r
634   }\r
635   if (entries.length == 0)\r
636     toc.parentNode.removeChild(toc);\r
637 },\r
638 \r
639 \r
640 /////////////////////////////////////////////////////////////////////\r
641 // Footnotes generator\r
642 /////////////////////////////////////////////////////////////////////\r
643 \r
644 /* Based on footnote generation code from:\r
645  * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html\r
646  */\r
647 \r
648 footnotes: function () {\r
649   // Delete existing footnote entries in case we're reloading the footnodes.\r
650   var i;\r
651   var noteholder = document.getElementById("footnotes");\r
652   if (!noteholder) {\r
653     return;\r
654   }\r
655   var entriesToRemove = [];\r
656   for (i = 0; i < noteholder.childNodes.length; i++) {\r
657     var entry = noteholder.childNodes[i];\r
658     if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")\r
659       entriesToRemove.push(entry);\r
660   }\r
661   for (i = 0; i < entriesToRemove.length; i++) {\r
662     noteholder.removeChild(entriesToRemove[i]);\r
663   }\r
664 \r
665   // Rebuild footnote entries.\r
666   var cont = document.getElementById("content");\r
667   var spans = cont.getElementsByTagName("span");\r
668   var refs = {};\r
669   var n = 0;\r
670   for (i=0; i<spans.length; i++) {\r
671     if (spans[i].className == "footnote") {\r
672       n++;\r
673       var note = spans[i].getAttribute("data-note");\r
674       if (!note) {\r
675         // Use [\s\S] in place of . so multi-line matches work.\r
676         // Because JavaScript has no s (dotall) regex flag.\r
677         note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];\r
678         spans[i].innerHTML =\r
679           "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +\r
680           "' title='View footnote' class='footnote'>" + n + "</a>]";\r
681         spans[i].setAttribute("data-note", note);\r
682       }\r
683       noteholder.innerHTML +=\r
684         "<div class='footnote' id='_footnote_" + n + "'>" +\r
685         "<a href='#_footnoteref_" + n + "' title='Return to text'>" +\r
686         n + "</a>. " + note + "</div>";\r
687       var id =spans[i].getAttribute("id");\r
688       if (id != null) refs["#"+id] = n;\r
689     }\r
690   }\r
691   if (n == 0)\r
692     noteholder.parentNode.removeChild(noteholder);\r
693   else {\r
694     // Process footnoterefs.\r
695     for (i=0; i<spans.length; i++) {\r
696       if (spans[i].className == "footnoteref") {\r
697         var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");\r
698         href = href.match(/#.*/)[0];  // Because IE return full URL.\r
699         n = refs[href];\r
700         spans[i].innerHTML =\r
701           "[<a href='#_footnote_" + n +\r
702           "' title='View footnote' class='footnote'>" + n + "</a>]";\r
703       }\r
704     }\r
705   }\r
706 },\r
707 \r
708 install: function(toclevels) {\r
709   var timerId;\r
710 \r
711   function reinstall() {\r
712     asciidoc.footnotes();\r
713     if (toclevels) {\r
714       asciidoc.toc(toclevels);\r
715     }\r
716   }\r
717 \r
718   function reinstallAndRemoveTimer() {\r
719     clearInterval(timerId);\r
720     reinstall();\r
721   }\r
722 \r
723   timerId = setInterval(reinstall, 500);\r
724   if (document.addEventListener)\r
725     document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);\r
726   else\r
727     window.onload = reinstallAndRemoveTimer;\r
728 }\r
729 \r
730 }\r
731 asciidoc.install();\r
732 /*]]>*/\r
733 </script>\r
734 </head>\r
735 <body class="article">\r
736 <div id="header">\r
737 <h1>grml-debootstrap(8)</h1>\r
738 </div>\r
739 <div id="content">\r
740 <div class="sect1">\r
741 <h2 id="_name">Name</h2>\r
742 <div class="sectionbody">\r
743 <div class="paragraph"><p>grml-debootstrap - wrapper around debootstrap for installing plain Debian</p></div>\r
744 </div>\r
745 </div>\r
746 <div class="sect1">\r
747 <h2 id="_synopsis">Synopsis</h2>\r
748 <div class="sectionbody">\r
749 <div class="paragraph"><p>grml-debootstrap [ <em>options</em> ]</p></div>\r
750 <div class="paragraph"><p><span class="image">\r
751 <img src="images/screenshot.png" alt="Screenshot" />\r
752 </span></p></div>\r
753 </div>\r
754 </div>\r
755 <div class="sect1">\r
756 <h2 id="_introduction">Introduction</h2>\r
757 <div class="sectionbody">\r
758 <div class="paragraph"><p>grml-debootstrap is a wrapper suite around debootstrap (and cdebootstrap and mmdebstrap if you\r
759 want) for installing a plain Debian system very fast and easy.</p></div>\r
760 <div class="paragraph"><p>All you have to do is adjust a few variables in the configuration file\r
761 /etc/debootstrap/config or specify some command line options and invoke\r
762 grml-debootstrap. If invoked without any configuration modifications or command\r
763 line options a dialog based front end will be available to control some basic\r
764 configuration options.</p></div>\r
765 <div class="paragraph"><p>A plain and base Debian system will be installed on the given device, directory\r
766 or virtual image file then. Customization of this process is possible as well.</p></div>\r
767 <div class="admonitionblock">\r
768 <table><tr>\r
769 <td class="icon">\r
770 <img src="./images/icons/caution.png" alt="Caution" />\r
771 </td>\r
772 <td class="content">The Grml team does not take responsibility for loss of any data!</td>\r
773 </tr></table>\r
774 </div>\r
775 </div>\r
776 </div>\r
777 <div class="sect1">\r
778 <h2 id="_options_and_environment_variables">Options and environment variables</h2>\r
779 <div class="sectionbody">\r
780 <div class="dlist"><dl>\r
781 <dt class="hdlist1">\r
782 <strong>--arch</strong> <em>architecture</em>\r
783 </dt>\r
784 <dd>\r
785 <p>\r
786     Set target architecture you want to install. Defaults to the architecture\r
787     you are currently running. If you&#8217;re running an amd64 kernel and want to\r
788     deploy an i386 system use this option. Note: deploying amd64 from an i386\r
789     kernel does <strong>not</strong> work. Example: "<em>--arch i386</em>"\r
790 </p>\r
791 </dd>\r
792 <dt class="hdlist1">\r
793 <strong>--backportrepos</strong>\r
794 </dt>\r
795 <dd>\r
796 <p>\r
797     Enable Debian&#8217;s Backports repository via the\r
798     /etc/apt/sources.list.d/backports.list configuration file. This provides the\r
799     option to install Debian packages from Debian&#8217;s backports repository.\r
800 </p>\r
801 </dd>\r
802 <dt class="hdlist1">\r
803 <strong>--bootappend</strong> <em>appendline-for-the-kernel</em>\r
804 </dt>\r
805 <dd>\r
806 <p>\r
807     Specify appendline for the kernel.\r
808     E.g. "<em>pci=nomsi</em>"\r
809 </p>\r
810 </dd>\r
811 <dt class="hdlist1">\r
812 <strong>-c</strong>, <strong>--config</strong> <em>file</em>\r
813 </dt>\r
814 <dd>\r
815 <p>\r
816     Use specified configuration file, defaults to /etc/debootstrap/config.\r
817 </p>\r
818 </dd>\r
819 <dt class="hdlist1">\r
820 <strong>--chroot-scripts</strong> <em>directory</em>\r
821 </dt>\r
822 <dd>\r
823 <p>\r
824     Execute chroot scripts from specified directory. This allows customisation\r
825     of the chroot setup, the executable script(s) present in the given directory\r
826     are executed at the end of the chroot procedure.\r
827     Default directory: /etc/debootstrap/chroot-scripts/\r
828 </p>\r
829 </dd>\r
830 <dt class="hdlist1">\r
831 <strong>--contrib</strong>\r
832 </dt>\r
833 <dd>\r
834 <p>\r
835     Enable the <em>contrib</em> repository in COMPONENTS. By default only\r
836     the <em>main</em> repository is enabled.\r
837 </p>\r
838 </dd>\r
839 <dt class="hdlist1">\r
840 <strong>-d</strong>, <strong>--confdir</strong> <em>path</em>\r
841 </dt>\r
842 <dd>\r
843 <p>\r
844     Place of configuration files for debootstrap, defaults to /etc/debootstrap.\r
845 </p>\r
846 </dd>\r
847 <dt class="hdlist1">\r
848 <strong>--debconf</strong> <em>file</em>\r
849 </dt>\r
850 <dd>\r
851 <p>\r
852     Use specified file for preseeding Debian packages instead of using\r
853     the default &lt;confdir&gt;/debconf-selections.\r
854 </p>\r
855 </dd>\r
856 <dt class="hdlist1">\r
857 <strong>--debopt</strong> <em>params</em>\r
858 </dt>\r
859 <dd>\r
860 <p>\r
861     Extra parameters passed to the debootstrap command.\r
862 </p>\r
863 </dd>\r
864 <dt class="hdlist1">\r
865 <strong>--debug</strong>\r
866 </dt>\r
867 <dd>\r
868 <p>\r
869    Execute in very verbose way. Useful for debugging possible problems\r
870    with grml-debootstrap or identify what&#8217;s actually executed.\r
871 </p>\r
872 </dd>\r
873 <dt class="hdlist1">\r
874 <strong>--defaultinterfaces</strong>\r
875 </dt>\r
876 <dd>\r
877 <p>\r
878    Install a default /etc/network/interfaces file (enabling DHCP for all local\r
879    Ethernet, WLAN and WWAN interfaces using predictable network interface names\r
880    and using eth0 as traditional interface name for backward compatibility)\r
881    instead of taking over config from host system.\r
882    This option is automatically enabled when using --vm or --vmfile.\r
883 </p>\r
884 </dd>\r
885 <dt class="hdlist1">\r
886 <strong>--efi</strong> <em>device</em>\r
887 </dt>\r
888 <dd>\r
889 <p>\r
890     Partition where EFI boot manager should be installed to. If the\r
891     specified device doesn&#8217;t use a FAT filesystem yet grml-debootstrap\r
892     automatically creates the filesystem. If a FAT filesystem is already\r
893     present the filesystem creation is skipped. Please ensure that it&#8217;s\r
894     a valid FAT32 filesystem and the partition has the <em>boot</em> and <em>esp</em>\r
895     flags enabled. This option requires EFI support on the running system\r
896     and the option is NOT supported for Virtual Machine deployments.\r
897 </p>\r
898 </dd>\r
899 <dt class="hdlist1">\r
900 <strong>--filesystem</strong> <em>filesystem</em>\r
901 </dt>\r
902 <dd>\r
903 <p>\r
904     Filesystem that should be created when installing to a partition.\r
905     If unset defaults to ext4. Valid values are all filesystems that\r
906     can be created through mkfs.<em>filesystem</em>.\r
907 </p>\r
908 </dd>\r
909 <dt class="hdlist1">\r
910 <strong>--force</strong>\r
911 </dt>\r
912 <dd>\r
913 <p>\r
914     Skip user acknowledgement and do not prompt for user input.\r
915 </p>\r
916 </dd>\r
917 <dt class="hdlist1">\r
918 <strong>--grmlrepos</strong>\r
919 </dt>\r
920 <dd>\r
921 <p>\r
922     Enable Grml.org&#8217;s Debian repository (<a href="http://deb.grml.org/">http://deb.grml.org/</a>) via the\r
923     /etc/apt/sources.list.d/grml.list configuration file. This provides the\r
924     option to install Debian packages from Grml&#8217;s repository.\r
925 </p>\r
926 </dd>\r
927 <dt class="hdlist1">\r
928 <strong>--grub</strong> <em>device</em>\r
929 </dt>\r
930 <dd>\r
931 <p>\r
932     Device where grub should be installed to. Note that only the MBR (master\r
933     boot record) can be used (/dev/sda, /dev/sdb,&#8230;). Partitions (like\r
934     /dev/sda1, /dev/sdb2,&#8230;) are NOT supported because grub2 doesn&#8217;t support\r
935     installation into the PBR (partition boot record) anymore.  Usage example:\r
936     <em>--grub /dev/sda</em>.  Note: just do not set this option to avoid installation\r
937     of grub.\r
938 </p>\r
939 </dd>\r
940 <dt class="hdlist1">\r
941 <strong>--help</strong>, <strong>-h</strong>\r
942 </dt>\r
943 <dd>\r
944 <p>\r
945     Show summary of options and exit.\r
946 </p>\r
947 </dd>\r
948 <dt class="hdlist1">\r
949 <strong>--hostname</strong> <em>hostname</em>\r
950 </dt>\r
951 <dd>\r
952 <p>\r
953     Use specified hostname instead of the default (being $HOSTNAME or if unset <em>grml</em>).\r
954 </p>\r
955 </dd>\r
956 <dt class="hdlist1">\r
957 <strong>-i</strong>, <strong>--iso</strong> <em>/mntpoint</em>\r
958 </dt>\r
959 <dd>\r
960 <p>\r
961     Specify mount point where you have a Debian ISO mounted loopback.\r
962     Using this option instead of the mirror option gives you the possibility\r
963     to install the base-system without network access. Make sure you\r
964     mounted the according Debian-ISO to the given <em>/mntpoint</em>. See section\r
965     <em>Usage examples</em> for a demonstration.\r
966 </p>\r
967 </dd>\r
968 <dt class="hdlist1">\r
969 <strong>--keep_src_list</strong>\r
970 </dt>\r
971 <dd>\r
972 <p>\r
973      Do not overwrite user provided /etc/apt/sources.list.\r
974 </p>\r
975 </dd>\r
976 <dt class="hdlist1">\r
977 <strong>-m</strong>, <strong>--mirror</strong> <em>URL</em>\r
978 </dt>\r
979 <dd>\r
980 <p>\r
981     Specify mirror which should be used for apt-get/aptitude.\r
982     Corresponding with configuration variable MIRROR.\r
983 </p>\r
984 </dd>\r
985 <dt class="hdlist1">\r
986 <strong>--nodebootstrap</strong>\r
987 </dt>\r
988 <dd>\r
989 <p>\r
990     Skip debootstrap, only do configuration to the target.\r
991 </p>\r
992 </dd>\r
993 <dt class="hdlist1">\r
994 <strong>--nointerfaces</strong>\r
995 </dt>\r
996 <dd>\r
997 <p>\r
998     Do not copy /etc/network/interfaces from host system to the target.\r
999 </p>\r
1000 </dd>\r
1001 <dt class="hdlist1">\r
1002 <strong>--nokernel</strong>\r
1003 </dt>\r
1004 <dd>\r
1005 <p>\r
1006     Skip installation of default kernel images. This option might be\r
1007     interesting for you if you want a Debian system which doesn&#8217;t\r
1008     need to provide regular boot, e.g. a system which provides\r
1009     ISOs for booting via GRUB using grml-rescueboot.\r
1010 </p>\r
1011 </dd>\r
1012 <dt class="hdlist1">\r
1013 <strong>--non-free</strong>\r
1014 </dt>\r
1015 <dd>\r
1016 <p>\r
1017     Enable the <em>non-free</em> repository in COMPONENTS. By default only\r
1018     the <em>main</em> repository is enabled.\r
1019 </p>\r
1020 </dd>\r
1021 <dt class="hdlist1">\r
1022 <strong>--nopackages</strong>\r
1023 </dt>\r
1024 <dd>\r
1025 <p>\r
1026     Skip installation of packages defined in /etc/debootstrap/packages.\r
1027 </p>\r
1028 </dd>\r
1029 <dt class="hdlist1">\r
1030 <strong>--nopassword</strong>\r
1031 </dt>\r
1032 <dd>\r
1033 <p>\r
1034     Do not prompt for the root password. Note: Use the <em>--password</em> option if\r
1035     you want to set the root password during an automatic installation but don&#8217;t\r
1036     want to use the interactive dialog.\r
1037 </p>\r
1038 </dd>\r
1039 <dt class="hdlist1">\r
1040 <strong>-p</strong>, <strong>--mntpoint</strong> <em>/mntpoint</em>\r
1041 </dt>\r
1042 <dd>\r
1043 <p>\r
1044     Specify mount point that should be used for mounting the target system.\r
1045     Corresponding with configuration variable MNTPOINT.\r
1046     Note: this option has no effect if option -t is given and represents a\r
1047     directory.\r
1048 </p>\r
1049 </dd>\r
1050 <dt class="hdlist1">\r
1051 <strong>--packages</strong> <em>file</em>\r
1052 </dt>\r
1053 <dd>\r
1054 <p>\r
1055     Use specified file as list for packages that should be installed instead of\r
1056     the default package list file &lt;confdir&gt;/packages.\r
1057 </p>\r
1058 </dd>\r
1059 <dt class="hdlist1">\r
1060 <strong>--password</strong> <em>password</em>\r
1061 </dt>\r
1062 <dd>\r
1063 <p>\r
1064     Use specified password as password for user root. Use with caution, as your\r
1065     command line might be visible in the process list and the shell history.\r
1066     It&#8217;s meant for automatic installation only.\r
1067 </p>\r
1068 </dd>\r
1069 <dt class="hdlist1">\r
1070 <strong>--post-scripts</strong> <em>directory</em>\r
1071 </dt>\r
1072 <dd>\r
1073 <p>\r
1074     Execute scripts from specified directory after executing the chroot script.\r
1075     This allows customisation of the system after the chroot has been set up.\r
1076     The environment variable $MNTPOINT is available inside the scripts for\r
1077     direct access of the chroot.\r
1078     Default directory: /etc/debootstrap/post-scripts/\r
1079 </p>\r
1080 </dd>\r
1081 <dt class="hdlist1">\r
1082 <strong>--pre-scripts</strong> <em>directory</em>\r
1083 </dt>\r
1084 <dd>\r
1085 <p>\r
1086     Execute scripts from specified directory before executing the chroot\r
1087     script. This allows customisation of the system before the chroot has\r
1088     been set up.  The environment variable $MNTPOINT is available inside the\r
1089     scripts for direct access of the chroot.\r
1090     Default directory: /etc/debootstrap/pre-scripts/\r
1091 </p>\r
1092 </dd>\r
1093 <dt class="hdlist1">\r
1094 <strong>-r</strong>, <strong>--release</strong> <em>releasename</em>\r
1095 </dt>\r
1096 <dd>\r
1097 <p>\r
1098     Specify release of new Debian system. Supported releases names: lenny,\r
1099     squeeze, wheezy, jessie, stretch, buster, bullseye and sid. Corresponding with configuration\r
1100     variable RELEASE. Default release: buster\r
1101 </p>\r
1102 </dd>\r
1103 <dt class="hdlist1">\r
1104 <strong>--remove-configs</strong>\r
1105 </dt>\r
1106 <dd>\r
1107 <p>\r
1108     Delete grml-debootstrap configuration files (/etc/debootstrap/*) from installed\r
1109     system. Useful for reproducible builds or if you don&#8217;t want to leak information.\r
1110 </p>\r
1111 </dd>\r
1112 <dt class="hdlist1">\r
1113 <strong>--sshcopyid</strong>\r
1114 </dt>\r
1115 <dd>\r
1116 <p>\r
1117     Use locally available public keys to authorise root login on the target system.\r
1118     Similar to ssh-copy-id(1) (without the -i option) it checks if <code>ssh-add -L</code>\r
1119     provides any output, and if so those keys are appended to\r
1120     <em>/root/.ssh/authorized_keys</em> (creating the file and directory (with mode 0700)).\r
1121 </p>\r
1122 </dd>\r
1123 <dt class="hdlist1">\r
1124 <strong>-t</strong>, <strong>--target</strong> <em>target</em>\r
1125 </dt>\r
1126 <dd>\r
1127 <p>\r
1128     Target partition (/dev/&#8230;) or directory (anything else without /dev at the\r
1129     beginning).\r
1130 </p>\r
1131 </dd>\r
1132 <dt class="hdlist1">\r
1133 <strong>-v</strong>, <strong>--verbose</strong>\r
1134 </dt>\r
1135 <dd>\r
1136 <p>\r
1137     Increase verbosity.\r
1138 </p>\r
1139 </dd>\r
1140 <dt class="hdlist1">\r
1141 <strong>--vm</strong>\r
1142 </dt>\r
1143 <dd>\r
1144 <p>\r
1145     Set up a Virtual Machine on an existing block device, which will be\r
1146     partitioned.\r
1147     This allows deployment of a Virtual Machine. The options needs to be\r
1148     combined with the --target option.\r
1149     This option automatically enables the --defaultinterfaces option.\r
1150     Usage example: --vm --target /dev/mapper/your-vm-disk\r
1151 </p>\r
1152 </dd>\r
1153 <dt class="hdlist1">\r
1154 <strong>--vmfile</strong>\r
1155 </dt>\r
1156 <dd>\r
1157 <p>\r
1158     Set up a Virtual Machine using a regular file instead of installing to a\r
1159     partition/block device or directory. This allows deployment of a Virtual\r
1160     Machine. The options needs to be combined with the --target option\r
1161     (<em>qemu-img create -f raw &#8230;</em> is executed on the specified target).\r
1162     This option automatically enables the --defaultinterfaces option.\r
1163     Usage example: --vmfile --target /mnt/sda1/qemu.img\r
1164 </p>\r
1165 </dd>\r
1166 <dt class="hdlist1">\r
1167 <strong>--vmsize</strong> <em>size</em>\r
1168 </dt>\r
1169 <dd>\r
1170 <p>\r
1171    Use specified size for size of Virtual Machine disk file. If not specified it\r
1172    defaults to 2G (being 2GB). Syntax as supported by qemu-img (see manpage\r
1173    qemu-img(1) for details.\r
1174    Usage example: --vmsize 3G\r
1175 </p>\r
1176 </dd>\r
1177 <dt class="hdlist1">\r
1178 <strong>-V</strong>, <strong>--version</strong>\r
1179 </dt>\r
1180 <dd>\r
1181 <p>\r
1182     Show version of program and exit.\r
1183 </p>\r
1184 </dd>\r
1185 </dl></div>\r
1186 <div class="admonitionblock">\r
1187 <table><tr>\r
1188 <td class="icon">\r
1189 <img src="./images/icons/warning.png" alt="Warning" />\r
1190 </td>\r
1191 <td class="content">the command line parsing of grml-debootstrap usually does not validate\r
1192 the provided arguments for the command line options. Please be careful and check\r
1193 docs and /etc/debootstrap/config for further information.</td>\r
1194 </tr></table>\r
1195 </div>\r
1196 </div>\r
1197 </div>\r
1198 <div class="sect1">\r
1199 <h2 id="_networking">Networking</h2>\r
1200 <div class="sectionbody">\r
1201 <div class="paragraph"><p>By default (that is, if none of the options <strong>--nointerfaces</strong>,\r
1202 <strong>--defaultinterfaces</strong>, <strong>--vmfile</strong> or <strong>--vm</strong> are given) /etc/network/interfaces\r
1203 will be copied from the host to the target system.</p></div>\r
1204 </div>\r
1205 </div>\r
1206 <div class="sect1">\r
1207 <h2 id="_usage_examples">Usage examples</h2>\r
1208 <div class="sectionbody">\r
1209 <div class="literalblock">\r
1210 <div class="content">\r
1211 <pre><code>grml-debootstrap --target /dev/sda1 --grub /dev/sda</code></pre>\r
1212 </div></div>\r
1213 <div class="paragraph"><p>Install default Debian release (buster) on /dev/sda1 and install bootmanager GRUB in MBR (master boot record) of /dev/sda.</p></div>\r
1214 <div class="literalblock">\r
1215 <div class="content">\r
1216 <pre><code>grml-debootstrap --release stretch --target /dev/sda1 --grub /dev/sda --hostname debian01 --password changeme</code></pre>\r
1217 </div></div>\r
1218 <div class="paragraph"><p>Install Debian release stretch on /dev/sda1 and install bootmanager GRUB in MBR (master boot record) of /dev/sda.\r
1219 Set hostname to <em>debian01</em> and password for user root to <em>changeme</em>.</p></div>\r
1220 <div class="literalblock">\r
1221 <div class="content">\r
1222 <pre><code>grml-debootstrap --target /dev/sda6 --grub /dev/sda --release sid</code></pre>\r
1223 </div></div>\r
1224 <div class="paragraph"><p>Install Debian unstable/sid on /dev/sda6 and install bootmanager GRUB in MBR (master boot record) of /dev/sda.</p></div>\r
1225 <div class="literalblock">\r
1226 <div class="content">\r
1227 <pre><code>DEBOOTSTRAP=mmdebstrap grml-debootstrap --target /dev/sda1 --grub /dev/sda</code></pre>\r
1228 </div></div>\r
1229 <div class="paragraph"><p>Install default Debian release (buster) on /dev/sda1 and install bootmanager GRUB in MBR (master boot record) of /dev/sda.\r
1230 Use mmdebstrap instead of default debootstrap tool for bootstrapping.</p></div>\r
1231 <div class="literalblock">\r
1232 <div class="content">\r
1233 <pre><code>grml-debootstrap --target /dev/mapper/vg0-rootfs --grub /dev/sda</code></pre>\r
1234 </div></div>\r
1235 <div class="paragraph"><p>Install default Debian release (buster) on LVM device /dev/mapper/vg0-rootfs and install bootmanager GRUB in MBR (master boot record) of /dev/sda.</p></div>\r
1236 <div class="literalblock">\r
1237 <div class="content">\r
1238 <pre><code>grml-debootstrap --efi /dev/sda1 --target /dev/sda2 --grub /dev/sda --efi</code></pre>\r
1239 </div></div>\r
1240 <div class="paragraph"><p>Install default Debian release (buster) on /dev/sda2 and install bootmanager GRUB in MBR (master boot record) of /dev/sda.\r
1241 Use /dev/sda1 as EFI partition (requires EFI support in booted system).</p></div>\r
1242 <div class="literalblock">\r
1243 <div class="content">\r
1244 <pre><code>mount /dev/sda1 /data/chroot\r
1245 grml-debootstrap --target /data/chroot</code></pre>\r
1246 </div></div>\r
1247 <div class="paragraph"><p>Install default Debian release (buster) in directory /data/chroot (without any bootloader).</p></div>\r
1248 <div class="literalblock">\r
1249 <div class="content">\r
1250 <pre><code>grml-debootstrap --target /dev/sda3 --grub /dev/sda  --mirror ftp://ftp.tugraz.at/mirror/debian</code></pre>\r
1251 </div></div>\r
1252 <div class="paragraph"><p>Install default Debian release (buster) on /dev/sda3 and install bootmanager GRUB in MBR (master boot record) of /dev/sda.\r
1253 Use specified mirror instead of the default (<a href="http://deb.debian.org/debian">http://deb.debian.org/debian</a>) one.</p></div>\r
1254 <div class="literalblock">\r
1255 <div class="content">\r
1256 <pre><code>mount /dev/sda1 /mnt/sda1\r
1257 grml-debootstrap --vmfile --vmsize 3G --target /mnt/sda1/qemu.img</code></pre>\r
1258 </div></div>\r
1259 <div class="paragraph"><p>Install default debian release (buster) in a Virtual Machine file with 3GB disk size (including GRUB as bootmanager in MBR of the virtual disk file):</p></div>\r
1260 <div class="literalblock">\r
1261 <div class="content">\r
1262 <pre><code>mount -o loop ./debian-CD-1.iso /media/cdrom\r
1263 grml-debootstrap --target /dev/sda1 --grub /dev/sda --iso /media/cdrom</code></pre>\r
1264 </div></div>\r
1265 <div class="paragraph"><p>Install Debian on /dev/sda1 using the loopback mounted Debian-ISO for the base-system and install bootmanager GRUB in MBR (master boot record) of /dev/sda.\r
1266 Please notice, that the chroot system requires network access for all packages which are not part of the ISO.</p></div>\r
1267 </div>\r
1268 </div>\r
1269 <div class="sect1">\r
1270 <h2 id="_files">Files</h2>\r
1271 <div class="sectionbody">\r
1272 <div class="literalblock">\r
1273 <div class="content">\r
1274 <pre><code>/etc/debootstrap/config</code></pre>\r
1275 </div></div>\r
1276 <div class="paragraph"><p>Main configuration file. Adjust it according to your needs if you want to\r
1277 execute grml-debootstrap in the non-interactive mode without any special command\r
1278 line arguments.</p></div>\r
1279 <div class="literalblock">\r
1280 <div class="content">\r
1281 <pre><code>/etc/debootstrap/chroot-script</code></pre>\r
1282 </div></div>\r
1283 <div class="paragraph"><p>The script executed within the new Debian system as soon as the main system\r
1284 has been installed via [c]debootstrap.</p></div>\r
1285 <div class="literalblock">\r
1286 <div class="content">\r
1287 <pre><code>/etc/debootstrap/locale.gen</code></pre>\r
1288 </div></div>\r
1289 <div class="paragraph"><p>Defines the default locales used for generating locales via locale-gen.</p></div>\r
1290 <div class="literalblock">\r
1291 <div class="content">\r
1292 <pre><code>/etc/debootstrap/packages</code></pre>\r
1293 </div></div>\r
1294 <div class="paragraph"><p>Defines the software packages which should be installed in the new\r
1295 Debian system by default.</p></div>\r
1296 <div class="literalblock">\r
1297 <div class="content">\r
1298 <pre><code>/etc/debootstrap/extrapackages/</code></pre>\r
1299 </div></div>\r
1300 <div class="paragraph"><p>Debian Packages dropped in this directory will be installed into the new Debian\r
1301 system by default (Control variable: EXTRAPACKAGES)</p></div>\r
1302 </div>\r
1303 </div>\r
1304 <div class="sect1">\r
1305 <h2 id="_customization">Customization</h2>\r
1306 <div class="sectionbody">\r
1307 <div class="paragraph"><p>You can control execution of grml-debootstrap via adjusting\r
1308 /etc/debootstrap/config for some main stuff or via setting some selected\r
1309 variables via command line.  The packages which should be installed in the new\r
1310 Debian system can be defined via the file /etc/debootstrap/packages.  If you\r
1311 want to put existing files to the new Debian system you can place them into the\r
1312 (by default non-existing) directories boot, etc, share, usr and var in\r
1313 /etc/debootstrap/. Every existing directory will be copied to the new Debian\r
1314 system then. If you want to install additional packages that are not available\r
1315 via the Grml or Debian mirror drop them into /etc/debootstrap/extrapackages and\r
1316 make sure that EXTRAPACKAGES is set to "yes".</p></div>\r
1317 </div>\r
1318 </div>\r
1319 <div class="sect1">\r
1320 <h2 id="_automatic_installation">Automatic installation</h2>\r
1321 <div class="sectionbody">\r
1322 <div class="paragraph"><p>If environment variable AUTOINSTALL is set grml-debootstrap can be executed in a\r
1323 full automatic mode. While this mode isn&#8217;t really useful for interactive\r
1324 execution (just configure /etc/debootstrap/configure or specify the relevant\r
1325 variables on the command line instead) it is meant for use via boot option\r
1326 debian2hd on the Grml live system. The boot option debian2hd (more precise: the\r
1327 kernelname at the bootprompt) supports the following boot options (they\r
1328 correspond with the command line options mentioned above):</p></div>\r
1329 <div class="literalblock">\r
1330 <div class="content">\r
1331 <pre><code>target=...</code></pre>\r
1332 </div></div>\r
1333 <div class="paragraph"><p>The target partition/directory of the new Debian system. Usage example:\r
1334 target=/dev/sda1</p></div>\r
1335 <div class="literalblock">\r
1336 <div class="content">\r
1337 <pre><code>grub=...</code></pre>\r
1338 </div></div>\r
1339 <div class="paragraph"><p>Where do you want to install grub to? Usage example: grub=/dev/sda</p></div>\r
1340 <div class="literalblock">\r
1341 <div class="content">\r
1342 <pre><code>release=...</code></pre>\r
1343 </div></div>\r
1344 <div class="paragraph"><p>Specify release of new Debian system. Defaults to Debian buster. Supported\r
1345 releases: lenny, squeeze, wheezy, jessie, stretch, buster, bullseye and sid. Usage example: release=stretch</p></div>\r
1346 <div class="literalblock">\r
1347 <div class="content">\r
1348 <pre><code>mirror=...</code></pre>\r
1349 </div></div>\r
1350 <div class="paragraph"><p>Specify mirror which should be used for apt-get/aptitude instead\r
1351 of the default one (<a href="http://deb.debian.org/debian">http://deb.debian.org/debian</a>).\r
1352 Usage example: mirror=ftp://ftp.tugraz.at/mirror/debian</p></div>\r
1353 <div class="literalblock">\r
1354 <div class="content">\r
1355 <pre><code>password=...</code></pre>\r
1356 </div></div>\r
1357 <div class="paragraph"><p>Set password of user root without prompting for it but set it to the given\r
1358 argument. Usage example: password=AiTh5ahn</p></div>\r
1359 <div class="sect2">\r
1360 <h3 id="_usage_example_for_automatic_installation">Usage example for automatic installation</h3>\r
1361 <div class="literalblock">\r
1362 <div class="content">\r
1363 <pre><code>debian2hd target=/dev/sda1 grub=/dev/sda mirror=ftp://ftp.tugraz.at/mirror/debian password=foobar</code></pre>\r
1364 </div></div>\r
1365 <div class="paragraph"><p>You have to enter this command line at the bootprompt of the Grml live system.\r
1366 Please make sure that /dev/sda1 is the partition where you really want to\r
1367 install your new Debian system.</p></div>\r
1368 <div class="admonitionblock">\r
1369 <table><tr>\r
1370 <td class="icon">\r
1371 <img src="./images/icons/note.png" alt="Note" />\r
1372 </td>\r
1373 <td class="content">Automatic installation within booting process is done in grml-autoconfig via\r
1374 setting environment variable AUTOINSTALL and creation of\r
1375 /usr/bin/grml-debootstrap_noninteractive with the available and relevant\r
1376 boot options for grml-debootstrap.</td>\r
1377 </tr></table>\r
1378 </div>\r
1379 </div>\r
1380 </div>\r
1381 </div>\r
1382 <div class="sect1">\r
1383 <h2 id="_supported_releases">Supported Releases</h2>\r
1384 <div class="sectionbody">\r
1385 <div class="tableblock">\r
1386 <table rules="all"\r
1387 width="40%"\r
1388 frame="hsides"\r
1389 cellspacing="0" cellpadding="4">\r
1390 <caption class="title">Table 1. Current status</caption>\r
1391 <col width="50%" />\r
1392 <col width="50%" />\r
1393 <thead>\r
1394 <tr>\r
1395 <th align="left" valign="top">Release  </th>\r
1396 <th align="left" valign="top">Status</th>\r
1397 </tr>\r
1398 </thead>\r
1399 <tbody>\r
1400 <tr>\r
1401 <td align="left" valign="top"><p class="table">lenny</p></td>\r
1402 <td align="left" valign="top"><p class="table">works[1]</p></td>\r
1403 </tr>\r
1404 <tr>\r
1405 <td align="left" valign="top"><p class="table">squeeze</p></td>\r
1406 <td align="left" valign="top"><p class="table">works[1]</p></td>\r
1407 </tr>\r
1408 <tr>\r
1409 <td align="left" valign="top"><p class="table">wheezy</p></td>\r
1410 <td align="left" valign="top"><p class="table">works[1]</p></td>\r
1411 </tr>\r
1412 <tr>\r
1413 <td align="left" valign="top"><p class="table">jessie</p></td>\r
1414 <td align="left" valign="top"><p class="table">works</p></td>\r
1415 </tr>\r
1416 <tr>\r
1417 <td align="left" valign="top"><p class="table">stretch</p></td>\r
1418 <td align="left" valign="top"><p class="table">works</p></td>\r
1419 </tr>\r
1420 <tr>\r
1421 <td align="left" valign="top"><p class="table">buster</p></td>\r
1422 <td align="left" valign="top"><p class="table">works</p></td>\r
1423 </tr>\r
1424 <tr>\r
1425 <td align="left" valign="top"><p class="table">bullseye</p></td>\r
1426 <td align="left" valign="top"><p class="table">works[2]</p></td>\r
1427 </tr>\r
1428 <tr>\r
1429 <td align="left" valign="top"><p class="table">sid</p></td>\r
1430 <td align="left" valign="top"><p class="table">works[2]</p></td>\r
1431 </tr>\r
1432 </tbody>\r
1433 </table>\r
1434 </div>\r
1435 <div class="admonitionblock">\r
1436 <table><tr>\r
1437 <td class="icon">\r
1438 <img src="./images/icons/note.png" alt="Note" />\r
1439 </td>\r
1440 <td class="content">\r
1441 <div class="title">lenny/squeeze/wheezy release</div>\r
1442 <div class="paragraph"><p>[1] Please notice that releases like lenny, squeeze and wheezy are unsupported releases within Debian nowadays.\r
1443 grml-debootstrap can handle the releases but you really should not use them\r
1444 anymore unless you really know what you are doing.\r
1445 Choose the current Debian stable version instead.\r
1446 See <a href="https://wiki.debian.org/DebianReleases">https://wiki.debian.org/DebianReleases</a> for the list of supported releases.</p></div>\r
1447 <div class="paragraph"><p>Notice that you need to specify a mirror providing the lenny and squeeze releases, the\r
1448 default (<a href="http://deb.debian.org/debian">http://deb.debian.org/debian</a>) doesn&#8217;t provide it any longer nowadays.\r
1449 Set the mirror to e.g. <a href="http://archive.debian.org/debian/">http://archive.debian.org/debian/</a> if you don&#8217;t have\r
1450 your own lenny/squeeze mirror.</p></div>\r
1451 <div class="paragraph"><p>Older releases might also fail to install when running on top of recent kernel versions,\r
1452 throwing segfaults during debootstrap. This can be identified by the following messages inside kernel log (check with <em>dmesg</em>):</p></div>\r
1453 <div class="literalblock">\r
1454 <div class="content">\r
1455 <pre><code>dpkg[...] vsyscall attempted with vsyscall=none ip:[...]\r
1456 dpkg[...]: segfault at [...]</code></pre>\r
1457 </div></div>\r
1458 <div class="paragraph"><p>To work around this issue boot your system with the kernel boot option <em>vsyscall=emulate</em>.</p></div>\r
1459 <div class="paragraph"><p>You also need to specify a filesystem that&#8217;s supported by lenny, e.g.\r
1460 <em>--filesystem ext3</em> since grml-debootstrap&#8217;s current default (ext4) isn&#8217;t\r
1461 supported by lenny.</p></div>\r
1462 <div class="paragraph"><p>Also when debootstrapping lenny on a live system with a kernel version\r
1463 like "3.16-1-grml-amd64" lenny&#8217;s libc will fail to install with:</p></div>\r
1464 <div class="literalblock">\r
1465 <div class="content">\r
1466 <pre><code>[...]\r
1467 /var/lib/dpkg/tmp.ci/preinst: line 265: [: 3.16-1-grml-amd64: integery expression expected\r
1468 /var/lib/dpkg/tmp.ci/preinst: line 231: 3.16-1-grml-amd64: syntax error: invalid arithemtic operator (error token is ".16-1-grml-amd64")\r
1469 dpkg: error processing /var/cache/apt/archives/libc6_2.7-18lenny7_amd64.deb (--install):\r
1470 [....]</code></pre>\r
1471 </div></div>\r
1472 <div class="paragraph"><p>To workaround this either debootstrap from a system with an according\r
1473 kernel version or use the "fake uname" workaround (just google for it).</p></div>\r
1474 <div class="paragraph"><p>When installing lenny to a new mdraid, grml-debootstrap will use md metadata\r
1475 format version 0.90. This limits the device to a maximum size of 2TB, but has\r
1476 the advantage of grub-legacy actually being able to boot from it.</p></div>\r
1477 </td>\r
1478 </tr></table>\r
1479 </div>\r
1480 <div class="admonitionblock">\r
1481 <table><tr>\r
1482 <td class="icon">\r
1483 <img src="./images/icons/note.png" alt="Note" />\r
1484 </td>\r
1485 <td class="content">\r
1486 <div class="title">unstable and testing releases</div>\r
1487 <div class="paragraph"><p>[2] Please notice that Debian/testing and Debian/unstable (sid) might\r
1488 not be always installable due to their nature. What <em>might</em> work instead is\r
1489 deploying a stable release and upgrade it after installation finished.</p></div>\r
1490 </td>\r
1491 </tr></table>\r
1492 </div>\r
1493 </div>\r
1494 </div>\r
1495 <div class="sect1">\r
1496 <h2 id="_bugs">Bugs</h2>\r
1497 <div class="sectionbody">\r
1498 <div class="paragraph"><p>Please report bugs towards <a href="https://github.com/grml/grml-debootstrap/issues">https://github.com/grml/grml-debootstrap/issues</a></p></div>\r
1499 </div>\r
1500 </div>\r
1501 <div class="sect1">\r
1502 <h2 id="_see_also">See also</h2>\r
1503 <div class="sectionbody">\r
1504 <div class="paragraph"><p>debootstrap (8), cdebootstrap (1), mmdebstrap(1).</p></div>\r
1505 </div>\r
1506 </div>\r
1507 <div class="sect1">\r
1508 <h2 id="_author">Author</h2>\r
1509 <div class="sectionbody">\r
1510 <div class="paragraph"><p>Michael Prokop &lt;<a href="mailto:mika@grml.org">mika@grml.org</a>&gt;</p></div>\r
1511 </div>\r
1512 </div>\r
1513 </div>\r
1514 <div id="footnotes"><hr /></div>\r
1515 <div id="footer">\r
1516 <div id="footer-text">\r
1517 Last updated\r
1518  2019-10-15 13:08:42 UTC\r
1519 </div>\r
1520 </div>\r
1521 </body>\r
1522 </html>\r