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

  • Post author:
  • Post category:linux


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的内容。



版权声明:本文为u012511518原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。