Take the 2-minute tour ×
Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems.. It's 100% free, no registration required.

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?

share|improve this question
add comment

1 Answer

up vote 2 down vote accepted

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!

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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