一次因NAS存儲(chǔ)故障引起的Linux系統(tǒng)恢復(fù)案例
一、故障現(xiàn)象描述
NAS操作系統(tǒng)內(nèi)核為L(zhǎng)inux,自帶的存儲(chǔ)有16塊硬盤(pán),總共分兩組,每組做了RAID5,Linux操作系統(tǒng)無(wú)法正常啟動(dòng),在服務(wù)啟動(dòng)到cups那里就停止了,按鍵ctrl+c強(qiáng)制斷開(kāi)也沒(méi)有響應(yīng),查看硬盤(pán)狀態(tài),都是正常的,沒(méi)有報(bào)警或者警告現(xiàn)象。
二、問(wèn)題判斷思路
通過(guò)上面這些現(xiàn)象,首先判斷NAS硬件應(yīng)該沒(méi)問(wèn)題,NAS存儲(chǔ)盤(pán)也應(yīng)該正常,現(xiàn)在Linux無(wú)法啟動(dòng),應(yīng)該是Linux系統(tǒng)本身存在問(wèn)題,因此,首先從Linux系統(tǒng)入手進(jìn)行排查。
三、問(wèn)題處理過(guò)程
1、第一次處理過(guò)程
NAS系統(tǒng)本身就是一個(gè)Linux內(nèi)核裝載了一個(gè)文件系統(tǒng)管理軟件,管理軟件可以對(duì)系統(tǒng)磁盤(pán)、系統(tǒng)服務(wù)、文件系統(tǒng)等進(jìn)行管理和操作,正常情況下,基于Linux內(nèi)核的NAS系統(tǒng)應(yīng)該啟動(dòng)到init3或者init5模式下,由于NAS僅用了Linux一個(gè)內(nèi)核模塊和幾個(gè)簡(jiǎn)單服務(wù),所以判斷NAS下的Linux系統(tǒng)肯定是啟動(dòng)到init 3模式下,那么現(xiàn)在無(wú)法啟動(dòng)到多用戶(hù)字符界面下,何不讓Linux直接進(jìn)入單用戶(hù)(init 1)模式下呢,因?yàn)閱斡脩?hù)模式下僅僅啟用系統(tǒng)所必須的幾個(gè)服務(wù),而cpus服務(wù)是應(yīng)用程序級(jí)別的,肯定不會(huì)在“init 1”模式下啟動(dòng),這樣就避開(kāi)了cups無(wú)法啟動(dòng)的問(wèn)題,所以,下面的工作就是要進(jìn)入Linux的單用戶(hù)模式下。
很多的Linux發(fā)行版本都可以在啟動(dòng)的引導(dǎo)界面通過(guò)相關(guān)的設(shè)置進(jìn)入單用戶(hù)模式下,通過(guò)查看NAS的啟動(dòng)過(guò)程,基本判斷這個(gè)Linux系統(tǒng)與RHEL/Centos發(fā)行版極為類(lèi)似,因此,就通過(guò)RHEL/Centos進(jìn)入單用戶(hù)模式的方法試一試。
RHEL/Centos進(jìn)入單用戶(hù)模式很簡(jiǎn)單,就是在系統(tǒng)啟動(dòng)到引導(dǎo)歡迎界面下,按鍵e,然后編輯正確的內(nèi)核引導(dǎo)選項(xiàng),在最后面加上“single”選項(xiàng),最后直接按鍵“b“即可進(jìn)入單用戶(hù)了。
接下來(lái),重新啟動(dòng)NAS,然后硬件自檢,接著開(kāi)始啟動(dòng)Linux,一直在等待這個(gè)NAS的啟動(dòng)歡迎界面,但是歡迎界面一直沒(méi)出來(lái),就直接進(jìn)入內(nèi)核鏡像,加載內(nèi)核階段了,沒(méi)有內(nèi)核引導(dǎo)界面,如何進(jìn)入單用戶(hù)啊,經(jīng)過(guò)簡(jiǎn)單思考,還是決定在硬件檢測(cè)完畢后直接按鍵盤(pán)”e“鍵,奇跡出現(xiàn)了,還真的可以,NAS進(jìn)入到了內(nèi)核引導(dǎo)界面,通過(guò)簡(jiǎn)單觀察,發(fā)行第二個(gè)正是要引導(dǎo)的內(nèi)核選項(xiàng),于是移動(dòng)鍵盤(pán)上下鍵,選擇這個(gè)內(nèi)核,然后在按鍵”e“,進(jìn)入內(nèi)核引導(dǎo)編輯界面了,在這行的最后面,輸入“single”,然后按回車(chē)鍵,返回上個(gè)界面,接著按鍵“b”開(kāi)始進(jìn)行單用戶(hù)引導(dǎo),經(jīng)過(guò)一分鐘的時(shí)間,系統(tǒng)如愿以?xún)數(shù)倪M(jìn)入了單用戶(hù)下的shell命令行。
進(jìn)入單用戶(hù)模式后,能做的事情就很多了,首先要做的就是將cups服務(wù)在多用戶(hù)模式下自啟動(dòng)關(guān)閉,執(zhí)行命令如下:
chkconfig --levle 35 cups off
執(zhí)行成功后,重啟系統(tǒng)進(jìn)入多用戶(hù)模式下,看看系統(tǒng)是否能正常啟動(dòng)。
2、第二次處理過(guò)程
將cups服務(wù)開(kāi)機(jī)自啟動(dòng)關(guān)閉后,重啟NAS,發(fā)現(xiàn)問(wèn)題依舊,NAS還是啟動(dòng)到cups服務(wù)那里停止了,難道上面的命令沒(méi)有執(zhí)行成功嗎?明明已經(jīng)禁止了cups服務(wù)啟動(dòng)了,怎么還是啟動(dòng)了呢?于是,繼續(xù)重啟NAS,再次進(jìn)入單用戶(hù)模式下,看看問(wèn)題究竟出在哪里了。
進(jìn)入單用戶(hù)后,再次執(zhí)行chkconfig 命令,依舊可以成功,難道是cups服務(wù)有問(wèn)題,先看看配置文件,執(zhí)行如下命令:
vi /etc/cups/cupsd.conf
在這里發(fā)現(xiàn)了一個(gè)問(wèn)題,vi打開(kāi)cupsd.conf時(shí),提示“write file in swap”,文件明明真實(shí)存在,怎么說(shuō)在虛擬內(nèi)存中呢,經(jīng)過(guò)思考,只有一種可能,NAS設(shè)備的Linux系統(tǒng)分區(qū)應(yīng)該沒(méi)有正確掛載,導(dǎo)致在進(jìn)入單用戶(hù)的時(shí)候,所有文件都存儲(chǔ)在了虛擬內(nèi)存中,要驗(yàn)證非常簡(jiǎn)單,執(zhí)行“df”命令查看即可,如下圖所示:

從這里可以看出,Linux的系統(tǒng)分區(qū)并未掛載,通過(guò)"fdisk -l"檢查下磁盤(pán)分區(qū)狀態(tài),輸出如下圖所示:

通過(guò)輸出可知,NAS的系統(tǒng)盤(pán)是/dev/sda,僅劃分了/dev/sda1和/dev/sda2兩個(gè)系統(tǒng)分區(qū),而數(shù)據(jù)磁盤(pán)是經(jīng)過(guò)做RAID5完成的,在系統(tǒng)上的設(shè)備標(biāo)識(shí)分別是/dev/sdb1和/dev/sdc1,由于單用戶(hù)默認(rèn)沒(méi)有掛載任何NAS磁盤(pán),這里嘗試手動(dòng)掛載NAS的系統(tǒng)盤(pán),執(zhí)行如下命令:
[root@NASserver ~]#mount /dev/sda2 /mnt
[root@NASserver ~]#mount /dev/sda1 /opt
這里的/mnt、/opt是隨意掛載的目錄,也可以掛載到其他空目錄下,掛載完成,分別進(jìn)入這連個(gè)目錄看看內(nèi)容有什么,如下圖所示:


通過(guò)這兩個(gè)內(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)問(wèn)題了。/dev/sda2磁盤(pán)分區(qū)已經(jīng)沒(méi)有可用的磁盤(pán)空間了,而這個(gè)分區(qū)剛好是NAS系統(tǒng)的根分區(qū),根分區(qū)沒(méi)有空間了,那么系統(tǒng)啟動(dòng)肯定就出問(wèn)題了。
下面再把思路轉(zhuǎn)到前面介紹的案例中,由于系統(tǒng)cups服務(wù)在啟動(dòng)的時(shí)候會(huì)寫(xiě)啟動(dòng)日志到根分區(qū),而根分區(qū)因?yàn)闆](méi)有空間了,所以也就無(wú)法寫(xiě)日志了,由此導(dǎo)致的結(jié)果就是cups服務(wù)無(wú)法啟動(dòng),這就解釋了此案例中NAS系統(tǒng)每次啟動(dòng)到cups服務(wù)就停止的原因。
四解決問(wèn)題
由于NAS系統(tǒng)只有根分區(qū)和/boot分區(qū),所以系統(tǒng)產(chǎn)生的相關(guān)日志都會(huì)存儲(chǔ)在根分區(qū)中,現(xiàn)在根分區(qū)滿(mǎn)了,首先可以清理的就是/var目錄下的系統(tǒng)相關(guān)日志文件,通常可以清理的目錄有/var/log,執(zhí)行如下命令查看/var/log日志目錄占據(jù)磁盤(pán)空間大?。?/p>
[root@NASserver ~]# du -sh /var/log
50.1G /var/log
通過(guò)命令輸出發(fā)現(xiàn)/var/log目錄占據(jù)了根分區(qū)僅70%的空間,清理這個(gè)目錄下的日志文件即可釋放大部分根分區(qū)空間,清理完畢,重啟NAS系統(tǒng),發(fā)現(xiàn)系統(tǒng)cups服務(wù)能正常啟動(dòng)了,NAS服務(wù)也啟動(dòng)正常了。
以上就是一次因NAS存儲(chǔ)故障引起的Linux系統(tǒng)恢復(fù)案例的全部過(guò)程,在此感謝本文原創(chuàng)出處 “技術(shù)成就夢(mèng)想” 博客,謝絕轉(zhuǎn)載!謝謝閱讀,希望能幫到大家,請(qǐng)繼續(xù)關(guān)注腳本之家,我們會(huì)努力分享更多優(yōu)秀的文章。
相關(guān)文章

集成系統(tǒng)級(jí)Claw模式! Deepin 官宣發(fā)布 25.1 版本
deepin操作系統(tǒng)發(fā)布了最新的 25.1 版本更新,該版本基于 deepin 25 正式版積累的多輪內(nèi)測(cè)成果,在 AI 能力、內(nèi)核版本、桌面環(huán)境、文件管理器以及系統(tǒng)安全等方面進(jìn)行了更新2026-04-13
又一代老硬件退場(chǎng)! Linux 內(nèi)核正式放棄Intel 486 CPU
在過(guò)去的幾十年間,CPU 的架構(gòu)已經(jīng)經(jīng)歷了飛速發(fā)展,x86 系列就是其中之一,而 i486 則屬于該系列中的一個(gè),當(dāng)前,i486 的CPU處理器已經(jīng)夠老,從 Linux 7.1 開(kāi)始將不再有對(duì)2026-04-09
趕緊收藏! 全網(wǎng)最全 Linux 命令總結(jié)
我把 Linux 中最常用、最實(shí)用、最常被問(wèn)到的命令按照實(shí)際使用場(chǎng)景分類(lèi)整理,方便你快速查閱和記憶,內(nèi)容覆蓋日常運(yùn)維、開(kāi)發(fā)調(diào)試、性能分析、文件處理、網(wǎng)絡(luò)、安全、系統(tǒng)管2026-04-08
一分鐘內(nèi)檢查L(zhǎng)inux服務(wù)器性能? 9個(gè)性能檢測(cè)常用的基本命令
今天我們來(lái)看看Linux系統(tǒng)中用于性能監(jiān)控的一系列命令,這些命令可以快速查看機(jī)器的負(fù)載情況,詳細(xì)請(qǐng)看下文介紹2026-03-18
從零基礎(chǔ)到精通! 適合高級(jí)用戶(hù)的15款Linux發(fā)行版推薦
Linux作為操作系統(tǒng)領(lǐng)域靈活性和可定制性的基石,提供了大量滿(mǎn)足不同用戶(hù)需求的發(fā)行版,今天分享適合高級(jí)用戶(hù)的15款Linux發(fā)行版2026-03-10
開(kāi)箱即用? 這4個(gè)高手級(jí)Linux發(fā)行版遠(yuǎn)沒(méi)你想象的那么安全易用
如果你正在糾結(jié)用哪個(gè)發(fā)行版?零基礎(chǔ)新手別被“高端”“極客”“聲明式”這些詞沖昏頭腦,先用好用的,再慢慢進(jìn)階2026-03-10
這幾款SSH工具真的夠用了! Linux好用的ssh工具推薦
在Linux上使用SSH,您需要安裝一個(gè)SSH客戶(hù)端,今天整理找到的8 款 SSH / 終端工具,從免費(fèi)開(kāi)源到企業(yè)級(jí)商用,從輕量化命令行到一站式工具箱,每款都做了介紹與對(duì)比,希望能2026-03-09
在Linux系統(tǒng)下有兩種用戶(hù),即高級(jí)用戶(hù)root,普通用戶(hù),高級(jí)用戶(hù)root可以在系統(tǒng)中做任何事情,普通用戶(hù)僅可在Linux系統(tǒng)中做有限的事情,下面我們就來(lái)看看切換方法2026-02-28
揭秘當(dāng)前登錄用戶(hù)的身份! Linux中使用logname命令的技巧
logname命令就是這樣一個(gè)簡(jiǎn)單但強(qiáng)大的工具,它能幫助我們輕松獲取當(dāng)前登錄用戶(hù)的用戶(hù)名,今天,我們就來(lái)深入探索一下這個(gè)命令的工作原理、使用方法和最佳實(shí)踐2026-02-26
在 Linux 系統(tǒng)中,DNS 緩存是一種將域名和 IP 地址映射關(guān)系緩存在本地的機(jī)制,可以加快域名解析速度,并減輕 DNS 服務(wù)器的負(fù)載2026-02-26



