在initrd新增檔案導致linux無法讀取

在initrd新增檔案導致linux無法讀取

我使用的是clonezilla-1.2.12,需要將Broadcom 韌體新增至initrd 中,以便它可以進行網路引導。

(clonezilla 是基於 debian 的,debian 不再包含韌體 blob,因為它們不是免費的。當然,clonezilla 也不包含。)

(我無法使用基於Ubuntu的clonezilla,因為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,用xz重新壓縮initrd時需要使用。這樣做之後,一切正常!

相關內容