MBR格式与Linux启动:从BIOS到GRUB详解

需积分: 9 7 下载量 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启动流程的基础。