歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> Linux資訊 >> 更多Linux >> 甩開 Lilo,使用Grub

甩開 Lilo,使用Grub

日期:2017/2/27 14:30:51   编辑:更多Linux
  作者: 開花石頭 [文章出自: www.PHPx.com] 如果你玩過Linux ,那麼你一定使用過或者知道 LILO ,這個在安裝有Linux 的系統上使用最廣泛的多重啟動管理程序。然而筆者今天要介紹的是隨 Mandrake Linux 所帶的 GRUB(GRand Unified Bootloader),讓我們看看它怎樣來代替LILO。 LILO 需要知道你的內核在驅動器上的實際位置,但是GRUB 卻不需要,它不僅能讀文件系統還能識別內核映像,而且它還支持最新的 2.4.1 內核所帶的 Reiser 日志文件系統。這意味著你不必在更新內核或者改變配置文件之後重新安裝GRUB。如果BIOS 支持LBA 的話,也沒有1024 柱面的問題。另外還支持網絡啟動和無盤客戶機。 然而,或許我們對LILO 太熟悉了吧,也或許GRUB 還有很多需要完善?總之,安裝 GRUB 看起來並不是一件很輕松的事情。下面我們就詳細介紹GRUB 的安裝和配置。 安裝 在 /tmp 目錄下解開文件: # tar zxvf grub-0.5.96.1.tar.gz 進入 "grub-0.5.96.1" 目錄,編譯程序: # ./configure # make # make install 配置: 和許多我們平常看到的多重啟動管理程序一樣,GRUB 提供一個菜單界面(LILO 不是菜單界面的)。GRUB的 缺省安裝位置為 /boot/grub ,配置文件也放在這個目錄下。缺省的配置文件名為 menu.lst,這個文件的功能就像和 lilo.conf 一樣,定義多重啟動選項以及磁盤映像。 我們來看一個 menu.lst 文件的示范例子: timeout 5 color black/yellow yellow/black default 0 passWord freeos title My Mandrake kernel (hd0,1)/vmlinuz root=/dev/hda3 idebus=66 title My Red Hat kernel (hd0,6)/boot/vmlinuz root=/dev/hda7 idebus=66 title W2K Pro root (hd0,0) makeactive chainloader +1 讓我們詳細分析一下各個選項的含義: timeout - 缺省入口的顯示延遲時間(秒) color - 菜單顯示的顏色組合,第一組顏色為前景色和背景色, 第二組為高亮時的組合。 default - 定義缺省的啟動入口,這裡的 0 就是使用定義的第一個入口。 password - 定義進入GRUB 高級特性時需要的口令。GRUB 利用其能讀取文件系統的特色,提供十分強大的功能。例如用戶可以在grub 的啟動提示符下輸 'cat /etc/shadow' 來讀包含加密口令的文件,而不需要進入你的系統!所以,為你的系統設置一個口令十分重要。 下面分析啟動入口,每一個入口都應該以一個 'title' 的關鍵字開始,後面跟上對該啟動入口的描述。接下來就是 'kernel' 入口, kernel (hd0,1)/vmlinuz root=/dev/hda3 hdc=ide-scsi 根據 GRUB 對設備的命名規則,我們可以很容易的理解上面這行的含義:軟驅設備名為 fdx ,硬盤為 hdx,需要記住的是 GRUB 從0 開始計數,所以第一台硬盤為 hd0 而不是 hd1。設備名用括號括起來,硬盤上的分區用逗號連接。例如 (hd0,1) 表示第一台硬盤上的第二個分區,而 (hd1,5) 就表示第二台硬盤上的第一個邏輯分區。 GRUB 能讀取大多數文件系統,上面這一行指定 GRUB 尋找 位於第一台硬盤上第二基本分區上的 /vmlinuz 文件,你也需要指定 'root=/dev/hda3' (假設你的根文件系統位於/dev/hda3),否則內核就不能掛接上根文件系統,之後就是你自己想加入的其他參數了。這些參數就和LILO 啟動時傳遞給內核的參數一樣,或者說和 lilo.conf 中 append 後面的參數一樣。 另外一個比較特別的入口是啟動windows 2000 的入口,root 入口指向 Windows 2000 的安裝位置(C:\\),接下來的入口設置分區的激活標志,最後的入口告訴 GRUB 搜索分區的第一個扇區來啟動那裡的操作系統。


以上是對GRUB 的一個典型的多重啟動設置的分析,在正式開始安裝GRUB 之前,建議你手頭有一張LILO 啟動盤或者一張應急啟動盤,以防不測。 以root 登錄,輸入"grub"命令以後,就會看到如下的畫面: GRUB version 0.5.96.1 (640K lower / 3072K upper memory) [ Minimal BASH-like line editing is supported. For the first word, TAB lists possible command completions. Anywhere else TAB lists the possible completions of a device/filename. ] grub> 以上看到的就是 grub 提示符,我們要在這個提示符下面安裝GRUB。 grub> install (hd0,1)/boot/grub/stage1 d (hd0) (hd0,1)/boot/grub/stage2 p (hd0,1)/boot/grub/menu.lst GRUB 分為兩個主要的步驟, stage1 和 stage2。Stage1 是一段嵌入MBR 的迷你代碼。Stage2 是主要部分,在 stage1 把控制權傳遞給它後,就由它來接管所有事情。 install 後面指定stage1 的位置,我們不僅說明了其分區 位置:(hd0,1),因為 GRUB 能讀取文件系統,所以還說 明了分區上目錄位置:/boot/grub/stage1,d 參數表示 stage1 將尋找 stage2 所在的磁盤。接著就是 GRUB 的安裝位置:(hd0) ,這裡就是指安裝在MBR。後面的參數指定 stage2 的位置:(hd0,1),和 stage1 的定義一樣。p 參數指定 menu.lst 文件的位置。 對於 /boot 作為單獨的分區的例子,需要采用下面的命令行: grub> install (hd0,1)/grub/stage1 d (hd0) (hd0,1)/boot/grub/stage2 p (hd0,1)/grub/menu.lst 以上例子假設 /boot 位於 (hd0,1) (也就是hda2),而 / 位於(hd0,2) (也就是 hda3) ,我們不能用 '(hd0,2)/boot/grub/stage1' ,因為GRUB 不知道 (hd0,1) 是 /boot ,所以必須首先指向掛接為 /boot 的分區,然後把目錄指向那裡。 重新啟動系統以後,就可以看到 GRUB 菜單了。看起來似乎很繁瑣,這麼長的命令行,是的!對於那些 LILO 能正常使用的人來說,或許沒有必要來玩這個危險游戲。但是,對於那些想使用 GRUB 增強功能的人來說,試一下 GRUB 或許會有意想不到的驚喜。我的朋友告訴我說他不能用 LILO 識別 1G 內存,希望 GRUB 能幫助辦到。本文旨在拋磚引玉, GRUB 還有很多的功能有待您的開發。 如果在配置和安裝中遇到了麻煩,為什麼不使用 info grub 或者 man grub 來尋求幫助呢?或者干脆上 GRUB 的官方網站 http://www.gnu.org/software/grub/ 尋找 FAQ 和其他文檔呢? GRUB 的下載地點: FTP://alpha.gnu.org:/gnu/grub/





Copyright © Linux教程網 All Rights Reserved