搜尋
首頁運維linux運維如何進行排查與修復Linux系統故障的技巧

[導讀] 我發現Linux系統在啟動過程中會出現一些故障,導致系統無法正常啟動,我在這裡寫了幾個應用單一用戶模式、GRUB命令操作、Linux救援模式的故障修復案例幫助大家了解此類問題的解決。 (一)單一使用者模式Linux系統提供了

我發現Linux系統在啟動過程中會出現一些故障,導致系統無法正常啟動,我在這裡寫了幾個應用單一使用者模式、GRUB指令操作、Linux救援模式的故障修復案例幫助大家了解這類問題的解決。

(一)單一使用者模式

Linux系統提供了單一使用者模式(類似Windows安全模式),可以在最小環境中進行系統維​​護。在單一使用者模式(運行等級1)中,Linux引導進入根shell,網路被停用,只有少數進程運行。單一用戶模式可以用來修改檔案系統損壞、還原設定檔、行動用戶資料等。

以下列舉了幾個單一使用者模式修復系統故障的典型案例:

案例一:root密碼忘記

在單一使用者模式中,Linux不需要root密碼(Red Hat系統不需要root密碼,但SuSe則需要,不同Linux系統稍有差別,本文以Fedora Core 6為例講解),這使更改root密碼非常容易。了解當系統引導進入多用戶模式失敗時,如何進入單一用戶模式,非常重要。

1、 在系統啟動過程中,會出現開始介面,按任意鍵,進入GRUB選單選項。

若希望以後無此提示,直接進入GRUB選單選項,刪除設定檔grub.conf中「hiddenmenu」項目即可。

2、 按「e」鍵編輯GRUB引導選單選項,按下「e」鍵後的GRUB畫面。透過箭頭鍵下移到kernel行,並按下「e」鍵,

3、在尾行遊標處新增single,按回車鍵返回前一個螢幕,按「b」鍵引導,則係統自動進入單一使用者模式,如果要改變root密碼,執行指令:sh-3.1# passwd root

#更改成功後,執行指令exit退出重啟即可。

大家可以在單一使用者模式中去修正阻止系統正常啟動的許多問題,例如:

#1、 停用可能中止系統運作的服務如停用Samba服務,則執行:sh- 3.1# chkconfig smb off下次系統開機就不會啟動Samba服務了。

2、更改系統缺省運行級如果X Window無法啟動或發生故障,可以編輯/etc/inittab文件,採用文字方式登錄,更改initdefault引導等級為3:id:3:initdefault:

案例二:硬碟磁區錯亂

在啟動過程中最容易遇到的問題就是硬碟可能有壞道或磁區錯亂(資料損壞)的情況,這種情況多由於異常斷電、不正常關機導致。此種問題發生,在系統啟動的時候,畫面會顯示:

Press root password or ctrl+D:此時輸入root密碼系統自動進入單一使用者模式,輸入「fsck -y /dev/hda6 ”(fsck為檔案系統檢測修復命令,“-y”設定檢測到錯誤自動修復,/dev/hda6為發生錯誤的硬碟分區,請依據具體情況更改此參數),系統修復完成後,用命令“ reboot」重新啟動即可。

案例三、GRUB選項設定錯誤

「Error 15」顯示系統無法找到grub.conf中指定的核心。 GRUB引導錯誤訊息,我們觀察發現因為打字錯誤,內核檔案的“vmlinuz”打成了“vmlinux”,所以系統無法找到核心的可執行檔。我們可以按任意鍵回到GRUB編輯介面,修改此錯誤,回車儲存後按下「b」鍵即可正常引導,當然不要忘記進入系統後修改grub.conf檔案中此處錯誤。這是許多初學Linux的用戶在修改GRUB設定時很容易犯的錯誤,出現此黑屏提示時注意觀察報錯訊息,即可針對性修復。

(二)GRUB引導故障排除

#我發現有時Linux啟動後會直接進入GRUB命令列介面(只有“grub>”提示符號),此時很多使用者就選擇了重新安裝GRUB甚至重新安裝系統。其實一般而言此故障的原因最常見的有兩個:一是GRUB設定檔中選項設定錯誤;二是GRUB設定檔遺失(還有少數原因,如核心檔或鏡像檔損壞、遺失,/boot目錄誤刪除等),如果是第一種情況,可以先透過GRUB指令引導系統後修復;若是第二種情況,則要使用Linux救援模式修復了(本文後續有描述)。

首先,我們需要了解GRUB啟動系統的引導過程,grub.conf檔案中主要的設定選項如下(注意,GRUB設定檔為/boot/grub/grub.conf,/etc/grub.conf只是此文件的軟連結):

title Fedora Core (2.6.18-1.2798.fc6)root (hd0,0)kernel /boot/vmlinuz-2.6.18-1.2798.fc6 ro root=LABEL=/ rhgb quiet initrd /boot/initrd-2.6.18-1.2798.fc6.img

其中“title”段指定了GRUB引導的系統:“root”段指定了/boot分區所在的位置:“kernel”段指定了內核文件所在位置,內核加載時權限屬性為唯讀(“ ro”)以及指定根分割區所在位置(root=LABEL=/);initrd指定了鏡像檔案所在位置。所以GRUB在引導時順序為先載入/boot分割區,然後依序載入核心與鏡像檔。

。案例:「title Fedora Core (2.6.18-1.2798.fc6)」區段被誤刪除

此時,系統啟動後會自動進入「GRUB> 」命令列,為排除故障我們可以依序做如下操作:

1、查找/boot/grub/grub.conf檔所在分區GRUB> find /boot/grub/grub.conf(hd0,0)

2、查看grub.conf檔案錯誤GRUB>cat (hd0,0)/boot/grub/grub.conf建議系統安裝設定好後,要將grub.conf檔案備份,如果有備份檔案如grub.conf.bak,則此時可以查看備份文件,與目前文件比較,發現錯誤:GRUB>cat (hd0,0)/boot/grub/grub.conf.bak

3、確認錯誤後,先透過命令列方式完成GRUB引導,進入系統後再行修復grub.conf檔案錯誤:1)指定/boot分割區root (hd0,0)

2)指定核心載入kernel /boot/ vmlinuz-2.6.18-1.2798.fc6 ro root=LABEL=/ rhgb quiet 3)指定鏡像文件所在位置initrd /boot/initrd-2.6.18-1.2798.fc6.img

提示:GRUB支持tab鍵命令補全功能

4、從/boot分區啟動boot (hd0,0)

命令列模式可以在GRUB選單模式中透過按「c」鍵調用,也可以用於測試新編譯的核心(設定kernel、initrd引導新核心及鏡像檔)。增加對GRUB引導以及Linux系統引導知識的了解將對此類故障排除大有幫助。

(三)Linux救援模式應用程式

#當系統連單一使用者模式都無法進入時或出現GRUB命令列也無法解決的開機問題,我們就需要使用Linux救援模式來進行故障排除了。步驟如下:

1、將Linux安裝光碟(若使用CD光碟,則放入第一張引導光碟)放入光碟機,設定韌體CMOS/BIOS為光碟引導,當Linux安裝畫面出現後,在「boot:」提示符號後輸入「linux rescue」回車進入救援模式。 (想了解救援模式詳細信息,還可以按F5鍵查看)

2、系統會檢測硬件,引導光盤上的Linux環境,依次提示你選擇救援模式下使用的語言(建議選擇默認的英文即可,根據筆者測試,部分Linux系統選擇中文會出現亂碼);鍵盤設定用預設的「us」就好;網路設定可以根據需要,大部分故障修復不需要網路連接,可不進行此項設置,選擇“No”。

3、接下來系統將試圖尋找根分割區,出現掛載提示,設定預設在救援模式,硬碟的根分割區將掛載到光碟Linux環境的/mnt/sysimage目錄下,預設選項“ continue」表示掛載權限為讀寫:「Read-only」為唯讀,如果出現偵測失敗可以選擇「skip」跳過。此處,因為要對系統進行修復,所以需要有讀寫權限,一般選擇預設選項「continue」。

進入下一步後,系統提示執行「chroot /mnt/sysimage」指令,可以將根目錄掛載到我們硬碟系統的根目錄中。

案例一:雙系統啟動修復

當我們安裝雙系統環境,先安裝Linux再安裝Windows;或是已經安裝雙系統環境的Windows損壞,重新安裝Windows後,儲存GRUB的MBR(Master Boot Record,主開機記錄)會被Windows系統的自舉程式NTLDR所覆蓋,造成Linux系統無法引導。

1、如果要恢復雙系統引導,先用上述方法進入救援模式,執行chroot指令如下:

sh-3.1# chroot /mnt/sysimage

2、將根目錄切換到硬碟系統的根目錄中,然後執行grub-install指令重新安裝GRUB:

sh-3.1# grub-install /dev/hda

「/dev/hda」為硬碟名稱,如使用SCSI硬碟或Linux安裝在第二區塊IDE硬碟,此項目設定要做對應調整。

3、然後依序執行exit指令,退出chroot模式及救援模式(執行兩次exit指令):

sh-3.1# exit

系統重新啟動後,將恢復GRUB引導的雙系統啟動。

案例二:系統設定檔遺失修復

系統在開機期間,很重要的過程就是init程式讀取其設定檔/etc/inittab,啟動系統基本服務程序及預設運作等級的服務程序完成系統引導,若/etc/inittab誤刪除或修改錯誤,Linux將無法正常啟動,如圖7所示。此時,只有透過救援模式才可以解決此類問題。

/etc/inittab檔案遺失引導錯誤範例

1、有备份文件的恢复办法进入救援模式,执行chroot命令后,如果有此文件的备份(强烈建议系统中的重要数据目录,如/etc、/boot等要进行备份),直接将备份文件拷贝回去,退出重启即可。如果是配置文件修改错误,如比较典型的/boot/grub/grub.conf及/etc/passwd的文件修改错误,也可以直接修正恢复。假设有备份文件/etc/inittab.bak,则在救援模式下执行:

sh-3.1# chroot /mnt/sysimagesh-3.1# cp /etc/inittab.bak /etc/inittab

2、没有备份文件的恢复办法如果一些配置文件丢失或软件误删除,且无备份,可以通过重新安装软件包来恢复,首先查找到/etc/inittab属于哪一个RPM包(即便文件丢失,因为存在RPM数据库,一样可以查找到结果):sh-3.1# chroot /mnt/sysimage sh-3.1# rpm -qf /etc/inittab initscripts-8.45.3-1

退出chroot模式:

sh-3.1# exit

挂载存放RPM包的安装光盘(在救援模式下,光盘通常挂载在/mnt/source目录下):

sh-3.1# mount /dev/hdc /mnt/source

Fedora系统的RPM包存放在光盘Fedora/RPMS目录下,其他Linux存放位置大同小异,我在这里不一一列举;另外,因为要修复的硬盘系统的根目录在/mnt/sysimage下,需要使用——root选项指定其位置。覆盖安装/etc/inittab文件所在的RPM包:

sh-3.1# rpm -ivh ——replacepkgs ——root /mnt/sysimage /mnt/source/Fedora/RPMS/ initscripts-8.45.3-1.i386.rpm

其中的rpm命令选项“——replacepkgs”表示覆盖安装,执行完成后,即已经恢复了此文件。

如果想只提取RPM包中的/etc/inittab文件进行恢复,可以在进入救援模式后,执行命令:

sh-3.1# rpm2cpio /mnt/source/Fedora/RPMS/initscripts-8.45.3-1.i386.rpm | cpio -idv ./etc/inittabsh-3.1# cp etc/inittab /mnt/sysimage/etc

注意此命令执行时不能将文件直接恢复至/etc目录,只能提取到当前目录下,且恢复的文件名称所在路径要写完整的绝对路径。提取文件成功后,将其复制到根分区所在的/mnt/sysimage目录下相应位置即可。

救援模式是维护Linux的有力武器,本文以上述两个例子讲解了它的应用方法,希望能够给读者一点启示。解决Linux系统启动的故障,必须充分理解Linux的引导过程,才能够对故障进行有效的判断和处理。

以上是如何進行排查與修復Linux系統故障的技巧的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
Linux操作:系統管理和維護Linux操作:系統管理和維護Apr 15, 2025 am 12:10 AM

Linux系統管理和維護的關鍵步驟包括:1)掌握基礎知識,如文件系統結構和用戶管理;2)進行系統監控與資源管理,使用top、htop等工具;3)利用系統日誌進行故障排查,借助journalctl等工具;4)編寫自動化腳本和任務調度,使用cron工具;5)實施安全管理與防護,通過iptables配置防火牆;6)進行性能優化與最佳實踐,調整內核參數和養成良好習慣。

了解Linux的維護模式:必需品了解Linux的維護模式:必需品Apr 14, 2025 am 12:04 AM

Linux維護模式通過在啟動時添加init=/bin/bash或single參數進入。 1.進入維護模式:編輯GRUB菜單,添加啟動參數。 2.重新掛載文件系統為讀寫模式:mount-oremount,rw/。 3.修復文件系統:使用fsck命令,如fsck/dev/sda1。4.備份數據並謹慎操作,避免數據丟失。

Debian如何提升Hadoop數據處理速度Debian如何提升Hadoop數據處理速度Apr 13, 2025 am 11:54 AM

本文探討如何在Debian系統上提升Hadoop數據處理效率。優化策略涵蓋硬件升級、操作系統參數調整、Hadoop配置修改以及高效算法和工具的運用。一、硬件資源強化確保所有節點硬件配置一致,尤其關注CPU、內存和網絡設備性能。選擇高性能硬件組件對於提升整體處理速度至關重要。二、操作系統調優文件描述符和網絡連接數:修改/etc/security/limits.conf文件,增加系統允許同時打開的文件描述符和網絡連接數上限。 JVM參數調整:在hadoop-env.sh文件中調整

Debian syslog如何學習Debian syslog如何學習Apr 13, 2025 am 11:51 AM

本指南將指導您學習如何在Debian系統中使用Syslog。 Syslog是Linux系統中用於記錄系統和應用程序日誌消息的關鍵服務,它幫助管理員監控和分析系統活動,從而快速識別並解決問題。一、Syslog基礎知識Syslog的核心功能包括:集中收集和管理日誌消息;支持多種日誌輸出格式和目標位置(例如文件或網絡);提供實時日誌查看和過濾功能。二、安裝和配置Syslog(使用Rsyslog)Debian系統默認使用Rsyslog。您可以通過以下命令安裝:sudoaptupdatesud

Debian中Hadoop版本怎麼選Debian中Hadoop版本怎麼選Apr 13, 2025 am 11:48 AM

選擇適合Debian系統的Hadoop版本,需要綜合考慮以下幾個關鍵因素:一、穩定性與長期支持:對於追求穩定性和安全性的用戶,建議選擇Debian穩定版,例如Debian11(Bullseye)。該版本經過充分測試,擁有長達五年的支持週期,能夠確保系統穩定運行。二、軟件包更新速度:如果您需要使用最新的Hadoop功能和特性,則可以考慮Debian的不穩定版(Sid)。但需注意,不穩定版可能存在兼容性問題和穩定性風險。三、社區支持與資源:Debian擁有龐大的社區支持,可以提供豐富的文檔和

Debian上TigerVNC共享文件方法Debian上TigerVNC共享文件方法Apr 13, 2025 am 11:45 AM

本文介紹如何在Debian系統上使用TigerVNC共享文件。你需要先安裝TigerVNC服務器,然後進行配置。一、安裝TigerVNC服務器打開終端。更新軟件包列表:sudoaptupdate安裝TigerVNC服務器:sudoaptinstalltigervnc-standalone-servertigervnc-common二、配置TigerVNC服務器設置VNC服務器密碼:vncpasswd啟動VNC服務器:vncserver:1-localhostno

Debian郵件服務器防火牆配置技巧Debian郵件服務器防火牆配置技巧Apr 13, 2025 am 11:42 AM

配置Debian郵件服務器的防火牆是確保服務器安全性的重要步驟。以下是幾種常用的防火牆配置方法,包括iptables和firewalld的使用。使用iptables配置防火牆安裝iptables(如果尚未安裝):sudoapt-getupdatesudoapt-getinstalliptables查看當前iptables規則:sudoiptables-L配置

Debian郵件服務器SSL證書安裝方法Debian郵件服務器SSL證書安裝方法Apr 13, 2025 am 11:39 AM

在Debian郵件服務器上安裝SSL證書的步驟如下:1.安裝OpenSSL工具包首先,確保你的系統上已經安裝了OpenSSL工具包。如果沒有安裝,可以使用以下命令進行安裝:sudoapt-getupdatesudoapt-getinstallopenssl2.生成私鑰和證書請求接下來,使用OpenSSL生成一個2048位的RSA私鑰和一個證書請求(CSR):openss

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
4 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
4 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
4 週前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
1 個月前By尊渡假赌尊渡假赌尊渡假赌

熱工具

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。

Dreamweaver Mac版

Dreamweaver Mac版

視覺化網頁開發工具

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。