initramfs.cpio 位置

initramfs.cpio 位置

所以我尝试使用构建一个基本的 initramfsUbuntu 14.04.5 LTS 的教程,最后一步“外部文件列表”让我失望。我从 initramfs.list 创建了 initramfs.cpio 文件并将其放置在我的内核构建目录中。重建并重新启动后,该消息不会出现,并且可能不是从 initramfs 启动。我应该把它放在其他地方吗?

另外,我是否需要生成一个外部文件列表才能从 initramfs 正确启动?

答案1

initramfs 由内核构建过程自动生成。创建您的规范文件并将内核选项设置CONFIG_INITRAMFS_SOURCE=为您的文件的位置。内核文档中解释了 initramfs 的创建,请阅读ramfs-rootfs-initramfs.txt

另外,我是否需要生成一个外部文件列表才能从 initramfs 正确启动?

有多种方法可以创建和使用 initramfs。

initramfs_data.cpio.gz最后,您最终可以提取位于usr内核源代码目录中的存档,以检查其内容。文档中提到了这一点。

例子

prompt% mkdir -pv /usr/src/initramfs
prompt% nano /usr/src/initramfs/initramfs_list
prompt% cd /usr/src/linux
prompt% make menuconfig    
# CONFIG_INITRAMFS_SOURCE=/usr/src/initramfs/initramfs_list
prompt% make && make modules_install
prompt% ls usr/
built-in.o  gen_init_cpio  initramfs_data.cpio.gz  initramfs_data.o  modules.builtin  modules.order
prompt% mkdir -v /tmp/initramfs/
prompt% cp -v usr/initramfs_data.cpio.gz /tmp/initramfs
prompt% cd /tmp/initramfs/
prompt% cpio -i -d -H newc -F initramfs_data.cpio --no-absolute-filenames
prompt% ls

重建并重新启动后,该消息不会出现,并且可能不是从 initramfs 启动。

请注意,initramfs 必须包含有效的在里面

相关内容