CentOS 5 CentOS 6 啟動流程及關鍵步驟

來源:互聯網
上載者:User

標籤:centos5/6系統啟動流程

CentOS 5 CentOS 6 啟動流程及關鍵步驟

 

                            650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/74/00/wKiom1YLxFGQwfI-AACjpunNGng763.jpg" title="1.png" alt="wKiom1YLxFGQwfI-AACjpunNGng763.jpg" />

1、加電自檢:當開啟主機電源時,主機會喚醒cpu,使其運行CMOS中的BIOS,

         BIOS檢查必要的硬體是否存在(記憶體、硬碟等)

         BIOS其實是一個小型系統,可以完成一些像檢測這樣的任務。

自檢若不通過,關機

2BIOS尋找可啟動裝置

自檢通過,根據BIOS設定的啟動順序(一般有硬碟啟動、光碟片啟動、行動裝置啟動、以及網路啟動等,這個設定值可通過人工幹預修改以使載入不同的系統)找到第一個具有引導程式(bootloader)即為要載入的裝置,否則繼續尋找

3MBR引導

引導程式在windows中叫ntloader,在linux早期叫LILO,LInux Loader,在CentOS5,6等版本便為GRUB 0.x,GRUB legacy,bootloader是在MBR(512位元組)的前446個位元組,緊接著64位元組是分區表、剩餘兩個位元組表示分區表是否可用

4GRUB尋找要載入的kernel

此處以C5 C6為例,GRUB的主要作用是提供一個菜單,允許使用者選擇要啟動系統或不同的核心版本,把使用者選定的核心裝載到記憶體的特定空間中,解壓展開,並把系統控制權移交給核心,一台主機上可能裝有不止一個作業系統,使用者可以根據GRUB提供的啟動菜單選定作業系統,隨即載入指定核心

         GRUB分為三個階段,

stage 1  這段代碼的其中一段代碼是MBR中的 bootloader(446位元組),這一步在GRUB 中是不可或缺的,主要負責當BIOS 交接給GRUB 時,載入存在於各分區中的開機檔案,也就是所謂的開機管理程式。其大小大約512位元組

stage1_5 這段代碼是在緊接著MBR的,輔助GRUB識別stage2所在的檔案系統所在的磁碟。stage1.5 被載入時,就已經賦予GRUB 訪問檔案系統目錄的能力(這段程式中有訪問stage2檔案系統的驅動),所以,自然可以在開始找不到stage2 的情況下,從檔案系統目錄中找出stage2 的所在位置,並啟用Linux。

其大小約32K

stage 2  在boot目錄中,不一定在根分區上,即,可以獨立分區;

         stage提供一個GRUB啟動菜單,供使用者選擇不同的作業系統選擇不同的作業系統

         提供選項,訪問設定檔、串連下一個bootsector(主機上可能裝的不止一個系統,,可能,可以手動選擇啟動哪個系統,也可以修改其設定檔以達到不同效果)stage2主要就是根據設定檔,或手動選擇、設定啟動需要的核心或系統!

在系統讀秒的過程中按任意鍵可進入GRUB選擇菜單,如,假如你的主機中不止一個作業系統,你可以根據需要選擇不同的作業系統;650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/73/FD/wKioL1YLxHbirgqiAAFNxPfq4dc020.jpg" title="2.png" alt="wKioL1YLxHbirgqiAAFNxPfq4dc020.jpg" />

仔細看菜單下面的選項,鍵入e鍵,可在開機前進入編輯模式,如,

方框內第一行代表boot目錄所在的位置,此處為第一個磁碟第一個分區,

方框內第二行就是你的核心位置及核心,

方框內第三行ramdisk(ramfs),這是一個虛擬檔案系統,可通過這個檔案系統可找到根分區位置 以方便核心找到根分區、init程式、以及必要的驅動程式、庫檔案

在這個介面,如果再次鍵入e鍵,可對你選擇的選項進行修改!

在這兩個介面中你也可以按c進入GRUB的命令

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/73/FD/wKioL1YLxIeSzWBhAAG_XY-tJ88444.jpg" title="3.png" alt="wKioL1YLxIeSzWBhAAG_XY-tJ88444.jpg" />

在以上兩個介面中你也可以按c進入GRUB的命令列模式

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/74/00/wKiom1YLxImi6gUgAAFI0aCupd8629.jpg" title="4.png" alt="wKiom1YLxImi6gUgAAFI0aCupd8629.jpg" />

這樣手動指定核心及initrd也能啟動系統

 

5、載入核心S

         GRUB通過GRUB2找到核心及ramdisk,GRUB將CPU的控制權交給核心;CPU將核心載入到記憶體中;此刻核心將是系統的主角,控制著整個作業系統,CPU探測可識別的所有硬體裝置,將ramdisk中載入到記憶體中;kernel藉助ramdisk找到真正的根分區,以唯讀方式掛載根檔案系統;完成根切換。

         linux核心是單核心體系設計,但又引入了模組化機制;一般有核心核心(/boot/vmlinuz)、核心對象(lib/modules/VERSION-RELEASE)、輔助檔案(/boot/[initrd|initramfs])組成

         kernel的功能:進程管理、記憶體管理、檔案系統管理、網路管理、驅動程式管理、安全功能

         ramdisk具有根檔案系統驅動、根檔案系統,是在安裝系統時根據根分區檔案系統及硬體的驅動動態產生的

         ramdisk在CentOS5(initrd)上是以一個磁碟的格式存在的,CPU與之傳輸時還要經過層層緩衝,因此比較慢;而在CentOS 6(initramfs)上,則以一個檔案系統的身份運行,檔案系統自身具有緩衝功能,無需緩衝,因此較快,其磁碟位置一般為(/boot/initrd-VERSION-RELEASE.img 或/boot/initramfs-VERSION-RELEASE.img)

         ramdisk檔案可通過mkinitrd或dracut命令製作,製作原理同安裝系統時的動態產生

 

 

6、運行/sbin/init

int是所有進程的起點,init程式負責建立進程和銷毀進程

         init程式在CentOS5 中SysV(服務串列運行,較慢)設定檔在/etc/initab中,在CentOS6中為Upstart(接近於並行運行,較快),設定檔為/etc/inittab和/etc/init/*.conf

         linux具有七個運行層級:

         init0         相當於關機

         init1         單一使用者模式(root無需登入)single,維護模式

         init2         多使用者模式,預設會啟動網路功能,但不會啟動NFS,維護模式

         init3         多使用者模式,正常模式;文本介面

         init4        預留層級,正常模式;圖形介面

         init5         多使用者模式,圖形介面

         init6         相當於重啟

設定檔 /etc/inittab下內容的定義

id:runlevel:action:process

id:3:initdefault                                       表示預設開機層級為3,自動進入字元介面

si::sysinit:/etc/rc.d/rc.sysinit             系統初始化

l#:#:wait:/etc/rc.d/rc 0                   當鍵入init #時,進入該運行層級

tty1:2345:respawn:/usr/sbin/mingettytty1        在2345層級下運行中端tty1

註:CentOS6是靠/etc/init/rcS.conf啟動服務的

當進入指定層級時,運行指定層級下的服務,指定層級下有服務指令碼連結,當進入指定層級式,會運行其目錄下的(k/s開頭的kill或start指令碼)

         也可以手動修改、刪除或添加某層級下的服務(chkconfig)

7、系統初始化

根據/etc/rc.d/rc/rc.sysinit/系統初始化指令碼實現的

(1)      設定主機名稱

(2)      設定歡迎介面

(3)      啟用udev和selinux 

(4)      掛載/etc/fstab檔案中定義的檔案系統

(5)      檢測根檔案系統,並以讀寫方式重新掛載根檔案系統

(6)      設定系統時鐘

(7)      啟用swap裝置

(8)      根據/etc/sysctl.conf檔案設定核心參數

(9)      啟用lvm及software raid裝置(硬raid是在開機時啟動的)

(10)  載入額外裝置驅動程式

(11)  清理操作

 

自此開機完成,系統會在指定層級中運行指定服務

(3)kernel2.4以後(3)中udev主要在系統第一次訪問硬體時,根據/sys目錄中的檔案產生/dev下的內容,以方便管理員管理硬體

(5)在ramdisk的協助下,kernel第一次將根檔案系統以唯讀方式載入如記憶體、

它只能讀,不能寫入資料,這次將以讀寫方式載入根檔案系統

 


本文出自 “fall camel” 部落格,請務必保留此出處http://fallcamel.blog.51cto.com/8079848/1699646

CentOS 5 CentOS 6 啟動流程及關鍵步驟

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.