您好,登录后才能下订单哦!
Linux系统启动详解是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
BIOS(Basic Input Output System,基本输入输出系统)是指一组固化到计算机内主板上一个ROM芯片上的程序,它保存着计算机最重要的基本输入输出的程序、开机后自检程序和系统自启动程序,它可从CMOS中读写系统设置的具体信息。 其主要功能是为计算机提供最底层的、最直接的硬件设置和控制。
当计算机接通电源(启动)时,便加载第一个软件——BIOS。对于所有的操作系统一样,BIOS是被设计来初始化硬件而产生。POST(Power On self Test,上电自检)作为BIOS的主要组成部分,用于检验电脑硬件的基本功能是否正常。如果POST失败,那么该计算机将不能使用,引导过程也会就此中断。
当BIOS上电自检成功,确认硬件的基本功能正常后,会产生一个BIOS中断 INT 13H,从而转向第一块硬盘的第一个扇区,即MBR(Master Boot Record,主引导记录)。
stage 1:当POST结束后,BIOS会将其跳转的主引导记录MBR加载至内存中,并开始执行该代码。控制权由BIOS转移至主引导记录代码。
主引导记录代码必须非常小,因为它必须连同分区表放到硬盘的第一个 512字节的扇区中。在传统的常规MBR中,主引导程序实际所占用的空间大小为446字节,通常被叫做引导镜像(boot.img),其中不包含设备的分区信息(4×16字节),分区是一般单独添加到引导记录中。
由于引导记录必须非常的小,它不可能非常智能,且不能理解文件系统结构。因此stage 1唯一功能就是定位并加载stage 2的代码(分页项中的起始及结束磁盘信息,寻找相应的存储区域)。为了完成此任务,stage 1的代码必须位于引导记录与设备第一个分区之间的位置。在加载stage 2代码进入内存后,控制权将由stage 1转移到stage 2。
地址 | 名称 | 功能 |
---|---|---|
0000-0088 | 主引导程序 | 主引导程序 |
0089-01BD | 出错信息数据区 | 数据区 |
01BE-01CD | 分区项1(16字节) | 分区表 |
01CE-01DD | 分区项2(16字节) | |
01BE-01CD | 分区项3(16字节) | |
01DE-01ED | 分区项4(16字节) | |
01FE | 55 | 结束标志 |
01FF | AA |
存贮字节位 | 内容含义 |
---|---|
第1字节 | 引导标志: |
80H—活动分区 | |
00H—非活动分区 | |
第2、3、4字节 | 本分区的起始磁头号、扇区号、柱面号: |
磁头号—第2字节 | |
扇区号—第3字节的低6位 | |
柱面号—第3字节高2位+第4字节8位 | |
第5字节 | 分区类型符: |
00H—表示该分区未用(即没有指定) | |
06H—FAT16基本分区 | |
0BH—FAT32基本分区 | |
05H—扩展分区 | |
07H—NTFS分区 | |
0FH—(LBA模式)扩展分区 | |
83H—Linux分区等 | |
第6、7、8字节 | 本分区的结束磁头号、扇区号、柱面号: |
磁头号—第6字节 | |
扇区号—第7字节的低6位 | |
柱面号—第7字节的高2位+第8字节 | |
第9、10、11、12字节 | 本分区之前已用扇区数 |
第13、14、15、16字节 | 本分区的总扇区数 |
stage 2:由于第一个扇区遗留下 62 个 512 字节的扇区(共 31744 字节),该区域用于存储stage 2的代码镜像 core.img 文件。该文件大小为 25389 字节,故此区域有足够大小的空间用来存储 core.img 文件。
因为有更大的存储空间用于stage 2,且该空间足够容纳一些通用的文件系统驱动程序,如标准的 EXT 和其它的 Linux 文件系统,如 FAT 和 NTFS 等。GRUB2 的 core.img 远比更老的 GRUB1 在stage 2更复杂且更强大。这意味着 GRUB2 的stage 3能够放在标准的 EXT 文件系统内,但是不能放在逻辑卷内。故stage 3的文件可以存放于 /boot 文件系统中,一般在 /boot/grub2 目录下。
注意: /boot 目录必须放在一个 GRUB 所支持的文件系统(并不是所有的文件系统均可)。stage 2的功能是开始执行存放stage 3文件的 /boot 文件系统的驱动程序,并加载相关的驱动程序。
stage 3:GRUB stage 3所有的文件都已存放于 /boot/grub2 目录及其子目录下。该阶段没有一个类似于stage 1与stage 2的镜像文件。相应地,该阶段主要需要从 /boot/grub2/i386-pc 目录下加载一些内核运行时模块。
GRUB stage 3的主要功能是定位和加载 Linux 内核到内存中,并转移控制权到内核。内核的相关文件位于 /boot 目录下,这些内核文件可以通过其文件名进行识别,其文件名均带有前缀 vmlinuz(内核文件)。你可以列出 /boot 目录中的内容来查看操作系统中当前已经安装的内核。
GRUB2 跟 GRUB1 类似,支持从 Linux 内核选择之一引导启动。Red Hat 包管理器(DNF)支持保留多个内核版本,以防最新版本内核发生问题而无法启动时,可以恢复老版本的内核。默认情况下,GRUB 提供了一个已安装内核的预引导菜单,其中包括问题诊断菜单(recuse)以及恢复菜单(如果配置已经设置恢复镜像)。
内核文件都是以一种自解压的压缩格式存储以节省空间,它与一个初始化的内存映像和存储设备映射表都存储于 /boot 目录之下。
在选定的内核加载到内存中并开始执行后,在其进行任何工作之前,内核文件首先必须从压缩格式解压自身。一旦内核自解压完成,则加载 systemd 进程(其是老式 System V 系统的 init 程序的替代品),并转移控制权到 systemd。
这就是引导过程的结束。此刻,Linux 内核和 systemd 处于运行状态,但是由于没有其他任何程序在执行,故其不能执行任何有关用户的功能性任务。
systemd 是所有进程的父进程。它负责将 Linux 主机带到一个用户可操作状态(可以执行功能任务)。systemd 的一些功能远较旧式 init 程序更丰富,可以管理运行中的 Linux 主机的许多方面,包括挂载文件系统,以及开启和管理 Linux 主机的系统服务等。
systemd 挂载在 /etc/fstab 中配置的文件系统,包括内存交换文件或分区。据此,systemd 必须能够访问位于 /etc 目录下的配置文件,包括它自己的。systemd 借助其配置文件 /etc/systemd/system/default.target 决定 Linux 系统应该启动达到哪个状态(或目标态target)
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注亿速云行业资讯频道,感谢您对亿速云的支持。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。