開機(jī)流程分析-進(jìn)程-故障排錯(cuò)_第1頁
開機(jī)流程分析-進(jìn)程-故障排錯(cuò)_第2頁
開機(jī)流程分析-進(jìn)程-故障排錯(cuò)_第3頁
開機(jī)流程分析-進(jìn)程-故障排錯(cuò)_第4頁
開機(jī)流程分析-進(jìn)程-故障排錯(cuò)_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

一:RHEL6的開機(jī)流程分析:開機(jī)――是件很簡(jiǎn)單的事情,只要按下電源開關(guān),然后系統(tǒng)就會(huì)自然啟動(dòng),很多人認(rèn)為沒有什么需要學(xué)習(xí)的。其實(shí)不然,如果系統(tǒng)沒有什么問題,可以正常登陸的時(shí)候,當(dāng)然開機(jī)很簡(jiǎn)單。但更多的時(shí)候,我們需要知道當(dāng)機(jī)子不能正常開機(jī)的如何解決,這才是我們學(xué)習(xí)的目的。

那么我們就來分析一下Linux的開機(jī)流程系統(tǒng)開機(jī)的過程可以匯整成下面的流程:

1.加載BIOS的硬件信息、進(jìn)行自我測(cè)試,并依據(jù)設(shè)定獲得第一個(gè)可開機(jī)的設(shè)備;

2.讀取并執(zhí)行第一個(gè)開機(jī)設(shè)備內(nèi)MBR的bootLoader(grub等程序);

3.依據(jù)bootloader的設(shè)置加載Kernel,Kernel會(huì)開始檢測(cè)硬件與加載驅(qū)動(dòng)程序;

4.內(nèi)核啟動(dòng)init

5.系統(tǒng)初始化:(根據(jù)/etc/init/rcS.conf文件中的記錄“exec/etc/rc.d/rc.sysinit”執(zhí)行rc.sysinit系統(tǒng)初始化腳本)

6.init找到/etc/inittab文件,確定默認(rèn)的運(yùn)行級(jí)別(X)(根據(jù)/etc/init/rcS.conf文件中的記錄“exectelinit$runlevel”)

7.觸發(fā)相應(yīng)的runlevel事件(根據(jù)/etc/init/rc.conf文件中的記錄“exec/etc/rc.d/rc$RUNLEVEL)”

8.開始運(yùn)行/etc/rc.d/rc,傳入?yún)?shù)X

9./etc/rc.d/rc腳本進(jìn)行一系列設(shè)置,最后運(yùn)行相應(yīng)的/etc/rcX.d/中的腳本

10./etc/rcX.d/中的腳本按事先設(shè)定的優(yōu)先級(jí)依次啟動(dòng)

11.最后執(zhí)行/etc/rc.d/rc.local

12.加載終端或X-Window接口BIOS:開機(jī)自檢與MBR要啟動(dòng)系統(tǒng)首先就得去加載BIOS(BasicInputOutputSystem),并通過BIOS程序去加載CMOS的信息,并且由CMOS內(nèi)的設(shè)定值取得主機(jī)的各項(xiàng)硬件配置信息(如開機(jī)設(shè)備的搜尋順序、硬盤的大小與類型、系統(tǒng)時(shí)間、各周邊總線的是否啟動(dòng)PlugandPlay(PnP,即插即用設(shè)備)、等等)。在取得這些信息后,BIOS還會(huì)進(jìn)行開機(jī)自檢(Power-onSelfTest,POST)。然后開始執(zhí)行硬件檢測(cè)的初始化,并設(shè)定PnP設(shè)備,之后再定義出可開機(jī)的設(shè)備順序,接下來就會(huì)開始進(jìn)行開機(jī)設(shè)備的數(shù)據(jù)讀取了(MBR相關(guān)的任務(wù)開始)。我們還需要一個(gè)開機(jī)管理程序來處理內(nèi)核文件的加載問題,這個(gè)開機(jī)管理程序就被稱為BootLoader。這個(gè)BootLoader程序安裝在開機(jī)設(shè)備的第一個(gè)扇區(qū)(sector)內(nèi),也就是MBR(MasterBootRecord,主要啟動(dòng)記錄區(qū),第一個(gè)扇區(qū)的512字節(jié))。BootLoader最主要功能是加載內(nèi)核到主存儲(chǔ)器中去執(zhí)行,由于不同操作系統(tǒng)的文件格式不一致,因此每種操作系統(tǒng)都有自己的bootloader。由bootloader的管理而開始讀取內(nèi)核文件后,接下來,Linux就會(huì)將內(nèi)核解壓縮到主存儲(chǔ)器當(dāng)中,并且利用內(nèi)核的功能,開始測(cè)試與驅(qū)動(dòng)各個(gè)周邊設(shè)備,包括儲(chǔ)存設(shè)備、CPU、網(wǎng)卡、聲卡等等。此時(shí)Linux內(nèi)核會(huì)以自己的功能重新檢測(cè)一次硬件,內(nèi)核會(huì)被放置到/boot里面,并且取名為/boot/vmlinuzinit及配置文件/etc/inittab與runlevel在內(nèi)核加載完畢、進(jìn)行完硬件檢測(cè)與驅(qū)動(dòng)程序加載后,此時(shí)主機(jī)硬件已經(jīng)準(zhǔn)備就緒了,這時(shí)候內(nèi)核會(huì)啟動(dòng)第一個(gè)程序,那就是/sbin/init;/sbin/init最主要的功能就是準(zhǔn)備軟件執(zhí)行的環(huán)境,包括系統(tǒng)的主機(jī)名、網(wǎng)絡(luò)設(shè)定、語言、文件系統(tǒng)格式及其他服務(wù)的啟動(dòng)等。而所有的動(dòng)作都會(huì)通過init的配置文件/etc/inittab來規(guī)劃,而inittab內(nèi)還有一個(gè)很重要的設(shè)定內(nèi)容,那就是默認(rèn)的runlevel(開機(jī)運(yùn)行級(jí)別)。Linux就是通過設(shè)定runlevel來規(guī)定系統(tǒng)使用不同的服務(wù)來啟動(dòng),讓Linux的使用環(huán)境不同。這個(gè)inittab文件里面的支持級(jí)別(RHEL6系統(tǒng)里面的,和以前的其它版本有很大的差別)現(xiàn)在我們來看一看/etc/inittab文件中內(nèi)容:#vim/etc/inittab部分內(nèi)容解釋如下:0-halt(系統(tǒng)直接關(guān)機(jī))

1-singleusermode(單人維護(hù)模式,用在系統(tǒng)出問題時(shí)的維護(hù))

2-Multi-user,withoutNFS(類似底下的runlevel3,但無NFS服務(wù))

3-Fullmulti-usermode(完整含有網(wǎng)絡(luò)功能的純文本模式)

4-unused(系統(tǒng)保留功能)

5-X11(與runlevel3類似,但加載使用XWindow)

6-reboot(重新啟動(dòng))0,4,6不是關(guān)機(jī)、重新啟動(dòng)就是系統(tǒng)保留的,所以不能將預(yù)設(shè)的runlevel設(shè)定為這三個(gè)值。RHEL6系統(tǒng)上的這個(gè)文件和以前的版本有很大的差別,目前這個(gè)文件只能設(shè)置運(yùn)行級(jí)別,其它的相關(guān)配置文件,在此文件中已經(jīng)做了說明如:

Systeminitializationisstartedby/etc/init/rcS.conf

Individualrunlevelsarestartedby/etc/init/rc.conf

Ctrl-Alt-Deleteishandledby/etc/init/control-alt-delete.conf

Terminalgettysarehandledby/etc/init/tty.confand/etc/init/serial.conf,withconfigurationin/etc/sysconfig/init.

更多的內(nèi)容,可以到/etc/init/目錄中查看;紅帽已經(jīng)使用新的Upstart啟動(dòng)服務(wù)來替換以前的init。在RHEL6的版本中,我們可以把/etc/init/這個(gè)目錄里面的內(nèi)容,看成是以前/etc/inittab這個(gè)文件里的拆分。下面是RHEL6上面Upstart大致的一個(gè)啟動(dòng)過程:1.內(nèi)核啟動(dòng)init

2.系統(tǒng)初始化:(根據(jù)/etc/init/rcS.conf文件中的記錄“exec/etc/rc.d/rc.sysinit”執(zhí)行rc.sysinit系統(tǒng)初始化腳本)

3.init找到/etc/inittab文件,確定默認(rèn)的運(yùn)行級(jí)別(X)(根據(jù)/etc/init/rcS.conf文件中的記錄“exectelinit$runlevel”)

4.觸發(fā)相應(yīng)的runlevel事件(根據(jù)/etc/init/rc.conf文件中的記錄“exec/etc/rc.d/rc$RUNLEVEL)”

5.開始運(yùn)行/etc/rc.d/rc,傳入?yún)?shù)X

6./etc/rc.d/rc腳本進(jìn)行一系列設(shè)置,最后運(yùn)行相應(yīng)的/etc/rcX.d/中的腳本

7./etc/rcX.d/中的腳本按事先設(shè)定的優(yōu)先級(jí)依次啟動(dòng)

8.最后執(zhí)行/etc/rc.d/rc.local

9.加載終端或X-Window接口/etc/rc.sysinit這個(gè)文件干了哪些工作?#vim/etc/rc.sysinit

1、獲得網(wǎng)絡(luò)環(huán)境

2、掛載設(shè)備

3、開機(jī)啟動(dòng)畫面Plymouth(取替了過往的RHGB)

4、判斷是否啟用SELinux

5、顯示于開機(jī)過程中的歡迎畫面

6、初始化硬件

7、用戶自定義模塊的加載

8、配置內(nèi)核的參數(shù)

9、設(shè)置主機(jī)名

10、同步存儲(chǔ)器

11、設(shè)備映射器及相關(guān)的初始化

12、初始化軟件磁盤陣列(RAID)

13、初始化LVM的文件系統(tǒng)功能

14、檢驗(yàn)磁盤文件系統(tǒng)(fsck)

15、磁盤配額(quota)

16、重新以可讀寫模式掛載系統(tǒng)磁盤

17、更新quota(非必要)

18、啟動(dòng)系統(tǒng)虛擬隨機(jī)數(shù)生成器

19、配置機(jī)器(非必要)

20、清除開機(jī)過程當(dāng)中的臨時(shí)文件

21、創(chuàng)建ICE目錄

22、啟動(dòng)交換分區(qū)(swap)

23、將開機(jī)信息寫入/var/log/dmesg文件中這個(gè)文件里面的許多預(yù)設(shè)配置文件在/etc/sysconfig/這個(gè)目錄當(dāng)中,要了解更多的系統(tǒng)啟動(dòng)信息,可以到/var/log/dmesg文件中查看,也可以用dmesg命令來查看。系統(tǒng)服務(wù)的啟動(dòng):經(jīng)過/etc/rc.sysinit的系統(tǒng)模塊與相關(guān)硬件信息的初始化后,RHEL6系統(tǒng)應(yīng)該已經(jīng)能順利工作了。但還需要啟動(dòng)一些為我們提供服務(wù)的服務(wù)。這個(gè)時(shí)候,依據(jù)在/etc/inittab里面runlevel的設(shè)定值,就可以來決定啟動(dòng)的服務(wù)項(xiàng)目了??梢源蜷_/etc/rc這個(gè)文件來研究

以運(yùn)行級(jí)別3來說明

#ls/etc/rc3.d/

在這個(gè)目錄下的文件主要具有2個(gè)特點(diǎn):

1、全部以Sxx或Kxx(xx為數(shù)字)開頭

2、全部是鏈接文件,鏈接到/etc/init.d/

現(xiàn)在來說明一下這些的目的

S表示啟動(dòng)服務(wù),K表示停止服務(wù),后面的數(shù)字是啟動(dòng)的先后順序用戶自定義開機(jī)啟動(dòng)腳本上面講到的都是一些系統(tǒng)服務(wù),Linux系統(tǒng)可以安裝其它的軟件來提供服務(wù),若要自己安裝的服務(wù)也要在開機(jī)啟動(dòng),就可以用/etc/rc.local來完成。這就是我們要講的用戶自定義開機(jī)啟動(dòng)腳本。我們只要把想啟動(dòng)的腳本寫到這個(gè)文件中,開機(jī)就能啟動(dòng)了,注意一點(diǎn),寫在這里面的腳本要使用絕對(duì)路徑。加載終端或X-Window接口在完成了系統(tǒng)所有服務(wù)的啟動(dòng)后,接下來Linux就會(huì)啟動(dòng)終端或者是XWindow來等待使用者登陸了!

在/etc/init/start-ttys.conf中我們可以看到有6個(gè)純文本終端(tty[1-6])運(yùn)行級(jí)別的切換如果我們切換runlevel只需要停止與啟動(dòng)一些服務(wù)就OK了,那么要如何來實(shí)現(xiàn),其它很簡(jiǎn)單,用initn(數(shù)字)來切換。

比如說,我們要把運(yùn)行級(jí)別5換成3,我們就用init3來實(shí)現(xiàn),切換的時(shí)候系統(tǒng)都做了哪些事呢?

先對(duì)比/etc/rc3.d/及/etc/rc5.d內(nèi)的K與S開頭的文件;

對(duì)比/etc/rc3.d/內(nèi)有多余的K開頭文件則予以關(guān)閉;

對(duì)比/etc/rc3.d/內(nèi)有多余的S開頭文件則予以啟動(dòng);

兩個(gè)runlevel都存在的服務(wù)就不會(huì)被關(guān)閉;二、進(jìn)程與計(jì)劃任務(wù)管理:在linux系統(tǒng)中,每個(gè)程序啟動(dòng)后可以創(chuàng)建一個(gè)或多個(gè)進(jìn)程,例如提供Web服務(wù)的httpd程序,當(dāng)有大量用戶同時(shí)訪問web頁面時(shí),httpd程序可能會(huì)創(chuàng)建多個(gè)進(jìn)程來提供服務(wù)。查看進(jìn)程:ps命令:用途:查看靜態(tài)的進(jìn)程統(tǒng)計(jì)信息格式:psaux或ps-elfps命令結(jié)合“aux”選項(xiàng)使用時(shí),將顯示系統(tǒng)中所有的進(jìn)程信息ps命令結(jié)合“-elf”選項(xiàng)使用時(shí),將以長(zhǎng)格式顯示系統(tǒng)中所有的進(jìn)程信息,包含更豐富的內(nèi)容(其中PPID列表示進(jìn)程的父進(jìn)程的PID號(hào))。#psauxUSER:啟動(dòng)該進(jìn)程的用戶賬號(hào)的名稱PID:進(jìn)程號(hào),在當(dāng)前系統(tǒng)中是唯一的TTY:表明該進(jìn)程在哪個(gè)終端上運(yùn)行,?表示未知或不需要終端。STAT:進(jìn)程的當(dāng)前的狀態(tài)如:S(休眠)、R(運(yùn)行)、Z(僵死)、<(高優(yōu)先級(jí))、N(低優(yōu)先級(jí))、s(父進(jìn)程)、+(前臺(tái)進(jìn)程),對(duì)于僵死進(jìn)程應(yīng)該予以手動(dòng)終止START:?jiǎn)?dòng)進(jìn)程的時(shí)間TIME:該進(jìn)程占用的CPU時(shí)間COMMAND:?jiǎn)?dòng)該進(jìn)程的命令的名稱%CPU:CPU占用百分比%MEM:內(nèi)存占用百分比VSZ:占用虛擬內(nèi)存(swap)的大小RSS:占用物理內(nèi)存的大小top命令:用途:以動(dòng)態(tài)刷新的方式顯示進(jìn)程的狀態(tài)信息,默認(rèn)情況下3秒鐘刷新一次,在top命令顯示的全屏界面中,可以按P鍵根據(jù)CPU占用情況對(duì)進(jìn)程列表進(jìn)行排序,M根據(jù)內(nèi)存占用情況進(jìn)行排序,N鍵根據(jù)啟動(dòng)時(shí)間進(jìn)行排序,按h可以獲得top的幫助,q鍵正常退出top在top中,還可以結(jié)束進(jìn)程的進(jìn)行,按k鍵后在列表上方將出現(xiàn)“PIDtokill:”的提示信息,在后邊輸入指定進(jìn)程的PID號(hào)并回車確認(rèn)后可結(jié)束指定進(jìn)程的運(yùn)行。pgrep命令:用途:根據(jù)特定條件查詢進(jìn)程PID信息常用命令選項(xiàng):-l:列出進(jìn)程的名稱;-U:根據(jù)進(jìn)程所屬的用戶名進(jìn)行查找;-t:根據(jù)進(jìn)程所在的終端進(jìn)行查找Pstree命令:用途:以樹型結(jié)構(gòu)顯示各進(jìn)程間的關(guān)系常用命令選項(xiàng):-p:列出進(jìn)程的PID號(hào);-u:列出進(jìn)程對(duì)應(yīng)的用戶名;-a:列出進(jìn)程對(duì)應(yīng)的完整命令nice和renice影響調(diào)度優(yōu)先級(jí)進(jìn)程的“謙讓度”是以數(shù)字形式給內(nèi)核的暗示,通過它來表明一個(gè)進(jìn)程在同其他進(jìn)程競(jìng)爭(zhēng)CPU時(shí)應(yīng)該如何對(duì)侍這個(gè)進(jìn)程,謙讓度值越高,優(yōu)先級(jí)越低,謙讓度值越低或負(fù)值表示優(yōu)先級(jí)越高。“謙讓度”的值范圍是-20至+19如今很少通過手工設(shè)置進(jìn)程的優(yōu)先級(jí)。進(jìn)程的“謙讓度”值可以在創(chuàng)建進(jìn)程時(shí)用nice命令來設(shè)置,并可以在執(zhí)行時(shí)使用renice命令進(jìn)行調(diào)整。Nice帶一個(gè)命令行作為參數(shù),而renice帶PID或用戶名作為參數(shù)可以用pslax的輸出包括父進(jìn)程ID、謙讓度(NI)字段等信息用nice設(shè)置一個(gè)將要執(zhí)行程序的進(jìn)程的謙讓度并查看,如下圖:#nice–n10cat/dev/zero>/dev/null用renice命令改變httpd進(jìn)程的謙讓度#renice–n-54920(4920是cat命令的PID號(hào))再用ps命令查看:如果所有就緒進(jìn)程都具有同一優(yōu)先級(jí),那么它們將平等地共享處理器。僅當(dāng)具有不同優(yōu)先級(jí)的兩個(gè)進(jìn)程爭(zhēng)奪CPU時(shí)間時(shí),優(yōu)先級(jí)才起作用,優(yōu)先級(jí)較低的進(jìn)程獲得的時(shí)間較少,并且似乎運(yùn)行超來更慢。使用df命令查看磁盤空間使用情況;使用iostat查看磁盤I/O使用情況;使用vmstat查看交換使用情況進(jìn)程的不同啟動(dòng)方式前臺(tái)啟動(dòng):用戶輸入命令,直接執(zhí)行程序后臺(tái)啟動(dòng):在命令行尾加入“&”符號(hào)進(jìn)程的前后臺(tái)調(diào)度Ctrl+Z組合鍵:將當(dāng)前進(jìn)程掛起,即調(diào)入后臺(tái)并停止執(zhí)行bg命令:將后臺(tái)掛起的進(jìn)程激活jobs命令:查看處于后臺(tái)的任務(wù)列表fg命令:將處于后臺(tái)的進(jìn)程恢復(fù)到前臺(tái)運(yùn)行,需指定任務(wù)序號(hào)終止進(jìn)程的運(yùn)行Ctrl+C組合鍵:中斷正在執(zhí)行的命令Kill:用于終止指定PID號(hào)的進(jìn)程Killall:用于終止指定名稱的所有進(jìn)程-9選項(xiàng)用于強(qiáng)制終止pkill命令:根據(jù)特定條件終止相應(yīng)的進(jìn)程常用命令選項(xiàng):-U:根據(jù)進(jìn)程所屬的用戶名終止相應(yīng)進(jìn)程;-t:根據(jù)進(jìn)程所在的終端終止相應(yīng)進(jìn)程計(jì)劃任務(wù)管理at命令:在指定的日期、時(shí)間點(diǎn)自動(dòng)執(zhí)行預(yù)先設(shè)置的一些命令操作,屬于一次性計(jì)劃任務(wù)服務(wù)腳本名稱:/etc/init.d/atd設(shè)置格式:at[HH:MM][yyyy-mm-dd]如:#at23:45at>shutdown-hnowat><EOT>(按ctrl+d提交任務(wù))如:#atnow+2hours兩個(gè)小時(shí)后執(zhí)行at>shutdown–hnowat><EOT>(按ctrl+d提交任務(wù))詳細(xì)用法可查看at命令幫助:manatatq命令:查詢當(dāng)前設(shè)置的at任務(wù)列表atrm命令:刪除指定任務(wù)編號(hào)的at任務(wù)格式:atrm編號(hào)crontab命令:按照預(yù)先設(shè)置的時(shí)間周期(分鐘、小時(shí)、天……)重復(fù)執(zhí)行用戶指定的命令操作,屬于周期性計(jì)劃任務(wù)1、/etc/crontab:系統(tǒng)任務(wù)配置文件,維護(hù)linux系統(tǒng)所需的任務(wù),一般在系統(tǒng)及程序安裝時(shí)自動(dòng)設(shè)置,不需要人為地修改2、/var/spool/cron:用戶cron任務(wù)配置存放目錄,由用戶自行設(shè)置(使用crontab–e命令)的cron任務(wù)將保存在目錄“/var/spool/cron”中,文件名與對(duì)應(yīng)的用戶賬號(hào)同名。系統(tǒng)默認(rèn)的設(shè)置,位于目錄:/etc/cron.*/管理cron計(jì)劃任務(wù):編輯計(jì)劃任務(wù):crontab-e[-u用戶名]查看計(jì)劃任務(wù):crontab-l[-u用戶名]刪除計(jì)劃任務(wù):crontab-r[-u用戶名]root用戶可以管理指定用戶的計(jì)劃任務(wù),普通用戶只能管理自己的計(jì)劃任務(wù)字段說明分鐘取值為從0到59之間的任意整數(shù)小時(shí)取值為從0到23之間的任意整數(shù)日期取值為從1到31之間的任意整數(shù)月份取值為從1到12之間的任意整數(shù)星期取值為從0到7之間的任意整數(shù),0或7代表星期日命令要執(zhí)行的命令或程序腳本時(shí)間數(shù)值的特殊表示方法* 表示該范圍內(nèi)的任意時(shí)間,表示間隔的多個(gè)不連續(xù)時(shí)間點(diǎn)- 表示一個(gè)連續(xù)的時(shí)間范圍/ 指定間隔的時(shí)間頻率應(yīng)用示例017**1-5 周一到周五每天17:00308**1,3,5 每周一、三、五的8點(diǎn)30分08-18/2*** 8點(diǎn)到18點(diǎn)之間每隔2小時(shí)0**/3** 每隔3天用/etc/cron.allow和/etc/cron.deny這兩個(gè)配置文件可以指定哪些用戶可以提交crontab文件。如果存在cron.allow文件,那么它將包含可以提交crontab的所有用戶的名單,名單的每行一個(gè)用戶。任何沒被列出的用戶都不能調(diào)用crontab命令。如果沒有cron.allow文件,那么將檢查是否有cron.deny文件,它也是一個(gè)用戶的名單,但是意思卻反過來了,除了名單中列出的用戶之外,所有其他用戶都允許訪問crontab。如果即不存在cron.allow文件,也不存在cron.deny文件的話,那么在大多數(shù)系統(tǒng)上,就只有root用戶才能提交crontab故障排錯(cuò):1、修恢MBR故障:故障原因:病毒、木馬等造成的破壞;不正確的分區(qū)操作、磁盤讀寫誤操作故障現(xiàn)象:找不到引導(dǎo)程序,啟動(dòng)中斷;無法加載操作系統(tǒng),開機(jī)后黑屏解決思路:應(yīng)提前作好備份文件;以RHEL6安裝光盤引導(dǎo)進(jìn)入急救模式;從備份文件中恢復(fù)應(yīng)用示例:備份MBR扇區(qū)數(shù)據(jù):添加一塊硬盤或U盤、創(chuàng)建好分區(qū)并掛載到一個(gè)指定的目錄上(如:/data目錄)備份MBR:模擬MBR被破壞的故障:ddif=/dev/zeroof=/dev/sdabs=512count=1重啟系統(tǒng)后,故障現(xiàn)象如下:解決方法:RHEL6光盤引導(dǎo),進(jìn)入急救模式:將RHEL6系統(tǒng)盤放入光驅(qū),并設(shè)置光驅(qū)啟動(dòng),選擇下圖打勾項(xiàng)以急救模式引導(dǎo),這里我們選擇Rescueinstalledsystem,RHEL6里有所改動(dòng),rhel5是需要輸入linuxrescue的其他過程圖略,如果是通過網(wǎng)絡(luò)ftp傳輸掛載安裝文件的,那么這里必須要啟動(dòng)網(wǎng)卡,光驅(qū)一類的外接設(shè)備則無需開啟,這里我是無需開啟的,我選擇”NO”。在rescue界面中選擇”continue”按鈕這里選擇shellStartshell,這樣就進(jìn)入了急救模式創(chuàng)建一個(gè)掛載點(diǎn),掛載/dev/sdb1,并用mbr的備份恢復(fù)MBR信息,如圖所示:重啟系統(tǒng),一切就正常了。修復(fù)grup引導(dǎo)故障:故障原因:MBR中的GRUB引導(dǎo)程序遭到破壞;grub.conf文件丟失、引導(dǎo)配置有誤故障現(xiàn)象:系統(tǒng)引導(dǎo)停滯,顯示“grub>”提示符解決思路:進(jìn)入急救模式,從備份中恢復(fù)grub.conf;向MBR扇區(qū)中重建grub程序應(yīng)用示例:最好先將grub.conf文件備份,以防止grub.conf損壞:如下圖所示:模擬破壞grup.conf文件,如刪除grup.conf;重啟系統(tǒng),報(bào)錯(cuò)如下圖:解決方法:RHEL6光盤引導(dǎo),進(jìn)入急救模式:將RHEL6系統(tǒng)盤放入光驅(qū),并設(shè)置光驅(qū)啟動(dòng),選擇下圖打勾項(xiàng)以急救模式引導(dǎo)。過程略,與MBR修復(fù)啟動(dòng)過程類似進(jìn)入急救模式命令符后,如果分區(qū)表并未被破壞,則急救模式將會(huì)找到硬盤中根分區(qū)并將其掛載到光盤目錄結(jié)構(gòu)中的”/mnt/sysimage”目錄中。執(zhí)行#chroot/mnt/sysimage命令將目錄結(jié)構(gòu)切換到待修復(fù)的linux系統(tǒng)中,然后重建grub.conf文件或使用備份恢復(fù)grub.conf文件,如下圖所示:重啟系統(tǒng),一切都正常了。如果是MBR中的引導(dǎo)程序出現(xiàn)損壞,可能在重建了grub.conf文件后仍無法成功啟動(dòng)系統(tǒng),這時(shí)候可以在急救模式的shell環(huán)境中重新安裝grub向MBR扇區(qū)中重建GRUB程序sh-3.1#chroot/mnt/sysimagesh-3.1#cd/boot/grub/sh-3.1#cpgrub.conf.bakgrub.conf(用備份恢復(fù)grub.conf文件)sh-3.1#grub-install/dev/sda破壞/boot啟動(dòng)目錄:/boot目錄中存放著與內(nèi)核有關(guān)的引導(dǎo)文件(包括Grub,和kernel文件),若/boot目錄被破壞系統(tǒng)將無法加載內(nèi)核模擬破壞/boot分區(qū):#rm–fr/boot/*(最好先將grub.conf文件備份)解決方法:以急救模式引導(dǎo)系統(tǒng),過程略。進(jìn)入急救模式的shell命令符下執(zhí)行#chroot/mnt/sysimage命令將目錄結(jié)構(gòu)切換到待修復(fù)的linux系統(tǒng)中可以看到/boot上什么也沒有那么,現(xiàn)在需要掛載光盤,來進(jìn)行恢復(fù);這里需要注意的是在rescue模式下/dev/sr0為光盤所在分區(qū)媒介,掛載目錄至/media(這里這個(gè)目錄可自定義);區(qū)別于rhel5的rescue光盤存放分區(qū);進(jìn)入光盤的Package目錄,如下圖所示:安裝內(nèi)核的rpm包,如下圖所示:安裝好后再查看/boot/分區(qū)信息,但這里我們未發(fā)現(xiàn)grub目錄,這需要再安裝grub引導(dǎo)目錄,如下圖所示:安裝完grub后,查看/boot/grub目錄但還沒有g(shù)rup.conf文件,要么手動(dòng)創(chuàng)建,若有備份可以直接用備份恢復(fù)系統(tǒng)在正常啟動(dòng)后要強(qiáng)制安裝redhat-logos-60.0.14-1.e16.noarch.rpm包,否則rhel6啟動(dòng)時(shí)會(huì)報(bào)找不到rhel6的啟動(dòng)界面,并且在進(jìn)單用戶模式中輸入1或s都是亂碼,無法進(jìn)入單用戶模式。按以上解決方法做完后,/boot啟動(dòng)目錄的破壞就解決了,重啟系統(tǒng)。第一次修復(fù)好系統(tǒng)后默認(rèn)selinux會(huì)對(duì)系統(tǒng)進(jìn)行相關(guān)參數(shù)的檢測(cè),所以修復(fù)后第一次啟動(dòng)系統(tǒng)是相當(dāng)慢的,默認(rèn)檢測(cè)完后系統(tǒng)會(huì)重新啟動(dòng),直至到用戶登錄界面,輸入用戶名密碼登陸即可。4、修復(fù)/etc/fstab文件:/etc/fstab這個(gè)文件,是系統(tǒng)安裝時(shí)生成的文件,記錄系統(tǒng)的磁盤和分區(qū)掛載信息,這里需要記住其文件格式才可以恢復(fù),其他的文件包括內(nèi)核都可以使用安裝軟件包來實(shí)現(xiàn)修復(fù),所以這里該文件在安裝好系統(tǒng)后最好做個(gè)備份,在破壞時(shí)也最好不要rm直接刪除,可以通過修改其文件格式和文件名讓該文件失效在rhel5里是指定LABEL來認(rèn)系統(tǒng)掛載目錄,rhel6中改用指定UUID(硬盤的ID號(hào)),可防止內(nèi)核升級(jí)后硬盤掛載出錯(cuò)若fstab文件被刪除或誤修改,會(huì)出現(xiàn)如下錯(cuò)誤:故障現(xiàn)象:?jiǎn)?dòng)中提示“.../etc/fstab:Nosuchfileordirectory”;系統(tǒng)停滯,無法完成初始化或解決方法:以急救模式引導(dǎo)系統(tǒng),過程略。進(jìn)入急救模式的shell命令符下;因?yàn)閒stab文件丟失,系統(tǒng)不知道/掛載在什么地方#chroot/mnt/sysimage執(zhí)行fdisk/dev/sda查看分區(qū)情況,如下圖所示:可以看出/dev/sda1是啟動(dòng)分區(qū),/dev/sda2應(yīng)當(dāng)就是根分區(qū)了若根分區(qū)應(yīng)用了lvm機(jī)制,解決方法如下:在急救模式的shell環(huán)境中掃描邏輯組,激活邏輯卷以便找到根分區(qū)設(shè)備,然后手動(dòng)掛載根分區(qū),并重建fstab文件即可,如下圖:#vi/part/etc/fstab文件,修改其錯(cuò)誤若根分區(qū)就是基本linux分區(qū),沒有應(yīng)用lvm,解決方法:使用fdisk–l/dev/sda查看分區(qū)情況,確定根設(shè)備分區(qū),然后手動(dòng)掛載根分區(qū)到一個(gè)自定義的目錄上,重建或修改fstab文件即可重啟系統(tǒng),第一次修復(fù)好系統(tǒng)后默認(rèn)selinux會(huì)對(duì)系統(tǒng)進(jìn)行相關(guān)參數(shù)的檢測(cè)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論