必威电竞|足球世界杯竞猜平台

syslinux
來源:互聯網

syslinux是一個功能強大的引導加載程序,而且兼容各種介質。它的目的是簡化首次安裝Linux的時間,并建立修護或其它特殊用途的啟動盤。它的安裝很簡單,一旦安裝syslinux好之后,sysLinux啟動盤就可以引導各種基于DOS的工具,以及MS-DOS/Windows或者任何其它操作系統。不僅支持采用BIOS結構的主板,而且從6.0版也開始支持采用EFI結構的新型主板。

建啟動盤

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

NT/2K/XP

語法:

syslinux.exe [-sfmar][-d directory] : [bootsecfile]

例如:

Floppy:(a:為軟驅)

syslinux.exe a:

硬盤/可移動磁盤等:(z:為盤符)

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

【將引導文件復制到其分區的/boot/syslinux目錄下,注意:/boot/syslinux目錄必須事先建好?!?/p>

*上例中的啟動菜單配置文件(syslinux.cfg)要在/boot/syslinux目錄下。*注意:在NT/2K中你可能會收到錯誤的信息,你只要選擇"Ignore"(忽略)就可以正確完成命令了。

DOS

語法:

syslinux.exe [-sfmar][-d directory] : [bootsecfile]

Linux

語法:

syslinux [-sfr][-d directory][-o Offset]

例如:

syslinux /dev/fd0

syslinux /設備/第一個軟驅

【將syslinux的引導代碼寫入第一個軟驅】

相關選項

適用所有

-s

Safe, slow, stupid:這個參數可以提高syslinux的引導兼容性。此參數可以讓syslinux工作在一些非常規的BIOS上,有些機器上-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默認配置都可以在一個名為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 -- Run MaxDos

kernel /boot/syslinux/memdisk

append initrd=/boot/imgs/maxdos.img

KERNEL file【內核文件】這個就是SYSLINUX指向的啟動文件,這個“kernel”不一定是Linux kernel【Linux內核】,它可以是啟動扇區,或者COMBOOT文件。

使用這些關鍵字之一而不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=:::

……以上基于DHCP/BOOTP或者PXE的啟動服務器。

但不推薦使用此選項(參數),使用IP=DHCP的內核命令行更為合適。

2、下列的選項(參數)將以如下格式添加到內核命令行:

BOOTIF=

這在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是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只適用于用戶按啟動時。

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

注:如果指定的文件未找到,那么此選項(參數)將被完全忽略。

參考資料 >

生活家百科家居網