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”命令