lilo
出自DebianWiki
LILO (Linux Loader) 是 Debian GNU/Linux Woody 所內定的多重開機程式。 LILO 幾乎可以在任何狀況之下載入任何作業系統,是目前最佳的多重開機程式之一。
但是每次重新建立 Kernel 之後 LILO 也必須重新建立,這是稍微美中不足的地方, 這個缺點在後起之秀 Grub 中已經完全解決了。
不過既然這個老掉牙開機管理程式還存在大多數的 Linux 之中, 那我們還是有必要對它多多了解一點。
LILO 的設定檔位於 /etc/lilo.conf。以下為其開機選項:
# /etc/lilo.conf
# 支援可以由 1024 磁柱以後開機。
lba32
# 指定安裝 LILO 時所寫入的裝置。在這裡是寫入 MBR。
boot=/dev/hda
# 指定安裝 LILO 時所寫入的裝置。在這裡是將 LILO 安裝在第 一 顆 IDE 硬碟的第 1 個分割區的開始位置。
# boot=/dev/hda1
# 指定 root 目錄 (/) 所在的磁碟分割區。在這裡是第 一 顆 IDE 硬碟的第 1 個分割區。
root=/dev/hda1
# 自動最佳化。能有效減少 map 檔案的大小及 LILO 的載入時間。
# 但未必一定有效,所以 Debian 預設上是不使用這個選項的。
compact
# 指定開機選單樣式
# 可指定包括 bmp、compat、menu 及 text
# install=/boot/boot.b
install=/boot/boot-menu.b
# 指定 map 檔案位置
# map 檔記錄了 Kernel 的檔名、存放位置等資訊。
map=/boot/map
# 在開機時是否顯示 LILO 的開機選單。
# 如果是使用多重開機時還是出現比較好。
# 即使沒有設定,開機時按下 <Ctrl> 一樣會出現開機選單哦!
# prompt
# 設定開機時的延遲時間,單位為 0.1 秒
delay=40
# 指定開機後的文字顯示模式(normal、extended、ask、<mode>)
vga=normal
# 指定開機時的 Kernel 選項
# 在這裡是將 /dev/hdd 模擬成 SCSI 硬碟,及關閉 frame buffer 的功能
# 也可以在此把開機訊息給拿掉。
append="hdd=ide-scsi video=vga16:off quiet"
# 預設的開機項目。在本例中可為:Linux 或 Windows。
default=Linux
# 設定 Linux 的開機項目
image=/vmlinuz # 指定 Linux Kernel Image 的檔案名稱。
# root=/dev/hda1 # 也可以在此各別指定 root 目錄 (/) 所在的磁碟分割區。
initrd=/initrd.img # 載入 initial ramdisk。
# 使用 /sbin/mkinitrd /boot/initrd.img x.y.z 來產生這個檔案。
# 其中 x.y.z 是 Kernel 的版本。
label=Linux # 在開機選單中所顯示的名稱。
read-only # 將 root 的檔案系統 mount 為唯讀的。
# 加入 MS Windows 2000 的開機項目
other=/dev/hda2 # MS Windows / DOS 所安裝的分割區。
# table = /dev/hda # MS Windows / DOS 的 MBR 位置。
label=Windows # 在開機選單中所顯示的名稱。
修改完畢後,務必記得要下達 lilo -v -v -v 讓這些設定寫入 MBR 中。這樣 LILO 就能夠支援從各式各樣的 OS 上開機了。
LILO 可以指定從邏輯分割區、另一顆硬碟、超過 1024 磁柱後的分割區開機,是功能極強大的開機管理程式,推薦使用!因為 LILO 設定太簡單、可以任意從任何磁碟分割區開機,我們在這裡就不用著墨太多了。
注意:雖然 LILO 功能強大,但是 Microsoft Windows ME 的開始磁區還是『絕對』不要位於 1024 磁柱之後!因為在安裝 Microsoft Windows ME 時,有報告指出如果它的開始磁區位於 1024 磁柱之後時,它會把開機檔案『強迫』寫入第 1023 磁柱,因而會造成第 1023 磁柱上的資料損毀!不可不慎呢!
如果 LILO 開機時直接就載入 Linux 而沒有出現多重開機的畫面,這並不是 LILO 壞掉囉,只要在電腦開機時按下 <Ctrl> 鍵,多重開機的畫面就會出現了。
如果要移除安裝在 MBR 中的 LILO,可以使用 DOS 開機片,開完機後下達 Fdisk /mbr 即可用 DOS 版的 Boot Loader 把 LILO 給覆蓋掉。
這裡也有一篇使用 LILO 做為 Win95 + WinNT + Linux 多重開機 mini-HOWTO,您也可以參考看看!
重新設定 LILO 指令:/sbin/lilo
-v : 在發現錯誤時出現詳細的診細訊息。 -t : 檢查 lilo.conf 的設定是否正確。 -C : 指定其它的設定檔。(預設是/etc/lilo.conf)
修復 LILO:
1. 使用 Debian 的安裝光碟片或磁碟片開機。
2. 使用緊急修復模式啟動 Linux,適用於 Kernel 2.2.x:
boot: rescue root=Device
使用緊急修復模式啟動 Linux,適用於 Kernel 2.4.x:
boot: rescbf24 root=Device
3. 必要時,編輯 LILO 設定檔以符合您的需求:
(Edit) /etc/lilo.conf
4. 測試 LILO 設定檔中的設定是否正確:
/sbin/lilo -t <Enter>
5. 重新安裝 LILO:
/sbin/lilo -v -v -v <Enter>
6. 重新啟動 Linux,測試 LILO 是否可以正常運作
reboot <Enter>
或是:
1. 放入 Debian 的安裝光碟,使用 bf24 參數開機。
2. 在開機完畢後,按下 <Alt><F2> 來切換至第二個 Console,
使用以下指令將 / 分割區給掛載起來。
如果您的 /boot 是放在另一個分割區,請記得要同時掛載:
# 將 / 給掛載起來
mount -t ext3 /dev/hda1 /mnt
3. 使用 chroot 來重建 LILO:
# 使用 chroot 將 / 切換到 /mnt 去
chroot /mnt
# 重建 LILO 吧!(LILO 的設定及使用方式請參考其說明文件。)
lilo -v -v
# 跳離 chroot
exit
4. 在結束之前,建議執行 sync 和 umounbt 指令:
sync
umount /mnt
5. 好,搞定了,重開機吧!
reboot
![[Main Page]](/upload/4/49/Debian_taiwan_out.png)