Penguin
Annotated edit history of syslinux(1) version 2, including all changes. View license author blame.
Rev Author # Line
1 perry 1 SYSLINUX
2 !!!SYSLINUX
3 NAME
4 SYNOPSIS
5 DESCRIPTION
6 OPTIONS
7 FILES
8 BUGS
9 SEE ALSO
10 AUTHOR
11 ----
12 !!NAME
13
14
15 syslinux - bootloader for Linux using MS-DOS floppies
16 !!SYNOPSIS
17
18
19 __syslinux__ [[ __-s__ ] [[ __-f__ ] [[ __-o__
20 ''offset'' __]__ ''device''
21 !!DESCRIPTION
22
23
24 __Syslinux__ is a boot loader for the Linux operating
25 system which operates off an MS-DOS/Windows FAT filesystem.
26 It is intended to simplify first-time installation of Linux,
27 and for creation of rescue and other special-purpose boot
28 disks.
29
30
31 In order to create a bootable Linux floppy using
32 __Syslinux__, prepare a normal MS-DOS formatted floppy.
33 Copy one or more Linux kernel files to it, then execute the
34 command:
35
36
37 __syslinux /dev/fd0__
38
39
40 This will alter the boot sector on the disk and copy a file
41 named LDLINUX.SYS into its root directory.
42
43
44 On boot time, by default, the kernel will be loaded from the
45 image named LINUX on the boot floppy. This default can be
46 changed, see the section on the __syslinux__
47 configuration file.
48
49
50 If the Shift or Alt keys are held down during boot, or the
51 Caps or Scroll locks are set, __syslinux__ will display a
52 lilo(8) -style
53 __syslinux__ loader does not need to know
54 about the kernel file in advance; all that is required is
55 that it is a file located in the root directory on the
56 disk.
57
58
59 __Syslinux__ supports the loading of initial ramdisks
60 (initrd) and the bzImage kernel format.
61 !!OPTIONS
62
63
64 __-s__
65
66
67 Install a
68 syslinux__. This version may work on some very buggy
69 BIOSes on which __syslinux__ would otherwise fail. If you
70 find a machine on which the -s option is required to make it
71 boot reliably, please send as much info about your machine
72 as you can, and include the failure mode.
73 !!FILES
74
75
76 __Configuration file__
77
78
79 All the configurable defaults in __syslinux__ can be
80 changed by putting a file called SYSLINUX.CFG in the root
81 directory of the boot floppy. This is a text file in either
82 UNIX or DOS format, containing one or more of the following
83 items (case is insensitive for keywords).
84
85
86 In the configuration file blank lines and comment lines
87 beginning with a hash mark (#) are ignored.
88
89
90 __default__ ''kernel'' [[ ''options ...''
91 ]
92
93
94 Sets the default command line. If __syslinux__ boots
95 automatically, it will act just as if the entries after
96 __
97
98
99 If no configuration file is present, or no
100
101
102 NOTE: Earlier versions of SYSLINUX used to
103 automatically
104
105
106 append the string
107
108
109 __append__ ''options ...''
110
111
112 Add one or more ''options'' to the kernel command line.
113 These are added both for automatic and manual boots. The
114 options are added at the very beginning of the kernel
115 command line, usually permitting explicitly entered kernel
116 options to override them. This is the equivalent of the
117 lilo(8) __
118
119
120 __label__ ''label
121 ''__ kernel__ ''image
122 ''__ append__ ''options ...
123 ''
124
125
126 Indicates that if ''label'' is entered as the kernel to
127 boot, __syslinux__ should instead boot ''image'', and
128 the specified
129 ''image'' is the same as ''label'', and if
130 no
131 ''
132
133
134 __Notes:__
135
136
137 Labels are mangled as if they were DOS filenames, and must
138 be unique after mangling. For example, two labels
139
140
141 The
142
143
144 __implicit__ ''flag_val''
145
146
147 If ''flag_val'' is 0, do not load a kernel image unless
148 it has been explicitly named in a
149 ''
150
151
152 __timeout__ ''timeout''
153
154
155 Indicates how long to wait at the
156
157
158 __serial__ ''port'' [[ ''baudrate'' ]
159
160
161 Enables a serial port to act as the console.
162
163
164 For this directive to be guaranteed to work properly, it
165 should be the first directive in the configuration
166 file.
167
168
169 __font__ ''filename''
170
171
172 Load a font in .psf format before displaying any output
173 (except the copyright line, which is output as ldlinux.sys
174 itself is loaded.) __syslinux__ only loads the font onto
175 the video card; if the .psf file contains a Unicode table it
176 is ignored. This only works on EGA and VGA cards; hopefully
177 it should do nothing on others.
178
179
180 __kbdmap__ ''keymap''
181
182
183 Install a simple keyboard map. The keyboard remapper used is
184 ''very'' simplistic (it simply remaps the keycodes
185 received from the BIOS, which means that only the key
186 combinations relevant in the default layout - usually U.S.
187 English - can be mapped) but should at least help people
188 with AZERTY keyboard layout and the locations of = and ,
189 (two special characters used heavily on the Linux kernel
190 command line.)
191
192
2 perry 193 The included program keytab-lilo.pl(8) from the
1 perry 194 lilo(8) distribution can be used to create such
195 keymaps.
196
197
198 __display__ ''filename''
199
200
201 Displays the indicated file on the screen at boot time
202 (before the boot: prompt, if displayed). Please see the
203 section below on DISPLAY files. If the file is missing, this
204 option is simply ignored.
205
206
207 __prompt__ ''flag_val''
208
209
210 If ''flag_val'' is 0, display the
211 ''flag_val'' is 1, always display the
212 ''
213
214
215 __f1__ ''filename
216 ''__f2__ ''filename
217 ...
218 ''__f9__ ''filename
219 ''__f0__ ''filename
220 ''
221
222
223 Displays the indicated file on the screen when a function
224 key is pressed at the
225
226
227 When using the serial console, press
228 '''' to get to the help
229 screens, e.g. '''' to get to the f2
230 screen, and '''' for the f10
231 one.
232
233
234 __Display file format__
235
236
237 DISPLAY and function-key help files are text files in either
238 DOS or UNIX format (with or without ''''). In
239 addition, the following special codes are
240 interpreted:
241
242
243 '''' = '''' = ASCII
244 12
245
246
247 Clear the screen, home the cursor. Note that the screen is
248 filled with the current display color.
249
250
251 '''', '''' =
252 '''' = ASCII 15
253
254
255 Set the display colors to the specified background and
256 foreground colors, where '''' and
257 '''' are hex digits, corresponding to the
258 standard PC display attributes:
259
260
261 0 = black 8 = dark grey
262 1 = dark blue 9 = bright blue
263 2 = dark green a = bright green
264 3 = dark cyan b = bright cyan
265 4 = dark red c = bright red
266 5 = dark purple d = bright purple
267 6 = brown e = yellow
268 7 = light grey f = white
269 Picking a bright color (8-f) for the background results in the corresponding dark color (0-7), with the foreground flashing.
270
271
272 colors are not visible over the serial console.
273
274
275 ''''filename'''',
276 '''' = '''' = ASCII
277 24
278
279
280 If a VGA display is present, enter graphics mode and display
281 the graphic included in the specified file. The file format
282 is an ad hoc format called LSS16; the included Perl program
283
284
285 The image is displayed in 640x480 16-color mode. Once in
286 graphics mode, the display attributes (set by
287 '''' code sequences) work slightly differently:
288 the background color is ignored, and the foreground colors
289 are the 16 colors specified in the image file. For that
290 reason, ppmtolss16 allows you to specify that certain colors
291 should be assigned to specific color indicies.
292
293
294 Color indicies 0 and 7, in particular, should be chosen with
295 care: 0 is the background color, and 7 is the color used for
296 the text printed by SYSLINUX itself.
297
298
299 '''', '''' = ''''
300 = ASCII 25
301
302
303 If we are currently in graphics mode, return to text
304 mode.
305
306
307 ''''..''''__,__
308 ''''__..__'''' __=
309 ASCII 16-23__
310
311
312 These codes can be used to select which modes to print a
313 certain part of the message file in. Each of these control
314 characters select a specific set of modes (text screen,
315 graphics screen, serial port) for which the output is
316 actually displayed:
317
318
319 Character Text Graph Serial
320 ------------------------------------------------------
321 For example:
322
323
324 ... will actually print out which mode the console is in!
325
326
327 '''' = '''' = ASCII
328 26
329
330
331 End of file (DOS convention).
332
333
334 __Comboot Images and other operating
335 systems__
336
337
338 This version of __syslinux__ supports chain loading of
339 other operating systems (such as MS-DOS and its derivatives,
340 including Windows 95/98), as well as COMBOOT-style
341 standalone executables (a subset of DOS .COM files; see
342 separate section below.)
343
344
345 Chain loading requires the boot sector of the foreign
346 operating system to be stored in a file in the root
347 directory of the filesystem. Because neither Linux kernels,
348 boot sector images, nor COMBOOT files have reliable magic
349 numbers, __syslinux__ will look at the file extension.
350 The following extensions are recognised:
351
352
353 none or other Linux kernel image
354 CBT COMBOOT image (not runnable from DOS)
355 BSS Boot sector (DOS superblock will be patched in)
356 BS Boot sector
357 COM COMBOOT image (runnable from DOS)
358 For filenames given on the command line, __syslinux__ will search for the file by adding extensions in the order listed above if the plain filename is not found. Filenames in KERNEL statements must be fully qualified.
359
360
361 A COMBOOT file is a standalone executable in DOS .COM
362 format. They can, among other things, be produced by the
363 Etherboot package by Markus Gutschke and Ken Yap. The
364 following requirements apply for these files to be
365 sufficiently syslinux__ to
366 be able to load and run them:
367
368
369 The program must not execute any DOS calls (since there is
370 no DOS), although it may call the BIOS. The only exception
371 is that the program may execute INT 20h (Terminate Program)
372 to return to the __syslinux__ prompt. Note especially
373 that INT 21h AH=4Ch, INT 21h AH=31h or INT 27h are not
374 supported.
375
376
377 Only the fields pspInt20 at offset 00h, pspNextParagraph at
378 offset 02h and pspCommandTail at offset 80h (contains the
379 arguments from the __syslinux__ command line) in the PSP
380 are supported. All other fields will contain
381 zero.
382
383
384 The program must not modify any main memory outside its 64K
385 segment if it returns to __syslinux__ via INT
386 20h.
387
388
389 __Syslinux__ currently doesn't provide any form of API
390 for the use of COMBOOT files. If there is need, a future
391 version may contain an INT interface to some __syslinux__
392 functions; please contact me if you have a need or ideas for
393 such an API.
394
395
396 __Novice protection__
397
398
399 __Syslinux__ will attempt to detect if the user is trying
400 to boot on a 286 or lower class machine, or a machine with
401 less than 608K of low (
402 __
403
404
405 The compile time and date of a specific __syslinux__
406 version can be obtained by the DOS command
407 __
408
409
410 Any file that __syslinux__ uses can be marked hidden,
411 system or readonly if so is convenient; __syslinux__
412 ignores all file attributes. The SYSLINUX installed
413 automatically sets the readonly attribute on
414 LDLINUX.SYS.
415
416
417 __Bootable CD-ROMs__
418
419
420 SYSLINUX can be used to create bootdisk images for El
421 Torito-compatible bootable CD-ROMs. However, it appears that
422 many BIOSes are very buggy when it comes to booting CD-ROMs.
423 Some users have reported that the following steps are
424 helpful in making a CD-ROM that is bootable on the largest
425 possible number of machines:
426
427
428 Use the -s (safe, slow and stupid) option to
429 SYSLINUX
430
431
432 Put the boot image as close to the beginning of the ISO 9660
433 filesystem as possible.
434
435
436 A CD-ROM is so much faster than a floppy that the -s option
437 shouldn't matter from a speed perspective.
438
439
440 __Booting from a FAT partition on a hard
441 disk__
442
443
444 SYSLINUX can boot from a FAT12 or FAT16 filesystem partition
445 on a hard disk (FAT32, introduced in Windows 95 OSR-2, is
446 not supported, however.) The installation procedure is
447 identical to the procedure for installing it on a floppy,
448 and should work under either DOS or Linux. To boot from a
449 partition, SYSLINUX needs to be launched from a Master Boot
450 Record or another boot loader, just like DOS itself
451 would.
452 !!BUGS
453
454
455 SYSLINUX is unsafe to use on any filesystem that extends
456 past cylinder 1024. This is a fundamental limitation of the
457 standard BIOS API.
458
459
460 SYSLINUX will not work (and will refuse to install) on
461 filesystems with a cluster size of more than 16K (typically
462 means a filesystem of more than 1 GB.)
463
464
465 __Bug reports__
466
467
468 I would appreciate hearing of any problems you have with
469 SYSLINUX. I would also like to hear from you if you have
470 successfully used SYSLINUX, especially if you are using it
471 for a distribution.
472
473
474 If you are reporting problems, please include all possible
475 information about your system and your BIOS; the vast
476 majority of all problems reported turn out to be BIOS or
477 hardware bugs, and I need as much information as possible in
478 order to diagnose the problems.
479
480
481 There is a mailing list for discussion among SYSLINUX users
482 and for announcements of new and test versions. To join,
483 send a message to majordomo@linux.kernel.org with the
484 line:
485
486
487 __subscribe syslinux__
488
489
490 in the body of the message. The submission address is
491 syslinux@linux.kernel.org.
492 !!SEE ALSO
493
494
2 perry 495 lilo(8), keytab-lilo.pl(8), fdisk(8),
1 perry 496 mkfs(8), superformat(1).
497 !!AUTHOR
498
499
500 This manual page is a modified version of the original
501 __syslinux__ documentation by H. Peter Anvin
502 __
503 ----
This page is a man page (or other imported legacy content). We are unable to automatically determine the license status of this page.