Linux不能正常啟動怎么辦
Linux不能正常啟動怎么辦
Linux系統(tǒng)因NAS存儲故障可能導(dǎo)致其無法正常啟動,遇到這種情況你就要先從Linux系統(tǒng)入手,那么具體應(yīng)該怎么做呢?下面小編就給大家介紹下Linux系統(tǒng)因NAS存儲故障一起的無法啟動問題的解決方法。
一、故障現(xiàn)象描述
NAS操作系統(tǒng)內(nèi)核為Linux,自帶的存儲有16塊硬盤,總共分兩組,每組做了RAID5,Linux操作系統(tǒng)無法正常啟動,在服務(wù)啟動到cups那里就停止了,按鍵ctrl+c強制斷開也沒有響應(yīng),查看硬盤狀態(tài),都是正常的,沒有報警或者警告現(xiàn)象。
二、問題判斷思路
通過上面這些現(xiàn)象,首先判斷NAS硬件應(yīng)該沒問題,NAS存儲盤也應(yīng)該正常,現(xiàn)在Linux無法啟動,應(yīng)該是Linux系統(tǒng)本身存在問題,因此,首先從Linux系統(tǒng)入手進(jìn)行排查。
三、問題處理過程
1、第一次處理過程
NAS系統(tǒng)本身就是一個Linux內(nèi)核裝載了一個文件系統(tǒng)管理軟件,管理軟件可以對系統(tǒng)磁盤、系統(tǒng)服務(wù)、文件系統(tǒng)等進(jìn)行管理和操作,正常情況下,基于Linux內(nèi)核的NAS系統(tǒng)應(yīng)該啟動到init3或者init5模式下,由于NAS僅用了Linux一個內(nèi)核模塊和幾個簡單服務(wù),所以判斷NAS下的Linux系統(tǒng)肯定是啟動到init 3模式下,那么現(xiàn)在無法啟動到多用戶字符界面下,何不讓Linux直接進(jìn)入單用戶(init 1)模式下呢,因為單用戶模式下僅僅啟用系統(tǒng)所必須的幾個服務(wù),而cpus服務(wù)是應(yīng)用程序級別的,肯定不會在“init 1”模式下啟動,這樣就避開了cups無法啟動的問題,所以,下面的工作就是要進(jìn)入Linux的單用戶模式下。
很多的Linux發(fā)行版本都可以在啟動的引導(dǎo)界面通過相關(guān)的設(shè)置進(jìn)入單用戶模式下,通過查看NAS的啟動過程,基本判斷這個Linux系統(tǒng)與RHEL/Centos發(fā)行版極為類似,因此,就通過RHEL/Centos進(jìn)入單用戶模式的方法試一試。
RHEL/Centos進(jìn)入單用戶模式很簡單,就是在系統(tǒng)啟動到引導(dǎo)歡迎界面下,按鍵e,然后編輯正確的內(nèi)核引導(dǎo)選項,在最后面加上“single”選項,最后直接按鍵“b“即可進(jìn)入單用戶了。
接下來,重新啟動NAS,然后硬件自檢,接著開始啟動Linux,一直在等待這個NAS的啟動歡迎界面,但是歡迎界面一直沒出來,就直接進(jìn)入內(nèi)核鏡像,加載內(nèi)核階段了,沒有內(nèi)核引導(dǎo)界面,如何進(jìn)入單用戶啊,經(jīng)過簡單思考,還是決定在硬件檢測完畢后直接按鍵盤”e“鍵,奇跡出現(xiàn)了,還真的可以,NAS進(jìn)入到了內(nèi)核引導(dǎo)界面,通過簡單觀察,發(fā)行第二個正是要引導(dǎo)的內(nèi)核選項,于是移動鍵盤上下鍵,選擇這個內(nèi)核,然后在按鍵”e“,進(jìn)入內(nèi)核引導(dǎo)編輯界面了,在這行的最后面,輸入“single”,然后按回車鍵,返回上個界面,接著按鍵“b”開始進(jìn)行單用戶引導(dǎo),經(jīng)過一分鐘的時間,系統(tǒng)如愿以償?shù)倪M(jìn)入了單用戶下的shell命令行。
進(jìn)入單用戶模式后,能做的事情就很多了,首先要做的就是將cups服務(wù)在多用戶模式下自啟動關(guān)閉,執(zhí)行命令如下:
chkconfig --levle 35 cups off
執(zhí)行成功后,重啟系統(tǒng)進(jìn)入多用戶模式下,看看系統(tǒng)是否能正常啟動。
2、第二次處理過程
將cups服務(wù)開機自啟動關(guān)閉后,重啟NAS,發(fā)現(xiàn)問題依舊,NAS還是啟動到cups服務(wù)那里停止了,難道上面的命令沒有執(zhí)行成功嗎?明明已經(jīng)禁止了cups服務(wù)啟動了,怎么還是啟動了呢?于是,繼續(xù)重啟NAS,再次進(jìn)入單用戶模式下,看看問題究竟出在哪里了。
進(jìn)入單用戶后,再次執(zhí)行chkconfig 命令,依舊可以成功,難道是cups服務(wù)有問題,先看看配置文件,執(zhí)行如下命令:
vi /etc/cups/cupsd.conf
在這里發(fā)現(xiàn)了一個問題,vi打開cupsd.conf時,提示“write file in swap”,文件明明真實存在,怎么說在虛擬內(nèi)存中呢,經(jīng)過思考,只有一種可能,NAS設(shè)備的Linux系統(tǒng)分區(qū)應(yīng)該沒有正確掛載,導(dǎo)致在進(jìn)入單用戶的時候,所有文件都存儲在了虛擬內(nèi)存中,要驗證非常簡單,執(zhí)行“df”命令查看即可,如下圖所示:
從這里可以看出,Linux的系統(tǒng)分區(qū)并未掛載,通過“fdisk -l”檢查下磁盤分區(qū)狀態(tài)
通過輸出可知,NAS的系統(tǒng)盤是/dev/sda,僅劃分了/dev/sda1和/dev/sda2兩個系統(tǒng)分區(qū),而數(shù)據(jù)磁盤是經(jīng)過做RAID5完成的,在系統(tǒng)上的設(shè)備標(biāo)識分別是/dev/sdb1和/dev/sdc1,由于單用戶默認(rèn)沒有掛載任何NAS磁盤,這里嘗試手動掛載NAS的系統(tǒng)盤,執(zhí)行如下命令:
[root@NASserver ~]#mount /dev/sda2 /mnt
[root@NASserver ~]#mount /dev/sda1 /opt
這里的/mnt、/opt是隨意掛載的目錄,也可以掛載到其他空目錄下,掛載完成,分別進(jìn)入這連個目錄看看內(nèi)容有什么
通過這兩個內(nèi)容的查看,初步判斷,/dev/sda2分區(qū)應(yīng)該是Linux的根分區(qū),而/dev/sda1應(yīng)該是/boot分區(qū)?,F(xiàn)在分區(qū)已經(jīng)掛載上去了,再次執(zhí)行df命令看看掛載情況,如下圖所示:
到這里為止,發(fā)現(xiàn)問題了。/dev/sda2磁盤分區(qū)已經(jīng)沒有可用的磁盤空間了,而這個分區(qū)剛好是NAS系統(tǒng)的根分區(qū),根分區(qū)沒有空間了,那么系統(tǒng)啟動肯定就出問題了。
下面再把思路轉(zhuǎn)到前面介紹的案例中,由于系統(tǒng)cups服務(wù)在啟動的時候會寫啟動日志到根分區(qū),而根分區(qū)因為沒有空間了,所以也就無法寫日志了,由此導(dǎo)致的結(jié)果就是cups服務(wù)無法啟動,這就解釋了此案例中NAS系統(tǒng)每次啟動到cups服務(wù)就停止的原因。
四解決問題
由于NAS系統(tǒng)只有根分區(qū)和/boot分區(qū),所以系統(tǒng)產(chǎn)生的相關(guān)日志都會存儲在根分區(qū)中,現(xiàn)在根分區(qū)滿了,首先可以清理的就是/var目錄下的系統(tǒng)相關(guān)日志文件,通??梢郧謇淼哪夸浻?var/log,執(zhí)行如下命令查看/var/log日志目錄占據(jù)磁盤空間大?。?/p>
[root@NASserver ~]# du -sh /var/log
50.1G /var/log
通過命令輸出發(fā)現(xiàn)/var/log目錄占據(jù)了根分區(qū)僅70%的空間,清理這個目錄下的日志文件即可釋放大部分根分區(qū)空間,清理完畢,重啟NAS系統(tǒng),發(fā)現(xiàn)系統(tǒng)cups服務(wù)能正常啟動了,NAS服務(wù)也啟動正常了。
以上就是因NAS存儲故障引起的Linux系統(tǒng)無法啟動的方法介紹了,如果你的系統(tǒng)出現(xiàn)該問題,你要先分析問題,分析是哪里出了問題,再進(jìn)行處理,這樣才能事半功倍,及時解決問題。