系統啟動
1、系統加電
2、bios 自檢 → 本地裝置列舉和初始化
3、post **從記憶體中清除,但執行時服務(runtime service)仍然留在記憶體。
4、bios 從 cmos 的設定中找出第1/2/3 啟動裝置(可能有第4個),然後逐個嘗試,
並在第乙個 」active「狀態的硬碟上讀入其 mbr
第一階段引導引導程式
1、mbr 實際上是由3個部分組成 :主引導引導程式(master bootloader code,446 位元組)、主分割槽表 (ppt)、magic nubmer (0xaa55)組成
主分割槽表有4個記錄,對應主分割槽1-主分割槽4,共64 位元組。最後的 magic number 是 2 位元組
2、主引導引導程式搜尋主分割槽表,掃瞄全部4個分割槽記錄,確保只有1個是被標為」active「 的(用 fdisk 可以設定某個分割槽為 active 分割槽)。
然後讀入該分割槽的引導扇區(前512 位元組)。active 分割槽一般是 c 盤或者 linux 的第乙個分割槽
3、主引導引導程式的作用就是讀入第2階段的引導引導程式
第二階段引導引導程式
1、第2階段引導引導程式的目的是載入核心和 initrd 。grub 和 lilo 都是把 boot loader 程式分成兩部分,一部分在 mbr ,一部分在」active" 分割槽的引導扇區
2、第2階段引導引導程式被讀入記憶體後,它讀取 root() 命令給出的分割槽下的 grub/grub.conf ,顯示乙個選單,供使用者選擇
3、grub 可以細分為3個階段,中間的乙個是 stage1.5 ,它跟在 stage1 的後面,目的是讓 grub 能夠識別檔案系統的型別
核心1、核心自解壓
2、按照 bootloader 向它提供的 initrd 在記憶體中的位址,把 /dev/initrd 的內容拷貝到 /dev/ram ,並釋放 /dev/initrd 所占用的記憶體
3、把 /dev/ram 按 rw 的模式掛載為初始根檔案系統
4、執行其上面的 /linuxrc 或者 /init 指令碼,目的是載入驅動模組
5、在 /linuxrc 和 /init 指令碼中,會有 pivot_root ()或者 switchroot 把 /sysroot 下的真正根檔案系統裝置掛載到 / ,把初始根檔案系統掛載到 /initrd 下
6、/linuxrc 和 /init 指令碼的後面會 umount /initrd 下的初始根檔案系統(即使沒有完全解除安裝,也會在 /etc/rc.d/rc.sysinit 中把它們全部解除安裝)
7、接下來是啟動 init 程序。在 2.4 核心中,這個步驟是由核心完成的。但在 2.6 核心中,這個步驟是由 /init 指令碼完成的。
init
1、init 首先執行 /etc/rc.d/rc.sysinit 進行系統的初始化
2、而 rc.sysint 會先執行 /etc/rc.d/init.d/functions ,獲得一些有用的函式,例如 daemon()、action ()、success()、failure()等
3、按照預設執行級別或者 grub 啟動時的 kernel 行給出的執行級別執行 /etc/rcn.d/ 下的指令碼,先執行 k 開頭的(按從低到高),再執行s開頭的(從低到高)
這個過程「有可能」是通過執行 /etc/rc.d/rc 指令碼實現的。因為 rc 指令碼是為改變 runlevel 而做的,那麼從關機(level 0)到 正常(level3/5)應該也算是
一種特殊的改變 runlevel 的情況吧
4、按照 /etc/inittab 的要求在指定的虛擬控制台上建立 mingetty 程序,提示輸入使用者名稱和密碼
5、執行 login 命令,login 命令會做如下工作 :
a)如果存在 ~/.hashlogin ,則以 "quiet" 的方式登入,不顯示郵件、不列印 motd
如果存在 /var/log/lastlog ,則列印最後登入時時間
b)設定環境變數,包括 home、mail、path 、shell、term 等
path 值預設是 /usr/local/bin:/bin:/usr/bin (對於普通使用者而言),
對於 root 而言,則是 /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin 。
c)如果不是 quiet login ,則列印使用者的郵件數量和 /etc/motd 檔案)
d)啟動 login shell (預設是 /bin/sh),並執行 ~/.bashprofile
e)~/.bashprofile 會自動執行 ~/.bashrc ,而 ~/.bashrc 又呼叫 /etc/bashrc
系統啟動過程
linux 啟動過程 linux 啟動過程有以下的步驟 bios boot sequence mbr master boot record 1 sector,512 bytes bootloader kernel init etc inittab etc rc.local login。以下我將對以上...
rhel系統啟動過程 Linux 系統啟動過程
按下系統的電源開關,過一會就可以看到linux的登入介面了。你是否曾經想過,從按下電源開關到登入介面出現,這後面到底發生了什麼?linux 系統在啟動過程中,首先是韌體 pc 上大多是 cmos bios 的物理檢測,諸如檢測系統的顯示卡 cpu 和硬碟等,可從系統按下電源後看到此檢測資訊 檢測無問...
rhel系統啟動過程 Linux系統啟動過程簡介
1 bios加電自檢 計算機啟動後,首先會進行韌體bios的自檢,即所謂的post,然後把保持在mbr主引導記錄中的主引導引導程式到記憶體中 2 載入主引導引導程式 mbr 主引導引導程式通過分割槽表查詢活動分割槽,然後將活動分割槽的次引導引導程式從裝置讀入記憶體並執行 3 載入次引導引導程式 gr...