Finally rename grml2usb.py to grml2usb
[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\nt\n6\na\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 Performance tracing
232 ~~~~~~~~~~~~~~~~~~~
233
234   # blktrace -d /dev/sdb -o - | blkparse -i -
235   # grml2usb grml_2008.11.iso /dev/sdb1
236
237 Frequently Asked Questions (FAQ)
238 --------------------------------
239
240 What's the difference between grml2hd and grml2usb?
241 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
242
243 grml2hd installs a running grml system to a harddisk. When rebooting the
244 harddisk installation can be modified and changes will find their way to the
245 harddisk immediately.  grml2usb copies just the compressed chroot filesystem
246 (being the squashfs file), some further informational files and a bootloader to
247 your device. This way you don't need as much space as with a harddisk
248 installation (just a USB device with >=ISO size) and when rebooting the system
249 your changes will be lost (even though a persistent root feature is
250 work-in-progress). Think of using a better CD version: booting is (usually)
251 faster, you don't need to burn a new CD when a new ISO version arrives (just
252 install the new ISO using grml2usb) and you can carry additional files on a
253 writable medium with yourself.
254
255 Why do I have to use a FAT16 filesystem?
256 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
257
258 You have to use a FAT16 filesystem if you consider using syslinux (being the
259 default when using the --mbr option). Syslinux currently does not support any
260 other filesystems. If you want to use another filesystem (like ext2/3) consider
261 using the --grub option instead.
262
263 I think I've got a really cool idea!
264 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
265
266 Please <<X7,report it to the author>>. Or even better: send us a patch.
267
268 I've found a bug!
269 ~~~~~~~~~~~~~~~~~
270
271 Please <<X7,report it to the author>>. Please provide usage examples and output
272 of your grml2usb commandline (consider using the "--verbose" option).
273
274 Usage examples
275 --------------
276
277   # grml2usb /home/grml/grml_2008.11.iso /dev/sdb1
278
279 Install specified ISO on device /dev/sdb1.
280
281   # grml2usb /home/grml/grml_2008.11.iso /home/grml/grml_small_2008.11.iso /dev/sdb1
282
283 Install specified ISOs on device /dev/sdb1 for multibooting ISOs.
284 Note: boot "grml" as usual, for booting grml-small use "grml-small on the
285 bootprompt, for grml64 use "grml64" and so on... The *first* specified ISO is
286 the one being the default (when just pressing enter or waiting until the timeout
287 is reached).
288
289   # grml2usb --fat16 --mbr /home/grml/grml_2008.11.iso /dev/sdb1
290
291 Install specified ISO on device /dev/sdb1, install MBR on /dev/sdb and
292 format partition /dev/sdb1 with FAT16 filesystem.
293
294   # grml2usb --grub /home/grml/grml_2008.11.iso /dev/sdb1
295
296 Install specified ISO on device /dev/sdb1 and use Grub as bootloader
297 (instead of syslinux being the default).
298
299   # grml2usb --kernel=/boot/vmlinuz-2.6.28-grml --initrd=/boot/initrd.img-2.6.28-grml \
300              /home/grml/grml_2008.11.iso /dev/sdb1
301
302 Install specified ISO on device /dev/sdb1 but use given kernel and initrd
303 instead of the ones provided by the ISO.
304
305   # grml2usb --squashfs=/grml/grml-live/grml_cd/live/grml.squashfs \
306              /home/grml/grml_2008.11.iso /dev/sdb1
307
308 Install specified ISO on device /dev/sdb1 but use given squashfs
309 file instead of the one provided by the ISO.
310
311   # grml2usb --bootoptions="lang=de ssh=mysecret" grml_2008.11.iso /dev/sdb1
312
313 Install specified ISO on device /dev/sdb1 and use "lang=de ssh=mysecret" as
314 default bootoptions.
315
316 Online Ressources
317 -----------------
318
319 Check out the link:http://grml.org/grml2usb/[grml2usb webpage] and the
320 link:http://git.grml.org/?p=grml2usb.git[grml2usb git repository].
321
322 Bugs
323 ----
324 Please report feedback, bugreports and wishes <<X7,to the author>>.
325
326 [[X7]]
327 Author
328 ------
329 Michael Prokop <mika@grml.org>
330
331 /////////////////////////////////////////////////////////////////
332 http://wiki.grml.org/doku.php?id=tips#multiboot_usb_pen
333 http://www.startx.ro/sugar/isotostick.sh
334 https://help.ubuntu.com/community/Installation/FromUSBStick
335 http://unetbootin.sourceforge.net/
336 http://www.tux.org/pub/people/kent-robotti/looplinux/rip/mkusb.sh
337 https://fedorahosted.org/liveusb-creator/
338 /////////////////////////////////////////////////////////////////