歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> 關於Linux >> Linux的系統啟動流程,boot loader,init

Linux的系統啟動流程,boot loader,init

日期:2017/3/1 15:53:00   编辑:關於Linux
Linux的系統啟動流程,boot loader,init 系統啟動流程 以debian6為例 1 加載BIOS的硬件信息與進行自我測試,並取得啟動設備(如硬盤、光盤、閃存) 2 讀取並執行啟動設備內MBR的boot loader(如grub等) 3 依據boot loader的設定加載kernel,kernel開始偵測硬件並加在驅動程序 4 硬件驅動成功後,kernel會主動呼叫init程序,而init會取得run-level信息 5 init執行/etc/init.d/rc腳本來准備軟件執行的工作環境(如網絡、時區等) 6 init執行run-level的各個服務之啟動(scipt方式) 7 init執行/etc/rc.d/rc.local文件 8 init執行終端機啟動login程序,等待用戶登錄 boot loader 1 每個硬盤的MBR只有一個 2 每個文件系統(filesystem,或者是partition)都會保留一塊啟動扇區(boot sector) 3 每個操作系統默認會安裝boot loader到他自己的文件系統的boot sector中 4 boot loader可以安裝在MBR中,boot loader也可以安裝在boot sector中 5 boot loader可以將管理權轉交給其他的boot loader init初始程序及其配置文件/etc/inittab /sbin/init最主要的功能就是准備軟件執行的環境,包括系統主機名、網絡設定、語系處理、文件系統格式即其他服務的啟動 /etc/inittab是/sbin/init的配置文件,此配置文件類似script,需要一步一步執行 init處理流程,也就是/etc/inittab執行步驟 1 設置默認的runlevel id:2:initdefault: 2 系統啟動初始化腳本 si::sysinit:/etc/init.d/rcS 3 運行runlevel為2的腳本 l2:2:wait:/etc/init.d/rc 2 4 設置ctrl+alt+del組合進行重啟 ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now 5 設置電源管理 pf::powerwait:/etc/init.d/powerfail start 6 啟動終端tty1 1:2345:respawn:/sbin/getty 38400 tty1 步驟詳細分析 1 上表第2步調用rsS其實是調用/etc/init.d/rc S, 上表第3步也是同樣調用/etc/init.d/rc 2 2 查看/etc/init.d/rc腳本,此腳本根據參數runlevel調用相應runlevel的腳本 相應runlevel的腳本的路徑為/etc/rc$runlevel.d/ 3 /etc/rc$runlevel.d/路徑下腳本被依次執行,啟動或關閉相應的服務 /etc/rc$runlevel.d/S* 需要開啟的服務 /etc/rc$runlevel.d/K* 需要關閉的服務 4 /etc/init.d/rc.local腳本在/etc/rc$runlevel.d/路徑下最後執行 /etc/init.d/rc.local腳本為用戶自定義系統啟動腳本 /etc/inittab主要語法 /etc/inittab由:(冒號)來分隔成4部分 1 id。最多4個字符,代表init的主要工作,只是簡單說明 2 runlevel。代表該初始化動作在哪些runlevel下運行 3 action。代表初始化的特別動作 4 process。代表需要進行的命令,通常是一些script 更詳細的可參考man inittab action初始化特別動作 initdefault 代表預設的runlevel設定值 sysinit 代表系統初始化的動作 ctrlaltdel 代表按下這3個按鍵是否可以重啟 wait 代表後面的process命令必須執行完畢才能繼續 respawn 代表後面的process命令可以無限制的再生。 例如getty啟動login,注銷後,此動作還會啟動login runlevel執行等級 runlevel作用就是規定系統使用不同的服務來啟動,根據目的設置相應的工作環境 不同版本的linux還需要查看/etc/inittab 0 halt 系統直接關機 1 single-user 單人維護模式,用在系統出問題時的維護 2 multi-user without NFS 多用戶文本模式,無NFS服務 3 full multi-user 完整含有網絡功能的多用戶純文本模式 4 unused 系統保留 5 X11 多用戶圖形界面,加載使用X Window 6 reboot 重啟 相關文件 /boot/vmlinuz-$(uname -r) linux核心文件 /boot/initrd-$(uname -r) 啟動時虛擬文件系統 /boot/grub/* boot loader程序 /etc/inittab init配置文件 /etc/init.d/rc 初始化系統啟動腳本 /etc/rc$runlevel.d/* 相應runlevel系統啟動腳本 /etc/init.d/rc.local 用戶自定義系統啟動腳本
Copyright © Linux教程網 All Rights Reserved