文件"消失"来自initramfs

时间:2015-07-20 19:19:42

标签: linux linux-kernel embedded-linux

在运行Linux 2.6.36的嵌入式平台上,我偶尔遇到一个问题,即文件没有出现在我们的initramfs cpio文件中 ARE 的根文件系统中。

我正在从cpio列表文件构建initramfs(请参阅gen_init_cpio.c),但在使用完整目录之前也遇到了问题。

当我说我知道文件存在于cpio文件中时,我的意思是如果我提取usr/initrmafs_data.cpio.gz文件就在那里。

它似乎与initramfs中的内容量松散相关,但我还没有找到导致文件开始消失的文件数量和/或总存储空间大小。

make menuconfig中是否有选项可以解决此问题?引导参数?还有别的吗?

有什么建议吗?

更新:为了澄清,这是使用CONFIG_INITRAMFS_SOURCE的内置ramdisk,并通过设置CONFIG_INITRAMFS_COMPRESSION_GZIP使用gzip进行压缩。此外,这适用于mipsel-linux平台。

更新#2 :我已经向init/initramfs.c:clean_path添加了一个printk,神秘地说,先前已经消失了#34;"文件现在都在那里。我认为如果尝试记录行为改变行为,这种方式似乎指向内核错误。我明天将initramfs.c与一个较新的内核进行比较,看看是否能够解决这个问题。

1 个答案:

答案 0 :(得分:0)

可能你的图像尺寸大于默认的ramdisk尺寸(4MB afaik)。检查添加ramdisk_size=valuebiggerthanyourimagesize作为内核参数(在root=...参数之前)是否解决了您的问题。您还可以尝试更改内核配置值CONFIG_BLK_DEV_RAM_SIZE