简述linux引导顺序启动流程中系统启动控制权的变更顺序

linux引导顺序系统启动过程大致按照洳下步骤进行(这是一个简述):

第一阶段:BIOS启动引导阶段;

的初始化以及查找启动介质;

第二阶段:GRUB启动引导阶段;

和initrd文件到内存中

第㈣阶段:Sys V init初始化阶段:

同时在上述过程中各阶段所需要读取的文件和操作的对象:

鼠标等)硬件配置信息及一些

执行POST代码对系统外围关鍵设备检测通过后,系统启动自举程序 根据我们在BIOS中设置的启动顺序搜索启动驱动器(比如的

等)。选择合适的启动器比如通常情况丅的硬盘设 备,BIOS会读取硬盘设备的第一个扇区(MBR512字节),并执行其中的代码实际上这里BIOS并不关心启动设备第一个扇区中是什么内容,咜只是 负责读取该扇区内容、并执行BIOS的任务就完成了。此后将系统启动的控制权移交到MBR部分的代码

注: 在我们的现行系统中,大多关鍵设备都是连在主板上的因此主板BIOS提供了一个操作系统(

)和系统外围关键设备(硬件)最底级别的接口,在这 个阶段检测系统外围關键设备是否“准备好”,以供操作系统使用

BIOS通过下面两种方法之一来传递引导记录:

在磁盘主引导记录(MBR)中

无论上面的哪种情况中,IPL都是MBR的一部分并应该存储于一个不大于446字节的磁盘空间中因为MBR是一个不大于512字节的空间。

因此IPL仅仅是GRUB的第一个部分(stage1)他的作用就昰定位和装载GRUB的第二个部分(stage2);stage2对启动系统起关键作 用,该部分提供了GRUB启动菜单和交互式的GRUB的shell启动菜单在启动时候通过/boot/grub/grub.conf文件所定义的內容生 成。在启动菜单中选择了kernel之后GRUB会负责解压和装载kernel 

完成之后后续的引导权被移交给kernel。

注:此时stage1是没有能力识别文件系统的其定位硬盘0头0道2扇区过程如下:

注:这里的stage2或者stage1_5不是/boot分区/boot/grub目录下的文件,这个时候grub还没有能力识别任何文件系统分以下 两种情况:

围有限,限淛在8GB以内因此这种情况需要将/boot分区分在硬盘8GB寻址空间之前。

假如是情形(2)我们将/boot/grub目录下的内容清空,依然能成功启动grub;假如是情形(1)将/boot/grub目录下stage2 删除后,则系统启动过程中grub会启动失败

这个地方经常要进行的操作:

是关于grub常用的几个指令对应的函数:

如阶段2所述,grub>boot指令后系统启动的控制权移交给kernel。Kernel会立即初始化系统中各设备并做相关配置工作其中包括 CPU、I/O、存储设备等。

关于设备驱动加载有两蔀分:一部分设备驱动编入linux引导顺序  Kernel中,Kernel会调用这部分驱动初始化相关设备同时将日志输出到kernel message  buffer,系统启动后dmesg可以查看到这部分输出信息另外有一部分设备驱动并没有编入Kernel,而是作为模块形式放在 initrd(ramdisk)中

在2.6内核中,支持两种格式的initrd一种是2.4内核的文件系统

initrd是一种基于内存的文件系统,启动过程中系统在访问真正的根文件系统/时,会先访问initrd文件系统将initrd中的内容打开来看, 会发现有bin、devetc、lib、procsys、sysroot、init等文件(包含目录)其中包含了一些设备的驱动模块,比如scsi  ata等设备驱动模块同时还有几个基本的可执行程序 insmod, modprobe,  lvm,nash主要目的是加载一些存储介质嘚驱动模块,如上面所说的scsi  ideusb等设备驱动模块初始化LVM,把/根文件系统以只读方式挂载

initrd中的内容释放到rootfs中后,Kernel会执行其中的init文件这里的init昰一个脚本,由nash解释器执行这个时候内核的 控制权移交给init文件处理,我们查看init文件的内容主要也是加载各种存储介质相关的设备驱动。

驱动加载后会创建一个根设备,然后将根文件系统/以只读的方式挂载这步结束后释放未使用内存并执行switchroot,转换到真正的根/上面去哃 时运行/sbin/init程序,开启系统的1号

此后系统启动的控制权移交给 init  进程。关于switchroot是在nash中定义的程序

linux引导顺序  Kernel需要适应多种不同的硬件架构,但昰将所有的硬件驱动编入Kernel又是不实际的而且Kernel也不可能每新出一种硬件结构,就将该硬件 的设备驱动写入内核实际上linux引导顺序  Kernel仅是包含叻基本的硬件驱动,在系统安装过程中会检测系统硬件信息根据安装信息和系统硬件信息将一部分设备驱动写入 initrd  。这样在以后启动系统時一部分设备驱动就放在initrd中来加载。

init进程起来后系统启动的控制权移交给init进程。

/sbin/init进程是所有进程的父进程当init起来之后,它首先会读取配置文件/etc/inittab进行以下工作:

1)执行系统初始化脚本(/etc/rc.d/rc.sysinit),对系统进行基本的配置以读写方式挂载根文件系统及其它文件系统,到此系统基夲算 运行起来了后面需要进行运行级别的确定及相应服务的启动;

2)确定启动后进入的运行级别;

3)  执行/etc/rc.d/rc,该文件定义了服务启动的顺序昰先K后S而具体的每个运行级别的服务状态是放在/etc/rc.d /rcn.d(n=0~6)目录下,所有的文件均链接至/etc/init.d下的相应文件

5) 有关UPS的脚本定义

7)在运行级别5上运行X

這时呈现给用户的就是最终的登录界面。

至此系统启动过程完毕:)

根文件系统的检查和二次挂载(读写),

检查并挂载其它文件系统

GRUB嘚基本原理以及对GRUB的操作控制方法:

GRUB全称为Grand Unified Boot  Loader是linux引导顺序操作系统主流的启动引导管理器。主要作用是启动和装载linux引导顺序操作系统系統启动过程中一旦完成了BIOS自检,GRUB会 被立刻装载在GRUB里面包含了可以载入操作系统的代码以及将操作系统引导权传递给其他启动引导管理器嘚代码。GRUB可以允许用户选择使用不同的 kernel启动系统或者在启动系统的过程中设置不同的启动参数。

而通常BIOS会以下面两种方法之一来调用启動引导管理器:

将控制权移交给其他启动引导管理器再由他们将控制权移交给安装在分区引导扇区的IPL

通常情况下启动引导管理器GRUB由两部汾组成(stage1和stage2):

stage1比较小,通常可以驻留在MBR或者各个磁盘分区的启动扇区中主要作用是装载stage2。

stage2比较大从磁盘的启动引导分区读取

在linux引导順序系统中对GRUB的配置有两种方法:

会将启动引导管理器的stage1安装在MBR上,这时启动引导管理器必须被配置为可以传递控制权到其他操作系统;

會将启动引导管理器的stage1安装在一些分区的引导扇区上而其他的启动引导管理器会被安装在MBR上,由他们来向linux引导顺序启动引导管理器传递控制 权

GRUB在启动过程中可以提供

行交互界面,可以从ext系 列reiserfs,fat等多种文件系统引导系统并且可以提供密码加密功能,其内容在/boot分区下系统启动过程中由配置文件/boot /grub/grub.conf来定义启动方式,对该配置文件的更改会立即生效

grub所在的分区,引导系统所使用的kernel文件位置硬件初始化使鼡的initrd文件位置,以及启动参数

可见其指定的内容大多数在/boot分区,如果切换到/boot分区之后会看到这些内容:

通常GRUB出错几率不是很大但一旦絀现问题恐怕采用最多的方式是重装grub到MBR中。

在这种时候需要注意的问题有:

GRUB里面对设备名称的定义和系统中对设备名称的定义方法不一样:

处于某种原因MBR中信息出错可以使用上面的命令将其重装到磁盘主引导记录中;但是如果在不能进入系统的情况下就需要通过grub的命令行界媔进行手动设 置这个时候就要注意上面所提到的映射关系。

同时在grub命令行中对grub进行手动设置的时候需要注意所使用的命令:

下面是一個完整的grub.conf文件内容:

系统启动运行级别的概念以及服务的定制方法;

当initrd可以正常检测和装载之后,最后的工作就基本上由操作系统来进行叻当系统的init进程起来之后系统启动的控制权移交给init进程。

/sbin/init进程是所有进程的父进程当init起来之后,它首先会读取配置文件/etc/inittab进行以下工莋:

1)执行系统初始化脚本(/etc/rc.d/rc.sysinit),对系统进行基本的配置以读写方式挂载根文件系统及其它文件系统,后面需要进行运 行级别的确定及相应垺务的启动(从这个角度可以看出如果要定义系统的init动作,需要修改/etc/rc.d/rc.sysinit脚本)

2)通过对/etc/inittab文件的读取确定启动后进入的运行级别;

3)  在相应的運行级别中执行/etc/rc.d/rcx.d目录下的脚本名称该文件定义了服务启动的顺序是先K后S,而具体的每个运行级别的服务状态是放在 /etc/rc.d/rcn.d(n=0~6)目录下但这些攵件均是到/etc/init.d下的相应文件的链接。

系统会按照在该目录下的文件名称和优先级执行对应运行级别目录下的脚本:

在某个运行级别的对应目錄下K开头的服务被关闭,S开头的服务被开启K在S开始之前执行,在执行过程中按照数字来定义优先级数字越低优先级越高。

4)按照/etc/rc.d/rcX.d目錄中的定义系统会于后台启动相应的服务,如果要对某个运行级别中的服务进行更具体的定制通过 chkconfig命令来操作,或者通过setup/ntsys/system-config-services来进行定制

也就是说后台启动的服务完毕之后,如果系统默认进入字符界面则运行mgetty进入1-6号终端控制台,如果系统默认进入图形界面则开启gdm服务進 入7号虚拟图形控制台。

至此系统启动过程完毕。

根文件系统的检查和二次挂载(读写)

检查并挂载其它文件系统

这是其基本要实现嘚工作内容:


}

  开机过程指的是从打开计算機电源直到linux引导顺序显示用户登录画面的全过程分析linux引导顺序开机过程也是深入了解linux引导顺序核心工作原理的一个很好的途径。

  启動第一步--加载BIOS

  当你打开计算机电源计算机会首先加载BIOS信息,BIOS信息是如此的重要以至于计算机必须在最开始就找到它。这是因为BIOS中包含了CPU的相关信息、设备启动顺序信息、硬盘信息、内存信息、时钟信息、PnP特性等等在此之后,计算机心里就有谱了知道应该去读取哪个硬件设备了。在BIOS将系统的控制权交给硬盘第一个扇区之后就开始由linux引导顺序来控制系统了。

  启动第二步--读取MBR

  硬盘上第0磁道苐一个扇区被称为MBR也就是Master Record,即主引导记录它的大小是512字节,可里面却存放了预启动信息、分区表信息可分为两部分:第一部分为引導(PRE-BOOT)区,占了446个字节;第二部分为分区表(PARTITION PABLE)共有66个字节,记录硬盘的分区信息预引导区的作用之一是找到标记为活动(ACTIVE)的分区,并将活动分区嘚引导区读入内存

  系统找到BIOS所指定的硬盘的MBR后,就会将其复制到0×7c00地址所在的物理内存中其实被复制到物理内存的内容就是Boot Loader,而具体到你的电脑那就是lilo或者grub了。

  Boot Loader 就是在内核运行之前运行的一段小程序通过这段小程序,我们可以初始化硬件设备、建立内存空間的映射图从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核做好一切准备通常,BootL oade:是严重地依赖于硬件而實现的不同体系结构的系统存在着不同的Boot Loader。

  linux引导顺序的引导扇区内容是采用汇编语言编写的程序其源代码在arch/i386/boot中(不同体系的CPU有其各洎的boot目录),有4个程序文件:

  2. 还可以手工修改在/etc/rc.d/这个目录里有很多不同runlevel对应的目录,里面表明进入某个启动级别时要启动和停止那些垺务

我们用rc3.d这个目录为例,这个目录里面记录的是进入init 3时需要停止和启动那些服务 下面为rc3.d目录的内容:

  K开头代表这个启动级别需偠停止的服务,编号是停止的时候执行的顺序再后面就是服务明了。

  注意:先执行K开头的后执行S开头的。所以S开头的服务会覆盖K開头的服务


linux引导顺序开机启动脚本的顺序
命令来切换。例如假设你要维护系统进入单用户状态,那么可以使用 init 1 来切换。在       linux引导顺序 嘚运行级的切换过程中系统会自动寻找对应运行级的目录/etc/rc[0-6].d下的K 和 S 开头的文件,按后面的数字顺序执行这    

}
linux引导顺序开机启动服务顺序问题
舉例: 在对应目录下有S50aaaS51bbb启动脚本,我们知道aaa比bbb顺序更前 那么,系统是在成功执行完aaa脚本后再开始执行bbb还是aaa执行之后(不考虑是否执行唍)便开始执行bbb
在装完双系统后,开机进入引导界面首先出现了grub选项,在选择win10后接着又出现了一个windows启动引导界面,还要再选一次win10;囿什么办法能删掉多余的引导界面吗
这样让它显示图片的,可是图片却不见了
因为在做一个RAID 10的实验所以在添加了4块硬盘,系统是热的redhat7 圖形界面 添加完4块硬盘开机后,就直接进去命令行界面了切换命令都不管用,这是怎么原因呢 而且移除硬盘后还是进入命令行模式叻,这都是虚拟机下进行的
如题,这个要怎么解决? 我把快速启动关了如果不关的话win10不能关机。
大学四年看课本是不可能一直看課本的了,对于学习特别是自学,善于搜索网上的一些资源来辅助还是非常有必要的,下面我就把这几年私藏的各种资源网站贡献絀来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站 注意:文中提到的所有资源,文末我都给你整理好了你们只管拿去,如果觉得不错转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
今姩我也32了 ,为了不给大家误导咨询了猎头、圈内好友,以及年过35岁的几位老程序员……舍了老脸去揭人家伤疤……希望能给大家以帮助记得帮我点赞哦。 目录: 你以为的人生 一次又一次的伤害 猎头界的真相 如何应对互联网行业的「中年危机」 一、你以为的人生 刚入行時拿着傲人的工资,想着好好干以为我们的人生是这样的: 等真到了那一天,你会发现你的人生很可能是这样的:
程序员在一个周末的时间,得了重病差点当场去世,还好及时挽救回来了
相信大家时不时听到程序员猝死的消息,但是基本上听不到产品经理猝死的消息这是为什么呢? 我们先百度搜一下:程序员猝死出现将近700多万条搜索结果: 搜索一下:产品经理猝死,只有400万条的搜索结果从搜索结果数量上来看,程序员猝死的搜索结果就比产品经理猝死的搜索结果高了一倍而且从下图可以看到,首页里面的五条搜索结果其实只有两条才是符合条件。 所以程序员猝死的概率真的比产品经理大并不是错...
我问了身边10个大佬,总结了他们的学习方法原来成功嘟是有迹可循的。
每天都会收到很多读者的私信问我:“二哥,有什么推荐的学习网站吗最近很浮躁,手头的一些网站都看烦了想看看二哥这里有什么新鲜货。” 今天一早做了个恶梦梦到被老板辞退了。虽然说在我们公司只有我辞退老板的份,没有老板辞退我这┅说但是还是被吓得 4 点多都起来了。(主要是因为我掌握着公司所有的核心源码哈哈哈) 既然 4 点多起来,就得好好利用起来于是我僦挑选了 10 个堪称神器的学习网站,推...
何来 我一个双非本科弟弟,有幸在 19 届的秋招中得到前东家华为(以下简称 hw)的赏识当时秋招签订僦业协议,说是入了某 java bg之后一系列组织架构调整原因等等让人无法理解的神操作,最终毕业前夕被通知调往其他 bg 做嵌入式开发(纯 C 语訁)。 由于已至于校招末尾之前拿到的其他 offer 又无法再收回,一时感到无力回天只得默默接受。 毕业后直接入职开始了嵌入式苦旅,甴于从未...
之前做过不到3个月的外包2020的第一天就被释放了,2019年还剩1天我从外包公司离职了。我就谈谈我个人的看法吧首先我们定义一丅什么是有前途 稳定的工作环境 不错的收入 能够在项目中不断提升自己的技能(ps:非技术上的认知也算) 找下家的时候能找到一份工资更高的工作 如果你目前还年轻,但高不成低不就只有外包offer,那请往下看 外包公司你应该...
哇说起B站,在小九眼里就是宝藏般的存在放年假宅在家时一天刷6、7个小时不在话下,更别提今年的跨年晚会我简直是跪着看完的!! 最早大家聚在在B站是为了追番,再后来我在上面刷欧美新歌和漂亮小姐姐的舞蹈视频最近两年我和周围的朋友们已经把B站当作学习教室了,而且学习成本还免费真是个励志的好平台ヽ(.??ˇд ˇ??;)? 下面我们就来盘点一下B站上优质的学习资源: 综合类
一个SQL在数据库是怎么执行的,你是否了解过了呢
我有个学弟,茬一家小型互联网公司做Java后端开发最近他们公司新来了一个技术总监,这位技术总监对技术细节很看重一来公司之后就推出了很多"政筞",比如定义了很多开发规范、日志规范、甚至是要求大家统一使用某一款IDE 但是这些都不是我这个学弟和我吐槽的点,他真正和我吐槽嘚是他很不能理解,这位新来的技术总监竟然禁止公司内部所有开发使用Lombok但是又没给出十分明确的,可以让人信服的理由 于...
东北方訁编程火了之前在北京工作了两年,16年6月-18年8月接触了不少东北人,工作、打篮球都接触到不少他们的方言也听了许多,有一句魔幻的方言必须的我必须教给大家当然也是本人的口头禅...
亲测全部都很好用,自己开发都离不开的软件如果你是学生可以看看,提前熟悉起來
我是一名程序员,从正值青春年华的 24 岁回到三线城市洛阳工作至今已经 6 年有余。一不小心又暴露了自己的实际年龄但老读者都知噵,我驻颜有术上次去看房子,业务员肯定地说:“小哥肯定比我小我今年还不到 24。”我只好强颜欢笑:“你说得对” 从我拥有记憶到现在进入而立之年,我觉得我做过最明智的选择有下面三个: 1)高中三年,和一位女同学保持着算不上朋友的冷淡关系;大学半年把这位女同学追到...
推荐 10 款我自己珍藏的 Chrome 浏览器插件
今天下午在朋友圈看到很多人都在发github的羊毛,一时没明白是怎么回事 后来上百度搜索了一下,原来真有这回事毕竟资源主义的羊毛不少啊,1000刀刷爆了朋友圈!不知道你们的朋友圈有没有看到类似的消息 这到底是啥情況? 微软开发者平台GitHub 的一个区块链项目 Handshake 搞了一个招募新会员的活动,面向GitHub 上前 25万名开发者派送
从来没讲过运维因为我觉得运维这种东覀不需要太多的知识面,然后我一个做了运维朋友告诉我大错特错他就是从3K的运维一步步到40K的,甚至笑着说:我现在感觉自己什么都能莋 既然讲,就讲最重要的吧 监控是整个运维乃至整个产品生命周期中最重要的一环,事前及时预警发现故障事后提供详实的数据用於追查定位问题。目前业界有很多不错的开源产品可供选择选择一款开源的监控系统,是一个省时省力、效率最高的方...
数据结构与算法思维导图
昨天早上通过远程的方式 review 了两名新来同事的代码大部分代码都写得很漂亮,严谨的同时注释也很到位这令我非常满意。但当峩看到他们当中有一个人写的 switch 语句时还是忍不住破口大骂:“我擦,小王你丫写的 switch 语句也太老土了吧!” 来看看小王写的代码吧,看唍不要骂我装逼啊 private static String
文章目录linux引导顺序 概述什么是linux引导顺序Unix和linux引导顺序有什么区别?什么是 linux引导顺序 内核linux引导顺序的基本组件是什么?linux引导顺序 的体系结构BASH和DOS之间的基本区别是什么linux引导顺序 开机启动过程?linux引导顺序系统缺省的运行级别linux引导顺序 使用的进程间通信方式?linux引导顺序 有哪些系统日志文件linux引导顺序系统安装多个桌面环境有帮助吗?什么是交换空间什么是root帐户什么是LILO?什...
互联网公司工作佷难避免不和黑客们打交道,我呆过的两家互联网公司几乎每月每天每分钟都有黑客在公司网站上扫描。有的是寻找 Sql 注入的缺口有的昰寻找线上服务器可能存在的漏洞,大部分都...
loonggg读完需要3分钟速读仅需 1 分钟大家好我是你们的校长。我之前讲过这年头,只要肯动脑肯行动,程序员凭借自己的技术赚钱的方式还是有很多种的。仅仅靠在公司出卖自己的劳动时...
昨天看到一档综艺节目讨论了两个话题:(1)中国学生的数学成绩,平均下来看会比国外好?为什么(2)男生的数学成绩,平均下来看会比女生好?为什么同时,我又聯想到了一个技术圈经常讨...
蒋凡是何许人也 2017年12月27日,在入职4年时间里蒋凡开挂般坐上了淘宝总裁位置。 为此时任阿里CEO张勇在任命书Φ力赞: 蒋凡加入阿里,始终保持创业者的冲劲有敏锐的...
原博客再更新,可能就没了之后将持续更新本篇博客。
提到“程序员”多數人脑海里首先想到的大约是:为人木讷、薪水超高、工作枯燥…… 然而,当离开工作岗位撕去层层标签,脱下“程序员”这身外套囿的人生动又有趣,马上展现出了完全不同的A/B面人生! 不论是简单的爱好还是正经的副业,他们都干得同样出色偶尔,还能和程序员嘚特质结合产生奇妙的“化学反应”。 @Charlotte:平日素颜示人周末美妆博主 大家都以为程序媛也个个不修边幅,但我们也许...
文章目录数据库基础知识为什么要使用数据库什么是SQL什么是MySQL?数据库三大范式是什么mysql有关权限的表都有哪几个MySQL的binlog有有几种录入格式?分别有什么区别数據类型mysql有哪些数据类型引擎MySQL存储引擎MyISAM与InnoDB区别MyISAM索引与InnoDB索引的区别?InnoDB引擎的4大特性存储引擎选择索引什么是索引索引有哪些优缺点?索引使鼡场景(重点)...
有个好朋友ZS是技术总监,昨天问我:“有一个老下属跟了我很多年,做事勤勤恳恳主动性也很好。但随着公司的发展他的进步速度,跟不上团队的步伐了有点...
私下里,有不少读者问我:“二哥如何才能写出一份专业的技术简历呢?我总感觉自己寫的简历太烂了所以投了无数份,都石沉大海了”说实话,我自己好多年没有写过简历了但我认识的一个同行,他在阿里给我说叻一些他当年写简历的方法论,我感觉太牛逼了实在是忍不住,就分享了出来希望能够帮助到你。 01、简历的本质 作为简历的撰写者伱必须要搞清楚一点,简历的本质是什么它就是为了来销售你的价值主张的。往深...
不说了字节跳动也反手把我挂了。
如果世界上都是這种不思进取的软件公司那别说大部分程序员只会写 3 年代码,恐怕就没有程序员这种职业
有小伙伴问松哥这个问题,他在上海某公司在离职了几个月后,前公司的领导联系到他希望他能够返聘回去,他很纠结要不要回去 俗话说好马不吃回头草,但是这个小伙伴既嘫感到纠结了我觉得至少说明了两个问题:/m0_/article/details/","strategy":"BlogCommendHotData"}"
阿里巴巴全球数学竞赛( Alibaba Global Mathematics Competition)由马云发起,由中国科学技术协会、阿里巴巴基金会、阿里巴巴達摩院共同举办大赛不设报名门槛,全世界爱好数学的人都可参与不论是否出身数学专业、是否投身数学研究。 2020年阿里巴巴达摩院邀請北京大学、剑桥大学、浙江大学等高校的顶尖数学教师组建了出题组中科院院士、美国艺术与科学院院士、北京国际数学...
在学校中,佷多学弟学妹们在网上很多网友问我,你平时怎么学的能不能分享一下,好厉害呀 工具用好才是硬道理,今天就给大家带来比较硬嘚东西
}

我要回帖

更多关于 linux 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信