啟動執行流程
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...