initrdにファイルを追加すると、Linuxはファイルを読み取ることができません。

initrdにファイルを追加すると、Linuxはファイルを読み取ることができません。

私はclonezilla-1.2.12を使用しており、ネットワーク起動を可能にするためにinitrdにBroadcomファームウェアを追加する必要があります。

(clonezillaはDebianに基づいており、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を認識しません:

起動失敗

また、--appendなしで単一のcpioアーカイブを作成しようとしましたが、同じ結果が得られました。

アーカイブ変更を完全にスキップして解凍または再圧縮しても、同じ結果が表示されます。

ここで何の問題がありますか?

答え1

ここで犯人はxzステップです。xz私のデスクトップバージョンがClonezillaカーネルの圧縮解除プログラムと互換性のない操作を実行しているようです。

gzipに切り替えたのでうまくいきました。


~によるとスティーブンショー--check=crc32、xzでinitrdを再圧縮するときに必要です。これを行うと、すべてがうまく動作します!

関連情報