linux mbr grub是什么

发布时间 - 2023-03-14 00:00:00    点击率:
linux mbr grub是整个linux系统启动的流程,其中mbr的英文全称是“Master Boot Record”,表示主引导记录,mbr存储于磁盘的头部,大小为512bytes;grub的英文全称是“Grand Unified Bootloader”,表示多系统启动程序。

本教程操作环境:linux5.9.8系统、Dell G3电脑。

linux mbr grub是什么?

详解Linux开机流程:BIOS->MBR->GRUB等等...

概述

Linux是一种自由和开放源代码的类UNIX操作系统。该操作系统的内核由林纳斯·托瓦兹在1991年10月5日首次发布。在加上用户空间的应用程序之后,成为Linux操作系统。Linux是自由软件和开放源代码软件发展中最著名的例子。

下面简单记录一下Linux系统从开机到能使用的整个过程,以作备忘!

LINUX启动流程

先通过一张图来简单了解下整个系统启动的流程,整个过程基本可以分为POST-->BIOS-->MBR(GRUB)-->Kernel-->Init-->Runlevel。下面会详细说明每个过程的作用。

BIOS

BIOS(Basic Input/Output System),基本输入输出系统,该系统存储于主板的ROM芯片上,计算机在开机时,会最先读取该系统,然后会有一个加电自检过程,这个过程其实就是检查CPU和内存,计算机最基本的组成单元(控制器、运算器和存储器),还会检查其他硬件,若没有异常就开始加载BIOS程序到内存当中。详细的BIOS功能,这边就不说了,BIOS主要的一个功能就是存储了磁盘的启动顺序,BIOS会按照启动顺序去查找第一个磁盘头的MBR信息,并加载和执行MBR中的Bootloader程序,若第一个磁盘不存在MBR,则会继续查找第二个磁盘(PS:启动顺序可以在BIOS的界面中进行设置),一旦BootLoader程序被检测并加载内存中,BIOS就将控制权交接给了BootLoader程序。

MBR

MBR(Master Boot Record),主引导记录,MBR存储于磁盘的头部,大小为512bytes,其中,446bytes用于存储BootLoader程序,64bytes用于存储分区表信息,最后2bytes用于MBR的有效性检查。

GRUB

GRUB(Grand Unified Bootloader),多系统启动程序,其执行过程可分为三个步骤:

Stage1:这个其实就是MBR,它的主要工作就是查找并加载第二段Bootloader程序(stage2),但系统在没启动时,MBR根本找不到文件系统,也就找不到stage2所存放的位置,因此,就有了stage1_5

Stage1_5:该步骤就是为了识别文件系统

Stage2:GRUB程序会根据/boot/grub/grub.conf文件查找Kernel的信息,然后开始加载Kernel程序,当Kernel程序被检测并在加载到内存中,GRUB就将控制权交接给了Kernel程序。

PS:实际上这个步骤/boot还没被挂载,GRUB直接识别grub所在磁盘的文件系统,所以实际上应该是/grub/grub.conf文件,该配置文件的信息如下:

grub.conf:

#boot=/dev/sda
default=0 #设定默认启动的title的编号,从0开始
timeout=5 #等待用户选择的超时时间
splashimage=(hd0,0)/boot/grub/splash.xpm.gz #GRUB的背景图片
hiddenmenu #隐藏菜单
title CentOS (2.6.18-194.el5PAE) #内核标题
root (hd0,0) #内核文件所在的设备
kernel /vmlinuz-2.6.18-194.el5PAE ro root=LABEL=/ #内核文件路径以及传递给内核的参数
initrd /initrd-2.6.18-194.el5PAE.img #ramdisk文件路径

Kernel

Kernel,内核,Kernel是Linux系统最主要的程序,实际上,Kernel的文件很小,只保留了最基本的模块,并以压缩的文件形式存储在硬盘中,当GRUB将Kernel读进内存,内存开始解压缩内核文件。讲内核启动,应该先讲下initrd这个文件,

initrd(Initial RAM Disk),它在stage2这个步骤就被拷贝到了内存中,这个文件是在安装系统时产生的,是一个临时的根文件系统(rootfs)。因为Kernel为了精简,只保留了最基本的模块,因此,Kernel上并没有各种硬件的驱动程序,也就无法识rootfs所在的设备,故产生了initrd这个文件,该文件装载了必要的驱动模块,当Kernel启动时,可以从initrd文件中装载驱动模块,直到挂载真正的rootfs,然后将initrd从内存中移除。

Kernel会以只读方式挂载根文件系统,当根文件系统被挂载后,开始装载第一个进程(用户空间的进程),执行/sbin/init,之后就将控制权交接给了init程序。

Init

init,初始化,顾名思义,该程序就是进行OS初始化操作,实际上是根据/etc/inittab(定义了系统默认运行级别)设定的动作进行脚本的执行,第一个被执行的脚本为/etc/rc.d/rc.sysinit,这个是真正的OS初始化脚本,简单讲下这个脚本的任务(可以去看看实际脚本,看看都做了什么):

  • 激活udev和selinux;

  • 根据/etc/sysctl.conf文件,来设定内核参数;

  • 设定系统时钟;

  • 装载硬盘映射;

  • 启用交换分区;

  • 设置主机名;

  • 根文件系统检测,并以读写方式重新挂载根文件系统;

  • 激活RAID和LVM设备;

  • 启用磁盘配额;

  • 根据/etc/fstab,检查并挂载其他文件系统;

  • 清理过期的锁和PID文件

执行完后,根据配置的启动级别,执行对应目录底下的脚本,最后执行/etc/rc.d/rc.local这个脚本,至此,系统启动完成。

Runlevel

runlevel,运行级别,不同的级别会启动的服务不一样,init会根据定义的级别去执行相应目录下的脚本,Linux的启动级别分为以下几种

0:关机模式

1:单一用户模式(直接以管理员身份进入)

2:多用户模式(无网络)

3:多用户模式(命令行)

4:保留

5:多用户模式(图形界面)

6:重启

在不同的运行级别下,/etc/rc.d/rc这个脚本会分别执行不同目录下的脚本

Run level 0 – /etc/rc.d/rc0.d/
Run level 1 – /etc/rc.d/rc1.d/
Run level 2 – /etc/rc.d/rc2.d/
Run level 3 – /etc/rc.d/rc3.d/
Run level 4 – /etc/rc.d/rc4.d/
Run level 5 – /etc/rc.d/rc5.d/
Run level 6 – /etc/rc.d/rc6.d/

这些目录下的脚本只有K*和S*开头的文件,K开头的文件为开机需要执行关闭的服务,S开头的文件为开机需要执行开启的服务。

相关推荐:《Linux视频教程》


# linux  # 文件系统  # 第一个  # 加载  # 系统启动  # 给了  # 就将  # 多用户  # 也就  # 找不到  # 英文 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel怎么上传文件_Laravel图片上传及存储配置  手机怎么制作网站教程步骤,手机怎么做自己的网页链接?  Laravel如何使用模型观察者?(Observer代码示例)  企业在线网站设计制作流程,想建设一个属于自己的企业网站,该如何去做?  网站建设保证美观性,需要考虑的几点问题!  Laravel如何使用.env文件管理环境变量?(最佳实践)  Laravel如何使用Passport实现OAuth2?(完整配置步骤)  Laravel如何实现API速率限制?(Rate Limiting教程)  laravel怎么实现图片的压缩和裁剪_laravel图片压缩与裁剪方法  Laravel怎么实现支付功能_Laravel集成支付宝微信支付  怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?  制作电商网页,电商供应链怎么做?  Laravel DB事务怎么使用_Laravel数据库事务回滚操作  Laravel如何实现多表关联模型定义_Laravel多对多关系及中间表数据存取【方法】  浅谈javascript alert和confirm的美化  Laravel Asset编译怎么配置_Laravel Vite前端构建工具使用  js代码实现下拉菜单【推荐】  Laravel怎么使用Collection集合方法_Laravel数组操作高级函数pluck与map【手册】  西安专业网站制作公司有哪些,陕西省建行官方网站?  如何在企业微信快速生成手机电脑官网?  Android中AutoCompleteTextView自动提示  Laravel怎么生成URL_Laravel路由命名与URL生成函数详解  html5源代码发行怎么设置权限_访问权限控制方法与实践【指南】  公司网站制作价格怎么算,公司办个官网需要多少钱?  如何快速使用云服务器搭建个人网站?  如何用IIS7快速搭建并优化网站站点?  如何快速搭建自助建站会员专属系统?  新三国志曹操传主线渭水交兵攻略  如何在IIS中新建站点并解决端口绑定冲突?  国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?  Edge浏览器如何截图和滚动截图_微软Edge网页捕获功能使用教程【技巧】  Laravel如何实现多语言支持_Laravel本地化与国际化(i18n)配置教程  ,在苏州找工作,上哪个网站比较好?  Laravel全局作用域是什么_Laravel Eloquent Global Scopes应用指南  公司网站制作需要多少钱,找人做公司网站需要多少钱?  网站建设整体流程解析,建站其实很容易!  用v-html解决Vue.js渲染中html标签不被解析的问题  JavaScript如何实现继承_有哪些常用方法  软银砸40亿美元收购DigitalBridge 强化AI资料中心布局  Laravel怎么实现观察者模式Observer_Laravel模型事件监听与解耦开发【指南】  最好的网站制作公司,网购哪个网站口碑最好,推荐几个?谢谢?  深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?  悟空识字怎么关闭自动续费_悟空识字取消会员自动扣费步骤  长沙做网站要多少钱,长沙国安网络怎么样?  猪八戒网站制作视频,开发一个猪八戒网站,大约需要多少?或者自己请程序员,需要什么程序员,多少程序员能完成?  如何破解联通资金短缺导致的基站建设难题?  Win11关机界面怎么改_Win11自定义关机画面设置【工具】  如何在阿里云购买域名并搭建网站?  谷歌Google入口永久地址_Google搜索引擎官网首页永久入口  微信推文制作网站有哪些,怎么做微信推文,急?