Linux启动 grub 虚拟文件系统initrd详解(一)

本文详细介绍了Linux启动过程中BIOS如何通过int 13中断找到MBR加载GRUB,以及GRUB的stage1和stage2如何加载内核和配置文件。重点讨论了GRUB在识别操作系统文件格式中的作用,强调了如果内核位于不被GRUB识别的文件系统中,系统将无法引导。
摘要由CSDN通过智能技术生成

Linux的启动时一个复杂的过程:

  1. 加载 BIOS 的硬件资讯与进行自我测试,并依据配置取得第一个可启动的装置;
  2. 读取并运行第一个启动装置内 MBR 的 boot Loader (亦即是 grub, spfdisk 等程序);
  3. 依据 boot loader 的配置加载 Kernel ,Kernel 会开始侦测硬件与加载驱动程序;
  4. 在硬件驱动成功后,Kernel 会主动呼叫 init 程序,而 init 会取得 run-level 资讯;
  5. init 运行 /etc/rc.d/rc.sysinit文件来准备软件运行的作业环境 (如网络、时区等);
  6. init 运行 run-level 的各个服务之启动 (script 方式); init运行 /etc/rc.d/rc.local 文件; init 运行终端机模拟程序 mingetty 来启动 login程序,最后就等待使用者登陆啦;

那么BIOS是怎样找到MBR的呢? 这就要BIOS 透过硬件的int 13中断功能来读取 MBR 的,也就是说,只要 BIOS 能够侦测的到你的磁盘 (不论该是 SATA 还是 IDE),那他就有办法透过int 13这条指令来读取该磁碟的第一个磁区内的MBR。
MBR到底是什么?Master Boot Record 主要引导记录,它位于磁盘的第一个扇区中,里面放着grub等引导程序。磁盘的第一个扇区主要记录了俩个重要的信息:1. 主引导分区MBR 446个字节 2. 分区表 记录整块硬盘的分区状态 64个字节 分区表及文件系统后续会讲解。让我们看看磁盘MBR是什么样的,如图是ubuntu系统下复制MBR的内容。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值