我有一个嵌入式板,我在上面运行Linux。Linux是通过uboot启动的。完整的linux映像构建为initramfs。当系统启动时,我发现根fs是读写的。我的理解是initramfs在默认情况下应该是只读的。对吗?
我也试图在uboot中更改引导参数,使其只读,但没有效果。我想知道如何使initramfs默认为只读?
最佳答案
完整的linux映像构建为initramfs。
如果不是不准确的话,这是一个措辞拙劣的描述。
initramfs使用cpio存档文件,而不是映像文件。
cpio存档文件可以链接到linux内核映像中。
initramfs“映像”始终是cpio存档文件,而不是文件系统映像。
我的理解是initramfs在默认情况下应该是只读的。对吗?
错了。
将initramfs挂载为只读文件系统是没有意义的。
创建和装载initramfs时,它是一个空文件系统。
如果它是以只读方式装载的,那么initramfs就不能用它的cpio存档填充,initramfs将保持为空文件系统。
建议使用内核命令行参数,如root=/dev/ram ro
表示ramdisk和ramfs之间的混淆(不推荐使用)。
请参见Linux内核Documentation/filesystems/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
关于linux - 只读Initramfs Linux系统,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43891240/