Linux基础--系统启动中grub功能

本文主要讲解grub原理和系统启动过程中grub的作用过程.

grub是多数Linux发行版中使用的boot loader系统引导程序, 其主要作用是计算机从boot sequence中选取指定设备之后, 由grub找到系统内核kernel文件并加载内核文件的作用.

grub执行过程

grub作用过程中主要分为三个阶段的作用, 如下图所示:

stage1: 启动grub程序, 位于MBR的前446Byte中;

stage1.5: 识别内核所在分区的文件系统类型, 位于内核文件所在分区的boot sector中;

stage2: 根据grub的配置文件grub.conf中的启动菜单, 读取菜单中指定的内核vmlinuz文件及读取参数和initramfs文件, 位于内核vmlinuz文件所在的boot目录中.

其中内核文件命名方式为: vmlinuz-$(uname -r);

initrd文件命名方式为: initrd-$(uname -r).img(RHEL5)或initramfs-$(uname -r).img(RHEL6)

grub配置文件grub.conf的字段说明

default=0    指定默认启动的title菜单
timeout=5    指定等待时间
password --md5 $1$FRa2P$uZGEloRiLOH8sBMqhz5zP/    指定通过命令行管理grub配置文件的密码
splashimage=(hd0,0)/grub/splash.xpm.gz    指定grub背景图片路径
hiddenmenu    指定隐藏菜单选项
title CentOS 6 (2.6.32-504.el6.x86_64)    title字段指定菜单名称
	root (hd0,0)    root字段指定内核文件vmlinuz所在分区作为"grub根目录"
	kernel /vmlinuz-2.6.32-504.el6.x86_64 ro root=/dev/mapper/vg0-root
	kernel字段指定内核文件vmlinuz在"grub根目录"的绝对路径, 并指定以只读方式加载真正根文件系统的设备文件路径
	initrd /initramfs-2.6.32-504.el6.x86_64.img    initrd字段指定initramfs文件在"grub根目录"的绝对路径
	password --md5 $1$FRa2P$uZGEloRiLOH8sBMqhz5zP/    指定启用系统时的密码

注:

1 对grub而言,所有类型硬盘一律hd,格式为(hd#,N) : #表示第几个磁盘 , 最后的N表示对应磁盘的分区;可以通过查看 /boot/grub/device.map 来查看 grub 识别的对应磁盘编号

2 根据boot目录是否单独分区, "grub的根目录"会发生改变, kernel文件和initrd文件以"grub根目录"参考点的绝对路径也会改变:

boot目录单独分区/dev/sda1, /根目录为/dev/sda2 ==> "grub根目录"为/dev/sda1 ==> kernel文件以"grub根目录"参考点的绝对路径为/vmlinz-$(uname -r), initrd文件同理;

boot目录没有单独分区, 而是作为/根目录的一个子目录且/根目录为/dev/sda1 ==> "grub根目录"为/dev/sda1 ==> kernel文件以"grub根目录"参考点的绝对路径为/boot/vmlinz-$(uname -r), initrd文件同理.

grub主要作用

1 用户忘记登录密码

方法: 系统启动进入grub菜单画面后, 按e键进入菜单编辑模式, 选择第二行kernel菜单项后按e键对其进行编辑, 在其后加上1或s或S后, Esc退出后, 再按b键就会以单用户模式启动内核, 直接可以修改用户密码.

密码修改完成后可以通过init命令切换至原级别就可以正常使用.

2. grub.conf配置文件丢失或损坏

方法: 系统默认会进入grub的命令行模式 grub>

先通过 find (hd#,0)/+TAB键, 可以通过 find 和 Tab将命令查找到vmlinuz文件所在磁盘分区

grub> root (hd#,0)通过 root 指定 vmlinuz 所在磁盘分区
grub> kernel /vmlinuz-2.6.18-208.e15 ro root=/dev/mapper/vg0-root 通过 kernel 指定 kernel 文件, 并以只读方式挂载根文件系统
grub> initrd /initrd-2.6.18-208.e15.img通过 initrd 指定 initramfs 文件
grub> boot启动

正常开机启动后添加 GRUB 的配置文件

3. grub程序损坏

方法: grub损坏后无法通过grub引导系统内核, 系统提示为boot

在光驱中插入系统镜像光盘, 并设定启动顺序为光盘启动,

通过光盘启动后选择通过救援模式修复系统

在救援模式种类中选择光盘

选择救援模式后系统会提示尽力恢复原系统, 并将原系统挂载之/mnt/sysimage目录中

查找到原系统后会提示执行根切换 chroot /mnt/sysimage, 来将根切换至原有系统根目录下

进入救援模式的shell环境中, 将根切换至原有系统根目录下, 使用grub-install命令来对原有系统的对应磁盘的MBR中安装grub程序.

安装完成后, 退出原有根系统后, 在救援模式环境下重启系统即可还原为原系统,

如果此时配置文件没有损坏, 不需要修改配置文件; 如果配置文件损坏, 会在开机后进入grub命令行接口, 再手动指定grub.conf配置文件中的内容即可正常启动

# 重启系统后要将启动设备的光盘启动取消

本人水平有限, 如有理解不当的地方, 请大家给予指正, 非常感谢!

时间: 2024-07-29 15:17:14

Linux基础--系统启动中grub功能的相关文章

Linux基础--系统启动流程

基本上Linux的启动过程如图所示,不同版本之间可能有一些细微的差别,后面再做介绍,但总体上就是这样一个流程. 从机器上电开始,首先直接将ROM芯片中的BIOS程序加载到内存中运行.BIOS程序首先进行POST(Power On Self Test),即硬件自检,自检通过则按照BIOS中Boot Sequence中定义启动顺序去找相应设备上的0号扇区,尝试寻找其中的BootLoader程序. 如果找到了BootLoader程序则将其加载到内存中,将系统控制权交给BootLoader.而BootL

linux发行版本基础目录命名及功能

linux发行版本基础目录命名及功能 目录配置标准 FHS 因为目前linux distribution的种类繁多,而且负责开放的团队及公司也很多. 为了让用户可以了解到已安装软件通常的存放位置,所以为了规范linux的目录结构就推出了FHS(filesystem hierarchy standard)文件系统层次化标准,同时保证了在遵循FHS的同时,各个linux发行版的开发者可以根据自己的意图开发出想要的独特风格. FHS定义出根文件下存放的目录及内容 /bin:所有用户可用的基本命令程序文

Linux操作系统启动管理器GRUB

转载:http://58vpn.blog.sohu.com/309434214.html [GRUB是什么]GNU GRUB(简称"GRUB")是一个来自GNU项目的启动引导程序.GRUB是多启动规范的实现,它允许用户可以在计算机内同时拥有多个操作系统,并在计算机启动时选择希望运行的操作系统.GRUB可用于选择操作系统分区上的不同内核,也可用于向这些内核传递启动参数.GRUB是在计算机启动后运行的第一个程序,他是用来负责加载.传输控制到操作系统的内核,一旦把内核挂载,系统引导管理器的任

Linux基础 linux系统中的批量删除文件与空文件删除的命令介绍

Linux基础教程  linux系统中的批量删除文件与空文件删除的命令介绍 Linux资料下面删除文件或者目录命令rm(remove): Linux培训功能说明:删除文件或目录. 语 法:rm [-dfirv][--help][--version][文件或目录...] 补充说明:执行rm指令可删除文件或目录,如欲删除目录必须加上参数"-r",否则预设仅会删除文件. 参 数: -d或--directory 直接把欲删除的目录的硬连接数据删成0,删除该目录. -f或--force 强制删除

Linux基础之如何使用帮助功能

不管是linux的初学者还是linux高手都不可避免的要查看帮助,以使得命令以不同的方式工作.linux中有成千上百条命令,每条命令又具有各种不同的参数,且由于开发者的不同每一条命令的参数又不一定代表同一个意思,靠死记硬背是不可行的,所以灵活使用linux的帮助系统可以大大提高我们的工作效率. 首先linux命令有内部命令和外部命令之分.内部命令实际上是shell程序中的一部分,其中包含的是一些比较简练的linux系统命令,这些命令由shell程序识别并在shell程序内部完成运行,通常在lin

Linux中LVM功能使用方法

1.介绍        LVM全称Logical Volume Manager(逻辑卷管理器),是将存储空间虚拟化成虚拟设备来进行管理的一种机制.LVM本身通过调用Linux内核中的"Device-mapper"功能来实现这种机制.         LVM组成部分: Physical volume(pv)物理卷:是LVM底层的设备,可以是硬盘分区,硬盘. Volume group (vg)卷组:是组织pv的管理单元. Logical volume(lv)逻辑卷:虚拟分区,既可以存储数据

virtualbox linux客户机中安装增强功能包缺少kernel头文件问题解决

linux客户机中安装增强功能包总会提示缺少kernel头文件 根据发行版的不同,用命令行软件包管理命令安装dkms build-essential linux-headers-$(uname -r),我的客户机是openSUSE,所以命令如下: zypper install dkms build-essential linux-headers-$(uname -r) 然后,再用root身份安装光盘中的vboxaddition.run,安装完成后,重启客户机即可.

【Linux基础】作业一

1.描述计算机的组成及其功能. >>>计算机由硬件,操作系统,软件三大部分组成. 一.其中硬件: 1.核心CPU(大脑处理中心) 2.必备电源(心脏动力来源),硬盘(仓库),内存(中转站),主板(协调中心),显示器(人机交互界面) 3.优化部件:网卡,声卡,显卡,风扇,光驱 4.输入输出设备:显示器,鼠标,键盘,麦克风音箱,闪存,蓝牙等等自添加. 二.其中系统: 操作系统是管理者,亦服务者,它还是一个执行者 1.Unix:AIX,BSD,FreeBSD,openBSD,HP-UX,Sol

Linux基础知识--Linux的文件系统和bash的基础特性

Linux基础知识--linux的文件系统和bash的基础特性 一.Linux文件系统: Linux文件系统中的文件是数据的集合,文件系统不仅包含着文件中的数据而且还有文件系统的结构,所有Linux 用户和程序看到的文件.目录.软连接及文件保护信息等都存储在其中 linux文件系统遵循FHS(Filesystem Hierarchy Standard,文件系统目录标准),多数Linux版本采用这种文件组织形式.FHS采用了树行组织文件. FHS定义了两层规范,第一层是,/目录下面的各个目录应该要