2

我有一个嵌入式板,我在上面运行 Linux。Linux 通过 uboot 启动。完整的 Linux 映像构建为 Initramfs。当系统启动时,我发现根 FS 是读写的。我的理解是 Initramfs 默认应该是只读的。正确的?

我也尝试将 uboot 中的引导参数更改为只读,但没有效果。我想知道如何使 Initramfs 默认为只读?

4

1 回答 1

3

完整的 Linux 映像构建为 Initramfs。

这是一个措辞不佳的描述,如果不是不准确的话。
initramfs 使用 cpio 归档文件,它不是映像文件。
cpio 归档文件可以链接到 Linux 内核映像。

initramfs “映像”始终是 cpio 归档文件,而不是文件系统映像。


我的理解是 Initramfs 默认应该是只读的。正确的?

错误的。
将 initramfs 挂载为只读文件系统是没有意义的。
创建并挂载 initramfs 时,它是一个空文件系统。
如果它是以只读方式挂载的,则 initramfs 无法填充其 cpio 存档,并且 initramfs 将保持为空文件系统。

使用内核命令行参数的建议root=/dev/ram ro表明(已弃用)ramdisk 和 ramfs 之间存在混淆。
请参阅 Linux 内核文档/文件系统/ramfs-rootfs-initramfs.txt


我想知道如何使 Initramfs 默认为只读?

您可以将其重新安装为只读。
请参阅 http://lkml.iu.edu/hypermail/linux/kernel/0908.1/01693.html

https://serverfault.com/questions/463828/linux-initramfs-read-only

于 2017-05-11T06:54:51.930 回答