initrd에 파일을 추가하면 Linux가 파일을 읽지 못합니다.

initrd에 파일을 추가하면 Linux가 파일을 읽지 못합니다.

저는 clonezilla-1.2.12를 사용하고 있으며 네트워크 부팅이 가능하도록 initrd에 Broadcom 펌웨어를 추가해야 합니다.

(clonezilla는 데비안을 기반으로 하며 데비안에는 무료가 아니기 때문에 더 이상 펌웨어 blob이 포함되지 않습니다. 물론 clonezilla도 마찬가지입니다.)

(우분투에는 Broadcom 5708 칩셋이 작동하지 못하게 하는 버그가 있기 때문에 우분투 기반의 clonezilla를 사용할 수 없습니다.)

좋아 보이는 프로세스가 있습니다.

~# mkdir /tmp/cz-newinitrd 
~# cd /tmp/cz-newinitrd
/tmp/cz-newinitrd# xzcat /media/CLONEZILLA/live/initrd.img.orig > initrd
/tmp/cz-newinitrd# (cd /; find lib/firmware/bnx2 | cpio -o -H newc --append -O /tmp/cz-newinitrd/initrd)
/tmp/cz-newinitrd# xz -c initrd > /media/CLONEZILLA/live/initrd.img

그러나 리눅스는 다시 실행된 initrd를 인식하지 않습니다:

시작 실패

또한 --append 없이 단일 cpio 아카이브를 만들려고 시도했지만 동일한 결과를 얻었습니다.

아카이브 수정을 완전히 건너뛰고 압축을 풀거나 다시 압축해도 여전히 동일한 결과가 나타납니다.

여기서 무슨 문제가 있습니까?

답변1

여기서 범인은 xz단계입니다. xz내 데스크탑 버전이 Clonezilla 커널의 압축 해제기와 호환되지 않는 작업을 수행하는 것 같습니다 .

gzip으로 전환했더니 잘 작동했습니다.


~에 따르면스티븐 쇼--check=crc32, xz로 initrd를 다시 압축할 때 필요합니다. 이 작업을 수행하면 모든 것이 잘 작동합니다!

관련 정보