Bạn đóng gói lại với
cd your_working_directory_with_modifications
find . | cpio --quiet --dereference -o -H newc | lzma -7 > ../cusotm.initrd.lz
Lệnh thứ hai đổi tên initrd, bạn chỉ định initrd sẽ sử dụng khi khởi động trong grub.
Tôi đề nghị bạn kiểm tra (khởi động) initrd tùy chỉnh trước khi di chuyển hoặc đổi tên nó.
Thông tin bổ sung từ các cuộc thảo luận trong các ý kiến:
Đầu tiên tôi không nghĩ bạn đang hiểu vai trò của cpio / tar. cả cpio và tar đều lấy một số tệp và / hoặc thư mục và biến chúng thành một tệp hoặc lưu trữ.
Thứ hai tôi không nghĩ bạn hiểu vai trò của nén, nén chỉ đơn giản là làm cho kho lưu trữ kết quả nhỏ hơn. Bạn có thể sử dụng bất kỳ công cụ nào bạn muốn để nén.
Xem
https://wiki.ubfox.com/CustomizeLiveInitrd
https://wiki.gentoo.org/wiki/Initramfs/Guide
Thứ ba, kernel linux sử dụng cipo thay vì tar.
Xem
https://www.kernel.org/doc/Documentation/filesystems/ramfs-rootfs-initramfs.txt
Xem phần "Tại sao cpio chứ không phải tar?" phần
Tại sao cpio chứ không phải tar?
Quyết định này được đưa ra vào tháng 12 năm 2001. Cuộc thảo luận bắt đầu tại đây:
http://www.uwsg.iu.edu/hypermail/linux/kernel/0112.2/1538.html
Và sinh ra một chủ đề thứ hai (cụ thể là trên tar vs cpio), bắt đầu từ đây:
http://www.uwsg.iu.edu/hypermail/linux/kernel/0112.2/1587.html
Phiên bản tóm tắt nhanh và bẩn (không thay thế cho việc đọc các chủ đề trên) là:
1) cpio là một tiêu chuẩn. Nó đã tồn tại hàng thập kỷ (từ thời AT & T) và đã được sử dụng rộng rãi trên Linux (bên trong RPM, đĩa trình điều khiển thiết bị của Red Hat). Đây là một bài viết trên Tạp chí Linux về nó từ năm 1996:
http://www.linuxjournal.com/article/1213
Nó không phổ biến như tar vì các công cụ dòng lệnh cpio truyền thống yêu cầu các đối số dòng lệnh _truly_ leatherous_. Nhưng điều đó không nói gì về định dạng lưu trữ và có các công cụ thay thế, chẳng hạn như:
http://freecode.com/projects/afio
2) Định dạng lưu trữ cpio được chọn bởi kernel đơn giản và gọn gàng hơn (và do đó dễ tạo và phân tích cú pháp hơn) so với bất kỳ (hàng chục) định dạng lưu trữ tar khác nhau. Định dạng lưu trữ initramfs hoàn chỉnh được giải thích trong bộ đệm-format.txt, được tạo trong usr / gen_init_cpio.c và được trích xuất trong init / initramfs.c. Cả ba cùng nhau đạt tổng cộng dưới 26k văn bản có thể đọc được.
3) Tiêu chuẩn hóa dự án GNU trên tar gần như liên quan đến tiêu chuẩn hóa Windows trên zip. Linux không phải là một phần của một trong hai, và được tự do đưa ra các quyết định kỹ thuật của riêng mình.
4) Vì đây là định dạng bên trong kernel, nó có thể dễ dàng trở thành
một thứ hoàn toàn mới. Kernel cung cấp các công cụ riêng để tạo và trích xuất định dạng này. Sử dụng một tiêu chuẩn hiện có là tốt hơn, nhưng không cần thiết.
5) Al Viro đã đưa ra quyết định (trích dẫn: "tar xấu xí như địa ngục và sẽ không được hỗ trợ về phía hạt nhân"):
http://www.uwsg.iu.edu/hypermail/linux/kernel/0112.2/1540.html
giải thích lý do của mình:
http://www.uwsg.iu.edu/hypermail/linux/kernel/0112.2/1550.html
http://www.uwsg.iu.edu/hypermail/linux/kernel/0112.2/1638.html
và, quan trọng nhất, đã thiết kế và triển khai mã initramfs.
find . | cpio --quiet --dereference -o -H newc | lzma -7 > ../cusotm.initrd.lz
Nếu quy trình đó không hoạt động, hãy làm rõ những lệnh bạn đã chạy và những gì không hoạt động.