亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Linux 引導(dǎo)流程解析

系統(tǒng) 2280 0

本文主要記錄下linux的引導(dǎo)流程(實(shí)例采用centOS 5.5)。

內(nèi)容主要如下:引導(dǎo)流程、解析下GRUB的作用。

?

一、引導(dǎo)流程

?

1.1主要的流程圖如下:

?

image

?

1.2每一步的作用

1)第一步firmware固件自檢,主要是進(jìn)行CMOS/BIOS對硬件進(jìn)行POST加電自檢,在物理層次上對硬件進(jìn)行檢測是否正常。

2)讀取硬盤中MBR的BootLoader(自啟動程序,Linux下常用的自啟動程序是GRUB)。這一步主要的功能是載入內(nèi)核。

3)載入的內(nèi)核Kernel主要功能是:1、驅(qū)動硬件(Kernel中含有大量驅(qū)動程序),2、啟動init進(jìn)程。

4)init進(jìn)程,主要是讀取/etc/inittab文件,執(zhí)行缺省運(yùn)行級別,從而繼續(xù)引導(dǎo)。(需要注意的是它的PID恒為1,0為內(nèi)核調(diào)度器Kernel scheduler)。

5)/etc/inittab 定義了初始化的操作。 ?

內(nèi)容如下:

image

命令主要格式是:id : runlevels : action : process

[解析]

id :標(biāo)識符,一般為兩位字或數(shù)字

run-levels :指定運(yùn)行級別,可以指定多個

action :指定運(yùn)行狀態(tài)

process :指定要運(yùn)行的腳本或命令

其中,

1、run-levels運(yùn)行級別有7個,0—6分別如下:

0 —— halt 關(guān)機(jī)

1 —— Single user mode 單用戶模式

2 —— Multiuser,withoutNFS 多用戶模式但不帶網(wǎng)絡(luò)(text模式)

3 —— Full multiuser mode 完整功能的多用戶模式(text模式)

4 —— unused 預(yù)留

5 —— X11 圖形化多用戶模式

6 —— reboot 重啟

主要命令:查看當(dāng)前運(yùn)行級別 #runlevel、 切換運(yùn)行級別 #init[0 |1 |2 |3 |4 |5 |6]

2、而acion中也有幾個比較重要的取值:

① initdefault:指定系統(tǒng)缺省啟動的運(yùn)行級別(通常用于修復(fù),比如我們要進(jìn)入單用戶模式,則可以將其設(shè)置為1)

image

( 由截圖中可以知道缺省的run-level是:3)

② sysinit:系統(tǒng)啟動執(zhí)行process中指定的命令(每次都會執(zhí)行)

image

(由截圖知,無論是哪個運(yùn)行級別,都會執(zhí)行/etc/rc.d/rc.sysinit)

③ wait:執(zhí)行process中指定的命令,并等其結(jié)束后再運(yùn)行其他命令

④ once:執(zhí)行process中指定的命令,不等待其結(jié)束

⑤ ctrlaltdel:按下Ctrl + Alt + Del時執(zhí)行process指定的命令

6)initdefault

如第五步所說到的,主要是讀取/etc/inittab中的信息,判斷缺省的運(yùn)行級別是什么。

7)/etc/rc.d/rc.sysinit

啟動這個腳本。完成系統(tǒng)服務(wù)程序的啟動,如系統(tǒng)環(huán)境變量的設(shè)置、設(shè)置系統(tǒng)時鐘、加載字體、檢查加載文件系統(tǒng)、生成系統(tǒng)啟動信息日志文件等。(由于是基礎(chǔ)服務(wù),如截圖所示,默認(rèn)是將其run-level設(shè)置為空::即任何級別,action設(shè)置為sysinit。即該腳本在任何運(yùn)行級別下都要啟動,以完成基礎(chǔ)服務(wù)的啟動)【可以自定義自己希望啟動的腳本,然后加到這個腳本的最后面,便會在啟動時被加載】

8)基礎(chǔ)服務(wù)啟動后,會執(zhí)行/etc/rc.d/rc這個腳本

加載完基礎(chǔ)服務(wù)后,就要根據(jù)不同的運(yùn)行級別去啟動相對應(yīng)的下的目錄,(如3是命令行模式,5是圖形模式,他們需要啟動的服務(wù)不同),但系統(tǒng)如何去加載呢?這就是rc這個腳本的作用了,它的工作原理是先去判斷系統(tǒng)的默認(rèn)運(yùn)行級別即第6步中的東西,然后再執(zhí)行相應(yīng)的rcN.d目錄下的服務(wù)啟動腳本 如圖

image

?

9)執(zhí)行/etc/rc.d/rcN.d目錄下的服務(wù)啟動腳本

看下該目錄下有什么東西:

image

[解析]

S —— start表示要啟動的腳本

K —— kill 表示要關(guān)閉的腳本

數(shù)字表示啟動順序,數(shù)值小的優(yōu)先

?

1.3自定義服務(wù)啟動或關(guān)閉

1)關(guān)鍵目錄 /etc/rc.d/init.d/ 下,找到相關(guān)的服務(wù)再對其進(jìn)行關(guān)閉或啟動(所以運(yùn)行級別的腳本都是來自這個目錄的軟鏈接)。

image

通過服務(wù)腳本名 start |stop等操作去啟動或關(guān)閉服務(wù)

image

2)自定義服務(wù)并啟動

實(shí)際上,無論是哪個運(yùn)行級別,他們要啟動的腳本都位于/etc/rc.d/init.d這個目錄中,而啟動的時候相對應(yīng)的/etc/rc.d/rcN.d目錄中的腳本只是一個軟鏈接,指向的還是init.d這個目錄中的腳本

如圖:rc3.d目錄中的內(nèi)容,可以看到都是軟鏈接(概念類似引用)

image

?

了解了上面的原理后,我們就可以定義我們自己的服務(wù)腳本,并讓系統(tǒng)在引導(dǎo)的時候加載我們的腳本。

方式有以下幾種:

1、增加軟鏈接 #ln -s

例子:

先寫好一個腳本,再用 ln –s 腳本名 /etc/rc.d/rcN.d/Sxx腳本名

這樣系統(tǒng)就會在引導(dǎo)運(yùn)行級別N時就會加載這個腳本

如:ln? –s? /etc/rc.d/init.d/xx.script? /etc/rc.d/rc3.d/S100xx.script

這樣系統(tǒng)就會在運(yùn)行級別3時加載我們的xx.script這個服務(wù)。(注意腳本放在init.d目錄中,并且軟鏈接的名字要用S開頭)

2、使用 chkconfig

image

3、使用 ntsysv (圖形界面選擇)

用ntsysv –-level N進(jìn)入對于相應(yīng)運(yùn)行級別服務(wù)的啟動設(shè)置

image

通過空格選擇啟動或否(*表示啟動),上下方向鍵選擇

?

1.4小結(jié)

大概的引導(dǎo)流程就是以上的幾步了。

最后說下如何查看引導(dǎo)日志,主要有兩種方式

1、# dmesg

記錄了內(nèi)核kernel驅(qū)動硬件的信息

如查詢下硬盤eth0的信息:

image

?

2、查看 /var/log/messages的日志信息

記錄了服務(wù)的啟動信息

如查看ntpd的啟動情況

image

?

?

?

?

二、GRUB解析及應(yīng)用

了解了基本的引導(dǎo)流程,我們再來著重看下流程中最重要的自啟動程序BootLoader,Linux常用的是GRUB。

2.1GRUB的配置與運(yùn)用

GRUB的配置文件默認(rèn)位置 /boot/grub/grub.conf (即GRUB它的 實(shí)際位置在/boot 下)

他有個軟鏈接是 在/etc/grub.conf

先看下grub.conf

image

[解析]

default 定義缺省啟動系統(tǒng)(多系統(tǒng)的時候會用到)

timeout 定義缺省等待時間

splashimage 定義GRUB界面圖片

hiddenmenu 隱藏菜單

title 定義菜單項(xiàng)名稱

root 設(shè)置GRUB的根設(shè)備

kernerl 定義內(nèi)核文件所在位置 ro —只讀

initrd 定義加載鏡像文件

其中root中 (hd0,0) hd為硬盤類型 0為第一塊硬盤 ,0為第一個分區(qū)

這個實(shí)際上是指定了 /boot所在的硬盤分區(qū)

可以看下/boot目錄

image

?

2.2列子

2.2.1進(jìn)入單用戶模式

適合場合:忘記root密碼、修復(fù)系統(tǒng)

方法:

1、在啟動倒數(shù)的時候按ESC進(jìn)入GRUB操作界面

image

e ——編輯當(dāng)前的啟動菜單項(xiàng)

b ——啟動當(dāng)前的菜單項(xiàng)

d ——刪除當(dāng)前行

c ——進(jìn)入GRUB的命令行模式

Esc ——返回GRUB啟動菜單界面,取消對當(dāng)前所做的修改

2、按e進(jìn)入,再選kernerl按e去編輯kernerl項(xiàng)

image

3、在最后加" 1"(空格 1),即運(yùn)行級別1的單用戶模式

4、按回車確定,再按B重啟,便可以進(jìn)入當(dāng)用戶模式

image

?

在單用戶模式下,可以對root密碼進(jìn)行重置(命令 #passwd root)

同時可以做其他需要修復(fù)的操作。

?

?

?

三、總結(jié)

主要是掌握好系統(tǒng)的引導(dǎo)流程,明白在啟動的時候系統(tǒng)的每一步在干什么,這樣當(dāng)系統(tǒng)出現(xiàn)問題了,我們就可以判斷出是在哪一步出現(xiàn)了問題。這樣才能在尋找解決方案的時候有的放矢,縮小范圍。

Linux 引導(dǎo)流程解析


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 正在播放亚洲一区 | 欧美日韩大尺码免费专区 | 国产网友自拍视频 | 欧美日韩国产最新一区二区 | a级黄片毛片 | 成人国产在线视频在线观看 | 九九51精品国产免费看 | 亚洲综合精品成人啪啪 | 成人欧美午夜视频毛片 | 在线精品国内视频秒播 | 中文字幕在线观看国产 | 亚洲久热 | 久久精品视频9 | 欧美亚洲另类久久综合 | 国产精品二区高清在线 | 性www| 国产区一区二区三 | 四虎精品在线 | 日本xoxo| 99成人国产精品视频 | 免费不卡视频 | 天天干天天操天天透 | 日本亚洲成高清一区二区三区 | 国产在线观看精品香蕉v区 国产在线观看美女福利精 国产在线观看午夜不卡 | 国产大片在线观看 | 亚洲人成高清 | 91久久国产精品视频 | 国产成人精品高清在线 | 国产伊人精品 | 亚洲欧美另类精品久久久 | 老王午夜69精品影院 | 视频一区视频二区在线观看 | 亚洲一区日韩二区欧美三区 | 日本护士一级毛片在线播放 | 亚洲九色 | 免费在线看h| 伊人久久婷婷丁香六月综合基地 | 五月国产综合视频在线观看 | 福利姬在线视频国产观看 | 极品福利在线 | 国产欧美一区视频在线观看 |