![当内核挂载文件系统时,启动代码如何访问文件系统以将/boot目录下的内核加载到RAM中?](https://linux22.com/image/209947/%E5%BD%93%E5%86%85%E6%A0%B8%E6%8C%82%E8%BD%BD%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F%E6%97%B6%EF%BC%8C%E5%90%AF%E5%8A%A8%E4%BB%A3%E7%A0%81%E5%A6%82%E4%BD%95%E8%AE%BF%E9%97%AE%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F%E4%BB%A5%E5%B0%86%2Fboot%E7%9B%AE%E5%BD%95%E4%B8%8B%E7%9A%84%E5%86%85%E6%A0%B8%E5%8A%A0%E8%BD%BD%E5%88%B0RAM%E4%B8%AD%EF%BC%9F.png)
内核通常位于/boot
目录下。当启动程序运行时(如u-boot
),它将内核加载到 RAM 中。
这意味着,u-boot
已经可以访问文件系统。
我很困惑,因为文件系统是由内核安装的。我缺少什么?
答案1
引导加载程序包含自己的文件系统驱动程序,这就是它们在加载内核之前加载内核和关联文件(initramfs)的方式。这些驱动程序通常比内核的驱动程序更简单;值得注意的是,它们只需要能够读取文件,不需要处理写入。
甚至系统固件也常常包含文件系统驱动程序;例如UEFI可以访问ESP文件系统(基于FAT)。