Добавление файлов в initrd делает невозможным их чтение Linux

Добавление файлов в initrd делает невозможным их чтение Linux

Я использую clonezilla-1.2.12 и мне нужно добавить прошивку Broadcom в initrd, чтобы можно было выполнить сетевую загрузку.

(Clonezilla основана на Debian, а Debian больше не включает в себя файлы прошивки, поскольку они не являются свободными. Естественно, Clonezilla тоже этого не делает.)

(Я не могу использовать Clonezilla на базе Ubuntu, так как в Ubuntu есть ошибка, из-за которой чипсет Broadcom 5708 просто не работает.)

У меня есть, как мне кажется, хороший процесс для этого:

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

ошибка загрузки

Я также попробовал создать один архив cpio (без использования --append) и получил тот же результат.

Если я вообще пропущу изменение архива и просто распакую/сожму повторно, я все равно получу тот же результат.

Что здесь не так?

решение1

Виновником здесь был xzшаг. Похоже, версия xzна моем рабочем столе делала что-то несовместимое с декомпрессором в ядре clonezilla.

При переключении на gzip все работает нормально.


В соответствии сСтивен Шиау, необходимо использовать --check=crc32при пересжатии initrd с помощью xz. После этого все работает отлично!

Связанный контент