2022年Linux_系统引导过程 .pdf
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《2022年Linux_系统引导过程 .pdf》由会员分享,可在线阅读,更多相关《2022年Linux_系统引导过程 .pdf(14页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、启动流程启动时要加载核心,让核心来驱动整个硬件。整个启动过程:1 加载 BIOS 的硬件信息,并获得第一个启动设备的代号(CMOS 中设定的启动项) 。2 读取第一个启动设备的MBR 的引导加载程序(lilo 、grub、spfdisk)3 加载核心操作系统的核心信息,核心开始解压缩,并且尝试驱动所有硬件设备。4 核心执行init 程序并获取运行信息。5 Init 执行 /etc/rc.d/rc.sysinit 文件6 启动核心的外挂模块(/etc/modprobe.conf )7 Init 执行各个批处理文件(根据运行级别)。8 Init 执行 /etc/rc.d/rc.local 文件9
2、执行 /bin/login 程序,等待用户登录。10登录之后开始以shell 控制主机。引导加载程序与核心的载入主机读取BIOS ,并且了解主要的主机硬件信息后,主机便开始尝试加载操作系统。主机首先读取的就是硬盘的主引导记录(MBR ) ,在 MBR 中装有引导加载程序(比如说grub) 。主机刚启动时是不认识磁盘文件系统的,这就需要引导加载程序帮忙。但我们知道MBR 是整个硬盘的第一个扇区,整个大小为一个扇区的大小(512KB ) ,而我们的加载程序却远远大于这个容量。怎么办?引导加载程序分成两个阶段来执行:1, 执行引导加载程序的主程序,这个主程序放在MBR 或超级块中。2, 载入引导加载
3、程序的所有设置文件与相关的环境参数文件。一般来说,设置文件都放在/boot 目录下。引导加载程序必须能做到:引导加载程序可以直接指定并取用核心文件,并加载到主存储器中。也可以将加载程序的控制权移交给下一个加载程序(超级块中的引导加载程序)。grub 是如何被载入的呢?grub 有几个重要文档,stage1,stage2, 以及 stage1.5,这些文档都在/boot/grub 下, grub 被载入时有以下几个步骤。Stage1阶段装载基本的引导程式(stage1) ,这也是安装在MBR 中的内容,大小为512 字节,但这并不意味着占用的空间为512 字节,这还要看块的大小以及inode 控
4、制的块数。 比如说, 我用 #du b stage1,看到的是512 字节,但用 #du h stage1却看到的是2K。stage1 的主要功能就是装载第二引导程式(stage2)。stage1应该还包括磁盘分区的信息,但这个信息应该只是刚开始装机时的信息了,对于后面又对磁盘进行的分区操作stage1 应该是没有记录的,所以要备份的话,还是备份MBR 为上策。#dd if=/dev/had of=/tmp/mbr.back bs=512 count=1 stage1 只负责做引导的动作,不会有太多的功能,毕竟它也只有512bytes 的大小(真正的stage1 其实只能算446bytes),
5、如果用户在启动时可以看到GRUB Shell,那就是stage1 的真正画面。Stage1.5阶段名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 14 页 - - - - - - - - - 所有文件名是【XXX_stage1_5 】的都属于这阶段的文件,但至于为何会有这么多个文件?是因为其作用就像是连接stage1 到 stage2 的一个通道,里面唯一存放的是该系统文件的格式,所以只要是被支持的格式,就会预先存放一个格式文件在其中。这阶段的过程可以让GRUB 在 st
6、age1启动完成后,stage2 能在被搬移后的情况下,就算不在原本的目录或文件系统中,依然可以被安全地找到。因为stage1.5被加载时,就已经赋予GRUB 读取文件系统目录的能力,所以自然可以在一开始找不到stage2 的情况下,从文件系统目录中,找出stage2的所在位置。不过,通常stage1.5阶段的文件不会放在目录中,因为当stage1还没加载stage1.5时,原则上是不能识别ext2 的,当然也无法找到stage1.5这个文件,所以,其实stage1.5是存在硬盘最前面的32KB 的区段中的(但是要跳过MBR ),当 stage1调用 stage1.5时,就直接去该区域将sta
7、ge1.5 找出来使用,所以即使你在/boot/grub 目录下看不到这几个文件时,系统还是一样能启动。Stage2 阶段装载第二引导程式(stage2),是为了引出更高级的功能,以允许用户装载一个特定的操作系统。在 GRUB 中,这步是给用户显示一个菜单或输入命令。该文件是GRUB 的核心程序,能让用户以菜单方式将操作系统加载、新增参数、修改选项,这些全都是stage2 的功用。对GRUB 来说, stage2 除了不能自己启动外,剩下的事情全都由 stage2 完成。 像是用户在启动时所看到的GRUB 启动倒数画面, 或是紧接着的启动菜单画面,就都是由stage2 所提供的。Stage2
8、文件主要提供的功能如下。提供菜单。读取配置文件。连接下一个boot sector。配置文件device.map 、menu.lst及 grub.conf都属于这类文件。device.map 是直接侦测目前的硬件来假设BIOS所记录的实体磁盘有哪些,默认值是安装系统时就记录好的。menu.lst在此只是一个链接文件,链接到grub.conf文件,但在SuSE中却刚好相反,会以menu.lst为主要文件。grub.conf就是 GRUB 启动程序的主要配置文件,如果此文件丢失,会让GRUB 在启动时失去默认的选项,但要强调的是,此时还可以临时(启动时)通过手动配置方式启动(只要其他文件还在)。sp
9、lash.xpm.gz文件就是启动时的背景图片通过引导加载程序读取核心文件后,接下来, 主机会把核心文件解压缩到主存储器中,并且利用核心的功能,开始测试与驱动各台外部设备(存储设备,CPU,网卡,声卡,等) 。在加载核心的过程中,系统会以只读的方式载入根目录,而且会建立一个虚拟盘(RAM Disk ) ,以协助启动过程。这就需要initrd 的支持了,利用引导加载程序加载核心的时候,一起加载initrd 的映像文件, 他的作用是在没有mount /分区以前,系统要执行一些操作,比如挂载scsi驱动,他就把initrd释放到内存里,作一个虚拟的/ ,然后执行其根目录下的一个脚本“ init”(内
10、核2.4 的为 linuxrc,新内核2.6 为 init) ,运行 insmod 和 nash 命令挂装模块。在核心驱动外部硬件的工作完成之后,initrd 所建立的虚拟盘就会被删除。但注意 initrd并非必要的。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 14 页 - - - - - - - - - initrd文件分为2.4 内核的与2.6 内核的两种2.4 之前的查看initrd的内容只需要mount o loop 就可以了,但新内核2.6 改成 cpio方
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年Linux_系统引导过程 2022 Linux_ 系统 引导 过程
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内