리 패키지
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
셋째, 리눅스 커널은 tar 대신 cipo를 사용합니다.
보다
https://www.kernel.org/doc/Documentation/filesystems/ramfs-rootfs-initramfs.txt
"왜 tar가 아닌 cpio입니까?"를 참조하십시오. 부분
왜 tar가 아닌 cpio입니까?
이 결정은 2001 년 12 월에 이루어졌습니다. 토론은 여기에서 시작되었습니다.
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 (Red Hat의 장치 드라이버 디스크 인 RPM 내부)에서 이미 널리 사용되고 있습니다. 다음은 1996 년의 Linux Journal 기사입니다.
http://www.linuxjournal.com/article/1213
전통적인 cpio 명령 줄 도구에는 _truly_hideous_ 명령 줄 인수가 필요하기 때문에 tar만큼 인기가 없습니다. 그러나 이것은 아카이브 형식에 대해 아무 말도하지 않으며 다음과 같은 대체 도구가 있습니다.
http://freecode.com/projects/afio
2) 커널이 선택한 cpio 아카이브 형식은 다양한 문자 그대로의 tar 아카이브 형식보다 간단하고 깔끔합니다 (따라서 작성 및 구문 분석이 더 쉽습니다). 전체 initramfs 아카이브 형식은 usr / gen_init_cpio.c에 작성되고 init / initramfs.c에 추출 된 buffer-format.txt에 설명되어 있습니다. 이 세 가지가 모두 26k 미만의 사람이 읽을 수있는 텍스트입니다.
3) tar로 표준화 한 GNU 프로젝트는 zip으로 표준화 한 Windows와 거의 관련이 있습니다. Linux도 그 일부가 아니며 자체적으로 기술적 인 결정을 내릴 수 있습니다.
4) 이것은 커널 내부 형식이므로
새로운 것일 수 있습니다 . 커널은 어쨌든이 형식을 만들고 추출 할 수있는 자체 도구를 제공합니다. 기존 표준을 사용하는 것이 바람직했지만 필수는 아닙니다.
5) Al Viro가 결정을 내렸다 ( "견적 : 추악한 것은 못 생겼고 커널 쪽에서는 지원되지 않을 것이다").
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
프로 시저가 작동하지 않는 경우를 실행 하여 아카이브를 다시 작성하십시오. 실행 한 명령과 작동하지 않는 명령을 명확히하십시오.