(gunzip 및 cpio)를 사용하여 커널 파일의 압축을 풀고 일부 파일을 덮어쓴 다음 모든 것을 다시 압축하여 생성된 파일이 부팅되지 않습니다.

(gunzip 및 cpio)를 사용하여 커널 파일의 압축을 풀고 일부 파일을 덮어쓴 다음 모든 것을 다시 압축하여 생성된 파일이 부팅되지 않습니다.

제목에서 알 수 있듯이 나는 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 이미지를 "굽고" 부팅할 기본 커널을 선택한 후 결과 커널 파일이 부팅할 수 없음을 발견했습니다. 실제로는 원본보다 크기가 더 큽니다. 가상 머신에서 시작하려고 할 때 보고된 오류는 다음과 같습니다.

https://ibb.co/rm5WRSz

이유는 모르겠습니다. 커널 파일 내부에서는 모든 것이 괜찮아 보입니다. 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

관련 정보