我一直在 LINUX.org/Ubuntu 和这个论坛上阅读有关突然发生 APCI 错误导致系统可能启动或无法启动的情况的信息,后者就是我的情况。
我了解到,它被认为是“涉及新硬件时通常会发生的问题”。这种假设在一定程度上可能是正确的,但就我的情况而言,它并不正确。
我有一台 2014 年的台式机,配有华硕主板、AMD10 处理器和 16GB 内存(我的意思是它以前是兼容的硬件)。BIOS 来自 2013 年的 American Megatrends。我从 Ubuntu 14.04 LTS 开始,然后转到 16.04 LTS,然后是 18.04LTS(这导致了很多问题,所以我重新安装了 20.04 LTS),2022 年 6 月,我重新安装了 22.04 LTS 的 PC。在启动过程中,我从未遇到过任何 ACPI 错误。
自 2022 年 10 月以来,我的 PC 在 Ubuntu 启动过程中一直出现 ACPI 错误,闪现,我无法读取,它在去年圣诞节左右死机了。更糟糕的是,它损坏了 2 TB(3.5 英寸)的 HDD,但我的系统磁盘 SSD 仍在工作,但我不能确定。
九月份休假之前,我的 PC 启动时没有出现任何问题,我的意思是,之前启动时我无法进行网络测试,但从十月份开始,我可以一边等待 PC 启动,一边出去洗澡。我的 Ubuntu 22.04 安装在一根棒子上,无论我从棒子还是 SSD 启动都需要时间,非常长的时间。
因此,我可以断然否认 ACPI 错误问题与新硬件有关,在我看来,它与 ubuntu 22.04 查看 ACPI 的方式有关,我预计 2022 年 6 月之后的更新是导致问题的原因。
我的下一步是回到 Ubuntu 20.04 LTS 作为测试,我将 2020 年下载到磁盘并启动的 20.04.1 LTS 的 iso 映像打印出来,结果没有 ACPI 错误...这就引出了一个问题,在 20.04.1 和 22.04 之间 UBUNTU 发生了什么,这可能会导致在 22.04 出现之前兼容的硬件上出现 ACPI 启动问题?
解决方案之一是更改 Grub 配置文件并添加 noacpi、acpi strict 或其他任何内容。但我无法做到这一点:
请问有人能描述一下如何在从 flahdrive/usb 棒启动后执行此操作,如何获取 SSD 上的 /etc/default/grub 文件,如何编辑它以及如何保存它,然后如何从不能仅从可启动 USB 棒启动的系统将其传递到 grub2 可执行文件
请让我知道您需要有关我的设置的信息以帮助您解决问题
答案1
您可以通过设置选项ACPI=off
来禁用 ACPI/etc/default/grub
如果无法进入系统,您可以在 BIOS 后立即按 ESC 进入恢复模式,进入 grub,然后转到高级选项并选择恢复 linux 映像。从那里您应该能够进入根终端。
您应该有 rw,但我对 Ubuntu 20.04 上的 rw 不是很熟悉,如果您没有 RW,您可以通过mount
列出您的挂载并找到要重新挂载为 rw 的根挂载来重新挂载驱动器。要重新挂载它,您需要执行mount -o remount,rw <mount_path>
,如果不是,/
您可以执行chroot <mount_path>
。
您现在可以修改/etc/default/grub
并添加ACPI=off
该GRUB_CMDLINE_LINUX
行。
如果你正在使用 grub2,你可以这样做grub2-mkconfig -o /boot/grub2/grub.cfg
;对于常规 grub,你可以运行grub-mkconfig -o /boot/grub/grub.cfg
正常情况下不建议关闭 ACPI,但这将回答您关于如何修改和关闭 ACPI 的问题。
可能的解决方案
我对 i2c i2c-2 和 SMBus 问题进行了一些深入研究,发现它通常与内核问题有关。
以下是其他人解决问题的方法...
解决方案
他们似乎可以通过添加这个来解决这个问题/etc/modprobe.d/sensors
blacklist adt7475
blacklist hwmon_vid
blacklist it87
blacklist k10temp
移除/etc/initramfs-tools/modules
vhost_scsi
然后接着sudo update-initramfs -u
修改GRUB_CMDLINE_LINUX_DEFAULT
于/etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="initcall_blacklist=i2c_dw_init_master"
其次sudo update-grub
,但我更愿意建议做sudo grub-mkconfig -o /boot/grub/grub.cfg
或sudo grub2-mkconfig -o /boot/grub2/grub.cfg
这为他们解决了这个问题,但我不能保证它在这里会起作用。
请告诉我这是否解决了您的问题,以便我可以修改我的答案,使其更易于阅读。