initrd 問題

如果您覺得您的問題不屬於 debian desktop 或是 debian server 版的範圍內,請在這裡發問。

版主: mufa

initrd 問題

文章訪客 » 週一 4月 03, 2006 10:19 am

怎樣才能製作出比較小的 initrd.img呢?
我單純的使用指令

mkinitrd -o /path/to/initrd.img-kernel-version kernel-version

產生的檔案有47m.

相對 一開始從光碟安裝的 檔案 相差太多. 且會導致 kernel panic.

得要 修改.confg參數才行得通. 不過 看別人產生的 檔案似乎都不會很大. 想請教各位 都是怎麼製作 initrd.img (或是 不用產生) 呢?
訪客
 

文章yzcie » 週二 4月 04, 2006 5:36 am

嗨, 訪客兄,
mount -t auto -o loop /boot/initrd.img-kernel-version /mnt/tmp 可以掛載 initrd.img 檔.
若 auto 無法辨識格式, 可以試試 cramfs.

du -s dir-name 可以顯示該檔案夾的總大小.(-h 可以改變單位)

請問您做出來的 initrd.img 跟 光碟安裝的 initrd.img 比較起來, 是哪些檔案/檔案夾大幅變大了呢?
或您有在 /etc/mkinitrd/modules 裡加入 module 嗎?

還有, 您試過用 gzip 壓縮嗎? 雖然可能只小不到1%...
yzcie
可愛的小學生
可愛的小學生
 
文章: 65
註冊時間: 週三 1月 26, 2005 3:19 pm
來自: 台灣

文章訪客 » 週二 4月 04, 2006 12:36 pm

yzcie 寫:嗨, 訪客兄,
mount -t auto -o loop /boot/initrd.img-kernel-version /mnt/tmp 可以掛載 initrd.img 檔.
若 auto 無法辨識格式, 可以試試 cramfs.

du -s dir-name 可以顯示該檔案夾的總大小.(-h 可以改變單位)

請問您做出來的 initrd.img 跟 光碟安裝的 initrd.img 比較起來, 是哪些檔案/檔案夾大幅變大了呢?
或您有在 /etc/mkinitrd/modules 裡加入 module 嗎?

還有, 您試過用 gzip 壓縮嗎? 雖然可能只小不到1%...


我mount initrd.img 後發現主要是因為 lib 的folder 過大, 約97M. 當中 modules 的folder 就用掉96M. 看起來 是 compile 成kernel 時 太多 driver 都被當作module了.
我compile kernel 時 大部分都用預設值 (除了 部分硬體需求而改的部分) 這樣 compile 出來的kernel 一定都這麼大嘛?? 還是非得 把 不要的 逐一把他從.config 中 拿走(這樣好像滿容易出錯)?? 如果說 把要加的module通通寫到 /etc/mkinitrd/modules 底下 就可以 節省空間了嘛?

謝謝您的回覆.
訪客
 

文章yzcie » 週二 4月 04, 2006 11:43 pm

嗨, 訪客兄,
如果您有裝預編的 kernel, 它們的 /lib/modules/kernel-version 的大小都在大約 50 MB 以內吧.
您是不是變動了不少的項目呢?

小弟並不熟悉 menuconfig 中的許多項目.
所以在設定時大多是採保守的做法, 把目前正在用的 /boot/config-kernel-version 複製一份到 /usr/src/kernel-source-version/.config (小弟都是從可以正常運作的預編版本入手)
再用 menuconfig 一次變動/增刪少數項目並進行編譯/安裝.
待確認新 kernel 跟 modules 沒問題後才再繼續進行其他更動.
主要是參照 Debian 參考手冊 中, 7.1.1 的做法.
因為小弟還很菜, 所以多花些時間多編幾次就當是練習..@@a

另外, 小弟做出來的 initrd.img 裡的 ./lib/modules/ 只有幾 MB 而已, mkinitrd 不會把所有的 modules 放進 initrd.img 去.
(小弟還不清楚 mkinitrd 是以什麼來做為該放哪些 modules 的準則)

而 /etc/mkinitrd/modules 應該是讓我們可以指定加入額外的 module 用的.
yzcie
可愛的小學生
可愛的小學生
 
文章: 65
註冊時間: 週三 1月 26, 2005 3:19 pm
來自: 台灣

文章訪客 » 週三 4月 05, 2006 6:59 pm

看起來主要是因為 我是kernel 是直接從kernel.org 下載, 且 .config 是採用一開始的預設值. 所以 很多 都被包進去的關係.

謝謝你的回覆 ; )


yzcie 寫:嗨, 訪客兄,
如果您有裝預編的 kernel, 它們的 /lib/modules/kernel-version 的大小都在大約 50 MB 以內吧.
您是不是變動了不少的項目呢?

小弟並不熟悉 menuconfig 中的許多項目.
所以在設定時大多是採保守的做法, 把目前正在用的 /boot/config-kernel-version 複製一份到 /usr/src/kernel-source-version/.config (小弟都是從可以正常運作的預編版本入手)
再用 menuconfig 一次變動/增刪少數項目並進行編譯/安裝.
待確認新 kernel 跟 modules 沒問題後才再繼續進行其他更動.
主要是參照 Debian 參考手冊 中, 7.1.1 的做法.
因為小弟還很菜, 所以多花些時間多編幾次就當是練習..@@a

另外, 小弟做出來的 initrd.img 裡的 ./lib/modules/ 只有幾 MB 而已, mkinitrd 不會把所有的 modules 放進 initrd.img 去.
(小弟還不清楚 mkinitrd 是以什麼來做為該放哪些 modules 的準則)

而 /etc/mkinitrd/modules 應該是讓我們可以指定加入額外的 module 用的.
訪客
 


回到 debian misc

誰在線上

正在瀏覽這個版面的使用者:Google [Bot] 和 1 位訪客