導航:首頁 > 操作系統 > linux系統崩潰

linux系統崩潰

發布時間:2022-08-15 16:26:47

A. linux程序崩潰自動重啟

1、如果發生重啟前下載應用程序軟體或運行程序軟體,則可能是程序軟體引起的重啟,將程序軟體卸載再重新安裝即可,如果故障依舊則說明系統有錯誤。

2、開機按F8進入安全模式後再退出,再進入正常模式。也可用系統自帶的系統還原功能進行還原,如果重啟故障排除,則是系統文件受損造成的重啟。

3、檢查主板,主板老化、電容失效或爆漿、主板與機箱背板發生短路等均可引發重啟,可將主板從機箱取出檢查或測試,接著檢查CPU風扇散熱片的底部硅膠是否變干,如果變干則將CPU風扇上的硅膠清理干凈,然後重新塗上好的硅膠即可。接著檢查CPU的風扇轉動,及CPU的溫度是否正常。

B. 如何分析linux crash

如前文所述,當 linux 系統內核發生崩潰的時候,可以通過 kmp 等方式收集內核崩潰之前的內存,生成一個轉儲文件 vmcore。內核開發者通過分析該 vmcore 文件就可以診斷出內核崩潰的原因,從而進行操作系統的代碼改進。那麼 crash 就是一個被廣泛使用的內核崩潰轉儲文件分析工具,掌握 crash 的使用技巧,對於定位問題有著十分重要的作用。
使用 crash 的先決條件
由於 crash 用於調試內核崩潰的轉儲文件,因此使用 crash 需要依賴如下條件:
1. kernel 映像文件 vmlinux 在編譯的時候必須指定了 -g 參數,即帶有調試信息。
2. 需要有一個內存崩潰轉儲文件(例如 vmcore),或者可以通過 /dev/mem 或 /dev/crash 訪問的實時系統內存。如果 crash 命令行沒有指定轉儲文件,則 crash 默認使用實時系統內存,這時需要 root 許可權。
3. crash 支持的平台處理器包括:x86, x86_64, ia64, ppc64, arm, s390, s390x ( 也有部分 crash 版本支持 Alpha 和 32-bit PowerPC,但是對於這兩種平台的支持不保證長期維護 )。
4. crash 支持 2.2.5-15(含)以後的 Linux 內核版本。隨著 Linux 內核的更新,crash 也在不斷升級以適應新的內核。
crash 安裝指南
要想使用 crash 調試內核轉儲文件,需要安裝 crash 工具和內核調試信息包。不同的發行版安裝包名稱略有差異,這里僅列出 RHEL 和 SLES 發行版對應的安裝包名稱如下:
表 1. crash 工具和內核調試包系統版本crash 工具名稱
內核調試信息包RHEL6.2
crashkernel-debuginfo-common
kernel-debuginfoSLES11SP2crashkernel-default-debuginfo
kernel-ppc64-debuginfo
以 RHEL 為例,安裝 crash 及內核調試信息包的步驟如下:
rpm -ivh crash-5.1.8-1.el6.ppc64.rpm
rpm -ivh kernel-debuginfo-common-ppc64-2.6.32-220.el6.ppc64.rpm
rpm -ivh kernel-debuginfo-2.6.32-220.el6.ppc64.rpm啟動 crash啟動參數說明
使用 crash 調試轉儲文件,需要在命令行輸入兩個參數:debug kernel 和 mp file,其中 mp file 是內核轉儲文件的名稱,debug kernel 是由內核調試信息包安裝的,不同的發行版名稱略有不同,以 RHEL 和 SLES 為例:
RHEL6.2:/usr/lib/debug/lib/moles/2.6.32-220.el6.ppc64/vmlinux
SLES11SP2:/usr/lib/debug/boot/vmlinux-3.0.13-0.27-ppc64.debug
使用 crash -h 或 man crash 可以查看 crash 支持的一系列選項,這里僅以常用的選項為例說明如下:
-h:列印幫助信息
-d:設置調試級別
-S:使用 /boot/System.map 作為默認的映射文件
-s:不顯示版本、初始調試信息等,直接進入命令行
-i file:啟動之後自動運行 file 中的命令,再接受用戶輸入

C. Linux安裝autojump導致系統崩潰,為什麼

系統環境變數壞了,建議直接重裝

D. 如何修復Linux無法正常啟動故障

沒有操作系統能夠確保100%可靠。終有一天,即使Linux也會無法啟動。本文為你提供一些在Linux工作站無法正常啟動時所採用的策略。

不管你多麼喜愛你的Linux機器,有時候你都必須恢復你的系統。是的,即使一台Linux機器也可能遭受系統崩潰:不管是由於視頻配置錯誤、內核更新出錯、或是由於init腳本配置錯誤,這種情況都是必然的。我看到過大量這種情況——即使在我自己的機器上,大多數是由於X配置出錯——這確實令人沮喪。

在我看來,重新安裝系統並不是最佳救援計劃。有時候,最佳救援計劃甚至不需要從救援磁碟啟動。本文將為如何避免系統崩潰提供一些提示和訣竅,幫助你建立恢復崩潰的Linux機器所需的工具。

使用正確的運行級別

安裝好一個新的Linux系統後,我立即採取措施以確保災難不會輕易發生。其中一個措施就是編輯系統的運行級別。運行級別告訴系統離採用引導過程還有多遠。運行級別分為六個等級:

0級:停止(不設置initdefault)

1級:單用戶模式

2級:多用戶模式,沒有NFS(與3級相同,如果你沒有建立網路)

3級:完整的多用戶模式

4級:不使用

5級:X11

6級:重新啟動(不設置initdefault)

新型的Linux系統幾乎總是默認使用運行級5(X11),表示系統在引導完成後,將會在圖形登錄界面處停止。在某物(或某人)使用X配置前,系統一切正常。

然後你必須找到一個登錄方法。你可以按下[Ctrl][Alt][F7]進入一個基於文本的虛擬窗口,但為什麼要這么麻煩呢?相反,我總是在/etc/inittab文件中將運行級更改為3級。你更改的代碼為:

id:5:initdefault:

它被更改為:

id:3:initdefault:

當X出錯時,這是一個非常簡單的系統恢復方法。

多內核

另一個明顯的磁碟恢復方法是總是安裝一個正常運轉的內核。我通常在一個通過yum更新的內核上工作。有時候,內核會出現一些錯誤,使得我的一台或幾台機器無法啟動。

為避免這種情況,我一直保證在機器上使用至少一個正常運行的內核。要解決這個問題,首先應在/etc/yum.conf文件中添加plugins=1,然後應用這段腳本(由RedHat的Jeremy Katz編寫),並將它命名為n-installonly.py,保存在/usr/lib/yum-plugins文件中。你可以通過修改tookeep變數(默認為2)的方法更新系統所使用內核的數量。

知道系統上有一個正常運轉的內核,你就可以進行安全升級。如果新內核出錯,只需啟動舊內核就可以解決新內核上的問題(不管是刪除、重新編譯還是升級)。

救援模式

如果你在使用Red Hat和LILO引導載入器,你就可以插入產品光碟1,並在引導提示符下輸入Linuxrescue進入救援模式。啟動機器後,你就會看到bash#提示符。在這個模式下,你可以使用許多工具。

如你所見,有檢查硬碟完整性、修復硬碟、檢查內核模塊、裝配設備、以及創建文件系統等的工具。此時是進行救援嘗試的最佳時機(如果你使用的是一個Red Hat,或基於Red Hat的系統)。

另一個救援方法是進入單用戶模式,這里你的計算機引導進入運行級1。系統裝配你的本地文件系統,但不激活網路。你得到一個可用的系統維護外殼。要進入單用戶模式,在LILO提示符下輸入:

Linuxsingle



Linuxemergency

建立一張救援CD

如果你正在使用LILO引入載入器,可以使用一個叫做mkrescue的強大工具。這個工具一般用於創建引導軟盤,但也可用來創建ISO。其用法如下。

如果你使用Mandriva:

mkrescue --iso --initrd /boot/initrd-KERNEL-NUMBER.img --

kernel /boot/vmlinuz-KERNEL-NUMBER

注意:這里的KERNEL-NUMBER指內核的版本號。

如果你不能確定內核的版本,可以用以下命令找到intrd和vmlinuz的號碼:

uname –r

運行這個命令後,你就會在運行mkrescue命令的目錄中發現一個rescue.iso文件。現在你可以用以下命令建立鏡像:

首先,檢查建立CD的設備號碼:

cdrecord –scanbus

然後用以下命令建立鏡像:

cdrecord dev=0,0,0 rescue.iso

注意:這里的dev=0,0,0是用上面的scanbus命令查出的號碼。

如果你使用Slackware,使用這些步驟建立一張引導CD:

mkrescue –iso

注意:Slackware自動獲知在ISO中放入何種內核。

然後,你可以用建立Mandriva鏡像同樣的方法建立鏡像。

SystemRescueCD

SystemRescueCD是一個保存在可引導光碟上的Linux系統,用於在系統崩潰後修復系統和數據。它還可在計算機上方便地執行管理任務,如建立和編輯硬碟分區。它由許多系統實用工具(parted、partimage、fstools)和基本實用工具(編輯器、midnight commander文件管理器和網路工具)構成。

它使用起來非常簡單。只需要從光碟啟動你就可以執行一切操作,就像從硬碟啟動一樣。系統內核支持大多數重要的文件系統(ext2/ext3, reiserfs, reiser4, xfs, jfs, vfat, ntfs, iso9660)和網路(samba和nfs)。

SystemRescueCD可能是市面上最優秀的救援系統。你不僅可以從光碟上使用這種救援方法,還可以將這個救援系統放在U盤上使用。

要在一個U盤上建立一個SystemRescueCD,你需要大於256MB的磁碟空間。從Sourceforge下載iso鏡像並把它燒制到光碟上。現在你必須在U盤上創建文件系統。使用dmesg命令找出U盤名稱,然後用以下代碼擦寫U盤:

dd if=/dev/zero of=/dev/sda

這里的/dev/sda是U盤的名稱。

現在在U盤上安裝主引導記錄:

install-mbr /dev/sda



install-mbr --force /dev/sda(如果命令出錯)

現在建立分散分區:

parted /dev/sda

(parted) mkpartfs primary fat32 0 100% // use help or help mkpartfs command to see help

(parted) print // check if the write was ok

(parted) quit

現在已經建立好文件系統,然後將用SystemRescueCD鏡像燒制的CD中的文件復制到U盤中。保證你復制的文件等級和CD上的相同。

現在,使得U盤可以用sysLinux命令啟動:

sysLinux/dev/sda1

這里的/dev/sda1是磁碟的名稱。

現在你已經建立了一個你可以整天隨身攜帶的救援U盤。由於你使用Linux,你並不需要經常用到它。

最後總結

Linux是一個非常穩定的環境,但由於該系統中還有許多其它系統,它們可能會出現錯誤。雖然我們很容易會由於使用Linux而洋洋自得(因為它存在諸多優點),但了解如何拯救一個系統崩潰的機器也不失為一種明智的做法。

當然,不是世界上所有的救援系統都能100%地恢復你的系統,因此你可能希望考慮為你的Linux伺服器和桌面系統實施一個災難恢復計劃。

E. 求助:linux程序崩潰了,但不知道問題在哪裡

Linux程序崩潰,請查看對應的錯誤日誌信息進行問題排查,如linux系統的請查看/var/log/message日誌,如果是其它第三方程序的如tomcat,請到tomcat/logs路徑中查看錯誤信息。

F. Linux 操作系統在什麼情況下崩潰

1.一個死循環不大可能把linux搞崩潰,尤其是到2.4以後,內核都有相應的保護機制,多半情況下這種進程會被殺死的。當然,你可以試試提高進程的優先順序(這種我沒做過,不知道結果,請事先保存好數據,以免不必要的損失)

2.還有,大量地消耗系統內存。這方法也不能成功。
比如:
======================================
#BOF
#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>

#define ONE_K (1024)

int main ()
{
char *some_memory;
int size_to_allocate = ONE_K;
int megs_obtained = 0;
int ks_obtained = 0;

while (1) {
for (ks_obtained = 0; ks_obtained < 1024; ks_obtained++) {
some_memory = (char*)malloc(size_to_allocate);
if (some_memory == NULL) exit (EXIT_FAILURE);
sprintf(some_memory, "Hello,World");
}
megs_obtained++;
printf("Now allocated %d Megabytes\n", megs_obtained);
}
exit(EXIT_SUCCESS);
}

#EOF
====================
運行之後,
.....
.....
Out of Memory:Killed process 2365
Killed
======================================
系統為了保護自己的安全運行,終止了這個危險的進程。

3.驅動程序出現問題,比如驅動有bug崩潰了,這時間系統就危險了,但現在的社區裡面寫的開源驅動大都能和內核很好地結合,bug也沒抓得差不多了。(關於驅動程序,可以參看Minix作者寫的操作系統原理那本書,作者分析,70%的系統崩潰是由於驅動程序引起的,所以minix採用了微內核設計,只把必要的幾千行代碼放在內核而剩下的都放到了用戶層,他認為這樣做能極大地提高系統的穩定性。關於微內核的優劣,不好評論,反正我了解一點,GNU中的一個項目是做一個叫做Hurd的微內枋系統,這個項目已經有好幾年了,可以去www.gnu.org找相應的文檔。

4.其它。(不知道了)

閱讀全文

與linux系統崩潰相關的資料

熱點內容
程序員偏右 瀏覽:16
超算上可以進行vasp編譯嘛 瀏覽:174
北京通app怎麼注冊登錄 瀏覽:820
iphone上的數據怎麼轉移到安卓 瀏覽:743
python求每個時段平均值 瀏覽:244
安卓手機右上出現Hg什麼意思 瀏覽:69
程序員神經 瀏覽:753
dns伺服器在電腦上有什麼用 瀏覽:915
杭州大媽喜歡程序員 瀏覽:687
python評論樹講解 瀏覽:680
juniper防火牆常用命令 瀏覽:426
vapp怎麼下載地址 瀏覽:11
pdf裡面內容怎麼修改 瀏覽:807
收藏網址加密的瀏覽器 瀏覽:1000
phpurl問號 瀏覽:898
什麼筆記本電腦可以用python 瀏覽:136
加密相冊如何翻找 瀏覽:992
泰州地區DNS伺服器地址 瀏覽:849
一種app可以買菜用英語怎麼說 瀏覽:197
中國聯通app裡面通話詳單怎麼刪除 瀏覽:505