
我使用的是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時需要使用。這樣做之後,一切正常!