小编sol*_*ron的帖子

为什么我们需要 initramfs 和 initrd

例如,我们在磁盘上有外来文件系统,为了加载系统,我们需要挂载根文件系统。但是我们不能,因为内核映像中不存在合适的驱动程序。

让我来解释我是如何理解kernelinitrd

  1. 编译内核时,我们可以选择要包含在内核映像中的不同模块(单个文件)
  2. 例如,我的根文件系统是,reiserfs并且我已将内核配置为不包含module此文件系统
  3. 在这种情况下,内核不知道如何挂载这样的文件系统,它需要一些帮助 -> 所以加载initramfs到内存中
  4. 在 ram fs (lib/modules 等) 中找到合适的模块
  5. 将此模块加载到内核
  6. 现在内核可以挂载reiserfs它,然后卸载(释放)占用的内存ramfs

我对吗 ?

但是我不明白为什么我们需要initramfs在每个发行版中(我在我安装过的每个发行版中都看到过)如果大多数特定驱动程序已经存在于内核映像(单个文件)中,而且我们只需要内核驱动程序时的文件系统驱动程序boots 其他驱动程序可以在挂载后从文件系统加载。

那么它真的是任何发行版的重要组成部分吗?

PS 什么更经常使用initramfsinitrd为什么?

boot kernel initrd initramfs init

5
推荐指数
1
解决办法
4524
查看次数

如何编译手册文件.1

我有 .c、.h 和 .1 文件,如何将它们编译成一个可执行文件。.c 和 .h 文件一切都清楚,但我也有 .1,正如我从它用于手册的内容中看到的那样,如何将它们与程序链接?

c c++ linker

2
推荐指数
1
解决办法
614
查看次数

标签 统计

boot ×1

c ×1

c++ ×1

init ×1

initramfs ×1

initrd ×1

kernel ×1

linker ×1