如何调试早期的启动过程

如何调试早期的启动过程

我遇到了一个问题,但我不知道如何找到原因:从 grub 菜单选择 Linux 启动后,我的系统似乎在启动过程中的某个时间立即“关闭”,在记录了一些消息之后,就好像断电或立即停止了一样。

这似乎在启动时发生得太早了,文件系统尚未挂载,也没有任何地方写入日志,所以我无法诊断问题。它主要发生在 vga 分辨率切换到更高分辨率之前。我可以在启动过程中读取一些详细的消息,但没有不寻常的错误消息,关机主要发生在切换分辨率之前,但并非 100% 一致。

奇怪的是,有时系统可以成功启动。一切似乎都是随机的。我相当确定这不是电源等硬件问题。原因是当我启动 Windows 时系统从未关闭,而且我已经尝试更换电源、主板和 RAM 等组件。

有人知道如何诊断问题并找到原因吗?或者更好的是,问题可能是什么?

答案1

从问题描述来看,我不确定这会有什么帮助。不过,这些是我调试早期启动过程的一般技巧。

  • quiet删除诸如和之类的内核参数splash。从评论来看,听起来您已经在这样做了。
  • 添加内核参数debug=。这将配置卡斯帕将调试日志写入/casper.loginitrd 临时文件系统,该日志将被复制到/var/log/casper.log真实文件系统中。
  • 添加内核参数debug。这与参数不同debug=。这将配置初始化内存文件系统将调试日志写入/run/initramfs/initramfs.debug
  • 添加break=内核参数以暂停 initramfs 中的启动过程并打开调试 shell。例如break=top将在开始时暂停启动过程。

链接

相关内容