源地址:[Linux]Grub和initrd对文件系统驱动的支持

前言
本文源于这样一个问题:内核镜像存储在硬盘下特定文件系统中,bootloader必须先加载文件系统驱动,才能读取内核文件。类似的,内核要读取根文件系统中的文件,也需要先加载文件系统驱动。如果文件系统驱动存储在硬盘中,启动时没有驱动无法读硬盘,将导致整个启动过程的失败。那么Grub和内核如何解决这个问题的呢?

启动过程中需要读硬盘的时刻:
1. BIOS读硬盘中MBR,将控制权交给MBR中Grub Stage1
2. Stage 1读硬盘中的Stage 1.5,Stage 1.5读Stage 2;或者Stage 1 直接读取 Stage 2
3. Stage 2读Kernel
4. Kernel挂载根文件系统,读文件

继续阅读