東坡下載:內(nèi)容最豐富最安全的下載站!

首頁(yè)IT技術(shù)服務(wù)器 → Rhel6服務(wù)器系統(tǒng)啟動(dòng)過(guò)程淺談

Rhel6服務(wù)器系統(tǒng)啟動(dòng)過(guò)程淺談

相關(guān)文章發(fā)表評(píng)論 來(lái)源:本站原創(chuàng)時(shí)間:2013/9/5 22:03:43字體大小:A-A+

更多

作者:不詳點(diǎn)擊:217次評(píng)論:0次標(biāo)簽: Rhel6

1、首先我們先來(lái)了解一下系統(tǒng)在從按下電源開(kāi)關(guān)到我們看到畫(huà)面這個(gè)過(guò)程究竟干了些什么事情:

(1)按下電源開(kāi)機(jī)-->bios(配置主板的程序,basic input and output system,加電自檢,找到啟動(dòng)設(shè)備的編號(hào))-->找到mbr(master bootloader record,它是屬于硬盤(pán)的0磁盤(pán)0扇區(qū))-->grub-->通過(guò)grub找到vmlinuz和initrd(驅(qū)動(dòng)硬件)--> 內(nèi)核啟動(dòng),產(chǎn)生init進(jìn)程-->/etc/inittab(確定系統(tǒng)的啟動(dòng)級(jí)別)-->/etc/rc.sysinit(獲取主機(jī)的網(wǎng)絡(luò)環(huán)境和主機(jī)類(lèi)型,測(cè)試與載入設(shè)備,是否啟動(dòng)selinux,模塊的加載,設(shè)置系統(tǒng)時(shí)間.................)--讀取/etc/fstab-->按照啟動(dòng)的級(jí)別按順序啟動(dòng)對(duì)應(yīng)的服務(wù)-->/etc/rc.local----> 登錄界面

(2)開(kāi)機(jī)---> bios 硬件自檢--->把MRB 加載內(nèi)存,bois 完成了任務(wù),把控制全轉(zhuǎn)交給Bootloader(Grub) ----> 讀取grub.conf配置文件,加載相應(yīng)的內(nèi)核,初始化鏡像文件到內(nèi)存,初始化鏡像文件會(huì)加載一系列硬件驅(qū)動(dòng),把必要的硬件先驅(qū)動(dòng)起來(lái),最終內(nèi)核理解這些硬件-->產(chǎn)生第一個(gè)進(jìn)程init--->init 讀取配置文件/etc/inittab,獲取系統(tǒng)將要運(yùn)行在哪個(gè)級(jí)別--->init 運(yùn)行rc.sysinit腳本,對(duì)系統(tǒng)進(jìn)行初始化(配置主機(jī)名,生成/dev/下所有設(shè)備文件,讀取/etc/fstab進(jìn)行分區(qū)掛載等)---> init 根據(jù)運(yùn)行解別,運(yùn)行級(jí)別對(duì)應(yīng)的目錄下的所有服務(wù)啟動(dòng)腳本-->運(yùn)行rc.local---> init 根據(jù)配置文件 產(chǎn)生多個(gè)終端/sbin/mingetty ---> 各個(gè)終端分別運(yùn)行l(wèi)ogin----> gdm ---> 圖形界面的登錄程序

以上兩種是系統(tǒng)啟動(dòng)過(guò)程所干的事情,寫(xiě)法都是差不多,個(gè)人看第一種比較好理解,當(dāng)然每個(gè)人的想法和看法都不一樣,所以我就把兩種情況都寫(xiě)了出來(lái)。

2、MBR

MBR=512byte=446byte啟動(dòng)設(shè)備的信息+64byte分區(qū)表信息+2byte結(jié)束位

3、GRUB系統(tǒng)引導(dǎo)程序

grub的全稱(chēng)是:Grand Unified Boot Loader ,通過(guò)翻譯過(guò)來(lái)的中文意思:引導(dǎo)加載程序大統(tǒng)一。從這個(gè)字面就可以知道要想加載系統(tǒng)、引導(dǎo)系統(tǒng)都得靠它。

(1)我們把它托出來(lái)看看是什么高級(jí)東東:

[root@rootbug ~]# rpm -qa |grep grub
grubby-7.0.15-3.el6.x86_64
grub-0.97-77.el6.x86_64

(2)查看此軟件的詳細(xì)信息

[root@rootbug ~]# rpm -qi grub-0.97-77.el6.x86_64
Name        : grub                         Relocations: (not relocatable)
Version     : 0.97                              Vendor: Red Hat, Inc.
Release     : 77.el6                        Build Date: Thu 01 Mar 2012 12:14:36 AM CST
Install Date: Tue 27 Aug 2013 06:37:52 PM CST      Build Host: x86-004.build.bos.redhat.com
Group       : System Environment/Base       Source RPM: grub-0.97-77.el6.src.rpm
Size        : 2396735                          License: GPLv2+
Signature   : RSA/8, Fri 18 May 2012 08:07:02 PM CST, Key ID 199e2f91fd431d51
Packager    : Red Hat, Inc. <http://bugzilla.redhat.com/bugzilla>
URL         : http://www.gnu.org/software/grub/
Summary     : Grand Unified Boot Loader.
Description :
GRUB (Grand Unified Boot Loader) is an experimental boot loader
capable of booting into most free operating systems - Linux, FreeBSD,
NetBSD, GNU Mach, and others as well as most commercial operating
systems.

(3)查看一下它的配置文件放在哪里:

[root@www ~]# ll /etc/grub.conf         --發(fā)現(xiàn)是一個(gè)軟鏈接文件
lrwxrwxrwx. 1 root root 22 Aug 27 18:42 /etc/grub.conf -> ../boot/grub/grub.conf

(4)打開(kāi)它看看究竟是什么樣的內(nèi)容:

[root@rootbug ~]# vim /boot/grub/grub.conf


解釋?zhuān)?/p>

(1)default=0                --默認(rèn)進(jìn)入第一個(gè)系統(tǒng)

(2)timeout=5              --5秒鐘不選擇,則進(jìn)入默認(rèn)default指定的系統(tǒng);如果改為-1表示等待時(shí)間無(wú)限

(2)splashimage=(hd0,0)/grub/splash.xpm.gz        

----------指定grub背景圖的路徑;(hd0,0)表示的就是/dev/sda1,所以這個(gè)路徑其實(shí)就是指/boot/grub/splash.xpm.gzhiddenmenu,如果你更改成其他圖片也可以,主要將圖片的格式轉(zhuǎn)換成xpm格式就行了,然后放在此目錄下,開(kāi)機(jī)之后自動(dòng)加載。不過(guò)不知道是什么原因,我修改了我的圖片之后發(fā)現(xiàn)不行,可能是轉(zhuǎn)換格式方法不對(duì),要是哪位大哥弄成功過(guò)記得留名告訴我方法。


(3)password --encrypted $6$xXZ403WJap4tfw2n$i5JiyJ3pjcCbDCVX/ZXPvX1zHv6BKAimZVe6uB2amuRl2Ye/gztvK7xxZZxpxFxnOmhK8eV1ie3Pv8NwCBrLv0    

--------此加密密碼是我怕別人通過(guò)單用戶(hù)破解我的服務(wù)器密碼所以就把grub加密了。所以此處就有一行密鑰,如果沒(méi)有加密的那么就不會(huì)存在。


(4)hiddenmenu

title Red Hat Enterprise Linux (2.6.32-279.el6.x86_64)  

----------此標(biāo)題是在開(kāi)機(jī)的時(shí)候隱藏的,你需要在開(kāi)機(jī)的時(shí)候按下“e”鍵,那么它才會(huì)出來(lái)。當(dāng)然你也可以修改成你自己的標(biāo)題。

(5)root (hd0,0)      ---------表示/dev/sda1,也就是/boot ,但是我們?nèi)绾沃朗牵╤d0)呢?我們可以通過(guò)如下命令可以查看:

[root@rootbug ~]# cat /boot/grub/device.map
# this device map was generated by anaconda
(hd0)     /dev/sda

(6) kernel /vmlinuz-2.6.32-279.el6.x86_64 ro root=UUID=a7f245f7-9537-4fc1-ace8-48f48faa987c nomodeset rd_NO_LUKS  KEYBOARDTYPE=pc KEYTABLE=us LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=128M rd_NO_LVM rd_NO_DM rhgb quiet

-------vmlinuz是/boot分區(qū)下的,名字不能錯(cuò);root=UUID=a7f245f7-9537-4fc1-ace8-48f48faa987c此處用的ID表示跟/分區(qū);有些系統(tǒng)可能還有root=LABEL=/;也有些系統(tǒng)是root=/dev/sdax。其結(jié)果都是一樣的,都是啟動(dòng)時(shí)要知道根/分區(qū)是誰(shuí)。


(7)initrd /initramfs-2.6.32-279.el6.x86_64.img  -----initrd的路徑

4、如果我的/boot沒(méi)有劃分獨(dú)立分區(qū),那我的grub.conf又是如何的呢?結(jié)果如下,需要額為添加/boot

[root@rootbug ~]#vim /boot/grub/grub.conf

default=0
timeout=5
splashimage=(hd0,0)/boot/grub/splash.xpm.gz               ------加/boot
title Red Hat Enterprise Linux Server (2.6.18-164.el5)
       root (hd0,0)
       kernel /boot/vmlinuz-2.6.18-164.el5 ro root=LABEL=/ rhgb quiet       ------加boot
       initrd /boot/initrd-2.6.18-164.el5.img                   -------加boot

5、給grub加密碼 (作用是鎖住不讓別人進(jìn)入單用戶(hù)改你的ROOT密碼)
[root@rootbug ~]# grub-md5-crypt                       -----用此命令產(chǎn)生一個(gè)密碼加密串
Password:                                                     -----輸入你想要的密碼
Retype password:                                         -----再次輸入你的密碼
$1$JWQIX/$tYXWeDn3HPj9LYZezTuTI/         -----輸兩次密碼就可以產(chǎn)生加密串

[root@rootbug ~]#vim /boot/grub/grub.conf

default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz        ------在下面加上加密信息
password --md5 $1$JWQIX/$tYXWeDn3HPj9LYZezTuTI/        

title Red Hat Enterprise Linux Server (2.6.18-164.el5)
       root (hd0,0)
       kernel /vmlinuz-2.6.18-164.el5 ro root=LABEL=/1 rhgb quiet
       initrd /initrd-2.6.18-164.el5.img

6、手動(dòng)引導(dǎo)grub
手動(dòng)mv  grub.conf
grub>root (hd0,0)                      --------進(jìn)到/boot分區(qū)  
grub>kernel /vmlinuz-xxxxxxx ro root=/dev/sda1        ----在輸入kernel之后利用TAB鍵進(jìn)行補(bǔ)齊命令,/dev/sda1表示root分區(qū),寫(xiě)錯(cuò)是無(wú)法啟動(dòng)的,如果出現(xiàn)錯(cuò)誤可以再重新輸入另外一個(gè)分區(qū),直到正確為止。
grub>initrd /initrd-xxxxxxxx       ---------可以利用TAB進(jìn)行補(bǔ)齊
grub>boot         -----boot代表啟動(dòng)

如果全部正確,啟動(dòng)之后將會(huì)進(jìn)入到系統(tǒng),然后再進(jìn)行將grub.conf重新編寫(xiě)回來(lái)即可。

擴(kuò)展知識(shí)

相關(guān)評(píng)論

閱讀本文后您有什么感想? 已有 人給出評(píng)價(jià)!

  • 2791 喜歡喜歡
  • 2101 頂
  • 800 難過(guò)難過(guò)
  • 1219 囧
  • 4049 圍觀圍觀
  • 5602 無(wú)聊無(wú)聊
熱門(mén)評(píng)論
最新評(píng)論
發(fā)表評(píng)論 查看所有評(píng)論(0)
昵稱(chēng):
表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
字?jǐn)?shù): 0/500 (您的評(píng)論需要經(jīng)過(guò)審核才能顯示)