menu.lst
位于/boot/grub/menu.lst,而/boot/grub/grub.conf相當于是menu.lst在windows下
的快捷方式(重裝系統(tǒng)有時破壞GRUB后,menu.lst丟失而無法啟動GRUB菜單時就需要在/boot下建立menu.lst后再和
grub.conf建立鏈接來修復(fù),建立鏈接是:ln -s menu.lst grub.conf
(注意兩文件的前后關(guān)系)),我們來學(xué)習如何編寫GRUB的配置文件menu.lst.
首先來看一下/boot/grub/menu.lst中的內(nèi)容: default=0 timeout=5 #splashimage=(hd0,6)/boot/grub/splash.xpm.gz hiddenmenu title Fedora Core (2.6.11-1.1369_FC4) root (hd0,6) kernel /boot/vmlinuz-2.6.11-1.1369_FC4 ro root=LABEL=/ initrd /boot/initrd-2.6.11-1.1369_FC4.img title Windows XP rootnoverify (hd0,0) chainloader +1 其中: a,default=0 表示默認啟動的第0號的操作系統(tǒng),在GRUB中,title定義了啟動的操作系統(tǒng),從第1個開始,GRUB中是0,而第2個是1,依次類推... b,timeout=5 表示的是出現(xiàn)GRUB界面后,無操作情況下進入default設(shè)定的操作系統(tǒng)的時間,如果上下移動選擇,則該選項無效 c,splashimage=(hd0,6)/boot/grub/splah.xpm.gz 表示的是允許出現(xiàn)的GRUB背景的path,顯然(hd0,6)指定了分區(qū)(不知能否這么解釋,呵呵),而后邊的則是正常的path(在例子中,用#把它注釋,為一可選項) d,hiddenmenu 表示隱藏GRUB的啟動菜單,直接進入由default廟宇的操作系統(tǒng)中去,為一可選項.
linux類 其格式一般為: title (......) root (hd[0-n],x) kernel (......) initrd (......) 其中: title行,是定義一個啟動操作系統(tǒng),而后邊可以自己隨便寫上喜歡的名字,呵,當然最起碼你得寫得要自己能認出來,沒必要把linux寫成windows吧?!
root行,指定相應(yīng)的linux所有的/boot,如果在寫分區(qū)和掛載時沒有單獨掛載,那么就和/在同一個分區(qū)中,hd[0-n]表示的是第幾個硬盤,而x則表示的是[第幾個分區(qū)-1],即x比分區(qū)號小1,特別要注意.
kernel
行,在這里以kernel 起始,指定Linux的內(nèi)核的文件所處的絕對路徑(通過在終端輸入命令:ls
/boot/vmlinuz*來看內(nèi)核的全名);因為內(nèi)核是處在/boot目錄中的,而如果/boot是獨立的一個分區(qū),則需要把boot省略,因為
/boot所在的分區(qū)在root (hd[0-n],x)中指定了,所以就無需要再指明內(nèi)核處在哪個分區(qū)了;ro 表示只讀;root=LABEL=/
來表示Linux的根所處的分區(qū)。LABEL=/
這是硬盤分區(qū)格式化為相應(yīng)文件系統(tǒng)后所加的標簽;如果您不了解什么是標簽,也可以直接以/dev/hd[a-z]X
或者/dev/sd[a-z]X來表示;就看您的Linux是根分區(qū)是在哪個分區(qū)了。比如我的是在/dev/hda3,
那這里就可以寫成root=/dev/hda3;
initrd行,如果是/boot獨立一個分區(qū),initrd
一行要把/boot中省略;如果/boot不是處于一個分區(qū),而是和Linux的/分區(qū)處于同一分區(qū),不應(yīng)該省略;我們通過查看/boot中的
initrd的文件名到底是什么來寫這一行代碼,在終端輸入:ls /boot/initrd* 很容易能得到initrd文件名,然后寫入.
在了解了以上情況之后,我們就很容易地理解另一種寫法了: title (......) kernel (hd[0-n],y)(/boot)...... ro root=...... initrd (hd[0-n],y)(/boot)...... 其實只是省略的root很實在地寫在了kernel和initrd行中去了而已
附: 其
實在GRUB啟動菜單不能工作的時候,進入GRUB命令行(可按CTRL+C鍵)后,我們同樣可以一步一步地把系統(tǒng)啟動起來,其實在menu.lst中,
除title不是指令外,其余的都是GRUB指令,我們只要一步步地輸入它們(錯了要從新開始),中間輸入關(guān)于kernel和 initrd要利用 TAB鍵補齊寫好,最后只要boot一下就行了.
用GRUB指令引導(dǎo)windows: GRUB> rootnoverify (hd0,0) GRUB> chainloader +1 GRUB> boot
用GRUB指令引導(dǎo)linux: 略,讀者可參考本文中的一些知識自己試驗.
|