Agregar archivos a initrd hace que Linux no pueda leerlos

Agregar archivos a initrd hace que Linux no pueda leerlos

Estoy usando clonezilla-1.2.12 y necesito agregar el firmware de Broadcom al initrd para que pueda arrancar en red.

(clonezilla está basado en Debian y Debian ya no incluye los blobs de firmware porque no son gratuitos. Naturalmente, clonezilla tampoco los incluye).

(No puedo usar el clonezilla basado en Ubuntu porque Ubuntu tiene un error en el que el chipset Broadcom 5708 simplemente no funciona).

Tengo lo que parece un buen proceso para hacerlo:

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

PERO Linux se niega a reconocer el initrd rehecho:

error de inicio

También intenté crear un único archivo cpio (sin usar --append) y obtuve el mismo resultado.

Si me salto por completo la modificación del archivo y simplemente descomprimo/recomprimo, obtengo el mismo resultado.

¿Qué está pasando aquí?

Respuesta1

El culpable aquí fue el xzpaso. Parece que la versión de xzmi escritorio estaba haciendo algo incompatible con el descompresor en el kernel de clonezilla.

Cambiar a gzip hace que funcione bien.


De acuerdo aSteven Shiau, es necesario utilizarlo --check=crc32al recomprimir el initrd con xz. Después de hacer eso, ¡todo funciona bien!

información relacionada