Przepakowujesz za pomocą
cd your_working_directory_with_modifications
find . | cpio --quiet --dereference -o -H newc | lzma -7 > ../cusotm.initrd.lz
Drugie polecenie zmienia nazwę initrd, określasz initrd, który ma być używany podczas uruchamiania systemu grub.
Sugeruję przetestowanie (uruchomienie) niestandardowego initrd przed przeniesieniem lub zmianą nazwy.
Dodatkowe informacje z dyskusji w komentarzach:
Po pierwsze nie sądzę, że rozumiesz rolę cpio / tar. zarówno cpio, jak i tar pobierają wiele plików i / lub katalogów i tworzą je w jednym pliku lub archiwum.
Po drugie, nie sądzę, że rozumiesz rolę kompresji, kompresja po prostu zmniejsza wynikowe archiwum. Możesz użyć dowolnego narzędzia do kompresji.
Widzieć
https://wiki.ubuntu.com/CustomizeLiveInitrd
https://wiki.gentoo.org/wiki/Initramfs/Guide
Po trzecie, jądro Linuksa używa cipo zamiast tar.
Widzieć
https://www.kernel.org/doc/Documentation/filesystems/ramfs-rootfs-initramfs.txt
Zobacz „Dlaczego cpio zamiast tar?” Sekcja
Dlaczego CPIO zamiast smoły?
Decyzja została podjęta w grudniu 2001 roku. Dyskusja rozpoczęła się tutaj:
http://www.uwsg.iu.edu/hypermail/linux/kernel/0112.2/1538.html
I pojawił się drugi wątek (szczególnie na tar vs cpio), zaczynając tutaj:
http://www.uwsg.iu.edu/hypermail/linux/kernel/0112.2/1587.html
Szybka i brudna wersja podsumowania (która nie zastępuje czytania powyższych wątków) to:
1) CPIO jest standardem. Ma dziesiątki lat (od czasów AT&T) i jest już szeroko stosowany w systemie Linux (w RPM, dyskach ze sterownikami urządzeń Red Hata). Oto artykuł na ten temat w Linux Journal z 1996 roku:
http://www.linuxjournal.com/article/1213
Nie jest tak popularny jak tar, ponieważ tradycyjne narzędzia wiersza polecenia cpio wymagają argumentów wiersza polecenia naprawdę. Ale to nic nie mówi o formacie archiwum, a istnieją alternatywne narzędzia, takie jak:
http://freecode.com/projects/afio
2) Format archiwum CPIO wybrany przez jądro jest prostszy i czystszy (a zatem łatwiejszy do utworzenia i analizy) niż jakikolwiek z (dosłownie dziesiątek) różnych formatów archiwów tar. Pełny format archiwum initramfs wyjaśniono w pliku-buforze-format.txt, utworzonym w usr / gen_init_cpio.c i wyodrębnionym w init / initramfs.c. Wszystkie trzy razem zawierają mniej niż 26 tys. Tekstu czytelnego dla człowieka.
3) Projekt GNU standaryzujący na tar jest mniej więcej tak samo ważny jak system Windows na zipie. Linux nie jest częścią żadnego z nich i może podejmować własne decyzje techniczne.
4) Ponieważ jest to wewnętrzny format jądra, może to być
coś zupełnie nowego. Jądro zapewnia własne narzędzia do tworzenia i wyodrębniania tego formatu. Zastosowanie istniejącego standardu było lepsze, ale nie konieczne.
5) Al Viro podjął decyzję (cytat: „smoła jest brzydka jak diabli i nie będzie wspierana po stronie jądra”):
http://www.uwsg.iu.edu/hypermail/linux/kernel/0112.2/1540.html
wyjaśnił swoje rozumowanie:
http://www.uwsg.iu.edu/hypermail/linux/kernel/0112.2/1550.html
http://www.uwsg.iu.edu/hypermail/linux/kernel/0112.2/1638.html
i, co najważniejsze, zaprojektował i wdrożył kod initramfs.
find . | cpio --quiet --dereference -o -H newc | lzma -7 > ../cusotm.initrd.lz
Jeśli ta procedura nie działa, wyjaśnij, jakie polecenia uruchomiłeś, a co nie.