如何解决 内核启动 卡在 Starting kernel ...

Posted bigPillow

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何解决 内核启动 卡在 Starting kernel ...相关的知识,希望对你有一定的参考价值。

很多时候,在配置内核的时候,一不小心就造成kernel无法启动,比如出现:

。。。省略。。。
Kernel image @ 0x82000000 [ 0x000000 - 0x464080 ]
## Flattened Device Tree blob at 88000000
   Booting using the fdt blob at 0x88000000
   Using Device Tree in place at 88000000, end 880094d5

Starting kernel ...

假如想解决问题,就必须知道问题出现在了哪里,因此一般通过内核启动的时候打印的信息来定位问题产生的原因。
但是如上所示,没有得到提示信息,直接悬挂在启动内核的位置上。
为解决这个提问:
这里首先想到的是打开使能early_printk,再次启动然后看是否可以得到有效的提示信息,假如仍然不可以的话,那就你直接读取缓存 ,缓存的地址为 __log_buf其地址在system.map被标记出来,我们可以找到具体的位置。具体如下:

  1. 首先去内核编译目录找到System.map文件。
  2. 接下来遭到System.map中__log_buf对应地址,执行:

cat  ./System.map | grep -n  __log_buf

如何可能得到如下结果:
64584:c0770be8 b __log_buf
此时记住c0770be8 这个数字。
3. 启动内核,内核此时卡在Starting kernel …位置。
4. 重新启动系统(注意:不要断电启动),进入UBoot命令行界面
5. 在命令行输入(数字是刚才得到的数字):

md 0xc0770be8 

6、不停的敲击回车键,直到为全为0

通过此方法就可以看到问题出现在哪个位置。

以上是关于如何解决 内核启动 卡在 Starting kernel ...的主要内容,如果未能解决你的问题,请参考以下文章

内核启动卡在 Starting kernel ...

centos7 U盘安装卡在 starting dracut initqueue hook解决办法

centos7 U盘安装卡在 starting dracut initqueue hook

centos6.5在启动中starting crond后卡住了,就不动了

MySQL安装时卡在Starting Server的有效解决方案

用mis文件重新安装MYSQL卡在最后一步,卡在Starting Server,删除注册表无效的解决方案