linux-GRUB啓動流程

一,Linux系統是由內核和根啓動文件組成,內核和根分別擔負着不同的任務。

 首先向大家介紹下內核和根文件,根文件一般存儲在/lib64裏,主要是由庫文件、程序組成

庫又包含: 函數集合、過程調用、函數調用

爲大家解說下內核的功能和組成:

內核主要是由:

(1)核心文件:/boot/vmlinuz-版本號-發行號(目錄名)

     Ramdisk

   Centos5 /boot/initrd-版本號-發行號.img

   Centos6 /boot/initramfs-版本號-發行號.img

以下是詳細命令使用,這裏只是用#ls /boot顯示內核文件參數。

#ls –lh /boot/vmlinuz-2.6.32-504.e16.x86_64  查看文件大小

#file /boot/vmlinuz-2.6.32-504.e16.x86_64   查看文件類型

如圖9.5-1所示:

wKiom1XqtVXCwexGAAD5tyn8qNg781.jpg

(2)模塊文件存放位置/lib/modules/版本號-發行號(也是目錄),如圖9.5-2所示:

參考命令是 #ls/lib/modules/2.6.32-431.el6.x86_64/

其中內核元數據在kernel中,我們查看一下,其中***部分圈出來的就是模塊文件。

wKioL1Xqt6eA8tpIAAIHTmZZXNI411.jpg

注意:內核不能驅動硬盤,內核需要安裝硬盤驅動,我們需要外在輔助機制,把硬盤上需要的驅動程序引至到虛擬的硬盤文件中啓動,給予內存的虛擬驅動程序,如圖所示9.5-3:

wKioL1Xqt-WTVbtTAADw9-B0LL8174.jpg

二,接下來爲大家說一下

(1)Centos 系統啓動流程

a,POST:加電自檢;

ROM:CMOS(芯片)-à被CPU控制

    BIOS:基本輸入輸出系統 (啓動硬件驅動)

       ROM+RAM 編值優先級ROM->RAM先後順序

b,BOOT Sqeuence:引導次序硬盤、光盤、U盤等

Bootloader:引導加載器,程序

功能:提供一個菜單,選擇要啓動的系統或者內核版本,之後把選定的內核安裝在指定的內存空間中解壓展開,然後把領導權移交內核。

Windowsntloader

Linux

    LILOlinux loader

    GRUBGrand UNformBootloader (支持windows linux 交互啓動

    Grub 0.x:grub legacy

Grub 1.x :grub2

查看grub版本信息,查看命令#rpm –q grub如圖9.5-4所示:

wKiom1XqthqTL-cPAABlEQ_cmiE840.jpg

cMBR(主引導記錄):

       446bootloader(加載器

 64:磁盤分區表(fat)

 2:55AA()

  d,GRUB(主引導記錄)

#ls /boot/grub 查看grub 參數如圖9.5-5所示:

wKioL1XquGOCEsTBAAEwIX5yvHo643.jpg

bootloader1st stage 加載

       幫助grub識別文件系統的1.5 階段

       disk2nd stage 讀取分區

e,內核:

獲取權限後,自身初始化,加載硬件驅動程序“內核以只讀方式加載根文件”。然後運行/init文件:/sbin/init

Init程序類型:

      SysV:init centos 5 標準 -- 配置文件/etc/inittab

      Upstartinit  centos 6 -- 配置文件/etc/inittab,/etc/init/*.conf

Systemd:虛擬初始化,開機快捷  蘋果機制 centos 7--

配置文件/usr/lib/system/system,/etc/system/system

內核:Ramdisk-àramfs 改變進化

Centos 5 initrd     工具程序:mkinitrd

Centos 6 initramfs  工具程序:mkinitrd,dracut

所以,系統初始化流程圖是:

Post->bootsequence->bootloader->kernel->rootfs->init


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