5a961a63b0750d6353fc1dc174d89e3745b1df89
[grml2usb.git] / grml2usb.8.txt
1 grml2usb(8)
2 ==========
3
4 Name
5 ----
6 grml2usb - install grml ISO(s) on usb device for booting
7
8 Synopsis
9 --------
10 grml2usb [ options ] <ISO[s]> <device>
11
12 *******************************************************************************
13 Important! The grml team does not take responsibility for loss of any data!
14 *******************************************************************************
15
16 Introduction
17 ------------
18
19 grml2usb installs grml on a given partition of your usb device and makes it
20 bootable. It provides multi-iso support, meaning you can specify several grml
21 ISOs on the command line at once and select the grml flavour you would like to
22 boot on the bootbrompt then. Note that the *first* ISO specified on the grml2usb
23 command line will become the default one (that's the one that will boot when
24 just pressing enter on the bootprompt or wait until the boot timeout matches).
25
26 Options
27 -------
28
29 The ISO[s] might be the path to one or multiple grml-ISOs as well as the path to
30 the currently running live-system (being /live/image).
31
32 The device either might be a device name like /dev/sda1 or a directory. When
33 specifying a device name the device is mounted automatically. When specifying a
34 directory it won't be touched but instead grml2usb is assuming that you did set
35 up a bootloader on your own and a bootloader won't be installed automatically.
36
37 The following options are supported:
38
39   *--bootoptions=...*::
40
41 Use specified bootoptions as default.
42
43   *--bootloader-only*::
44
45 Do *not* copy files but instead just install a bootloader.
46
47   *--copy-only*::
48
49 Copy files only but do *not* install a bootloader.
50
51   *--dry-run*::
52
53 Avoid executing commands, instead show what would be executed.
54 Warning: please notice that the ISO has to be mounted anyway, otherwise
55 identifying the grml flavour would not be possible.
56
57   *--fat16*::
58
59 Format specified partition with FAT16.
60 **Important:** this will destroy any existing data on the specified partition!
61
62   *--force*::
63
64 Force any (possible dangerous) actions requiring manual interaction (like --fat16).
65
66   *--grub*::
67
68 Install grub bootloader instead of syslinux. [Notice: not implemented yet.]
69
70   *--help*::
71
72 Display usage information and exit.
73
74   *--initrd=...*::
75
76 Install specified initrd instead of the default. You might want to specify
77 option *--kernel* as well. (Be aware when using multiboot setup.)
78 [Notice: not implemented yet.]
79
80   *--kernel=...*::
81
82 Install specified kernel instead of the default. You might want to specify
83 option *--initrd* as well. (Be aware when using multiboot setup.)
84 [Notice: not implemented yet.]
85
86   *--lilo=...*::
87
88 Use specified lilo executable for installing master boot record (MBR).  By
89 default any system wide (from $PATH) lilo executable is taken.  If there can not
90 be find any lilo executable the statically compiled version of the grml2usb
91 Debian package (see /usr/share/grml2usb/lilo/lilo.static.[amd64|i386]) is taken.
92
93   *--mbr*::
94
95 Install a default master boot record (MBR) on the device.
96
97   *--quiet*::
98
99 Do not output anything but just errors on console.
100
101   *--skip-addons*::
102
103 Do not install /boot/addons/ files (like dos, grub, memdisk,...).
104
105   *--squashfs=*::
106
107 Install specified squashfs file instead of the default.
108 [Notice: not implemented yet.]
109
110   *--uninstall*::
111
112 Uninstall grml ISO files.
113 [Notice: not implemented yet.]
114
115   *-v*, *--version*::
116
117 Return version and exit.
118
119   *--verbose*::
120
121 Enable verbose mode.
122
123 Developers Corner
124 -----------------
125
126 Directory layout on usb device
127 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
128
129   boot/ ->
130     |-- addons/
131     |   |-- allinone.img
132     |   |-- balder10.imz
133     |   |-- chain.c32
134     |   |-- memdisk
135     |   `-- menu.c32
136     |-- release/
137     |   |-- grml/
138     |   |   |-- linux26
139     |   |   |-- initrd.gz
140     |   |-- grml64
141     |   |   |-- linux26
142     |   |   |-- initrd.gz
143     |   |-- grml-medium
144     |   |   |-- linux26
145     |   |   |-- initrd.gz
146     |   |-- grml64-medium
147     |   |   |-- linux26
148     |   |   |-- initrd.gz
149     |   |-- grml-small
150     |   |   |-- linux26
151     |   |   |-- initrd.gz
152     |   `-- grml64-small
153     |       |-- linux26
154     |       |-- initrd.gz
155     |-- grub/
156     |   |-- menu.lst
157     |   |-- splash.xpm.gz
158     |   `-- stage2_eltorito
159     `-- syslinux/
160         |-- boot.msg
161         |-- f1
162         |-- f2
163         |-- f3
164         |-- f4
165         |-- f5
166         |-- f6
167         |-- f7
168         |-- f8
169         |-- f9
170         |-- f10
171         |-- logo.16
172         `-- syslinux.cfg
173
174   grml/
175     |-- grml2usb.txt
176     |-- grml-cheatcodes.txt
177     |-- grml-version.txt
178     |-- LICENSE.txt
179     |-- md5sums
180     |-- README.txt
181     `-- web/
182         |-- index.html
183         |-- style.css
184         `-- images/
185             |-- button.png
186             |-- favicon.png
187             |-- linux.jpg
188             `-- logo.png
189
190   live/
191     |-- filesystem.module
192     |-- grml.squashfs
193     |-- grml-medium.module
194     |-- grml-medium.squashfs
195     |-- grml-small.module
196     |-- grml-small.squashfs
197     |-- grml64.module
198     |-- grml64.squashfs
199     |-- grml64-medium.module
200     |-- grml64-medium.squashfs
201     |-- grml64-small.module
202     `-- grml64-small.squashfs
203
204 Grabbing the source
205 ~~~~~~~~~~~~~~~~~~~
206
207   git clone git://git.grml.org/grml2usb.git
208
209 Developers Debugging Hints
210 ~~~~~~~~~~~~~~~~~~~~~~~~~~
211
212 To play with grml2usb you can avoid using a real device via a loopback file
213 setup, like:
214
215   dd if=/dev/zero of=~/loopback bs=1M count=100 # adjust size to your needs
216   losetup /dev/loop1 ~/loopback
217
218 Then create according partitions either running for example:
219
220   echo -en "n\np\n1\n\n\n t \n 6\n a\n1\n w\n" | fdisk /dev/loop1
221
222 or:
223
224   parted /dev/loop1 -s "mkpart primary fat16 0 -1s mkfs 1 fat16"
225
226 Finally create a filesystem and execute grml2usb as needed:
227
228   mkfs.vfat /dev/loop1
229   grml2usb --bootloader-only --mbr /grml/isos/grml-small_2008.11.iso /dev/loop1
230
231 Frequently Asked Questions (FAQ)
232 --------------------------------
233
234 What's the difference between grml2hd and grml2usb?
235 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
236
237 grml2hd installs a running grml system to a harddisk. When rebooting the
238 harddisk installation can be modified and changes will find their way to the
239 harddisk immediately.  grml2usb copies just the compressed chroot filesystem
240 (being the squashfs file), some further informational files and a bootloader to
241 your device. This way you don't need as much space as with a harddisk
242 installation (just a USB device with >=ISO size) and when rebooting the system
243 your changes will be lost (even though a persistent root feature is
244 work-in-progress). Think of using a better CD version: booting is (usually)
245 faster, you don't need to burn a new CD when a new ISO version arrives (just
246 install the new ISO using grml2usb) and you can carry additional files on a
247 writable medium with yourself.
248
249 Why do I have to use a FAT16 filesystem?
250 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
251
252 You have to use a FAT16 filesystem if you consider using syslinux (being the
253 default when using the --mbr option). Syslinux currently does not support any
254 other filesystems. If you want to use another filesystem (like ext2/3) consider
255 using the --grub option instead.
256
257 I think I've got a really cool idea!
258 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
259
260 Please <<X7,report it to the author>>. Or even better: send us a patch.
261
262 I've found a bug!
263 ~~~~~~~~~~~~~~~~~
264
265 Please <<X7,report it to the author>>. Please provide usage examples and output
266 of your grml2usb commandline (consider using the "--verbose" option).
267
268 Usage examples
269 --------------
270
271   # grml2usb /home/grml/grml_2008.11.iso /dev/sdb1
272
273 Install specified ISO on device /dev/sdb1.
274
275   # grml2usb /home/grml/grml_2008.11.iso /home/grml/grml_small_2008.11.iso /dev/sdb1
276
277 Install specified ISOs on device /dev/sdb1 for multibooting ISOs.
278 Note: boot "grml" as usual, for booting grml-small use "grml-small on the
279 bootprompt, for grml64 use "grml64" and so on... The *first* specified ISO is
280 the one being the default (when just pressing enter or waiting until the timeout
281 is reached).
282
283   # grml2usb --fat16 --mbr /home/grml/grml_2008.11.iso /dev/sdb1
284
285 Install specified ISO on device /dev/sdb1, install MBR on /dev/sdb and
286 format partition /dev/sdb1 with FAT16 filesystem.
287
288   # grml2usb --grub /home/grml/grml_2008.11.iso /dev/sdb1
289
290 Install specified ISO on device /dev/sdb1 and use Grub as bootloader
291 (instead of syslinux being the default).
292
293   # grml2usb --kernel=/boot/vmlinuz-2.6.28-grml --initrd=/boot/initrd.img-2.6.28-grml \
294              /home/grml/grml_2008.11.iso /dev/sdb1
295
296 Install specified ISO on device /dev/sdb1 but use given kernel and initrd
297 instead of the ones provided by the ISO.
298
299   # grml2usb --squashfs=/grml/grml-live/grml_cd/live/grml.squashfs \
300              /home/grml/grml_2008.11.iso /dev/sdb1
301
302 Install specified ISO on device /dev/sdb1 but use given squashfs
303 file instead of the one provided by the ISO.
304
305   # grml2usb --bootoptions="lang=de ssh=mysecret" grml_2008.11.iso /dev/sdb1
306
307 Install specified ISO on device /dev/sdb1 and use "lang=de ssh=mysecret" as
308 default bootoptions.
309
310 Online Ressources
311 -----------------
312
313 Check out the link:http://grml.org/grml2usb/[grml2usb webpage] and the
314 link:http://git.grml.org/?p=grml2usb.git[grml2usb git repository].
315
316 Bugs
317 ----
318 Please report feedback, bugreports and wishes <<X7,to the author>>.
319
320 [[X7]]
321 Author
322 ------
323 Michael Prokop <mika@grml.org>
324
325 /////////////////////////////////////////////////////////////////
326 http://wiki.grml.org/doku.php?id=tips#multiboot_usb_pen
327 http://www.startx.ro/sugar/isotostick.sh
328 https://help.ubuntu.com/community/Installation/FromUSBStick
329 http://unetbootin.sourceforge.net/
330 http://www.tux.org/pub/people/kent-robotti/looplinux/rip/mkusb.sh
331 https://fedorahosted.org/liveusb-creator/
332 /////////////////////////////////////////////////////////////////