Linux系統初始化筆記整理

Linux系統初始化

概述:

BIOS初始化

引導裝載程序

內核初始化

Init初始化

BIOS初始化

1,外圍設備的檢測

2,選擇引導設備

3,讀取引導設備的MBR

MBR: 全稱爲Master Boot Record,即主引導記錄. 硬盤的0柱面0磁頭1扇區也叫主引導扇區.

(此圖片來自百度) 

主引導程序(BootLoader): 負責從活動分區中裝載,並運行系統引導程序佔446byte

分區表(DPT,Disk Partition Table): 四個分區項每個16字節,總共佔64byte

結束標誌字: 硬盤有效標誌固定爲55AA,如果該標誌錯誤系統就不能啓動.2byte

 

MBR = BootLoader + DPT + Magic Number = 512byte

 

引導裝載程序

調用引導裝載程序:

兩種方式:

1,BIOS將控制權交給安裝在MBR中的初始化程序裝載器(IPL)

2,BIOS將控制權交給另一個引導裝載程序,再由這個裝載程序將控制權移交給IPL

RedHat Enterprise Linux下默認使用GRUB這個引導裝載程序.

由於BootLoader佔用了MBR446byte,所以IPL的大於就不能超過446byte.

引導裝載程序:

第一階段 GRUBIPL找到並裝載第二階段的引導裝載程序.(即初始化引導裝載器)

第二階段 GRUB讀取/boot/grub/grub.conf配置文件,加載啓動分區,內核與RAMDISK文件.

(GRUB在安裝時系統會選擇性的將一部分安裝在MBR或引導分區/boot,將剩下的部分安裝在引導分區/boot,以文件的形式存在.)

如下圖,GRUB被安裝在/boot引導分區上

stage1剛好512字節,它唯一的工作就是找到並裝載stage2

stage2藉助stage1_5驅動文件系統,並查找grub.conf,顯示啓動菜單供用戶選擇,然後根據用戶的選擇或默認配置加載操作系統內核,並將控制權交給操作系統內核,由內核完成操作系統的啓動。

GRUB特色:

1,引導提示時可以使用命令行界面,方便靈活.

2,可引導的文件系統ext2/ext3 ReiserFS JFS FAT minix FFS

3,支持MD5密碼保護.  (使用工具:#grub-md5-crypt)

4.如果/dev/sda中的MBR損壞,使用以下命令即可重新安裝引導裝載程序.

  #/sbin/grub-install /dev/sda

/boot/grub/grub.conf

:grub.conf0表示第一個

全局定義部分:

Default 指定默認啓動項,這裏默認是選擇第一個啓動項,這裏也就一個啓動項.

Timeout 指定給用戶選擇的時間,這裏是5

Splashimage指定GRUB啓動時的背景畫面.

Hiddenmenu 隱藏選單 password GRUB密碼, --md5參數爲啓用MD5加密.

開機選項部分:

Title 啓動選項標題

Root 指定要加載的根,也就是/boot啓動分區

Kernel 要加載的內核文件, ro 只讀的方式加載root=/根分區, 傳遞內核參數

Initrd 指定要加載到內存中的RAMDISK文件(加載系統啓動所需的驅動模塊)

引導windows xp :

title windows  xp   
rootnoverify (hd0,1)   
chainloader +1    

 

內核初始化

1,設備檢測

2,設備驅動程序程序初始化

3,以只讀的方式掛載根文件系統

4,載入初始進程: init (PID:1,系統第一個啓動的進程,所有進程的父進程.)

 Initrd映像文件裏包含了系統開機需要加載的模塊,如果所需的驅動程序沒有編譯在內核裏,那必須存在於initrd映像文件中,內核會將initrd映像暫時掛載到RAMDISK,以便初始化程序使用.(內核初始化過程存放在/var/log/dmesg)

 

 

Init初始化

1,初始化運行級別

2,系統初始化腳本

3,對應運行級別的腳本目錄,根據某個關鍵字順序啓動相關服務

4,定義UPS電源中斷/恢復腳本

5,在虛擬控制檯生成getty

6,如果是運行級別5則初始化X

Init 讀取的初始化文件: /etc/inittab

系統默認運行級別:

0: 關機 1: 單用戶模式 2: 不帶NFS 的多用戶模式 3: 完全多用戶模式 4: 保留無定義

5: 圖形登錄 6: 重啓

S , s , single 備用單用戶模式

Emergency 緊急模式 (繞過 rc.sysinit, sulogin,)所以只能只讀的方式掛載根.

 

/etc/rc.d/rc.sysinit的主要工作:

1,激活udev selinux

2,依據/etc/sysctl.conf文件設定內核參數

3,設定系統時鐘

4,裝載鍵盤設置

5,啓用交換分區

6,設置主機名

7,檢查並重新掛載根文件系統

8,激活RAIDLVM設備

9,啓用磁盤配額

10,檢查並掛載其他文件系統

11,清理過時的鎖和PID文件

 

/etc/fstab

掛載設備(設備名,UUID,LABEL)  掛載點 文件系統類型 掛載參數 dump(0:從不備份,上次備份則顯示距今天的天數) fsck(/始終爲1即第一個檢查,0爲不檢查)

 

system V 運行級別:

每個運行級別都有對應的目錄: /etc/rc.d/rcX.d ,system V init腳本放在

/etc/rc.d/init.d目錄中,運行級別目錄中的符號鏈接使用startstop參數調用

Init.d目錄內的腳本.

S: start K: kill 數字爲優先級,優先級大的先開後關,以數小爲大.

 

/etc/rc.d/rc.local system V 初始化的最後階段.

在系統進入運行級別時執行,通常用於自定義開機執行需要的進程.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章