GRUB(boot loader):
grub:GRand Unified Bootloader
grub 0.x:grub legacy(centos 5、6)
grub 1.x:grub 2(centos 7)
grub legacy:
stage1:mbr,主引导分区
stage1_5:mbr之后的扇区,让stage1中的bootloader能识别stage2所在的分区上的文件系统
stage2:磁盘分区(/boot/grub/)
配置文件:/boot/grub/grub.conf,其连接文件为/etc/grub.conf
注意:stage2及内核等通常放置于一个基本磁盘分区;
功能:
(1)提供一个菜单,并且提供交互式命令接口;
e:编辑模式,用于编辑菜单;
c:命令模式,交互式接口;
(2) 加载用户选择的内核或者操作系统
允许传递参数给内核;
可隐藏此菜单;
(3)为菜单提供了保护机制
为编辑菜单进行认证;
为启用内核或者操作系统进行认证;
如何识别设备:
(hd#,#):第一个数字表示第几块磁盘(从0开始编号),第二个数字表示第几个分区(从0开始编号)
grub的命令行接口:
help:获取帮助列表;
help KEYWORD:关于该keyword的详细帮助信息;
注意:grub的根设备并不是文件系统所在的设备,而是stage2文件所在的设备。
find (hd#,#)/filename:查找某一磁盘上的某一文件
root (hd#,#):设定谁为根设备文件;为grub的根。
kernel /PATH/TO/KERNEL_FILE: 设定本次启动时用到的内核文件;额外还可以添加许多内核支持使用的cmdline参数;
例如:init=/path/to/init, selinux=0,quiet
initrd /PATH/TO/INITRAMFS_FILE: 设定为选定的内核提供额外文件的ramdisk;其版本号必须与内核版本号完完全全一致才可以;
boot: 引导启动选定的内核;
手动在grub命令行接口启动系统:
grub> root (hd#,#) grub> kernel /vmlinuz-VERSION-RELEASE ro root=/dev/DEVICE grub> initrd /initramfs-VERSION-RELEASE.img grub> boot
配置文件:/boot/grub/grub.conf
配置项:
default=#: 设定默认启动的菜单项;落单项(title)编号从0开始;
timeout=#:指定菜单项等待选项选择的时长;
splashimage=(hd#,#)/PATH/TO/XPM_PIC_FILE:指明菜单背景图片文件路径;
hiddenmenu:隐藏菜单;
password [--md5] STRING: 菜单编辑认证;
title TITLE:定义菜单项“标题”, 可出现多次;
root (hd#,#):grub查找stage2及kernel文件所在设备分区;为grub的“根”;
kernel /PATH/TO/VMLINUZ_FILE [PARAMETERS]:启动的内核
initrd /PATH/TO/INITRAMFS_FILE: 内核匹配的ramfs文件;
password [--md5] STRING: 启动选定的内核或操作系统时进行认证;
密码串的生成:
grub-md5-crypt命令
进入单用户模式:
(1)编辑grub菜单(选定要编辑的title,而后使用e命令);
(2)在选定的kernel后附加1、s、S或者single都可以;要点回车键
(3)在kernel所在行,键入”b“命令;
安装grub:
第一种方法:使用grub-install进行安装;
首先在/mnt/目录下创建一个boot目录。
[root@localhost ~]# mkdir /mnt/boot
然后将设备挂载至/mnt/boot/目录,使用grub-install进行grub的创建。
[root@localhost ~]# grub-install --root-directory=/mnt /dev/sdb
--root-directory指明了grub所在的根目录。由于系统会自动去找boot目录,所以只要写到boot目录的父目录即可。后面跟的为磁盘设备,而非磁盘分区
注意:此种方法并不需要在事先存在grub目录,此命令会自动帮助你创建grub的各个阶段的文件,但是不会创建grub.conf该配置文件。
第二种方法:采用grub命令行的方式进行grub的修复。
第一步:进入grub命令行。
[root@localhost ~]# grub
第二步:在命令行中修复grub。
grub> root (hd0,0) #指明grub所在的根设备 root (hd0,0) Filesystem type is ext2fs, partition type 0x83 grub> setup (hd0,0) #指明要安装的磁盘
注意:此种方法需要事先存在grub目录,而且grub目录下的文件都必须存在,否则,无法安装成功。
第三种方法:使用救援模式进行grub的修复。
前提:有系统光盘,并且已连接。
第一步: 如果grub损坏,则会在重启系统出现如下界面,选择第三项,Rescue installed system。
第二步:选择相对应的语言和键盘类型,使用默认的就可以。
第三步:是否要开启网络功能,如果要联网进行修复,则打开;反之,不用打开。
第四步:可能与第三步之间省略了一部分,点OK即可。在这一步,选择continue。
第五步:与第四步之间也有省略,选OK即可。在此步骤,选择第一项,点OK。
第六步:在出现的bash命令行中如下所示,进行每一步的操作。
chroot /mnt/sysimage/ #切换根目录 grub-install --root-directory=/ /dev/sda #使用grub-install命令进行grub的修复 exit #退出到当前目录 reboot #重启即可