Linux
什麼時候需要 initrd?
我已經讀到我可以在沒有 initrd 的情況下啟動核心,並且我還讀到了在 initrd 階段載入了額外的模組——據我所知,對於核心中未包含的必要驅動程序。
如果我使用 建構核心
make defconfig && make
,我可以期望核心在哪種硬體上啟動?一個相當現代的桌面?虛擬機?我什麼時候真正需要 initrd/initramfs?
我正在嘗試建構一個最小的系統來測試 Virtualbox,如果可能的話,我想保持簡單而不使用 initrd。
您可以
initrd
在沒有任何硬體的情況下啟動。我自己從不在台式機/筆記型電腦和家庭伺服器上使用它,因為它只會增加啟動時間。到目前為止,我發現它真正必要的唯一情況是當您的根文件系統位於 LVM 上時(但我可能錯了 - 也可能有一些方法可以解決這個問題)。如果您希望您的設置快速而簡單,您首先應該嘗試從核心配置中刪除所有不必要的東西。在配置核心時,有兩種通用方法可以做到這一點:
- 剝離- 嘗試擺脫所有不必要的模組和選項
要麼
- 建立- 進行最少的配置並添加您需要的東西
我個人推薦第二種選擇——僅僅因為它花費的時間更少,而且你避免被所有選項的不確定性所淹沒。作為一個很好的起點,您可以選擇一個足夠的 Pappy’s kernel seed。您可以在他的網頁上找到有關這些的更多資訊。使用這種方法,我這邊的一般提示是先執行
lspci -knn
,它會告訴您,您的大多數硬體目前使用哪些模組。