+<?xml version="1.0" encoding="UTF-8"?>\r
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"\r
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">\r
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
<head>\r
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 8.6.6" />\r
+<meta name="generator" content="AsciiDoc 9.0.0rc2" />\r
<title>grml2usb(8)</title>\r
<style type="text/css">\r
/* Shared CSS for AsciiDoc xhtml11 and html5 backends */\r
ul > li { color: #aaa; }\r
ul > li > * { color: black; }\r
\r
-pre {\r
+.monospaced, code, pre {\r
+ font-family: "Courier New", Courier, monospace;\r
+ font-size: inherit;\r
+ color: navy;\r
padding: 0;\r
margin: 0;\r
}\r
+pre {\r
+ white-space: pre-wrap;\r
+}\r
\r
#author {\r
color: #527bbd;\r
}\r
\r
div.imageblock div.content { padding-left: 0; }\r
-span.image img { border-style: none; }\r
+span.image img { border-style: none; vertical-align: text-bottom; }\r
a.image:visited { color: white; }\r
\r
dl {\r
margin-bottom: 0.1em;\r
}\r
\r
-div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
margin-top: 0;\r
margin-bottom: 0;\r
}\r
span.overline { text-decoration: overline; }\r
span.line-through { text-decoration: line-through; }\r
\r
+div.unbreakable { page-break-inside: avoid; }\r
+\r
\r
/*\r
* xhtml11 specific\r
*\r
* */\r
\r
-tt {\r
- font-family: monospace;\r
- font-size: inherit;\r
- color: navy;\r
-}\r
-\r
div.tableblock {\r
margin-top: 1.0em;\r
margin-bottom: 1.5em;\r
p.table {\r
margin-top: 0;\r
}\r
-/* Because the table frame attribute is overriden by CSS in most browsers. */\r
+/* Because the table frame attribute is overridden by CSS in most browsers. */\r
div.tableblock > table[frame="void"] {\r
border-style: none;\r
}\r
*\r
* */\r
\r
-.monospaced {\r
- font-family: monospace;\r
- font-size: inherit;\r
- color: navy;\r
-}\r
-\r
table.tableblock {\r
margin-top: 1.0em;\r
margin-bottom: 1.5em;\r
@media print {\r
body.manpage div#toc { display: none; }\r
}\r
+\r
+\r
</style>\r
<script type="text/javascript">\r
/*<![CDATA[*/\r
\r
function tocEntries(el, toclevels) {\r
var result = new Array;\r
- var re = new RegExp('[hH]([2-'+(toclevels+1)+'])');\r
+ var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');\r
// Function that scans the DOM tree for header elements (the DOM2\r
// nodeIterator API would be a better technique but not supported by all\r
// browsers).\r
var i;\r
for (i = 0; i < toc.childNodes.length; i++) {\r
var entry = toc.childNodes[i];\r
- if (entry.nodeName == 'div'\r
+ if (entry.nodeName.toLowerCase() == 'div'\r
&& entry.getAttribute("class")\r
&& entry.getAttribute("class").match(/^toclevel/))\r
tocEntriesToRemove.push(entry);\r
var entriesToRemove = [];\r
for (i = 0; i < noteholder.childNodes.length; i++) {\r
var entry = noteholder.childNodes[i];\r
- if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote")\r
+ if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")\r
entriesToRemove.push(entry);\r
}\r
for (i = 0; i < entriesToRemove.length; i++) {\r
<div class="sect1">\r
<h2 id="_name">1. Name</h2>\r
<div class="sectionbody">\r
-<div class="paragraph"><p>grml2usb - install grml ISO(s) on usb device for booting</p></div>\r
+<div class="paragraph"><p>grml2usb - install Grml ISO(s) on usb device for booting</p></div>\r
</div>\r
</div>\r
<div class="sect1">\r
<div class="paragraph"><p>grml2usb [ options ] <ISO[s]> <device></p></div>\r
<div class="sidebarblock">\r
<div class="content">\r
-<div class="paragraph"><p>Important! The grml team does not take responsibility for loss of any data!</p></div>\r
+<div class="paragraph"><p>Important! The Grml team does not take responsibility for loss of any data!</p></div>\r
</div></div>\r
</div>\r
</div>\r
<div class="sect1">\r
<h2 id="introduction">3. Introduction</h2>\r
<div class="sectionbody">\r
-<div class="paragraph"><p>grml2usb installs grml on a given partition of your usb device and makes it\r
-bootable. It provides multi-iso support, meaning you can specify several grml\r
-ISOs on the command line at once and select the grml flavour you would like to\r
-boot on the bootprompt then. Note that the <strong>first</strong> ISO specified on the grml2usb\r
-command line will become the default one (that’s the one that will boot when\r
-just pressing enter on the bootprompt or wait until the boot timeout matches).</p></div>\r
+<div class="paragraph"><p>grml2usb installs Grml on a given partition of your usb device and makes\r
+it bootable. It provides multiboot ISO support, meaning you can specify\r
+several Grml ISOs on the command line at once and select the Grml\r
+flavour you would like to boot on the bootprompt then. Note that the\r
+<strong>first</strong> ISO specified on the grml2usb command line will become the\r
+default one (that’s the one that will boot when just pressing enter on\r
+the bootprompt or wait until the boot timeout matches).</p></div>\r
<div class="admonitionblock">\r
<table><tr>\r
<td class="icon">\r
<div class="sect1">\r
<h2 id="options">4. Options</h2>\r
<div class="sectionbody">\r
-<div class="paragraph"><p>The ISO[s] should be the path to one or multiple grml-ISOs and/or the path to\r
-the currently running live-system (being /live/image).</p></div>\r
+<div class="paragraph"><p>ISO[s] should be the path to one or multiple grml-ISOs and/or the path to\r
+the currently running live-system (being /run/live/medium).</p></div>\r
<div class="paragraph"><p>The device either might be a device name like /dev/sdX1 or a directory. When\r
specifying a device name the device is mounted automatically. When specifying a\r
directory grml2usb is assuming that you did set up a bootloader on your own (or\r
<p>\r
Avoid executing commands, instead show what would be executed.\r
Warning: please notice that the ISO has to be mounted anyway, otherwise\r
-identifying the grml flavour would not be possible.\r
+identifying the Grml flavour would not be possible.\r
</p>\r
</dd>\r
<dt class="hdlist1">\r
</p>\r
</dd>\r
<dt class="hdlist1">\r
+<strong>--skip-bootflag</strong>\r
+</dt>\r
+<dd>\r
+<p>\r
+Do not check for presence of boot flag on target device.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
<strong>--skip-grub-config</strong>\r
</dt>\r
<dd>\r
</p>\r
</dd>\r
<dt class="hdlist1">\r
+<strong>--skip-usb-check</strong>\r
+</dt>\r
+<dd>\r
+<p>\r
+Skip check to verify whether given device is a removable device.\r
+Some USB devices are known to report wrong information, when using\r
+such a device you can skip grml2usb’s removable device check.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
<strong>--syslinux</strong>\r
</dt>\r
<dd>\r
<h3 id="directory-layout">5.1. Directory layout on usb device</h3>\r
<div class="literalblock">\r
<div class="content">\r
-<pre><tt>boot/ ->\r
+<pre><code>boot/ ->\r
|-- addons/\r
| |-- allinone.img [grub - all in one image]\r
| |-- bsd4grml/ [MirBSD]\r
`-- syslinux/\r
|-- grml.png [graphical bootsplash background image for syslinux]\r
|-- syslinux.cfg [main configuration file for syslinux]\r
- `-- [....] [several further config files for syslinux]</tt></pre>\r
+ `-- [....] [several further config files for syslinux]</code></pre>\r
</div></div>\r
<div class="literalblock">\r
<div class="content">\r
-<pre><tt>grml/\r
+<pre><code>grml/\r
|-- grml2usb.txt [not yet implemented]\r
- |-- grml-cheatcodes.txt [list of bootoptions for grml]\r
+ |-- grml-cheatcodes.txt [list of bootoptions for Grml]\r
|-- grml-version.txt [file containing information about grml-version]\r
|-- LICENSE.txt [license information]\r
|-- md5sums [md5sums of original ISO]\r
|-- button.png\r
|-- favicon.png\r
|-- linux.jpg\r
- `-- logo.png</tt></pre>\r
+ `-- logo.png</code></pre>\r
</div></div>\r
<div class="literalblock">\r
<div class="content">\r
-<pre><tt>live/\r
+<pre><code>live/\r
|-- grml/\r
| |-- filesystem.module [module specifying which squashfs should be used for grml]\r
| `-- grml.squashfs [squashfs file for grml]\r
|-- grml-small/\r
| |-- filesystem.module [module specifying which squashfs should be used for grml-medium]\r
| `-- grml-small.squashfs [squashfs file for grml-small]\r
- `-- ...</tt></pre>\r
+ `-- ...</code></pre>\r
</div></div>\r
</div>\r
<div class="sect2">\r
<h3 id="source">5.2. Grabbing the source</h3>\r
<div class="literalblock">\r
<div class="content">\r
-<pre><tt>% git clone git://git.grml.org/grml2usb.git</tt></pre>\r
+<pre><code>% git clone git://git.grml.org/grml2usb.git</code></pre>\r
</div></div>\r
</div>\r
<div class="sect2">\r
setup, like:</p></div>\r
<div class="literalblock">\r
<div class="content">\r
-<pre><tt># dd if=/dev/zero of=~/loopback bs=1M count=100 # adjust size to your needs\r
-# losetup /dev/loop1 ~/loopback</tt></pre>\r
+<pre><code># dd if=/dev/zero of=~/loopback bs=1M count=100 # adjust size to your needs\r
+# losetup /dev/loop1 ~/loopback</code></pre>\r
</div></div>\r
<div class="paragraph"><p>Then create according partitions either running for example:</p></div>\r
<div class="literalblock">\r
<div class="content">\r
-<pre><tt># echo -en "n\np\n1\n\n\nt\n6\na\n1\n w\n" | fdisk /dev/loop1</tt></pre>\r
+<pre><code># echo -en "n\np\n1\n\n\nt\n6\na\n1\n w\n" | fdisk /dev/loop1</code></pre>\r
</div></div>\r
<div class="paragraph"><p>or:</p></div>\r
<div class="literalblock">\r
<div class="content">\r
-<pre><tt># parted /dev/loop1 -s "mkpart primary fat16 0 -1s mkfs 1 fat16"</tt></pre>\r
+<pre><code># parted /dev/loop1 -s "mkpart primary fat16 0 -1s mkfs 1 fat16"</code></pre>\r
</div></div>\r
<div class="paragraph"><p>Finally create a filesystem and execute grml2usb as needed:</p></div>\r
<div class="literalblock">\r
<div class="content">\r
-<pre><tt># mkfs.vfat /dev/loop1\r
-# grml2usb --bootloader-only /grml/isos/grml-small_2009.10.iso /dev/loop1</tt></pre>\r
+<pre><code># mkfs.vfat /dev/loop1\r
+# grml2usb --bootloader-only /grml/isos/grml64-small_2018.12.iso /dev/loop1</code></pre>\r
</div></div>\r
</div>\r
<div class="sect2">\r
<h3 id="performance-tracing">5.4. Performance tracing</h3>\r
<div class="literalblock">\r
<div class="content">\r
-<pre><tt># blktrace -d /dev/sdX -o - | blkparse -i -\r
-# grml2usb grml_2009.10.iso /dev/sdX1</tt></pre>\r
+<pre><code># blktrace -d /dev/sdX -o - | blkparse -i -\r
+# grml2usb grml64-full_2018.12.iso /dev/sdX1</code></pre>\r
</div></div>\r
</div>\r
</div>\r
use the grml2usb git tree running:</p></div>\r
<div class="literalblock">\r
<div class="content">\r
-<pre><tt>git clone git://git.grml.org/grml2usb.git\r
+<pre><code>git clone git://git.grml.org/grml2usb.git\r
cd grml2usb\r
make -C mbr\r
-sudo ./grml2usb ...</tt></pre>\r
+sudo ./grml2usb ...</code></pre>\r
</div></div>\r
<div class="paragraph"><p>or download the provided\r
<a href="http://grml.org/grml2usb/grml2usb.tgz">http://grml.org/grml2usb/grml2usb.tgz</a>\r
</div>\r
<div class="sect2">\r
<h3 id="dd">7.2. Why can’t I just dd the ISO to a USB device?</h3>\r
-<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
+<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
<div class="admonitionblock">\r
<table><tr>\r
<td class="icon">\r
system available) running:</p></div>\r
<div class="literalblock">\r
<div class="content">\r
-<pre><tt>% dd if=grml_2009.10.iso of=/dev/sdX</tt></pre>\r
+<pre><code>% dd if=grml64-full_2018.12.iso of=/dev/sdX</code></pre>\r
</div></div>\r
<div class="paragraph"><p>where /dev/sdX is your USB device. Of course this doesn’t provide such a\r
flexible system like with grml2usb (no multi-ISO setup, no additional default\r
<div class="paragraph"><p>The following message:</p></div>\r
<div class="literalblock">\r
<div class="content">\r
-<pre><tt>You shouldn't call /sbin/grub-install. Please call /usr/sbin/grub-install instead!\r
-xfs_freeze: specified file ["/tmp/tmpqaBK6z/boot/grub"] is not on an XFS filesystem</tt></pre>\r
+<pre><code>You shouldn't call /sbin/grub-install. Please call /usr/sbin/grub-install instead!\r
+xfs_freeze: specified file ["/tmp/tmpqaBK6z/boot/grub"] is not on an XFS filesystem</code></pre>\r
</div></div>\r
<div class="paragraph"><p>This is "normal". grub-install sends those messages to stderr. To avoid hiding any\r
possible real error messages grml2usb doesn’t ignore those messages.</p></div>\r
<div class="paragraph"><p>The following message:</p></div>\r
<div class="literalblock">\r
<div class="content">\r
-<pre><tt>grub-probe: error: Cannot open `/boot/grub/device.map'</tt></pre>\r
+<pre><code>grub-probe: error: Cannot open `/boot/grub/device.map'</code></pre>\r
</div></div>\r
<div class="paragraph"><p>This is "normal" (at least with grub1). This isn’t a problem, because the\r
device.map file will be generated on the target device anyway.</p></div>\r
<div class="paragraph"><p>The following message:</p></div>\r
<div class="literalblock">\r
<div class="content">\r
-<pre><tt>'/usr/sbin/grub-install: line 374: [: =: unary operator expected'</tt></pre>\r
+<pre><code>'/usr/sbin/grub-install: line 374: [: =: unary operator expected'</code></pre>\r
</div></div>\r
<div class="paragraph"><p>This is "normal". Just ignore it. (It usually doesn’t appear\r
on the second invocation on the same device.)</p></div>\r
<div class="paragraph"><p>The following message:</p></div>\r
<div class="literalblock">\r
<div class="content">\r
-<pre><tt>grub-probe: error: unknown filesystem\r
+<pre><code>grub-probe: error: unknown filesystem\r
Auto-detection of a filesystem module failed.\r
-Please specify the module with the option `--modules' explicitly.</tt></pre>\r
+Please specify the module with the option `--modules' explicitly.</code></pre>\r
</div></div>\r
<div class="paragraph"><p>usually means that the device partition table says something else than the\r
filesystem on the device. For example using FAT16 as filesystem type and\r
<div class="paragraph"><p>The following message:</p></div>\r
<div class="literalblock">\r
<div class="content">\r
-<pre><tt>grub-setup: warn: Attempting to install GRUB to a partition instead of the MBR. This is a BAD idea.\r
+<pre><code>grub-setup: warn: Attempting to install GRUB to a partition instead of the MBR. This is a BAD idea.\r
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
-grub-setup: error: Cannot read `/grub/core.img' correctly</tt></pre>\r
+grub-setup: error: Cannot read `/grub/core.img' correctly</code></pre>\r
</div></div>\r
<div class="paragraph"><p>appears when using grub2 versions older than 1.98 as those version introduced a\r
regression which avoids that grub is being installed into a partition (PBR,\r
<div class="sectionbody">\r
<div class="literalblock">\r
<div class="content">\r
-<pre><tt># grml2usb /home/grml/grml_2009.10.iso /dev/sdX1</tt></pre>\r
+<pre><code># grml2usb /home/grml/grml64-full_2018.12.iso /dev/sdX1</code></pre>\r
</div></div>\r
<div class="paragraph"><p>Install specified ISO on device /dev/sdX1.</p></div>\r
<div class="literalblock">\r
<div class="content">\r
-<pre><tt># grml2usb /home/grml/grml_2009.10.iso /home/grml/grml_small_2009.10.iso /dev/sdX1</tt></pre>\r
+<pre><code># grml2usb /home/grml/grml64-full_2018.12.iso /home/grml/grml32-full_2018.12.iso /dev/sdX1</code></pre>\r
</div></div>\r
<div class="paragraph"><p>Install specified ISOs on device /dev/sdX1 for multibooting ISOs.</p></div>\r
<div class="literalblock">\r
<div class="content">\r
-<pre><tt># grml2usb /live/image /dev/sdX1</tt></pre>\r
+<pre><code># grml2usb /run/live/medium /dev/sdX1</code></pre>\r
</div></div>\r
-<div class="paragraph"><p>Install currently running grml live system on device /dev/sdX1.</p></div>\r
+<div class="paragraph"><p>Install currently running Grml live system on device /dev/sdX1.</p></div>\r
<div class="literalblock">\r
<div class="content">\r
-<pre><tt># grml2usb /live/image /home/grml/grml_2009.10.iso /dev/sdX1</tt></pre>\r
+<pre><code># grml2usb /run/live/medium /home/grml/grml64-full_2018.12.iso /dev/sdX1</code></pre>\r
</div></div>\r
-<div class="paragraph"><p>Install currently running grml live system and the specified\r
+<div class="paragraph"><p>Install currently running Grml live system and the specified\r
ISO on device /dev/sdX1 for multibooting.</p></div>\r
<div class="literalblock">\r
<div class="content">\r
-<pre><tt># grml2usb --fat16 /home/grml/grml_2009.10.iso /dev/sdX1</tt></pre>\r
+<pre><code># grml2usb --fat16 /home/grml/grml64-full_2018.12.iso /dev/sdX1</code></pre>\r
</div></div>\r
<div class="paragraph"><p>Install specified ISO on device /dev/sdX1 and format partition /dev/sdX1 with\r
FAT16 filesystem.</p></div>\r
<div class="literalblock">\r
<div class="content">\r
-<pre><tt># grml2usb --grub --grub-mbr /home/grml/grml_2009.10.iso /dev/sdX1</tt></pre>\r
+<pre><code># grml2usb --grub --grub-mbr /home/grml/grml64-full_2018.12.iso /dev/sdX1</code></pre>\r
</div></div>\r
<div class="paragraph"><p>Install specified ISO on device /dev/sdX1 and use grub as bootloader (instead of\r
syslinux being the default) and install a master boot record (MBR) to the MBR of\r
/dev/sdX.</p></div>\r
<div class="literalblock">\r
<div class="content">\r
-<pre><tt># grml2usb --bootoptions="lang=de ssh=mysecret" grml_2009.10.iso /dev/sdX1\r
-# grml2usb --bootoptions="lang=de" --bootoptions="ssh=mysecret" grml_2009.10.iso /dev/sdX1</tt></pre>\r
+<pre><code># grml2usb --bootoptions="lang=de ssh=mysecret" grml64-full_2018.12.iso /dev/sdX1\r
+# grml2usb --bootoptions="lang=de" --bootoptions="ssh=mysecret" grml64-full_2018.12.iso /dev/sdX1</code></pre>\r
</div></div>\r
<div class="paragraph"><p>Install specified ISO on device /dev/sdX1 and use "lang=de ssh=mysecret" as\r
default bootoptions.</p></div>\r
<div class="literalblock">\r
<div class="content">\r
-<pre><tt># grml2usb --remove-bootoption="vga=791" --remove-bootoption="quiet" grml_2009.10.iso /dev/sdX1</tt></pre>\r
+<pre><code># grml2usb --remove-bootoption="vga=791" --remove-bootoption="nomce" grml64-full_2018.12.iso /dev/sdX1</code></pre>\r
</div></div>\r
-<div class="paragraph"><p>Install specified ISO on device /dev/sdX1 remove vga=791 and quiet from existing bootoptions.</p></div>\r
+<div class="paragraph"><p>Install specified ISO on device /dev/sdX1 remove vga=791 and nomce from existing bootoptions.</p></div>\r
<div class="literalblock">\r
<div class="content">\r
-<pre><tt># grml2usb --bootoptions="persistent-path=%flavour_name" grml64_2010.04.iso grml_2010.04.iso /dev/sdX1</tt></pre>\r
+<pre><code># grml2usb --bootoptions="persistent-path=%flavour_name" grml64-small_2018.12.iso grml32-small_2018.12.iso /dev/sdX1</code></pre>\r
</div></div>\r
-<div class="paragraph"><p>Install specified Isos on device /dev/sdx and add parameter persisten-path\r
+<div class="paragraph"><p>Install specified ISOs on device /dev/sdx and add parameter persistent-path\r
to every menu entry. %flavour_name will be expanded to the flavour of the specific\r
iso, e.g. grml64 and grml.</p></div>\r
</div>\r
</div>\r
<div class="sect1">\r
-<h2 id="ressources">9. Online Ressources</h2>\r
+<h2 id="resources">9. Online Resources</h2>\r
<div class="sectionbody">\r
<div class="paragraph"><p>Check out the <a href="http://grml.org/grml2usb/">grml2usb webpage</a> and the\r
<a href="http://git.grml.org/?p=grml2usb.git">grml2usb git repository</a>.</p></div>\r
<div id="footnotes"><hr /></div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 2011-11-26 20:30:03 CET\r
+Last updated\r
+ 2020-06-03 13:04:51 UTC\r
</div>\r
</div>\r
</body>\r