在 Ubuntu 和 Linux Mint 上纠正 PCIe 总线错误严重性故障

最近我试图在我研究所的几个节点上安装 Mint。 有时,我无法安装并且屏幕上出现很多“PCIe 总线”错误。 我也观察到 Ubuntu 18.04 的类似问题。

我坚持了一个多月,在使用了许多解决方案和观察之后(解决方案是相同的,但观察和治疗可能不同),我发现了一些对我有帮助的东西,我认为可能对其他 Ubuntu 和Linux Mint 用户。

关于 PCIe 总线错误严重性的观察 已更正

它发生在我的 HP 系统上,似乎 HP 硬件存在一些兼容性问题。 PCIe 总线错误基本上是报告硬件问题的 Linux 内核。

由于系统生成错误消息的频率,这种错误报告变成了噩梦。 我在各种 Linux 论坛上注意到许多 HP 用户都遇到了这个错误,可能 HP 需要改进对其硬件的 Linux 支持。

请注意,这并不一定意味着您不能在 HP 系统上使用 Linux。 你也许可以像其他人一样使用 Linux。 只是每次启动时看到此消息在屏幕上闪烁很烦人,有时可能会导致更大的麻烦。

如果系统继续报告,它将增加日志大小。 如果您的 root 空间有限,这可能意味着您的系统将卡在显示 PCIe 错误消息的黑屏上,并且您的系统将无法启动。

现在您知道了一些事情,让我们看看如何解决这个错误。

如果可以引导到 Linux 系统,则处理 PCIe 总线错误消息

如果您在启动时在屏幕上看到 PCIe 总线错误消息,但您仍然能够登录,您可以采取解决方法来解决这个烦恼。

您在硬件​​兼容性方面几乎无能为力。 我的意思是你(很可能)不能继续为你的硬件编写驱动程序或修复现有的驱动程序代码。 如果您的系统工作正常,您主要关心的应该是过多的错误报告不会占用磁盘空间。

在这方面,您可以更改 Linux 内核参数并要求它停止报告 PCIe 错误。 为此,您需要编辑 grub 配置。

基本上,您只需要使用文本编辑器来编辑文件。

首先,备份您的 grub 配置文件,以便在您不确定更改的内容时可以恢复。 打开终端并使用以下命令:

cp /etc/default/grub ~/grub.back

现在用 Gedit 打开文件进行编辑:

sudo gedit /etc/default/grub

寻找有 GRUB_CMDLINE_LINUX_DEFAULT=”安静的飞溅”

在这一行添加 pci=noaer。 AER 代表高级错误报告,“noaer”要求内核不要使用/记录高级错误报告。 更改后的行应如下所示:

 GRUB_CMDLINE_LINUX_DEFAULT="quiet splash pci=noaer"

保存文件后,应使用以下命令更新 grub:

sudo update-grub

重启 Ubuntu 并且您不应再看到“PCIe 总线错误严重性已更正消息”。

如果这不能为您解决问题,您可以尝试更改其他内核参数。

进一步的故障排除:禁用 MSI

现在你正在诉诸打击和审判。 您可以尝试禁用 微星. 尽管 Linux 内核支持 MSI 已有好几年了,但某些硬件制造商对 MSI 的错误实现可能会导致 PCIe 错误。

该练习实际上与您在上一节中看到的相同。 您编辑 grub 配置并使 GRUB_CMDLINE_LINUX_DEFAULT 行如下所示:

 GRUB_CMDLINE_LINUX_DEFAULT="quiet splash pci=nomsi"

更新 grub 并重启系统:

sudo update-grub

进一步的故障排除:禁用 mmconf

我知道它会变得重复,但如果您仍然面临这个问题,那么最后一次尝试可能是值得的。 这一次,禁用 Linux 内核中的 mmconf 参数。

mmconf 表示内存映射配置,如果您有一台旧计算机,有错误的 BIOS 可能会导致此问题。

步骤保持不变。 只需更改 grub 配置中的 GRUB_CMDLINE_LINUX_DEFAULT 行,使其看起来像:

 GRUB_CMDLINE_LINUX_DEFAULT="quiet splash pci=nommconf"

无法开机! 现在如何编辑 grub 配置?

在某些情况下,如果您甚至根本无法启动,可能是您的根目录空间不足。 这里的一个想法是删除旧的日志文件,看看你现在是否可以启动,如果可以,更改 grub 配置。

重新启动时,如果您在屏幕上停留日志并进行硬启动(使用电源按钮将其关闭并再次打开)。 开机时,选择从 grub 屏幕进入恢复模式。 它应该在高级选项下。

如果您的系统没有显示 grub 屏幕,请在启动时按住 shift 键。 在某些系统中,按 Esc 键会显示 grub 屏幕。

在高级选项->恢复模式下:

放入根外壳:

如果您使用 ls 命令查找大文件,您会看到 sys.log 和 kern.log 占用巨大空间:

ls -s -S /var/log

你可以 在 Linux 命令行中清空日志文件 这边走:

$ > syslog $ > kern.log

完成后,重新启动系统。 您应该能够登录。您应该如上所述快速更改 grub 参数。 在这种情况下,添加 pci=noaer 应该会对您有所帮助。

我知道这更像是一种解决方法而不是解决方案。 但这是困扰我很久的事情,并帮助我解决了这个错误。 否则我不得不重装系统。

我只是想在这里与社区分享对我有用的东西。 我希望它也能帮助你。

本文由 Arun Shrimali 撰写。 Arun 是印度 Resonance Institute 的 IT 主管,他尝试在整个组织中实施开源软件。

本文由 Abhishek Prakash 编辑。