Ubuntu系統崩潰的應對步驟
嘗試切換虛擬終端(TTY)
若系統凍結但未完全黑屏,按Ctrl + Alt + F2
(或F3-F6)切換到文本終端,輸入用戶名和密碼登錄。登錄后可使用top
命令查看資源占用情況,按q
退出;若發現高負載進程(如占用超過80% CPU或內存的進程),用kill -9 <PID>
終止該進程(<PID>
為進程ID),之后按Ctrl + Alt + F1
或Ctrl + Alt + F7
返回圖形界面。
使用REISUB魔法鍵安全重啟
若虛擬終端無法訪問(如黑屏、鼠標鍵盤失靈),可嘗試“魔法SysRq鍵”組合:按住Alt + PrintScreen
(或SysRq
),依次按下R
(切換鍵盤原始模式)、E
(終止所有進程)、I
(強制殺死所有進程)、S
(同步磁盤數據)、U
(將文件系統設為只讀)、B
(立即重啟)。此方法可避免強制關機導致的數據損壞,但未保存的工作會丟失。
進入恢復模式
開機時長按Shift
鍵(部分電腦需按Esc
鍵),進入GRUB引導菜單,選擇“Advanced options for Ubuntu”,然后選擇帶有“(recovery mode)”的內核版本(如“Ubuntu, with Linux 6.5.0-44-generic (recovery mode)”)。
選擇修復選項
進入恢復模式后,會顯示多個修復選項,優先選擇:
fsck /dev/sda1
、apt install -f
)。查看系統日志
系統日志是定位崩潰原因的關鍵,常用工具及命令:
journalctl
:查看systemd日志,journalctl -b -1
顯示上次啟動的日志,journalctl -p err -b -1
篩選錯誤級別消息;dmesg
:查看內核環緩沖區日志,dmesg | tail -n 100
顯示最近100條內核消息(有助于識別硬件或驅動問題);/var/log/syslog
:常規系統日志,tail -n 100 /var/log/syslog
查看最新100條記錄;/var/log/kern.log
:內核專用日志,grep -i "error" /var/log/kern.log
篩選內核錯誤信息。常見崩潰原因
free -h
查看內存,df -h
查看磁盤空間);lspci -k
查看驅動,ubuntu-drivers autoinstall
更新驅動);sudo apt install -f
修復依賴);smartctl -a /dev/sda
檢查硬盤健康,memtest86+
測試內存)。修復文件系統
在恢復模式的root shell或Live USB環境中,執行sudo fsck -y /dev/sdaX
(/dev/sdaX
為目標分區,如/dev/sda1
),-y
參數自動修復錯誤。
修復軟件包
執行sudo apt update
更新軟件源,sudo apt install -f
修復依賴關系,sudo dpkg --configure -a
配置未完成的軟件包安裝。
更新內核與驅動
執行sudo apt install linux-generic-hwe-22.04
(替換為當前Ubuntu版本,如24.04對應hwe-24.04
)升級內核;用ubuntu-drivers autoinstall
自動安裝推薦的顯卡驅動。
若上述方法無法解決,可啟用kdump捕獲內核崩潰轉儲(dump文件),用crash
工具分析根源:
sudo apt install kexec-tools crash
;/etc/default/kdump-tools
,設置USE_KDUMP=1
;echo 'c' > /proc/sysrq-trigger
(需root權限),系統重啟后,dump文件會保存在/var/crash/
目錄;crash /usr/lib/debug/boot/vmlinux-$(uname -r) /var/crash/<dump文件名>
。