LILO配置簡明攻略
2024-07-21 02:36:40
供稿:網(wǎng)友
LILO(linux Loader)是Linux自帶的一個(gè)優(yōu)秀的引導(dǎo)治理器,使用它可以很方便地引導(dǎo)一臺(tái)機(jī)器上的多個(gè)操作系統(tǒng)。與其他常用的引導(dǎo)加載程序相比,LILO引導(dǎo)方式顯得更具有藝術(shù)性,對(duì)其深入的理解,將有助于我們方便地處理多操作系統(tǒng)、網(wǎng)絡(luò)引導(dǎo)、大硬盤及大內(nèi)存等諸多棘手的問題。
通常我們談到LILO,會(huì)涉及到兩個(gè)方面——LILO引導(dǎo)程序和LILO安裝命令/sbin/lilo。為了不至于混淆這兩個(gè)概念,本文將用LILO表示LILO引導(dǎo)程序,而lilo表示/sbin/lilo。
一般地,LILO使用一個(gè)文本文件/etc/lilo.conf作為其配置文件。lilo讀取lilo.conf,按照其中的參數(shù)將特定的LILO寫入系統(tǒng)引導(dǎo)區(qū)。任何時(shí)候,修改了/etc/lilo.conf,都必須重新運(yùn)行l(wèi)ilo命令,以保證LILO正常運(yùn)行。lilo.conf使用的配置參數(shù)很多,配置起來也相當(dāng)復(fù)雜。下面以RedHat Linux為例作一些初步探討,RedHat的lilo程序包版本為0.20,別的Linux發(fā)行版本可能會(huì)有所出入,但不會(huì)太大。
lilo.conf文件中的配置參數(shù)分為兩部分,一部分是全局參數(shù),另一部分是引導(dǎo)映像參數(shù)。與Linux系統(tǒng)其他的配置文件一樣,“#”號(hào)后的一行文字表示注釋。
一、LILO的全局參數(shù)
全局參數(shù)是全程有效的,它可以出現(xiàn)在文件lilo.conf中的任何地方。以下是具體的參數(shù)項(xiàng):
1.backup=backup-file
在裝入LILO之前將原先的引導(dǎo)區(qū)備份到backup-file,而不是RedHat 缺省的/boot/boot.NNNN。也可以備份到一個(gè)設(shè)備上,如: /dev/null。注重:假如原先已有一個(gè)同名文件,該參數(shù)將被忽略。我們可通過這個(gè)備份恢復(fù)原先的引導(dǎo)扇區(qū):
dd if=/boot/boot.NNNN of=/dev/hda bs=446 count=1
恢復(fù)原先的MBR。(注:雖然boot.NNNN有512字節(jié),但只能恢復(fù)前446字節(jié)到MBR。)
2.boot=boot-device
指定一個(gè)用于安裝LILO的設(shè)備。通常LILO可安裝在如下幾個(gè)地方:
MBR:第一個(gè)硬盤的主引導(dǎo)區(qū), 對(duì)應(yīng)于/dev/hda、/dev/sda等。
Root:Linux根分區(qū)的超級(jí)塊(Super block), 對(duì)應(yīng)于/dev/hda1、/dev/hda2、/dev/hda5、/dev/sda1、/dev/sda5等。
Floppy:LILO安裝在軟盤上,對(duì)應(yīng)于/dev/fd0。
不指定時(shí),lilo缺省安裝在根分區(qū)超級(jí)塊上。
3.compact
該參數(shù)用于優(yōu)化LILO,產(chǎn)生一個(gè)更小的“map”文件。假如在軟盤上安裝LILO,強(qiáng)烈推薦使用此參數(shù)。
4.default=name
指定缺省引導(dǎo)的操作系統(tǒng)。如default=dos 表示將label為DOS的系統(tǒng)作為缺省引導(dǎo)的操作系統(tǒng)。如不指定該參數(shù),排在lilo.conf中的第一個(gè)操作系統(tǒng)將作為缺省操作系統(tǒng)。
5.delay=tsecs
在沒有指定“PRompt” 參數(shù)時(shí),LILO將立即引導(dǎo)缺省的操作系統(tǒng),“delay”參數(shù)在這之間插入一段延時(shí),單位是1/10秒。
6.disk=device-name
為某些非標(biāo)準(zhǔn)硬盤定義參數(shù)。其內(nèi)部還包括有幾個(gè)可選的子參數(shù)。
bios=〈bios_device_code〉: 設(shè)備號(hào)。十六進(jìn)制數(shù)0x80表示第一硬盤;0x81表示第二硬盤,依此類推。
sectors=〈sectors〉:硬盤扇區(qū)數(shù)。
heads=〈heads〉:硬盤磁頭數(shù)。
cylinders=〈cylinders〉:硬盤柱面數(shù)。受系統(tǒng)BIOS限制,柱面數(shù)必須在1024以內(nèi)。
partition=〈partition_device〉:用于物理定位非凡硬盤上的分區(qū),有一個(gè)子參數(shù)start。
start=〈partition_offset〉:每一分區(qū)的起始扇區(qū)。
例如:
disk = /dev/sda
bios=0x80
#指定SCSI硬盤為第一硬盤
sectors = 32
heads = 64
cylinders=632
#硬盤參數(shù)為632/64/32
partition=/dev/sda1
start=2048
#第一分區(qū)起始扇區(qū)為2048
partition = /dev/sda2
start=204800
#第二分區(qū)起始扇區(qū)為204800
partition = /dev/sda3
start = 500000
partition = /dev/sda4
start = 900000
當(dāng)機(jī)器上有兩塊硬盤,一塊為SCSI硬盤,另一塊為IDE硬盤時(shí),LILO很有可能無法自動(dòng)識(shí)別它們的主、從順序,這時(shí)可進(jìn)行如下設(shè)置:
disk = /dev/sda
bios = 0x80
disk = /dev/hda
bios = 0x81
#SCSI硬盤為主硬盤,IDE硬盤為從硬盤
該參數(shù)是為Linux無法識(shí)別的硬盤預(yù)備的,一般Linux可以正確識(shí)別和使用大多數(shù)硬盤,除非最壞的情況,否則不用設(shè)置它。
7.force-backup=backup-file
類似“backup”參數(shù),但是將覆蓋原有的同名文件。
8.ignore-table
通知lilo忽略無效的硬盤分區(qū)表。
9.install=boot-sector
LILO實(shí)際上包含有幾個(gè)部分,而這幾部分都存放在/boot/boot.b文件中。假如忽略“install”參數(shù),則lilo認(rèn)為install=/boot/boot.b。
10.linear
產(chǎn)生用于替換硬盤sector/head/cylinder地址(硬盤幾何參數(shù))的linear扇區(qū)地址。linear地址在運(yùn)行時(shí)產(chǎn)生并且不依靠于硬盤幾何參數(shù)。某些SCSI硬盤和一些以LBA方式使用的IDE硬盤可能會(huì)需要使用這個(gè)參數(shù)。注重,在將LILO安裝到軟盤上時(shí)不能使用“l(fā)inear”參數(shù)。
11.lock
出現(xiàn)LILO提示后立即按最近一次的引導(dǎo)映像啟動(dòng)計(jì)算機(jī)。也就是說,當(dāng)我們?cè)趌ilo.conf中加入了該參數(shù),然后運(yùn)行l(wèi)ilo安裝LILO,再重新啟動(dòng)計(jì)算機(jī),這時(shí)LILO會(huì)提示我們選擇引導(dǎo)哪一種操作系統(tǒng),這一選擇將被LILO記錄下來,即“鎖定”,下次啟動(dòng)計(jì)算機(jī)時(shí),LILO將忽略“delay”、“prompt”等參數(shù)及鍵盤輸入而直接跳轉(zhuǎn)到其“鎖定”的操作系統(tǒng)。
12.map=map-file
指定map文件。 沒有本項(xiàng)時(shí)缺省使用/boot/map,每次執(zhí)行l(wèi)ilo命令都會(huì)產(chǎn)生一個(gè)新的map文件。
13.message=message-file
該命令用于指定一個(gè)包含注釋信息的文件,該文件將在系統(tǒng)打印出字符串“LILO”之前顯示。假如在LILO啟動(dòng)時(shí)想獲取較多的信息,可以編輯一個(gè)文件,再使用該命令就可以了。文件中假如包含有ASCII碼為0xFF的字符(Ctrl+L)則表示清屏。注重,文件的大小不能超過65535個(gè)字節(jié)。每次文件改變之后,都必須重新運(yùn)行l(wèi)ilo命令重建map文件,以保證其正常顯示。
14.optional
當(dāng)用于啟動(dòng)的引導(dǎo)映像不存在時(shí),該參數(shù)使lilo忽略它。這對(duì)用于測試一個(gè)不長期存在的Linux核心是有用的。
15.passWord=password
為LILO設(shè)置口令保護(hù),每次重新啟動(dòng)計(jì)算機(jī)提示用戶輸入口令。設(shè)置了口令后,建議將lilo.conf的文件屬性改為600,以免讓非root用戶看到口令。
16.prompt
給出“boot:”提示,強(qiáng)制LILO等待用戶的鍵盤輸入,按下回車鍵則立即引導(dǎo)默認(rèn)的操作系統(tǒng),而按下Tab鍵則打印可供選擇的操作系統(tǒng)。當(dāng)“prompt”被設(shè)置而“timeout”沒有被設(shè)置時(shí),系統(tǒng)會(huì)一直處于等待狀態(tài)而不引導(dǎo)任何操作系統(tǒng)。不設(shè)置該參數(shù)時(shí),LILO不給出“boot:”提示而直接引導(dǎo)默認(rèn)操作系統(tǒng),除非用戶按下了Shift、Ctrl、Alt三鍵中的任何一個(gè)。大多數(shù)情況下,假如你的硬盤上有多個(gè)操作系統(tǒng),建議使用參數(shù),它留給用戶一個(gè)選擇的余地。
17.restricted
與“password”聯(lián)用,使“password”僅作用于在LILO提示后有命令行輸入的時(shí)候。
18.serial=parameters
使用串行口控制。這將初始化指定的串口,并將使引導(dǎo)治理器能接受來自串口的輸入。從串口發(fā)送一個(gè)中斷信號(hào)相當(dāng)于從控制臺(tái)鍵盤上按下Shift鍵,它同樣會(huì)被LILO捕捉到。假如不能保證來自串口的訪問和控制臺(tái)一樣安全,比方說有一個(gè)modem連在串口上,建議為每個(gè)引導(dǎo)映像加上口令保護(hù)(password)。參數(shù)串有如下語法:
〈port〉[,〈bps〉[〈parity〉[〈bits〉]]
〈port〉:數(shù)字表示的串口號(hào),0表示COM1,其余類推。所有四個(gè)串口都可被使用。
〈bps〉:串口速率,支持110、 150、300、600、1200、2400、4800和 9600 bps,缺省值為2400bps。
〈parity〉:設(shè)置串口校驗(yàn)。一般情況下,LILO忽略奇偶校驗(yàn)。n表示無校驗(yàn),e 表示偶校驗(yàn),o 表示奇校驗(yàn)。
〈bits〉:字符位數(shù),只能取7或8,缺省值是8。當(dāng)有奇偶校驗(yàn)時(shí)只能取7。
假如設(shè)置了“serial”,即使沒有設(shè)置“delay”,系統(tǒng)也會(huì)將“delay”項(xiàng)的值自動(dòng)增加20。
19.timeout=tsecs
設(shè)置等待鍵盤輸入的時(shí)長,單位是0.1秒。超過這段時(shí)間沒有輸入則為超時(shí),系統(tǒng)將自動(dòng)引導(dǎo)缺省的操作系統(tǒng)。假如不設(shè)置本參數(shù),缺省的超時(shí)時(shí)間長度為無窮大。
二、引導(dǎo)映像參數(shù)
引導(dǎo)映像參數(shù)作用于每一個(gè)引導(dǎo)映像區(qū)。假如某一引導(dǎo)映像參數(shù)(例如:password)與全局參數(shù)的定義相抵觸,則以該引導(dǎo)映像參數(shù)的定義為準(zhǔn),但僅限于該引導(dǎo)映像區(qū)。以下是具體參數(shù)項(xiàng):
image=pathname
設(shè)置包含Linux核心引導(dǎo)映像的文件或設(shè)備。
other=pathname
設(shè)置包含非Linux操作系統(tǒng),如DOS、SCO UNIX、Windows 95等系統(tǒng)引導(dǎo)映像的文件或設(shè)備。
range=start-end
假如“image”參數(shù)被設(shè)置為一個(gè)設(shè)備,則Linux核心引導(dǎo)映像的存放范圍必須被設(shè)置。
image = /dev/fd0
range = 1-512
# Linux核心引導(dǎo)映像存放在軟盤上的第一至512扇區(qū)