歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux綜合 >> Linux資訊 >> 更多Linux

實戰lilo管理工具

lilo是Linux 的引導管理程序,它和OS/2、NT的BootManager,以及許多人用的syste m commander的作用類似,當你在這個提示符下按下Tab鍵的時候,它會顯示出當前可以 引導的系統: lilo: dos smplinux 實際上,lilo就是一小段引導程序,可以位於任何有可能用來引導系統的位置,但是 通常我們把它放在硬盤的主引導區,這個概念對任何與病毒打過交道的用戶都應該是非 常熟悉的。系統自檢完畢之後,就會從硬盤上讀入主引導區的內容,於是,lilo接管了 系統的控制權,可以引導Linux了。理論上,許多書籍建議你用軟盤引導服務器以便避免 可能的破壞,這倒是那種“教科書的解決方案”的一個典型。 你可以看到在上面顯示出了多個系統名字,輸入某一個名字引導相應的系統,lilo會 自動選擇對應的分區以及啟動文件來啟動系統。 與lilo決斗是系統管理員生活的一部分,硬盤可能會損壞,病毒可能更改了引導記錄 ,錯誤地編譯內核使系統報銷,甚至一些愚蠢的反病毒程序也可能會使得lilo被破壞, 這時你也許必須從DOS上引導,然後重新配置lilo。如何從DOS下啟動Linux等一會再說, 現在讓我們把主要精力拿來對付lilo。 lilo的配置是靠編輯/etc/lilo.conf實現的,這個文件的規則很簡單,舉例來說,這 是我的lilo文件: [wanghy@openlab /etc]$ cat lilo.conf boot=/dev/hda install=/boot/boot.b prompt timeout=50 default=smp image=/boot/bzImage label=smp read-only append="mem=256M" root=/dev/hda1 image=/boot/vmlinuz-2.2.12-20 label=linux read-only root=/dev/hda1 other = /dev/hda3 label = dos table = /dev/hda 首先是boot=/dev/hda,這表示你用的啟動磁盤是第一個IDE硬盤(由於這個原因,通 常你不能從從盤上啟動Linux)。 接下來,install=/boot/boot.b將/boot.b表示要將/boot/boot.b文件的內容寫到引導 記錄中。這個文件在安裝Linux的時候就已經創建了。 prompt timeout=50 default=smp 這兩行表示系統啟動時將會顯示一個lilo:提示信息並等待5秒鐘,注意timeout的單位 是0.1秒。如果5秒鐘之內沒有輸入系統的名字,那麼缺省將引導標號為"smp"的系統。 接下來定義的是各個引導項目,首先定義了兩個Linux引導項目,image=/root/bzIma ge這樣的行定義了啟動時使用的內核映像,接下來,label=smp定義了這個啟動選擇項的 名字是smp。在下面的幾行則是用bzImage啟動系統時的一些附加參數: read-only 使用只讀方式連接文件系統,由於系統啟動的時候要檢測文件系統完整性,因此要使 用這個選項,當系統啟動後,啟動腳本會自動將它切換為read-write模式。 append="mem=256M" 缺省下,Linux內核只使用64MB以下的內存空間,由於這個系統有256MB內存,必須用 命令行直接通知內核,append後的內容就是啟動時加給內核的命令行參數。必須注意, 有時你需要把它寫成mem=255M,原因是在許多系統上bios會占用部分存儲空間,如果你 沒有把握,就從內存量中減去一。 root=/dev/hda1 當這個內核啟動以後,用/dev/hda1文件系統作為本機文件系統的根。 接下來的段落的效果與剛才我們解釋的一樣,剛才定義了一個名叫"smp"的啟動項,它 啟動Linux並且連結/dev/hda1文件系統,而從image=/boot/vmlinuz-2.2.12-20開始的段 落則定義一個名叫“Linux"的選項,它使用/boot/vmlinuz-2.2.12-20作為內核映像,掛 接/dev/hda1文件系統,但是只使用缺省的64MB內存。 再往下的段落 other=/dev/hda3 label=dos table=/dev/hda 定義了一個名叫dos的啟動項,這個啟動項用來啟動位於/dev/hda3上的MS-DOS分區。 由於DOS不使用內核映像而是利用引導記錄,系統必須能夠找到分區表信息以便定位引導 記錄,table=/dev/hda表示系統的DOS類型的分區表在/dev/hda上。 當完成了lilo.conf的設置工作後,執行 /sbin/lilo 會出現這樣的信息: [openlab]# /sbin/lilo Added smp * Added linux Added dos *表示這個加入的項是缺省啟動項。三行信息表示我們定義的三個啟動項都已經被加入 ,以後再啟動就可以使用新的啟動定義了。 lilo還支持很多其他的定義,但是對於系統管理員來說,上面解釋的已經足夠了,想 要了解進一步的內容,執行man lilo.conf。 前面提到了內核映像這個概念,Linux在編譯內核時將內核做成壓縮的二進制內存映像 ,啟動中自動拷貝到內存中並解壓,然後讓核心代碼接管系統。


核心代碼得到系統的控制權之後,下一步需要檢測系統設備並激活必須的設備,在這 個過程中,一串初始化信息在屏幕上滾過: Linux version 2.2.14 ([email protected]) (gcc version egcs-2.91.66 199903 14/Linux (egcs-1.1.2 release)) #9 SMP Sat Jan 29 10:07:06 EST 2000 Intel MultiProcessor Specification v1.1 Virtual Wire compatibility mode. OEM ID: MSIProdUCt ID: 440BXAPIC at: 0xFEE00000 Processor #0 Pentium(tm) Pro APIC version 17 Processor #1 Pentium(tm) Pro APIC version 17 I/O APIC #2 Version 17 at 0xFEC00000. Processors: 2 mapped APIC to ffffe000 (fee00000) mapped IOAPIC to ffffd000 (fec00000) Detected 451033204 Hz processor. Console: colour VGA+ 80x25 Calibrating delay loop... 448.92 BogoMIPS Memory: 257700k/262144k available (1044k kernel code, 424k reserved, 2920k data, 56k init) Dentry hash table entries: 32768 (order 6, 256k) Buffer cache hash table entries: 262144 (order 8, 1024k) Page cache hash table entries: 65536 (order 6, 256k) VFS: Diskquotas version dquot_6.4.0 initialized Checking 386/387 coupling... OK, FPU using exception 16 error reporting. Checking 'hlt' instruction... OK. ............. 這個信息很長,幾乎每個被初始化的設備都會顯示一段訊息,從這裡可以看出系統中 那些設備已經開始工作,那些設備失敗了。如果信息滾動過快,可以在啟動完成之後用 dmesg命令顯示全部信息。 當需要直接在內核映像中啟動的設備(這些設備是在編譯內核時確定的)初始化完畢 後,Linux連結在lilo.conf的root=行中定義的根文件系統,啟動init進程(應該記得它 是一切程序的最初啟動者),尋找/etc/inittab文件並且進入運行級的設置。



dmesg命令顯示全部信息。 當需要直接在內核映像中啟動的設備(這些設備是在編譯內核時確定的)初始化完畢 後,Linux連結在lilo.conf的root=行中定義的根文件系統,啟動init進程(應該記得它 是一切程序的最初啟動者),尋找/etc/inittab文件並且進入運行級的設置。



Copyright © Linux教程網 All Rights Reserved