複製鏈接
請複製以下鏈接發送給好友

syslinux

鎖定
syslinux是一個功能強大的引導加載程序,而且兼容各種介質。它的目的是簡化首次安裝Linux的時間,並建立修護或其它特殊用途的啓動盤。它的安裝很簡單,一旦安裝syslinux好之後,sysLinux啓動盤就可以引導各種基於DOS的工具,以及MS-DOS/Windows或者任何其它操作系統。不僅支持採用BIOS結構的主板,而且從6.0版也開始支持採用EFI結構的新型主板。
軟件名稱
syslinux
兼容性
功    能
強大
例    如
Floppy:(a:為軟驅)

syslinux建啓動盤

安裝syslinux的磁盤將改變磁盤上的引導扇區,並複製ldlinux.sys文件到其根目錄(或者複製到指定的目錄)下。

syslinuxNT/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"(忽略)就可以正確完成命令了。

syslinuxDOS

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

syslinuxLinux

語法:
syslinux [-sfr][-d directory][-o offset] <DeviceOrImage>
例如:
syslinux /dev/fd0
syslinux /設備/第一個軟驅
【將syslinux的引導代碼寫入第一個軟驅】

syslinux相關選項

syslinux適用所有

-s
Safe, slow, stupid:這個參數可以提高syslinux的引導兼容性。此參數可以讓syslinux工作在一些非常規的BIOS上,有些機器上-s的選項(參數)是必需的,也就是説這是一個安全的選項(參數),建議一般要用上這個選項(參數)。
-f
Force installing:強制寫入syslinux的引導代碼,這是一個可選的選項(參數),如果你發現不能寫入syslinux時,就可以使用這個選項(參數),但一般建議:寫入本地磁盤時加上這個選項(參數)。
-r
Raid mode:RAID 模式。這是一個可選的選項(參數),如果啓動失敗,告訴BIOS啓動順序(通常是下一個硬盤),而不是給出錯誤信息後停止,這個一個RAID模式的選項(參數),一般來説可以不使用。

syslinuxWindows

-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)

syslinuxLinux

-o
指定文件系統映像文件中的字節偏移量,它必須是一個可使用的磁盤映像文件。

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文件。
公認的文件擴展名(不區分大小寫)
擴展名
英文説明
中文説明
none or other
Linux kernel image
Linux內核映像
.0
PXE bootstrap program (NBP) [PXELINUX only]
PXE 啓動引導程序(NBP)
.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)
COM32映像文件
.cbt
COMBOOT image (not runnable from DOS)
COMBOOT映像文件
.com
COMBOOT image (runnable from DOS)
COMBOOT映像文件
.img
Disk image [ISOLINUX only]
磁盤映像文件
.ima
Floppy image [ISOLINUX only]
軟盤映像文件
使用這些關鍵字之一而不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將重新啓動引導程序而使用不同的配置文件

syslinux參數命令

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壓縮文件

syslinux虛擬磁盤

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 50TOTALTIMEOUT 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”。
注:如果指定的文件未找到,那麼此選項(參數)將被完全忽略。