Linux系統崩潰破案實錄

現代計算環境中,系統的穩定性和可靠性至關重要。然而,即使是最優化的系統也可能會由于硬件故障、軟件漏洞或配置錯誤而崩潰。為了解決這一問題,Linux系統提供了強大的內核崩潰轉儲機制,本文介紹如何收集和分析崩潰日志,定位系統崩潰的根本原因,從而采取適當的措施來防止此類問題的再次發生。

01安裝及配置Kdump

1.1安裝Kdump工具

如CentOS?RedHat或者redhat中

配置命令:

sudo yum install kexec-tools

1.2配置內核參數

編輯GRUB配置文件,添加crashkernel參數以預留內存。例如,在/etc/default/grub文件中,對于主機內存較大的情況下可以適當增加:

配置命令:

GRUB_CMDLINE_LINUX="crashkernel=256M"

重新生成GRUB文件

配置命令:

sudo grub2-mkconfig -o ? /boot/grub2/grub.cfg

1.3設置Kdump日志存儲路徑

編輯KDUMP配置文件/etc/kdump.conf,添加如下參數,指定內存轉儲文件的保存位置:

配置命令:

path /var/crash

啟動并啟用KDUMP服務

配置命令:

sudo systemctl start kdump&sudo systemctl enable kdump

1.4驗證KDUMP配置

驗證KDUMP是否正確配置,手動觸發系統崩潰

配置命令:

echo c > ? /proc/sysrq-trigger

系統將會崩潰并重啟,KDUMP服務會生成內存轉儲文件

02Dump轉儲日志分析

2.1設置日志路徑

查看/etc/kdump.conf 的path參數確認日志存放目錄,收集故障時間的日志文件

如:

圖片

2.2安裝內核文件vmlinux

新建或編輯/etc/yum.repos.d/CentOS-Debuginfo.repo 加入如下內容:

配置命令:

[base-debuginfo]

name=CentOS-$releasever ? - Debuginfo

baseurl=http://debuginfo.centos.org/$releasever/$basearch/

gpgcheck=1 ?

enabled=1

查看內核版本:

配置命令:

uname -r

清理 Yum 緩存以確保使用最新的倉庫信息,然后安裝相同內核版本的vmlinux:

配置命令:

sudo ? yum clean all

sudo ? yum? --enablerepo=base-debuginfo

install ? kernel-debuginfo-3.10.0-1160.el7.x86_64 -y

2.3使用crash工具打開vmcore

指定當前版本vmlinux讀取vmcore:

配置命令:

sudo crash ? /usr/lib/debug/lib/modules/$(uname -r)/vmlinux vmcore

2.4crash常用命令

log:使用命令查看系統發生BUG的詳細信息,包括無法處理的空指針引用錯誤。

圖片

bt:使用命令查看堆棧信息,顯示了進程ID(PID)、任務結構地址(TASK)、CPU編號及進程名稱(COMMAND)。

圖片

ps:使用命令顯示系統中所有進程的信息,包括進程 ID、狀態、優先級等。

圖片

files:使用命令列出進程打開的文件描述符

圖片

vm: 顯示虛擬內存信息

圖片

mount: 顯示掛載的信息

圖片

help: 顯示可用命令的列表

圖片

03案例分析

3.1模塊加載導致系統異常

堆棧信息查看:

crash視圖下執行bt查看堆棧信息:

圖片

PID: 17114? TASK: ffff8cab78456300? CPU: 5?? COMMAND: "insmod"

表明系統在嘗試加載模塊(insmod命令)時遇到了一個致命錯誤,導致了系統崩潰。

crash_module: loading out-of-tree module taints kernel

crash_module: module verification failed: signature and/or required key missing - tainting kernel

這段表明該模塊是非官網模塊,沒有經過適當的簽名驗證。?

[exception RIP: init_module+8]

表明故障寄存器位置在init_module函數的第8個字節處,需要查看代碼對應函數位置是否存在問題。

3.2陣列卡問題導致系統異常

日志信息查看:

crash視圖下執行log查看日志信息:

圖片

BUG: unable to handle kernel NULL pointer dereference at 00000000

IP: [] some_faulty_function+0x23/0x50

內核檢測到一個空指針引用,?表示在 some_faulty_function 函數中的偏移量為?0x23 處發生錯誤。

Modules linked in: raid_module scsi_mod libata

CPU: 0 PID: 1234 Comm: some_process Not tainted 5.4.0-42-generic #46-Ubuntu Hardware name: Manufacturer Model/Type

當前加載的模塊:raid_module scsi_mod libata,硬件的基本信息:Manufacturer Model/Type

從模塊和硬件信息查看可以確認是raid卡引起的問題,可以使用硬件診斷工具檢查RAID控制器、硬盤等設備的狀態。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/73056.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/73056.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/73056.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

tcping 命令的使用,ping IP 和端口

1. ?Windows系統安裝? ?下載tcping工具?:根據系統位數(32位或64位)下載對應的tcping.exe文件。?安裝步驟?: 將下載的tcping.exe文件復制到C:\Windows\System32目錄下。如果下載的是64位版本,需將文件名改為tcpi…

深度學習框架PyTorch——從入門到精通(6.1)自動微分

使用torch.autograd自動微分 張量、函數和計算圖計算梯度禁用梯度追蹤關于計算圖的更多信息張量梯度和雅可比乘積 在訓練神經網絡時,最常用的算法是反向傳播。在該算法中,參數(模型權重)根據損失函數的梯度相對于給定參數進行調整…

跟我學C++中級篇——std::not_fn

一、std::not_fn定義和說明 std::not_fn這個模板函數非常有意思&#xff0c;在前面我們學習過wrapper&#xff08;包裝器&#xff09;&#xff0c;其實它就是通過封裝一個包裝器來實現返回值的非。它的基本定義如下&#xff1a; template< class F > /* 未指定 */ not_…

階躍星辰開源300億參數視頻模型Step-Video-TI2V:運動可控+102幀長視頻生成

階躍星辰&#xff08;StepFun&#xff09;正式開源其新一代圖生視頻模型 Step-Video-TI2V &#xff0c;該模型基于300億參數的Step-Video-T2V訓練&#xff0c;支持文本與圖像聯合驅動生成長達102幀的高質量視頻&#xff0c;在運動控制與場景適配性上實現突破。 核心亮點 …

java查詢es超過10000條數據

java查詢es超過10000條數據 背景:需要每天零點導出es中日志數據到數據庫中給數據分析人員做清洗&#xff0c;然后展示給業務人員。但在es中默認一次最多只能查詢10000條數據。 在這里我就只貼一下關鍵代碼 SearchRequest searchRequest new SearchRequest("索引名"…

使用 libevent 構建高性能網絡應用

使用 libevent 構建高性能網絡應用 在現代網絡編程中&#xff0c;高性能和可擴展性是開發者追求的核心目標。為了實現這一目標&#xff0c;許多開發者選擇使用事件驅動庫來管理 I/O 操作和事件處理。libevent 是一個輕量級、高性能的事件通知庫&#xff0c;廣泛應用于網絡服務…

HeyGem.ai 全離線數字人生成引擎加入 GitCode:開啟本地化 AIGC 創作新時代

在人工智能技術飛速演進的時代&#xff0c;數據隱私與創作自由正成為全球開發者關注的焦點。硅基智能旗下開源項目 HeyGem.ai 近日正式加入 GitCode&#xff0c;以全球首個全離線數字人生成引擎的顛覆性技術&#xff0c;重新定義人工智能生成內容&#xff08;AIGC&#xff09;的…

【leetcode hot 100 39】組合總和

錯誤解法一&#xff1a;每一次回溯都遍歷提供的數組 class Solution {public List<List<Integer>> combinationSum(int[] candidates, int target) {List<List<Integer>> result new ArrayList<List<Integer>>();List<Integer> te…

VSCODE右下角切換環境沒用

VSCODE惦記右下角python版本&#xff0c;切換別的虛擬環境時&#xff0c;始終切換不了&#xff0c;同時右下角彈出&#xff1a; Client Pylance: connection to server is erroring. 取消繼承環境也改了。https://www.cnblogs.com/coreylin/p/17509610.html 還是不行&#xf…

【sql靶場】第23、25,25a關過濾繞過保姆級教程

目錄 【sql靶場】第23、25-28關過濾繞過保姆級教程 第二十三關 第二十五關 1.爆出數據庫 2.爆出表名 3.爆出字段 4.爆出賬號密碼 【sql靶場】第23、25&#xff0c;25a關過濾繞過保姆級教程 第二十三關 從本關開始又是get傳參&#xff0c;并且還有了對某些字符或字段的過…

python每日十題(5)

保留字&#xff0c;也稱關鍵字&#xff0c;是指被編程語言內部定義并保留使用的標識符。Python 3.x版本中有35個保留字&#xff0c;分別為&#xff1a;and, as,assert,async,await,break,class,continue,def,del,elif,else, except, False, finally,for,from,global, if,import…

Pytorch使用手冊—自定義 C++ 和 CUDA 擴展(專題五十二)

提示 從 PyTorch 2.4 開始,本教程已被廢棄。請參考 PyTorch 自定義操作符,了解關于通過自定義 C++/CUDA 擴展擴展 PyTorch 的最新指南。 PyTorch 提供了大量與神經網絡、任意張量代數、數據處理等相關的操作。然而,您可能仍然會發現自己需要一個更自定義的操作。例如,您可能…

CHM(ConcurrentHashMap)中的 sizeCtl 的作用與值變化詳解

學海無涯&#xff0c;志當存遠。燃心礪志&#xff0c;奮進不輟。愿諸君得此雞湯&#xff0c;如沐春風&#xff0c;學業有成。若覺此言甚善&#xff0c;煩請賜贊一枚&#xff0c;共勵學途&#xff0c;同鑄輝煌 ConcurrentHashMap常簡寫為CHM&#xff0c;尤其是在討論并發編程時。…

VLAN綜合實驗報告

一、實驗拓撲 網絡拓撲結構包括三臺交換機&#xff08;LSW1、LSW2、LSW3&#xff09;、一臺路由器&#xff08;AR1&#xff09;以及六臺PC&#xff08;PC1-PC6&#xff09;。交換機之間通過Trunk鏈路相連&#xff0c;交換機與PC、路由器通過Access或Hybrid鏈路連接。 二、實驗…

OpenGL ES ->計算多個幀緩沖對象(Frame Buffer Object)+疊加多個濾鏡作用后的Bitmap

XML文件 <?xml version"1.0" encoding"utf-8"?> <RelativeLayout xmlns:android"http://schemas.android.com/apk/res/android"android:layout_width"match_parent"android:layout_height"match_parent"><…

Java線程池深度解析:從使用到調優

適合人群&#xff1a;Java中級開發者 | 并發編程入門者 | 系統調優實踐者 目錄 一、引言&#xff1a;為什么線程池是Java并發的核心&#xff1f; 二、線程池核心知識點詳解 1. 線程池核心參數與原理 2. 線程池的創建與使用 (1) 基礎用法示例 (2) 內置線程池的隱患 3. 線…

【工具變量】全國地級市地方ZF債務數據集(2014-2023年)

地方ZF債務是地方財政運作的重要組成部分&#xff0c;主要用于基礎設施建設、公共服務及經濟發展&#xff0c;是衡量地方財政健康狀況的重要指標。近年來&#xff0c;我國地級市的地方ZF債務規模不斷變化&#xff0c;涉及一般債務和專項債務等多個方面&#xff0c;對金融市場、…

大模型訓練的調參與算力調度技術分析

大模型訓練的調參與算力調度 雖然從網絡上&#xff0c;還有通過和大模型交流&#xff0c;了解了很多訓練和微調的技術。但沒有實踐&#xff0c;也沒有什么機會實踐。因為大模型訓練門檻還是挺高的&#xff0c;想要有一手資料比較困難。如果需要多機多卡&#xff0c;硬件成本小…

深入理解 lt; 和 gt;:HTML 實體轉義的核心指南!!!

&#x1f6e1;? 深入理解 < 和 >&#xff1a;HTML 實體轉義的核心指南 &#x1f6e1;? 在編程和文檔編寫中&#xff0c;< 和 > 符號無處不在&#xff0c;但它們也是引發語法錯誤、安全漏洞和渲染混亂的頭號元兇&#xff01;&#x1f525; 本文將聚焦 <&#…

GRS認證的注意事項!GRS認證的定義

GRS認證的注意事項&#xff0c;對于企業而言&#xff0c;是通往可持續發展和環保生產道路上的重要里程碑。在追求這一認證的過程中&#xff0c;企業必須細致入微&#xff0c;確保每一個環節都符合嚴格的標準與要求。 首先&#xff0c;企業必須全面理解GRS認證的核心原則&#…