MBR格式与Linux启动:从BIOS到GRUB详解
需积分: 9 136 浏览量
更新于2024-08-25
收藏 235KB PPT 举报
MBR格式是计算机启动过程中一个至关重要的环节,特别是在传统的基于硬盘的Linux系统中。MBR(Master Boot Record)位于硬盘的第一个扇区(0道0柱面1扇区),它是一个512字节大小的扇区,负责引导操作系统的初始加载。当计算机加电自检(POST)完成并确认硬件正常后,BIOS会寻找启动扇区,即MBR,然后将控制权交给MBR。
在MBR中,有一个非常小的引导加载程序,通常包括bootsect(早期版本的BIOS引导程序),它会将自己复制到内存的特定地址(如0x00090000),并执行setup()函数。setup()阶段主要负责初始化硬件设备,设置内核运行环境,将系统参数保存到特殊内存区域,以便在保护模式下访问,以及配置视频设备。
GRUB(Grand Unified Bootloader),作为一个两阶段的引导加载程序,通常阶段1(stage1)被安装在MBR中,长度约为446字节,它的作用是加载并执行阶段2(stage2)。stage2更进一步,它不仅加载内核,还会显示一个引导菜单,让用户可以选择不同的内核版本或其他操作系统。在这个阶段,还提供了shell环境,允许用户指定内核的位置。
Linux内核的引导过程在ancient age(古代)阶段开始,从_start()函数生成引导扇区的汇编源码,随后bootsect被执行。在middle ages(中世纪)阶段,setup()函数负责初始化硬件和设置内核运行环境,比如内存管理、磁盘驱动加载和视频模式设置。最终,renaissance(文艺复兴)阶段,通过startup_32()函数设置基础环境,解压缩bzImage(预编译的内核映像)到内存,然后执行实际的内核初始化。
整个过程涉及多个步骤,从BIOS的引导到内核的启动,每一个环节都精心设计以确保系统的稳定启动。了解这些细节对于理解Linux启动机制以及维护和故障排查至关重要。同时,随着技术发展,现代的引导方式可能已不再完全依赖MBR,如UEFI取代BIOS引导,但MBR的基本原理仍然是理解Linux启动流程的基础。
2021-11-29 上传
2013-05-06 上传
2019-09-14 上传
2012-12-15 上传
2021-12-05 上传
2022-08-03 上传
2012-11-26 上传
2023-08-02 上传
2012-10-11 上传
ServeRobotics
- 粉丝: 37
- 资源: 2万+
最新资源
- 基于Python和Opencv的车牌识别系统实现
- 我的代码小部件库:统计、MySQL操作与树结构功能
- React初学者入门指南:快速构建并部署你的第一个应用
- Oddish:夜潜CSGO皮肤,智能爬虫技术解析
- 利用REST HaProxy实现haproxy.cfg配置的HTTP接口化
- LeetCode用例构造实践:CMake和GoogleTest的应用
- 快速搭建vulhub靶场:简化docker-compose与vulhub-master下载
- 天秤座术语表:glossariolibras项目安装与使用指南
- 从Vercel到Firebase的全栈Amazon克隆项目指南
- ANU PK大楼Studio 1的3D声效和Ambisonic技术体验
- C#实现的鼠标事件功能演示
- 掌握DP-10:LeetCode超级掉蛋与爆破气球
- C与SDL开发的游戏如何编译至WebAssembly平台
- CastorDOC开源应用程序:文档管理功能与Alfresco集成
- LeetCode用例构造与计算机科学基础:数据结构与设计模式
- 通过travis-nightly-builder实现自动化API与Rake任务构建