initrd及initramfs檔案的製作

2021-10-11 22:40:15 字數 1396 閱讀 8777

啟動執行流程

initrd和 initramfs 中的檔案 在系統啟動的時候被執行

此兩者二者只可取其一或取0

// 取0為 無init***流程

// 二者都有則為initrd

initrd執行流程在核心流程上要早於initramfs.

也就是 1

2 只可取其一或取0

,在整個核心流程上如下:..

. initrd執行流程 ---1

... initramfs執行流程 ---2

initrd執行流程

/linuxrc

mount -t proc proc /proc

mount -t sysfs sysfs /sys

insmod ***

insmod yyy

mdev -s

// 然後a下一步是進入核心,做一些其他驅動的註冊

// 然後b掛載磁碟上的檔案系統,並執行/sbin/init

initramfs執行流程

/init

mount -t proc proc /proc

mount -t sysfs sysfs /sys

insmod ***

insmod yyy

mdev -s

mount /dev/*** /mnt

exec switch_root /mnt /sbin/init // 然後下一步一般是磁碟上的檔案系統 /sbin/init 的執行流程

檔案系統中的檔案

最少組成

initrd和 initramfs 裡面有一些檔案,也可以為空

如果 kernel 中有所有板子或者pc的驅動,那麼 initrd和 initramfs 中的檔案為空也可以.

通常組成
/dev/null 		: mknod -m 666 null 	c 1

3/dev/console : mknod -m 666 console c 5

1

對應 initrd 	  為 /linuxrc

對應 initramfs 為 /sbin/init

/etc/initab

/etc/fatab

mdev

對於 initramfs ,要有 switch_root

可 通過 make modules_install  install_mod_path=

/path/to/init***/

可在 /etc/inittab 中指定 執行 /etc/init.d/rcs,可在 /etc/init.d/rcs 中 執行 insmod ***

參考

修改initrd方法

開啟終端,進入initrd.gz所在目錄,先解壓initrd.gz gunzip initrd.gz 在當前目錄下建立一臨時目錄tmp mkdir tmp cd tmp 把上級目錄內解包的initrd進一步用cpio解包 cpio i f initrd 對目錄內解包的initrd匯出清單列表以便反向...

Initrd原始碼分析

initrd的作用有三 1.提高系統的可移植性 把更多的核心功能條目編譯成模組,不僅僅是為了減小核心體積,更重要的是面對各種不同的硬體架構,可以使用initrd中的linuxrc按需進行模組載入以驅動硬體,甚至對於cpu型別或者多處理機也可以進行手工選擇核心 配合syslinux這類boot loa...

Linux 檢視initrd內容

1 initrd格式 2.6及以後核心中的initrd.img採用cpio壓縮,不再是2.4核心使用的ext2格式,無法使用mount o loop 掛載。需要使用gunzip解壓縮,然後再使用cpio解包。root vm 0 11 centos tmp cp boot initramfs 3.10...