无忧启动论坛

标题: 【转】SYSLINUX 中文简介(怎样使用) [打印本页]

作者: ljq0527    时间: 2009-12-29 15:12
标题: 【转】SYSLINUX 中文简介(怎样使用)
网上找了很久,一直没找到个稍详细点的关于syslinux的说明文档,今天偶然发现个感觉还不错的,贴出来和大家分享,高手可以跳过。当然,更希望您的补充和完善。
什么是syslinux?

本文来自于SYSLINUX Wiki

由于本人才疏学浅,其中难免错误,烦请各位多多指正。

欢迎转载本文,但请注明出处。

简单一点来说,是一个功能强大的引导加载程序,而且兼容各种介质。更加确切地说:SYSLINUX是一个小型的Linux操作系统,它的目的是简化首次安装Linux的时间,并建立修护或其它特殊用途的启动盘。

它的安装很简单,一旦安装syslinux好之后,sysLinux启动盘就可以引导各种基于DOS的工具,以及MS-DOS/Windows或者任何其它操作系统。


syslinux的相关选项(Options)

以下常用的选项(参数),适用于syslinux的所有版本

-s

Safe, solw, stupid:这个参数可以提高syslinux的引导兼容性。此参数可以让syslinux工作在一些非常规的BOIS上,有些机器上-s的选项(参数)是必需的,也就是说这是一个安全的选项(参数),建议一般要用上这个选项(参数)。

-f

Force installing:强制写入syslinux的引导代码,这是一个可选的选项(参数),如果你发现不能写入syslinux时,就可以使用这个选项(参数),但一般建议:写入本地磁盘时加上这个选项(参数)。

-r

Raid mode:RAID 模式。这是一个可选的选项(参数),如果启动失败,告诉BIOS启动顺序(通常是下一个硬盘),而不是给出错误信息后停止,这个一个RAID模式的选项(参数),一般来说可以不使用。




以下常用的选项(参数),只适用于Windows的版本

-m

MBR:将syslinux引导代码写入到驱动器的MBR启动扇区。这是一个可选的选项(参数),建议使用此选项(参数),如果之前有将GURB4DOS写入磁盘的MBR中,那么你必须使用-m选项(参数),否则将写入失败。

之前笔者就是因为有将“grub for dos”写入过MBR,而之后将syslinux引导代码写入MBR时,又没有使用-m选项(参数),所以一直不能将syslinux引导代码写入MBR。

示例:syslinux.exe -s -f -m -a -d /boot/syslinux x:
(x: 为盘符)

-a

Active:激活指定分区为活动分区,这是一个可选的选项(参数),当你不确定你所指定的分区是否是活动分区时可以加上这个选项(参数),实际上,就算你所指定的分区已经是活动的主分区了,也可以加上这个选项(参数)。(=bootable)




以下常用的选项(参数),只适用于Linux的版本

-o

指定文件系统映像文件中的字节偏移量,它必须是一个可使用的磁盘映像文件。




创建启动磁盘

安装syslinux的磁盘将改变磁盘上的引导扇区,并复制ldlinux.sys文件到其根目录(或者复制到指定的目录)下。

注意:SYSLINUX不支持NTFS文件系统,所以磁盘必须是FAT(FAT16/FAT32)文件系统。




NT/2K/XP

语法:

syslinux.exe [-sfmar][-d directory] <drive>: [bootsecfile]

例如:

Floppy:(a:为软驱)

syslinux.exe a:

硬盘/可移动磁盘等:(z:为盘符)

syslinux.exe -m -a -d /boot/syslinux z:

【将引导文件复制到其分区的/boot/syslinux目录下,注意:/boot/syslinux目录必须事先建好。

*上例中的启动菜单配置文件(syslinux.cfg)要在/boot/syslinux目录下。
*注意:在NT/2K中你可能会收到错误的信息,你只要选择"Ignore"(忽略)就可以正确完成命令了。


DOS

语法:

syslinux.exe [-sfmar][-d directory] <drive>: [bootsecfile]




Linux

语法:

syslinux [-sfr][-d directory][-o offset] <DeviceOrImage>

例如:

syslinux /dev/fd0

syslinux /设备/第一个软驱

【将syslinux的引导代码写入第一个软驱】



怎么配置我的syslinux?

所有的syslinux默认配置都可以在一个名为syslinux.cfg的文件里面更改。

syslinux会在下列位置搜索syslinux.cfg配置文件:
/boot/syslinux/syslinux.cfg
/syslinux/syslinux.cfg
/syslinux.cfg

syslinux.cfg文件必须是UNIX或DOS格式的文本文件。

下面是一个简单的例子,我们来看一下syslinux.cfg文件怎样引导一个linux内核:


DEFAULT linux
LABEL linux
SAY Now booting the kernel from SYSLINUX...
KERNEL vmlinuz.img
APPEND ro root=/dev/sda1 initrd=initrd.img

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”。

注:如果指定的文件未找到,那么此选项(参数)将被完全忽略。







[ 本帖最后由 ljq0527 于 2009-12-29 15:17 编辑 ]
作者: ljq0527    时间: 2009-12-29 15:13
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也类似】主要文件的作用及说明:

isolinux.bin        光盘映像引导文件

isolinux.cfg        光盘映像启动菜单配置文件

syslinux.bin        磁盘(U盘/移动硬盘/本地磁盘)映像引导文件

syslinux.cfg        磁盘(U盘/移动硬盘/本地磁盘)映像启动菜单配置文件

memdisk        引导IMG映像的文件,如果你要引导IMG/IMA的映像文件,必须先加载memdisk

vesamenu.c32        二种窗口模块之一

menu.c32        二种窗口模块之一
        

chain.c32        指定分区启动【如:chain.c32 hd0,1 (或chain.c32 hd1,1)】

reboot.c32        重新启动计算机

back.png        窗口背景图片



SYSLINUX.CFG/ISOLINUX.CFG菜单解释

引导文件(命令)        说明

default vesamenu.c32        默认使用vesamenu.c32窗口模块(必填项)

timeout 60        菜单停留时间,计时单位1/10秒(必填项)

F1 readme.txt        按F1阅读自述文件

F2 syslinux.cfg        按F2显示启动菜单配置文件

MENU BACKGROUND back.png        运行窗口背景图片(必填项)

MENU TITLE        菜单标题

MENU WIDTH 40        菜单选择条长度(必填项)

MENU MARGIN 0        菜单选择条缩进,0不缩进 (若删除则自动使用默认值)

MENU ROWS 30        菜单选择条却换,0不能却换(若删除则自动使用默认值)

MENU HELPMSGROW 26        帮助信息位置(若删除则自动使用默认值)

MENU TIMEOUTROW 27        倒计时条下移,0不下移(若删除则自动使用默认值)

MENU TABMSGROW 28        TAB显示条下移,0不下移 (若删除则自动使用默认值)

MENU CMDLINEROW 28        TAB信息条下移,0不下移 (若删除则自动使用默认值)

上面这2项的参数必须一致,以免按TAB键后弹出的信息条易位


MENU HSHIFT 0        菜单选择条右移,0不右移 (若删除则自动使用默认值)

MENU VSHIFT 0        菜单选择条顶端,0不下移 (若删除则自动使用默认值)

以上两项,默认值不一定是0。


menu color screen
37;40
#00000000 #00000000 none

menu color border
30;44
#00000000 #00000000 none(必填项)
menu color title
1;36;44
#00000000 #00000000 none


上面这三条有关整个菜单外框,如第二条menu color border可设置背景图片上的整个菜单外框的线条颜色,线条粗细,单线条或双线条等,还可设置为不显示菜单外框。如果都用默认,对应的条文均可删除,MENU TITLE后只剩下下面2条:


MENU WIDTH 58
MENU color border 0 #0000 #0000 none


LABEL DOS Tools        设置标签为“DOS Tools”,LABEL后面有一个空格,这个空格是必须的。(看得懂就可以了)

MENU LABEL DOS Tools        这个就大家在启动菜单上看到的启动项目,MENU和LABEL后面都有一个空格,这个空格是必须的。(看得懂就可以了)

kernel /memdisk        指定要启动的内核,启动根目录的memdisk内核,默认是启动磁盘(hd0,0)的根目录(如果启动的内核在其它目录,在这里必须指明),如果启动的是linux内核,那么不可以指定一些那个linux内核允许的Option。kernel后面有一个空格,这个空格是必须的。

append initrd=/dostools.img        指定要启动的映像文件。这个文件可以是,.img .ima .gz(gz的压缩格式的可以引导文件),.bin(如果是.bin的格式,就可以不用kernel去启动memdisk了,例如:kernel /pe.bin) ,等等。

________________________________________
使用心得
以下说说笔者的使用心得
一、再一次强调:SYSLINUX目前还不支持NTFS文件系统,所以你的磁盘(U盘/移动硬盘/本地磁盘)必须是FAT(FAT16/FAT32)文件系统。
二、如果你使用的是PATA(IDE)接口的磁盘,那么使用SYSLINUX都没有什么问题的,如果你使用的是SATA(串口)接口的磁盘,那么有可能的情况是:你已经正常将SYSLINUX的引导代码写入磁盘的MBR了,可是在引导菜单部分会出现一问题(例如:不能显示背景图片,菜单不能正常显示),有时候U盘也可能会出现这种情况。那么这时候你就要用BOOTICE(引导扇区制作工具——最好下载比较新的版本)将SYSLINUX引导代码写入磁盘(U盘/移动硬盘/本地磁盘)的PBR(分区引导记录)。
三、如果你要使用SYSLINUX+GRUB4DOS双引导,那么,在写入SYSLINUX的PBR(分区引导记录)的引导代码后,可以用“grubinst gui”来将GRUB4DOS的引导代码写入MBR(主引导记录)。
注意要选择好其中的选项:

    选择“启动时不搜索软盘”
    选择“优先引导原来MBR”(这个是实现SYSLINUX+GRUB4DOS双引导的关键选项,一定要选择这项。)
    等待时间“默认是 5 秒”(你可以填一个你认为更适合的等待时间,也可以不填)
    热键“默认是Space键”(如果你不想要空格键作为热键,在这里更改,建议大家不要更改)
    其它的选项可以不用理会。
四、SYSLINUX只要以下几个文件就可以了:

    vesamenu.c32
    menu.c32
    memdisk
    chain.c32
    reboot.c32
    syslinux.bin >>>>>> 光盘中用isolinux.bin
    syslinux.cfg >>>>>> 这个文件一个文本文件,光盘中用isolinux.cfg
    back.png >>>>>>>>>> 这个是背景图片,也可以使用其它文件名或其它格式的图片
    syslinux.exe >>>>>> 如果是用BOOTICE(引导扇区制作工具)写入引导代码的,那么可以不用这个文件,其实这个文件写完代码就没有什么用处了
五、SYSLINUX的子菜单
只要再写一个.cfg格式的文本文件就可以了,
怎么在主菜单调用
格式如下(假设要调用的子菜单为 bt3.cfg):
    LABEL Loader Back Track 3 Menu
      MENU LABEL [02] -- Loader Back Track 3 Menu
      CONFIG /boot/syslinux/bt3.cfg

再推荐一个网站:http://www.easeboot.com/
虽然很小但是非常不错的网站,一定要仔细的看才会知道的O。

[ 本帖最后由 ljq0527 于 2009-12-30 09:00 编辑 ]
作者: caomaoLBL    时间: 2009-12-29 16:55
很好,正好不怎么会syslinux  !谢谢楼主,学习了!
作者: zhanghs888    时间: 2009-12-29 17:36
不错不错!!!跟帖学习…………!
作者: libinneed    时间: 2009-12-29 18:06
支持,很不错的指南。
作者: kzr588    时间: 2009-12-29 18:12
很好的使用指南,学习了
作者: q8q8feng    时间: 2009-12-29 20:07
Great!很详尽...
作者: ljq0527    时间: 2009-12-29 20:08
哈哈,想不到还这么受欢迎啊!其实这些东西都不难学,难的是技术文档全是e文,看不懂。要是懂英文的朋友翻译下,那真是太幸福了。
作者: freesoft00    时间: 2009-12-29 20:16
很详细,这个资料备份了。看看
作者: snaketsg    时间: 2009-12-30 13:48
谢谢
已添加进收藏
作者: qingwei888    时间: 2009-12-30 14:58
不错,学习了grub再来学习syslinux,呵呵。
作者: zqjiang    时间: 2009-12-30 15:38
一直用grub  
syslinux 不懂使用
作者: ljq0527    时间: 2009-12-30 17:31
原帖由 zqjiang 于 2009-12-30 15:38 发表
一直用grub  
syslinux 不懂使用

grub国人开发的嘛,技术文档有中文,而且也好用,syslinux国外的,翻译的技术文档少,所以感觉有点隔阂,学习起来有难度。总的来说,grub兼容性应该要好些,而且支持ntfs磁盘格式,syslinux的PXE启动成熟些,启动速度也比grub快很多。

[ 本帖最后由 ljq0527 于 2010-1-1 08:48 编辑 ]
作者: SMichael    时间: 2009-12-31 10:08
很不错啊,谢谢分享~!
作者: linyehua    时间: 2010-1-10 12:55
刚好学习他们,你就送到谢谢了!
作者: 凌凌通    时间: 2010-1-10 21:52
不错的教材 先收藏起来
作者: yyjdelete    时间: 2010-1-10 22:50
请问有人知道怎么用Grub4Dos引导SYSLinux吗?或把SYSLinux/ISOLinux引导Linux的光盘菜单转到G4D的硬盘上(主要好像是参数改不过来),U+可以,谢了。
作者: devilma    时间: 2010-1-11 05:09
谢谢楼主啊,,收藏了
作者: xacxf_2000    时间: 2010-1-11 11:50
好东西,比较详尽,值得收藏。
作者: ljq0527    时间: 2010-1-17 22:22
原帖由 lwbapple8106 于 2010-1-10 12:08 发表



我也上传一下工具(不知道能不能上传成功)
syslinux 3.83 正式版

这里是官方主页:http://syslinux.zytor.com/wiki/index.php/The_Syslinux_Project
新版在这里下载:http://www.kernel.org/pub/linux/utils/boot/syslinux/
目前最新版式3.84。
作者: 午夜零点    时间: 2010-1-18 00:39
留下脚印,备以后查询
作者: peterpanheaven    时间: 2010-1-18 17:45
真是感謝您的文章呢!
作者: kideomduc    时间: 2010-3-24 20:20
很详细,这个资料备份了。谢谢
作者: 带bb去看海    时间: 2010-3-25 18:00
谢谢LZ的分享精神!!!
作者: kideomduc    时间: 2010-3-26 01:02
太专业了,有点晕~~
作者: sglhz    时间: 2010-3-26 08:34
好东西,感谢了!!!
作者: bywind    时间: 2010-5-6 16:51
大致看了一下,只是还有个问题没解决:
我用syslinbux做启动盘,想反过来调用NTLDR,但提示不是有有效映像……
作者: ivani    时间: 2010-5-27 11:24
已收藏,谢谢楼主。。。。。。
作者: ljy3282393    时间: 2010-5-27 22:44
谢谢楼主,先收藏再学习。
作者: binghuoxk    时间: 2010-5-31 01:56
多谢谢分享,辛苦了!!!
作者: kltwd    时间: 2010-6-1 08:24
谢谢楼主,学习  很详细
作者: zhangze    时间: 2010-7-18 16:36
还有一个  MENU PASSWD
和MENU MASTER PASSWD

也很实用
作者: bufubense    时间: 2010-8-7 14:21
标题: syslinux引导grub不能成功
我用syslinux做u盘引导盘成功再label grub
MENU LABEL GRUB
kernel /boot/grub/grub.exe
append --config-file="(sd0,0)/menu.lst"
不能引导GRUB,GRUB的MENU。LST放在U盘的根目录下
请问SYSLINUX。CFG怎么写才能成功启动,我用DOS启动GRUB时能成功启动
作者: bluetooth    时间: 2010-9-2 12:54
请问怎样把后面的Lable设成缺省值啊?现在缺省值是第一个Lable。

--------------------------------------------
已经找到,lable下面加一行menu default

[ 本帖最后由 bluetooth 于 2010-9-2 12:59 编辑 ]
作者: baosheng00    时间: 2010-9-2 20:25
支持一下,SYSLINUX 了解的人应该是比较少,看了都是全面的。
作者: 61666    时间: 2010-9-2 23:11
嘻嘻  这正是我需要的///
作者: ziyun    时间: 2010-9-14 18:32
谢分享,学习了!顶一个,
作者: liquizing    时间: 2010-9-20 00:07
来学习了  发个言  支持楼主  也方便以后查找
作者: 2010红色指令    时间: 2010-10-5 03:02
不错,正找呢,大大的感谢!!!节日快乐 !
作者: 2010红色指令    时间: 2010-10-5 03:02
不错,正找呢,大大的感谢!!!节日快乐 !
作者: 2010红色指令    时间: 2010-10-5 03:03
标题: 不错,正找呢,大大的感谢!!!节日快乐
不错,正找呢,大大的感谢!!!节日快乐
作者: cqflfzlyx    时间: 2011-2-15 13:05
也想学习syslinux,谢谢楼主
作者: 2011hiboy    时间: 2011-2-18 15:00
帮顶下。。
作者: 2011benben    时间: 2011-2-19 22:52
谢谢,很好,收藏学习了
作者: 2010yszfg    时间: 2011-2-27 11:04
不错,这贴子正是我们大家所需要的。
作者: bingxiao20    时间: 2011-2-28 13:05
东西不错啊 留个标记 以后查看 谢谢提供
作者: 2011CAD    时间: 2011-3-29 20:30
谢谢
已添加进收藏
作者: 2011百喜    时间: 2011-3-30 01:08
感谢分享
我要多学习学习




欢迎光临 无忧启动论坛 (http://wuyou.net./) Powered by Discuz! X3.3