Ubuntu 22.04 升级到内核 6.2.0.26 启动失败

Ubuntu 22.04 升级到内核 6.2.0.26 启动失败

我将 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。

  1. 如果你的设置没有在启动时显示 GRUB 菜单,请Shift在启动时点击进入
  2. 选择Advanced options for Ubuntu,然后Ubuntu with Linux 5.19.0-50-generic(您的选项可能略有不同,只需选择非 6.2.x 的最新版本)。
    您的系统现在应该可以正常启动;如果不能,请尝试使用不同的内核。
  3. 进入桌面后,打开终端,然后
    $ 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您在启动时选择的选项。
  4. 现在让我们编辑 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"
    
  5. 保存,退出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 内核...

相关内容