= syslinux(1) =
:doctype: manpage
:revdate: 2012-10-28
:author: H. Peter Anvin
:author-email: hpa@zytor.com
:editor1: Gene Cumm
:editor1-email: gene.cumm@gmail.com
:editor1-revlast: 2012-10-28


== NAME ==
syslinux - Install SYSLINUX to a file system


== SYNOPSIS ==
[verse]
*syslinux* ['OPTIONS'] 'DEVICE'
*extlinux* ['OPTIONS'] 'PATH'
*syslinux* [-h | --help]
*extlinux* [-h | --help]


== DESCRIPTION ==
Install *SYSLINUX* to the 'DEVICE'/'PATH', altering the boot sector and
installing the 'ldlinux.sys' boot loader file.  For the Linux installer
extlinux, 'PATH' is the desired path for the control files on a mounted,
supported file system and sets the install-time working directory.  For
all others, 'DEVICE' must specify a FAT12/FAT16/FAT32 file system.  For
the Linux installers syslinux and syslinux-mtools, 'DEVICE' should be an
unmounted file system.  For the DOS/Win32/Win64 installers, 'DEVICE'
should be a drive like 'a:' (case insensitive).

For versions ~4.00 and later, either -i/--install or -U/--update must be
specified unless modifying the ADV of an existing install (options
tagged with 'ADV') or requesting the help/usage or version info, .

If, during boot, the Shift or Alt keys are held down, or the Caps or
Scroll locks are set, *Syslinux* will display a *lilo*(8) -style "boot:"
prompt. The user can then type a kernel file name followed by any kernel
parameters. The *Syslinux* bootloader does not need to know about the
kernel or config files in advance.

*Syslinux* supports the loading of initial ramdisks (initrd) and the
bzImage kernel format.

Please note, the ldlinux.sys boot loader file is flagged as immutable
(where applicable) and is modified after copying in to help ensure
boot-time integrity.  File systems with a sufficiently large boot loader
reserved area, like btrfs, will have ldlinux.sys installed there rather
than as a normal file.


== OPTIONS ==
// "See"/"See also" notes should reference long options.
=== Standalone options ===
*-i*, *--install*::
(~4.00+) Install SYSLINUX, regardless of an existing install.

*-U*, *--update*::
(~4.00+) Update an existing SYSLINUX/EXTLINUX install.  If no Syslinux
boot loader is present, return an error.

*-h*, *--help*::
Display help/usage information.

*-v*, *--version*::
Display version information and exit immediately.

=== Regular Options ===
// Sorted generally by short argument
*-a*, *--active*::
(DOS/Win32/Win64 ONLY) Mark the install target file system's partition
active.

*-d*, *--directory* 'subdirectory'::
(Not necessary for extlinux as it is implied by 'PATH') Install the
*SYSLINUX* control files in a subdirectory with the specified name
(relative to the root directory on the device).

*--device* 'DEVICE'::
(extlinux ONLY; 4.06+) Force use of a specific block device (experts
only).

*-f*, *--force*::
Force install even if it appears unsafe.  Before 4.00, -f was used for
--offset in the Linux installers.

*-H*, *--heads* 'head-count'::
Override the detected number of heads for the geometry.  See also
*--sector*.

*-m*, *--mbr*:
(DOS/Win32/Win64 ONLY) Install the regular Syslinux MBR code to the MBR.

*-M*, *--menu-save*::
(4.00+; ADV) Set the label to select as default on the next boot.

*-o*, *--once* 'command'::
(ADV) Declare a boot command to be tried on the first boot only.  The
use of *-o* for the Linux installers syslinux or syslinux-mtools has
been deprecated as of \~4.00 and is no longer valid as of ~4.02.

*-O*, *--clear-once*::
Clear the boot-once command.  See also *--once*.

*-r*, *--raid*::
(ADV) 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.

*--reset-adv*::
(ADV) Reset auxilliary data vector.

*-S*, *--sectors* 'sector-count'::
Override the detected number of sectors for the geometry.  See also
*--head*.

*-s*, *--stupid*::
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.

*-t*, *--offset* 'offset'::
(Linux syslinux/syslinux-mtools ONLY) Indicates that the filesystem is
at an offset from the base of the device or file.

*-z*, *--zipdrive*
Assume zipdrive geometry ('--heads 64 --sectors 32').  See also *--head*
and *--sector*.


== EXAMPLES ==
=== Booting DOS ===
For booting DOS and other similar operating systems, there is an easy
and generally reliable solution to substitute in SYSLINUX as the primary
boot loader.

- Make a DOS-bootable disk;  The following are possible commands:

	format a: /s
	sys a:

- Copy the DOS boot sector off using Linux or copybs.com:

	dd if=/dev/fd0 of=dos.bss bs=512 count=1
	copybs a: a:dos.bss

- Install SYSLINUX using one of:

	syslinux a:
	syslinux /dev/fd0		(before 4.00)
	syslinux -i /dev/fd0		(4.00+)

- For Linux, mount the disk and copy the dos.bss to the disk:

	mount -t msdos /dev/fd0 /mnt
	cp dos.bss /mnt

- Copy a Linux kernel image and initrd payload files:
*Linux:*::
	cp vmlinux /mnt
	cp initrd.gz /mnt
*DOS/Windows:*::
	copy vmlinux a:
	copy initrd.gz a:

- For Linux, umount the disk (if applicable):

	umount /mnt

=== MBR ===
In order to boot from a hard disk (or hard disk-like device) in BIOS
mode, an appropriate MBR boot block must also be installed in the MBR
(first sector or 512 bytes of the disk), occupying at most 440 bytes.

*DOS/Windows:*::
If using FDISK, FDISK or a similar application must also be used to mark
the partition as active.
+
	fdisk /mbr
    OR
	syslinux -ma c:

*Linux:*::
+
	dd bs=440 count=1 conv=notrunc if=mbr/mbr.bin of=/dev/sda
+
For altmbr.bin, an easy way to overwrite the MBR boot block and specify
the partion number is:
+
  printf '\1' | cat altmbr.bin - | dd bs=440 count=1 iflag=fullblock conv=notrunc of=/dev/sda
+
Note: using 'cat' for writing the MBR can under some circumstances cause
data loss or overwritting.  For this reason, using 'dd' is recommended
for all situations.

//[FIXME]: any clean way to handle the above long command for manpage?


== SEE ALSO ==
*syslinux.cfg*(5), *syslinux-cli*(1), *lilo*(8), *keytab-lilo.pl*(8),
*fdisk*(8), *mkfs*(8), *superformat*(1).


== AUTHOR ==
This AsciiDoc derived document is a modified version of the original
*SYSLINUX* documentation by {author} <{author-email}>. The conversion to
a manpage was made by Arthur Korn <arthur@korn.ch>.  The conversion to
an AsciiDoc was made by {editor1} <{editor1-email}>


== COPYRIGHT ==
Copyright \(C) 1994-2012 {author}. Free use of this software is granted
under the terms of the GNU General Public License (GPL), version 2
(GPLv2) (or, at your option, any later version).
