我必须使用 romfs 创建一个带有自定义可加载模块的文件系统。但是,我有一些困惑(我对内核的东西还是新手):
看完
romfs
文档:romfs,据我所知,romfs
是一个类似于 的文件系统ext2, ext3, ext4....
,用于创建内核启动时需要的init ramdisk。不过据说romfs
从2.1.21版开始就被纳入内核了:romfs homepage。在主页上,我们只能下载genromfs
用于创建romfs
图像文件的实用程序。所以,我想在这里明确一点:romfs
内核中包含的模块是用来读取romfs
文件系统的,genromfs
是用来创建的,不是吗(我试过了genromfs
,但我想确认一下)?initrd
由mkinitrd -allow-missing -f initrd.img kernel-version
在源目录(要加载的文件系统)创建并由: 解包gzip -dc initrd.img | cpio -idv
,在使用 romfs 时,我必须使用创建它的图像mkinitrd
并使用: 解包它genromfs -fdv romfs.img
。这与内核启动时的 initrd 相同吗?initrd
涉及压缩,虽然romfs
不是,这可以吗?如果是这样,则必须将
romfs
模块内置到内核中,以便在内核启动的早期阶段进行读取,对吗?在我的系统中,我们有一台无盘机器,目前,initrd
它被用作引导阶段文件系统以及最终的根文件系统。但是,由于romfs
是只读的,使用romfs
被拒绝的用户写入文件系统的能力(所以,我们不能做类似的事情echo "something" > /tmp/something.txt
)?