1. 程式人生 > >Kernel panic – not syncing: Attempted to kill init

Kernel panic – not syncing: Attempted to kill init

今日更改系統的enlinux設定,vi /etc/selinux/config,把SELINUX=enforcing改為SELINUX=disabled

而後重啟系統,發生如下錯誤,採用方案一解決

152205805.jpg

重灌系統,不甘心,正好趁這個機會,深入瞭解一下Linux系統,Google咯

看到有如下幾種解決:

方案一:

系統啟動的時候,按下‘e’鍵進入grub編輯介面,編輯grub選單,選擇“kernel /vmlinuz-2.6.23.1-42.fc8 ro root=/dev/vogroup00/logvol00 rhgb quiet” 一欄,按‘e’鍵進入編輯,在末尾增加enforcing=0,即:
kernel /vmlinuz-2.6.23.1-42.fc8 ro root=/dev/vogroup00/logvol00 rhgb quiet

enforcing=0
按‘b’鍵繼續引導,OK順利前進。

不用我,我試過,對我來說不行

方案二:

將方案一中的enforcing=0換成selinux=0

當然要是這麼簡單我就不寫博文了

方案三

出現:Kernel Panic -- not syncing: attempted to kill init 然後就停那裡不走了。在網上查了好多資料都不可以。從昨天到今天整了近20個小時,本來想還不如重做個系統得了,但是沒有得到客戶授權,還是不能亂搞滴~有一些方案是編輯grub,不過試了N種都不行。就決定放棄了。後來在csdn 還是51cto上看到一個方法最終可以了。其間的過程還真是一波三折..
  首先要進入系統,然後才能編輯/etc/sysctl.conf.那就找系統盤引導吧。不巧的是,這個品牌機的光碟機是cd的,又沒有多餘的sata口,而機房只有centos 5.3 5.4 dvd 盤,根本沒法驅動,汗~。後來意外發現debian 5.0的cd盤。反正都是同樣的核心,死馬當活馬醫吧。出現安裝介面時,選擇rescue mode ,然後一大堆的下一步之後終於看到命令列介面了嘿嘿 !


   不過令我納悶的是vi命令不能用。。按理說debian應該是支援vi編輯命令的(主要我還是菜鳥)。後來只好用nano命令了。cd 到etc目錄發現下邊沒有sysctl.conf這個檔案。抱著試試的態度,nano sysctl.conf 新建一個吧,在裡邊輸入 kelnel panic=30 kernel sysrq=1 儲存退出。重啟,終於跳出那個報錯,看到了 久違的login介面啦,哈哈...這其中還有很多原理,我不懂,我知道自己還是菜鳥級別,想學好linux也不是一朝一夕的事。不過還要給自己慶祝下,終於把這個問題解決了。

暫時沒試,先放一下

方案四:

At the GRUB screen select the entry you wish to boot in to (most likely the one that's selected as default), press

e and then remove 'quiet' and 'splash' from the kernel line if present. You can then press Ctrl-X to boot. This might display a little more information that could be useful. Edit: tumbleweed's suggestion is better, try rescue mode

按照這種操作,看到詳細報錯如下:

154848939.jpganzh

按照如上提示啟動系統,進入瞭如下介面:

155116166.jpg

再該shell中,發現幾乎所有的資料都沒了,/etc目錄下沒剩幾個檔案了。幾乎所有的命令也沒了

164708961.jpg

難道是在該介面所有的資料都被遮蔽掉了,還是所有的資料不明原因的本來就消失了,同樣的方法(即刪除quiet)在另外的虛擬系統中操作下,是正常啟動的!!!

難道果然是磁碟資料都丟失了

方案五:

雖然和我的報錯有點不一樣,但還是把這種解決問題的方法寫下來吧

昨天修改了SELinux設定,結果導致系統重新啟動無法啟動,提示kernel panic - not syncing:Attempted to kill init。類似window的藍屏。如下圖:

091134297.jpg

幸好手裡有一張redhat的系統安裝盤,果斷使用rescue模式解救。大致過程為載入redhat安裝盤,進入rescue模式,按照提示用安裝盤啟動系統,掛載硬碟,然後進入shell模式修改配置檔案。

接下來就進入shell了,可以修改配置檔案了,然後重新啟動系統就可以正常啟動了。

091502743.jpg

方案六:

我之前的猜想是fstab檔案根分割槽掛載出錯,導致系統無法啟動!一般出現Kernel panic,是核心沒有硬碟的驅動造成的,還有一個可能,就是grub的配置裡面,root指向有問題!

好吧!rescure mode看看

進入後,虛驚一場!系統檔案都還在,應該不是上面說的所有的檔案丟失造成的,現在應該確定是/掛在出錯或者是grub配置問題,好吧,先分析  /   掛載問題

磁碟資訊

111450102.jpg

掛載資訊

111322819.jpg

檢視每個分割槽對應的label name

111325580.jpg

檢視/etc/fstab檔案

111328826.jpg

通過上面幾個命令的分析,sda3應該為根分割槽  / ;我們看下sda3的UUID

112608680.jpg

可以看到根分割槽的UUID同fstab的UUID不一致

列出磁碟與UUID的關係

122650432.jpg

我做了如下兩種修改

1:vi fstab

直接修改a727d.........  掛在  /  的 sda3的uuid改為4b82e312.............................

reboot重啟,不行,還是以前的錯誤介面

2:重新生成uuid

151924939.jpg

可以看到sda3重新生成的UUID為ae325b33..............

vi fstab修改/ 的 uuid為ae325b33...........

reboot重啟,哦哦,還是失敗,返回以前報錯介面

看來啟動引數那裡也錯了

重啟後任意鍵到達核心配置,修改root=uuid=xxxxxxxxxxxxxxxxxxxxxxxxxx(上面生成的uuid),啟動,哈哈,總算看到點不一樣的東西了

152358564.jpg

看到出現kernel panic報錯之前報的就是這個錯!hehe

這個unable to reslove 'uuid=XXXXXXXXXX'是什麼東東呀!!!!

想也不用想,肯定是除根分割槽以外其他分割槽uuid錯誤!!!按照之前方法修改試試!!先確定分割槽是哪個!

153243215.jpg

根據fstab可以看到是掛在到/datas目錄上的分割槽出現問題!根據fdisk -l可以到時sda2掛在到datas目錄下的!

首先思路是看能不能先解除安裝這個分割槽,發現解除安裝不了,那就重新生成uuid試下,也不行,看圖

154048170.jpg

咋辦呀這!在fstab中刪除該行???先不急,Google看下該分割槽出現了啥問題!

嘿嘿,有點眉目了,看如下解釋

is a swap partition, which therefore doesn't have a file system (it's formatted as swap), so it, too, cannot be read by e2label.

雖然我的不是swap,但是聯想到之前我做過一次DRBD,將該分割槽格式化了,呵呵,沒辦法,fstab刪除掉報uuid錯的那一行試下

vi fstab準備刪除哪一行的時候,卻報錯該分割槽為只讀,好吧,先重新掛組mount / -o remount,rw後vi fstab dd刪除後

mount / -o remount,ro!!!!!!!!!修改完成,準備重新啟動,但這個時候又想到一個問題,就是重啟後之前在修改啟動引數是root的uuid還是否已改變,我是否要找到啟動引數的檔案/etc/grub.conf永久修改呢!

不看不知道,一看嚇一跳/boot分割槽下的檔案全都沒了!!!

這個,咋辦,這個分割槽是sda1!!!!

恢復/boot還是先啟動看看!

1,啟動看下;shutdown -r now ,果然不出所料,報最初的錯!修改root UUID

161730982.jpg

161732709.jpg

本以為修改之後可以的,為什麼又報初始錯!!

靠,救援模式走起

fuc k,rescure mode 下竟然/boot分割槽東西都在,這是啥子情況!!!不懂,仔細檢檢視下

170554563.jpg

原來是uuid寫錯了,填寫正確的uuid,修改為硬碟啟動,OK!!完美啟動

170558984.jpg

下次啟動應該還會報錯,修改/etc/boot/grub/grub.conf檔案即可!!!!!!!!!!!!!