Linux系統啟動

2022-03-27 16:34:10 字數 2792 閱讀 3734

1.系統啟動流程大概

1)啟動bios

2)mbr中的引導** bootcode

3)執行引導程式

linux中用的最多的是grub;引導程式的主要作用是用來載入核心;    

4)載入系統核心

5)執行init

6)runlevel

init根據當前預設的執行級別來啟動相關的程式及裝置;

2.bios (basic input output system)

bios稱為基本輸入輸出系統,一般儲存在主機板中的bios晶元中;

計算機啟動後,執行的第乙個程式就是bios;

bios負責檢查硬體並且查詢可啟動裝置;

可以在bios中定義可啟動裝置;例如usb、cdrom、hd;

所謂的可啟動裝置,就是裝置上具有引導資訊;

3.mbr

mbr分割槽機制中;裝置前512個位元組為啟動資訊;其中最後4個位元組為55aa的表示可啟動;

裝置的前446個位元組為其引導**;

bios找到可啟動裝置後執行其引導**;

引導**的功能是引導不同的系統;不同的系統有不同的引導**,比如windows和linux的引導**就不同;

引導**用來查詢當前的引導程式;因為mbr的位元組數有限,只能去用來載入比較複雜的引導程式;

linux中常用的引導程式是grub;

4.grub

grub幾乎可以用來引導所有的作業系統;

grub的相關檔案儲存在 /boot/grub 目錄中;

/boot目錄一般儲存與系統啟動相關的檔案,比如linux核心就儲存在這裡;

其中 /boot/grub/grub.cfg是啟動時的配置檔案;可以修改該檔案來新增需要引導的裝置;

5.核心 kenrel

mbr的引導**負責找到並載入linux核心;

linux的核心儲存在 /boot/vmlinuz-版本號 ;

linux一般還需要載入核心模組的打包檔案:/boot/initramfs-版本號.img

linux為了保持核心的精簡,將一些不常用的驅動、功能編譯成模組,在需要的時候載入;這些模組被打包成乙個 initramfs檔案;比如鍵盤、u盤驅動等;

早期linux使用的是initrd檔案;而initramfs 是 initrd 的優化版本,更加靈活且節省空間;

命令dmesg可以檢視本次啟動時核心的輸出資訊;

dmesg

這些資訊包括:核心在載入驅動、給記憶體進行區域劃分、初始化主機板硬碟u盤usb裝置等等;

在出現核心級的故障時需要看這些資訊,比如有些裝置驅動不起來;

/var/log/dmesg 檔案中也儲存了這些資訊;

總的來說就是說根據grub的配置,來啟動核心;

6.init

核心啟動完後,系統將啟動第乙個程序,即init;

用 top 命令可以看到乙個 pid 為1的程序就是 init;

topinit的作用是呼叫 /etc/rc.d/rc.sysinit 指令碼,負責對系統進行初始化,掛載檔案系統,並根據執行級別啟動相應服務;

linux的執行級別:

0    ->關機

1    ->單使用者模式

2    ->不帶網路的多使用者模式

3    ->多使用者模式

4    ->未使用

5    ->圖形化模式

6    ->重新啟動

最常用的執行級別是3和5;它們之間的區別是乙個有圖形介面,乙個只有命令列介面;

init的配置檔案:

可以通過 /etc/inittab 修改預設的執行級別;

其它一些配置檔案存放在 /etc/init 目錄下;

每個啟動級別對應的啟動服務儲存在 /etc/rc.d/rc[0123456].d中;

命令 runlevel 可顯示當前及上乙個執行級別;

切換執行級別可用init 命令;

例如切換到級別3:

init 3

7.單使用者修改root密碼

普通使用者的密碼忘記了,可以用root使用者來修改;

如果root使用者的密碼忘了,可以進入單使用者模式來修改;

單使用者模式下登入是不需要密碼的;即執行級別1;

可以在啟動時引導核心時,傳遞引數 1 或者 single 來進入單使用者模式;

單使用者模式下不啟動任何服務;

在單使用者模式下通過命令 passwd 來修改密碼;

具體操作:

在啟動介面按 上 或 下 鍵 ,停住;

按 e 開始編輯;

選中核心 kernel 那一行,按e 編輯;

在最後加乙個引數 1即可強制核心以級別1單使用者模式啟動;

按b開始啟動;

用命令 passwd 修改密碼;

exit 命令退出單使用者模式;

但是這樣有個隱患:任何人可以接近這台計算機都可以修改root密碼;

8.grub加密

通過在 /etc/grub/grub.conf 中的啟動配置中加入如下引數即可對grub加密:也就是在配置檔案中加入一行

password --md5 加密後的密碼

grub加密後想在引導時進行修改必需先輸入 grub密碼;

加密後的密碼可通過 grub-md5-crypt 生成;

如果grub密碼也忘了,只能將硬碟取下啦,掛載到另外一台linux系統的機器中,找到grub.conf,把加密配置刪除掉;

這樣還是有安全隱患,如果硬碟被偷走了,就沒辦法了;那麼只能進行分割槽級別的加密對根分割槽進行加密;

linux系統啟動

本文簡單介紹一下從我們按開機鍵到可以登入系統,這段時間系統和電腦硬體是怎麼一起工作的。既做為對自己知識的乙個總結整理,也可以給linux初級使用者做乙個入門介紹,高手請略過。一般來說linux的啟動可以分成三個階段 bios階段,系統引導階段,系統啟動階段。一 bios階段 bios 基本輸入輸出系...

linux系統啟動

本文簡單介紹一下從我們按開機鍵到可以登入系統,這段時間系統和電腦硬體是怎麼一起工作的。既做為對自己知識的乙個總結整理,也可以給linux初級使用者做乙個入門介紹,高手請略過。一般來說linux的啟動可以分成三個階段 bios階段,系統引導階段,系統啟動階段。一 bios階段 bios 基本輸入輸出系...

linux 系統啟動

系統啟動流程 我們稱之為基本輸入輸出系統,一般儲存在主機板上的bios晶元中,負責檢查硬體並且查詢可啟動裝置 可設定啟動順序 如果乙個裝置是可啟動,那麼第乙個扇區512位元組的最後兩位元組是55aa mbr bios找到可啟動裝置後執行其引導 引導 為第一扇區的前446位元組 功能 載入乙個更複雜的...