GRUB

GRUBGRandUnified Bootloader):是非常好用的Bootloader

目前主流的grubgrub2

grub的引导过程主要分为

stage1

stage1.5

stage2

 

下面来具体说一下这三个阶段:

stage1:它是直接被写入到MBR中的,这样机器启动检查完硬件后,就将控制权交给了GRUB代码。主要作用就是把0柱面0磁头2扇区的内容(也就是stage2)载入内存。但是stage1是没有识别文件系统的能力的。

stage1.5:它是stage1stage2的中间桥梁。因为stage1.5具有识别文件系统的能力,此后grub才有能力去方为/boot/grub目录下的stage2文件并将其载入到内存中去。

stage2:当stage2被载入内存执行时,它首先会去解析grub的配置文件/boot/grub/grub.conf,然后加载内核镜像到内存中,并将控制权转交给内核。而内核会立即初始化系统中各设备并做相关的配置工作,其中包括CPUI/O、存储设备等。

 

现在来说一下grub的作用:

1、提供菜单、并提供交互式接口 

e: 编辑模式,用于编辑菜单;

c: 命令模式,交互式接口;

 

2加载用户选择的内核或操作系统

允许传递参数给内核

可隐藏此菜单

 

3、为菜单提供了保护机制

为编辑菜单进行认证

为启用内核或操作系统进行认证

 

grub的配置文件为/boot/grub/grub.conf

wKiom1aGZb-T3TfkAABo6uRdv5U023.png

我们来看一下grub.conf中各字段的意义:

default=0: 设定默认启动的菜单项;落单项(title)编号从0开始;

timeout=5:指定菜单项等待选项选择的时长为5秒;

splashimage=(hd0,0)/PATH/TO/XPM_PIC_FILE:指明菜单背景图片文件路径;

hiddenmenu:隐藏菜单;

password [--md5] STRING: 菜单编辑认证; 

title TITLE:定义菜单项“标题”, 可出现多次;

root(hd#,#)grub查找stage2kernel文件所在设备分区;为grub的“根”;

kernel/PATH/TO/VMLINUZ_FILE [PARAMETERS]:启动的内核

initrd/PATH/TO/INITRAMFS_FILE: 内核匹配的ramfs文件;

password[--md5] STRING: 启动选定的内核或操作系统时进行认证;

 

除了让系统自动启动外,我们还可以手动在grub命令行中启动系统:

wKioL1aGZgiAYIpCAAAmd52hOh8456.png

在菜单下按c键进入命令行模式;

wKiom1aGZgPA9O5zAAAg73RbSik923.png

在命令行模式键入以上信息:

grub>root:设置GRUB的根设备

grub>kernel设定本次启动时用到的内核文件路径;额外还可以添加许多内核支持使用的cmdline参数;例如 init=/sbin/bash 即系统启动的第一个程序为bash

initrd:设定为选定的内核提供额外文件的 ramdisk

boot:引导启动选定的内核;

 

作为一个系统管理员可能会把root用户的密码给忘记了,这可是很悲催的事。现在来介绍一下在GRUB引导下进入Linux单用户模式来修改root密码的具体操作:

1、  编辑grub菜单(选定要编辑的内核,而后按e键)

2、  在选定的kernel后附加 1sSsingle中任意一个都可以:

wKioL1aGZkXj6Zi_AABIM_-jQwA792.png

3、在kernel所在行使用b命令即可进入系统,然后直接可修改root密码;

 

在使用系统过程中通常会有一次让你铭记于心的误操作,比如把grub的配置文件grub.conf误删了;或者grub程序损坏,这对系统启动来说是非常头疼的事情:

 

1、  grub.conf文件丢失:

如果没有重启的话可直接通过命令#grub-install--root-directory=ROOT /dev/DISK grub重装一次即可;

如果已经重启那只能进入关盘的紧急救援模式进入根目录,如果有grub.conf文件备份则恢复备份即可修复;

如果没有备份文件也可以自己用vim 写一个和grub.conf文件内容一样的文件。

2、  如果是MBR扇区中的grub程序损坏:

重启进入光盘的紧急救援模式,或启动后按ESC键 键入 linux rescue;

wKioL1aGZqbhzh7wAANWPSMAa3w962.png

wKiom1aGZvqQAq9nAABLsbnjSdU102.png

wKiom1aGZwXxC64tAAAwJBJOe90810.png

这一步如果需要网络的话可以选yes

wKioL1aGZ3mxA2ynAABuezjDfCg515.png

这一步会把根目录挂载到/mnt/sysimage/目录下,选Continue ;

wKiom1aGZ7Cyu7o0AAAWFt54ZqA445.png

到此如图所示会出现一个shell选项,选择并确定则可进入bash;

wKioL1aGaBegTRXeAAAyyKAH6pw220.png

进入bash后我们可以直接切换到系统根目录所在的位置

wKiom1aGaCWxDjH3AAAm33mXsaI201.png

在根目录下可以直接重装grub;安装完成后记得退回到紧急救援模式的bash下执行重启。

这样就可以完全修复。


你可能感兴趣的:(流程,grub,引导)