執手麥田的咖啡空間 |
|
|||
專注于Java的學習研究 |
公告
日歷
導航留言簿(2)隨筆分類(13)隨筆檔案(13)搜索最新評論
閱讀排行榜評論排行榜 |
四、GRUB 接口
GRUB 除了菜單模式,還提供了一個命令模式和 grub shell 。當系統啟動并顯示菜單時,按 c 鍵就可以進入命令模式。提示符是 grub> 。 如果你已經成功引導操作系統并登錄,可以在 shell 提示符下執行 grub ,這會啟動一個 grub shell。提示符也是 grub> 。 GRUB 能夠象 bash 一樣使用上下鍵來訪問 command history ,ctrl-u、ctrl-k、ctrl-l 等快捷鍵也可以使用。想要編輯菜單,可以按下 e 鍵; 想要新增一空白行,可以按下 o 鍵(當前行之后)或者 O 鍵(當前行之前)。想要刪除當前行,按下 d 鍵;ESC 鍵放棄當次修改并返回上級菜單。 有些命令只能在命令模式下,有些命令只能用于配置文件(菜單模式),有些命令在兩個模式下都可以使用。下面我們就介紹 GRUB 常用的命令。 五、GRUB 常用命令 5.1 只能用于配置文件的命令 下面這5個命令只能出現于配置文件中,分別是 : a)default :定義默認引導的操作系統。0 表示第一個操作系統,1表示第2個,依此類推 b)fallback :如果 default 所指定的操作系統引導失敗,則默認引導由 fallback 指定的操作系統 c) hiddenmenu :用于啟動時隱藏菜單,除非在 timeout 之前按下 ESC 才能看到菜單。 d)timeout :定義多少秒內如果用戶沒有按下鍵盤上的某個按鍵,就自動引導 default 所指定的操作系統。 e)title :定義引導項目的名稱。 f)password :用于定義進入 GRUB 命令模式的密碼。你還可以為每個操作系統都定義一個密碼,方法是把 password 命令放在 title行之后。 而且每個操作系統的引導密碼可以不同,也可以和進入命令模式的那個密碼不同,最大程度的保證 GRUB 的安全。 5.2 只能用于命令模式或者 grub shell 的命令 a)device :用于定義 BIOS 中的磁盤設備和操作系統的磁盤設備之間的映射關系。 例如 device (hd0)/dev/hdb 把 BIOS 中的第一個硬盤相當于 Linux 的 /dev/hdb b)serial :用于初始化一個串口設備。 例如 :serial –-unit=0 –-speed=9600 表示初始化 COM1(--unit=0),速率為 9600 Baud 不過 grub shell 下執行該命令會顯示 “無法識別的命令” c)terminal :用于切換顯示輸出。有兩這個值可選 :console 和 serial 。當你把筆記本接到一個沒有顯示器/鍵盤的主機上時,執行 terminal serial 就可以在你的筆記本上操作這臺主機的 GRUB 了。執行 terminal console 把顯示輸出還原到該主機。 不過 grub shell 下執行該命令會顯示“無法識別的命令” d)splashimage :用于定義啟動時的背景圖片。例如 splashimage /grub/splash.xpm.gz 經過測試,發現用 tarball 安裝的不支持該命令,這似乎是 redhat grub rpm 專有的。 e)blocklist :用于顯示某個文件在文件系統中的位置,以 block list 的形式顯示。例如 blocklist /vmlinuz f)ca :用于顯示文件內容。由于 GRUB 可以直接訪問多種文件系統,所以可以用 cat (hd0,1)/etc/passwd 來在 GRUB 命令模式下查看 /etc/passwd 文件 g)root :用于指定含有 stage 文件的分區。如果有 /boot 分區,則 root device 就是 /boot 分區,否則 就是 / 分區。 h)rootnoverify :和 root 類似,但不會嘗試掛載該分區。例如用于指定 windows 操作系統所在的分區。 i)chainloader :用于加載另外一個 boot loader ,通常是用于加載 windows 的 boot loader 。它的參數是一個 block list , 例如 chainloader (hd0,0)0+1 表示加載第一個磁盤的第一個分區的第1塊,0 是開始位置(block 從0開始編號),+1 表示總共讀取多少個 block。 所以 chainloader 2+0 表示讀取第3個block (編號為2) j)find :可以用于在所有分區上搜索文件。注意,是所有分區,而不是某個分區。例如 find /vmlinuz 將會在所有分區上查找位于該分區的頂級目錄下的 vmlinuz文件,如果找到就打印該分區名,例如 (hd0,1)。 k)geometry :用于顯示或者設置某個硬盤的 CHS 參數,同時還顯示分區信息。例如 geometry (hd0) l)halt :關機 m)reboot :重啟機器 n)kernel :指定操作系統內核文件,還可以在內核文件名后加上參數。例如 kernel /vmlinuz ro root=LABEL=/ 表示以只讀的方式掛載 / 分區,且根分區設備是 label 為 / 的那個設備;也可以直接給出設備名。 o)initrd :用于指定 RAM Disk 文件,例如 initrd /initrd-2.xx.img 。 p)boot :引導 kernel 所指定的內核,對于 linux 來說,必須先加載了 kernel 和 initrd 才能執行 boot 。 q)setup :用于安裝 stage1 到磁盤的 MBR 或者某個分區的引導扇區。 六、保護 GRUB 設置 下面是一個例子 [Copy to clipboard]CODE: password –-md5 <密碼1> timeout=30 default=0 title “redhat AS 4” password –-md5 <密碼2> root (hd0,1) kernel /vmlinuz ro root=LABEL=/ initrd /initrd-xxx.img title “windows” password –-md5 <密碼3> rootnoverify (hd0,0) chainloader +1 當出現 GRUB 菜單時,必須按下 p 并輸入 <密碼1> 才能進入命令模式,如果選擇 “redhat AS 4”并按下回車,會出現提示信息,要求輸入密碼, 這時應該輸入 <密碼2>。同樣只有輸入 <密碼3> 才能進入 windows 系統。--md5 告訴 GRUB 后面的內容是已經用 md5 算法加密過的了。所以 GRUB 會將你輸入的口令用 MD5 加密后再與之比較。你可以命令模式下用md5crypt 命令或者在 shell 下執行 grub-md5-cypt 來得出一個字符串用 MD5 加密 后的結果,再插入到配置文件中。為每個引導項目設置 GRUB 密碼有好處也有壞處 : a)好處是 :你可以禁止用戶隨便引導某個操作系統,即使普通用戶可以接觸GRUB 菜單,沒有密碼也沒有用; b)壞處是 :如果你一旦重啟機器,就必須手工輸入口令,否則會一直停在那里。如果你是在半夜遠程重啟某個主機的話…. Hoho c)建議 :只設置 GRUB 密碼,也就是限制用戶進入命令模式,具體菜單項不設置密碼。
|
![]() |
|
Copyright © 執手麥田 | Powered by: 博客園 模板提供:滬江博客 |