提示:
簡單地說,
Boot Loader就是在操作系統內核運行之前運行的一段小程序,稱為啟動引導程序。是加載核心的重要工具,沒有Boot Loader的話,那么kernel根本就沒有辦法被系統加載的。 而grub是其中的一種啟動引導程序的名稱。
1、啟動引導程序(Boot Loader)簡介
啟動引導程序我們之間可能見過,比如Windows系統,在你的電腦上安裝了兩個不同版本的Windows系統時,在開機啟動的時候,就會有界面讓你選擇,你需要進入到哪個系統中,這個就是啟動引導程序的作用。如果你的電腦上只有一個操作系統,進入到啟動引導程序中也沒有的選擇,所以就沒有顯示讓你選擇進入到哪個系統。
Linux系統的啟動引導程序分為兩種,早期的Lilo引導程序,現在已經不是很常見了。現在常用的是grub引導程序,與Lilo引導程序比來,grub引導程序有很多優勢,主要有:
- 支持更多的文件系統。
grub的主程序可以直接在文件系統中查找內核文件。- 在系統啟動時,可以利用
grub的交互界面編輯和修改啟動選項。 - 可以動態的修改
grub的配置文件,這樣在修改配置文件之后不需要重新安裝grub,而只需要重新啟動系統就可以生效了。
如果你在機器上安裝了兩個版本的Linux系統,或者使用了不同版本的Linux系統內核,在啟動系統的時候,就能進入到grub啟動引導程序中,選擇你需要進入的版本或者內核。
我們這里就學習Linux系統中的grub啟動引導程序。
2、啟動引導程序grub的作用
- 第一是加載操作系統的內核。
- 第二是擁有一個可以讓用戶選擇的菜單,來選擇到底啟動哪個系統。
- 第三還可以調用其他的啟動引導程序,來實現多系統引導。
3、啟動引導程序grub的位置
grub啟動引導程序的位置在/boot/grub目錄。
1)我們先進入到boot目錄下查看里邊有什么文件。
如下圖所示:

說明:
symvers-2. 6.32- -642.e16.x86_ 64.gz是系統運行真正加載的內核, 是內核源碼編譯之后的內核內容,你是不能看到其內容的。如果你想查看Linux內核源碼,需要進入到usr/src/kernel目錄中,前提你需要安裝好內核源碼包。所以系統運行加載的內核和系統源碼內核的位置是不同的。
2)進入到/grub目錄中查看內容。
如下圖所示:

在/grub目錄中,我們主要關注的就三個文件,分別是grub. conf、menu.lst、splash.xpm.gz,其他文件是不需要我們動的,是grub加載之后需要用到的一些相關文件。
說明:
grub. conf文件是grub的配置文件,menu.lst文件是grub.conf文件的軟鏈接,所以menu.lst文件也是grub的配置文件。其實grub.conf文件還有一個軟鏈接,/etc/grub.conf文件也是grub.conf文件的軟鏈接,如下圖所示:
三個文件隨意用哪個文件都可以,看你個人習慣。
這里還要說明一下splash.xpm.gz文件。
splash.xpm.gz文件里邊標識的是grub啟動的時候界面的背景圖像,如可以自定義顏色。但是編輯格式很不令人輸入,一般也沒有人修改splash.xpm.gz文件,除非你自己要做一個Linux發行版,並且想我的發行版本和標准的Linux發行版本不太一樣,才用修改。
在grub. conf配置文件中會有splash.xpm.gz文件的信息。
4、/grub目錄中其他的文件簡單介紹
device.map文件:grub中硬盤的設備文件名與系統的設備文件名的對應文件。e2fs_stage 1_5文件:ext2/ext3文件系統的stage 1.5文件。fat_stage 1_5文件:FAT文件系統的stage 1.5文件。ffs_stage 1_5文件:FFS文件系統的stage 1.5文件。iso9660_stage 1_5文件:iso9660文件系統的stage 1.5文件。jfs_stage 1_5文件:jfs文件系統的stage 1.5文件。minix_stage 1_5文件:minix文件系統的stage 1.5文件。reiserfs_stage 1_5文件:reiserfs文件系統的stage 1.5文件。stage1文件:安裝到引導扇區中的stage1的備份文件。stage2文件:stage2的備份文件。ufs2_stage 1_5文件:UFS文件系統的stage 1.5文件。vstafs_stage 1_5文件:vstafs文件系統的Stage 1.5文件。xfs_stage 1_5文件:xfs文件系統的Stage 1.5文件。grub.conf文件:grub的配置文件。menu.lst -> ./grub.conf文件:grub的配置文件。和grub.conf是軟鏈接,所以兩個文件修改哪個都可以。splash.xpm.gz文件:系統啟動時,grub程序的背景圖像。
總結:
其實
/grub目錄中主要就是grub的配置文件和各種文件系統的stage1.5文件。不過grub的配置文件有三個/boot/grub/grub.conf、/boot/grub/menu.lst和/etc/grub. conf,這三個配置文件是軟鏈接,所以修改哪一個都可以,我個人更習慣為/etc/grub.conf這個文件。

