天天看點

linux核心 initrd,initrd和引導Linux核心

initrd / initramfs是可選的,不是必需的。 bzImage是純核心映像,可以由引導加載程式直接引導。但是,執行某些任務(加載檔案系統子產品,磁盤通路驅動程式,從沒有固定名稱/路徑的某些可交換媒體安裝根檔案系統等)可能是必要的,這通常需要通路檔案系統和使用者空間工具。

這就是initramfs的用途:它是一個CPIO歸檔,它連接配接到核心映像(核心映像是initramfs的容器而不是其他方式),無論是在核心映像本身,還是在引導時由引導加載程式。

該CPIO存檔包含一個初始rootfs,其中包含設定所有裝置以通路正确的根檔案系統所需的子產品,以及一些識别這些裝置的程式,加載子產品,執行其他一些啟動任務,将正确的根檔案系統重新安裝到/并啟動/ sbin /在裡面

initrd類似,主要差別在于它是一個檔案系統映像,可能并且通常是壓縮的。核心必須支援内置的檔案系統,并将此圖像作為初始/安裝。

由于CPIO在幾個數量級上更簡單,是以initramfs優先于initrd,因為這既節省了對内置任何檔案系統子產品的要求,也使initramfs建立更容易。而不是必須建立一個ext2映像,loopdevice安裝并填充它,它歸結為一個簡單的存檔建立,與使用tar不同。

但是,如果您使用核心映像中内置的所有必需驅動程式和子產品編譯核心,并且您的根檔案系統裝置在系統中具有固定名稱,則您不需要initramfs,因為核心可以自行完成。

繼續閱讀