Das Hinzufügen von Dateien zu initrd führt dazu, dass Linux sie nicht lesen kann

Das Hinzufügen von Dateien zu initrd führt dazu, dass Linux sie nicht lesen kann

Ich verwende Clonezilla-1.2.12 und muss die Broadcom-Firmware zum Initrd hinzufügen, damit ein Netboot möglich ist.

(Clonezilla basiert auf Debian und Debian enthält die Firmware-Blobs nicht mehr, da sie nicht frei sind. Das gilt natürlich auch für Clonezilla.)

(Ich kann das Ubuntu-basierte Clonezilla nicht verwenden, da Ubuntu einen Fehler enthält, bei dem der Broadcom 5708-Chipsatz einfach nicht funktioniert.)

Ich habe hierfür ein scheinbar gutes Verfahren:

~# 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

ABER Linux weigert sich, das erneuerte Initrd zu erkennen:

Startfehler

Ich habe auch versucht, ein einzelnes CPIO-Archiv zu erstellen (ohne --append zu verwenden) und habe das gleiche Ergebnis erhalten.

Wenn ich die Änderung des Archivs vollständig überspringe und nur dekomprimiere/erneut komprimiere, erhalte ich dennoch dasselbe Ergebnis.

Was läuft hier schief?

Antwort1

Der Schuldige war hier der xzSchritt. Es sieht so aus, als ob die Version xzauf meinem Desktop etwas getan hat, das mit dem Dekompressor im Clonezilla-Kernel inkompatibel ist.

Durch die Umstellung auf gzip funktioniert es problemlos.


EntsprechendSteven Shiau, muss verwendet werden --check=crc32, wenn das initrd mit xz erneut komprimiert wird. Danach funktioniert alles einwandfrei!

verwandte Informationen