本文我們將深入底層來講述LILO 的技術細節
也將告訴讀者怎樣去掉LILO 以及重新安裝LILO
本文我們將講述LILO 的內部技術細節以及啟動時的主要操作及其功能
以幫助我們調整LILO 的安裝
LILO 最大的好處就是它獨立於文件系統
可以啟動各種操作系統
從Microsoft
OS/
SCO Unix
Unixware
PC
DOS到Linux等等
LILO 能處理最多
個不同的映像
LILO 寫入MBR 時就作為主引導程序
寫入擴展分區的引導扇區時就是第二引導程序
采用LILO
可以有多種組合方式啟動系統
我們先來看看引導過程
硬盤上的數據被准確的分配到對應的
磁道
和
扇區
硬盤上的數據分布首先是引導扇區
然後是文件分配表(FAT)
接下來就是數據區
硬盤分區時
被分為基本分區和擴展分區
基本分區可以作為引導分區
可以通過任何引導程序標記為可引導
擴展分區可以分成好幾個邏輯分區
很多的BIOS 不允許從邏輯分區啟動
Linux 最多支持
個基本分區
如果需要額外的分區
那麼就要其中的一個基本分區變成擴展分區
然後在擴展分區裡面
劃分邏輯分區
很重要的一點是有些邏輯分區的分區表不能被識別為設備的第一塊
分區表通常存放於分區的引導扇區
而且
通常只有整個盤的分區啟動扇區用作引導扇區
稱為主引導記錄(MBR)
LILO 可以用於以下情形
第一硬盤的引導扇區
軟盤的引導扇區
位於第一硬盤的Linux 文件系統分區上的引導扇區
LILO 不能用於以下情形
交換分區
擴展分區中的邏輯分區的引導扇區
所以
如果你在第二硬盤上安裝了Linux
而不能啟動的話
可以采取在第一硬盤上建立 /boot 的辦法來解決
引導加載過程由很多程序組成
我們先來看看LILO 安裝
時的各種不同程序
MAP 安裝程序
這個程序把LILO 的文件放到合適的位置
並記錄這些信息(會在LILO 啟動時用到)
這個程序就是
/sbin/lilo
每次配置文件有改動或者有新內核時
需要重新運行一遍
/boot/*
*
其他LILO 啟動時需要的文件存放在 /boot 目錄下
map 文件是十分重要的
map 安裝程序把新內核的位置記錄到這個文件
引導加載程序
這個程序無需多言是最重要的部件了
它被
BIOS 調入內存
然後調用內核或者其他操作系統的引導扇區
包含引導加載程序第一部分的引導扇區被調入內存
然後調用引導加載程序的第二部分
一般位於文件 /boot/boot
b
接下來就啟動內核
如果從可引導軟盤啟動的話
BIOS 把軟盤的第一個扇區調入內存
一般
這個扇區包含一段程序來啟動對應的操作系統
和軟盤一樣
如果LILO 寫入MBR
那麼
MBR 就被調入內存
執行對應的操作
給用戶提示選擇需要引導的操作系統
具體地說
MBR 的頭
個字節由引導加載程序利用
剩余的
字節是分區表信息
還剩下的兩個字節就是分區激活標志
AA
了
在軟盤上備份 MBR 信息
bash# dd if=/dev/hda of=/dev/fd
bs=
count=
恢復
(萬一的情況下)
bash# dd if=/dev/fd
of=/dev/hda bs=
count=
刪除 LILO
c:> fdisk /mbr
恢復 LILO
重新安裝 Windows 以後
就會把LILO 干掉
無論什麼原因
我們都應該知道怎樣恢復LILO
最好手頭有一張安裝 CD
這年頭
干淨並且確實好用的
軟盤太少了
所以不推薦你使用軟盤
當然
如果你認為
你的軟盤質量可靠
那麼可以從CD
ROM
上建立應急啟動盤
dd if=/cdrom/disks/rescue of=/dev/fd
在 DOS 下面
采用
rawrite image
name a:
也可以在 上下載一個
按照說明制作一張啟動磁盤
如果從 CD 啟動的話
各個不同的Linux 版本有不同的方法進入應急狀態
Red Hat 啟動後有一個應急模式
SuSE 的話
需要先進入安裝界面
然後按Ctrl+Alt+Fn 鍵找到shell 提示符
可以在這個提示符下來恢復
下面介紹恢復步驟
首先建立掛接點
mkdir mount
然後把丟失的 Linux 掛接到這裡
mount /dev/hda
mount
如果 /boot 位於另外的分區
需要把他掛接到 mount/boot 目錄下
例如
mount /dev/hda
mount/boot
使用 chroot 命令
把 mount 作為根目錄
cd /boot
命令實際上進入的是
mount/boot
目錄
chroot mount
運行 /sbin/lilo
這樣就把 LILO 安裝回了 MBR
重新啟動就會看到 LILO 提示符回來了
From:http://tw.wingwit.com/Article/program/Oracle/201311/18073.html