標籤:流程圖 linux 電腦
Oops:
1、此流程圖包含開機到登入shell的相對完整流程。
2、在每個階段解釋的過程中會受到硬體、系統版本等的不同會有區別。
3、難免會有差錯,望指出。
4、謝謝。^_^
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/54/27/wKiom1R5sWnxGCZTAAG2OuClgXU471.jpg" title="linux_upstart.png" alt="wKiom1R5sWnxGCZTAAG2OuClgXU471.jpg" />
第一部分:POST(Power On Self Test)
各硬體狀態檢測,如果硬體有問題,將"不能"繼續下一步操作,這時候只有我們自己觀察錯誤提示以及通過聲音來辨別大概硬體的故障!不同硬體的故障發出的聲音也不盡一致,大概可以使用以下方法來判斷:
長聲不斷:記憶體故障
持續短音:電源或者顯卡故障
當硬體檢測都通過時候,這時候該BIOS出馬了。
第二部分:BIOS(Basic Input Output System)
這個階段可以查看電腦當前整體硬體資訊狀態以及設定硬體日期時間、是否開啟虛擬化、裝置引導順序、關閉和啟用裝置、安全等資訊。當然這些需要CMOS電池供電。還記得BIOS密碼嗎? 主機上有多個硬碟,隨身碟,光碟片等裝置,應該從哪裡引導? 進去調節調節。當然主板上的BIOS有幾種,配置方法也有點區別,大體上分:Award BIOS、AMI BIOS、Phoenix BIOS。這兩部分基本都是"寫死"了,我們能做的不是很多。
第三部分:Boot Loader(MBR)
MBR:Master Boot Record,位於磁碟0柱面0磁頭1扇區,容量大小512位元組,其中446位元組為mbr程式,64位元組為DPT(磁碟分割表),2個位元組55AA。Linux(CentOS6)使用grub引導程式,根據grub.conf設定檔的設定,載入相應的核心以及initramfs檔案。grub運行使用者自己指定root、init層級等設定。
第四部分:Kernel
載入核心/boot/vmlinuz-Version-Release.el6.arch,在自身初始化完成之後,需要能夠找到並運行第一個使用者程式(這個程式通常叫做“init”程式)。使用者程式存在於檔案系統之中,因此,核心必須找到並掛載一個檔案系統才可以成功完成系統的引導過程,這就要藉助ramdisk,ramdisk裡面儲存了啟動所必須的使用者程式和驅動程式。CentOS 5使用initrd程式,CentOS 6以後使用initramfs。核心初始化結束,進行根切換,運行第一個進程。
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/54/26/wKioL1R5y6riGuf5AAGVmG7WiMM341.jpg" title="kernel_initramfs.png" alt="wKioL1R5y6riGuf5AAGVmG7WiMM341.jpg" />
第五部分:init
Linux啟動並執行第一個進程,init會根據使用者的配置選擇相應的啟動層級進行系統的進一步初始化。通過/etc/inittab來擷取運行層級,調用第一個初始化指令碼rc.sysinit。
第六部分:rc.sysinit
檢測SELinux狀態、設定主機名稱、啟用SWAP、設定核心參數、啟用RAID、讀寫方式重新掛載根檔案系統、更新磁碟配額等都有此指令碼完成,更多詳細情況可以grep ‘^#‘ /etc/rc.d/rc.sysinit。
第七部分:rc#.d
根據使用者指定的運行層級運行/etc/rc.d/rc#.d/下面以S開頭的指令碼。最後執行/etc/rc.d/rc.local指令碼中的指令。
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/54/27/wKiom1R5yojhXl72AAPfWwJd12E939.jpg" title="rcN.d.png" alt="wKiom1R5yojhXl72AAPfWwJd12E939.jpg" />
第八部分:mingetty
系統會預設開啟多個終端程式,並且這些終端程式都具有respawn特性。
第九部分:shell環境初始化
如果使用者是非登入shell,那麼上一步就已經結束,如果使用者具有登入許可權,在驗證通過之後,系統會會對環境進行初始化工作。分別依次調用的指令碼為/etc/profile, /etc/profile.d/*.sh, ~/.bash_profile, ~/.bashrc, /etc/bashrc。
linux開機啟動流程