GRUB Legacylinux
GRBU,GRand Unified Bootloader , 是一個通用啓動引導程序支持windows/Linux/UNIX.windows
工做過程:ide
stage 1 ,存放在硬盤的MBR中,因MBR的大小限制(446Byte),提供的功能有限,因此GRUB對其進行了擴展,此階段用於加載stage2的程序.加密
stage 2 ,存放在硬盤中的/boot/grub/ 目錄.spa
stage 1.5 ,stage1要加載 stage2 ,就須要識別硬盤,要有硬盤驅動,因此stage1.5的做用就是提供所須要的驅動程序,並緊接MBR以後.操作系統
設備識別問題:接口
GRUB程序須要知道kernel ramdisk文件的位置,才能正常引導,而grub安裝在/boot中,/boot目錄能夠單獨分區,也能夠不單獨分區做爲」根」的一個目錄,不一樣的分區方式,Grub訪問kernelr與ramdisk的方式入口不一樣.md5
/boot目錄單獨,那麼對於GRUB程序而言, /boot目錄就是GRUB的根,訪問kernel與ramdisk文件的路徑爲: /linuz.img /ramdiskstring
/boot目錄不單獨分區,做爲」根」的一個目錄,那麼GRUB程序訪問 kernel ramdisk的文件路徑爲: /boot/linuz.img /boot/ramdiskit
Grub命令接口
grub 程序提供命令接口,可供用戶根據須要選擇啓動的kernel.
root (hd#,#) //指定GRUB的根設備,boot目錄存放的設備,(hd0,0)表示爲第一個硬盤設備,第一個分區 (GRUB Legacy 編號從0開始, GRUB2從1開始)
kernel //指定Kernel文件的位置與Kernel參數,常見的Kernel參數,init=/~ ,selinux=0
initrd //指定ramdisk文件的位置
boot //根據設定參數值,嘗試啓動系統
find (hd#,#) file_name //表示在指定設備上查找文件
GRUB的配置文件解析:
[root@EL6 linux]# grep -Ev "^#" /boot/grub/grub.conf default=0 #默認的啓動項 timeout=5 #隱藏菜單,5秒沒操做啓動默認項 splashimage=(hd0,0)/grub/splash.xpm.gz #Grub的背景菜單 hiddenmenu #隱藏操做菜單 password [--md5] string #編輯GRUB菜單密碼
title CentOS (3.2.101-Hurn_TestingKernel) #標題 root (hd0,0) kernel /vmlinuz-3.2.101-Hurn_TestingKernel ro root=UUID=e6794649-888e-40cf-885c-59771a3e4008 initrd /initramfs-3.2.101-Hurn_TestingKernel.img password [--md5] string #加載內核的密碼
title CentOS (2.6.32-431.el6.x86_64) root (hd0,0) kernel /vmlinuz-2.6.32-431.el6.x86_64 ro root=UUID=e6794649-888e-40cf-885c-59771a3e4008 initrd /initramfs-2.6.32-431.el6.x86_64.img |
(注:password密碼,明文直接指定便可,密文使用md5加密,grub-md5-crypt 命令便可)
GRUB安裝
若是GRUB程序被破壞,則須要從新安裝GRUB
1) grub-install --root-directory=[grub安裝的位置] /dev/device [GRUB安裝的設備位置]
2) 在系統中進入grub交互式界面: 輸入grub命令,回車
root (hd#,#)
setup (hd#,#)
若是安裝雙操做系統,先裝Linux後裝WINDOWS,GRUB就會被windows破壞,此時用光盤應到啓動安裝GRUB便可.
若是GRUB被破壞,系統又重啓了,這時就須要加載光盤進入緊急救援模式了.
方式爲: 光盤啓動->選擇 「rescue」 ->輸入」linux rescue」命令