與windows系統一樣,linux操作系統也會存在很多問題和故障,很多l(xiāng)inux新手都害怕故障,面對出現的問題顯得無可奈何,更有甚者,由此放棄了linux,其實,我們不應該懼怕問題,學習就是一個發(fā)現問題與解決問題的過程,只要掌握了解決問題的基本思路,一切故障都會迎刃而解,當然前提是我們已經具備了解決問題的思路和扎實的知識功底。
一、處理linux系統故障的思路
作為一名合格的linux系統管理員,一定要有一套清晰、明確的解決故障思路,當問題出現時,才能迅速定位、解決問題,這里給出一個處理問題的一般思路:
l 重視報錯提示信息:每個錯誤的出現,都是給出錯誤提示信息,一般情況下這個提示基本定位了問題的所在,因此一定要重視這個報錯信息,如果對這些錯誤信息視而不見,問題永遠得不到解決。
l 查閱日志文件:有時候報錯信息只是給出了問題的表面現象,要想更深入的了解問題,必須查看相應的日志文件,而日志文件又分為系統日志文件(/var/log)和應用的日志文件,結合這兩個日志文件,一般就能定位問題所在。
l 分析、定位問題:這個過程是比較復雜的,根據報錯信息,結合日志文件,同時還要考慮其它相關情況,最終找到引起問題的原因。
l 解決問題:找到了問題出現的原因,解決問題就是很簡單的事情了。
從這個流程可以看出,解決問題的過程就是分析、查找問題的過程,一旦確定問題產生的原因,故障也就隨之解決了。
二、 忘記linux root密碼
這個問題出現的幾率是很高的,不過,在linux下解決這個問題也很簡單,只需重啟linux系統,然后引導進入linux的單用戶模式(init 1),由于單用戶模式是不需要輸入登錄密碼的,因此,可以直接登錄系統,修改root密碼即可解決問題。
下面是詳細的處理方法,這里我們以Redhat linux為基準,操作步驟如下:
。1) 重啟系統,待linux系統啟動到grub引導菜單時,找到當前系統引導選項(可以按方向鍵展開隱藏的菜單,單處理器只有一個引導項,多處理器有3個或3個以上引導項,一般默認選項就是系統當前引導選項)。
。2) 通過方向鍵將光標放到當前系統引導項上,然后按鍵盤字母“e”,進入編輯狀態(tài)。
。3) 然后通過上下鍵,選中帶有kernel指令的一行,繼續(xù)按鍵盤字母“e”,編輯該行,在行末尾加個空格,然后添加single,類似與這樣:
kernel /vmlinuz-2.6.18-8.el5 ro root=LABEL=/ rhgb quiet single
。4) 修改完成,按回車鍵,返回到剛才的界面。
。5) 最后按鍵盤“b”,系統開始引導。
這樣系統就啟動到了單用戶模式下,這里的單用戶根windows下的安全模式類似,在單用戶模式下,只是啟動最基本的系統,網絡以及應用服務均不啟動。單用戶模式啟動完畢,系統會自動進入到命令行狀態(tài)下,類似與“sh-3.1#”,然后直接執(zhí)行passwd,回車,系統會提示輸入新的root密碼兩次,最后會看到修改密碼成功的提示,這樣就完成了root密碼的修改。如果需要正常啟動系統,現在只需輸入“init 3”,就進入了多用戶模式。用root用戶重新登錄系統,看看設置的新密碼是否生效。
三 linux系統無法啟動的解決辦法
導致linux無法啟動的原因有很多,常見的原因有如下幾種:
l 文件系統配置不當,比如/etc/inittab文件、/etc/fstab文件等配置錯誤或丟失,導致系統錯誤,無法啟動。
l 非法關機,導致root文件系統破壞,也就是linux根分區(qū)破壞,系統無法正常啟動
l Linux內核崩潰,從而無法啟動
l 系統引導程序出現問題,比如grub丟失或者損壞,導致系統無法引導啟動。
l 硬件故障,比如主板、電源、硬盤等出現問題,導致linux無法啟動。
從這些常見的故障可知,導致系統無法啟動的主要有兩個問題,硬件原因和操作系統原因,對于硬件出現的問題,只需通過更換硬件設備,即可解決,而對于操作系統出現的問題,雖然出現的問題可能千差萬別,不過在多數情況下都可以用相對簡單統一的一些方法來恢復系統,下面我們就針對上面提出的幾個問題,結合Redhat Linux系統環(huán)境,給出一些常用的、普遍的解決問題的方法。
1./etc/fstab文件丟失,導致系統無法啟動
/etc/fstab文件存放了系統中文件系統的相關信息,如果正確的配置了該文件,那么在linux啟動時,系統會讀取此文件,自動掛載linux的各個分區(qū),如果此文件配置錯誤,或者丟失,就會導致系統無法啟動,具體的故障現象是在檢測mount partition時出現:
starting system logger
此后系統啟動就停止了。
針對這個問題,我們的第一思路就是想辦法恢復/etc/fstab這個文件的信息,只要恢復了此文件,系統就能自動掛載每個分區(qū),正常啟動。可能很多讀者首先想到的是將系統切換到單用戶模式下,然后手動掛載分區(qū),最后結合系統信息,重建/etc/fstab文件。
但是這種方法是行不通的,因為fatab文件丟失導致linux無法掛載任何一個分區(qū),即使linux還能切換到單用戶下,那么此時的系統也只是一個read-only的文件系統,無法向磁盤寫入任何信息。
我們介紹另外一個方法,就是利用linux rescue修復模式登錄系統,進而獲取分區(qū)和掛載點信息,重構/etc/fstab文件。
這里以rhel5為例,首先將系統第一章光盤放入光驅,設置BOIS從光驅啟動,這樣系統就從光驅引導,然后在boot后輸入:linux rescue
接著系統自動開始引導
這里是選擇模式使用的語言,可以按照自己需要設定,我們這里選擇“English“,然后按tab鍵,選中“ok”,回車進入下一步。
下面進入的是鍵盤選擇界面,這里選擇默認的“us”即可。
下面進入網絡配置界面
這里是選擇是否啟用網絡,由于系統已經無法啟動,我們已經在linux系統上進行操作了,啟用網絡與否都無所謂。這里選擇不啟用。
下面到了最關鍵的步驟了,如圖5所示,修復模式會自動將系統的所有分區(qū)掛載到/mnt/sysimage目錄下,選擇“Continue”,則修復環(huán)境進入到read-write狀態(tài)下,可以對分區(qū)進行讀寫操作,選擇“Read-Only”,修復環(huán)境進入到只讀模式,由于我們要重建fstab文件到/etc目錄下,因此選擇“Continue”進入可讀寫模式下。
下面是一個友情提示界面,如圖6所示,由于fstab文件丟失,修復模式找不到任何可掛載的分區(qū),從這里可知,修復模式在這里也讀取/etc/fstab文件,回車,進入下一步。
下面就進入了修復環(huán)境下,可以進行操作了。
上面詳細演示了如何進入linux的修復模式,其實很多情況下,linux無法啟動時,都可以通過這個方式登錄系統進行修復和更改操作。
下面是恢復/etc/fstab文件的詳細過程:
首先查看一下系統分區(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
因為分區(qū)并沒有損壞,通過fdisk命令可以查看到系統分區(qū)的完整信息,但是每個分區(qū)對應的label name信息我們還不知道,下面通過e2label命令查看每個分區(qū)對應的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ū)的掛載點信息,接下來就可以構造一個fstab文件了。
小技巧:可以參考其它系統中fstab文件的格式,結合本系統的分區(qū)和掛載點信息,構造出自己的fstab文件來。
由于fstab文件是存放在系統根目錄下的,因此需要掛載原來系統的根分區(qū),從上面可知根分區(qū)對應的設備名為/dev/sda3,接著在修復模式創(chuàng)建的臨時根分區(qū)下創(chuà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
聯系:億恩小凡
QQ:89317007
電話:0371-63322206 本文出自:億恩科技【m.1tcdy.com】
服務器租用/服務器托管中國五強!虛擬主機域名注冊頂級提供商!15年品質保障!--億恩科技[ENKJ.COM]
|