CentOS 6系統啟動引導過程講解

來源:互聯網
上載者:User

CentOS 6系統啟動引導過程講解

POST --> BootSequence(BIOS) --> BootLoader --> Kernel (ramdisk) --> rootfs --> /sbin/init

第一步、載入BIOS

BIOS擔負著初始化硬體,檢測硬體功能,以及引導作業系統的責任。在早期,BIOS還提供一套運行時的服務程式給作業系統及應用程式使用。BIOS程式存放於一個斷電後內容不會丟失的唯讀記憶體中;系統過電或被重設(reset)時,處理器第一條指令的地址會被定位到BIOS的儲存空間中,讓初始化程式開始運行。

第一階段

自我檢測(Power On Self Test):

按下電源以後,CPU第一條指令指向BIOS晶片(ROM唯讀記憶體;一般情況為唯讀,BIOS程式可升級,中端高端伺服器上有兩個BISO晶片,防止BIOS升級失敗後可回退)中的BIOS程式載入到記憶體運行,BIOS(Basic Input/Output System的縮寫、中文:基本輸出入系統 (BIOS))程式運行起來後會識別檢測各個硬體。

如果某些檢測到硬體有問題時:

1.相關硬體指示燈會變顏色(紅色或者橙色)

2.屏蔽有問題的硬體繼續進行下一步;如果達到臨界點下一步無法進行; (例如一些工業標準伺服器有多路處理器,多根記憶體條... 將有問題硬體所在槽位設定成disabled)

第二階段:Boot Sequence

bios程式自檢完成後會載入CMOS晶片中(隨機儲存空間RAM)的BIOS設定資訊(時間,密碼,啟動項等);

Boot Sequence(BIOS)為使用者設定啟動順序由哪個裝置啟動電腦,如光碟片磁碟機、硬碟、磁碟片、USB 隨身碟等, 按照Boot Sequence設定啟動順序,遍曆裝置的第0柱面第0磁軌第1個扇區(也叫MBR),如果發現這個扇區0xAA559結束,則BIOS認為它是一個可開機磁區,進入第三階段;否則再找下個下一個啟動項中設定的下一個裝置,直到找到為止;如果都沒有BIOS會提示沒有找到作業系統。

第三階段:Boot Loader(啟動載入器)

當BIOS確定要啟動哪個啟動裝置後,它會去載入裝置第0柱面第0磁軌第1個扇區中512位元組內容程式到記憶體位址00000:7c00中,然後跳轉到00000:7c00處將控制權交給這段代碼,到此,電腦不再由BIOS中固有的程式來控制,變成了這一小段程式(446)執行掌控電腦進行下一步工作(參考:一個作業系統的實現 作者:於淵)

MBR:

位於硬碟的0柱面、0磁頭、第1扇區稱為主開機磁區(也叫主引導記錄MBR),大小為512位元組

第一部分主引導程式(boot loader)佔446個位元組

第二部分區表資訊佔64位元組(一個分區佔16個位元組,所以只能分4個主要磁碟分割)

第三部分是magic numb佔兩個位元組,校正MBR資訊

Boot Loader中的程式不屬於哪個作業系統,它只是為了讓電腦引導作業系統(核心),所以只要這個程式能引導對應的作業系統,其實用哪個都無所謂。Boot Loader作用找到核心後將其載入到記憶體中,電腦不再由Boot Loader來掌管,

linux上常見的Boot Loader:

1.LILO

2.GRUB

GRUB功能比較強大,很多linux都使用GRUB作為啟動載入器,它既可以引導linux核心,也可以引導window

以下為grub的內容

123456789101112131415161718[root@www~]#cat/boot/grub/grub.conf#grub.confgeneratedbyanaconda##Notethatyoudonothavetorerungrubaftermakingchangestothisfile#NOTICE:Youhavea/bootpartition.Thismeansthat#allkernelandinitrdpathsarerelativeto/boot/,eg.#root(hd0,0)#kernel/vmlinuz-versionroroot=/dev/mapper/VolGroup-lv_root#initrd/initrd-[generic-]version.img#boot=/dev/sdadefault=0#預設啟動的核心第一個timeout=5#逾時時間splashimage=(hd0,0)/grub/splash.xpm.gz#背景圖hiddenmenutitleCentOS6(2.6.32-573.el6.x86_64)#標題root(hd0,0)kernel/vmlinuz-2.6.32-573.el6.x86_64roroot=/dev/mapper/VolGroup-lv_rootrd_NO_LUKSLANG=en_US.UTF-8rd_NO_MDrd_LVM_LV=VolGroup/lv_swapSYSFONT=latarcyrheb-sun16crashkernel=autord_LVM_LV=VolGroup/lv_rootKEYBOARDTYPE=pcKEYTABLE=usrd_NO_DMrhgbquiet#指定核心所在的目錄以唯讀方式掛載根檔案設定語言為美國UTF-8交換分區...initrd/initramfs-2.6.32-573.el6.x86_64.img

詳解請查看(http://blog.chinaunix.net/uid-24774106-id-3497929.html)

第四階段:Kernel

當Kernel被載入到記憶體中後它會進行自解壓,並且運行起來以唯讀方式掛載檔案系統,檢測以及掌控各個硬體。其中kernel從grub啟動接收到傳遞到的參數initrd /initramfs-2.6.32-573.el6.x86_64.img有何作用? 當核心啟動運行後,它需要訪問根檔案系統,要訪問根檔案系統必須要載入根檔案系統所在的裝置,而這時根檔案系統又沒有掛載,要掛載根檔案系統首先需要根檔案系統的驅動程式,這是一個典 型的先有雞先有蛋的問題啊!為解決這個問題,GRUB在載入核心同時,也把initrd載入到記憶體中並運行,那麼initr又起到了什麼作用哪,其實initrd檔案其實是一個虛擬根檔案系統,裡面有bin、lib、lib64、sys、var、etc、sysroot、 dev、proc、tmp等根目錄,它的功能就是核心與真正的根建立聯絡,核心通過它載入根檔案系統的驅動程式,然後以讀寫方式掛載/etc/fstab中定義的內容,至此, 核心載入完成。

123456789101112[root@wwwtmp]#pwd/tmp[root@wwwtmp]#ls[root@wwwtmp]#cp/boot/initramfs-2.6.32-573.el6.x86_64.img./#拷貝到目前的目錄下[root@wwwtmp]#zcatinitramfs-2.6.32-573.el6.x86_64.img|cpio-id#解壓145377blocks[root@wwwtmp]#lsbinemergencyinitqueue-finishedlibpre-mountproctmpcmdlineetcinitqueue-settledlib64pre-pivotsbinusrdevinitinitqueue-timeoutmountpre-triggersysvardracut-004-388.el6initqueueinitramfs-2.6.32-573.el6.x86_64.imgnetrootpre-udevsysroot[root@wwwtmp]#

第五階段:運行/sbin/init

當系統核心啟動完成以後,啟動的第一個使用者進程為/sbin/init,系統掌握許可權交給/sbin/init,讓執行系統初始化!

使用者空間執行的程式有 /sbin/init-->/etc/inittab(設定預設層級) -->/etc/rc.d/rc.sysinit->/etc/rc3.d/S* (或者/etc/rc5.d/S* )-->/etc/rc.sysinit-->--> 設定預設運行層級 --> 系統初始化指令碼 --> 關閉或啟動對應層級下的服務 --> 啟動終端

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.