Linux系統(tǒng)開機從BIOS到登錄環(huán)境過程
Linux系統(tǒng)開機從BIOS到登錄環(huán)境
- 通電
- bios初始化
- grub2磁盤引導階段
- grub2文件引導階段
- 指定boot所在分區(qū)
- 啟動內核,只讀掛載 / 設備
- 啟動init程序進入初始化階段
- 啟動systemd初始化階段
- 取/etc/systemd/中的文件
- 啟動程序
- 啟動登陸環(huán)境
可以總結為五個階段
- 內核的引導
檢測硬件設備,設備驅動初始化,將 / 只讀掛載,載入初始進程 systemd,內核文件丟失請重新安裝內核
- 運行 init
##查看當前默認啟動級別 [root@test ~]# ls -l /etc/systemd/system/default.target lrwxrwxrwx. 1 root root 36 Oct 14 ?2017 /etc/systemd/system/default.target -> /lib/systemd/system/graphical.target ##啟動級別 runlevel0.target ?-> poweroff.target runlevel1.target ?-> rescue.target runlevel2.target ?-> multi-user.target runlevel3.target ?-> multi-user.target runlevel4.target ?-> multi-user.target runlevel5.target ?-> graphical.target runlevel6.target ?-> reboot.target
- 系統(tǒng)初始化進程
- 建立終端
- 用戶登錄系統(tǒng)
描述Linux系統(tǒng)從開機到登陸界面的啟動過程
開機過程:
1、加載 BIOS
系統(tǒng)固件加載 BIOS(基本輸入輸出系統(tǒng)),然后進行開機自檢(POST),并開始初始化部分硬件;
BIOS:basic input output system,它是一套程序,寫死到主 板上的一個內存芯片中,這個內存芯片在沒有通電的情況下也能將數(shù) 據(jù)記錄下來(ROM,非揮發(fā)性)。
2、讀取 MBR系統(tǒng)固件搜索磁盤上的主啟動記錄(MBR)
由于我們的系統(tǒng)軟件大多放置在硬盤中,所以 BIOS 會指定啟動 的設備,好讓我們可以讀取磁盤中的操作系統(tǒng)內核文件,這時候就需要 一個引導裝載程序來處理內核文件加載(LOAD)的問題,這個引導裝 載程序就被稱為 BootLoader。
那這個 BootLoader 放在哪里呢?
就放在我們系統(tǒng)上第一個硬盤上的第一個扇區(qū)里面。也就是我們 說的 MBR:master boot record。
3、啟動加載器(grub2)
系統(tǒng)固件從磁盤中讀取啟動加載器(Boot Loader),然后將系統(tǒng)
控制權交給啟動加載器。在 7 中,我們的 BootLoader 是通過一個 grub 程序來實現(xiàn)的。
現(xiàn)在是 grub2.0,前一版本是 grub0.97。
grub2 的主要功能:
- 1、提供菜單:選擇不同的啟動選項;
- 2、加載內核文件:直接指向可啟動的程序區(qū)段來開始 OS;
- 3、轉交其他 Loader(多系統(tǒng)時)。
- 4、顯示菜單
啟動加載器從我們的磁盤中加載其配置,然后向用戶顯示用于啟 動的可能配置的菜單,這就是我們在開機的時候會看到的讓你上下選 擇什么什么版本啊,什么什么東西的那個界面。
我們可通過以下方式進行配置:
- /etc/grub.d/
- /etc/default/grub
- /boot/grub2/grub.cfg(非手動)
5、加載內核
在用戶做出選擇(超時)后,啟動加載器會從磁盤中加載配置的
內核及 initramfs,并將其置于內存中;
initramfs 是一個歸檔文件,里面包含了啟動時所需要的必要硬 件的內核模塊、初始化腳本等等。
在 RHEL7 中,initramfs 得到了加 強,包含自身可用的整個系統(tǒng)。
6、系統(tǒng)內部傳遞信息
這時候我們的啟動加載器又將系統(tǒng)控制權交給內核,從而傳遞啟 動加載器的內核命令行中指定的任何選項,以及 initramfs 在內核中 的位置。
7、初始化內核這時候會在 initramfs
中找到驅動程序的所有硬件,并且初始化它,然后作為 PID1 從 initramfs 中執(zhí)行/sbin/init。
PID1 就是systemd,代表的是系統(tǒng)啟動的第一個用戶級 進程,是所有其他進程的父進程。
8、執(zhí)行單元初始化完成后
我們的 systemd 會執(zhí)行 initrd.target 目標 的所有文件,這些所有的東西都包括在/sysroot 上掛載實際的 root 文件系統(tǒng)中。
9、系統(tǒng)回歸
接下來內核 root 文件系統(tǒng)會回到之前掛載于/sysroot 上的系統(tǒng) root 文件系統(tǒng),然后就是我們 systemd 的事情了,它會使用系統(tǒng)中 安裝的 systemd 副本來自行重新執(zhí)行。
10、開機界面
我們們熟悉的輸入賬號密碼的界面了
總結
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
詳解linux 下安裝軟件tar.gz, rpm,deb的方法
本篇文章主要介紹了linux 下安裝軟件tar.gz, rpm,deb的方法 ,具有一定的參考價值,感興趣的小伙伴們可以參考一下。2016-12-12VirtualBox 未指定要bridged的網(wǎng)絡界面的解決辦法
這篇文章主要介紹了VirtualBox 未指定要bridged的網(wǎng)絡界面的解決辦法的相關資料,希望通過本文能幫助到大家,讓大家解決遇到這樣的問題,需要的朋友可以參考下2017-10-10Linux學習之CentOS(十三)--CentOS6.4下Mysql數(shù)據(jù)庫的安裝與配置的詳細方法
本篇文章主要介紹了Linux學習之CentOS(十三)--CentOS6.4下Mysql數(shù)據(jù)庫的安裝與配置,有需要的同學可以了解一下。2016-11-11