LILO的引導機制 計算機的啟動是由BIOS控制的,在完成對硬盤配置的測試及初始化之後,便會根據指定的引導信息,尋找加載硬盤、軟盤或光盤的主引導記錄MBR(Master Boot Record)或引導扇區。只要把LILO安裝在MBR或活動分區上,就能取得引導控制權,由LILO完成各種引導過程。系統出現LILO boot:提示符後,按TAB鍵,顯示可引導選擇項列表,然後輸入選項或直接回車選擇缺省配置。 與OS/2 Boot Loader和Partition Magic引導加載程序相比,LILO的靈活性更高,其引導方式也更加豐富: 1.當LILO被安裝在MBR上時,它能引導任意硬盤任一分區上的任一操作系統。 2.如果選擇引導Linux,它還可以直接傳遞參數到系統內核。 3.能引導不同配置、不同版本的Linux內核。 4.能從網絡引導Linux系統。 LILO的配置方法 LILO的配置一般有兩種方法:命令配置和手工配置。通常情況下,在安裝Linux系統時就可以根據畫面提示完成LILO的安裝配置,從而解決多重系統的引導問題。如果對系統的分區、設備配置不是很熟悉,或不能正確理解安裝畫面的英文提示,可能無法正確安裝配置。如果安裝配置LILO失敗,也不必大驚小怪,可使用手工配置來解決。手工配置的方法是用vi編輯命令來編輯/etc目錄下的lilo.conf文本文件,然後在超級用戶下執行lilo命令,將配置信息寫入MBR即可。 常見問題及解決方法 1.系統安裝完成後重新啟動系統時,屏幕沒有任何提示。出現這種情況說明LILO沒有正確安裝到MBR。 解決方法:用軟盤啟動系統,檢查/etc/lilo.conf文件配置是否正確。如果不正確,可用vi編輯命令修改lilo.conf文件,然後再執行lilo命令將配置寫入硬盤引導區。至於配置細節,可從以下配置實例來說明。 例一.C盤為IDE接口,D盤為SCSI接口,引導文件在IDE硬盤上,根文件在SCSI硬盤上,其配置文件/etc/lilo.conf的內容為: # lilo configuration file boot=/dev/had(設定boot所在的位置為IDE的MBR) delay=100(啟動一個引導的等待時間) vga=normal(顯示模式為標准VGA) Prompt(響應鍵盤輸入) imgae=/vmlinuz(指定linux的核心文件) root=/dev/sda1(指定linux所在硬盤及分區) lable=linux(為系統起一個名字,以供引導時選擇) read-only other=/dev/hda1(其他可引導設備) label=dos(其他系統為DOS) table=/dev/had(設定DOS所在分區) 例二.C盤和D盤均為SCSI接口,引導文件在C盤上,根文件在D盤上,光驅接口為SCSI,其配置文件/etc/lilo.conf的內容為: #lilo configuration file boot=/dev/sha delay=100 vga=normal prompt image=/vmlinuz root=/dev/sdb1 label=linux read-only other=/dev/sda label=dos table=/dev/sda1 2.系統啟動時出現L XXXX,其中XXXX為錯誤代碼,范圍是0x00-0x80。出現這種畫面時,可察看磁盤錯誤代碼,爾後根據錯誤代碼采取相應的措施。例如錯誤代碼0x04表示扇區沒有找到,比較典型的原因是硬盤C、H、S參數(該參數可用FDISK查到)不匹配。可以重新調整硬盤參數,再執行LILO。 3.系統啟動時出現LILO後死機。出現這種情況一般有以下幾種原因:(1)硬盤C、H、S參數不匹配,重新調整硬盤參數後執行LILO;(2)使用雙SCSI硬盤,SCSI ID號設置不當,會出現系統自檢為第二硬盤,而在安裝系統時Linux認為是第一硬盤,故在系統啟動時不能正確裝入。以筆者使用的AHA2940SCSI卡為例,如果將兩塊硬盤的ID號都設置在ID7以前,就會出現上述情況。正確的設置方法是將第一塊硬盤設為ID0,第二塊硬盤設為ID8,這樣就不會出現上述情況了。 4.系統引導時能出現LILO,但在引導過程中找不到硬盤。這種情況一般是因為Linux的主分區在1024磁道以外,解決的方法是重新安裝Linux系統,將主分區調整到1024磁道以內。 5.系統中既有IDE硬盤又有SCSI硬盤,Linux的根分區建在SCSI硬盤上,有些主板在系統引導時出現LILO後死機。出現這種問題是因為系統不能確定是IDE為先還是SCSI為先,這時可在lilo.conf文件加上以下語句解決: disk=/dev/sda bios=0x80(指定SCSI硬盤為第一硬盤) sectors=63 heads=255(CHS的值根據實際填寫) cylinders=1216 disk=/dev/had bios=0x81(指定IDE硬盤為第二硬盤) sectors=63 heads=128(CHS的值根據實際填寫) cylinders=821 LILO的卸載 在反復執行LILO進行引導系統地安裝過程中,要使LILO正確、可靠的安裝,每次最好對上次的安裝進行卸載。LILO的卸載方式一般有兩種,一種是DOS方式卸載,具體步驟是在DOS命令行下執行fdisk/MBR,即可將LILO卸下;第二種是在Linux系統下卸載。LILO在安裝引導扇區時,一般會在/etc目錄下保留一個原引導扇區的備份文件boot.xxyy,其中xxyy是該引導設備的主、次設備號(Major/Minor Number),Linux的各種設備均放在/dev目錄下,利用ls -l命令就可獲得各種設備的主次設備號。IDE接口硬盤的主設備號一般為03,相應的備份文件為boot.0300。SCSI硬盤的主設備號一般為08,相應的備份文件為boot.0800。使用下面的命令即可卸下IDE或SCSI硬盤的LILO: dd if=/boot/boot.0300 of=/dev/had bs=446 count=1 dd if=/boot/boot.0800 of=/dev/sda bs=446 count=1 建立MBR的備份 為了防止引導區被破壞而無法引導系統,可建立一個MBR的備份(包括分區表),具體操作方法是: dd if=/dev/had of=/dev/MBR bs=512 count=1 恢復MBR 當MBR被破壞,系統不能正常引導時,可用軟盤引導系統,在LILO提示符下輸入: mount root=/dev/sda1 將Linux引導起來,爾後執行: dd if=/boot/MBR of=/dev/had bs=446 count=1 執行以上命令恢復MBR,不包括分區表,如果要連分區表一起恢復,則讓bs=512。