Linux命令 lilo - 安裝核心載入開機管理程序

2021-11-22 17:23 更新

lilo

安裝核心載入開機管理程序

補充說明

lilo命令 用于安裝核心載入,開機管理程序。lilo是個Linux系統(tǒng)核心載入程序,同時具備管理開機的功能。單獨執(zhí)行l(wèi)ilo指令,它會讀取/etc/lilo.conf配置文件,然后根據(jù)其內(nèi)容安裝lilo。

Linux lilo已經(jīng)成為所有 Linux 發(fā)行版的標(biāo)準(zhǔn)組成部分。作為一個 較老的/最老的 Linux 引導(dǎo)加載程序,它那不斷壯大的 Linux 社區(qū)支持使它能夠隨時間的推移而發(fā)展,并始終能夠充當(dāng)一個可用的現(xiàn)代引導(dǎo)加載程序。有一些新的功能,比如增強的用戶界面,以及對能夠突破原來 1024-柱面限制的新 BIOS 功能的利用。

雖然 LILO 仍在不斷地發(fā)展,但 LILO 工作原理的基本概念保持不變。

語法

lilo(選項)

選項

-b<外圍設(shè)備代號>:指定安裝lilo之處的外圍設(shè)備代號;
-c:使用緊致映射模式;
-C<配置文件>:指定lilo的配置文件;
-d<延遲時間>:設(shè)置開機延遲時間;
-D<識別標(biāo)簽>:指定開機后預(yù)設(shè)啟動的操作系統(tǒng),或系統(tǒng)核心識別標(biāo)簽;
-f<幾何參數(shù)文件>:指定磁盤的幾何參數(shù)配置文件;
-i<開機磁區(qū)文件>:指定欲使用的開機磁區(qū)文件,預(yù)設(shè)是/boot目錄里的boot.b文件;
-I<識別標(biāo)簽>:顯示系統(tǒng)核心存放之處;
-l:產(chǎn)生線形磁區(qū)地址;
-m<映射文件>:指定映射文件;
-P<fix/ignore>:決定要修復(fù)或忽略分區(qū)表的錯誤;
-q:列出映射的系統(tǒng)核心文件;
-r<根目錄>:設(shè)置系統(tǒng)啟動時欲掛入成為根目錄的目錄;
-R<執(zhí)行指令>:設(shè)置下次啟動系統(tǒng)時,首先執(zhí)行的指令;
-s<備份文件>:指定備份文件;
-S<備份文件>:強制指定備份文件;
-t:不執(zhí)行指令,僅列出實際執(zhí)行會進行的動作;
-u<外圍色設(shè)備代號>:刪除lilo;
-U<外圍設(shè)備代號>:此選項的效果和指定"-u"參數(shù)類似,當(dāng)不檢查時間戳記;
-v:顯示指令執(zhí)行過程;
-V:顯示版本信息。

實例

使用 LILO 作為引導(dǎo)加載程序

要使用 LILO 作為引導(dǎo)加載程序,需要做的事情取決于是要進行全新安裝還是要讓已經(jīng)安裝的 Linux 改為使用 LILO。如果是要進行全新安裝,那么直接跳轉(zhuǎn)到 配置 LILO 那一節(jié)。如果已經(jīng)安裝了某個 Linux 發(fā)行版,那么通??梢赃x擇安裝并配置 LILO(并可以將機器引導(dǎo)到新的 Linux 安裝)。

要將現(xiàn)有的 Linux 遷移到 LILO,首先必須獲得最新版本的 LILO(見 參考資料)。在做任何其他事情之前,建議您確保在手邊擁有一張 Linux 引導(dǎo)盤 —— 如果偶而弄錯了某些地方,它可以提供很大的幫助,能夠恢復(fù)到初始的 Linux 配置!將 LILO 安裝到系統(tǒng)中之后,讓它接管 MBR 非常簡單。以 root 用戶身份輸入:

/sbin/lilo -v -v

這將使用當(dāng)前的 LILO 默認值,抹去 MBR 中當(dāng)前所有內(nèi)容。不過,請閱讀 配置 LILO,以確保能夠按預(yù)期引導(dǎo)起來。也要注意,如果想要在同一機器上運行 Windows 和 Linux,那么應(yīng)該先安裝 Windows OS,然后再安裝 Linux OS,這樣,在 Linux 安裝中所選擇的引導(dǎo)加載程序就不會被 Windows 引導(dǎo)加載程序所覆蓋。與 Linux 引導(dǎo)加載程序不同,多數(shù) Window 引導(dǎo)加載程序不支持引導(dǎo) Linux。如果已經(jīng)先安裝了 Linux,那么只需要自己創(chuàng)建一張 Linux 引導(dǎo)盤,這樣就可以在安裝完 Windows 之后,回到 Linux 安裝中并重寫 MBR。

配置 LILO

LILO 的配置都是通過位于 /etc/lilo.conf 的一個配置文件來完成的。清單 1 給出了一個示例配置,使用的是我的家用機器,支持 Linux 和 Windows 機器的雙重引導(dǎo)。了解我的工作站的基本配置,就可以想像出這些配置是如何與實際機器相關(guān)聯(lián)的:

主 HDD(物理磁盤 1)上安裝了 Windows XP(最初機器上只有它)。在 Linux 術(shù)語中,這個 HDD 是 /dev/hda(在 grub 術(shù)語中是 hd0,0)。

從 HDD(物理磁盤 2)上安裝了 Red Hat Linux;root 分區(qū)位于這個硬盤驅(qū)動器的第三個分區(qū),即 /dev/hdb3(在 GRUB 術(shù)語中是 hd1,3)。

lilo.conf 示例文件:

boot=/dev/hda
map=/boot/map
install=/boot/boot.b
prompt
timeout=100
compact
default=Linux
image=/boot/vmlinuz-2.4.18-14
	label=Linux
	root=/dev/hdb3
	read-only
	password=linux
other=/dev/hda
	label=WindowsXP

配置文件選項說明:

  • boot= 行告訴 LILO 在哪里安裝引導(dǎo)加載程序。在上面的示例中,將把它安裝到第一塊硬盤的 MBR。也可以選擇將 LILO 安裝到 /dev/hdb3(示例中的 Linux 分區(qū)),這樣需要向 /dev/hda 安裝另一個引導(dǎo)加載程序,并令其指向 LILO 引導(dǎo)加載程序;然后只需要讓 LILO 作為二級引導(dǎo)加載程序。通常,引導(dǎo)加載程序應(yīng)該位于 /dev/hda。還可以將這個參數(shù)指向軟盤驅(qū)動器(最常見的是 /dev/fd0),來制做 LILO 軟盤引導(dǎo)磁盤。
  • map= 指向引導(dǎo)期間 LILO 內(nèi)部使用的映射文件。當(dāng)使用 /sbin/lilo 命令安裝 LILO 時, 它會自動生成這個文件,其中包含有描述符表(還有其他內(nèi)容)。建議不要改動這個文件!
  • install= 是 LILO 在引導(dǎo)過程中內(nèi)部使用的文件之一。它同時包含有引導(dǎo)加載程序的主要部分和二級部分。boot.b 文件的 一個片段被寫入到 MBR(引導(dǎo)加載程序的主要部分),它會指向那個映射,接下來指向二級引導(dǎo)加載程序。同樣,不要改動它!
  • prompt= 告訴 LILO 使用用戶界面(本例中給出了兩個選擇 —— Linux 和 WindowsXP)。除了使用 prompt/user 界面以外,在適當(dāng)情況下還可以為 Linux 內(nèi)核等指定具體的參數(shù)。如果不在配置文件中指定此選項,那么 LILO 將引導(dǎo)到 默認的 OS,不發(fā)生任何用戶交互,也不會等待。(但是請注意,如果在引導(dǎo)時按下了 SHIFT,那么還是可以得到提示,當(dāng)不想把 引導(dǎo)加載程序暴露給普通用戶時,這非常有用)。
  • timeout= 是引導(dǎo)提示在自動引導(dǎo)默認 OS(本例中是 Linux)之前的等待時間(以十分之一秒為單位)。 如果在 lilo.conf 沒有指定 prompt,那么這個參數(shù)就會被忽略。
  • compact 選項可以大大加速引導(dǎo)過程,它會將連續(xù)的讀磁盤的請求合并為一個單獨的請求。不過,這可能是 一件禍福參半的事情,因為我在論壇上看到過很多貼子提到了關(guān)于此選項的問題。當(dāng)希望從軟盤引導(dǎo)時,這個選項尤其有用。
  • default= 選項告訴 LILO 默認使用哪個映像進行引導(dǎo),比如在等待超時之后。這與 lilo.conf 文件中的某個映像的 標(biāo)簽相關(guān)聯(lián)。如果沒有在配置文件中指定此選項,那么它將引導(dǎo)文件中指定的第一個映像。
  • 對于允許用戶引導(dǎo)到的每一個 Linux 版本,都應(yīng)該指定 image= 及以下三個選項。image 選項指定希望 引導(dǎo)到的內(nèi)核版本。
  • label= 標(biāo)明了在運行期間希望能夠從用戶界面引導(dǎo)的不同 OS。另外,這個標(biāo)簽用于指定引導(dǎo)的默認 OS。 (注意:標(biāo)簽名稱中避免出現(xiàn)空格;否則,引導(dǎo)那個文件時會出現(xiàn)無法預(yù)期的錯誤。)
  • root= 告訴 LILO OS 文件系統(tǒng)實際所在的位置。在我們的示例中為 /dev/hdb3,即第二塊硬盤上的第三個分區(qū)。
  • read-only 告訴 LILO 以只讀的方式初始引導(dǎo)到文件系統(tǒng)。OS 一旦完全引導(dǎo)起來,就會以讀寫方式掛載。
  • password= 允許您為將要引導(dǎo)到的特定 OS 設(shè)置口令。不幸的是,這個口令是以可讀文本的方式保存在 lilo.conf 文件中,所以,所有人都能夠讀取它。如果需要,還可以對想要引導(dǎo)自的每個操作系統(tǒng)設(shè)置口令(在我們的示例中,只為 Linux 的引導(dǎo) 設(shè)置了一個口令)。
  • other= 的動作類似于 image 和 root 選項的組合,但是用于除了 Linux 以外的其他操作系統(tǒng)。 在我們的示例中,它告訴 LILO 到哪里去找到 Windows OS(位于第一塊硬盤的第一個分區(qū))。如果先安裝 Windows,后安裝 Linux,通常會是這樣。
  • label= 與所有其他 label 選項相同。

在 lilo.conf 文件中可以使用很多其他參數(shù),不過清單 1 中的參數(shù)就足以讓機器可用了。要獲得關(guān)于 lilo.conf 的這些以及其他參數(shù)的 進一步資料,請參考手冊頁(man lilo.conf)。由于在引導(dǎo)時不會讀取 lilo.conf,所以,當(dāng)這個文件有改動時,需要“更新”MBR。 如果不完成此步驟就重新引導(dǎo),那么對 lilo.conf 的修改不會在啟動中反映出來。與先前將 LILO 寫入 MBR 類似,需要運行:

/sbin/lilo -v -v

-v -v標(biāo)記會為您給出非常詳細的輸出。當(dāng)像我們那樣運行 LILO 時,有很多參數(shù)可以指定。 參閱手冊頁以獲得更進一步的信息(man lilo)。

初始引導(dǎo)過程

當(dāng) LILO 初始引導(dǎo)時,它會按次序打印出每個字母 —— L-I-L-O。如果所有字母都顯示出來,那么第一階段引導(dǎo)就成功了。缺少任何內(nèi)容 都表示出現(xiàn)了問題:

L:第一階段引導(dǎo)加載程序已經(jīng)被加載。如果 LILO 停止在這里,那么是在引導(dǎo)第二階段引導(dǎo)加載程序時出現(xiàn)了問題。這通常會伴隨有一個錯誤代碼。 在這個階段的常見問題是介質(zhì)問題,或者在 lilo.conf 文件中指定了不正確的磁盤參數(shù)。

LI:第二階段引導(dǎo)加載程序已經(jīng)被加載。LILO 在此處停止表示第二階段引導(dǎo)加載程序不能被執(zhí)行。同樣,這可能是因為出現(xiàn)了與只顯示 L 類似的問題: 正在加載,或者因 boot.b 文件被破壞、移動或刪除而不能加載。

LIL:第二階段引導(dǎo)加載程序正在被執(zhí)行。此時,可能會再次出現(xiàn)介質(zhì)問題,或者映射文件(如 lilo.conf 文件中所指定的)在尋找描述符表時 可能會出現(xiàn)問題。

LIL?:加載到與上面相同的階段。這通常意味著加載第二階段引導(dǎo)加載程序使用了錯誤的地址,最常見的原因是 boot.b 所在的位置與 lilo.conf 文件所指定的不同。

LIL-:加載到與上面相同的階段。加載描述符表時出現(xiàn)問題,最常見的原因是描述符表錯誤。

LILO:LILO 成功被加載,沒有出現(xiàn)任何錯誤。

引導(dǎo)時的附加配置

LILO 被成功加載后,將看到 LILO 提示符。還是使用前面的示例 lilo.conf 文件,此時將有兩個選擇,可能對 LILO 新手來說并不直觀。首先,可以 讓 LILO 超時(10 秒后),這將引導(dǎo)/dev/hdb3,即 Linux 分區(qū)。另外,可以按下 TAB 鍵,這將列出將要引導(dǎo)的操作系統(tǒng)選項。在我們的示例 lilo.conf 中, 將得到的選項是 “Linux” 和 “Windows”。輸入哪一個,就會引導(dǎo)到哪個 OS。指定加載 Linux 選項,會提示輸入一個口令,在本例中是 linux。如果輸入的口令有誤,則會返回 LILO 提示符。

不幸的是,LILO 不支持引導(dǎo)期間的交互式配置,所以,只能在 lilo.conf 中或者運行/sbin/lilo時指定選項。

關(guān)于第一次嘗試 LILO 的最后一點建議是:我發(fā)現(xiàn)使用軟盤引導(dǎo)磁盤比使用硬盤實現(xiàn) LILO 配置更為安全。為此,必須在 lilo.conf 文件中使用boot=/dev/fd0替換boot=/dev/hda。那樣,如果弄亂了lilo.conf文件 中的任何配置,都可以取出引導(dǎo)磁盤并像先前一樣引導(dǎo)到 Linux。當(dāng)使用軟盤進行引導(dǎo)一切正常以后,可以將lilo.conf修改回boot=/dev/hda,然后最后一次運行/sbin/lilo來上傳修改。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號