我将 Ubuntu 22.04 系统从 Linux 内核 5.19.0.50 升级到 6.2.0.26,但机器甚至无法完成初始加载。似乎有几个内核模块(efi_pstore 和 drm)未加载。我在日志中没有收到“加载完成”消息。
使用 5.19.0.50 启动即可。
我没有使用任何 Nvidia 驱动程序,这似乎给其他人带来了问题。
该机器运行在配备 8600K CPU 和 Nvidia RTX 3070 的 Gigabyte Z370 AORUS Gaming 5 上。
关于如何继续,有什么建议吗?
5.19.0.50上启动成功有:
Aug 05 13:53:22 ubuntu-8600k kernel: EXT4-fs (nvme0n1p6): re-mounted. Quota mode: none.
Aug 05 13:53:22 ubuntu-8600k systemd[1]: Finished Remount Root and Kernel File Systems.
Aug 05 13:53:22 ubuntu-8600k systemd[1]: Activating swap /swapfile...
Aug 05 13:53:22 ubuntu-8600k systemd[1]: Starting Load/Save Random Seed...
Aug 05 13:53:22 ubuntu-8600k systemd[1]: Starting Create System Users...
Aug 05 13:53:22 ubuntu-8600k kernel: Adding 2047996k swap on /swapfile. Priority:-2 extents:7 across:18735104k SSFS
Aug 05 13:53:22 ubuntu-8600k systemd[1]: Activated swap /swapfile.
Aug 05 13:53:22 ubuntu-8600k systemd[1]: Reached target Swaps.
Aug 05 13:53:22 ubuntu-8600k systemd[1]: modprobe@chromeos_pstore.service: Deactivated successfully.
Aug 05 13:53:22 ubuntu-8600k systemd[1]: Finished Load Kernel Module chromeos_pstore.
Aug 05 13:53:22 ubuntu-8600k systemd[1]: Finished Load/Save Random Seed.
Aug 05 13:53:22 ubuntu-8600k systemd[1]: modprobe@efi_pstore.service: Deactivated successfully.
Aug 05 13:53:22 ubuntu-8600k systemd[1]: **Finished Load Kernel Module efi_pstore.**
Aug 05 13:53:22 ubuntu-8600k systemd[1]: Finished Create System Users.
Aug 05 13:53:22 ubuntu-8600k systemd[1]: Condition check resulted in First Boot Complete being skipped.
Aug 05 13:53:22 ubuntu-8600k systemd[1]: Starting Platform Persistent Storage Archival...
Aug 05 13:53:22 ubuntu-8600k systemd[1]: Starting Create Static Device Nodes in /dev...
Aug 05 13:53:22 ubuntu-8600k kernel: ACPI: bus type drm_connector registered
Aug 05 13:53:22 ubuntu-8600k systemd[1]: Finished Set the console keyboard layout.
Aug 05 13:53:22 ubuntu-8600k systemd[1]: [email protected]: Deactivated successfully.
Aug 05 13:53:22 ubuntu-8600k systemd[1]: **Finished Load Kernel Module drm.**
Aug 05 13:53:22 ubuntu-8600k kernel: lp: driver loaded but no devices found
Aug 05 13:53:22 ubuntu-8600k systemd[1]: Finished Platform Persistent Storage Archival.
6.2.0.20 日志中缺少哪些内容:
Aug 05 13:52:38 ubuntu-8600k systemd[1]: Condition check resulted in First Boot Complete being skipped.
Aug 05 13:52:38 ubuntu-8600k systemd[1]: Finished Create System Users.
Aug 05 13:52:38 ubuntu-8600k systemd[1]: Starting Create Static Device Nodes in /dev...
Aug 05 13:52:38 ubuntu-8600k systemd-journald[331]: Journal started
Aug 05 13:52:38 ubuntu-8600k systemd-journald[331]: Runtime Journal (/run/log/journal/08163643f37a443b903c3c02ec70732a) is 8.0M, max 320.2M, 312.2M free.
Aug 05 13:52:38 ubuntu-8600k systemd[1]: Started Journal Service.
Aug 05 13:52:38 ubuntu-8600k systemd[1]: Starting Flush Journal to Persistent Storage...
Aug 05 13:52:38 ubuntu-8600k systemd[1]: modprobe@chromeos_pstore.service: Deactivated successfully.
Aug 05 13:52:38 ubuntu-8600k systemd[1]: Finished Load Kernel Module chromeos_pstore.
Aug 05 13:52:38 ubuntu-8600k systemd[1]: Finished Create Static Device Nodes in /dev.
Aug 05 13:52:38 ubuntu-8600k systemd[1]: Reached target Preparation for Local File Systems.
Aug 05 13:52:38 ubuntu-8600k systemd-journald[331]: Time spent on flushing to /var/log/journal/08163643f37a443b903c3c02ec70732a is 24.153ms for 1016 entries.
答案1
我在装有 Nvidia T550 显卡的 Dell Precision 3470 上遇到了同样的问题,在 Ubuntu 22.04.3 LTS 上,重启后也遇到了同样的问题apt upgrade
。
根据我的尝试(见下文),它似乎与 Nvidia 卡的 Nouveau 开源驱动程序和内核 6.20 之间的交互有关。
怎么修
我在这里描述我如何解决这个问题,以供其他人参考。
请注意,这只是一种解决方法,用于恢复使用内核 5.19 的正常工作的 PC。
- 如果你的设置没有在启动时显示 GRUB 菜单,请
Shift
在启动时点击进入 - 选择
Advanced options for Ubuntu
,然后Ubuntu with Linux 5.19.0-50-generic
(您的选项可能略有不同,只需选择非 6.2.x 的最新版本)。
您的系统现在应该可以正常启动;如果不能,请尝试使用不同的内核。 - 进入桌面后,打开终端,然后
首先注意这一点$ cat /boot/grub/grub.cfg | grep submenu submenu 'Advanced options for Ubuntu' $menuentry_id_option 'gnulinux-advanced-a8bbd8f4-68d3-4a3d-836d-a75021372c04'
$menuentry_id_option
,然后
注意cat /boot/grub/grub.cfg | grep "menuentry 'Ubuntu," menuentry 'Ubuntu, with Linux 6.2.0-26-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-6.2.0-26-generic-advanced-a8bbd8f4-68d3-4a3d-836d-a75021372c04' { menuentry 'Ubuntu, with Linux 6.2.0-26-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-6.2.0-26-generic-recovery-a8bbd8f4-68d3-4a3d-836d-a75021372c04' { menuentry 'Ubuntu, with Linux 5.19.0-50-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.19.0-50-generic-advanced-a8bbd8f4-68d3-4a3d-836d-a75021372c04' { menuentry 'Ubuntu, with Linux 5.19.0-50-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.19.0-50-generic-recovery-a8bbd8f4-68d3-4a3d-836d-a75021372c04'
$menuentry_id_option
您在启动时选择的选项。 - 现在让我们编辑 GRUB 选项以将此项设置为默认选项
注释掉$ sudo nano /etc/default/grub
GRUB_DEFAULT
已有的行并创建一个新行,列出之前得到的两个行$menuentry_id_option
,并用 连接>
。编辑后,我的文件如下所示#GRUB_DEFAULT=0 GRUB_DEFAULT="gnulinux-advanced-a8bbd8f4-68d3-4a3d-836d-a75021372c04>gnulinux-5.19.0-50-generic-advanced-a8bbd8f4-68d3-4a3d-836d-a75021372c04"
- 保存,退出
nano
并运行sudo update-grub
重新启动后您的系统就应该可以正常启动了。
更多信息
- 起初,我尝试通过
nomodeset
向默认 GRUB 选项中添加选项来了解这是否是图形驱动程序问题(看这里)。 - 确认启动正确后,我尝试启动 5.19 内核,发现无论有没有 都可以正常工作
nomodeset
,所以看起来内核 6.20 出了问题 - 我安装了 Nvidia 驱动程序包
nvidia-driver-535
:它解决了内核 6.20 的启动问题,但“夜灯”功能不起作用,所以我恢复到了 Nouveau
如果找到 6.20 的完整工作配置,我将进行进一步的测试并报告。
来源
答案2
看起来这里的关键问题是无法在较新的内核版本中加载 efi_pstore 和 drm 内核模块。以下是排除故障并有望解决问题的分步方法:
安全模式启动:启动到安全模式或恢复模式以访问终端。这将允许您在没有问题内核的系统上工作。
检查内核模块:确保新内核的模块存在。导航到相应的目录:
cd /lib/modules/6.2.0.26/kernel/drivers/
然后找到模块:
find . -name "efi_pstore.ko"
find . -name "drm.ko"
手动加载模块:尝试手动加载模块,看看是否有错误:
modprobe efi_pstore
modprobe drm
查看内核日志:查看内核日志中是否存在与这些模块相关的任何错误:
dmesg | grep -i "efi_pstore\|drm"
有时,特定的内核启动参数可能会导致问题。检查引导加载程序的配置(可能是 GRUB),看看新内核是否设置了任何不寻常的参数。
图形驱动程序:虽然您提到您没有使用 Nvidia 驱动程序,但内核仍可能存在与 RTX 3070 相关的问题。您可以考虑使用 nomodeset 参数进行启动,以绕过启动过程中的任何 GPU 问题。如果此方法有效,则表明问题与图形有关。
重新安装内核:内核升级过程中可能出现问题。考虑重新安装 6.2.0.26 内核...