Linux启动流程

这里写图片描述

参考教程:
Linux系统启动过程分析
Linux系统开机启动流程介绍
Linux系统启动时都发生了什么
主引导记录MBR

1.POST开机自检

打开电脑主机电源,当听到滴的一声,就说明系统已经开始了开机自检POST(power on self Test)。自检开始这个过程中主要是检测计算机硬件设备,比如CPU、内存、主板、显卡等设备是否存在故障。硬件故障分为两种情况,对于严重故障(致命性故障),则停机,此时由于各种初始化操作还没完成,不能给出任何提示或信号。对于非严重故障,则给出提示或声音报警信号,等待用户处理。如果没有故障,POST完成自己的接力任务将尾部工作交接给BIOS处理。

最常见的是内存松动的情况,BIOS自检阶段会报错,系统就无法启动起来。

2. 加载BIOS

BIOS(Basic Input / Output System),又称基本输入输出系统,可以视为是一个永久地记录在ROM中的一个软件,是操作系统输入输出管理系统的一部分。早期的BIOS芯片确实是”只读”的,里面的内容是用一种烧录器写入的,一旦写入就不能更改,除非更换芯片。现在的主机板都使用一种叫Flash EPROM的芯片来存储系统BIOS,里面的内容可通过使用主板厂商提供的擦写程序擦除后重新写入,这样就给用户升级BIOS提供了极大的方便。

执行BIOS中的程序来枚举本地设备并对其初始化。这一步主要是根据我们在BIOS中设置的系统启动顺序来搜索用于启动系统的驱动器,如硬盘、光盘、U盘、软盘和网络等。我们以硬盘启动为例,BIOS此时去读取硬盘驱动器的第一个扇区(MBR,512字节),然后执行里面的代码。实际上这里BIOS并不关心启动设备第一个扇区中是什么内容,它只是负责读取该扇区内容、并执行。

3. 系统引导

我们首先来了解一下MBR,它是Master Boot Record的缩写。通常,我们将包含MBR引导代码的扇区称为主引导扇区,它处于硬盘的0柱面、0磁头、1扇区。因这一扇区中,引导代码占有绝大部分的空间,故而将习惯将该扇区称为MBR扇区(简称MBR)。由于这一扇区承担有不同于磁盘上其他普通存储空间的特殊管理职能,作为管理整个磁盘空间的一个特殊空间,它不属于磁盘上的任何分区,因而分区空间内的格式化命令不能清除主引导记录的任何信息。

它由三个部分组成,主引导程序(Bootloader)、 硬盘分区表DPT(Disk Partition table)和MBR结束标志(55AA),其结构图如下所示:
这里写图片描述

  • 1.主引导程序即主引导记录(MBR)(占446个字节)
    可在FDISK程序中找到,它用于硬盘启动时将系统控制转给用户指定的并在分区表中登记了的某个操作系统。
  • 2.磁盘分区表项(DPT,Disk Partition Table)
    由四个分区表项构成(每个16个字节)。在实际应用中,FDISK对一个磁盘划分的主分区可少于4个,但最多不超过4个,且每一个主分区可安装一个操作系统,也就是说,一块硬盘最多可以安装4个操作系统。负责说明磁盘上的分区情况,其内容由磁盘介质及用户在使用FDISK定义分区时决定。磁盘分区表又包含以下三部分:
    这里写图片描述
  • 3.结束标志(占2个字节)
    其值为AA55,存储时低位在前,高位在后,即看上去是55AA(十六进制)。

引导加载程序包括两个不同的阶段:

  • stage1:首先BIOS将上图中446字节的Bootloader载入到0X7c00处并跳转执行,该引导加载程序检查分区表并找到一个可引导的分区(一定是主分区),一旦找到该分区,就会将给分区内的第一逻辑扇区内容装入内存,该内容就是stage2的引导加载程序(例如GRUB)。
  • stage2:当GRUB环境开始载入第二步引导装载程序时,它寻找自己的配置文件(menu.lst)。当找到配置文件后,它使用这个配置文件建立一个要载入的操作系统的菜单列表, 然后显示引导菜单接口。在选择操作系统后,引导加载程序将所选操作系统的内核加载到内存中,并进行控制权的交接。由于内核是被压缩过的,所以首要任务就是先进行内核解压。在此之后,内核会立即初始化系统中各设备并做相关的配置工作,其中包括CPU、I/O、存储设备等。
    关于Linux的设备驱动程序的加载,有一部分驱动程序直接被编译进内核镜像中,另一部分驱动程序则是以模块的形式放在initrd(ramdisk)中。

4. 内核初始化

烦!不想写了!看最上方的图吧!

补充:

在MBR分区表中最多4个主分区或者3个主分区+1个扩展分区,也就是说扩展分区只能有一个,然后可以再细分为多个逻辑分区。在Linux系统中,硬盘分区命名为sda1-sda4或者hda1-hda4(其中a表示第一块硬盘,b代表第二块硬盘,依次类推)。在MBR硬盘中,分区号1-4是主分区(或者扩展分区),逻辑分区号只能从5开始。
在MBR分区表中,一个分区最大的容量为2T,且每个分区的起始柱面必须在这个disk的前2T内。你有一个3T的硬盘,根据要求你至少要把它划分为2个分区,且最后一个分区的起始扇区要位于硬盘的前2T空间内。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值