SYSLINUX与LILO是不同的,下面是一个LILO的例子:
image = mykernel
label = mylabel
append = "myoptions"
而SYSLINUX是这样写的:
label mylabel
kernel mykernel
append myoptions
下面我们一起看一下SYSLINUX中的选项:
注:以下所有选项适用于PXELINUX,ISOLINUX和EXTLINUX以及SYSLINUX,除非另有说明。
# comment
注释行,#后面的空格是必须的。
INCLUDE filename
在此处插入其他文件的内容。
LABEL command【标签命令】
标签命令,主要是用于描述syslinu.cfg文件中的命令的,自己看得懂就可以了,因为这个标签是不会在启动菜单中看到的。
MENU LABEL【菜单标签】
这个是在启动菜单中看到的标题项,所这个一定要写个有意义的描述
例如:
LABEL maxdos
MENU LABEL [01] -- Run MaxDos
kernel /boot/syslinux/memdisk
append initrd=/boot/imgs/maxdos.img
KERNEL file【内核文件】
这个就是SYSLINUX指向的启动文件,这个“kernel”不一定是Linux kernel【Linux内核】,它可以是启动扇区,或者COMBOOT文件。
以下所列出的为公认的文件扩展名(不区分大小写):
extensions |
explain |
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 COMBOOT) |
.cbt |
COMBOOT image (not runnable from DOS) |
.com |
COMBOOT image (runnable from DOS) |
.img |
Disk image [ISOLINUX only] |
.ima |
Floppy image [ISOLINUX only] |
扩展名 |
说明 |
没有或其它 |
Linux内核映像 |
.0 |
PXE 启动引导程序(NBP)【只用于PXELINUX】 |
.bin |
“光盘引导扇区”【只用于ISOLINUX】 |
.bs |
“磁盘引导扇区”【只用于SYSLINUX】,例如:bsf, |
.bss |
“磁盘引导扇区”, 用在DOS superblock上,【只用于SYSLINUX】 |
.c32 |
COM32映像文件【32-bit COMBOOT】 |
.cbt |
COMBOOT映像文件【不能运行于DOS】 |
.com |
COMBOOT映像文件【可运行于DOS】 |
.img |
磁盘映像文件【实际上可用于ISOLINUX、SYSLINUX、PXELINUX】 |
.ima |
软盘映像文件【实际上可用于ISOLINUX、SYSLINUX、PXELINUX】 |
使用这些关键字之一而不KERNEL强制文件类型,与文件名无关。
- LINUX image
- 你可以直接使用这个,而不是使用KERNEL file来启动一个Linux kernel image【Linux内核映像】。
- BOOT image
- 启动引导程序(.bs,.bsf,.bin)
- BSS image
- BSS映像启动引导程序(.bss)
- PXE image
- PXE网络启动引导程序(.0)
- FDIMAGE image
- 软盘映像(.img,.ima)
- COMBOOT image
- COMBOOT程序(.com,.cbt)
- COM32 image
- COM32程序(.c32)
- CONFIG image
- CONFIG将重新启动引导程序而使用不同的配置文件
APPEND options...【附加选项】
添加一个或多个选项(参数)到 kernel 命令行中,这些选项(参数)可以是手动或者是自动的。该选项(参数)是添加在 kernel 命令行的开始处,通常允许输入的选项覆盖。
这点与LILO的“append”选项(参数)是相同的。
APPEND-
简单点说,不附加任何命令,可用于覆盖全局的APPEND。
IPAPPEND flag_val 【只适用于PXELINUX】
这个IPAPPEND选项(参数)只适用于PXELINUX,这个“flag_val”为下列选项(参数):
1、下列的选项(参数)将以如下格式添加到内核命令行:
ip=<client-ip>:<boot-server-ip>:<gw-ip>:<netmask>
……以上基于DHCP/BOOTP或者PXE的启动服务器。
但不推荐使用此选项(参数),使用IP=DHCP的内核命令行更为合适。
2、下列的选项(参数)将以如下格式添加到内核命令行:
BOOTIF=<hardware-address-of-boot-interface>
这在PXELINUX的文档中有相关的介绍,这将决定临时文件系统程序将从哪一个Interface【端口】启动系统。
LABEL label KERNEL image APPEND options... IPAPPEND flag_val
【只适用于PXELINUX】
……以上表明,如果“LABEL”作为内核启动,其引导 的“image”和指定的 APPEND 和 IPAPPEND 选项将取代配置文件中的全局(在第一个LABEL命令之前)命令。“image”默认值与“label”相同,而且如果没有定义 APPEND,则使用全局命令(如果存在)。
LOCALBOOT type【ISOLINUX,PXELINUX】
在PXELINUX,指定“LOCALBOOT 0”代替一个“KERNEL”选项(参数),这个意味着调用此特定LABEL将会引导本地磁盘,而不是一个“KERNEL”。
参数0表示执行正常启动,参数4将执行一个本地启动和通用网络驱动器接口(UNDI)——常驻内存。
最后,参数5将执行一个本地启动与整个PXE的堆栈,包括UNDI驱动器,也是常驻内存。
所有其它的值都是未定义的。
如果你不知道什么是UNDI和PXE堆栈,不要紧——你只要指定参数0就可以了。
INITRD initrd_file
从3.71版本开始,一个initrd可以指定一个单独的语句,(INITRD)而不是作为APPEND语句的一部分;这个功能添加“initrd=initrd_file”到内核命令行中。
它支持以逗号分隔的多个文件名,这主要是有益于initramfs【一个新的initial RAM disks模型】,它可以支持多个单独的cpio或cpio.gz压缩文件。
- cpio简介【摘自:维基百科】
- CPIO是Linux下的一种新的内核启动镜像所附带的虚拟磁盘格式。他与传统的Image格式比较而言有一些改进,主要体现在打包速度和启动引导方式上。
cpio 可以从 cpio 或 tar 格式的归档包中存入和读取文件, 归档包是一种包含其他文件和有关信息的文件。有关信息包括:文件名, 属主, 时标(timestamp), 和访问权限。归档包可以是磁盘上的 其他文件, 也可以是磁带或管道。
Note: all files except the last one are zero-padded to a 4K page boundary. This should not affect initramfs.
DEFAULT command【默认命令】
SYSLINUX启动时默认执行的命令项——当用户没有进行选择时。
如果没有配置文件存在,或在配置文件没有设置默认项时,默认是启动名为“linux”的内核,不会添加其它的选项(参数)。
例如:可以用于设置所要加载的菜单模块
default vesamenu.c32
UI module options【用户界面模块选项(参数)】
用于设置菜单模块(通常是“menu.c32”或“vesamenu.c32”),也就是说这是一个命令行界面(菜单指令),它可以覆盖DEFAULT和PROMPT指令。
PROMPT flag_val
如果flag_val为0,启动将显示:“提示符”只有在Shift或Alt键被按下,或Caps Lock键或Scroll lock键设置(这是默认值)。如果flag_val是1,启动时将始终:“提示符”。
NOESCAPE flag_val
如果flag_val设置为1,那么将忽略Shift/Alt/Caps Lock/Scroll Lock退出,将强制使用此默认选择项目启动(也同时忽略PROMPT 0)。
NOCOMPLETE flag_val
如果flag_val设置为1,那么启动时将不会在显示标签中提示Tab键。
IMPLICIT flag_val
如果flag_val为设置为0,将不会加载的kernel image【内核映像】,除非它已在LABEL声明中明确指定。The default is 1【默认值为1】。
ALLOWOPTIONS flag_val
如果flag_val为0,用户将不能指定内核命令行的任何选项(参数)。唯一可用是在APPEND声明中所指定的选项。The default is 1。
TIMEOUT timeout【超时】
在执行默认启动菜单项前的等待时间。
如果设置为0,那么将将完全禁用timeout(始终等待用户选择),这也是默认的设置。
其单位为:1/10秒。
以下timeout为30秒:
timeout 300
注:最大的值为35996,建议设置为小于一小时。
TOTALTIMEOUT timeout
不会被用户的输入取消,用于处理串口故障或类似 "用户离开" 的状况。
默认值是 0。
# 等待5s除非用户输入,但15m后一定启动
TIMEOUT 50
TOTALTIMEOUT 9000
ONTIMEOUT kernel options...
timeout 后调用的命令。一般与 DEFAULT 调用相同。如果指定,DEFAULT只适用于用户按<Enter>启动时。
ONERROR kernel options...
如果一个内核映像没有找到(不存在或设置了IMPLICIT),运行指定的命令。
如果ONERROR指令为:
ONERROR xyzzy plugh
并且用户输入的命令行是:
foo bar baz
那么SYSLINUX将执行:
xyzzy plugh foo bar baz
SERIAL port 【[baudrate] flowcontrol】
开启一个串口作为控制台,“port【端口】”是一个数字(0 = /dev/ttyS0 = COM1,etc。)或者I/O端口地址(例如:0x3F8);如果省略“baudrate【波特率】”,波特率默认为9600 bps。串行的硬编码是 8 bits,无奇偶校验,1个停止位。
下列为“flowcontrol【流控制】”的 bits 组合:
0x001 - Assert DTR
0x002 - Assert RTS
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
所有其它的 bits 给予保留。
典型值为:
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
作为SERIA【串口】指令,它必须保证工作正常,它在配置文件中应该是“First”指令。
CONSOLE flag_val
如果flag_val为0,禁止输出到普通视频终端。
如果flag_val为1,允许输出到视频终端(默认值)。
有些BIOS因为这个选项(参数)会令视频终端出现异常。
所以该选项(参数)允许你在这些系统上禁用视频控制台。
FONT filename
在显示任何输出之前,装载.psf格式的字体(除了版权行,ldlinux.sys本身被加载里就输出这些)。SYSLINUX只装载字体到显卡。忽略.psf文件包含的Unicode表。并且只工作于EGA和VGA显示卡。
注:.psf格式的字体不支持中文。
KBDMAP keymap
装载一个简单的键盘映射。该重映射使用很简单(由于这个重映射是基于BIOS的,所以只有标准的美式键盘布局才能被映射),不过这至少可以帮助使用QWERTZ和AZERTY键盘布局的人(这两个特殊字符大量用于Linux内核命令行)。
syslinux的还附带一个名为“kbdmap.c32”的comboot模块文件,它允许动态地改变键盘映射,这样就可以在syslinux的配置文件中增加一个键盘选择菜单或键盘选择标签【keyboard-selection menu and/or keyboard-selection labels】。
SAY message
在屏幕上打印Message【信息】。
DISPLAY filename
启动时在屏幕上显示指定文件(如果显示:则在启动前:“提示符”显示内容)。
请参阅下面一节的“DISPLAY file”。
注:如果指定的文件未找到,那么此选项(参数)将被完全忽略。
F[1-12] filename【F1功能键到F12功能键】
基本书写格式:
F1 filename
F2 filename
...etc【等等】...
F9 filename
F10 filename
F11 filename
F12 filename
在启动时按下相应的【F1-F12】功能键,将在屏幕上显示指定的文件。这个可用于实现开机前在线帮助。
请参阅下面一节的“DISPLAY file”。
在使用serial console【串行控制台】时,可以按<Ctrl+F1-F12>转到帮助屏幕:
<Ctrl-F><1> |
to get the F1 screen【转到“F1”屏幕/以下类似】 |
<Ctrl-F><2> |
to get the F2 screen |
...etc【等等】... |
<Ctrl-F><9> |
to get the F9 screen |
<Ctrl-F><A>【or <Ctrl-F><0>】 |
to get the F10 screen |
<Ctrl-F><B> |
to get the F11 screen |
<Ctrl-F><B> |
to get the F11 screen |
<Ctrl-F><C> |
to get the F12 screen |
在配置文件中空行和注释行【#号空格后的内容】将被忽略。
Can SYSLINUX Handle Large Kernels?【SYSLINUX能处理大内核吗?】
这个版本的SYSLINUX(syslinux 3.83)已经支持大内核了(bzimage 格式),取消了对bzimage格式内核的500K大小限制。能自动检测和透明处理用户的bzimage格式内核。
这个版本的SYSLINUX还支持启动时加载RAMDISK(initrd),initrd是从DOS文件加载的,其选项(参数)这:“initrd=filename”(这里的filename为initrd的映像文件名,并且这个文件必须在启动磁盘的根目录下。)
例如(EXTLINUX):
append ro root=/dev/hda1 initrd=/boot/initrd.img
为了兼容bzimage和最近的zimage内核,SYSLINUX 1.30和更高的的版本确定使用ID byte 0x31,PXELINUX识别使用ID byte 0x32,ISOLINUX using ID byte 0x33,and EXTLINUX using ID byte 0x34,ID byte 0x35-0x3f是预留给SYSLINUX之后版本的衍生工具使用。
What is the DISPLAY File Format?【什么是DISPLAY文件格式?】
DISPLAY 和功能键帮助文件是DOS或者UNIX格式的文本文件。
此处,以下特殊代码将会被解释:
Clear the screen, home the cursor【清屏,重置光标】:
<FF>
<FF> = <Ctrl-L> = ASCII 12
注意:屏幕将被当前显示色所填充。
Set the display colors to the specified background and foreground colors【设置显示颜色为指定的背景色和前景色】:
<SI><bg><fg>
<SI> = <Ctrl-0> = ASCII 15
这里的<bg>和<fg>为十六进制数,对于标准的PC显示属性为:
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【白色】 |
选择亮色(8-f)为背景色,将导致前景中相应的暗色(0-7)闪烁。
在串行控制台中颜色不可见。
例如:color.txt 文件:
在蓝色背景上闪烁黄色
^O9eBlinking Yellow on Blue Background
# xxd color.txt |
0000000: 0f39 6542 6c69 6e6b 696e 6720 5965 6c6c |
.9eBlinking Yell |
0000010: 6f77 206f 6e20 426c 7565 2042 6163 6b67 |
ow on Blue Backg |
0000020: 726f 756e 640a |
round. |
Display graphic form filename【显示图像文件名】:
<CAN>filename<newline>
<CAN> = <Ctrl-X> = ASCII 24
如果当前是VGA显示,进入图形模式并显示指定的图形文件。该文件格式为ad hoc格式,称为LSS16;所包含的Perl程序“ppmtolss16”可用于生成这样的图片。
该图像文件将被显示为640x480 16色模式,一旦进入图形模式,显示属性(由<SI>代码序列设置)稍有不同,背景色会被忽略,前景色是图像文件中指定的16种颜色。因此,ppmtolss16允许你指定颜色索引。注意:颜色索引0和7应该注意选择:0是背景色,7是SYSLINUX自身打印文字的颜色。
Return to text mode【返回到文本模式】:
<EM>
<EM> <Ctrl-Y> = ASCII 25
如果当前是图形模式,则返回到文本模式。
选择哪一种模式打印消息的一部分:
<DLE>..<ETB>
<Ctrl-P>..<Ctrl-W> = ASCII 16-23
这些代码可用于选择那种模式会打印到消息文件的某个部分。任一控制字符选择特定的实际输出模式 (文本屏幕、图形屏幕、串口)。
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 |
示例:
<DC1>Text mode<DC2>Graphics mode<DC4>Serial port<ETB>
将以控制台输入模式输出。
End of file文件终止:
<SUB>
<SUB> = <Ctrl-Z> = ASCII 26
文件终止(DOS 惯例)
Beep提示音:
<BEL>
<BEL> = <Ctrl-G> = ASCII 7
扬声器提示音。
引导文件(命令)解释
以下为SYSLINUX【ISOLINUX、PXELINUX、EXTLINUX也类似】主要文件的作用及说明: