You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kubuntu 23.04升级内核至6.2.0-26/27失败,initrd生成异常及启动故障求助

Kubuntu 23.04升级内核至6.2.0-26/27失败,initrd生成异常及启动故障求助

我最近在常规升级Kubuntu 23.04(根分区采用ZFS)的通用内核时遇到了严重问题:升级失败导致系统无法启动,最后只能通过ZFS回滚操作才恢复正常。

升级完成后,系统生成了vmlinuz-6.2.0-26-generic文件,但完全没有生成对应的initrd.img文件,而且我的/boot目录空间充足(剩余622208 kb)。当我手动尝试安装内核包时,出现了dpkg错误,具体操作及输出如下:

dave@dave-X570:~$ sudo apt-get install linux-image-generic

[sudo] password for dave:

Reading package lists... Done

Building dependency tree... Done

Reading state information... Done

The following additional packages will be installed:

linux-image-6.2.0-26-generic

The following NEW packages will be installed

linux-image-6.2.0-26-generic linux-image-generic

0 to upgrade, 2 to newly install, 0 to remove and 1 not to upgrade.

Need to get 14.3 MB of archives.

After this operation, 14.5 MB of additional disk space will be used.

Do you want to continue? [Y/n]

Get:1 http://mirror.ox.ac.uk/sites/archive.ubuntu.com/ubuntu lunar-updates/main amd64 linux-image-6.2.0-26-generic amd64 6.2.0-26.26 [14.3 MB]

Get:2 http://mirror.ox.ac.uk/sites/archive.ubuntu.com/ubuntu lunar-updates/main amd64 linux-image-generic amd64 6.2.0.26.26 [8,224 B]

Fetched 14.3 MB in 1s (10.9 MB/s)

Requesting to save current system state

Successfully saved as "autozsys_dfx1su"

Selecting previously unselected package linux-image-6.2.0-26-generic.

(Reading database ... 740023 files and directories currently installed.)

Preparing to unpack .../linux-image-6.2.0-26-generic_6.2.0-26.26_amd64.deb ...

Unpacking linux-image-6.2.0-26-generic (6.2.0-26.26) ...

Selecting previously unselected package linux-image-generic.

Preparing to unpack .../linux-image-generic_6.2.0.26.26_amd64.deb ...

Unpacking linux-image-generic (6.2.0.26.26) ...

Setting up linux-image-6.2.0-26-generic (6.2.0-26.26) ...

I: /boot/vmlinuz is now a symlink to vmlinuz-6.2.0-26-generic

I: /boot/initrd.img is now a symlink to initrd.img-6.2.0-26-generic

Setting up linux-image-generic (6.2.0.26.26) ...

Processing triggers for linux-image-6.2.0-26-generic (6.2.0-26.26) ...

/etc/kernel/postinst.d/dkms:

* dkms: running auto installation service for kernel 6.2.0-26-generic

...done.

/etc/kernel/postinst.d/initramfs-tools:

update-initramfs: Generating /boot/initrd.img-6.2.0-26-generic

grep: /boot/config-6.2.0-26-generic: No such file or directory

W: zstd compression (CONFIG_RD_ZSTD) not supported by kernel, using gzip

grep: /boot/config-6.2.0-26-generic: No such file or directory

E: gzip compression (CONFIG_RD_GZIP) not supported by kernel

update-initramfs: failed for /boot/initrd.img-6.2.0-26-generic with 1.

run-parts: /etc/kernel/postinst.d/initramfs-tools exited with return code 1

dpkg: error processing package linux-image-6.2.0-26-generic (--configure):

installed linux-image-6.2.0-26-generic package post-installation script subprocess returned error exit status 1

Errors were encountered while processing:

linux-image-6.2.0-26-generic

ZSys is adding automatic system snapshot to GRUB menu

E: Sub-process /usr/bin/dpkg returned an error code (1)

升级失败后,我的/boot目录内容如下:

total 175149
-rw-r--r-- 1 root root    275920 Jun 16 14:22 config-6.2.0-25-generic
drwxr-xr-x 3 root root       512 Jan  1  1970 efi
drwxr-xr-x 4 root root       512 Jan  1  1970 efi2
drwxr-xr-x 4 root root       512 Jan  1  1970 efi3
drwxr-xr-x 6 root root         9 Jul 30 15:17 grub
lrwxrwxrwx 1 root root        27 Jul 30 15:06 initrd.img -> initrd.img-6.2.0-26-generic
-rw-r--r-- 1 root root 147970001 Jul 12 21:37 initrd.img-6.2.0-25-generic
lrwxrwxrwx 1 root root        27 Jul 30 14:39 initrd.img.old -> initrd.img-6.2.0-25-generic
-rw-r--r-- 1 root root    138712 Feb 11 10:16 memtest86+ia32.bin
-rw-r--r-- 1 root root    139776 Feb 11 10:16 memtest86+ia32.efi
-rw-r--r-- 1 root root    144312 Feb 11 10:16 memtest86+x64.bin
-rw-r--r-- 1 root root    145408 Feb 11 10:16 memtest86+x64.efi
-rw------- 1 root root   8163660 Jun 16 14:22 System.map-6.2.0-25-generic
lrwxrwxrwx 1 root root        24 Jul 30 15:06 vmlinuz -> vmlinuz-6.2.0-26-generic
-rw------- 1 root root  13854600 Jun 16 16:47 vmlinuz-6.2.0-25-generic
-rw------- 1 root root  14482632 Jul 10 21:31 vmlinuz-6.2.0-26-generic
lrwxrwxrwx 1 root root        24 Jul 30 14:39 vmlinuz.old -> vmlinuz-6.2.0-25-generic

我很困惑:既然用的是ZFS根分区,但问题看起来不是DKMS导致的(至少一开始没报DKMS错误),为什么安装过程既没生成/boot/config-6.2.0-26-generic,也没生成对应的initrd.img文件?


第一次修复尝试

后来我试着把config-6.2.0-25-generic复制为config-6.2.0-26-generic(因为update-initramfs根本没生成这个文件),然后执行了以下命令:

sudo update-initramfs -v -c -k 6.2.0-26-generic

这次成功生成了/boot/initrd.img-6.2.0-26-generic,接着我运行了update-grub后重启系统。结果6.2.0-26内核启动到一半就卡住了,而6.2.0-25内核依然能正常启动。

我注意到启动过程的一个明显差异:正常启动6.2.0-25时,系统识别到双显示器后,会把启动日志输出到副屏,同时主4K屏的字体缩小——这应该是AMD显卡驱动加载后的正常行为,但6.2.0-26的启动过程完全没有这个现象。


发现DKMS异常

之后我卸载了6.2.0-26内核,继续使用6.2.0-25。但后来升级linux-firmware时,DKMS自动为6.2.0-25生成了新的内核镜像,结果这个镜像也无法启动,我只能再次用ZFS回滚恢复。

这时候我意识到问题可能出在DKMS上,于是执行sudo dkms status查看状态,得到的结果显示多个模块都存在编译版本与安装版本不一致的警告:

dave@dave-X570:/boot$ sudo dkms status

[sudo] password for dave:

fwts-efi-runtime-dkms/23.01.00, 5.19.0-41-generic, x86_64: installed (WARNING! Diff between built and installed module!)
fwts-efi-runtime-dkms/23.01.00, 6.2.0-20-generic, x86_64: installed (WARNING! Diff between built and installed module!)
fwts-efi-runtime-dkms/23.01.00, 6.2.0-23-generic, x86_64: installed (WARNING! Diff between built and installed module!)
fwts-efi-runtime-dkms/23.01.00, 6.2.0-24-generic, x86_64: installed (WARNING! Diff between built and installed module!)
fwts-efi-runtime-dkms/23.01.00, 6.2.0-25-generic, x86_64: installed (WARNING! Diff between built and installed module!)
fwts-efi-runtime-dkms/23.01.00, 6.2.0-26-generic, x86_64: installed (WARNING! Diff between built and installed module!)
v4l2loopback/0.12.7, 5.19.0-41-generic, x86_64: installed (WARNING! Diff between built and installed module!)
v4l2loopback/0.12.7, 6.2.0-20-generic, x86_64: installed (WARNING! Diff between built and installed module!)
v4l2loopback/0.12.7, 6.2.0-23-generic, x86_64: installed (WARNING! Diff between built and installed module!)
v4l2loopback/0.12.7, 6.2.0-24-generic, x86_64: installed (WARNING! Diff between built and installed module!)
v4l2loopback/0.12.7, 6.2.0-25-generic, x86_64: installed (WARNING! Diff between built and installed module!)
v4l2loopback/0.12.7, 6.2.0-26-generic, x86_64: installed (WARNING! Diff between built and installed module!)
zfs/2.1.9, 6.2.0-23-generic, x86_64: installed (WARNING! Diff between built and installed module!) (WARNING! Diff between built and installed module!) (WARNING! Diff between built and installed module!) (WARNING! Diff between built and installed module!) (WARNING! Diff between built and installed module!) (WARNING! Diff between built and installed module!) (WARNING! Diff between built and installed module!) (WARNING! Diff between built and installed module!) (WARNING! Diff between built and installed module!)
zfs/2.1.9, 6.2.0-24-generic, x86_64: installed (WARNING! Diff between built and installed module!) (WARNING! Diff between built and installed module!) (WARNING! Diff between built and installed module!) (WARNING! Diff between built and installed module!) (WARNING! Diff between built and installed module!) (WARNING! Diff between built and installed module!) (WARNING! Diff between built and installed module!) (WARNING! Diff between built and installed module!) (WARNING! Diff between built and installed module!)
zfs/2.1.9, 6.2.0-25-generic, x86_64: installed (WARNING! Diff between built and installed module!) (WARNING! Diff between built and installed module!) (WARNING! Diff between built and installed module!) (WARNING! Diff between built and installed module!) (WARNING! Diff between built and installed module!) (WARNING! Diff between built and installed module!) (WARNING! Diff between built and installed module!) (WARNING! Diff between built and installed module!) (WARNING! Diff between built and installed module!)
zfs/2.1.9, 6.2.0-26-generic, x86_64: installed (WARNING! Diff between built and installed module!) (WARNING! Diff between built and installed module!) (WARNING! Diff between built and installed module!) (WARNING! Diff between built and installed module!) (WARNING! Diff between built and installed module!) (WARNING! Diff between built and installed module!) (WARNING! Diff between built and installed module!) (WARNING! Diff between built and installed module!) (WARNING! Diff between built and installed module!)

升级6.2.0-27内核仍失败

后来6.2.0-27内核发布,我再次尝试升级,这次系统正常生成了config-6.2.0-27-generic和initrd.img-6.2.0-27-generic,但重启后依然失败,只能回到6.2.0-25内核。

对比两次启动的日志:journalctl -b -1 | grep amdgpu(失败的6.2.0-27)和journalctl -b 0 | grep amdgpu(正常的6.2.0-25),我发现6.2.0-27的启动日志里完全没有amdgpu相关的条目——这说明initramfs根本没把amdgpu的固件或模块打包进对应的initrd文件里。


备注:内容来源于stack exchange,提问作者David Newman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.22 09:03:15