Linux启动之GRUB详解

GRUB

在BIOS读取先关信息之后,接下来就是去第一个可以启动的设备当中的MBR中读取Boot loader信息,bootloader具有菜单功能、直接加载内核信息,以及相关控制权限转交功能。所以说系统的启动必须有bootloader,然后才能去加载内核
grub:GRand Unified Bootloader
    grub 0.x:grub legacy
    grub 1.x:grub2

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)为菜单提供了保护机制
                为编辑菜单进行认证
                为启动内核或操作系统进行认证

    grub最重要的一部当属识别磁盘信息,grub对硬盘的识别是通过以下方式:
    (hd0,0)
        1.硬盘代号以小括号()括起来
        2.硬盘以hd表示,后面会接一组数字,数字之间以逗号隔开
        3.是以搜寻到的顺序来作为磁盘的编号,而非根据磁盘的排揎编号
        4.第一个搜索到的磁盘编号为0,第二个为1,以此类推
        5.每块磁盘上的第一个分区编号为0,第二个分区为1,以此类推
        因此(hd0,0),就表示第一块磁盘上的第一个分区

配置文件格式

全局配置配置项:
    default=#:设定默认启动的菜单项,0表示定义的第一个title系统,1表示第二个title系统,以此类推
    timeout=#:表示可供选择的等待时间,如果超过5秒,则使用默认的启动条目default定义的
    splashimage=(hd0,0)/grub/splash.xpm.gz
        定义启动时的背景图片
    hiddenmenu:隐藏菜单,默认不显示菜单

~Y`2Q@_SAH%U~Y($7WLW$FF.png

定义各个操作系统配置

title:定义各个操作系统的名称
root (hd#,#):表示内核文件存放的位置,这里指定的是分区位置,而非根目录
kernel /PATH/TO/VMLINUZ_FILE [PARAMETERS]:内核的名称以及一些启动时的核心参数。由于启动过程中需要挂载根目录,因此就需要指定根目录所在的分区
    rhgb:图形显示
    quiet:静默模式加载内核
    selinux:开启或关闭selinux
    single:单用户模式
    ...
initrd /PATH/TO/INITRAMFS_FILE:ramfs文件路径

YBBIA)[1I0)EA%A[@85X_C0.png

GRUB命令行

help:获取帮助列表
help KEYWORD:详细帮助信息
find(hd#,#)/PATH/TO/SOMEFILE:查找文件
root (hd#,#):指定根分区
kernel /PATH/TO/KERNEL_FILE:设定本次启动时用到的内核文件;额外还可以添加许多内核支持使用的cmdline参数
    例如:init=/path/to/init, selinux=0
initrd /PATH/TO/INITRAMFS_FILE: 设定为选定的内核提供额外文件的ramdisk
boot:引导启动选定的内核

手动在grub命令行接口启动系统:

grub> root (hd0,0)
grub> kernel /vmlinuz-VERSION-release ro root=/dev/DEVICE
grub> initrd /initramfs-VERSION-release.img
grub> boot

@HT7V5L2PXN[4Z5S~_87YP0.png

进入单用户模式

(1)编辑grub菜单(选定要编辑的title,而后使用e命令)

NXS2@%_E]LK2HJ1LPCA6%AF.png

(2)在选定的kernel后附加:1,s,S或single都可以

]W]ZN@FY{RPG0T`{}W3Z26J.png

(3)在kernel所在行键入"b"命令即可进入单用户模式

3DE]JRH~MI)E%%`N)1AR[$R.png

加密机制

GRUB也有自己的保护机制,只有通过认证才能修改grub.conf信息。可以通过以下方式来对grub.conf进行保护:
    1.在第一个title之上添加password --md5 ************ 主要用于保护编辑功能
    2.在某个title内添加password --md5 *********** 主要用户保护内核
生成密码的命令:grub-md5-crypt

编辑功能认证

1.提示按p键输入密码才可编辑菜单

1_T5MTXGE}@LUZTP$9ZG((4.png

2.输入密码即可编辑菜单

KCC%S8N7U}X44]DGP{R]9~F.png

内核启动认证

1.当我们选择要启动内核时,提示输入密码

V95IQ}4]]V2O1KO0~IU0BFH.png

2.输入密码,即可正常启动系统

_JY%[%MMNO5NHWYZDI~7TLR.png

修复GRUB

如果grub出现了问题导致我们系统无法系统,可进入救援模式进行修复
修复工具:
    方法一:grub-install /dev/DISK
            grub-install --root-directory=ROOT /dev/DISK
    方法二:grub
                grub> root (hd0,0)
                grub> setup (hd0)
                
    如果grub出现了问题,此时我们系统没有重启,则可直接使用修复工具修复

$B9Z4~]D3KO$HFHVNCD09UY.png

XZ%)~9OTOK3SC`@}$~U_WDN.png

{C}7Z1Q3)]7SXDMZB}}I5S2.png

HX{T0G(7{7(BF$6D}Z}0Q7K.png

$O`K06PB2ZU_MQP6@DT57[E.png

1{EM~[]2]I3R$)N1YJ]JR0S.png

WH1MTQN3{FNTK[TY3UGR(ZF.png

LR~AB}G5Z4SLXY]E%ZVLSUP.png

8(YZV9S{]GV)IV_RQM0{B[C.png

0AX9]TL$3WM$DXYL6U[BUQ3.png

S0JK)EM~~DF{9G9}_EX6T~W.png

原创文章,作者:zhai796898,如若转载,请注明出处:http://www.178linux.com/46674

(0)
zhai796898zhai796898
上一篇 2016-09-15
下一篇 2016-09-15

相关推荐

  • keepalived高可用双主lvs-dr模型集群

    环境 centos6.8 在keepalived服务器上安装keepalived RS服务器上安装nginx ,安装过程省略 为了便于实验,四台机器将关闭iptables和selinux 配置如下: K1: #修改keepalived配置文件 vim /etc/keepalived/keepalived.conf ! Configuration File f…

    2017-05-13
  • bash基础 if elif 多条件判断 for循环

    bash基础 if elif 多条件判断 for循环

    Linux干货 2017-10-31
  • 一起学WINS系列(三)界面、概览

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://jeffyyko.blog.51cto.com/28563/159542 上节我们讨论了有关WINS服务器的安装,本节将开始讨论WINS配置等内容。 一般情况下,我们可以在控制面板的管理工具中找到WINS,或者在【运行】内…

    Linux干货 2015-03-25
  • 简述一些基础指令

    tree命令 tree -L 1 -d /用来查看目录结构 -L 指定层数 -d 只查看目录 /boot 跟内核有关的文件 grub 内核和BootLoader ├── bin 存放用户使用的基本命令(可执行程序,二进制文件) 不能单独分区的 ├── boot 跟内核有关的文件 grub 内核和BootLoader&n…

    Linux干货 2017-04-03
  • vsphere虚拟机下的Linux在线移除硬盘后的报错处理(基于LVM)

    1)故障描述( vmware虚拟机,在线移除一块被设置为pv格式的硬盘后,提示unknown device错误): 说明:/dev/sdb1 /dev/sdc1 /dev/sdd1是组成/dev/vg_test/lvm_test的PV,这里我们模拟/dev/sdd1硬盘被直接断电了 [root@docker mnt]# pvdisplay…

    Linux干货 2016-07-29
  • 基于虚拟用户控制的ftp服务

    FTP作为最常见的文件共享服务,可提供文件的上传,下载等服务;其用户可分为三类: 匿名用户:即不需要用户账号与密码即可登录FTP服务器,此时登录用户将会被映射为系统上的ftp用户。 系统用户:即用FTP服务器上的用户账号与密码登录FTP服务器。此种方法虽然在一定程度上对登录做出了限制,但由于系统账号的相关权限,则增大了FTP服务器的系统风险; 虚拟用户:用户…

    Linux干货 2016-10-23