initrdにファイルを追加するとLinuxが読み取れなくなる

initrdにファイルを追加するとLinuxが読み取れなくなる

私は clonezilla-1.2.12 を使用しており、ネットブートできるように Broadcom ファームウェアを initrd に追加する必要があります。

(clonezilla は Debian ベースであり、ファームウェア blob は非フリーであるため Debian には含まれません。当然、clonezilla にも含まれません。)

(Ubuntu には Broadcom 5708 チップセットが動作しないというバグがあるため、Ubuntu ベースの 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

しかし、Linux は再作成された initrd を認識しません。

起動失敗

また、単一の cpio アーカイブ (--append を使用せずに) を作成してみましたが、同じ結果が得られました。

アーカイブの変更を完全にスキップして、解凍/再圧縮するだけでも、同じ結果が得られます。

ここで何が間違っているのでしょうか?

答え1

ここでの犯人はxzステップでした。私のデスクトップ上の のバージョンが、xzclonezilla カーネルの解凍プログラムと互換性のない動作をしていたようです。

gzip に切り替えると正常に動作するようになります。


によるとスティーブン・シャウ--check=crc32、 initrd を xz で再圧縮するときに使用する必要があります。これを行うと、すべて正常に動作します。

関連情報