gpu*_*guy 19 startup initramfs linux-kernel
我发现如果我选择jffs
或sd
作为文件系统(而不是initramfs
),内核大小将非常小(1.4 MB 与initramfs
3.4 MB 相比)。这意味着initramfs
需要相当大的空间。所以如果可以的话,我会完全删除它,因此内核会非常小,这正是我想要的。
我脑海中浮现的基本问题是:为什么我需要initramfs
?没有任何初始文件系统,Linux 内核不能启动吗?
我的最终应用程序只会进行计算和通信 - 根本没有存储。所以没有文件系统的操作系统是有意义的——至少对我的应用程序来说是这样。
Gil*_*il' 12
initramfs 的大小增加不是由于 ramfs 驱动程序(它只有几 kB,并且无论如何都需要其他东西),而是 initramfs 本身。initramfs 包含组装和挂载真正的根文件系统所必需的程序。
Initramfs 使/
引导系统变得更加容易,并且在某些情况下是可能的(例如加密)。强烈建议将其保留在具有大量可热插拔外围设备的 PC 式硬件上。另一方面,在没有任何 initramfs 的情况下启动嵌入式设备很有意义,内核只支持为其构建的特定硬件配置。
内核当然需要引导到文件系统:必须有某种方式让它加载您想要运行的任何应用程序。如果你不打算运行任何东西,那么你最好保持机器的电源关闭。
如果您不想使用 initramfs,只需告诉您的引导加载程序不要通过它。也不包括一个在内核构建的输出,当然-这是如何发生,如果在所有的建筑-和引导程序相关的:例如,vmlinux
并且bzImage
不包括initramfs中(他们分别是原始和压缩的内核),但是uImage
(对于 U-Boot)会同时打包内核和 initramfs(如果有的话)。
(从技术上讲,正如mikeserv 所指出的,总是有一个 initramfs——但默认情况下,它是一个空的 134 字节存档。你所看到的,并想要摆脱的是一个由您的构建过程和包含的工具,然后用于挂载根文件系统。)
请注意,initramfs 可以是制作没有持久数据的单应用程序系统的合理方法:将所有应用程序放入 initramfs,引导并保留它。这样可以更轻松地组织持久存储或引导映像(您只需要内核和 initramfs,它们可以捆绑在一起)。然而,这种方法有缺点:initramfs 中的所有数据都将永久存储在 RAM 中,并且您无法轻松修改启动映像中的文件,您必须重建存档。
小智 8
从LFS:
initramfs 的唯一目的是挂载根文件系统。initramfs 是一组完整的目录,您可以在普通根文件系统上找到这些目录。它被捆绑到一个单独的 cpio 存档中,并使用多种压缩算法之一进行压缩。
...
在 LFS 环境中使用 initramfs 的主要原因只有四个:从网络加载 rootfs,从 LVM 逻辑卷加载它,在需要密码的地方使用加密的 rootfs,或者为了方便将 rootfs 指定为标签或 UUID。其他任何事情通常都意味着内核没有正确配置。
...
对于大多数发行版,内核模块是拥有 initramfs 的最大原因。在一般发行版中,存在许多未知因素,例如文件系统类型和磁盘布局。在某种程度上,这与 LFS 正好相反,LFS 系统功能和布局是已知的,并且通常会构建自定义内核。在这种情况下,很少需要 initramfs。
另一个来源www.kernel.org
除此之外,还有很多 Linux 系统喜欢不使用 initramfs 的路由器。
归档时间: |
|
查看次数: |
25483 次 |
最近记录: |