Ubuntu GRUB非常優秀的系統引導器
對大家推薦很好使用的Ubuntu GRUB系統,像讓大家對Ubuntu GRUB系統有所了解,然后對Ubuntu GRUB系統全面講解介紹,希望對大家有用Ubuntu GRUB是一款非常優秀的系統引導器,它的功能非常強大。
Ubuntu的/boot/Ubuntu GRUB下沒有Ubuntu GRUB.conf這個文件(一般linux系統下都是這個文件),跟它等價的文件是menu.lst,他們的參數設置基本是一樣的,下面以menu.lst的內容來了解下各參數的意義,首先我們來看一下/boot/Ubuntu GRUB/menu.lst中的內容:
- default=0
- timeout=5
- #splashimage=(hd0,6)/boot/Ubuntu 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號的操作系統,在Ubuntu GRUB中,title定義了啟動的操作系統,從第1個開始,Ubuntu GRUB中是0,而第2個是1,依次類推...
b,timeout=5表示的是出現Ubuntu GRUB界面后,無操作情況下進入default設定的操作系統的時間,如果上下移動選擇,則該選項無效;如果將timeout參數刪除或者將等于號后的數字改為負數,將會使該項徹底失效,Ubuntu GRUB將一直停留在引導頁面等待用戶選擇。
c,splashimage=(hd0,6)/boot/Ubuntu GRUB/splah.xpm.gz表示的是允許出現的Ubuntu GRUB背景的path,當進入Ubuntu GRUB引導界面的時候,可以看見一副背景圖片,這個參數提供的就是這個功能。
為了使Ubuntu GRUB引導更加個性化,大家也可以自己準備一張XPM圖片,然后將圖片壓縮成gz格式,最后修改splashimage參數中的文件路徑即可,此項為一可選項,所以上面將它用#注釋了。
d,hiddenmenu表示隱藏Ubuntu GRUB的啟動菜單,直接進入由default設定的操作系統中去,為一可選項.
- linux類
- 其格式一般為:
- title (......)
- root (hd[0-n],x)
- kernel (......)
- initrd (......)
其中:title行,是定義一個啟動操作系統,而后邊可以自己隨便寫上喜歡的名字,呵,當然最起碼你得寫得要自己能認出來,沒必要把linux寫成windows吧?!
root行,指定相應的linux所有的/boot,如果在寫分區和掛載時沒有單獨掛載,那么就和/在同一個分區中,hd[0-n]表示的是第幾個硬盤,而x則表示的是[第幾個分區-1],即x比分區號小1,特別要注意.
kernel行,在這里以kernel 起始,指定Linux的內核的文件所處的絕對路徑(通過在終端輸入命令:ls /boot/vmlinuz*來看內核的全名);因為內核是處在/boot目錄中的,而如果/boot是獨立的一個分區,則需要把boot省略,因為 /boot所在的分區在root (hd[0-n],x)中指定了,所以就無需要再指明內核處在哪個分區了;
ro 表示只讀;root=LABEL=/ 來表示Linux的根所處的分區。LABEL=/ 這是硬盤分區格式化為相應文件系統后所加的標簽;如果您不了解什么是標簽,也可以直接以/dev/hd[a-z]X 或者/dev/sd[a-z]X來表示;就看您的Linux是根分區是在哪個分區了。比如我的是在/dev/hda3,那這里就可以寫成root=/dev/hda3;
initrd行,如果是/boot獨立一個分區,initrd 一行要把/boot中省略;如果/boot不是處于一個分區,而是和Linux的/分區處于同一分區,不應該省略;我們通過查看/boot中的 initrd的文件名到底是什么來寫這一行代碼,在終端輸入:ls /boot/initrd*很容易能得到initrd文件名,然后寫入.
除了上面一些參數外,還有password這個參數,它也是比較重要的一個參數。眾所周知,通過編輯Ubuntu GRUB啟動參數可以輕松的進入單用戶模式從而修改root密碼。
這對于一臺多用戶的計算機或服務器來說,無疑增加了安全隱患。大家一定很像為自己的Ubuntu GRUB加一把鎖吧,大家可以通過Ubuntu GRUB的password參數對Ubuntu GRUB設置密碼。
Ubuntu GRUB的密碼設置可分為全局密碼和菜單密碼。為了防止他人通過Ubuntu GRUB修改root密碼大家需要設置一個全局密碼。vi /boot/Ubuntu GRUB/Ubuntu GRUB.conf(或menu.lst)在splashimage這個參數的下一行可以加上password=密碼。
保存后重新啟動計算機,再次登錄到 Ubuntu GRUB菜單頁面的時候就會發現,這時已經不能直接使用e命令編輯啟動標簽了,須先使用p命令,輸入正確的密碼后才能夠對啟動標簽進行編輯;
雖然我們設置了全局密碼,但是如果他人得到了全局密碼后仍然可以修改 Ubuntu GRUB啟動標簽從而修改root密碼;這樣我們就可以設置菜單密碼,設置菜單密碼也非常簡單,我們只需要在title的下一行加上password=密碼,然后保存退出。
這樣即使有了全局密碼也必需輸入菜單密碼才能夠引導系統。此外,如果直接對Ubuntu GRUB進行明文加密也是非常不安全的,所以就要使用MD5 對其進行加密。
在終端中輸入Ubuntu GRUB-md5-crypt回車,這時系統會要求輸入兩次相同的密碼,之后系統便會輸出MD5碼。大家只需要將生成的MD5 密文復制下來,然后在按照password --md5 MD5密文這個格式設置全局或者菜單密碼,保存退出,重啟計算機即可。
附:其實在Ubuntu GRUB啟動菜單不能工作的時候,進入Ubuntu GRUB命令行(可按CTRL+C鍵)后,我們同樣可以一步一步地把系統啟動起來,其實在menu.lst 中,除title不是指令外,其余的都是Ubuntu GRUB指令,我們只要一步步地輸入它們(錯了要從新開始),中間輸入關于kernel和 initrd要利用TAB鍵補齊寫好,最后只要boot一下就行了.
解決問題:像上面說的當Ubuntu GRUB不工作的時候,可以進入Ubuntu GRUB命令行一步步的解決,這樣作的前提是你知道問題出在那里!當不知道問題在那時,還是使用livecd 進入系統,查看出問題在那里,然后修改Ubuntu GRUB.conf或者menu.lst。
在查找問題時,先進入終端在Ubuntu GRUB下用find /boot/Ubuntu GRUB/stage1命令找到內核文件的真正的位置,然后參考下面系統配置文件/etc/fstab修改Ubuntu GRUB.conf或者menu.lst,這里最好使用各文件系統盤的UUID;當然也有可能出現別的問題:像內核丟失;Ubuntu GRUB.conf或者menu.lst丟失,那就另當別論了。
修改后的menu.lst部分內容:
- title Ubuntu 8.04.1, kernel 2.6.24-19-generic
- root (hd0,2)
- kernel /boot/vmlinuz-2.6.24-19-generic root=UUID=2312ec5d-592c-450f-8590-010efd1fd4a6 ro quiet splash i locale=zh_CN xforcevesa
- initrd /boot/initrd.img-2.6.24-19-generic
- quiet
- title Ubuntu 8.04.1, kernel 2.6.24-19-generic (recovery mode)
- root (hd0,2)
- kernel /boot/vmlinuz-2.6.24-19-generic root=UUID=2312ec5d-592c-450f-8590-010efd1fd4a6 ro single
- initrd /boot/initrd.img-2.6.24-19-generic
- title Microsoft Windows XP Professional
- root (hd0,0)
- makeactive
- chainloader +1
【編輯推薦】