CentOS 6 啟動流程
準備:
虛擬機:VMware Workstation Pro 14
操作系統:CentOS 6.10
一.開機自檢
??當用戶按下電源開關,POST加電自檢,檢查設備上的硬件設備是否能夠正常工作,如果正常則把控制權交給BIOS。
二.BIOS
??BIOS(Basic Input and Output System)是基本輸入輸出系統的簡稱,是一個燒錄在ROM上的小程序,保留著有關計算機系統最基本的輸入輸出程序,是不可修改的。BIOS通過引導設置,尋找到第一個啟動設備,並加載啟動設備中的第一個扇區中的內容。
三.MBR和Stage1階段
??MBR是位於硬盤的第0磁道第0扇區的一段代碼,大小為512Byte,其中前446Byte記錄了引導操作系統用的Bootloader,後64Byte記錄了硬盤的分區信息,最後以55AA兩個Byte作為結束標誌信息。Bootloader有兩個功能,直接引導加載內核文件,或者轉交給其他Bootloader。
?? ???????? MBR查看截圖
??在CentOS 6中,引導操作系統的整個程序稱為GRUB,GRUB程序遠大於MBR中的446Byte,因此,在MBR中的引導信息稱之為Stage1,其主要作用是系統啟動裝載stage2。
MBR對於一個操作系統而言是很重要的,我們可以使用一下的命令查看、備份MBR信息、恢復
hexdump -C /dev/sda -n 512
備份
dd if=/dev/sda of=/root/mbr.bak bs=1 count=512 把MBR備份到/root/mbr.bak,或者備份到別的主機上。
恢復
dd if=/root/mbr.bak of=/dev/sda bs=1 count=512
四.GRUB和內核
??Stage2位於/boot/grub下,Stage1並沒有識別文件系統的能力,所以stage1和stage2之間還有一個Stage1.5作為兩者的中間橋梁。Stage1.5位於硬盤第一個扇區後面的扇區裏,具有識別啟動區分文件系統的能力,Stage1.5為Stage1到Stage2做了一個良好的過渡。Stage2加載入內存後,相當於整個GRUB加載完成。
五.系統初始化
??內核首先讀取/etc/inittab文件,該文件決定了系統啟動默認的運行級別。之後讀取/etc/rc/rc.sysinit腳本,完成設置主機名、歡迎信息、激活udev、掛載/etc/fstab文件中定義的文件系統等基礎操作。接著根據系統默認的運行級別,讀取/etc/rc.d/下對應的rcN.d文件,這裏N代表著運行級別。rcN.d文件裏有關於這個運行級別需要啟動和停止的服務腳本,其中K開頭表示該服務停止,S開頭表示該服務啟動。最後再執行兜底腳本/etc/rc.d/rc.local,這樣就完成了系統初始化。
六.啟動終端,登錄shell
??完成了系統初始化之後,系統會執行/sbin/mingetty打開終端,讓用戶輸入用戶名和密碼。再調用login程序,核對密碼。如果密碼正確,就從文件/etc/passwd 中讀取用戶指定的shell,然後啟動shell,最後把控制權交給shell,這樣就完成了整個系統的啟動過程。
CentOS 6 啟動流程