Kernel panic – not syncing: Attempted to kill init
2016-09-22 14:54
645 查看
某年的某日,俺重启虚拟机上的系统,啪啪,报错。系统启动不起来:
重装系统,不甘心,正好趁这个机会,深入了解一下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也不是一朝一夕的事。不过还要给自己庆祝下,终于把这个问题解决了。暂时没试,先放一下方案四:http://askubuntu.com/questions/92946/cannot-boot-because-kernel-panic-not-syncing-attempted-to-kill-initAt the GRUB screen select the entry you wish to boot in to (most likely the one that's selected as default), press
anzh按照如上提示启动系统,进入了如下界面:
再该shell中,发现几乎所有的数据都没了,/etc目录下没剩几个文件了。几乎所有的命令也没了
难道是在该界面所有的数据都被屏蔽掉了,还是所有的数据不明原因的本来就消失了,同样的方法(即删除quiet)在另外的虚拟系统中操作下,是正常启动的!!!难道果然是磁盘数据都丢失了方案五:虽然和我的报错有点不一样,但还是把这种解决问题的方法写下来吧http://loofeer.blog.51cto.com/707932/996789昨天修改了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文件即可!!!!!!!!!!!!!
试验成功!!!
重装系统,不甘心,正好趁这个机会,深入了解一下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也不是一朝一夕的事。不过还要给自己庆祝下,终于把这个问题解决了。暂时没试,先放一下方案四:http://askubuntu.com/questions/92946/cannot-boot-because-kernel-panic-not-syncing-attempted-to-kill-initAt the GRUB screen select the entry you wish to boot in to (most likely the one that's selected as default), press
eand 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按照这种操作,看到详细报错如下:
anzh按照如上提示启动系统,进入了如下界面:
再该shell中,发现几乎所有的数据都没了,/etc目录下没剩几个文件了。几乎所有的命令也没了
难道是在该界面所有的数据都被屏蔽掉了,还是所有的数据不明原因的本来就消失了,同样的方法(即删除quiet)在另外的虚拟系统中操作下,是正常启动的!!!难道果然是磁盘数据都丢失了方案五:虽然和我的报错有点不一样,但还是把这种解决问题的方法写下来吧http://loofeer.blog.51cto.com/707932/996789昨天修改了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文件即可!!!!!!!!!!!!!
试验成功!!!
相关文章推荐
- 神器SystemTap
- go语言异常panic和恢复recover用法实例
- 解读Linux安全机制之栈溢出保护
- 开启Kdump捕捉内核崩溃信息
- 簡單設定 kernel 選項在使用 iptables 前
- Ubuntu12.04内核升级出了问题
- [Linux学习笔记] Linux系统引导流程(一)
- NTP自动退出问题排查
- cephfs linux kernel client针对export的操作
- cephfs linux kernel client针对fscache的操作
- 更新Debian内核e1000e驱动模块
- Linux Kernel 4.5在3月15日发布最终版
- kernel: printk: 2 messages suppressed.
- linux 内核 hash table 的使用
- Linux排错:rpmdb: PANIC: fatal region error detected; run recovery
- Linux Kernel Panic报错解决思路
- kernel: TCP: time wait bucket table overflow错误的解决办法
- linux安全相关
- 内核的主要配置文件的详细说明
- Linux Kernel 2.6.32 Local Root Exploit (x86_64)