I'm using clonezilla-1.2.12 and need to add the Broadcom firmware to the initrd so it can netboot.

(clonezilla is debian-based and debian no longer includes the firmware blobs as they're non-free. Naturally then clonezilla doesn't either.)

(I can't use the Ubuntu-based clonezilla as Ubuntu has a bug in it where the Broadcom 5708 chipset Just Doesn't Work.)

I have what seems like a good process for doing so:

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

BUT linux refuses to recognize the redone initrd:

boot failure

I also tried making a single cpio archive (without using --append) and got the same result.

If I completely skip modifying the archive and just uncompress/recompress I still get the same result.

What is going wrong here?


The guilty culprit here was the xz step. Looks like the version of xz on my desktop was doing something incompatible with the decompressor in the clonezilla kernel.

Switching to gzip makes it works just fine.

According to Steven Shiau, it's necessary to use --check=crc32 when recompressing the initrd with xz. After doing that, everything works fine!

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.