913 lines
32 KiB
Plaintext
913 lines
32 KiB
Plaintext
The Syslinux Project
|
|
|
|
A suite of bootloaders for Linux
|
|
|
|
Copyright 1994-2011 H. Peter Anvin and contributors
|
|
|
|
This program is provided under the terms of the GNU General Public
|
|
License, version 2 or, at your option, any later version. There is no
|
|
warranty, neither expressed nor implied, to the function of this
|
|
program. Please see the included file COPYING for details.
|
|
|
|
----------------------------------------------------------------------
|
|
|
|
Syslinux now has a home page at http://syslinux.zytor.com/
|
|
|
|
----------------------------------------------------------------------
|
|
|
|
The Syslinux suite contains the following boot loaders
|
|
("derivatives"), for their respective boot media:
|
|
|
|
SYSLINUX - MS-DOS/Windows FAT filesystem
|
|
PXELINUX - PXE network booting
|
|
ISOLINUX - ISO9660 CD-ROM
|
|
EXTLINUX - Linux ext2/ext3 filesystem
|
|
|
|
For historical reasons, some of the sections in this document applies
|
|
to the FAT loader (SYSLINUX) only; see pxelinux.txt, isolinux.txt and
|
|
extlinux.txt for what differs in these versions. The all-caps term
|
|
"SYSLINUX" generally refers to the FAT loader, whereas "Syslinux"
|
|
refers to the project as a whole.
|
|
|
|
Help with cleaning up the docs would be greatly appreciated.
|
|
|
|
|
|
++++ Options ++++
|
|
|
|
These are the options common to all versions of Syslinux:
|
|
|
|
-s Safe, slow, stupid; uses simpler code that boots better
|
|
-f Force installing
|
|
-r Raid mode. If boot fails, tell the BIOS to boot the next
|
|
device in the boot sequence (usually the next hard disk)
|
|
instead of stopping with an error message.
|
|
This is useful for RAID-1 booting.
|
|
|
|
These are only in the Windows version:
|
|
|
|
-m Mbr; install a bootable MBR sector to the beginning of the
|
|
drive.
|
|
-a Active; marks the partition used active (=bootable)
|
|
|
|
|
|
++++ CREATING A BOOTABLE LINUX FLOPPY +++
|
|
|
|
In order to create a bootable Linux floppy using SYSLINUX, prepare a
|
|
normal MS-DOS formatted floppy. Copy one or more Linux kernel files to
|
|
it, then execute the DOS command:
|
|
|
|
syslinux [-sfrma][-d directory] a: [bootsecfile]
|
|
|
|
(or whichever drive letter is appropriate; the [] meaning optional.)
|
|
|
|
Use "syslinux.com" (in the dos subdirectory of the distribution) for
|
|
plain DOS (MS-DOS, DR-DOS, PC-DOS, FreeDOS...) or Win9x/ME.
|
|
|
|
Use "syslinux.exe" (in the win32 subdirectory of the distribution) for
|
|
WinNT/2000/XP.
|
|
|
|
Under Linux, execute the command:
|
|
|
|
syslinux [-sfr][-d directory][-o offset] /dev/fd0
|
|
|
|
(or, again, whichever device is the correct one.)
|
|
|
|
This will alter the boot sector on the disk and copy a file named
|
|
LDLINUX.SYS into its root directory (or a subdirectory, if the -d
|
|
option is specified.)
|
|
|
|
The -s option, if given, will install a "safe, slow and stupid"
|
|
version of SYSLINUX. This version may work on some very buggy BIOSes
|
|
on which SYSLINUX would otherwise fail. If you find a machine on
|
|
which the -s option is required to make it boot reliably, please send
|
|
as much info about your machine as you can, and include the failure
|
|
mode.
|
|
|
|
The -o option is used with a disk image file and specifies the byte
|
|
offset of the filesystem image in the file.
|
|
|
|
For the DOS and Windows installers, the -m and -a options can be used
|
|
on hard drives to write a Master Boot Record (MBR), and to mark the
|
|
specific partition active.
|
|
|
|
If the Shift or Alt keys are held down during boot, or the Caps or Scroll
|
|
locks are set, Syslinux will display a LILO-style "boot:" prompt. The
|
|
user can then type a kernel file name followed by any kernel parameters.
|
|
The Syslinux loader does not need to know about the kernel file in
|
|
advance; all that is required is that it is a file located in the root
|
|
directory on the disk.
|
|
|
|
There are two versions of the Linux installer; one in the "mtools"
|
|
directory which requires no special privilege (other than write
|
|
permission to the device where you are installing) but requires the
|
|
mtools program suite to be available, and one in the "linux" directory
|
|
which requires root privilege.
|
|
|
|
|
|
++++ CONFIGURATION FILE ++++
|
|
|
|
All options here apply to PXELINUX, ISOLINUX and EXTLINUX as well as
|
|
SYSLINUX unless otherwise noted. See the respective .txt files.
|
|
|
|
All the configurable defaults in SYSLINUX can be changed by putting a
|
|
file called "syslinux.cfg" in the root directory of the boot disk.
|
|
|
|
Starting with version 3.35, the configuration file can also be in
|
|
either the /boot/syslinux or /syslinux directories (searched in that
|
|
order.) If that is the case, then all filenames are assumed to be
|
|
relative to that same directory, unless preceded with a slash or
|
|
backslash.
|
|
|
|
The configuration file is a text file in either UNIX or DOS format,
|
|
containing one or more of the following items, each on its own line with
|
|
optional leading whitespace. Case is insensitive for keywords; upper
|
|
case is used here to indicate that a word should be typed verbatim.
|
|
|
|
#comment
|
|
A comment line.
|
|
|
|
INCLUDE filename
|
|
Inserts the contents of another file at this point in the
|
|
configuration file. Files can currently be nested up to 16
|
|
levels deep, but it is not guaranteed that more than 8 levels
|
|
will be supported in the future.
|
|
|
|
DEFAULT kernel options...
|
|
Sets the default command line. If Syslinux boots automatically,
|
|
it will act just as if the entries after DEFAULT had been typed
|
|
in at the "boot:" prompt.
|
|
|
|
If no configuration file is present, or no DEFAULT entry is
|
|
present in the config file, an error message is displayed and
|
|
the boot: prompt is shown.
|
|
|
|
UI module options...
|
|
Selects a specific user interface module (typically menu.c32
|
|
or vesamenu.c32). The command-line interface treats this as a
|
|
directive that overrides the DEFAULT and PROMPT directives.
|
|
|
|
APPEND options...
|
|
Add one or more options to the kernel command line. These are
|
|
added both for automatic and manual boots. The options are
|
|
added at the very beginning of the kernel command line,
|
|
usually permitting explicitly entered kernel options to override
|
|
them. This is the equivalent of the LILO "append" option.
|
|
|
|
SYSAPPEND bitmask
|
|
IPAPPEND bitmask
|
|
|
|
The SYSAPPEND option was introduced in Syslinux 5.10; it is an
|
|
enhancement of a previous option IPAPPEND which was only
|
|
available on PXELINUX. bitmask is interpreted as decimal format
|
|
unless prefixed with "0x" for hexadecimal or "0" (zero) for
|
|
octal.
|
|
|
|
1: indicates that an option of the following format
|
|
should be generated and added to the kernel command line:
|
|
|
|
ip=<client-ip>:<boot-server-ip>:<gw-ip>:<netmask>
|
|
|
|
... based on the input from the DHCP/BOOTP or PXE boot server.
|
|
|
|
NOTE: The use of this option is no substitute for running a
|
|
DHCP client in the booted system. Without regular renewals,
|
|
the lease acquired by the PXE BIOS will expire, making the
|
|
IP address available for reuse by the DHCP server.
|
|
|
|
This option is empty for non-PXELINUX.
|
|
|
|
2: indicates that an option of the following format
|
|
should be generated and added to the kernel command line:
|
|
|
|
BOOTIF=<hardware-address-of-boot-interface>
|
|
|
|
... in dash-separated hexadecimal with leading hardware type
|
|
(same as for the configuration file; see pxelinux.txt.)
|
|
|
|
This allows an initrd program to determine from which
|
|
interface the system booted.
|
|
|
|
This option is empty for non-PXELINUX.
|
|
|
|
4: indicates that an option of the following format
|
|
should be generated and added to the kernel command line:
|
|
|
|
SYSUUID=<system uuid>
|
|
|
|
... in lower case hexadecimal in the format normally used for
|
|
UUIDs (same as for the configuration file; see pxelinux.txt.)
|
|
This may not be available if no valid UUID is found on the
|
|
system.
|
|
|
|
8: indicate the CPU family and certain particularly
|
|
significant CPU feature bits:
|
|
|
|
CPU=<family><features>
|
|
|
|
The <family> is a single digit from 3 (i386) to 6 (i686 or
|
|
higher.) The following CPU feature are currently reported;
|
|
additional flags may be added in the future:
|
|
|
|
P Physical Address Extension (PAE)
|
|
V Intel Virtualization Technology (VT/VMX)
|
|
T Intel Trusted Exection Technology (TXT/SMX)
|
|
X Execution Disable (XD/NX)
|
|
L Long Mode (x86-64)
|
|
S AMD SMX virtualization
|
|
|
|
This was added in 5.10.
|
|
|
|
The following strings are derived from DMI/SMBIOS information
|
|
if available; these are all new in version 5.10:
|
|
|
|
Bit String Significance
|
|
-------------------------------------------------------------
|
|
0x00010 SYSVENDOR= System vendor name
|
|
0x00020 SYSPRODUCT= System product name
|
|
0x00040 SYSVERSION= System version
|
|
0x00080 SYSSERIAL= System serial number
|
|
0x00100 SYSSKU= System SKU
|
|
0x00200 SYSFAMILY= System family
|
|
0x00400 MBVENDOR= Motherboard vendor name
|
|
0x00800 MBVERSION= Motherboard version
|
|
0x01000 MBSERIAL= Motherboard serial number
|
|
0x02000 MBASSET= Motherboard asset tag
|
|
0x04000 BIOSVENDOR= BIOS vendor name
|
|
0x08000 BIOSVERSION= BIOS version
|
|
0x10000 SYSFF= System form factor
|
|
|
|
If these strings contain whitespace they are replaced with
|
|
underscores (_).
|
|
|
|
The system form factor value is a number defined in the SMBIOS
|
|
specification, available at http://www.dmtf.org/. As of
|
|
version 2.7.1 of the specification, the following values are
|
|
defined:
|
|
|
|
1 Other
|
|
2 Unknown
|
|
3 Desktop
|
|
4 Low profile desktop
|
|
5 Pizza box
|
|
6 Mini tower
|
|
7 Tower
|
|
8 Portble
|
|
9 Laptop
|
|
10 Notebook
|
|
11 Handheld
|
|
12 Docking station
|
|
13 All-in-one
|
|
14 Subnotebook
|
|
15 Space-saving
|
|
16 Lunch box
|
|
17 Main server chassis
|
|
18 Expansion chassis
|
|
19 Subchassis
|
|
20 Bus expansion chassis
|
|
21 Peripheral chassis
|
|
22 RAID chassis
|
|
23 Rack mount chasss
|
|
24 Sealed-case PC
|
|
25 Multi-system chassis
|
|
26 Compact PCI
|
|
27 Advanced TCI
|
|
28 Blade
|
|
29 Blade enclosure
|
|
|
|
SENDCOOKIES bitmask [PXELINUX only]
|
|
|
|
When downloading files over http, the SYSAPPEND strings are
|
|
prepended with _Syslinux_ and sent to the server as cookies.
|
|
The cookies are URL-encoded; whitespace is *not* replaced with
|
|
underscores.
|
|
|
|
This command limits the cookies send; 0 means no cookies. The
|
|
default is -1, meaning send all cookies.
|
|
|
|
This option is "sticky" and is not automatically reset when
|
|
loading a new configuration file with the CONFIG command.
|
|
|
|
LABEL label
|
|
KERNEL image
|
|
APPEND options...
|
|
SYSAPPEND flag_val [5.10+]
|
|
IPAPPEND flag_val [5.10+ or PXELINUX only]
|
|
Indicates that if "label" is entered as the kernel to boot,
|
|
Syslinux should instead boot "image", and the specified APPEND
|
|
and SYSAPPEND options should be used instead of the ones
|
|
specified in the global section of the file (before the first
|
|
LABEL command.) The default for "image" is the same as
|
|
"label", and if no APPEND is given the default is to use the
|
|
global entry (if any).
|
|
|
|
Starting with version 3.62, the number of LABEL statements is
|
|
virtually unlimited.
|
|
|
|
Note that LILO uses the syntax:
|
|
image = mykernel
|
|
label = mylabel
|
|
append = "myoptions"
|
|
|
|
... whereas Syslinux uses the syntax:
|
|
label mylabel
|
|
kernel mykernel
|
|
append myoptions
|
|
|
|
Note: The "kernel" doesn't have to be a Linux kernel; it can
|
|
be a boot sector (see below.)
|
|
|
|
Since version 3.32 label names are no longer mangled into DOS
|
|
format (for SYSLINUX.)
|
|
|
|
The following commands are available after a LABEL statement:
|
|
|
|
LINUX image - Linux kernel image (default)
|
|
BOOT image - Bootstrap program (.bs, .bin)
|
|
BSS image - BSS image (.bss)
|
|
PXE image - PXE Network Bootstrap Program (.0)
|
|
FDIMAGE image - Floppy disk image (.img)
|
|
COM32 image - COM32 program (.c32)
|
|
CONFIG image - New configuration file
|
|
Using one of these keywords instead of KERNEL forces the
|
|
filetype, regardless of the filename.
|
|
|
|
CONFIG means restart the boot loader using a different
|
|
configuration file. The configuration file is read, the
|
|
working directory is changed (if specified via an APPEND), then
|
|
the configuration file is parsed.
|
|
|
|
APPEND -
|
|
Append nothing. APPEND with a single hyphen as argument in a
|
|
LABEL section can be used to override a global APPEND.
|
|
|
|
LOCALBOOT type
|
|
Attempt a different local boot method. The special value -1
|
|
causes the boot loader to report failure to the BIOS, which, on
|
|
recent BIOSes, should mean that the next boot device in the
|
|
boot sequence should be activated. Values other than those
|
|
documented may produce undesired results.
|
|
|
|
On PXELINUX, "type" 0 means perform a normal boot. "type" 4
|
|
will perform a local boot with the Universal Network Driver
|
|
Interface (UNDI) driver still resident in memory. Finally,
|
|
"type" 5 will perform a local boot with the entire PXE
|
|
stack, including the UNDI driver, still resident in memory.
|
|
All other values are undefined. If you don't know what the
|
|
UNDI or PXE stacks are, don't worry -- you don't want them,
|
|
just specify 0.
|
|
|
|
On ISOLINUX, the "type" specifies the local drive number to
|
|
boot from; 0x00 is the primary floppy drive and 0x80 is the
|
|
primary hard drive.
|
|
|
|
INITRD initrd_file
|
|
Starting with version 3.71, an initrd can be specified in a
|
|
separate statement (INITRD) instead of as part of the APPEND
|
|
statement; this functionally appends "initrd=initrd_file" to
|
|
the kernel command line.
|
|
|
|
It supports multiple filenames separated by commas.
|
|
This is mostly useful for initramfs, which can be composed of
|
|
multiple separate cpio or cpio.gz archives.
|
|
Note: all files except the last one are zero-padded to a
|
|
4K page boundary. This should not affect initramfs.
|
|
|
|
IMPLICIT flag_val
|
|
If flag_val is 0, do not load a kernel image unless it has been
|
|
explicitly named in a LABEL statement. The default is 1.
|
|
|
|
ALLOWOPTIONS flag_val
|
|
If flag_val is 0, the user is not allowed to specify any
|
|
arguments on the kernel command line. The only options
|
|
recognized are those specified in an APPEND statement. The
|
|
default is 1.
|
|
|
|
TIMEOUT timeout
|
|
Indicates how long to wait at the boot: prompt until booting
|
|
automatically, in units of 1/10 s. The timeout is cancelled as
|
|
soon as the user types anything on the keyboard, the assumption
|
|
being that the user will complete the command line already
|
|
begun. A timeout of zero will disable the timeout completely,
|
|
this is also the default.
|
|
|
|
TOTALTIMEOUT timeout
|
|
Indicates how long to wait until booting automatically, in
|
|
units of 1/10 s. This timeout is *not* cancelled by user
|
|
input, and can thus be used to deal with serial port glitches
|
|
or "the user walked away" type situations. A timeout of zero
|
|
will disable the timeout completely, this is also the default.
|
|
|
|
Both TIMEOUT and TOTALTIMEOUT can be used together, for
|
|
example:
|
|
|
|
# Wait 5 seconds unless the user types something, but
|
|
# always boot after 15 minutes.
|
|
TIMEOUT 50
|
|
TOTALTIMEOUT 9000
|
|
|
|
ONTIMEOUT kernel options...
|
|
Sets the command line invoked on a timeout. Normally this is
|
|
the same thing as invoked by "DEFAULT". If this is specified,
|
|
then "DEFAULT" is used only if the user presses <Enter> to
|
|
boot.
|
|
|
|
ONERROR kernel options...
|
|
If a kernel image is not found (either due to it not existing,
|
|
or because IMPLICIT is set), run the specified command. The
|
|
faulty command line is appended to the specified options, so
|
|
if the ONERROR directive reads as:
|
|
|
|
ONERROR xyzzy plugh
|
|
|
|
... and the command line as entered by the user is:
|
|
|
|
foo bar baz
|
|
|
|
... Syslinux will execute the following as if entered by the
|
|
user:
|
|
|
|
xyzzy plugh foo bar baz
|
|
|
|
SERIAL port [baudrate [flowcontrol]]
|
|
Enables a serial port to act as the console. "port" is a
|
|
number (0 = /dev/ttyS0 = COM1, etc.) or an I/O port address
|
|
(e.g. 0x3F8); if "baudrate" is omitted, the baud rate defaults
|
|
to 9600 bps. The serial parameters are hardcoded to be 8
|
|
bits, no parity, 1 stop bit.
|
|
|
|
"flowcontrol" is a combination of the following bits:
|
|
0x001 - Assert DTR
|
|
0x002 - Assert RTS
|
|
0x008 - Enable interrupts
|
|
0x010 - Wait for CTS assertion
|
|
0x020 - Wait for DSR assertion
|
|
0x040 - Wait for RI assertion
|
|
0x080 - Wait for DCD assertion
|
|
0x100 - Ignore input unless CTS asserted
|
|
0x200 - Ignore input unless DSR asserted
|
|
0x400 - Ignore input unless RI asserted
|
|
0x800 - Ignore input unless DCD asserted
|
|
|
|
All other bits are reserved.
|
|
|
|
Typical values are:
|
|
|
|
0 - No flow control (default)
|
|
0x303 - Null modem cable detect
|
|
0x013 - RTS/CTS flow control
|
|
0x813 - RTS/CTS flow control, modem input
|
|
0x023 - DTR/DSR flow control
|
|
0x083 - DTR/DCD flow control
|
|
|
|
For the SERIAL directive to be guaranteed to work properly, it
|
|
should be the first directive in the configuration file.
|
|
|
|
NOTE: "port" values from 0 to 3 means the first four serial
|
|
ports detected by the BIOS. They may or may not correspond to
|
|
the legacy port values 0x3F8, 0x2F8, 0x3E8, 0x2E8.
|
|
|
|
Enabling interrupts (setting the 0x008 bit) may give better
|
|
responsiveness without setting the NOHALT option, but could
|
|
potentially cause problems with buggy BIOSes.
|
|
|
|
This option is "sticky" and is not automatically reset when
|
|
loading a new configuration file with the CONFIG command.
|
|
|
|
NOHALT flag_val
|
|
If flag_val is 1, don't halt the processor while idle.
|
|
Halting the processor while idle significantly reduces the
|
|
power consumption, but can cause poor responsiveness to the
|
|
serial console, especially when using scripts to drive the
|
|
serial console, as opposed to human interaction.
|
|
|
|
CONSOLE flag_val
|
|
If flag_val is 0, disable output to the normal video console.
|
|
If flag_val is 1, enable output to the video console (this is
|
|
the default.)
|
|
|
|
Some BIOSes try to forward this to the serial console and
|
|
sometimes make a total mess thereof, so this option lets you
|
|
disable the video console on these systems.
|
|
|
|
FONT filename
|
|
Load a font in .psf format before displaying any output
|
|
(except the copyright line, which is output as ldlinux.sys
|
|
itself is loaded.) Syslinux only loads the font onto the
|
|
video card; if the .psf file contains a Unicode table it is
|
|
ignored. This only works on EGA and VGA cards; hopefully it
|
|
should do nothing on others.
|
|
|
|
KBDMAP keymap
|
|
Install a simple keyboard map. The keyboard remapper used is
|
|
*very* simplistic (it simply remaps the keycodes received from
|
|
the BIOS, which means that only the key combinations relevant
|
|
in the default layout -- usually U.S. English -- can be
|
|
mapped) but should at least help people with AZERTY keyboard
|
|
layout and the locations of = and , (two special characters
|
|
used heavily on the Linux kernel command line.)
|
|
|
|
The included program keytab-lilo.pl from the LILO distribution
|
|
can be used to create such keymaps. The file keytab-lilo.txt
|
|
contains the documentation for this program.
|
|
|
|
DISPLAY filename
|
|
Displays the indicated file on the screen at boot time (before
|
|
the boot: prompt, if displayed). Please see the section below
|
|
on DISPLAY files.
|
|
|
|
NOTE: If the file is missing, this option is simply ignored.
|
|
|
|
SAY message
|
|
Prints the message on the screen.
|
|
|
|
PROMPT flag_val
|
|
If flag_val is 0, display the boot: prompt only if the Shift or Alt
|
|
key is pressed, or Caps Lock or Scroll lock is set (this is the
|
|
default). If flag_val is 1, always display the boot: prompt.
|
|
|
|
NOESCAPE flag_val
|
|
If flag_val is set to 1, ignore the Shift/Alt/Caps Lock/Scroll
|
|
Lock escapes. Use this (together with PROMPT 0) to force the
|
|
default boot alternative.
|
|
|
|
NOCOMPLETE flag_val
|
|
If flag_val is set to 1, the Tab key does not display labels
|
|
at the boot: prompt.
|
|
|
|
F1 filename
|
|
F2 filename
|
|
...etc...
|
|
F9 filename
|
|
F10 filename
|
|
F11 filename
|
|
F12 filename
|
|
Displays the indicated file on the screen when a function key is
|
|
pressed at the boot: prompt. This can be used to implement
|
|
pre-boot online help (presumably for the kernel command line
|
|
options.) Please see the section below on DISPLAY files.
|
|
|
|
When using the serial console, press <Ctrl-F><digit> to get to
|
|
the help screens, e.g. <Ctrl-F><2> to get to the F2 screen.
|
|
For F10-F12, hit <Ctrl-F><A>, <Ctrl-F>B, <Ctrl-F>C. For
|
|
compatibility with earlier versions, F10 can also be entered as
|
|
<Ctrl-F>0.
|
|
|
|
PATH path
|
|
Specify a colon-separated (':') list of directories to search
|
|
when attempting to load modules. This directive is useful for
|
|
specifying the directories containing the lib*.c32 library
|
|
files as other modules may be dependent on these files, but
|
|
may not reside in the same directory. The list of directories
|
|
is searched in order. Please see the section below on PATH
|
|
RULES.
|
|
|
|
Blank lines are ignored.
|
|
|
|
Note that the configuration file is not completely decoded. Syntax
|
|
different from the one described above may still work correctly in this
|
|
version of Syslinux, but may break in a future one.
|
|
|
|
|
|
++++ DISPLAY FILE FORMAT ++++
|
|
|
|
DISPLAY and function-key help files are text files in either DOS or UNIX
|
|
format (with or without <CR>). In addition, the following special codes
|
|
are interpreted:
|
|
|
|
<FF> <FF> = <Ctrl-L> = ASCII 12
|
|
Clear the screen, home the cursor. Note that the screen is
|
|
filled with the current display color.
|
|
|
|
<SI><bg><fg> <SI> = <Ctrl-O> = ASCII 15
|
|
Set the display colors to the specified background and
|
|
foreground colors, where <bg> and <fg> are hex digits,
|
|
corresponding to the standard PC display attributes:
|
|
|
|
0 = black 8 = dark grey
|
|
1 = dark blue 9 = bright blue
|
|
2 = dark green a = bright green
|
|
3 = dark cyan b = bright cyan
|
|
4 = dark red c = bright red
|
|
5 = dark purple d = bright purple
|
|
6 = brown e = yellow
|
|
7 = light grey f = white
|
|
|
|
Picking a bright color (8-f) for the background results in the
|
|
corresponding dark color (0-7), with the foreground flashing.
|
|
|
|
Colors are not visible over the serial console.
|
|
|
|
<CAN>filename<newline> <CAN> = <Ctrl-X> = ASCII 24
|
|
If a VGA display is present, enter graphics mode and display
|
|
the graphic included in the specified file. The file format
|
|
is an ad hoc format called LSS16; the included Perl program
|
|
"ppmtolss16" can be used to produce these images. This Perl
|
|
program also includes the file format specification.
|
|
|
|
The image is displayed in 640x480 16-color mode. Once in
|
|
graphics mode, the display attributes (set by <SI> code
|
|
sequences) work slightly differently: the background color is
|
|
ignored, and the foreground colors are the 16 colors specified
|
|
in the image file. For that reason, ppmtolss16 allows you to
|
|
specify that certain colors should be assigned to specific
|
|
color indicies.
|
|
|
|
Color indicies 0 and 7, in particular, should be chosen with
|
|
care: 0 is the background color, and 7 is the color used for
|
|
the text printed by Syslinux itself.
|
|
|
|
<EM> <EM> = <Ctrl-Y> = ASCII 25
|
|
If we are currently in graphics mode, return to text mode.
|
|
|
|
<DLE>..<ETB> <Ctrl-P>..<Ctrl-W> = ASCII 16-23
|
|
These codes can be used to select which modes to print a
|
|
certain part of the message file in. Each of these control
|
|
characters select a specific set of modes (text screen,
|
|
graphics screen, serial port) for which the output is actually
|
|
displayed:
|
|
|
|
Character Text Graph Serial
|
|
------------------------------------------------------
|
|
<DLE> = <Ctrl-P> = ASCII 16 No No No
|
|
<DC1> = <Ctrl-Q> = ASCII 17 Yes No No
|
|
<DC2> = <Ctrl-R> = ASCII 18 No Yes No
|
|
<DC3> = <Ctrl-S> = ASCII 19 Yes Yes No
|
|
<DC4> = <Ctrl-T> = ASCII 20 No No Yes
|
|
<NAK> = <Ctrl-U> = ASCII 21 Yes No Yes
|
|
<SYN> = <Ctrl-V> = ASCII 22 No Yes Yes
|
|
<ETB> = <Ctrl-W> = ASCII 23 Yes Yes Yes
|
|
|
|
For example:
|
|
|
|
<DC1>Text mode<DC2>Graphics mode<DC4>Serial port<ETB>
|
|
|
|
... will actually print out which mode the console is in!
|
|
|
|
<SUB> <SUB> = <Ctrl-Z> = ASCII 26
|
|
End of file (DOS convention).
|
|
|
|
<BEL> <BEL> = <Ctrl-G> = ASCII 7
|
|
Beep the speaker.
|
|
|
|
|
|
++++ COMMAND LINE KEYSTROKES ++++
|
|
|
|
The command line prompt supports the following keystrokes:
|
|
|
|
<Enter> boot specified command line
|
|
<BackSpace> erase one character
|
|
<Ctrl-U> erase the whole line
|
|
<Ctrl-V> display the current Syslinux version
|
|
<Ctrl-W> erase one word
|
|
<Ctrl-X> force text mode
|
|
<Tab> list matching labels
|
|
<F1>..<F12> help screens (if configured)
|
|
<Ctrl-F><digit> equivalent to F1..F10
|
|
<Ctrl-C> interrupt boot in progress
|
|
<Esc> interrupt boot in progress
|
|
<Ctrl-N> display network information (PXELINUX only)
|
|
|
|
|
|
++++ OTHER OPERATING SYSTEMS ++++
|
|
|
|
This version of Syslinux supports chain loading of other operating
|
|
systems (such as MS-DOS and its derivatives, including Windows 95/98).
|
|
|
|
Chain loading requires the boot sector of the foreign operating system
|
|
to be stored in a file in the root directory of the filesystem.
|
|
Because neither Linux kernels, nor boot sector images have reliable
|
|
magic numbers, Syslinux will look at the file extension.
|
|
The following extensions are recognized (case insensitive):
|
|
|
|
none or other Linux kernel image
|
|
.0 PXE bootstrap program (NBP) [PXELINUX only]
|
|
.bin "CD boot sector" [ISOLINUX only]
|
|
.bs Boot sector [SYSLINUX only]
|
|
.bss Boot sector, DOS superblock will be patched in [SYSLINUX only]
|
|
.c32 COM32 image (32-bit ELF)
|
|
.img Disk image [ISOLINUX only]
|
|
|
|
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.
|
|
|
|
If this is specified with one of the keywords LINUX, BOOT, BSS,
|
|
FDIMAGE, COM32, or CONFIG instead of KERNEL, the filetype is
|
|
considered to be the one specified regardless of the filename.
|
|
|
|
|
|
++++ BOOTING DOS (OR OTHER SIMILAR OPERATING SYSTEMS) ++++
|
|
|
|
This section applies to SYSLINUX only, not to PXELINUX or ISOLINUX.
|
|
See isolinux.txt for an equivalent procedure for ISOLINUX.
|
|
|
|
This is the recommended procedure for creating a SYSLINUX disk that
|
|
can boot either DOS or Linux. This example assumes the drive is A: in
|
|
DOS and /dev/fd0 in Linux; for other drives, substitute the
|
|
appropriate drive designator.
|
|
|
|
---- Linux procedure ----
|
|
|
|
1. Make a DOS bootable disk. This can be done either by specifying
|
|
the /s option when formatting the disk in DOS, or by running the
|
|
DOS command SYS (this can be done under DOSEMU if DOSEMU has
|
|
direct device access to the relevant drive):
|
|
|
|
format a: /s
|
|
or
|
|
sys a:
|
|
|
|
2. Boot Linux. Copy the DOS boot sector from the disk into a file:
|
|
|
|
dd if=/dev/fd0 of=dos.bss bs=512 count=1
|
|
|
|
3. Run SYSLINUX on the disk:
|
|
|
|
syslinux /dev/fd0
|
|
|
|
4. Mount the disk and copy the DOS boot sector file to it. The file
|
|
*must* have extension .bss:
|
|
|
|
mount -t msdos /dev/fd0 /mnt
|
|
cp dos.bss /mnt
|
|
|
|
5. Copy the Linux kernel image(s), initrd(s), etc to the disk, and
|
|
create/edit syslinux.cfg and help files if desired:
|
|
|
|
cp vmlinux /mnt
|
|
cp initrd.gz /mnt
|
|
|
|
6. Unmount the disk (if applicable.)
|
|
|
|
umount /mnt
|
|
|
|
---- DOS/Windows procedure ----
|
|
|
|
To make this installation in DOS only, you need the utility copybs.com
|
|
(included with Syslinux) as well as the syslinux.com installer. If
|
|
you are on an WinNT-based system (WinNT, Win2k, WinXP or later), use
|
|
syslinux.exe instead.
|
|
|
|
1. Make a DOS bootable disk. This can be done either by specifying
|
|
the /s option when formatting the disk in DOS, or by running the
|
|
DOS command SYS:
|
|
|
|
format a: /s
|
|
or
|
|
sys a:
|
|
|
|
2. Copy the DOS boot sector from the disk into a file. The file
|
|
*must* have extension .bss:
|
|
|
|
copybs a: a:dos.bss
|
|
|
|
3. Run SYSLINUX on the disk:
|
|
|
|
syslinux a:
|
|
|
|
4. Copy the Linux kernel image(s), initrd(s), etc to the disk, and
|
|
create/edit syslinux.cfg and help files if desired:
|
|
|
|
copy vmlinux a:
|
|
copy initrd.gz a:
|
|
|
|
|
|
++++ NOVICE PROTECTION ++++
|
|
|
|
Syslinux will attempt to detect booting on a machine with too little
|
|
memory, which means the Linux boot sequence cannot complete. If so, a
|
|
message is displayed and the boot sequence aborted. Holding down the
|
|
Ctrl key while booting disables this feature.
|
|
|
|
Any file that SYSLINUX uses can be marked hidden, system or readonly
|
|
if so is convenient; SYSLINUX ignores all file attributes. The
|
|
SYSLINUX installed automatically sets the readonly/hidden/system
|
|
attributes on LDLINUX.SYS.
|
|
|
|
|
|
++++ NOTES ON BOOTABLE CD-ROMS ++++
|
|
|
|
SYSLINUX can be used to create bootdisk images for El
|
|
Torito-compatible bootable CD-ROMs. However, it appears that many
|
|
BIOSes are very buggy when it comes to booting CD-ROMs. Some users
|
|
have reported that the following steps are helpful in making a CD-ROM
|
|
that is bootable on the largest possible number of machines:
|
|
|
|
a) Use the -s (safe, slow and stupid) option to SYSLINUX;
|
|
b) Put the boot image as close to the beginning of the
|
|
ISO 9660 filesystem as possible.
|
|
|
|
A CD-ROM is so much faster than a floppy that the -s option shouldn't
|
|
matter from a speed perspective.
|
|
|
|
Of course, you probably want to use ISOLINUX instead. See isolinux.txt.
|
|
|
|
|
|
++++ BOOTING FROM A FAT FILESYSTEM PARTITION ON A HARD DISK ++++
|
|
|
|
SYSLINUX can boot from a FAT filesystem partition on a hard disk
|
|
(including FAT32). The installation procedure is identical to the
|
|
procedure for installing it on a floppy, and should work under either
|
|
DOS or Linux. To boot from a partition, SYSLINUX needs to be launched
|
|
from a Master Boot Record or another boot loader, just like DOS itself
|
|
would.
|
|
|
|
Under DOS, you can install a standard simple MBR on the primary hard
|
|
disk by running the command:
|
|
|
|
FDISK /MBR
|
|
|
|
Then use the FDISK command to mark the appropriate partition active.
|
|
|
|
A simple MBR, roughly on par with the one installed by DOS (but
|
|
unencumbered), is included in the SYSLINUX distribution. To install
|
|
it under Linux, simply type:
|
|
|
|
cat mbr.bin > /dev/XXX
|
|
|
|
... where /dev/XXX is the device you wish to install it on.
|
|
|
|
Under DOS or Win32, you can install the SYSLINUX MBR with the -m
|
|
option to the SYSLINUX installer, and use the -a option to mark the
|
|
current partition active:
|
|
|
|
syslinux -ma c:
|
|
|
|
Note that this will also install SYSLINUX on the specified partition.
|
|
|
|
|
|
++++ HARDWARE INFORMATION +++
|
|
|
|
I have started to maintain a web page of hardware with known
|
|
problems. There are, unfortunately, lots of broken hardware out
|
|
there; especially early PXE stacks (for PXELINUX) have lots of
|
|
problems.
|
|
|
|
A list of problems, and workarounds (if known), is maintained at:
|
|
|
|
http://syslinux.zytor.com/hardware.php
|
|
|
|
|
|
++++ BOOT LOADER IDS USED ++++
|
|
|
|
The Linux boot protocol supports a "boot loader ID", a single byte
|
|
where the upper nybble specifies a boot loader family (3 = Syslinux)
|
|
and the lower nybble is version or, in the case of Syslinux, media:
|
|
|
|
0x31 (49) = SYSLINUX
|
|
0x32 (50) = PXELINUX
|
|
0x33 (51) = ISOLINUX
|
|
0x34 (52) = EXTLINUX
|
|
|
|
In recent versions of Linux, this ID is available as
|
|
/proc/sys/kernel/bootloader_type.
|
|
|
|
|
|
++++ PATH RULES ++++
|
|
|
|
The current working directory is *always* searched first, before PATH,
|
|
when attempting to open a filename. The current working directory is
|
|
not affected when specifying a file with an absolute path. For
|
|
example, given the following file system layout,
|
|
|
|
/boot/
|
|
/bin/
|
|
ls.c32
|
|
libls.c32
|
|
/foo/
|
|
libls.c32
|
|
|
|
assuming that the current working directory is /boot/foo, and assuming
|
|
that libls.c32 is a dependency of ls.c32, executing /boot/bin/ls.c32
|
|
will cause /boot/foo/libls.c32 to be loaded, not /boot/bin/libls.c32,
|
|
even if /boot/bin is specified in the PATH directive of a config file.
|
|
|
|
The reason that things work this way is that typically a user will
|
|
install all library files in the Syslinux installation directory, as
|
|
specified with the --directory installer option. This method allows
|
|
the user to omit the PATH directive from their config file and still
|
|
have things work correctly.
|
|
|
|
|
|
++++ BUG REPORTS ++++
|
|
|
|
I would appreciate hearing of any problems you have with Syslinux. I
|
|
would also like to hear from you if you have successfully used Syslinux,
|
|
*especially* if you are using it for a distribution.
|
|
|
|
If you are reporting problems, please include all possible information
|
|
about your system and your BIOS; the vast majority of all problems
|
|
reported turn out to be BIOS or hardware bugs, and I need as much
|
|
information as possible in order to diagnose the problems.
|
|
|
|
There is a mailing list for discussion among Syslinux users and for
|
|
announcements of new and test versions. To join, or to browse the
|
|
archive, go to:
|
|
|
|
http://www.zytor.com/mailman/listinfo/syslinux
|
|
|
|
Please DO NOT send HTML messages or attachments to the mailing list
|
|
(including multipart/alternative or similar.) All such messages will
|
|
be bounced.
|