Kernel panic – not syncing: Attempted to kill init
今日更改系統的enlinux設定,vi /etc/selinux/config,把SELINUX=enforcing改為SELINUX=disabled
而後重啟系統,發生如下錯誤,採用方案一解決
重灌系統,不甘心,正好趁這個機會,深入瞭解一下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
按‘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
按照這種操作,看到詳細報錯如下:
按照如上提示啟動系統,進入瞭如下介面:
再該shell中,發現幾乎所有的資料都沒了,/etc目錄下沒剩幾個檔案了。幾乎所有的命令也沒了
難道是在該介面所有的資料都被遮蔽掉了,還是所有的資料不明原因的本來就消失了,同樣的方法(即刪除quiet)在另外的虛擬系統中操作下,是正常啟動的!!!
難道果然是磁碟資料都丟失了
方案五:
雖然和我的報錯有點不一樣,但還是把這種解決問題的方法寫下來吧
昨天修改了SELinux設定,結果導致系統重新啟動無法啟動,提示kernel panic - not syncing:Attempted to kill init。類似window的藍屏。如下圖:
幸好手裡有一張redhat的系統安裝盤,果斷使用rescue模式解救。大致過程為載入redhat安裝盤,進入rescue模式,按照提示用安裝盤啟動系統,掛載硬碟,然後進入shell模式修改配置檔案。
接下來就進入shell了,可以修改配置檔案了,然後重新啟動系統就可以正常啟動了。
方案六:
我之前的猜想是fstab檔案根分割槽掛載出錯,導致系統無法啟動!一般出現Kernel panic,是核心沒有硬碟的驅動造成的,還有一個可能,就是grub的配置裡面,root指向有問題!
好吧!rescure mode看看
進入後,虛驚一場!系統檔案都還在,應該不是上面說的所有的檔案丟失造成的,現在應該確定是/掛在出錯或者是grub配置問題,好吧,先分析 / 掛載問題
磁碟資訊
掛載資訊
檢視每個分割槽對應的label name
檢視/etc/fstab檔案
通過上面幾個命令的分析,sda3應該為根分割槽 / ;我們看下sda3的UUID
可以看到根分割槽的UUID同fstab的UUID不一致
列出磁碟與UUID的關係
我做了如下兩種修改
1:vi fstab
直接修改a727d......... 掛在 / 的 sda3的uuid改為4b82e312.............................
reboot重啟,不行,還是以前的錯誤介面
2:重新生成uuid
可以看到sda3重新生成的UUID為ae325b33..............
vi fstab修改/ 的 uuid為ae325b33...........
reboot重啟,哦哦,還是失敗,返回以前報錯介面
看來啟動引數那裡也錯了
重啟後任意鍵到達核心配置,修改root=uuid=xxxxxxxxxxxxxxxxxxxxxxxxxx(上面生成的uuid),啟動,哈哈,總算看到點不一樣的東西了
看到出現kernel panic報錯之前報的就是這個錯!hehe
這個unable to reslove 'uuid=XXXXXXXXXX'是什麼東東呀!!!!
想也不用想,肯定是除根分割槽以外其他分割槽uuid錯誤!!!按照之前方法修改試試!!先確定分割槽是哪個!
根據fstab可以看到是掛在到/datas目錄上的分割槽出現問題!根據fdisk -l可以到時sda2掛在到datas目錄下的!
首先思路是看能不能先解除安裝這個分割槽,發現解除安裝不了,那就重新生成uuid試下,也不行,看圖
咋辦呀這!在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
本以為修改之後可以的,為什麼又報初始錯!!
靠,救援模式走起
fuc k,rescure mode 下竟然/boot分割槽東西都在,這是啥子情況!!!不懂,仔細檢檢視下
原來是uuid寫錯了,填寫正確的uuid,修改為硬碟啟動,OK!!完美啟動
下次啟動應該還會報錯,修改/etc/boot/grub/grub.conf檔案即可!!!!!!!!!!!!!