제목에서 알 수 있듯이 나는 gunzip과 cpio를 사용하여 커널 파일의 압축을 풀고(첫 번째 파일은 initrd.img-5.10.0-18-amd64.gz로 가정) 일부 파일을 덮어쓰고 모든 것을 다시 패키지하려고 합니다. 문제는 생성된 새 커널 파일이 부팅 가능하지 않다는 것입니다. 누군가 내가 이유를 이해하도록 도와줄 수 있나요? 심지어 크기도 다릅니다. 내가 하고 싶은 것은 Ubuntu 22.04의 CUBIC을 호스트 OS로 사용하고 Debian 11을 다음과 같이 사용하여 새로운 프로필, 로고 및 이미지 세트로 Debian 11 ISO 이미지를 사용자 정의하려고 할 때 initrd.img* 파일의 내용을 변경하는 것입니다. CUBIC의 "방문자". 내가 내린 명령은 다음과 같습니다.
mkdir /home/ziomario/Scrivania/PassT-Cubic/kernels
mkdir /home/ziomario/Scrivania/PassT-Cubic/kernels/unzipped
mkdir /home/ziomario/Scrivania/PassT-Cubic/kernels/unzipped/initrd.img-5.10.0-18-amd64
cd /home/ziomario/Scrivania/PassT-Cubic/kernels/
gunzip -k initrd.img-5.10.0-18-amd64.gz
mkdir /home/ziomario/Scrivania/PassT-Cubic/kernels/unzipped/initrd.img-5.10.0-18-amd64
cpio -idv < initrd.img-5.10.0-18-amd64 -D /home/ziomario/Scrivania/PassT-Cubic/kernels/unzipped/initrd.img-5.10.0-18-amd64
mkdir -p usr/share/plymouth/
mkdir -p usr/share/plymouth/themes/homeworld/
cp /usr/share/plymouth/debian-logo.png usr/share/plymouth/
cp /usr/share/plymouth/themes/homeworld/debian.png usr/share/plymouth/themes/homeworld/
cp /usr/share/plymouth/themes/homeworld/logo.png usr/share/plymouth/themes/homeworld/
cp usr/share/plymouth/debian-logo.png /home/ziomario/Scrivania/PassT-Cubic/kernels/unzipped/initrd.img-5.10.0-18-amd64/usr/share/plymouth/
cp usr/share/plymouth/themes/homeworld/debian.png /home/ziomario/Scrivania/PassT-Cubic/kernels/unzipped/initrd.img-5.10.0-18-amd64/usr/share/plymouth/themes/homeworld
cp usr/share/plymouth/themes/homeworld/logo.png /home/ziomario/Scrivania/PassT-Cubic/kernels/unzipped/initrd.img-5.10.0-18-amd64/usr/share/plymouth/themes/homeworld
cd /home/ziomario/Scrivania/PassT-Cubic/kernels/unzipped/initrd.img-5.10.0-18-amd64
find . -print -depth | cpio -o > ../../initrd.img-5.10.0-18-amd64
find: warning: you have specified the global option -depth after the argument
-print, but global options are not positional, i.e., -depth affects tests
specified before it as well as those specified after it. Please specify global
options before other arguments.
893621 blocks
cd ../..
gzip initrd.img-5.10.0-18-amd64
CUBIC을 사용하여 새 ISO 이미지를 "굽고" 부팅할 기본 커널을 선택한 후 결과 커널 파일이 부팅할 수 없음을 발견했습니다. 실제로는 원본보다 크기가 더 큽니다. 가상 머신에서 시작하려고 할 때 보고된 오류는 다음과 같습니다.
이유는 모르겠습니다. 커널 파일 내부에서는 모든 것이 괜찮아 보입니다. Google 드라이브에 잘못된 파일을 넣었습니다. 어쩌면 당신 옆에서 시험해 보고 싶나요? 매우 유용한 지원에 감사드립니다.
https://drive.google.com/drive/folders/16z5INJTSB3YcpzE980q9eqRIRVG02-JH?usp=sharing
어쨌든 보고된 오류는 다음과 같습니다.https://ibb.co/rm5WRSz
답변1
해결책은 다음과 같습니다.
find . -depth | cpio --create --format='newc' > ../../initrd.img-5.10.0-19-amd64