首页 > 其他分享 >操作系统中的引导块

操作系统中的引导块

时间:2024-12-01 15:43:20浏览次数:4  
标签:引导 操作系统 启动 分区表 MBR 加载

目录


操作系统中的引导块,也称为引导扇区(Boot Sector)或主引导记录(Master Boot Record, MBR),是硬盘或其他存储设备上的一个特殊区域。它通常位于磁盘的第一个扇区(512字节),在计算机启动时扮演着至关重要的角色。以下是关于引导块的详细介绍:


主引导记录 (MBR)

对于使用传统的分区表的硬盘,引导块包含了主引导记录(MBR)。MBR 包含以下两个主要部分:

  1. 引导代码:这部分包含了一个小的操作系统加载程序(bootloader),它的任务是在计算机启动时加载操作系统。这个加载程序可能非常简单,只负责找到并加载另一个更复杂的加载器(如 GRUB 或 LILO),或者直接加载操作系统内核。

  2. 分区表:MBR 中还包括一个分区表,它描述了硬盘上的分区信息。标准的 MBR 分区表可以支持最多四个主分区,如果需要更多的分区,则可以通过设置一个扩展分区来实现,该扩展分区内可以创建多个逻辑分区。

MBR 的最后两个字节总是 0x55 和 0xAA,这是一个签名,用来标识这是一个有效的 MBR 扇区。


GUID 分区表 (GPT)

对于现代系统,特别是那些使用 UEFI(统一可扩展固件接口)而不是传统 BIOS 的系统,可能会使用 GUID 分区表(GPT)代替 MBR。GPT 提供了更大的灵活性和可靠性,包括支持大于 2TB 的硬盘、多达 128 个主分区以及冗余分区表信息以提高数据安全性。


引导过程

当计算机启动时,BIOS 或 UEFI 固件会执行 POST(上电自检)后,根据预设的启动顺序读取指定的存储设备的第一扇区,即 MBR 或 GPT。接着,它将执行此扇区中的引导代码。对于 MBR 系统,引导代码会解析分区表,并尝试从标记为活动(active)的分区加载进一步的引导加载程序;对于 GPT 系统,UEFI 固件通常会查找 EFI 系统分区(ESP)中的 EFI 应用程序来启动操作系统。


安全性

由于引导块对系统的启动至关重要,因此它也是恶意软件攻击的目标之一。例如,某些类型的病毒会感染 MBR,从而在每次系统启动时激活。为了防止这种情况,许多现代操作系统和硬件平台提供了安全启动(Secure Boot)功能,确保只有经过数字签名验证的引导加载程序才能被执行。


Linux系统启动流程

在Linux系统启动时,MBR(Master Boot Record)引导块的流程是操作系统启动过程中的关键步骤。以下是详细的启动流程:

  1. BIOS/UEFI 初始化
  • 硬件自检 (POST):当计算机接通电源后,BIOS或UEFI固件首先执行上电自检(Power-On Self Test),以检查硬件是否正常工作。
  • 加载固件设置:然后它会加载并应用存储在CMOS中的配置信息,比如日期、时间和启动顺序等。
  1. 加载 MBR
  • 读取 MBR:根据设定的启动顺序,BIOS/UEFI会选择一个存储设备作为启动盘,并从该设备的第一个扇区(512字节)读取MBR。
  • 验证 MBR 签名:MBR最后两个字节应该是0x55AA,这是有效MBR的标志。如果签名正确,BIOS/UEFI将把控制权交给MBR中的代码。
  1. 执行 MBR 中的引导代码
  • 解析分区表:MBR中的引导代码会解析硬盘上的分区表,找到标记为“活动”(Active)或“可启动”的分区。
  • 加载引导加载程序:通常情况下,MBR不会直接加载操作系统内核,而是加载位于活动分区上的初级引导加载程序(如GRUB Legacy 或 GRUB2)。这个引导加载程序被设计成可以处理更复杂的任务,例如提供多操作系统选择、参数传递给内核等。
  1. 引导加载程序阶段
  • GRUB 菜单:对于使用GRUB作为引导加载程序的情况,用户会在这一阶段看到一个菜单,可以选择要启动的操作系统版本或其他选项。
  • 加载内核和初始RAM磁盘:一旦选择了某个操作系统条目,GRUB将会加载相应的Linux内核(vmlinuz)和初始RAM磁盘(initrd/initramfs),它们会被加载到内存中准备执行。
  1. 内核初始化
  • 解压并启动内核:内核镜像通常是压缩格式的,因此需要先解压。之后,内核开始初始化硬件和核心子系统。
  • 挂载根文件系统:通过使用initrd/initramfs提供的临时文件系统,内核会尝试挂载真正的根文件系统。
  • 启动 init 进程:一旦根文件系统成功挂载,内核将启动/sbin/init进程(或等效进程,取决于具体的init系统,如systemd, SysVinit等),这标志着用户空间程序开始运行。
  1. 用户空间初始化
  • 启动服务和守护进程:init进程负责按照预定的顺序启动各种系统服务和守护进程,包括网络、图形界面、登录提示符等。
  • 提供登录界面:最终,系统准备好接受用户输入,显示登录提示符或图形登录界面。

注意事项

  • 安全启动:在支持UEFI的系统中,还可以启用Secure Boot功能,确保只有经过数字签名验证的引导加载程序才能被执行,从而增强系统的安全性。
  • 多重引导:如果机器上安装了多个操作系统,MBR中的引导加载程序可能会提供一个菜单让用户选择想要启动哪个操作系统。

以上就是Linux系统启动时MBR引导块的主要流程。每一步都至关重要,任何一步出现问题都可能导致启动失败。理解这些步骤有助于诊断和解决与启动相关的问题。

标签:引导,操作系统,启动,分区表,MBR,加载
From: https://www.cnblogs.com/yubo-guan/p/18579836

相关文章

  • 《操作系统真相还原》| 实验记录2.0【MBR,Loader,Kernel代码汇总】
    MBR.S%include"boot.inc"SECTIONMBRvstart=0x7c00 movax,cs movds,ax moves,ax movss,ax movfs,ax movsp,0x7c00 movax,0xb800 movgs,ax mov ax,0600h mov bx,0700h mov cx,0 mov dx,184fh int 10h movbyte[gs:0x00],'1......
  • 操作系统知识点
    操作系统的定义操作系统是一组用于控制和管理计算机系统硬件和软件资源,合理地对各类作业进行调度,以及方便用户使用的程序集合。操作系统基本特征并发:是指两个或多个活动在同一给定的时间间隔中进行。共享:是指计算机系统中的资源被多个进程所共用。异步:进程以不可预知的速度向前......
  • 操作系统中断处理的详细流程是什么
    1.中断的基本概念与类型中断定义:中断是指在计算机执行程序的过程中,出现了某种紧急或异常的事件(中断请求),CPU需要暂停正在执行的程序,转去处理该事件(执行中断服务程序),并在处理完毕后返回断点处继续执行被暂停的程序。中断类型:外部中断:也称硬件中断,由计算机外部设备产生的......
  • Linux操作系统2-进程控制3(进程替换,exec相关函数和系统调用)
    上篇文章:Linux操作系统2-进程控制2(进程等待,waitpid系统调用,阻塞与非阻塞等待)-CSDN博客本篇代码Gitee仓库:Linux操作系统-进程的程序替换学习·d0f7bb4·橘子真甜/linux学习-Gitee.com本篇重点:进程替换目录一.什么是进程替换?二.进程替换函数常用的函数 2.1......
  • 【Linux探索学习】第十七弹——进程终止:深入解析操作系统中的进程终止机制
    Linux学习笔记:https://blog.csdn.net/2301_80220607/category_12805278.html?spm=1001.2014.3001.5482前言:在操作系统中,进程终止是一个至关重要的阶段,它标志着进程的生命周期结束。进程终止可能是因为任务完成,也可能是因为异常或外部干预。本文将详细讲解操作系统中的进程......
  • 计算机操作系统进程的描述与控制选择题
    1、正在执行的进程由于其时间片用完而被暂停运行,此时该进程应从运行态变为()。A、就绪态B、运行态C、等待态D、终止态2、某单处理器系统中若同时存在5个进程,则处于等待状态的进程最多可有()个。A、1B、0C、5D、43、一个进程退出等待队列而进入就绪队列,是因为进程()。A、获得了......
  • 通过网络安装UOS服务器版操作系统
    现在网卡一般都带了网络启动功能,有个软件叫Serva,可以免费用,时间超了会关闭,基本装一次系统够了,尽量不要用破解版或者什么汉化版,现在互联网上的软件太危险了,找官方的,英语的需要用到三个服务httptftpdhcp原理是dhcp会提供一个特别的指令,用于PXE查询引导文件TFTP地址,引......
  • DISM(Deployment Imaging Service and Management Tool)是一个命令行工具,用于在 Windows
     .wim、.vhd、.vhdx和.ffu文件的对比和区别,按照它们的特性、用途、文件结构等方面进行总结:特性/类别WIM(.wim)VHD(.vhd)VHDX(.vhdx)FFU(.ffu)全称WindowsImagingFormatVirtualHardDiskVirtualHardDisk(扩展版)FullFlashUpdate主要用途系......
  • 轻松理解操作系统 - 一文讲明 共享内存
    大家好,我是菲英。在前面呢,我们了解了进程间通信模块的管道机制和消息队列机制:管道机制是什么?消息队列是什么?本期,我们就继续来了解进程间通信模块的共享内存机制。首先,为什么它是最快的进程间通信机制?因为,它是多个进程的一块虚拟内存映射到同一块物理内存区域来实现数据共......
  • Perplexity 计划推出低价语音问答硬件;/dev/agents:AI Agents 的操作系统,种子轮估值 5
       开发者朋友们大家好: 这里是「RTE开发者日报」,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享RTE(Real-TimeEngagement)领域内「有话题的新闻」、「有态度的观点」、「有意思的数据」、「有思考的文章」、「有看点的会议」,但内容仅代表编......