系統啓動過程

 

linux啓動過程
 
linux啓動過程有以下的步驟:
BIOS à (boot sequence àMBR:Master Boot Record(1 sector, 512 bytes)) Bootloader à kernel à init(/etc/inittab) à /etc/rc.local àlogin
以下我將對以上每部分解釋一下:
先讀取BIOS,其中(boot sequence)存取了系統啓動的順序。然後再在從定義的順序對應的的MBRMBR中定義了對系統的引導,其中包括根目錄的分區root,內核(vmlinuz)的位置,以及initrd。這都是引導linux的必要的配置。對於系統的引導以前常用的是LILO,而由於LILO對磁盤類型支持的種類比較少,被GRUB所取代。
grub引導之後系統開始啓動init進程,該進程的配置文件時/etc/inittabinit進程的順序:
1.       設定默認運行的等級
2.       啓動系統初始化腳本rc.sysinit
3.       執行運行級別下的每一個腳本
4.       設定ctrl+alt+del組合鍵的功能
5.       設定電源故障時執行的腳本
6.       設定要啓動的虛擬控制檯/dev/tty[1-6]
7.       設定當指定運行級別爲5時做GUI初始化腳本
之後系統啓動完成。啓動rc.sysinit的過程有:
1.       激活udevSElinux
2.       設置內核參數/etc/sysctl.conf
3.       設置系統時鐘
4.       裝載鍵盤映射
5.       啓動交換分區
6.       設置主機名,/etc/sysconfig/network
7.       根文件系統並重新以讀寫方式掛載根文件系統
8.       激活RAIDLVM設備
9.       啓動磁盤配額
10. 檢查並掛載其它文件系統,/etc/fstab
11. 清楚不再使用鎖和PID文件
在執行一定等級時,啓動的腳本在/etc/rc.d/下對應等級rcN.d目錄下,以S開頭的腳本,同理關閉的腳本是以K開頭的腳本。
 
GRUB知識小結
 
GRUB爲最新的linux的引導程序,假設系統存在硬盤上,其MAB大小爲512byte,其中bootloader大小爲446byte,還有64byte存儲磁盤分區,每個分區用16byte表示,還有2兩個字節存儲其它信息。其中bootloader只有446字節存儲引導信息,很難提供強大的功能,所以GRUB提供了分段式的方式,在bootloader中只有第一段,其第1.5段和第2段存在於/boot/grup文件夾下,其中第1.5段提供了對多種文件系統硬盤的驅動(除了RAID1之外的其它RAIDLVM),第2段中則提供了grub的主配置文件,其中分別定義了一下幾部分:
default=1 在有多個啓動菜單中默認啓動的系統
timeout=5 默認等待的時間
splashp_w_picpath=(hd0,0)/grub/11.xpm.gz     grub背景圖片
hiddenmenu 是否隱藏啓動的菜單
title Red Hat Enterprise Linux Server (2.6.28.10-zly) 系統名稱
        root (hd0,0) 核心所在的分區
        kernel /vmlinuz-2.6.28.10-zly ro root=/dev/vol0/root rhgb quiet 核心所在的具體位置,真是分區所在的位置,及掛載的位置,是否顯示加載的信息
        initrd /initrd-2.6.28.10-zly.img initrd所在的位置,這是一個虛擬的系統的位置,啓動系統所必須的文件。
每一個title代表有啓動選項的一個菜單。
 
GRUB的修復:
grup的損壞分爲兩種:
1.                        配置文件損壞。這種情況我們可以手動編寫配置文件,如果在開機情況下,可以將上面介紹的grub配置文件寫入。注意:root hd0,0)表示boot文件夾所在的分區,(hd0,0)表示第一塊兒硬盤的第一個分區,第一個0是順序,第二個0表示分區順序。如果boot和根文件夾在一個分區,則上述表示根分區,但kernelinitrd的路徑該寫成/boot/kernel /boot/initrd 切記兩個文件的版本號都必須完全相同。如果在重新開機時,分別輸入rootkernelinitrd,然後再引導。或者輸入roothdNN)之後用setup hdNN是硬盤次序,來自動安裝grub
2.                                   如果bootloader損壞則。如果開機情況下輸入grep-install --root-directory=/boot /dev/sda重新安裝grub。如果已經關機,則需把硬盤掛載到其他電腦上用上述命令安裝grub,同時在配置文件中修改相應的數據。
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章