與windows系統(tǒng)一樣,linux操作系統(tǒng)也會存在很多問題和故障,很多l(xiāng)inux新手都害怕故障,面對出現(xiàn)的問題顯得無可奈何,更有甚者,由此放棄了linux,其實(shí),我們不應(yīng)該懼怕問題,學(xué)習(xí)就是一個發(fā)現(xiàn)問題與解決問題的過程,只要掌握了解決問題的基本思路,一切故障都會迎刃而解,當(dāng)然前提是我們已經(jīng)具備了解決問題的思路和扎實(shí)的知識功底。
一、處理linux系統(tǒng)故障的思路
作為一名合格的linux系統(tǒng)管理員,一定要有一套清晰、明確的解決故障思路,當(dāng)問題出現(xiàn)時,才能迅速定位、解決問題,這里給出一個處理問題的一般思路:
l 重視報錯提示信息:每個錯誤的出現(xiàn),都是給出錯誤提示信息,一般情況下這個提示基本定位了問題的所在,因此一定要重視這個報錯信息,如果對這些錯誤信息視而不見,問題永遠(yuǎn)得不到解決。
l 查閱日志文件:有時候報錯信息只是給出了問題的表面現(xiàn)象,要想更深入的了解問題,必須查看相應(yīng)的日志文件,而日志文件又分為系統(tǒng)日志文件(/var/log)和應(yīng)用的日志文件,結(jié)合這兩個日志文件,一般就能定位問題所在。
l 分析、定位問題:這個過程是比較復(fù)雜的,根據(jù)報錯信息,結(jié)合日志文件,同時還要考慮其它相關(guān)情況,最終找到引起問題的原因。
l 解決問題:找到了問題出現(xiàn)的原因,解決問題就是很簡單的事情了。
從這個流程可以看出,解決問題的過程就是分析、查找問題的過程,一旦確定問題產(chǎn)生的原因,故障也就隨之解決了。
二、 忘記linux root密碼
這個問題出現(xiàn)的幾率是很高的,不過,在linux下解決這個問題也很簡單,只需重啟linux系統(tǒng),然后引導(dǎo)進(jìn)入linux的單用戶模式(init 1),由于單用戶模式是不需要輸入登錄密碼的,因此,可以直接登錄系統(tǒng),修改root密碼即可解決問題。
下面是詳細(xì)的處理方法,這里我們以Redhat linux為基準(zhǔn),操作步驟如下:
。1) 重啟系統(tǒng),待linux系統(tǒng)啟動到grub引導(dǎo)菜單時,找到當(dāng)前系統(tǒng)引導(dǎo)選項(可以按方向鍵展開隱藏的菜單,單處理器只有一個引導(dǎo)項,多處理器有3個或3個以上引導(dǎo)項,一般默認(rèn)選項就是系統(tǒng)當(dāng)前引導(dǎo)選項)。
。2) 通過方向鍵將光標(biāo)放到當(dāng)前系統(tǒng)引導(dǎo)項上,然后按鍵盤字母“e”,進(jìn)入編輯狀態(tài)。
。3) 然后通過上下鍵,選中帶有kernel指令的一行,繼續(xù)按鍵盤字母“e”,編輯該行,在行末尾加個空格,然后添加single,類似與這樣:
kernel /vmlinuz-2.6.18-8.el5 ro root=LABEL=/ rhgb quiet single
。4) 修改完成,按回車鍵,返回到剛才的界面。
。5) 最后按鍵盤“b”,系統(tǒng)開始引導(dǎo)。
這樣系統(tǒng)就啟動到了單用戶模式下,這里的單用戶根windows下的安全模式類似,在單用戶模式下,只是啟動最基本的系統(tǒng),網(wǎng)絡(luò)以及應(yīng)用服務(wù)均不啟動。單用戶模式啟動完畢,系統(tǒng)會自動進(jìn)入到命令行狀態(tài)下,類似與“sh-3.1#”,然后直接執(zhí)行passwd,回車,系統(tǒng)會提示輸入新的root密碼兩次,最后會看到修改密碼成功的提示,這樣就完成了root密碼的修改。如果需要正常啟動系統(tǒng),現(xiàn)在只需輸入“init 3”,就進(jìn)入了多用戶模式。用root用戶重新登錄系統(tǒng),看看設(shè)置的新密碼是否生效。
三 linux系統(tǒng)無法啟動的解決辦法
導(dǎo)致linux無法啟動的原因有很多,常見的原因有如下幾種:
l 文件系統(tǒng)配置不當(dāng),比如/etc/inittab文件、/etc/fstab文件等配置錯誤或丟失,導(dǎo)致系統(tǒng)錯誤,無法啟動。
l 非法關(guān)機(jī),導(dǎo)致root文件系統(tǒng)破壞,也就是linux根分區(qū)破壞,系統(tǒng)無法正常啟動
l Linux內(nèi)核崩潰,從而無法啟動
l 系統(tǒng)引導(dǎo)程序出現(xiàn)問題,比如grub丟失或者損壞,導(dǎo)致系統(tǒng)無法引導(dǎo)啟動。
l 硬件故障,比如主板、電源、硬盤等出現(xiàn)問題,導(dǎo)致linux無法啟動。
從這些常見的故障可知,導(dǎo)致系統(tǒng)無法啟動的主要有兩個問題,硬件原因和操作系統(tǒng)原因,對于硬件出現(xiàn)的問題,只需通過更換硬件設(shè)備,即可解決,而對于操作系統(tǒng)出現(xiàn)的問題,雖然出現(xiàn)的問題可能千差萬別,不過在多數(shù)情況下都可以用相對簡單統(tǒng)一的一些方法來恢復(fù)系統(tǒng),下面我們就針對上面提出的幾個問題,結(jié)合Redhat Linux系統(tǒng)環(huán)境,給出一些常用的、普遍的解決問題的方法。
1./etc/fstab文件丟失,導(dǎo)致系統(tǒng)無法啟動
/etc/fstab文件存放了系統(tǒng)中文件系統(tǒng)的相關(guān)信息,如果正確的配置了該文件,那么在linux啟動時,系統(tǒng)會讀取此文件,自動掛載linux的各個分區(qū),如果此文件配置錯誤,或者丟失,就會導(dǎo)致系統(tǒng)無法啟動,具體的故障現(xiàn)象是在檢測mount partition時出現(xiàn):
starting system logger
此后系統(tǒng)啟動就停止了。
針對這個問題,我們的第一思路就是想辦法恢復(fù)/etc/fstab這個文件的信息,只要恢復(fù)了此文件,系統(tǒng)就能自動掛載每個分區(qū),正常啟動?赡芎芏嘧x者首先想到的是將系統(tǒng)切換到單用戶模式下,然后手動掛載分區(qū),最后結(jié)合系統(tǒng)信息,重建/etc/fstab文件。
但是這種方法是行不通的,因?yàn)閒atab文件丟失導(dǎo)致linux無法掛載任何一個分區(qū),即使linux還能切換到單用戶下,那么此時的系統(tǒng)也只是一個read-only的文件系統(tǒng),無法向磁盤寫入任何信息。
我們介紹另外一個方法,就是利用linux rescue修復(fù)模式登錄系統(tǒng),進(jìn)而獲取分區(qū)和掛載點(diǎn)信息,重構(gòu)/etc/fstab文件。
這里以rhel5為例,首先將系統(tǒng)第一章光盤放入光驅(qū),設(shè)置BOIS從光驅(qū)啟動,這樣系統(tǒng)就從光驅(qū)引導(dǎo),然后在boot后輸入:linux rescue
接著系統(tǒng)自動開始引導(dǎo)
這里是選擇模式使用的語言,可以按照自己需要設(shè)定,我們這里選擇“English“,然后按tab鍵,選中“ok”,回車進(jìn)入下一步。
下面進(jìn)入的是鍵盤選擇界面,這里選擇默認(rèn)的“us”即可。
下面進(jìn)入網(wǎng)絡(luò)配置界面
這里是選擇是否啟用網(wǎng)絡(luò),由于系統(tǒng)已經(jīng)無法啟動,我們已經(jīng)在linux系統(tǒng)上進(jìn)行操作了,啟用網(wǎng)絡(luò)與否都無所謂。這里選擇不啟用。
下面到了最關(guān)鍵的步驟了,如圖5所示,修復(fù)模式會自動將系統(tǒng)的所有分區(qū)掛載到/mnt/sysimage目錄下,選擇“Continue”,則修復(fù)環(huán)境進(jìn)入到read-write狀態(tài)下,可以對分區(qū)進(jìn)行讀寫操作,選擇“Read-Only”,修復(fù)環(huán)境進(jìn)入到只讀模式,由于我們要重建fstab文件到/etc目錄下,因此選擇“Continue”進(jìn)入可讀寫模式下。
下面是一個友情提示界面,如圖6所示,由于fstab文件丟失,修復(fù)模式找不到任何可掛載的分區(qū),從這里可知,修復(fù)模式在這里也讀取/etc/fstab文件,回車,進(jìn)入下一步。
下面就進(jìn)入了修復(fù)環(huán)境下,可以進(jìn)行操作了。
上面詳細(xì)演示了如何進(jìn)入linux的修復(fù)模式,其實(shí)很多情況下,linux無法啟動時,都可以通過這個方式登錄系統(tǒng)進(jìn)行修復(fù)和更改操作。
下面是恢復(fù)/etc/fstab文件的詳細(xì)過程:
首先查看一下系統(tǒng)分區(qū)情況,如下所示:
sh-3.1# fdisk -l
Disk /dev/sda: 42.9 GB, 42949672960 bytes
255 heads, 63 sectors/track, 5221 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 1 25 200781 83 Linux
/dev/sda2 26 1300 10241437+ 83 Linux
/dev/sda3 1301 1682 3068415 83 Linux
/dev/sda4 1683 5221 28427017+ 5 Extended
/dev/sda5 1683 1873 1534176 83 Linux
/dev/sda6 1874 2064 1534176 83 Linux
/dev/sda7 2065 2255 1534176 83 Linux
/dev/sda8 2256 2382 1020096 83 Linux
/dev/sda9 2383 2484 819283+ 82 Linux swap / Solaris
/dev/sda10 2485 5221 21984921 83 Linux
因?yàn)榉謪^(qū)并沒有損壞,通過fdisk命令可以查看到系統(tǒng)分區(qū)的完整信息,但是每個分區(qū)對應(yīng)的label name信息我們還不知道,下面通過e2label命令查看每個分區(qū)對應(yīng)的label name:
sh-3.1# e2label /dev/sda1
/boot
sh-3.1# e2label /dev/sda2
/usr
sh-3.1# e2label /dev/sda3
/
sh-3.1# e2label /dev/sda5
/var
sh-3.1# e2label /dev/sda6
/tmp
sh-3.1# e2label /dev/sda7
/home
sh-3.1# e2label /dev/sda8
/opt
sh-3.1# e2label /dev/sda10
/webdata
這樣,就得到了所有分區(qū)的掛載點(diǎn)信息,接下來就可以構(gòu)造一個fstab文件了。
小技巧:可以參考其它系統(tǒng)中fstab文件的格式,結(jié)合本系統(tǒng)的分區(qū)和掛載點(diǎn)信息,構(gòu)造出自己的fstab文件來。
由于fstab文件是存放在系統(tǒng)根目錄下的,因此需要掛載原來系統(tǒng)的根分區(qū),從上面可知根分區(qū)對應(yīng)的設(shè)備名為/dev/sda3,接著在修復(fù)模式創(chuàng)建的臨時根分區(qū)下創(chuàng)建一個掛載點(diǎn),然后掛載原來系統(tǒng)的根分區(qū)。操作過程如下所示:
sh-3.1# pwd
/
sh-3.1# mkdir temp
sh-3.1# mount /dev/sda3 /temp
sh-3.1# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev 515644 0 515644 0% /dev
/tmp/loop0 79872 79872 0 100% /mnt/runtime
/dev/sda3 2972268 259916 2558932 10% /temp
這樣以來,原有根分區(qū)的文件全部掛載到了/temp目錄下,接著就可以創(chuàng)建我們需要的fatab文件了。
sh-3.1# vi /temp/etc/fstab
LABEL=/ / ext3 defaults 1
億恩科技地址(ADD):鄭州市黃河路129號天一大廈608室 郵編(ZIP):450008 傳真(FAX):0371-60123888
聯(lián)系:億恩小凡
QQ:89317007
電話:0371-63322206 本文出自:億恩科技【mszdt.com】
服務(wù)器租用/服務(wù)器托管中國五強(qiáng)!虛擬主機(jī)域名注冊頂級提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM]
|