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

相关推荐

  • 如何删除一个目录下的所有文件,但保留一个指定文件。附一些常用命令

    解答: 假设这个目录是/xx/,里面有file1,file2,file3..file10   十个文件 方法如下: find /date -type f ! -name “file10″|xargs rm -f 另外还有其他的方法比如:rsync命令和bush的 extglob功能等。在此不一一列举。 附常用命令: 文件和目…

    2017-07-15
  • 管理用户和组。

    用户的概念        对于计算机的应用,我们大多数都是在储存资料、办公娱乐。我们耗费精力与时间把我们喜欢的一些东西寻找下载在我们的计算机中,这台计算机没有一丁点限制,谁都可以进行访问,那我们所进行存储的一些东西就将变得很不安全,但是我们在给计算机创建一个用户并设置密码之后,其他人没获得…

    Linux干货 2016-10-23
  • 简单易懂的CentOS启动流程

    在使用Linux操作系统时,我们只需要按下电源键,等待一会儿,登录终端就呈现在我们眼前,在这段时间内,操作系统究竟做了哪些事情? 先上一张流程梗概图,你会对启动流程有个大致的了解 启动流程详解 POST加电自检   主板在接通电源后,系统首先由POST程序来对CPU、主板、内存、硬盘子系统、显示子系统串并行接口、键盘、CD-ROm光驱等硬件进行检测 读取MB…

    Linux干货 2016-09-11
  • 几个有意思的小脚本

    ①.用脚本画一个圣诞树 效果 ②.用脚本画一个类似国际象棋的棋盘 半成品效果 再像这样在下面多写几个循环,就可以了,我这个方法太笨,全写完要截图的太多,就放一部分意思下 ③.编写一个脚本,打印出九九乘法表 效果 ④.编写一个脚本,可接收一个 1-7 的数字作为参数,用 if 和 case 两种方法实现根据输入的数字输出对应星期的英文 用if的方法 用case…

    2017-05-11
  • 备份练习

    课外整理 cp 功能: 复制文件或目录说明: cp指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中。若同时指定多个文件或目录,而最后的目的地并非一个已存在的目录,则会出现错误信息参数:     -a 或 –archiv…

    Linux干货 2016-08-08
  • shell练习

    1 、编写脚本/root/bin/systeminfo.sh, 显示当前主机系统信息, 包括主机名,IPv4 地址,操作系统版本,内核版本,CPU 型 号,内存大小,硬盘大小。 运行后结果是: 2 、编写脚本/root/bin/backup.sh ,可实现每日将/etc/ 目录备 份到/root/etcYYYY-mm-dd中 运行结果是: 3 、编写脚本/r…

    Linux干货 2016-08-15