Linux系統(tǒng)啟動(dòng)慢或無(wú)法啟動(dòng)的排查方法
1. 硬件檢查
- 確認(rèn)硬件狀態(tài):
檢查硬盤(pán)、內(nèi)存、CPU等是否正常,特別是硬盤(pán)是否存在壞道(使用
smartctl
檢測(cè))。
smartctl -a /dev/sdX
- 拔插外部設(shè)備:
移除多余的外接設(shè)備(如USB設(shè)備)以排除外部硬件的影響。
- 檢查硬盤(pán)接口:
確認(rèn)BIOS/UEFI設(shè)置中硬盤(pán)的接口模式(如AHCI)。
2. GRUB階段
- 檢查GRUB配置文件:
在啟動(dòng)菜單中按
e
編輯啟動(dòng)項(xiàng),確認(rèn)引導(dǎo)參數(shù)是否正確(如根分區(qū)、內(nèi)核版本等)。 - 引導(dǎo)日志查看:
啟動(dòng)時(shí)在GRUB中添加
debug
或rescue
模式,排查引導(dǎo)是否卡在某個(gè)環(huán)節(jié)。
3. 單用戶模式啟動(dòng)
- 進(jìn)入單用戶模式:
在GRUB中編輯啟動(dòng)項(xiàng),添加
single
或init=/bin/bash
。 - 文件系統(tǒng)檢查:
使用
fsck
修復(fù)可能損壞的文件系統(tǒng)。
fsck /dev/sdXn
- 檢查磁盤(pán)掛載問(wèn)題:
如果
/etc/fstab
中配置錯(cuò)誤,可能導(dǎo)致啟動(dòng)掛起??梢耘R時(shí)注釋可疑掛載項(xiàng)。
4. 系統(tǒng)服務(wù)排查
- 查看啟動(dòng)日志:
使用
journalctl
查看系統(tǒng)日志,定位啟動(dòng)慢或失敗的具體服務(wù)。
journalctl -b
- 分析啟動(dòng)耗時(shí):
使用
systemd-analyze
查看啟動(dòng)總耗時(shí)。
systemd-analyze
使用
systemd-analyze blame
找出耗時(shí)最長(zhǎng)的服務(wù)。
systemd-analyze blame
- 禁用無(wú)用服務(wù):
對(duì)耗時(shí)過(guò)長(zhǎng)或無(wú)關(guān)的服務(wù)進(jìn)行禁用。
systemctl disable 服務(wù)名
5. 核心組件檢查
- 內(nèi)核模塊加載問(wèn)題:
檢查內(nèi)核模塊是否加載失敗或沖突(
dmesg
查看內(nèi)核日志)。 - 驅(qū)動(dòng)兼容性問(wèn)題:
更新或回滾內(nèi)核,使用穩(wěn)定版本。
- 啟動(dòng)參數(shù)優(yōu)化:
在GRUB配置中優(yōu)化內(nèi)核啟動(dòng)參數(shù),例如
quiet
、nomodeset
、nosplash
等。
6. 網(wǎng)絡(luò)配置
- DNS或網(wǎng)絡(luò)掛起:
網(wǎng)絡(luò)服務(wù)配置錯(cuò)誤可能導(dǎo)致啟動(dòng)卡住,檢查
/etc/resolv.conf
和網(wǎng)絡(luò)服務(wù)狀態(tài)。 - 禁用網(wǎng)絡(luò)服務(wù)測(cè)試:
臨時(shí)禁用網(wǎng)絡(luò)相關(guān)服務(wù),排查是否因網(wǎng)絡(luò)導(dǎo)致啟動(dòng)慢。
systemctldisable NetworkManager
7. 文件系統(tǒng)和磁盤(pán)IO
- 磁盤(pán)性能問(wèn)題:使用
iotop
或iostat
檢查磁盤(pán)IO負(fù)載。- 安裝工具:
yum install sysstat -y
運(yùn)行:
iostat -x
- 過(guò)多文件碎片:
定期清理臨時(shí)文件目錄
/tmp
和/var/tmp
。
8. 排查啟動(dòng)腳本
- 查看啟動(dòng)過(guò)程輸出:
移除啟動(dòng)參數(shù)中的
quiet
,讓內(nèi)核打印詳細(xì)啟動(dòng)日志。 - 逐步啟用服務(wù):
使用
systemctl
單獨(dú)啟動(dòng)服務(wù),排查哪個(gè)服務(wù)導(dǎo)致問(wèn)題。
9. 日志分析
- 日志文件位置:
內(nèi)核日志:
/var/log/dmesg
系統(tǒng)日志:
/var/log/messages
或/var/log/syslog
系統(tǒng)啟動(dòng)日志:
journalctl -b
- 關(guān)鍵錯(cuò)誤排查:
搜索錯(cuò)誤或超時(shí)關(guān)鍵字(如
error
、failed
、timeout
)。
grep -i"error" /var/log/messages
10. 系統(tǒng)恢復(fù)措施
- 備份重要數(shù)據(jù):
使用LiveCD或救援模式掛載磁盤(pán)并備份數(shù)據(jù)。
- 重裝引導(dǎo)程序:
如果GRUB損壞,可以使用以下命令重新安裝:
grub2-install /dev/sdX grub2-mkconfig -o /boot/grub2/grub.cfg
- 重建initramfs:
如果initramfs損壞,可以重新生成:
dracut -f
11. 優(yōu)化建議
- 精簡(jiǎn)啟動(dòng)服務(wù):
關(guān)閉無(wú)用服務(wù),優(yōu)化開(kāi)機(jī)速度。
- 定期清理系統(tǒng):
清理舊日志和緩存文件,釋放磁盤(pán)空間。
- 升級(jí)或回滾系統(tǒng)組件:
使用穩(wěn)定版本的內(nèi)核、驅(qū)動(dòng)和關(guān)鍵服務(wù)。
以上就是Linux系統(tǒng)啟動(dòng)慢或無(wú)法啟動(dòng)的排查方法的詳細(xì)內(nèi)容,更多關(guān)于Linux啟動(dòng)慢或無(wú)法啟動(dòng)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
新手入門(mén)級(jí)linux系統(tǒng)常用命令大全
本文為大家分享了Linux常用命令,這些命令幾乎每天都要用到,記錄下來(lái)方便以后查詢使用2018-10-10Ubuntu16.04配置lamp環(huán)境的具體方法
下面小編就為大家?guī)?lái)一篇Ubuntu16.04配置lamp環(huán)境的具體方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-05-05比較詳細(xì)的基于CentOS的WWW服務(wù)器架設(shè)指南
本文參考了網(wǎng)上高手的教程和結(jié)合自己的實(shí)踐經(jīng)驗(yàn)而來(lái)。網(wǎng)上關(guān)于LAMP安裝配置的教程雖然很多,但長(zhǎng)篇大論的讓你抓不到重點(diǎn),短小精悍的對(duì)新手來(lái)說(shuō)又難了點(diǎn),所以初次配置時(shí)最容易在某個(gè)環(huán)節(jié)卡住,從而打擊了學(xué)習(xí)的激情或者耽誤了寶貴的時(shí)間。于是就整理出這個(gè)學(xué)習(xí)筆記。如果文中有錯(cuò)誤的地方,懇請(qǐng)大家指正,不要誤導(dǎo)了初學(xué)者。2008-06-06Centos 7之Firewalld相關(guān)命令詳細(xì)介紹
這篇文章主要介紹了Centos 7之Firewalld相關(guān)命令詳細(xì)介紹的相關(guān)資料,需要的朋友可以參考下2017-02-02centos下yum搭建安裝linux+apache+mysql+php環(huán)境教程
本篇文章介紹了centos下yum搭建安裝linux+apache+mysql+php環(huán)境,對(duì)學(xué)習(xí)centos有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2016-10-10在CentOS7上搭建Jenkins+Maven+Git持續(xù)集成環(huán)境的方法
這篇文章主要介紹了在CentOS7上搭建Jenkins+Maven+Git持續(xù)集成環(huán)境的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-01-01