歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux系統教程:定制5M的RedHat 5.8系統

Linux系統教程:定制5M的RedHat 5.8系統

日期:2017/2/28 14:48:53   编辑:Linux教程

對系統的裁剪首先要先了解系統的整個啟動流程,明白其所需要的配置文件;這樣在操作的時候才能清楚自己在做什麼,以及需要做什麼

啟動流程詳解

POST-->BIOS(Boot Sequence) -->MBR讀取BootLoader--->Kernel~initrd~-->init(/etc/inittab)

計算機本身不會執行程序,系統剛剛啟動的時候會將某個ROM中的程序映射到cpu可以尋址的地址空間中去並且能夠讓cpu能夠執行其中的指令,這些指令就是完成系統檢測的,檢測完成後如果核心硬件沒有問題時,緊接著根據BIOS中所設定的啟動流程去依次的尋找對應設備上的MBR;如果MBR存在就會讀取MBR中的Bootloader,Bootloader中配置了所有引導的操作系統的內核所在位置,然後將內核裝載到內存,進行解壓縮並完成內核初始化以後,Bootloader將控制權交給內核

內核初始化

內核初始化完成的工作;硬件探測-->裝載驅動-->掛載根文件系統-->啟動用戶空間的第一個進程(即init)。init本身的配置文件是/etc/inittab 紅帽6上是upstart(也稱呼為init,upstart的配置文件在/etc/inittab和/etc/init/*.conf的文件

initrd介紹

內核完成初始化要依賴於驅動程序,這些驅動程序如果沒有直接做在內核當中的時候,就需要到某個文件路徑去裝載這個驅動程序,當內核訪問根文件系統的設備,但是設備驅動沒有直接裝載到內核時,內核首先要到文件系統上找這個設備驅動,但是文件系統又沒有被掛載,initrd就是內核與文件系統的中間人。initrd有內核所依賴到的額外的設備驅動,最重要的是根文件系統的驅動內核是借助initrd為內核提供訪問真正的文件系統所需要的基本驅動程序所以initrd是個輔助性的過渡性的中間層,能夠實現將kernel與真正的文件系統連接起來的,連接之後,工作即完成了

init主要完成的工作

init的功能即是在inittab配置文件內容定義,主要是:設置默認運行級別、系統初始化腳本(依賴腳本/etc/rc.d/rc.sysinit)、運行指定級別的服務腳本(服務腳本在/etc/rc.d/init.d/目錄下,這些服務腳本都有鏈接,即鏈接到/etc/rc.d/rc#.d/目錄下,#代表是系統的運行級別(rc0.d--rc6.d),還有最後一個運行的腳本rc。local 設置ctrl+alt+delet組合鍵的意義 設置突然斷電時的程序 設置電源恢復後的程序然後啟動虛擬終端。(有了默認運行級別及初始化腳本,系統就可以跑起來的)

/etc/rc.d/rc.sysinit主要功能

在inittab執行的第二步是執行/etc/rc.d/rc.sysinit腳本程序,檢測,並且以讀寫方式重新掛載根文件系統;設定主機名;檢測並掛載/etc/fstab中的其他文件系統;激活交換分區;啟用swap分區初始化外圍硬件設備的驅動;根據/etc/sysctl.conf設定內核參數激活udev和selinux;激活lvm和RAID設備清理過期鎖和FID文件

Copyright © Linux教程網 All Rights Reserved