![更换同一主板后出现 ACPI 错误 AE_NOT_FOUND](https://linux22.com/image/900140/%E6%9B%B4%E6%8D%A2%E5%90%8C%E4%B8%80%E4%B8%BB%E6%9D%BF%E5%90%8E%E5%87%BA%E7%8E%B0%20ACPI%20%E9%94%99%E8%AF%AF%20AE_NOT_FOUND.png)
我的 Shuttle 准系统用了两个月就坏了。我把它送回客服,他们换了主板,还更新了 BIOS(所以 BIOS 版本和以前的系统不一样)。
现在,当我连接我的硬盘时,我看到错误并且系统无法启动:
[ 1.474485] ACPI Error: [DSSP] Namespace lookup failure. AE_NOT_FOUND (20170531/psargs-364)
[ 1.474577] ACPI Error: Method parse/execution failed \_SB.PCI0.SAT0.PRT2._GTF. AE_NO_FOUND (20170531/psparse-550)
[ 1.482152] ACPI Error: [DSSP] Namespace lookup failure. AE_NOT_FOUND (20170531/psargs-364)
[ 1.482296] ACPI Error: Method parse/execution failed \_SB.PCI0.SAT0.PRT2._GTF. AE_NO_FOUND (20170531/psparse-550)
/dev/sda5: recovering journal
/dev/sda5: clean, 419821/7331840 files , 2934231/29296640 blocks
Welcome to emergency mode! After logging in, type "journalctl -xb" to view system logs, "systemctl reboot" to reboot, "systemctl default" or ^D to try again to boot into default mode.
Press Enter for maintenance
(or press Control-D to continue):
我运行的是 64 位 Ubuntu 16.04,带有 Linux 内核 4.13.0.37 和旧版 BIOS。
谁能帮我解决这个问题?
谢谢。
答案1
内核 drivers/ata/libata-acpi.c 驱动程序调用此 ACPI 方法。SATA(连接到块设备的串行 ATA 总线接口)ACPI(高级配置和电源接口)驱动程序调用固件(BIOS)中的 _GTF 控制方法来重新初始化驱动器。_GTF 方法返回一组 ATA 命令,这些命令被发送到驱动器以将驱动器恢复为启动默认值。
您看到的错误是因为您的固件没有定义 _GTF 方法。这可能是故意的,因为您的硬件可能不需要这些 ATA 命令,也可能是一个错误,因为 BIOS 供应商忘记将它们放入。但是,如果您的 SATA 驱动器正常工作而没有错误,那么很可能它不是必需的,您不必担心这个内核驱动程序消息。