在修改 Linux VM 时,我经常会遇到内核恐慌,这会将所有有用的输出推向我不理解的内容,这可能对我没有帮助。
恐慌大多发生在这个initramfs
阶段。我在用着VirtualBox
。
正常的Shift+Pg Up不起作用(就我而言)。
是否有其他方法可以向上滚动并查看之前的输出?
答案1
串行端口
这串行端口是一种古老而可靠的通信协议硬件,Linux 内核支持并且大多数模拟器都可以模拟。
您可以通过它将内核消息流式传输到主机文件或控制台:
量子计算单元(QEMU):
真正的硬件:串行端口在大多数现代笔记本电脑上都没有暴露,这是一种耻辱......但在台式机上它看起来像这样:
来源。
在树莓派上:
串行替代方案
甚至还提到了更奇特的方法:确定 Linux 内核恐慌的原因 | Unix 和 Linux 堆栈交换
netdump:通过网络发送跟踪。
假设恐慌没有破坏网络,这比串行更有可能。
与串行相比的优点是:
适用于没有公开序列的系统,例如现代笔记本电脑
串行电缆的最大电线长度非常有限,如果您希望将公司的所有主板都放在远程房间以便在开发人员之间共享资源,那么这是有问题的。
然而,如果您的目标公开串行,我会推荐使用带有以太网服务器的串行连接器,例如这个:
kdump:启动一个辅助 Linux 内核来检查发生恐慌的内核。可能会出现什么问题?
这些方法更灵活,但可靠性较差。
也可以看看:向上滚动失败的屏幕并出现内核恐慌 |超级用户
答案2
您正在使用什么虚拟机管理程序?
Shift+Pg Up对于几乎所有情况都是正确的,但如果虚拟机挂起或未完全启动,则可能不起作用。
如果是 Mac:“在 Macbook 上按 Shift+Fn 方向键向上或向下将允许您滚动”。这是来自如何在 Linux 服务器(终端)上向上/向下滚动? |堆栈溢出