您重新包装
cd your_working_directory_with_modifications
find . | cpio --quiet --dereference -o -H newc | lzma -7 > ../cusotm.initrd.lz
第二个命令重命名了initrd,您指定了在grub引导时使用的initrd。
我建议您在移动或重命名它之前测试(引导)自定义initrd。
评论中讨论的其他信息:
首先,我认为您不了解cpio / tar的作用。cpio和tar都采用许多文件和/或目录,并将它们合并为一个文件或存档。
其次,我认为您不了解压缩的作用,压缩只会使生成的存档变小。您可以使用任何希望进行压缩的工具。
看到
https://wiki.ubuntu.com/CustomizeLiveInitrd
https://wiki.gentoo.org/wiki/Initramfs/Guide
第三,Linux内核使用cipo而不是tar。
看到
https://www.kernel.org/doc/Documentation/filesystems/ramfs-rootfs-initramfs.txt
请参阅“为什么要使用cpio而不是tar?” 部分
为什么用cpio而不是tar?
该决定是在2001年12月做出的。讨论从这里开始:
http://www.uwsg.iu.edu/hypermail/linux/kernel/0112.2/1538.html
并从此处开始生成第二个线程(特别是在tar vs cpio上):
http://www.uwsg.iu.edu/hypermail/linux/kernel/0112.2/1587.html
快速而肮脏的摘要版本(不能替代阅读上面的线程)是:
1)cpio是标准。它已有几十年的历史(从AT&T时代开始),并且已经在Linux上广泛使用(在Red Hat的设备驱动程序磁盘RPM内部)。这是一篇关于1996年的Linux Journal文章:
http://www.linuxjournal.com/article/1213
它不如tar流行,因为传统的cpio命令行工具需要_truly_hideous_命令行参数。但这并不能说明存档格式,还有其他工具,例如:
http://freecode.com/projects/afio
2)内核选择的cpio存档格式比任何(实际上是几十种)各种tar存档格式都更简单,更简洁(因此更易于创建和解析)。完整的initramfs存档格式在buffer-format.txt中说明,在usr / gen_init_cpio.c中创建,并在init / initramfs.c中提取。这三者加起来总共不到26k的人类可读文本。
3)在tar上标准化的GNU项目与在zip上标准化的Windows大致相关。Linux都不是其中的一部分,可以自由地做出自己的技术决定。
4)由于这是内核内部格式,因此很可能是
全新的内容。内核提供了自己的工具来创建和提取这种格式。使用现有标准是可取的,但不是必需的。
5)Al Viro做出了决定(引用:“ tar太丑陋了,不会在内核方面得到支持”):
http://www.uwsg.iu.edu/hypermail/linux/kernel/0112.2/1540.html
解释了他的理由:
http://www.uwsg.iu.edu/hypermail/linux/kernel/0112.2/1550.html
http://www.uwsg.iu.edu/hypermail/linux/kernel/0112.2/1638.html
最重要的是,设计并实现了initramfs代码。
find . | cpio --quiet --dereference -o -H newc | lzma -7 > ../cusotm.initrd.lz
如果该过程不起作用,请澄清您运行的命令和不起作用的命令。