Вы переупаковываете с
cd your_working_directory_with_modifications
find . | cpio --quiet --dereference -o -H newc | lzma -7 > ../cusotm.initrd.lz
Вторая команда переименовывает initrd, вы указываете initrd для использования при загрузке в grub.
Я предлагаю вам протестировать (загрузить) пользовательский 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 года. Обсуждение началось здесь:
http://www.uwsg.iu.edu/hypermail/linux/kernel/0112.2/1538.html
И породил второй поток (в частности, tar против cpio), начиная здесь:
http://www.uwsg.iu.edu/hypermail/linux/kernel/0112.2/1587.html
Краткая и быстрая версия (которая не заменит чтение вышеупомянутых тем):
1) cpio - это стандарт. Его десятилетия (от дней AT & T) и уже широко используются в Linux (внутри RPM, дисков с драйверами устройств Red Hat). Вот статья Linux Journal об этом с 1996 года:
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. Все три вместе составляют менее 26 тыс. Человек текста.
3) Проект GNU по стандартизации на tar примерно так же актуален, как и Windows по стандартизации на zip. Linux также не является частью и может принимать собственные технические решения.
4) Поскольку это внутренний формат ядра, он мог бы быть
чем-то совершенно новым. Ядро предоставляет свои собственные инструменты для создания и извлечения этого формата в любом случае. Использование существующего стандарта было предпочтительным, но не обязательным.
5) Аль Виро принял решение (цитата: «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
Если эта процедура не работает, уточните, какие команды вы выполняли, а какие - нет.