linux系統(tǒng)啟動(dòng)流程
1.首先通過bios加載磁盤(包括U盤耕赘,硬盤)爽茴,然后再去找EFI等文件系統(tǒng)分區(qū)寒矿,在分區(qū)中找到啟動(dòng)內(nèi)核程序(一般為grub或者elilo等)蹋半,在grub中配置啟動(dòng)vmlinuz內(nèi)核文件鹦聪。(vmlinuz見編譯內(nèi)核文章)账阻。
2.如果是vmlinuz-generic的話,一般情況下泽本,操作系統(tǒng)前期的一些開機(jī)動(dòng)畫淘太,會(huì)在vmlinuz內(nèi)核啟動(dòng)前進(jìn)行,這時(shí)候就需要initrd小文件系統(tǒng)了规丽,在它里面會(huì)有小部分linux命令等蒲牧。plymouth開機(jī)動(dòng)畫也是在這里面安裝調(diào)用,首先initrd的運(yùn)行是基于initrd中的init腳本赌莺。這個(gè)可以自行解開initrd冰抢,去看看init腳本怎么寫的。
3.如何解開 和 重新生成修改后的initrd
一般情況下艘狭,initrd都是以initrd.gz出現(xiàn)挎扰。
解開initrd
gzip -d initrd.gz
cpio -idmv < initrd
修改initd
在本機(jī)/boot/initrd-tree文件夾,這就是本機(jī)initrd.gz對(duì)應(yīng)的解開之后的目錄巢音。如果直接想修改本機(jī)initrd遵倦,上面的步驟可以略過,直接在initrd-tree中修改即可
cd initrd-tree
find . | cpio -o -H newc | gzip -9c > ../initrd-splash.gz //加入自定義修改后港谊,執(zhí)行下面命令打出新initrd包
如果要使用新的initrd文件骇吭,要么再去grub配置中,修改調(diào)用initrd地方改為新名稱歧寺,要么直接用新的覆蓋舊文件放入/boot/下(不建議)燥狰。