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

相关推荐

  • 马哥教育网络班20期+第2周课程练习

    1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。   答:文件操作     ls 列出目录下的文件名      ls -l /     touch 文件不存在时生成该文件      touch a.txt   &…

    Linux干货 2016-06-23
  • N25期第七周作业

    创建一个10G分区,并格式为ext4文件系统   要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl 挂载至/data/mydata目录,要求挂载时禁止程序自动运行,且不更新文件的访问时间戳 fdisk /dev/sdb # size 10G type 83 mke2fs -t ext4 -b 20…

    Linux干货 2017-02-28
  • 用户和组及批量创建

    用户和组       操作系统都有用户和组,windows,linux等等,用户和组用来做什么呢?       用户,是我们进入系统时的凭证,不是每一个人想进就进的。你想吧,如果操作系统没有用户就能登录进系统,那这就带来了许许多多的安全隐患了。而组则是为了方便管理用户的一个组容器。 &nb…

    系统运维 2016-08-04
  • 作业:0803日

    1:三种权限rwx对文件和目录的不同意义:       对文件: r:能够查看文件内容 w:修改文件内容 x:执行文件,通常文件的执行权限能够发起一个进程       对目录: r: 能够cd进目录,使用ls查看目录内的文件列表 w: 能够…

    Linux干货 2016-08-05
  • N25期–第八周作业

    1、写一个脚本,使用ping命令探测172.16.250.1-172.16.250.254之间的所有主机的在线状态; 在线的主机使用绿色显示; 不在线的主使用红色显示; #!/bin/bash declare -i i=1 hostping(){     if ping -W&n…

    Linux干货 2017-02-27
  • awk中pipe的shell命令调用与close()

        某公司其员工到勤时间表如下, 取名为 arr.dat, 文件中第一栏为员工代号, 第二栏为到达时间. 本示例中将使用该文件为数据示例文件, 1034 7:26 1025 7:27 1101 7:32 1006 7:45 1012 7:46 1028 7:49 1051 7:51 1029 7:57 1042 7…

    Linux干货 2016-11-11