1-描述linux开机到登陆界面的启动过程详解课件

简要描述linux系统从开机到登陆界面的启动过程(面试用)简述:1.开机BIOS自检2.MBR引导3.grub引导菜单4.加载内核kernel5.启动init进程6.读取inittab文件,执行rc.sysinit,rc等脚本7.启动mingetty,进入系统登陆界面来个简图:

超详细描述linux系统从开机到登陆界面的启动过程对于linux系统的初学者来说,理解并掌握linux系统启动流程能够使你够深入的理解linux系统,还可以通过系统的启动过程来分析问题解决问题。Linux系统的启动流程 关于linux系统的启动流程可以分为以下步骤:POST(加电自检)–>加载BIOS(Basic Input/Outpu System)–>确定启动设备(Boot sequence)、加载Boot Loader–>加载内核(kernel)初始化initrd–>运行/sbin/init初始化系统–>打印用户登录提示符

下面让我们逐步剖析说明系统启动过程: 1、POST开机自检 linux开机加电后,系统开始开机自检,该过程主要对计算机各种硬件???备进行检测,如CPU、内存、主板、硬盘、CMOS芯片等,如果出现致命故障则停机,并且由于初始化过程还没完成,所以不会出现任何提示信号;如果出现一般故障则会发出声音等提示信号,等待故障清除;若未出现故障,加电自检完成。 2、开机自检完成,查找可启动设备,加载主引导目录(MBR) 开机自检完成后,CPU首先读取位于CMOS中的BIOS程序,按照BIOS中设定的启动次序(Boot Sequence)逐一查找可启动设备,找到可启动的设备后,去该设备的第一个扇区 中读取MBR,那么MBR是什么哪?它又有什么作用哪? MBR存在于可启动磁盘的0磁道0扇区,占用512字节,它主要用来告诉计算机从选定的可启动设备的哪个分区来加载引导加载程序(Boot loader),MBR中存在如下内容: (1) Boot Loader 占用446字节,存储有操作系统(OS)相关信息,如操作系统名称,操作系统内核位置等,它的主要功能是加载内核到内存中运行。 (2) Partition Table 分区表,占用64字节,每个主分区占用16字节(这就是为啥一块硬盘只能有4个主分区啦^_^) (3)分区表有效性标记占用2字节 CPU将MBR读取至内存,运行GRUB(Boot Loader常用的有GRUB和LILO两种,现在常用的是GRUB),GRUB会把内核加载到内存去执行。

由上图可以看出,内核文件存在于/boot目录下,但是在GRUB加载内核时,连/还没有被加载,它是怎么在磁盘上找到内核的哪?我们来查看一下GRUB的配置文件可以找到答案。

在/boot/grub/grub.conf中可以看到 root (hd0,0)这一行实际上是指定了/目录的所在的位置,但这个根并不是真正的根,而是/所在的位置,可以理解成/boot是处在(hd0,0)/boot,而这里的(hd0,0)指的是第一个磁盘的第一个分区,GRUB不是通过文件系统来访问内核的,以因为此时内核还没有启动,不存在文件系统,而是直接访问 第一个磁盘的第一个分区(通过MBR中的分区表来识别分区),而识别MBR中的分区的文件系统,则是由GRUB通过加载自身携带的系统文件来实现的,这些文件在/boot/grub目录中

大家可以看到,红色标出的地方就是GRUB可以识别的文件系统的类型了。事实上,总结一下,grub启动过程可以分为两个步骤:第1阶段 BIOS加载MBR中的GRUB(GRUB第一阶段的文件),而GRUB只有446字节,无法实现太多功能,所以利用该阶段的文件去加载1.5阶段的文件(/boot/grub/下的文件)第1.5阶段 用来加载识别文件系统的文件,识别完系统后才可以找到/boot目录。第2阶段 寻找内核并加载到内存中。下图是GRUB启动过程中所用的的文件

3、加载内核,初始化initrd GRUB把内核加载到内存后展开并运行,此时GRUB的任务已经完成,接下来内核将会接管并完成 探测硬件–>加载驱动–>挂载根文件系统–>切换至根文件系统(rootfs)–>运行/sbin/init完成系统初始化。但是,问题来了,要访问根文件系统必须要加载根文件系统所在的设备,而这时根文件系统又没有挂载,要挂载根文件系统有需要根文件系统的驱动程序,这是一个典型的先有鸡先有蛋的问题啊!为解决这个问题,GRUB在加载内核同时,也把initrd加载到内存中并运行,那么initr又起到了什么作用哪?

initrd展开后的文件

linux中/下的文件

我们可以看到,其实initrd文件其实是一个虚拟

linux开机到登陆的流程图,1-描述linux开机到登陆界面的启动过程.docx相关推荐

  1. linux系统从开机到登陆界面的启动过程

    简述: 1.开机BIOS自检 2.MBR引导 3.grub引导菜单 4.加载内核kernel 5.启动init进程 6.读取inittab文件,执行rc.sysinit,rc等脚本 7.启动minge ...

  2. 描述linux系统从开机到登陆界面的启动过程

    简述: 1.开机BIOS自检 2.MBR引导 3.grub引导菜单 4.加载内核kernel 5.启动init进程 6.读取inittab文件,执行rc.sysinit,rc等脚本 7.启动minge ...

  3. rhel系统启动过程_详解linux系统的启动过程及系统初始化

    一.linux系统进程启动流程图: 二.简单概括描述linux系统从开机到登陆界面的启动过程 1.开机BIOS自检 2.MBR引导 3.grub引导菜单 4.加载内核 5.启动init进程 6.读取i ...

  4. Linux内存耗尽宕机6,转载:Linux服务器Cache占用过多内存导致系统内存不足最终java应用程序崩溃解决方案...

    原文链接: https://blog.csdn.net/u014740338/article/details/66975550 问题描述 Linux内存使用量超过阈值,使得Java应用程序无可用内存, ...

  5. linux开机到登陆的流程图,Linux开机自动登录root,并启动应用程序

    只需要修改etc目录下的inittab文件和init.d路径下的rcS文件. 在inittab文件中选择执行以下两句 #采用界面登陆 ::askfirst:/sbin/getty 115200 con ...

  6. linux系统配置之开机启动过程(centos)

    1.开机流程如下: 2.BIOS BIOS是英文"Basic Input Output System"的缩略词,直译过来后中文名称就是"基本输入输出系统".其实 ...

  7. Linux系统开机启动过程

    Linux系统从开机开始到用户登录界面,需要启动一系列的进程,分为几个步骤.具体启动的过程如下 1. 载入内核 即把Linux内核载入到内存,Linux内核保存在/boot目录,/boot目录的内容大 ...

  8. 自动开机和自动关机设定方法(包括linux和windows)

    注:与系统无关,开机 Del 进入BOIS. (一) linux 机器 1.关机 : 编辑 /etc/crontab添加一条并且保证crontab服务的运行即可  f1 f2 f3 f4 f5 roo ...

  9. Linux 开机引导和启动过程详解

    你是否曾经对操作系统为何能够执行应用程序而感到疑惑?那么本文将为你揭开操作系统引导与启动的面纱. 理解操作系统开机引导和启动过程对于配置操作系统和解决相关启动问题是至关重要的.该文章陈述了 GRUB2 ...

最新文章

  1. 如何利用zendstudio新建 或导入php项目
  2. c++新特性11 (6) =default
  3. 高性能有限元计算服务器,结构有限元计算服务器配置
  4. web mysql数据库的持久连接_JavaWeb连接数据库MySQL的操作技巧
  5. python爬虫程序框架的理论是什么_Python网络爬虫(scrapy框架简介和基础应用)
  6. 【SpringCloud】Nacos 自定义登录用户名和密码
  7. 用Google XML Sitemaps为你的网站创建Sitemap
  8. 【软件测试】美团一面、阿里一面复盘总结
  9. 运动耳机品牌排名榜,2022年最值得入手的运动耳机推荐
  10. mysql 嵌套查询优化
  11. visual studio 各版本 激活码
  12. VUE进行前后端交互
  13. Minor GC和Full GC有什么区别?
  14. video.js插件播放hls、rtmp
  15. ACA世界大赛_让青年设计发声, 第二期!
  16. Ubuntu安装搜狗输入法无论如何就是找不到的解决方法///Ubuntu怎么安装搜狗输入法///Ubuntu怎么输入中文///Ubuntu搜狗输入法怎么修改皮肤
  17. 板绘:一支没有墨水的笔的故事
  18. Python中的自定义模块
  19. 计算机可以配置不同的显示系统,为什么Win7系统显卡显示型号和电脑配置型号不一样...
  20. 百度定位+精确定位+模糊城市定位

热门文章

  1. 得到节点值的两种方法
  2. 程序员的算法课(7)-01背包问题
  3. 程序员的进阶课-架构师之路(1)-数据结构与算法简介
  4. java bar_Java Bar类代码示例
  5. 3d文件与html结合,js和HTML5怎么结合?
  6. python字符串类型图解_Python基础——数据类型(图解+实例,非常详细!)
  7. Guns 旗舰版2.1发布,更新树形表格
  8. php分享二十:mysql优化
  9. 【Project3】【web.xml分析】
  10. 使用iBatis数据映射框架吧